tango-app-ui-analyse-trax 3.9.13 → 3.9.15

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.
@@ -2213,7 +2213,9 @@ export class ChecklistConfigureComponent {
2213
2213
  ? this.configData.aiConfig.events
2214
2214
  : (this.configData.aiConfig.events = []);
2215
2215
  if (this.type == "mobileusagedetection" &&
2216
- !this.configData.aiConfig.mobileDetection.usageExceed) {
2216
+ (this.configData.aiConfig.mobileDetection.usageExceed === null ||
2217
+ this.configData.aiConfig.mobileDetection.usageExceed === undefined ||
2218
+ this.configData.aiConfig.mobileDetection.usageExceed === "")) {
2217
2219
  this.toast.getErrorToast("Please Enter the Usage Exceed Duration");
2218
2220
  return;
2219
2221
  }
@@ -2493,7 +2495,9 @@ export class ChecklistConfigureComponent {
2493
2495
  ? this.configData.aiConfig.events
2494
2496
  : (this.configData.aiConfig.events = []);
2495
2497
  if (this.type == "mobileusagedetection" &&
2496
- !this.configData.aiConfig.mobileDetection.usageExceed) {
2498
+ (this.configData.aiConfig.mobileDetection.usageExceed === null ||
2499
+ this.configData.aiConfig.mobileDetection.usageExceed === undefined ||
2500
+ this.configData.aiConfig.mobileDetection.usageExceed === "")) {
2497
2501
  this.toast.getErrorToast("Please Enter the Usage Exceed Duration");
2498
2502
  return;
2499
2503
  }
@@ -4161,4 +4165,4 @@ function getWeekNumber(date) {
4161
4165
  let findIndex = days.findIndex((item) => item == date.format('YYYY-MM-DD'));
4162
4166
  return (findIndex + 1);
4163
4167
  }
4164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdySCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUc3QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQztBQUN0QyxPQUFPLFFBQVEsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBQ2hELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFPaEMsTUFBTSxPQUFPLDJCQUEyQjtJQTBJNUI7SUFDQTtJQUNBO0lB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QUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7SUFDaEYsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVHJheHBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vdHJheHBvcHVwL3RyYXhwb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmF4U3RvcmVDb21wb25lbnQgfSBmcm9tICcuLi90cmF4LXN0b3JlL3RyYXgtc3RvcmUuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJheC5zZXJ2aWNlJztcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yy5qcyc7XHJcbmltcG9ydCB0aW1lWm9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUuanMnO1xyXG5kYXlqcy5leHRlbmQodGltZVpvbmUpO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuZGF5anMuZXh0ZW5kKGN1c3RvbVBhcnNlRm9ybWF0KTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1jaGVja2xpc3QtY29uZmlndXJlXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9jaGVja2xpc3QtY29uZmlndXJlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9jaGVja2xpc3QtY29uZmlndXJlLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RDb25maWd1cmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChcImZpbGVcIikgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiZmlsZTFcIikgZmlsZUlucHV0MSE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcImJ1bGt1cGxvYWRcIikgYnVsa3VwbG9hZDogYW55O1xyXG4gIEBWaWV3Q2hpbGQoXCJlbWFpbEJ1bGt1cGxvYWRcIikgZW1haWxCdWxrdXBsb2FkOiBhbnk7XHJcbiAgQFZpZXdDaGlsZChcImFmdGVyVmFsaWRhdGlvblwiKSBhZnRlclZhbGlkYXRpb246IGFueTtcclxuICBAVmlld0NoaWxkKFwiY29uZmlybVVzZXJcIikgY29uZmlybVVzZXI6IGFueTtcclxuICBkYXlqczogYW55ID0gZGF5anM7XHJcbiAgc2VsZWN0ZWREYXRlczogYW55O1xyXG4gIG1pbkRhdGU6IGFueTtcclxuICB0eXBlOiBzdHJpbmcgPSBcImN1c3RvbVwiO1xyXG4gIG9iajogYW55O1xyXG4gIGNvbmZpZ0RhdGE6IGFueTtcclxuICB0YWJsZURhdGE6IGFueSA9IFtdO1xyXG4gIHRhYmxlTG9hZGluZzogYW55ID0gZmFsc2U7XHJcbiAgdGFibGVEaXNwbGF5ZWRDb2x1bW5zOiBhbnkgPSBbXCJuYW1lXCIsIFwicm9sZVwiLCBcImVtYWlsXCJdO1xyXG4gIHBhZ2VWYWx1ZTogYW55ID0gW107XHJcbiAgb2Zmc2V0OiBudW1iZXIgPSAwO1xyXG4gIHJlY29yZHNUb3RhbDogYW55ID0gMDtcclxuICBhc3NpZ25UeXBlOiBhbnk7XHJcbiAgc2l6ZTogYW55ID0gNTtcclxuICBvZmZzZXR2YWx1ZTogbnVtYmVyID0gMDtcclxuICBwYWdlRGlzcGxheTogYW55ID0gW107XHJcbiAgbmV4dGJ0bjogYm9vbGVhbiA9IHRydWU7XHJcbiAgYmFja2J0bjogYm9vbGVhbiA9IHRydWU7XHJcbiAgaWRMaXN0OiBhbnkgPSBbXTtcclxuICBjdXJyZW50VmFsdWU6IGFueSA9IDE7XHJcbiAgdGFibGVGaWx0ZXI6IGFueSA9IFwiXCI7XHJcbiAgcGFnZVN0YXJ0OiBhbnkgPSAwO1xyXG4gIHBhZ2VFbmQ6IGFueSA9IDA7XHJcbiAgcmVjb3Jkc0NvdW50OiBhbnk7XHJcbiAgcGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LCAyMF07XHJcbiAgdXNlckRhdGE6IGFueSA9IFtdO1xyXG4gIGV4Y2VsVXNlckRhdGE6IGFueSA9IFtdO1xyXG4gIHNob3dJbWFnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgbW9udGhEYXk6IGFueTtcclxuICBzaG93OiBudW1iZXIgPSAwO1xyXG4gIHBvcFVwVGl0bGU6IGFueTtcclxuICBzaG93SW50cm86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNlYXJjaFVzZXI6IGFueTtcclxuICBhZGRVc2VyRm9ybTogYm9vbGVhbjtcclxuICBzb3BTdG9yZXM6IGFueSA9IFtdO1xyXG4gIHN0b3JlQ292ZXJhZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHVzZXJDb3ZlcmFnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdEFsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVycm9ybXNnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RhcnRUaW1lOiBhbnk7XHJcbiAgZW5kVGltZTogYW55O1xyXG4gIGNoZWNrbGlzdElkOiBhbnk7XHJcbiAgcmV1cGxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RBbGxVc2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVtb3ZlVXNlcnM6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkRGF5czogYW55W10gPSBbXTtcclxuICBzaG93UmFuZ2VWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN1Ym1pdHRlZERhdGVzOiBudW1iZXJbXSA9IFtdO1xyXG4gIG1vbnRoRGF0ZTogc3RyaW5nID0gXCJcIjtcclxuICBzcGVjaWZpYzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdsb2JhbENvbmZpZ3VyZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgc3RvcmV3aXNlQ29uZmlndXJlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29uZmlndXJlVHlwZTogYW55O1xyXG4gIGRhdGU6IGFueTtcclxuICBzZWN0aW9uczogYW55ID0gW107XHJcbiAgTW9udGh3ZWVrTnVtYmVyOiBzdHJpbmc7XHJcbiAgcG9wdXBDb3VudDogbnVtYmVyID0gMDtcclxuICB2YWxpZFRpbWU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGRpc2FibGVkUXVlc3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93Y29uZmlnOiBib29sZWFuID0gdHJ1ZTtcclxuICBzaG93YWR2YW5jZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcmVwZWF0VHlwZTogc3RyaW5nID0gXCJcIjtcclxuICBzaG93RHJvcERvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZERhdGU6IGFueSA9IFtdO1xyXG4gIGRhdGVzOiBudW1iZXJbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDMxIH0sIChfLCBpKSA9PiBpICsgMSk7IC8vIEFycmF5IGZyb20gMSB0byAzMVxyXG4gIHNlbGVjdGVkRGF0ZUxpc3Q6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkU3RhcnREYXRlOiBhbnk7XHJcbiAgbWluU3RhcnREYXRlOiBhbnk7XHJcbiAgc2VsZWN0ZWRFbmREYXRlOiBhbnk7XHJcbiAgbWluRW5kRGF0ZTogYW55O1xyXG4gIGNsaWVudElkOiBhbnk7XHJcbiAgYWxlcnRVc2VyczogYW55ID0gW107XHJcbiAgYWxlcnRUZWFtczogYW55ID0gW107XHJcbiAgem9uZUxpc3Q6IGFueSA9IFtdO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGFwcHJvdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGluaXRpYWxMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBleGlzdGluZ1VzZXJzOiBhbnk7XHJcbiAgYXNzaWduU2luZ2xlOiBhbnk7XHJcbiAgYXNzaWduR3JvdXA6IGFueTtcclxuICBzaW5nbGVBc3NpZ246IGFueTtcclxuICBncm91cEFzc2lnbjogYW55O1xyXG4gIHJlbWFpbmRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc2FibGVkUHVibGlzaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICB0aW1lTG9vcDogYW55W10gPSBbMV07XHJcbiAgbWludXRlczogbnVtYmVyW10gPSBbMzAsIDQ1LCA2MCwgNzUsIDkwXTtcclxuICBzaG93RWRpdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc2FibGVCdG46IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByZU9wZW5DbG9zZVRpbWVDb25maWc6IGFueSA9IFsxMCwgMjAsIDMwLCA0MCwgNTAsIDYwXTtcclxuICBwZXJzb25EZXRlY3Rpb25UaW1lVGhyZXNob2xkOiBhbnkgPSBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdO1xyXG4gIHNjaGVkdWxlVGltZUNvbmZpZzogYW55ID0gWzEwLCAxNSwgMjAsIDI1LCAzMCwgMzUsIDQwLCA0NSwgNTAsIDYwXTtcclxuICBhbGVydFRpbWVDb25maWc6IGFueSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDMwIH0sIChfLCBpKSA9PiBpICsgMSk7O1xyXG4gIGFsZXJ0dGltZWtleWNvbmZpZzogYW55O1xyXG4gIHNlbGVjdGVkU291cmNlOiBhbnk7XHJcbiAgc2VsZWN0ZWREZXRlY3Rpb25TdGF0dXM6IHN0cmluZ1tdID0gW107XHJcbiAgc2VsZWN0ZWREYXRhcHJvY2Vzc2luZzogYW55O1xyXG4gIHNlbGVjdGVkRXhwb3J0Q29uZmlnOiBzdHJpbmdbXSA9IFtdO1xyXG4gIG5vdGlmaWNhdGlvbmtleWNvbmZpZzogYW55O1xyXG4gIGF1dG90YXNra2V5Y29uZmlnOiBhbnk7XHJcbiAgZXhwb3J0a2V5Y29uZmlnOiBhbnk7XHJcbiAgZGV0ZWN0ZWRzdGF0dXNrZXljb25maWc6IGFueTtcclxuICBhdWRpdGtleWNvbmZpZzogYW55O1xyXG4gIHVzZXJUeXBlOiBhbnk7XHJcbiAgc2NoZWR1bGV0eXBlOiBhbnkgPSBcInN0YW5kYXJkXCI7XHJcbiAgcmVjdXJyZW5jZTogYW55O1xyXG4gIHNjaGVkdWxlc3RhcnRUaW1lOiBhbnk7XHJcbiAgc2NoZWR1bGVlbmRUaW1lOiBhbnk7XHJcbiAgcmVjdXJyZW5jZVN0YXR1czogYW55O1xyXG4gIHJlY3VycmVuY2VUeXBlOiBhbnk7XHJcbiAgcmVjdXJyZW5jZXRpbWU6IGFueTtcclxuICBpc1RocmVzaG9sZEVuYWJsZWQ6IGFueSA9IGZhbHNlO1xyXG4gIGRldGVjdGlvblRocmVzaG9sZDogbnVtYmVyID0gMTtcclxuICB0aHJlc2hvbGRPcHRpb25zID0gWzEsIDIsIDMsIDQsIDVdO1xyXG4gIHF1ZXVlTGVuZ3RoRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHF1ZXVlTGltaXQ6IGFueSA9IFwiM1wiO1xyXG4gIHdhaXRUaW1lRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgY2FtZXJhQW5nbGVFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICB3YWl0VGltZUxpbWl0OiBhbnkgPSBcIjFcIjtcclxuICBhbGVydENvb2xkb3duRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFsZXJ0Q29vbGRvd25UaW1lOiBhbnkgPSBcIjEwXCI7XHJcbiAgbm90aWZ5RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJlY3VycmluZ0ZsYWdOb3RpZnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZWN1cnJpbmdUaHJlc2hvbGRzOiBudW1iZXJbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDMwIH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgZW5hYmxlRW1haWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB0aW1lU2xvdDogbnVtYmVyW10gPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA2MCB9LCAoXywgaSkgPT4gaSArIDEpO1xyXG4gIGJ1ZmZlclRpbWU6IG51bWJlcltdID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMzAgfSwgKF8sIGkpID0+IGkgKyAxKTtcclxuICBtaW51dGVzU2xvdDogbnVtYmVyW10gPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA2MCB9LCAoXywgaSkgPT4gaSArIDEpO1xyXG4gIGVtYWlsRHJvcGRvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvLyBhZG1pblVzZXJzOmFueSA9IFtdO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VkZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIFNvcFNlcnZpY2U6IFRyYXhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBhZ2VJbmZvOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBsZXQgdXNlckluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlci1pbmZvXCIpIHx8IFwie31cIik7XHJcbiAgICBpZiAodXNlckluZm8/LnVzZXJUeXBlKSB7XHJcbiAgICAgIHRoaXMudXNlclR5cGUgPSB1c2VySW5mby51c2VyVHlwZTtcclxuICAgIH1cclxuICAgIGxldCBzdG9yYWdlRGV0YWlscyA9IEpTT04ucGFyc2UoXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiLFxyXG4gICAgKTtcclxuICAgIGlmICghc3RvcmFnZURldGFpbHM/LmNsaWVudCkge1xyXG4gICAgICBzdG9yYWdlRGV0YWlscyA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjbGllbnQtZGV0YWlsc1wiKSB8fCBcInt9XCIsXHJcbiAgICAgICk7XHJcbiAgICAgIHN0b3JhZ2VEZXRhaWxzLmNsaWVudCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudElkO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgdGhpcy5jbGllbnRJZCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudDtcclxuICAgICAgdGhpcy5yb3V0ZXIucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcclxuICAgICAgICBpZiAocGFyYW1zPy5jaGVja0xpc3RJZCkge1xyXG4gICAgICAgICAgdGhpcy5vYmogPSB7XHJcbiAgICAgICAgICAgIGNoZWNrTGlzdElkOiBwYXJhbXMuY2hlY2tMaXN0SWQsXHJcbiAgICAgICAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMuc2hvd0VkaXQgPSBwYXJhbXMuc2hvd0VkaXQ7XHJcbiAgICAgICAgICB0aGlzLnR5cGUgPSBcImN1c3RvbVwiO1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlZFF1ZXN0aW9uID0gcGFyYW1zLmRpc2FibGVkUXVlc3Rpb247XHJcbiAgICAgICAgfSBlbHNlIGlmIChwYXJhbXM/LmFpY2hlY2tMaXN0SWQpIHtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5vYmogPSB7XHJcbiAgICAgICAgICAgIGlkOiBwYXJhbXMuYWljaGVja0xpc3RJZCxcclxuICAgICAgICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RJZCA9IHBhcmFtcz8uYWljaGVja0xpc3RJZDtcclxuICAgICAgICAgIHRoaXMuc2hvd0VkaXQgPSBwYXJhbXMuc2hvd0VkaXQ7XHJcbiAgICAgICAgICB0aGlzLnR5cGUgPSBwYXJhbXMudHlwZTtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZWRRdWVzdGlvbiA9IHBhcmFtcy5kaXNhYmxlZFF1ZXN0aW9uO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdG4gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMub2JqID0ge1xyXG4gICAgICAgICAgICB0eXBlOiBwYXJhbXMudHlwZSxcclxuICAgICAgICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy50eXBlID0gcGFyYW1zLnR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgICB0aGlzLnNlbGVjdEluaXRpYWxUYWIoKTtcclxuICAgICAgdGhpcy50eXBlID09PSBcImN1c3RvbVwiID8gdGhpcy5HZXRDb25maWcoKSA6IHRoaXMuZ2V0QUljb25maWcoKTtcclxuICAgICAgLy8gdGhpcy5nZXRab25lTGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRldGFjaC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXRhY2guY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIk1hbmFnZSBDaGVja2xpc3RcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldERlc2NyaXB0aW9uKFxyXG4gICAgICBcIkF1dG9tYXRlIG9yIGNyZWF0ZSBjaGVja2xpc3RzIHRvIGltcHJvdmUgb3BlcmF0aW9uYWwgZWZmaWNpZW5jeVwiLFxyXG4gICAgKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6IFwiVGFuZ28gVHJheFwiLFxyXG4gICAgICAgIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLFxyXG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJUYW5nbyBUcmF4XCIsXHJcbiAgICAgICAgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsXHJcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxyXG4gICAgICAgIGlzU2VwYXJhdG9yOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgXSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJbml0aWFsVGFiKCkge1xyXG4gICAgdGhpcy5zdG9yZUNvdmVyYWdlXHJcbiAgICAgID8gKHRoaXMuYXNzaWduVHlwZSA9IFwic3RvcmVcIilcclxuICAgICAgOiAodGhpcy5hc3NpZ25UeXBlID0gXCJ1c2VyXCIpO1xyXG4gIH1cclxuXHJcbiAgR2V0Q29uZmlnKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubW9udGhEYXRlID0gXCJcIjtcclxuICAgIHRoaXMubW9udGhEYXkgPSBcIlwiO1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldGNvbmZpZyh0aGlzLm9iailcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAocmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscy5jaGVja0xpc3RUeXBlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RJZCA9IHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuX2lkO1xyXG4gICAgICAgICAgICAgIHRoaXMudHlwZSA9IHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuY2hlY2tMaXN0VHlwZTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSBbXTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5ub3RpZnlUeXBlID0gW107XHJcbiAgICAgICAgICAgICAgdGhpcy5jb3ZlcmFnZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvdmVyYWdlO1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5ub3RpZnlGbGFncz8ubm90aWZ5VHlwZVxyXG4gICAgICAgICAgICAgICAgICA/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlGbGFnID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/Lm5vdGlmeVR5cGVcclxuICAgICAgICAgICAgICAgICAgPy5sZW5ndGhcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVjdXJyaW5nRmxhZ05vdGlmeSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uYXV0b0VtYWlsPy50eXBlPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlRW1haWwgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gWy4uLnRoaXMuc2luZ2xlQXNzaWduLC4uLnRoaXMuZ3JvdXBBc3NpZ25dXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RSYWRpbyh0aGlzLmNvdmVyYWdlKTtcclxuICAgICAgICAgICAgICAvLyB0aGlzLmNvdmVyYWdlID09PSAnc3RvcmUnID8gdGhpcy5zdG9yZUNvdmVyYWdlID0gdHJ1ZSA6IHRoaXMudXNlckNvdmVyYWdlID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlVXNlcnMgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnJlbW92ZWRVc2VycyB8fCBbXTtcclxuICAgICAgICAgICAgICAvLyB0aGlzLmFwcHJvdmUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3Zlcj8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVtYWluZGVyID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnJlbWFpbmRlclxyXG4gICAgICAgICAgICAgICAgPy5sZW5ndGhcclxuICAgICAgICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgICAgICAgOiBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLnRpbWVMb29wID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnJlbWFpbmRlclxyXG4gICAgICAgICAgICAgICAgPy5sZW5ndGhcclxuICAgICAgICAgICAgICAgID8gQXJyYXkuZnJvbShcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGxlbmd0aDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyLmxlbmd0aCxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgKF8sIGkpID0+IGksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICA6IFswXTtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucHVibGlzaERhdGUpIHtcclxuICAgICAgICAgICAgICAgIGxldCBkYXRlID0gdGhpcy5kYXlqcygpO1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICBkYXRlLmRpZmYoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXlqcy51dGMoXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnB1Ymxpc2hEYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgXCJtaW51dGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICkgPCA1XHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHN0YXJ0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IHRoaXMuZGF5anMoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkUHVibGlzaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0ZS5kaWZmKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRheWpzLnV0YyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnB1Ymxpc2hEYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1pbnV0ZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICkgPj0gNVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFB1Ymxpc2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoc3RhcnRJbnRlcnZhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVVc2VycyA9IHJlcy5kYXRhPy5jaGVja0xpc3REZXRhaWxzPy5yZW1vdmVkVXNlcnMgfHwgW107XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy56b25lcyA9IHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uZGV0ZWN0aW9uQXJlYSB8fCBbXTtcclxuICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25zID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2VjdGlvbnM7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERheXMgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVdlZWtEYXlzIHx8IFtdO1xyXG4gICAgICAgICAgICAgIHRoaXMuZW5kVGltZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZUVuZFRpbWVcclxuICAgICAgICAgICAgICAgID8gdGhpcy5kYXlqcyhcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZSxcclxuICAgICAgICAgICAgICAgICAgXCJoOm1tIEFcIixcclxuICAgICAgICAgICAgICAgICkuZm9ybWF0KFwiSEg6bW1cIilcclxuICAgICAgICAgICAgICAgIDogXCIyMjowMFwiO1xyXG4gICAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHNcclxuICAgICAgICAgICAgICAgID8uc2NoZWR1bGVTdGFydFRpbWVcclxuICAgICAgICAgICAgICAgID8gdGhpcy5kYXlqcyhcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlU3RhcnRUaW1lLFxyXG4gICAgICAgICAgICAgICAgICBcImg6bW0gQVwiLFxyXG4gICAgICAgICAgICAgICAgKS5mb3JtYXQoXCJISDptbVwiKVxyXG4gICAgICAgICAgICAgICAgOiBcIjEwOjAwXCI7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZXBlYXRUeXBlID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSBcImRhaWx5XCJcclxuICAgICAgICAgICAgICAgICAgPyBcIkRheVwiXHJcbiAgICAgICAgICAgICAgICAgIDogW1wid2Vla2x5XCIsIFwid2Vla2RheVwiXS5pbmNsdWRlcyhcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUsXHJcbiAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICA/IFwiV2Vla1wiXHJcbiAgICAgICAgICAgICAgICAgICAgOiBcIk1vbnRoXCI7XHJcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSBcIjEwOjAwIFBNXCI7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlU3RhcnRUaW1lKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IFwiMTA6MDAgQU1cIjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVkb1ZhbGlkaXR5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZWRvVmFsaWRpdHkgPSA3O1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgLy8gaWYgKHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxlcnQ/LmFsZXJ0c1RvLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIC8vICAgdGhpcy5lbWFpbExpc3QgPSB0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFsZXJ0Py5hbGVydHNUbztcclxuICAgICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPSBcIm9uZXRpbWVcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93UmFuZ2VWYWx1ZSA9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gXCJcIiAmJlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gXCJcIiAmJlxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlICE9IG51bGxcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUsXHJcbiAgICAgICAgICAgICAgICAgICkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgICAgICApLmZvcm1hdCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSBcIlwiICYmXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9IG51bGxcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5taW5FbmREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gXCJtb250aGx5XCIpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgICAgICA/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09IFwiZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrLnNwbGl0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICk/Lmxlbmd0aCA+IDFcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9udGhEYXRlID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsuc3BsaXQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoRGF5ID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsuc3BsaXQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClbMV07XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgICAgICA/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09IFwic3BlY2lmaWNcIlxyXG4gICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID1cclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zcGVjaWZpY0RhdGUgfHwgW107XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLnN1Ym1pdHRlZERhdGVzO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gXCJyYW5nZVwiICYmXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZS5sZW5ndGhcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpZmljID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gXCJvbmV0aW1lXCIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IHRoaXMuY29uZmlnRGF0YVxyXG4gICAgICAgICAgICAgICAgICAuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGVcclxuICAgICAgICAgICAgICAgICAgPyB0aGlzLmRheWpzXHJcbiAgICAgICAgICAgICAgICAgICAgLnV0Yyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUpXHJcbiAgICAgICAgICAgICAgICAgICAgLmZvcm1hdCgpXHJcbiAgICAgICAgICAgICAgICAgIDogZGF5anMoKS5mb3JtYXQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IHtcclxuICAgICAgICAgICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSxcclxuICAgICAgICAgICAgICAgICkuZm9ybWF0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vIHRoaXMudXNlckRldGFpbHNWMigpO1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuZ2V0YXNzaWduRHJvcGRvd24oKTtcclxuICAgICAgICAgICAgICAvLyB0aGlzLmdldHRhYmxlRGF0YSgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0Q2xpZW50VXNlcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIGlmIChlcnJvci5jb2RlID09IDQwMykge1xyXG4gICAgICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lcnJvcjQwMyddKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBSWNvbmZpZygpIHtcclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRBSWNvbmZpZyh0aGlzLm9iailcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICF0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHM/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAgIFtcInNjcnVtXCIsIFwiY2xlYW5pbmdcIl0uaW5jbHVkZXModGhpcy50eXBlKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICB0aW1lOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiSEg6bW1cIiksXHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogXCIxNVwiLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAhdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnICYmXHJcbiAgICAgICAgICAgICAgW1wic2NydW1cIiwgXCJjbGVhbmluZ1wiXS5pbmNsdWRlcyh0aGlzLnR5cGUpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hc3NpZ25Db25maWcgPSBcImdsb2JhbFwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYXV0b1Rhc2tDb25maWc/LnRhc2tWYWxpZGl0eSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZ1tcInRhc2tWYWxpZGl0eVwiXSA9IHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwibWluc1wiLFxyXG4gICAgICAgICAgICAgICAgdGltZTogMSxcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYXV0b1Rhc2tDb25maWc/LnVzZXJzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnW1widXNlcnNcIl0gPSBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy5hcHByb3ZlckVuYWJsZWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWdbXCJhcHByb3ZlckVuYWJsZWRcIl0gPVxyXG4gICAgICAgICAgICAgICAgZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKFtcInN0b3Jlb3BlbmFuZGNsb3NlXCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlID0ge307XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlciA9IHsgb3BlblRpbWU6IDAsIGNsb3NlVGltZTogMCB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5kZXRlY3Rpb25UeXBlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuZGV0ZWN0aW9uVHlwZSA9IFwiYWxsQ2FtZXJhc1wiO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoW1wic3RvcmVoeWdpZW5lbW9uaXRvcmluZ1wiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZXR5cGUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnNjaGVkdWxlLnNjaGVkdWxldHlwZTtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5zY2hlZHVsZS5vcGVuVGltZTtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlZW5kVGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc2NoZWR1bGUuY2xvc2VUaW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVjdXJyZW5jZVR5cGUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnJlY3VycmVuY2UudHlwZTtcclxuICAgICAgICAgICAgICB0aGlzLnJlY3VycmVuY2V0aW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5yZWN1cnJlbmNlLnRpbWU7XHJcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3JpbmcuZmxvb3JEZXRlY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5mbG9vckRldGVjdGlvbiA9IHtcclxuICAgICAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKFtcInR2Y29tcGxpYW5jZVwiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZXR5cGUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8udHZjb21wbGlhbmNlPy5zY2hlZHVsZT8uc2NoZWR1bGV0eXBlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVzdGFydFRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8udHZjb21wbGlhbmNlPy5zY2hlZHVsZT8ub3BlblRpbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZWVuZFRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8udHZjb21wbGlhbmNlPy5zY2hlZHVsZT8uY2xvc2VUaW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVjdXJyZW5jZVN0YXR1cyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy50dmNvbXBsaWFuY2U/LnJlY3VycmVuY2U/LnN0YXR1cztcclxuICAgICAgICAgICAgICB0aGlzLnJlY3VycmVuY2V0aW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LnR2Y29tcGxpYW5jZT8ucmVjdXJyZW5jZT8udGltZTtcclxuICAgICAgICAgICAgICB0aGlzLmlzVGhyZXNob2xkRW5hYmxlZCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy50dmNvbXBsaWFuY2U/LmRldGVjdGVkU3RhdHVzPy5zdGF0dXM7XHJcbiAgICAgICAgICAgICAgdGhpcy5kZXRlY3Rpb25UaHJlc2hvbGQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8udHZjb21wbGlhbmNlPy5kZXRlY3RlZFN0YXR1cz8uZGV0ZWN0aW9ucztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoW1wicXVldWVhbGVydFwiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZXR5cGUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8udHZjb21wbGlhbmNlPy5zY2hlZHVsZT8uc2NoZWR1bGV0eXBlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVzdGFydFRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8udHZjb21wbGlhbmNlPy5zY2hlZHVsZT8ub3BlblRpbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZWVuZFRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8udHZjb21wbGlhbmNlPy5zY2hlZHVsZT8uY2xvc2VUaW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMucXVldWVMZW5ndGhFbmFibGVkID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LnF1ZXVlYWxlcnQ/LnF1ZXVlTGVuZ3RoRW5hYmxlZDtcclxuICAgICAgICAgICAgICB0aGlzLnF1ZXVlTGltaXQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8ucXVldWVhbGVydD8ucXVldWVMaW1pdDtcclxuICAgICAgICAgICAgICB0aGlzLndhaXRUaW1lRW5hYmxlZCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5xdWV1ZWFsZXJ0Py53YWl0VGltZUVuYWJsZWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy53YWl0VGltZUxpbWl0ID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LnF1ZXVlYWxlcnQ/LndhaXRUaW1lTGltaXQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydENvb2xkb3duRW5hYmxlZCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5xdWV1ZWFsZXJ0Py5hbGVydENvb2xkb3duRW5hYmxlZCB8fCBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmFsZXJ0Q29vbGRvd25UaW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LnF1ZXVlYWxlcnQ/LmFsZXJ0Q29vbGRvd25UaW1lIHx8IFwiMTBcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoW1wic3RhZmZncm91cGluZ1wiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZXR5cGUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uc3RhZmZHcm91cGluZz8uc2NoZWR1bGU/LnNjaGVkdWxldHlwZSB8fCBcInN0YW5kYXJkXCI7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZXN0YXJ0VGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5zdGFmZkdyb3VwaW5nPy5zY2hlZHVsZT8ub3BlblRpbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZWVuZFRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uc3RhZmZHcm91cGluZz8uc2NoZWR1bGU/LmNsb3NlVGltZTtcclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZyA9IHt9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLmNvdW50QWxlcnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLmNvdW50QWxlcnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDMsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLnRpbWVTcGVudEFsZXJ0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy50aW1lU3BlbnRBbGVydCA9IHtcclxuICAgICAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5oaWJlcm5hdGlvbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuaGliZXJuYXRpb24gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IFwiMDE6MDBcIixcclxuICAgICAgICAgICAgICAgICAgc3RhcnRQZXJpb2Q6IFwiUE1cIixcclxuICAgICAgICAgICAgICAgICAgZW5kVGltZTogXCIwMjowMFwiLFxyXG4gICAgICAgICAgICAgICAgICBlbmRQZXJpb2Q6IFwiUE1cIixcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuYWxlcnRDb29sZG93bkVuYWJsZWQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uc3RhZmZHcm91cGluZz8uYWxlcnRDb29sZG93bkVuYWJsZWQgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydENvb2xkb3duVGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5zdGFmZkdyb3VwaW5nPy5hbGVydENvb2xkb3duVGltZSB8fCBcIjEwXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKFtcImJveGFsZXJ0XCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxldHlwZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ib3hBbGVydD8uc2NoZWR1bGU/LnNjaGVkdWxldHlwZSB8fCBcInN0YW5kYXJkXCI7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZXN0YXJ0VGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ib3hBbGVydD8uc2NoZWR1bGU/Lm9wZW5UaW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVlbmRUaW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmJveEFsZXJ0Py5zY2hlZHVsZT8uY2xvc2VUaW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVjdXJyZW5jZVR5cGUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYm94QWxlcnQ/LnJlY3VycmVuY2U/LnR5cGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZWN1cnJlbmNldGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ib3hBbGVydD8ucmVjdXJyZW5jZT8udGltZTtcclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5ib3hBbGVydCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0ID0ge307XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LmVtcHR5U2hlbGZBbGVydCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LmVtcHR5U2hlbGZBbGVydCA9IHtcclxuICAgICAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChbXCJlbXBsb3llZUNvdW50XCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5lbXBsb3llZUNvdW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZW1wbG95ZWVDb3VudCA9IHt9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxldHlwZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5lbXBsb3llZUNvdW50Py5zY2hlZHVsZT8uc2NoZWR1bGV0eXBlIHx8IFwic3RhbmRhcmRcIjtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmVtcGxveWVlQ291bnQ/LnNjaGVkdWxlPy5vcGVuVGltZTtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlZW5kVGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5lbXBsb3llZUNvdW50Py5zY2hlZHVsZT8uY2xvc2VUaW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVjdXJyZW5jZVR5cGUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZW1wbG95ZWVDb3VudD8ucmVjdXJyZW5jZT8udHlwZTtcclxuICAgICAgICAgICAgICB0aGlzLnJlY3VycmVuY2V0aW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmVtcGxveWVlQ291bnQ/LnJlY3VycmVuY2U/LnRpbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZWN1cnJlbmNlU3RhdHVzID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmVtcGxveWVlQ291bnQ/LnJlY3VycmVuY2U/LnN0YXR1cyB8fCBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgICAgXCJoYWxmc2h1dHRlclwiLFxyXG4gICAgICAgICAgICAgICAgXCJ0dmNvbXBsaWFuY2VcIixcclxuICAgICAgICAgICAgICAgIFwicXVldWVhbGVydFwiLFxyXG4gICAgICAgICAgICAgICAgXCJjYW1lcmF0YW1wZXJpbmdcIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVvcGVuYW5kY2xvc2VcIixcclxuICAgICAgICAgICAgICAgIFwibW9iaWxldXNhZ2VkZXRlY3Rpb25cIixcclxuICAgICAgICAgICAgICAgIFwic3RvcmVoeWdpZW5lbW9uaXRvcmluZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJ1bmlmb3JtZGV0ZWN0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICBcInN0YWZmZ3JvdXBpbmdcIixcclxuICAgICAgICAgICAgICAgIFwiYm94YWxlcnRcIixcclxuICAgICAgICAgICAgICAgIFwiZW1wbG95ZWVDb3VudFwiLFxyXG4gICAgICAgICAgICAgIF0uaW5jbHVkZXModGhpcy50eXBlKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICB0aGlzLmNhbWVyYUFuZ2xlRW5hYmxlZCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5jYW1lcmFBbmdsZT8uZW5hYmxlZCB8fCBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmFsZXJ0dGltZWtleWNvbmZpZyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hbGVydENvbmZpZz8uYWxsb3dCdWZmZXI/LmVuYWJsZWQgfHxcclxuICAgICAgICAgICAgICAgIGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTb3VyY2UgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYWR2YW5jZWRDb25maWc/LmF1ZGl0Q29uZmlnXHJcbiAgICAgICAgICAgICAgICAgID8uaW5wdXRTb3VyY2VGaWxlIHx8IFwiXCI7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVjdGlvblN0YXR1cyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hZHZhbmNlZENvbmZpZz8uZGV0ZWN0ZWRTdGF0dXNcclxuICAgICAgICAgICAgICAgICAgPy5kZXRlY3Rpb25zIHx8IFtdO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhcHJvY2Vzc2luZyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hZHZhbmNlZENvbmZpZz8uZGF0YVByb2Nlc3NpbmcgfHwgXCJcIjtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmV4cG9ydENvbmZpZz8uZm9ybWF0IHx8IFtdO1xyXG4gICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9ua2V5Y29uZmlnID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmFsZXJ0Q29uZmlnPy5hbGVydFNlbmRUbz8uZW5hYmxlZCB8fFxyXG4gICAgICAgICAgICAgICAgZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5hdXRvdGFza2tleWNvbmZpZyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hdXRvVGFza0NvbmZpZz8uZW5hYmxlZCB8fCBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmV4cG9ydGtleWNvbmZpZyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5leHBvcnRDb25maWc/LmVuYWJsZWQgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5kZXRlY3RlZHN0YXR1c2tleWNvbmZpZyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hZHZhbmNlZENvbmZpZz8uZGV0ZWN0ZWRTdGF0dXNcclxuICAgICAgICAgICAgICAgICAgPy5lbmFibGVkIHx8IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRrZXljb25maWcgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYWR2YW5jZWRDb25maWc/LmF1ZGl0Q29uZmlnXHJcbiAgICAgICAgICAgICAgICAgID8uZW5hYmxlZCB8fCBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmF1dG9UYXNrQ29uZmlnPy50YXNrVmFsaWRpdHk/LnR5cGUgPT0gXCJkYXlzXCIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZVNsb3QgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAzIH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hdXRvVGFza0NvbmZpZz8udGFza1ZhbGlkaXR5Py50eXBlID09IFwiaG91cnNcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW1lU2xvdCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDI0IH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZVNsb3QgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA2MCB9LCAoXywgaSkgPT4gaSArIDEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSBbXTtcclxuICAgICAgICAgICAgLy8gdGhpcy5jb3ZlcmFnZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvdmVyYWdlO1xyXG4gICAgICAgICAgICAvLyB0aGlzLmNoZWNrbGlzdElkID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscy5faWQ7XHJcbiAgICAgICAgICAgIC8vIHRoaXMudHlwZSA9IHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuY2hlY2tMaXN0VHlwZTtcclxuICAgICAgICAgICAgdGhpcy5nZXRDbGllbnRVc2VyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Wm9uZUxpc3QoKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRUZWFtTGlzdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBpZiAoZXJyb3IuY29kZSA9PSA0MDMpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZXJyb3I0MDMnXSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5pdGlhbERhdGEoZGF0YTogYW55LCBjaGFuZ2U/OiBhbnkpIHtcclxuICAgIGxldCB0ZW1wSWQgPSBkYXRhLm1hcCgoZWw6IGFueSkgPT4gZWw/LmlkKTtcclxuICAgIGxldCByZXMgPSB0aGlzLnN0b3JlTGlzdC5maWx0ZXIoKGVsOiBhbnkpID0+IHRlbXBJZC5pbmNsdWRlcyhlbD8uX2lkKSk7XHJcbiAgICByZXMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiAoZWxlbWVudC5pc1NlbGVjdGVkID0gdHJ1ZSkpO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID0gcmVzO1xyXG4gICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gXCJzdG9yZVwiIHx8IHRoaXMuYXNzaWduVHlwZSA9PT0gXCJ1c2VyXCIpIHtcclxuICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd0ltYWdlID0gdHJ1ZTtcclxuICAgICAgLy8gdGhpcy51c2VyRGV0YWlscygpLFxyXG4gICAgICAvLyAodGhpcy5hc3NpZ25UeXBlID09PSAnc3RvcmUnICYmIHRoaXMuaW5pdGlhbExvYWRpbmcpID8gKHRoaXMuaW5pdGlhbExvYWRpbmcgPSBmYWxzZSkgOiB0aGlzLmdldFRhYmxlRGF0YShjaGFuZ2UgPyBjaGFuZ2UgOiAnJyk7XHJcbiAgICAgIHRoaXMuaWRMaXN0ID0gdGhpcy5zaW5nbGVBc3NpZ247XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlkTGlzdCA9IHRoaXMuZ3JvdXBBc3NpZ247XHJcbiAgICAgIHRoaXMudXNlckRldGFpbHNWMigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VGFibGVEYXRhKGNoYW5nZT86IGFueSkge1xyXG4gICAgbGV0IGNvdW50ID0gMDtcclxuICAgIGlmICh0aGlzLmFzc2lnblNpbmdsZT8ubGVuZ3RoKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24ubGVuZ3RoICE9XHJcbiAgICAgICAgdGhpcy5hc3NpZ25TaW5nbGUubGVuZ3RoXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvdW50Kys7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduLmZvckVhY2goKGFzc2lnbjogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGZpbmRMaXN0ID0gdGhpcy5hc3NpZ25TaW5nbGUuZmlsdGVyKFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZUlkID09IGFzc2lnbi5zdG9yZUlkLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGZpbmRMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKGZpbmRMaXN0Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICBhc3NpZ24udXNlckVtYWlsLnRvTG93ZXJDYXNlKCkgIT1cclxuICAgICAgICAgICAgICBmaW5kTGlzdFswXS51c2VyRW1haWwudG9Mb3dlckNhc2UoKSAmJlxyXG4gICAgICAgICAgICAgIHRoaXMuY292ZXJhZ2UgPT09IFwic3RvcmVcIlxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBhc3NpZ24udXNlckVtYWlsID0gZmluZExpc3RbMF0udXNlckVtYWlsO1xyXG4gICAgICAgICAgICAgIGFzc2lnbi51c2VyTmFtZSA9IGZpbmRMaXN0WzBdLnVzZXJOYW1lO1xyXG4gICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoY291bnQpIHtcclxuICAgICAgICB0aGlzLnVwbG9hZCA9IGNoYW5nZSA/IFwidXBsb2FkXCIgOiBcInN0b3JlXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLnRhYmxlQXJyYXkgPSB0aGlzLmFzc2lnblNpbmdsZSA/IHRoaXMuYXNzaWduU2luZ2xlIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduO1xyXG4gICAgY2hhbmdlID8gKHRoaXMudGFibGVBcnJheSA9IHRoaXMuYXNzaWduU2luZ2xlKSA6IFtdO1xyXG4gICAgaWYgKHRoaXMudXBsb2FkID09PSBcInN0b3JlXCIpIHtcclxuICAgICAgbGV0IHRhYmxlID0gW1xyXG4gICAgICAgIC4uLnRoaXMudGFibGVBcnJheSxcclxuICAgICAgICAuLi50aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24sXHJcbiAgICAgIF07XHJcbiAgICAgIGxldCB1bmlxdWVUYWJsZSA9IG5ldyBNYXAoKTtcclxuICAgICAgLy8gQ29udmVydCBvYmplY3RzIHRvIEpTT04gc3RyaW5ncyBmb3IgZnVsbCBjb21wYXJpc29uXHJcbiAgICAgIHRhYmxlLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGl0ZW0gPSB7XHJcbiAgICAgICAgICBzdG9yZU5hbWU6IGl0ZW0/LnN0b3JlTmFtZSxcclxuICAgICAgICAgIHN0b3JlSWQ6IGl0ZW0uc3RvcmVJZCxcclxuICAgICAgICAgIHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwudG9Mb3dlckNhc2UoKSxcclxuICAgICAgICAgIHVzZXJOYW1lOiBpdGVtLnVzZXJOYW1lLFxyXG4gICAgICAgICAgX2lkOiBpdGVtLl9pZCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgX2lkOiBpdGVtLl9pZCxcclxuICAgICAgICAgIC4uLih0aGlzLnN0b3JlQ292ZXJhZ2VcclxuICAgICAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiBpdGVtLnVzZXJFbWFpbC50b0xvd2VyQ2FzZSgpLFxyXG4gICAgICAgICAgICAgIHN0b3JlTmFtZTogaXRlbT8uc3RvcmVOYW1lLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDoge30pLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IGtleSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOyAvLyBDb252ZXJ0IGVudGlyZSBvYmplY3QgdG8gc3RyaW5nIGFzIGEga2V5XHJcbiAgICAgICAgaWYgKCF1bmlxdWVUYWJsZS5oYXMoZGF0YSkpIHtcclxuICAgICAgICAgIHVuaXF1ZVRhYmxlLnNldChrZXksIGl0ZW0pOyAvLyBTdG9yZSB0aGUgb2JqZWN0IG9ubHkgaWYgaXQncyBjb21wbGV0ZWx5IHVuaXF1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYXNzaWduU2luZ2xlID0gQXJyYXkuZnJvbSh1bmlxdWVUYWJsZS52YWx1ZXMoKSk7XHJcbiAgICAgIHRoaXMudGFibGVBcnJheSA9IHRoaXMuYXNzaWduU2luZ2xlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnVwbG9hZCA9PT0gXCJ1cGxvYWRcIikge1xyXG4gICAgICB0aGlzLnRhYmxlQXJyYXkgPSB0aGlzLmFzc2lnblNpbmdsZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVBcnJheSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbjtcclxuICAgICAgdGhpcy5hc3NpZ25TaW5nbGUgPSB0aGlzLnRhYmxlQXJyYXk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlQXJyYXk/Lmxlbmd0aFxyXG4gICAgICA/ICh0aGlzLnNob3dJbWFnZSA9IGZhbHNlKVxyXG4gICAgICA6ICh0aGlzLnNob3dJbWFnZSA9IHRydWUpO1xyXG4gICAgdGhpcy5yZWNvcmRzVG90YWwgPSB0aGlzLnRhYmxlQXJyYXkubGVuZ3RoO1xyXG4gICAgaWYgKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gW3RoaXMucmVjb3Jkc1RvdGFsXTtcclxuICAgICAgdGhpcy5zaXplID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsIDEwLCAxNSwgMjBdO1xyXG4gICAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZUFycmF5LnNsaWNlKFxyXG4gICAgICB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSAtIHRoaXMuc2l6ZSxcclxuICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYWNjb3JkaWFuKGluZGV4OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNob3cgPT0gaW5kZXgpIHtcclxuICAgICAgdGhpcy5zaG93ID0gLTE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3cgPSBpbmRleDtcclxuICAgIH1cclxuICB9XHJcbiAgY29uZmlnYWNjb3JkaWFuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93Y29uZmlnID0gIXRoaXMuc2hvd2NvbmZpZztcclxuICB9XHJcbiAgYWR2YW5jZWFjY29yZGlhbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd2FkdmFuY2UgPSAhdGhpcy5zaG93YWR2YW5jZTtcclxuICB9XHJcbiAgQ2hlY2tsaXN0KCkge1xyXG4gICAgLy8gdGhpcy5tb2JpbGV1c2FnZWRldGVjdGlvbiA9IHRydWU7XHJcbiAgICAvLyB0aGlzLnN0b3Jlb3BlbmFuZGNsb3NlZGV0ZWN0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG4gIG9taXRfc3BlY2lhbF9jaGFyKGV2ZW50OiBhbnkpIHtcclxuICAgIHZhciBrO1xyXG4gICAgayA9IGV2ZW50LmNoYXJDb2RlOyAvLyAgICAgICAgIGsgPSBldmVudC5rZXlDb2RlOyAgKEJvdGggY2FuIGJlIHVzZWQpXHJcbiAgICByZXR1cm4gayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1Nyk7XHJcbiAgfVxyXG5cclxuICBjbGlja0FJY29uZmlndXJlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hc3NpZ25Db25maWcgPSB2YWx1ZTtcclxuICAgIHRoaXMuY29uZmlndXJlVHlwZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUxpbWl0KGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPCAwICYmIHRoaXMudHlwZSA9PSBcIm1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIpIHtcclxuICAgICAgLy8gZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMuZXJyb3Jtc2cgPSB0cnVlO1xyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC51c2FnZUV4Y2VlZHMgPSAnJztcclxuICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLnR5cGUgPT0gXCJzdG9yZW9wZW5hbmRjbG9zZVwiICYmXHJcbiAgICAgICF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lICYmXHJcbiAgICAgICF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLmNsb3NlVGltZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCdWZmZXIgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB0aGlzLmVycm9ybXNnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjb3ZlcmFnZTogYW55ID0gXCJzdG9yZVwiO1xyXG5cclxuICBzZWxlY3RSYWRpbyhkYXRhOiBhbnksIGNoYW5nZT86IGFueSkge1xyXG4gICAgdGhpcy5jb3ZlcmFnZSA9IGRhdGE7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgdGhpcy50YWJsZUZpbHRlciA9IFwiXCI7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSBbXTtcclxuICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIGlmIChkYXRhID09PSBcInN0b3JlXCIpIHtcclxuICAgICAgdGhpcy5zdG9yZUNvdmVyYWdlID0gdHJ1ZTtcclxuICAgICAgdGhpcy51c2VyQ292ZXJhZ2UgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAoZGF0YSA9PT0gXCJ1c2VyXCIpIHtcclxuICAgICAgdGhpcy51c2VyQ292ZXJhZ2UgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN0b3JlQ292ZXJhZ2UgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0SW5pdGlhbFRhYigpO1xyXG4gICAgaWYgKHRoaXMuY292ZXJhZ2UgPT09IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvdmVyYWdlKSB7XHJcbiAgICAgIHRoaXMuc2luZ2xlQXNzaWduID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2luZ2xlQXNzaWduO1xyXG4gICAgICB0aGlzLmdyb3VwQXNzaWduID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZ3JvdXBBc3NpZ247XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXNzaWduVHlwZSA/IHRoaXMudXNlckRldGFpbHMoKSA6IFwiXCI7XHJcbiAgICAgIH0sIDMwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaW5nbGVBc3NpZ24gPSBbXTtcclxuICAgICAgdGhpcy5ncm91cEFzc2lnbiA9IFtdO1xyXG4gICAgICAoKHRoaXMuYXNzaWduU2luZ2xlID0gW10pLCAodGhpcy5hc3NpZ25Hcm91cCA9IFtdKSk7XHJcbiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRhc3NpZ25Ecm9wZG93bigpO1xyXG4gIH1cclxuXHJcbiAgZXhjZWxEYXRhOiBhbnk7XHJcbiAgc2hvd1VzZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93VGVhbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dTdG9yZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dDbHVzdGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG9uRmlsZVVwbG9hZChldmVudDogYW55LCByZXVwbG9hZD86IGFueSkge1xyXG4gICAgdGhpcy52YWxpZGF0ZWRTdG9yZSA9IFtdO1xyXG4gICAgdGhpcy52YWxpZGF0ZWRVc2VyID0gW107XHJcbiAgICB0aGlzLnZhbGlkYXRlZENsdXN0ZXIgPSBbXTtcclxuICAgIHRoaXMudmFsaWRhdGVkVGVhbSA9IFtdO1xyXG4gICAgdGhpcy5uZXdVc2VyID0gW107XHJcbiAgICB0aGlzLmluYWN0aXZlU3RvcmVzID0gW107XHJcbiAgICB0aGlzLnNob3dVc2VyID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dUZWFtID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dTdG9yZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93Q2x1c3RlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93SW5hY3RpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMucmV1cGxvYWQgPSBmYWxzZTtcclxuICAgIHRoaXMudXBsb2FkID0gXCJ1cGxvYWRcIjtcclxuICAgIHRoaXMudXNlckRhdGEgPSB0aGlzLmV4Y2VsVXNlckRhdGEgPSBbXTtcclxuICAgIGxldCBkYXRhOiBhbnk7XHJcbiAgICBjb25zdCB0YXJnZXQ6IERhdGFUcmFuc2ZlciA9IDxEYXRhVHJhbnNmZXI+ZXZlbnQudGFyZ2V0O1xyXG4gICAgbGV0IGlzRXhjZWxGaWxlID0gISF0YXJnZXQuZmlsZXNbMF0ubmFtZS5tYXRjaCgvKC54bHN8Lnhsc3gpLyk7XHJcbiAgICBsZXQgZXJyb3I6IGFueSA9IFtdO1xyXG4gICAgbGV0IFZhbGlkYXRpb25FcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKGlzRXhjZWxGaWxlKSB7XHJcbiAgICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiBcImJpbmFyeVwiIH0pO1xyXG4gICAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgICBjb25zdCB3czogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbd3NuYW1lXTtcclxuICAgICAgICBkYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdzKTtcclxuICAgICAgICB0aGlzLmV4Y2VsRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgIWRhdGEubGVuZ3RoIHx8XHJcbiAgICAgICAgICBkYXRhLnNvbWUoKGl0ZW06IGFueSkgPT4gXCJjbHVzdGVyTmFtZVwiIGluIGl0ZW0gfHwgXCJ0ZWFtTmFtZVwiIGluIGl0ZW0pXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgVXBsb2FkIGEgVmFsaWQgZmlsZS5cIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZXF1aXJlZEtleXMgPSB0aGlzLnN0b3JlQ292ZXJhZ2VcclxuICAgICAgICAgID8gW1wic3RvcmVOYW1lXCIsIFwidXNlck5hbWVcIiwgXCJ1c2VyRW1haWxcIl1cclxuICAgICAgICAgIDogW1widXNlck5hbWVcIiwgXCJ1c2VyRW1haWxcIl07IC8vIE11c3QgYWx3YXlzIGJlIHByZXNlbnRcclxuICAgICAgICBjb25zdCBvcHRpb25hbEtleXMgPSB0aGlzLnN0b3JlQ292ZXJhZ2VcclxuICAgICAgICAgID8gW1widXNlclBob25lXCIsIFwiY2l0eVwiXVxyXG4gICAgICAgICAgOiBbXCJ1c2VyUGhvbmVcIiwgXCJjaXR5XCJdO1xyXG5cclxuICAgICAgICBjb25zdCBpc1ZhbGlkID0gZGF0YS5zb21lKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhpdGVtKTtcclxuICAgICAgICAgIGNvbnN0IGhhc1JlcXVpcmVkS2V5cyA9IHJlcXVpcmVkS2V5cy5ldmVyeSgoa2V5KSA9PlxyXG4gICAgICAgICAgICBrZXlzLmluY2x1ZGVzKGtleSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgY29uc3QgYWxsS2V5c0FyZUFsbG93ZWQgPSBrZXlzLmV2ZXJ5KFxyXG4gICAgICAgICAgICAoa2V5KSA9PiByZXF1aXJlZEtleXMuaW5jbHVkZXMoa2V5KSB8fCBvcHRpb25hbEtleXMuaW5jbHVkZXMoa2V5KSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXR1cm4gaGFzUmVxdWlyZWRLZXlzICYmIGFsbEtleXNBcmVBbGxvd2VkO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoIWlzVmFsaWQpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBVcGxvYWQgYSBWYWxpZCBmaWxlLlwiKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGRhdGEgPSBkYXRhLmZpbHRlcigoaXRlbTphbnkpID0+IHtcclxuICAgICAgICAvLyAgIHJldHVybiAoKGl0ZW0/LnN0b3JlTmFtZSAmJiBpdGVtPy5zdG9yZU5hbWUudHJpbSgpICE9ICcnICYmIGl0ZW0/LnN0b3JlTmFtZS50cmltKCkgIT0gbnVsbCkgfHwgKGl0ZW0/LnVzZXJOYW1lICYmIGl0ZW0/LnVzZXJOYW1lLnRyaW0oKSAhPSAnJyAmJiBpdGVtPy51c2VyTmFtZS50cmltKCkgIT0gbnVsbCkgfHwgKGl0ZW0/LnVzZXJFbWFpbCAmJiBpdGVtPy51c2VyRW1haWwudHJpbSgpICE9ICcnICYmIGl0ZW0/LnVzZXJFbWFpbC50cmltKCkgIT0gbnVsbCkpXHJcbiAgICAgICAgLy8gfSlcclxuXHJcbiAgICAgICAgZGF0YS5mb3JFYWNoKChlbGVtZW50OiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyRW1haWwpIHtcclxuICAgICAgICAgICAgZWxlbWVudC51c2VyRW1haWwgPSBlbGVtZW50Py51c2VyRW1haWwucmVwbGFjZSgvXFxzL2csIFwiXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc3RvcmVDb3ZlcmFnZSkge1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudD8uc3RvcmVOYW1lPy50cmltKCkgPT0gXCJcIiB8fCBlbGVtZW50LnN0b3JlTmFtZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgZXJyb3IucHVzaChgSW52YWxpZCBTdG9yZU5hbWUgLSBBJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQ/LnVzZXJOYW1lPy50cmltKCkgPT0gXCJcIiB8fCBlbGVtZW50LnVzZXJOYW1lID09IG51bGwpIHtcclxuICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFVzZXJOYW1lIC0gQiR7aW5kZXggKyAyfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyRW1haWw/LnRyaW0oKSA9PSBcIlwiIHx8IGVsZW1lbnQudXNlckVtYWlsID09IG51bGwpIHtcclxuICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIHVzZXJFbWFpbCAtIEMke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgZWxlbWVudD8udXNlckVtYWlsICYmXHJcbiAgICAgICAgICAgICAgIWVsZW1lbnQudXNlckVtYWlsLm1hdGNoKFxyXG4gICAgICAgICAgICAgICAgL15bYS16QS1aMC05Ll8tXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLDZ9JC8sXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIHVzZXJFbWFpbCAtIEMke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5jbHVzdGVyTmFtZSkge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuY2x1c3Rlck5hbWU/LnRyaW0oKSA9PSBcIlwiIHx8XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LmNsdXN0ZXJOYW1lID09IG51bGxcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgY2x1c3Rlck5hbWUgLSBEJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNlckNvdmVyYWdlICYmICFlbGVtZW50Py5zdG9yZU5hbWUpIHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQ/LnVzZXJOYW1lPy50cmltKCkgPT0gXCJcIiB8fCBlbGVtZW50LnVzZXJOYW1lID09IG51bGwpIHtcclxuICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFVzZXJOYW1lIC0gQSR7aW5kZXggKyAyfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyRW1haWw/LnRyaW0oKSA9PSBcIlwiIHx8IGVsZW1lbnQudXNlckVtYWlsID09IG51bGwpIHtcclxuICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIHVzZXJFbWFpbCAtIEIke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgZWxlbWVudD8udXNlckVtYWlsICYmXHJcbiAgICAgICAgICAgICAgIWVsZW1lbnQudXNlckVtYWlsLm1hdGNoKFxyXG4gICAgICAgICAgICAgICAgL15bYS16QS1aMC05Ll8tXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLDZ9JC8sXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIHVzZXJFbWFpbCAtIEIke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC50ZWFtTmFtZSkge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50LnRlYW1OYW1lPy50cmltKCkgPT0gXCJcIiB8fCBlbGVtZW50LnRlYW1OYW1lID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgdGVhbU5hbWUgLSBDJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZS5cIik7XHJcbiAgICAgICAgICAgIFZhbGlkYXRpb25FcnJvciA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5zdG9yZUNvdmVyYWdlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFzc2lnblR5cGUgPT09IFwic3RvcmVcIikge1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBzdG9yZU5hbWU6IGVsZW1lbnQ/LnN0b3JlTmFtZT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdXNlck5hbWU6IGVsZW1lbnQ/LnVzZXJOYW1lPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGVsZW1lbnQ/LnVzZXJFbWFpbD8udG9Mb3dlckNhc2UoKT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdXNlclBob25lOiBlbGVtZW50Py51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgICAgICAvLyBjaGVja0ZsYWc6IGVsZW1lbnQ/LmNoZWNrID8gZWxlbWVudC5jaGVjayA6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogZWxlbWVudD8uY2l0eSxcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3RvcmVcIixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgc3RvcmVOYW1lOiBlbGVtZW50Py5zdG9yZU5hbWU/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHVzZXJOYW1lOiBlbGVtZW50Py51c2VyTmFtZT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdXNlckVtYWlsOiBlbGVtZW50Py51c2VyRW1haWw/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIGNsdXN0ZXJOYW1lOiBlbGVtZW50Py5jbHVzdGVyTmFtZSxcclxuICAgICAgICAgICAgICAgIHVzZXJQaG9uZTogZWxlbWVudD8udXNlclBob25lLFxyXG4gICAgICAgICAgICAgICAgLy8gY2hlY2tGbGFnOiBlbGVtZW50Py5jaGVjayA/IGVsZW1lbnQuY2hlY2sgOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGNpdHk6IGVsZW1lbnQ/LmNpdHksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNsdXN0ZXJcIixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVzZXJDb3ZlcmFnZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hc3NpZ25UeXBlID09PSBcInVzZXJcIikge1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICB1c2VyTmFtZTogZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogZWxlbWVudD8udXNlckVtYWlsPy50b0xvd2VyQ2FzZSgpPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyUGhvbmU6IGVsZW1lbnQ/LnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgICAgIC8vIGNoZWNrRmxhZzogZWxlbWVudD8uY2hlY2sgPyBlbGVtZW50LmNoZWNrIDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInVzZXJcIixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgdXNlck5hbWU6IGVsZW1lbnQ/LnVzZXJOYW1lPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGVsZW1lbnQ/LnVzZXJFbWFpbD8udG9Mb3dlckNhc2UoKT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdGVhbU5hbWU6IGVsZW1lbnQ/LnRlYW1OYW1lLFxyXG4gICAgICAgICAgICAgICAgdXNlclBob25lOiBlbGVtZW50Py51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgICAgICAvLyBjaGVja0ZsYWc6IGVsZW1lbnQ/LmNoZWNrID8gZWxlbWVudC5jaGVjayA6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJ0ZWFtc1wiLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChlcnJvci5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKTtcclxuICAgICAgICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgICAgIHRpdGxlOiBgSW52YWxpZCBkZXRhaWxzIWAsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IGBQbGVhc2UgcHJvdmlkZSBjb3JyZWN0IGFuZCBjb21wbGV0ZSBzdG9yZSBpbmZvcm1hdGlvbi5gLFxyXG4gICAgICAgICAgICBidXR0b250eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICAgIGVycm9yOiBlcnJvcixcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLmFmdGVyVXBsbG9hZChwb3B1cGNvbnRlbnQpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAhVmFsaWRhdGlvbkVycm9yID8gdGhpcy5hZnRlclVwbGxvYWQoKSA6IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBVcGxvYWQgYSBFeGNlbCBmaWxlLlwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlVXNlckRldGFpbHMoZGVsPzogYW55KSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBpZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgYXNzaWduZWRVc2VyczogdGhpcy51c2VyRGF0YSxcclxuICAgICAgdXBsb2FkVXNlcjogdHJ1ZSxcclxuICAgICAgdHlwZTpcclxuICAgICAgICB0aGlzLm9iaj8udHlwZSAmJlxyXG4gICAgICAgICAgW1wibW9iaWxldXNhZ2VkZXRlY3Rpb25cIiwgXCJzdG9yZW9wZW5hbmRjbG9zZVwiXS5pbmNsdWRlcyh0aGlzLm9iai50eXBlKVxyXG4gICAgICAgICAgPyB0aGlzLm9iai50eXBlXHJcbiAgICAgICAgICA6IFwiXCIsXHJcbiAgICAgIC4uLihkZWwgPyB7IGRlbGV0ZTogZmFsc2UgfSA6IHt9KSxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLnZhbGlkYXRlVXNlcihwYXJhbXMpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsaWRhdGU6IEJvb2xlYW4gPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LkV4aXN0c0VtYWlsPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgICAgICAgICByZXM/LmRhdGE/LkV4aXN0c0VtYWlsLmpvaW4oXCIsIFwiKSArIFwiIFwiICsgcmVzPy5kYXRhPy5tZXNzYWdlLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzPy5kYXRhPy5pZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLl9pZCA9IHJlcy5kYXRhLmlkO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0SWQgPSByZXMuZGF0YS5pZDtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gW107XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckRldGFpbHMoKTtcclxuICAgICAgICAgICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAocmVzPy5kYXRhPy5kb21haW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZW1haWwgPSByZXM/LmRhdGE/LmRvbWFpbi5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5lbWFpbCk7XHJcbiAgICAgICAgICAgICAgICAvLyArJyAnKyc8YSBocmVmPVwicHJvZmlsZS9kb21haW5zXCI+QWRkIGRvbWFpbjwvYT4nXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgICAgICAgICAgIGVtYWlsLmpvaW4oXCIsIFwiKSArIFwiIFwiICsgXCJEb21haW4gaXMgbm90IEV4aXN0cy5cIixcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXM/LmRhdGE/LnVzZXI/Lmxlbmd0aCAmJiByZXM/LmRhdGE/LnN0b3JlPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHZhbGlkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgICAgICAgbGV0IHN0b3JlOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbjogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgICBsZXQgaW5hY3RpdmVTdG9yZTogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgICBzdG9yZSA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm1lc3NhZ2UgPT0gXCJcIjtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGluYWN0aXZlU3RvcmUgPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5tZXNzYWdlID09IFwic3RvcmUgaXMgaW5hY3RpdmVcIjtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSAhPSAnJyAmJiBpdGVtLm1lc3NhZ2UgIT0gJ3N0b3JlIGlzIGluYWN0aXZlJztcclxuICAgICAgICAgICAgICAgIC8vIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHN0b3JlID0gWy4uLm5ldyBTZXQoc3RvcmUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmUpKV07XHJcbiAgICAgICAgICAgICAgICBpbmFjdGl2ZVN0b3JlID0gW1xyXG4gICAgICAgICAgICAgICAgICAuLi5uZXcgU2V0KGluYWN0aXZlU3RvcmUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmUpKSxcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbiA9IFtcclxuICAgICAgICAgICAgICAgICAgLi4ubmV3IFNldChsb2NhdGlvbi5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpLFxyXG4gICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICAgIGlmIChzdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gYE5ldyBTdG9yZSBmb3VuZCBpbiB1cGxvYWRlZCBmaWxlYDtcclxuICAgICAgICAgICAgICAgICAgaWYgKGluYWN0aXZlU3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBgTmV3IFN0b3JlIGFuZCBJbmFjdGl2ZSBTdG9yZSBmb3VuZCBpbiB1cGxvYWRlZCBmaWxlYDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlc3JjOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgYSBuZXcgc3RvcmUuIEFkZCBuZXcgc3RvcmVzIGluIHRoZSBTdG9yZSBNYW5hZ2VtZW50IHVuZGVyIE1hbmFnZSBtZW51LmAsXHJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9udHlwZTogXCJBZGRzdG9yZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlOiBzdG9yZS5qb2luKFwiLCBcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uLmpvaW4oKSxcclxuICAgICAgICAgICAgICAgICAgICBpbmFjdGl2ZVN0b3JlczogaW5hY3RpdmVTdG9yZS5qb2luKCksXHJcbiAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluYWN0aXZlU3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VzcmM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogYEluYWN0aXZlIFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBJbmFjdGl2ZSBzdG9yZXMgZm91bmQgaW4gdGhlIC5jc3YuIFBsZWFzZSBhY3RpdmF0ZSBvciBza2lwIHRoZW0gdG8gcHJvY2VlZCB0byBhc3NpZ24uYCxcclxuICAgICAgICAgICAgICAgICAgICBidXR0b250eXBlOiBcIkFjdGl2ZXN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VidGl0bGU6IGluYWN0aXZlU3RvcmUuam9pbihcIiwgXCIpLFxyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChwb3B1cGNvbnRlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBzaXplOiBcIm1kXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2Ryb3A6IFwic3RhdGljXCIsXHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgICAgICAgICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFwiY29uZmlybVN0b3JlXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgbWFuYWdlL3N0b3Jlcy9hZGRpdGlvbi1tZXRob2RgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBcImFjdGl2ZVN0b3JlXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgbWFuYWdlL3N0b3Jlc2ApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBcInNraXBcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhQ29weS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFzdG9yZS5pbmNsdWRlcyhpdGVtLnN0b3JlTmFtZSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAhaW5hY3RpdmVTdG9yZS5pbmNsdWRlcyhpdGVtLnN0b3JlTmFtZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudXNlckRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBFbnRlciB2YWxpZCBEZXRhaWxzXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGxldCB1c2VyRGV0YWlscyA9IHRoaXMudXNlckRhdGEubWFwKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnVzZXJFbWFpbCxcclxuICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgdXNlciA9IFsuLi5yZXMuZGF0YS51c2VyXTtcclxuICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLnVzZXIgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgIHVzZXIuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1c2VyRGV0YWlscy5pbmNsdWRlcyhpdGVtLnVzZXJFbWFpbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS51c2VyLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnVzZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VzcmM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYEludml0ZSBuZXcgdXNlcnMgYWRkZWQgaW4gQ1NWYCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgbmV3IHVzZXJzLiBJbnZpdGUgdXNlcnMgYnkgc2VuZGluZyBtYWlsIHRvIHRoZW1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnR5cGU6IFwiSW52aXRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcjogcmVzLmRhdGEudXNlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiBcIm1kXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2Ryb3A6IFwic3RhdGljXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ/Lm1lc3NhZ2UgPT0gXCJjb25maXJtXCIgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9PSBcInNraXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBcInNraXBcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkgPSBbLi4udGhpcy51c2VyRGF0YV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGFDb3B5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlckRldGFpbHMuaW5jbHVkZXMoaXRlbS51c2VyRW1haWwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD8udXNlci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnVzZXJEYXRhLmZpbmRJbmRleChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVzZXIudXNlckVtYWlsID09IGl0ZW0udXNlckVtYWlsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXRlbS5pbnZpdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHJlcy5kYXRhLnVzZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbT8ubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtpdGVtLnVzZXJFbWFpbH0gLSAke2l0ZW0ubWVzc2FnZX1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy51c2VyRGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBQbGVhc2UgRW50ZXIgdmFsaWQgRGV0YWlsc2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlcz8uZGF0YT8udXNlcj8ubGVuZ3RoIHx8IHJlcz8uZGF0YT8uc3RvcmU/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgc3RvcmU6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgIGxldCBpbmFjdGl2ZVN0b3JlOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LnVzZXI/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlc3JjOlxyXG4gICAgICAgICAgICAgICAgICAgICAgJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGBJbnZpdGUgbmV3IHVzZXJzIGFkZGVkIGluIENTVmAsXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYFRoaXMgQ1NWIGNvbnRhaW5zIG5ldyB1c2Vycy4gSW52aXRlIHVzZXJzIGJ5IHNlbmRpbmcgbWFpbCB0byB0aGVtYCxcclxuICAgICAgICAgICAgICAgICAgICBidXR0b250eXBlOiBcIkludml0ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXI6IHJlcy5kYXRhLnVzZXIsXHJcbiAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBzdG9yZSA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSA9PSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGluYWN0aXZlU3RvcmUgPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm1lc3NhZ2UgPT0gXCJzdG9yZSBpcyBpbmFjdGl2ZVwiO1xyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgLy8gICByZXR1cm4gaXRlbS5tZXNzYWdlICE9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAvLyB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIHN0b3JlID0gWy4uLm5ldyBTZXQoc3RvcmUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmUpKV07XHJcbiAgICAgICAgICAgICAgICAgIGluYWN0aXZlU3RvcmUgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgLi4ubmV3IFNldChpbmFjdGl2ZVN0b3JlLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnN0b3JlKSksXHJcbiAgICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLm5ldyBTZXQobG9jYXRpb24ubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmUpKSxcclxuICAgICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHN0b3JlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IGBOZXcgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluYWN0aXZlU3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGBOZXcgU3RvcmUgYW5kIEluYWN0aXZlIFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbWFnZXNyYzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgYSBuZXcgc3RvcmUuIEFkZCBuZXcgc3RvcmVzIGluIHRoZSBTdG9yZSBNYW5hZ2VtZW50IHVuZGVyIE1hbmFnZSBtZW51LmAsXHJcbiAgICAgICAgICAgICAgICAgICAgICBidXR0b250eXBlOiBcIkFkZHN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdWJ0aXRsZTogc3RvcmUuam9pbihcIiwgXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uLmpvaW4oKSxcclxuICAgICAgICAgICAgICAgICAgICAgIGluYWN0aXZlU3RvcmVzOiBpbmFjdGl2ZVN0b3JlLmpvaW4oKSxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluYWN0aXZlU3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaW1hZ2VzcmM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGBJbmFjdGl2ZSBTdG9yZSBmb3VuZCBpbiB1cGxvYWRlZCBmaWxlYCxcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBJbmFjdGl2ZSBzdG9yZXMgZm91bmQgaW4gdGhlIC5jc3YuIFBsZWFzZSBhY3RpdmF0ZSBvciBza2lwIHRoZW0gdG8gcHJvY2VlZCB0byBhc3NpZ24uYCxcclxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnR5cGU6IFwiQWN0aXZlc3RvcmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlOiBpbmFjdGl2ZVN0b3JlLmpvaW4oXCIsIFwiKSxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCB1c2VyRGF0YUNvcHkgPSBbLi4udGhpcy51c2VyRGF0YV07XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RvcmVfaWQ6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzID0gdXNlckRhdGFDb3B5LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0b3JlOiBhbnkpID0+IGl0ZW0gPT0gc3RvcmUuc3RvcmVOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGV0YWlscy5jaXR5ID09IHVuZGVmaW5lZCB8fCBkZXRhaWxzLmNpdHkgPT0gXCJcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlX2lkLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3JlX2lkLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYENpdHkgaXMgcmVxdWlyZWQgb24gdGhpcyBzdG9yZXMgJHtzdG9yZV9pZC5qb2luKCl9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHBvcHVwY29udGVudCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIixcclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gXCJjb25maXJtU3RvcmVcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzL2FkZGl0aW9uLW1ldGhvZGApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFwiYWN0aXZlU3RvcmVcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ/Lm1lc3NhZ2UgPT0gXCJjb25maXJtXCIgfHwgcmVzdWx0ID09IFwic2tpcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFwic2tpcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1c2VyRGF0YUNvcHkgPSBbLi4udGhpcy51c2VyRGF0YV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcz8uZGF0YT8udXNlcj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEZXRhaWxzID0gcmVzLmRhdGEudXNlci5tYXAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnVzZXJFbWFpbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhQ29weS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlckRldGFpbHMuaW5jbHVkZXMoaXRlbS51c2VyRW1haWwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdG9yZV9pZDogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGV0YWlscyA9IHVzZXJEYXRhQ29weS5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RvcmU6IGFueSkgPT4gaXRlbSA9PSBzdG9yZS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzLmNpdHkgPT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMuY2l0eSA9PSBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVfaWQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcmVfaWQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDaXR5IGlzIHJlcXVpcmVkIG9uIHRoaXMgc3RvcmVzICR7c3RvcmVfaWQuam9pbigpfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzPy5kYXRhPy5zdG9yZT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGFDb3B5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhc3RvcmUuaW5jbHVkZXMoaXRlbS5zdG9yZU5hbWUpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpbmFjdGl2ZVN0b3JlLmluY2x1ZGVzKGl0ZW0uc3RvcmVOYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py51c2VyLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMudXNlckRhdGEuZmluZEluZGV4KCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1c2VyLnVzZXJFbWFpbCA9PSBpdGVtLnVzZXJFbWFpbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZW0uaW52aXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiByZXMuZGF0YS51c2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0/Lm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7aXRlbS51c2VyRW1haWx9IC0gJHtpdGVtLm1lc3NhZ2V9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnVzZXJEYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGxlYXNlIEVudGVyIHZhbGlkIERldGFpbHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFVzZXIoZGVsKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3IuZXJyb3IuZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZWRTdG9yZTogYW55ID0gW107XHJcbiAgdmFsaWRhdGVkVXNlcjogYW55ID0gW107XHJcbiAgdmFsaWRhdGVkQ2x1c3RlcjogYW55ID0gW107XHJcbiAgdmFsaWRhdGVkVGVhbTogYW55ID0gW107XHJcbiAgbmV3VXNlcjogYW55ID0gW107XHJcbiAgaW5hY3RpdmVTdG9yZXM6IGFueSA9IFtdO1xyXG4gIHNob3dJbmFjdGl2ZTogYW55ID0gZmFsc2U7XHJcblxyXG4gIHZhbGlkYXRlRGV0YWlscyhhZGRVc2VyPzogYW55KSB7XHJcbiAgICBsZXQgcGFyYW1zOiBhbnkgPSB7XHJcbiAgICAgIGNoZWNrbGlzdElkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBhc3NpZ25lZFVzZXJzOiB0aGlzLnVzZXJEYXRhLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2UsXHJcbiAgICB9O1xyXG4gICAgYWRkVXNlciA/IChwYXJhbXMuYWRkVXNlciA9IHRydWUpIDogXCJcIjtcclxuICAgIHRoaXMuU29wU2VydmljZS52YWxpZGF0ZVVzZXJ2MShwYXJhbXMpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnVwbG9hZCA9PT0gXCJzdG9yZVwiKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZUFycmF5LnVuc2hpZnQoLi4ucmVzPy5kYXRhPy5kYXRhKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSB0aGlzLnRhYmxlQXJyYXk7XHJcbiAgICAgICAgICAgICAgbGV0IGRhdGEgPSB0aGlzLnRhYmxlQXJyYXkubWFwKChlbDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpZDogZWw/Ll9pZCwgdHlwZTogZWw/LnR5cGUgfTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmlkTGlzdCA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaW5nbGVBc3NpZ24gPSB0aGlzLmlkTGlzdDtcclxuICAgICAgICAgICAgICB0aGlzLmFzc2lnblR5cGUgPT09IFwidXNlclwiXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuZ2V0YXNzaWduRHJvcGRvd24oXCJjaGFuZ2VcIilcclxuICAgICAgICAgICAgICAgIDogXCJcIjtcclxuICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlRGF0YSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkgPSByZXM/LmRhdGE/LmRhdGE7XHJcbiAgICAgICAgICAgICAgdGhpcy5hc3NpZ25TaW5nbGUgPSByZXM/LmRhdGE/LmRhdGE7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID0gdGhpcy50YWJsZUFycmF5O1xyXG4gICAgICAgICAgICAgIGxldCBkYXRhID0gcmVzPy5kYXRhPy5kYXRhLm1hcCgoZWw6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWQ6IGVsPy5faWQsIHR5cGU6IGVsPy50eXBlIH07XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pZExpc3QgPSBkYXRhO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2luZ2xlQXNzaWduID0gdGhpcy5pZExpc3Q7XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmFzc2lnblR5cGUgPT09IFwidXNlclwiXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuZ2V0YXNzaWduRHJvcGRvd24oXCJjaGFuZ2VcIilcclxuICAgICAgICAgICAgICAgIDogXCJcIjtcclxuICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlRGF0YSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlcnI/LmVycm9yPy5lcnJvciAmJiBlcnI/LmVycm9yPy5jb2RlID09IDQwMCkge1xyXG4gICAgICAgICAgICBsZXQgZXJyb3JEYXRhID0gZXJyPy5lcnJvcj8uZXJyb3I7XHJcbiAgICAgICAgICAgIHRoaXMuZXhjZWxEYXRhID0gZXJyb3JEYXRhPy5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJEYXRhID0gZXJyb3JEYXRhPy5kYXRhO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3JEYXRhLmV4aXN0RW1haWw/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICAgIGBBbHJlYWR5ICR7ZXJyb3JEYXRhLmV4aXN0RW1haWwudG9TdHJpbmcoKX0gYXNzaWduZWQgdG8gYW5vdGhlciBjbGllbnRgLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAgICAgZXJyb3JEYXRhLnN0b3JlPy5sZW5ndGggJiZcclxuICAgICAgICAgICAgICAhZXJyb3JEYXRhLmV4aXN0RW1haWw/Lmxlbmd0aFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlZFN0b3JlID0gZXJyb3JEYXRhPy5zdG9yZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3dTdG9yZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5hZnRlclVwbGxvYWQoKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgICBlcnJvckRhdGEuc3RvcmU/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAgIGVycm9yRGF0YS5leGlzdEVtYWlsPy5sZW5ndGhcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgIWVycm9yRGF0YT8uaW5BY3RpdmVTdG9yZXM/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKClcclxuICAgICAgICAgICAgICAgIDogXCJcIjtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgICAgICAgICBgQWxyZWFkeSAke2Vycm9yRGF0YS5zdG9yZS50b1N0cmluZygpfSBhc3NpZ25lZCB0byBhbm90aGVyIGNsaWVudGAsXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChlcnJvckRhdGE/LmluQWN0aXZlU3RvcmVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICB0aGlzLmluYWN0aXZlU3RvcmVzID0gZXJyb3JEYXRhPy5pbkFjdGl2ZVN0b3JlcztcclxuICAgICAgICAgICAgICB0aGlzLnNob3dJbmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5hZnRlclVwbGxvYWQoKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgICBlcnJvckRhdGE/LnVzZXI/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAgICFlcnJvckRhdGE/LmV4aXN0RW1haWw/Lmxlbmd0aFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlZFVzZXIgPSBlcnJvckRhdGEudXNlcjtcclxuICAgICAgICAgICAgICB0aGlzLnNob3dVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy51cGxvYWQgPT09IFwic3RvcmVcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtVXNlcnBvcHVwKCk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJVcGxsb2FkKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgIGVycm9yRGF0YT8udXNlcj8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgZXJyb3JEYXRhPy5leGlzdEVtYWlsPy5sZW5ndGhcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICAgIGBBbHJlYWR5ICR7ZXJyb3JEYXRhPy51c2VyLnRvU3RyaW5nKCl9IGFzc2lnbmVkIHRvIGFub3RoZXIgY2xpZW50YCxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChlcnJvckRhdGE/LmR1cGxpY2F0ZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKTtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgICAgICAgICBgJHtlcnJvckRhdGE/LmR1cGxpY2F0ZXM/LnRvU3RyaW5nKCl9IC0gJHtlcnJvckRhdGE/Lm1lc3NhZ2V9YCxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjaGVja0J1ZmZlcjogYW55O1xyXG4gIGNoYW5nZUJ1ZmZlclRpbWUoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jaGVja0J1ZmZlciA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgaWYgKHRoaXMuY2hlY2tCdWZmZXIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5vcGVuVGltZSA9IDE7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lID0gMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgPSAwO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLmNsb3NlVGltZSA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZFRhYih2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnRhYmxlQXJyYXkgPSBbXTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nMSA9IHRydWU7XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5hc3NpZ25UeXBlID0gdmFsdWU7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgdGhpcy50YWJsZUZpbHRlciA9IFwiXCI7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSBbXTtcclxuICAgIHRoaXMuZ2V0YXNzaWduRHJvcGRvd24oKTtcclxuICB9XHJcblxyXG4gIGNsb3NlYWN0aXZlcG9wdXAoKSB7XHJcbiAgICB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKCk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRVc2VyKGRlbD86IGFueSkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGlkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBhc3NpZ25lZFVzZXJzOiB0aGlzLnVzZXJEYXRhLFxyXG4gICAgICB1cGxvYWRVc2VyOiB0cnVlLFxyXG4gICAgICBhZGRVc2VyOiB0cnVlLFxyXG4gICAgICB0eXBlOlxyXG4gICAgICAgIHRoaXMub2JqPy50eXBlICYmXHJcbiAgICAgICAgICBbXCJtb2JpbGV1c2FnZWRldGVjdGlvblwiLCBcInN0b3Jlb3BlbmFuZGNsb3NlXCJdLmluY2x1ZGVzKHRoaXMub2JqLnR5cGUpXHJcbiAgICAgICAgICA/IHRoaXMub2JqLnR5cGVcclxuICAgICAgICAgIDogXCJcIixcclxuICAgICAgLi4uKGRlbCA/IHsgZGVsZXRlOiBmYWxzZSB9IDoge30pLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgIH07XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UudmFsaWRhdGVVc2VyKGRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLl9pZCA9IHJlc3BvbnNlLmRhdGEuaWQ7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdElkID0gcmVzcG9uc2UuZGF0YS5pZDtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbXTtcclxuICAgICAgICAgIHRoaXMudXNlckRldGFpbHMoKTtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdG9yZUxpc3Q6IGFueSA9IFtdO1xyXG4gIHNlYXJjaEtleTogYW55ID0gW107XHJcblxyXG4gIGdldGFzc2lnbkRyb3Bkb3duKGNoYW5nZT86IGFueSkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBjb3ZlcmFnZTogdGhpcy5jb3ZlcmFnZSxcclxuICAgICAgYXNzaWduVHlwZTogdGhpcy5hc3NpZ25UeXBlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnN0b3JlTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldGFzc2lnbkRyb3Bkb3duKGRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzPy5kYXRhPy5kYXRhO1xyXG4gICAgICAgICAgaWYgKGRhdGE/LmNvdmVyYWdlID09PSBcInN0b3JlXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hLZXkgPSBbXCJzdG9yZU5hbWVcIiwgXCJjbHVzdGVyTmFtZVwiXTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YT8uY292ZXJhZ2UgPT09IFwidXNlclwiKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoS2V5ID0gW1widXNlck5hbWVcIiwgXCJ0ZWFtTmFtZVwiXTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAhY2hhbmdlXHJcbiAgICAgICAgICAgID8gdGhpcy5nZXRJbml0aWFsRGF0YShcclxuICAgICAgICAgICAgICB0aGlzLmFzc2lnblR5cGUgPT09IFwic3RvcmVcIiB8fCB0aGlzLmFzc2lnblR5cGUgPT09IFwidXNlclwiXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuc2luZ2xlQXNzaWduXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuZ3JvdXBBc3NpZ24sXHJcbiAgICAgICAgICAgICAgY2hhbmdlID8gY2hhbmdlIDogXCJcIixcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICA6IFwiXCI7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMudGFibGVMb2FkaW5nMSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVDb3VudHMoZGF0YTogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgXCLwn5qAIH4gQ2hlY2tsaXN0Q29uZmlndXJlQ29tcG9uZW50IH4gZ2V0U3RvcmVDb3VudHMgfiBkYXRhOlwiLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnN0b3JlQ292ZXJhZ2UpIHtcclxuICAgICAgY29uc3QgdW5pcXVlU3RvcmVOYW1lcyA9IG5ldyBTZXQoXHJcbiAgICAgICAgZGF0YT8ubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmVOYW1lKSxcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIHVuaXF1ZVN0b3JlTmFtZXMuc2l6ZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy51c2VyQ292ZXJhZ2UpIHtcclxuICAgICAgY29uc3QgdW5pcXVlVXNlck5hbWVzID0gbmV3IFNldChkYXRhPy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS51c2VyTmFtZSkpO1xyXG4gICAgICByZXR1cm4gdW5pcXVlVXNlck5hbWVzLnNpemU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1c2VyRGV0YWlscygpIHtcclxuICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBpZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldFVzZXJEZXRhaWxzVjEocGFyYW1zKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICBpZiAocmVzID09IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKHRoaXMudGFibGVGaWx0ZXIubGVuZ3RoKSB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkgPSBbXTtcclxuICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdG4gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdG9yZUNvdmVyYWdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IHJlcy5kYXRhLnVzZXJEZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAoZWw6IGFueSkgPT4gZWw/LmNsdXN0ZXJOYW1lID09IFwiXCIgJiYgZWw/LnN0b3JlSWQgIT0gXCJcIixcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5hc3NpZ25Hcm91cCA9IHJlcy5kYXRhLnVzZXJEZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAoZWw6IGFueSkgPT4gZWw/LmNsdXN0ZXJOYW1lICE9PSBcIlwiLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVzZXJDb3ZlcmFnZSkge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkgPSByZXMuZGF0YS51c2VyRGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKGVsOiBhbnkpID0+IGVsPy50ZWFtTmFtZSA9PSBcIlwiICYmIGVsPy51c2VyTmFtZSAhPSBcIlwiLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmFzc2lnbkdyb3VwID0gcmVzLmRhdGEudXNlckRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgIChlbDogYW55KSA9PiBlbD8udGVhbU5hbWUgIT09IFwiXCIsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmFzc2lnblNpbmdsZSA9IHRoaXMudGFibGVBcnJheTtcclxuICAgICAgICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gdGhpcy50YWJsZUFycmF5Lmxlbmd0aDtcclxuICAgICAgICAgIC8vIHRoaXMucmVjb3Jkc1RvdGFsID0gcmVzLmRhdGEuY291bnQ7XHJcbiAgICAgICAgICBpZiAodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LCAyMF07XHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVBcnJheS5zbGljZShcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUgLSB0aGlzLnNpemUsXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMudGFibGVEYXRhXHJcbiAgICAgICAgICAgID8gKHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UpXHJcbiAgICAgICAgICAgIDogKHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZSk7XHJcblxyXG4gICAgICAgICAgLy8gdGhpcy5nZXRJbml0aWFsRGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlVjIoKSB7XHJcbiAgICBsZXQgZXhjZWxEYXRhOiBhbnkgPSBbXTtcclxuICAgIGlmICh0aGlzLnN0b3JlQ292ZXJhZ2UpIHtcclxuICAgICAgaWYgKHRoaXMudGFibGVBcnJheSA9PSBudWxsIHx8ICF0aGlzLnRhYmxlQXJyYXk/Lmxlbmd0aCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFzc2lnblR5cGUgPT09IFwic3RvcmVcIikge1xyXG4gICAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICBzdG9yZU5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgIHVzZXJOYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICB1c2VyRW1haWw6IFwiXCIsXHJcbiAgICAgICAgICAgIHVzZXJQaG9uZTogXCJcIixcclxuICAgICAgICAgICAgY2l0eTogXCJcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgIHN0b3JlTmFtZTogXCJcIixcclxuICAgICAgICAgICAgdXNlck5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgIHVzZXJFbWFpbDogXCJcIixcclxuICAgICAgICAgICAgY2x1c3Rlck5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgIHVzZXJQaG9uZTogXCJcIixcclxuICAgICAgICAgICAgY2l0eTogXCJcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50YWJsZUFycmF5ICYmIHRoaXMudGFibGVBcnJheT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy50YWJsZUFycmF5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gXCJzdG9yZVwiKSB7XHJcbiAgICAgICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICBzdG9yZU5hbWU6IGl0ZW0uc3RvcmVOYW1lLFxyXG4gICAgICAgICAgICAgIHVzZXJOYW1lOiBpdGVtLnVzZXJOYW1lLFxyXG4gICAgICAgICAgICAgIHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwsXHJcbiAgICAgICAgICAgICAgdXNlclBob25lOiBpdGVtLnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgICBjaXR5OiBpdGVtLmNpdHksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgIHN0b3JlTmFtZTogaXRlbS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgdXNlck5hbWU6IGl0ZW0udXNlck5hbWUsXHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiBpdGVtLnVzZXJFbWFpbCxcclxuICAgICAgICAgICAgICBjbHVzdGVyTmFtZTogaXRlbS5jbHVzdGVyTmFtZSxcclxuICAgICAgICAgICAgICB1c2VyUGhvbmU6IGl0ZW0udXNlclBob25lLFxyXG4gICAgICAgICAgICAgIGNpdHk6IGl0ZW0uY2l0eSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy51c2VyQ292ZXJhZ2UpIHtcclxuICAgICAgaWYgKHRoaXMudGFibGVBcnJheSA9PSBudWxsIHx8ICF0aGlzLnRhYmxlQXJyYXk/Lmxlbmd0aCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFzc2lnblR5cGUgPT09IFwidXNlclwiKSB7XHJcbiAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgIHVzZXJOYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICB1c2VyRW1haWw6IFwiXCIsXHJcbiAgICAgICAgICAgIHVzZXJQaG9uZTogXCJcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgIHVzZXJOYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICB1c2VyRW1haWw6IFwiXCIsXHJcbiAgICAgICAgICAgIHRlYW1OYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICB1c2VyUGhvbmU6IFwiXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGFibGVBcnJheSAmJiB0aGlzLnRhYmxlQXJyYXk/Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMudGFibGVBcnJheS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmFzc2lnblR5cGUgPT09IFwidXNlclwiKSB7XHJcbiAgICAgICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICB1c2VyTmFtZTogaXRlbS51c2VyTmFtZSxcclxuICAgICAgICAgICAgICB1c2VyRW1haWw6IGl0ZW0udXNlckVtYWlsLFxyXG4gICAgICAgICAgICAgIHVzZXJQaG9uZTogaXRlbS51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgIHVzZXJOYW1lOiBpdGVtLnVzZXJOYW1lLFxyXG4gICAgICAgICAgICAgIHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwsXHJcbiAgICAgICAgICAgICAgdGVhbU5hbWU6IGl0ZW0udGVhbU5hbWUsXHJcbiAgICAgICAgICAgICAgdXNlclBob25lOiBpdGVtLnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuU29wU2VydmljZS5leHBvcnRBc0V4Y2VsRmlsZShcclxuICAgICAgZXhjZWxEYXRhLFxyXG4gICAgICBgQ2hlY2tMaXN0XyR7dGhpcy5hc3NpZ25UeXBlfV9gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGVtYWlsRG93bmxvYWRUZW1wbGF0ZSgpIHtcclxuICAgIGxldCBleGNlbERhdGE6IGFueSA9IFtdO1xyXG4gICAgbGV0IHVzZXJzID0gdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsPy51c2VycyB8fCBbXTtcclxuICAgIGxldCB0ZWFtcyA9IHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbD8udGVhbXMgfHwgW107XHJcbiAgICBsZXQgbWF4TGVuZ3RoID0gTWF0aC5tYXgodXNlcnMubGVuZ3RoLCB0ZWFtcy5sZW5ndGgpO1xyXG4gICAgaWYgKHVzZXJzLmxlbmd0aCB8fCB0ZWFtcy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhMZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgIFVzZXJzOiB1c2Vyc1tpXT8udmFsdWUgfHwgJycsXHJcbiAgICAgICAgICBUZWFtczogdGVhbXNbaV0/Lm5hbWUgfHwgJycsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICBVc2VyczogJycsXHJcbiAgICAgICAgVGVhbXM6ICcnLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuU29wU2VydmljZS5leHBvcnRBc0V4Y2VsRmlsZShleGNlbERhdGEsICdlbWFpbFRlbXBsYXRlJyk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUV4Y2VsVGVtcGxhdGUoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSA8RGF0YVRyYW5zZmVyPmV2ZW50LnRhcmdldDtcclxuICAgIGNvbnN0IGZpbGUgPSB0YXJnZXQuZmlsZXNbMF07XHJcbiAgICBpZiAoIWZpbGUpIHJldHVybjtcclxuXHJcbiAgICAvLyAxLiBDaGVjayBpZiBmaWxlIGlzIHhsc3hcclxuICAgIGlmICghZmlsZS5uYW1lLm1hdGNoKC9cXC54bHN4JC8pKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSB1cGxvYWQgYSB2YWxpZCAueGxzeCBmaWxlLlwiKTtcclxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZWFkZXI6IEZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKTtcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiBcImJpbmFyeVwiIH0pO1xyXG4gICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWVdO1xyXG4gICAgICBjb25zdCBkYXRhOiBhbnlbXSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih3cyk7XHJcblxyXG4gICAgICBpZiAoIWRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiVXBsb2FkZWQgZmlsZSBpcyBlbXB0eS5cIik7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBUcmltIHRyYWlsaW5nIHNwYWNlcyBhbmQgZmlsdGVyIG51bGwvZW1wdHkgcm93c1xyXG4gICAgICBsZXQgaGFzVXNlcnMgPSBmYWxzZTtcclxuICAgICAgbGV0IGhhc1RlYW1zID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IHRyaW1tZWREYXRhID0gZGF0YS5maWx0ZXIoKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IHVzZXJWYWwgPSByb3cuVXNlcnMgIT0gbnVsbCA/IFN0cmluZyhyb3cuVXNlcnMpLnRyaW0oKSA6ICcnO1xyXG4gICAgICAgIGxldCB0ZWFtVmFsID0gcm93LlRlYW1zICE9IG51bGwgPyBTdHJpbmcocm93LlRlYW1zKS50cmltKCkgOiAnJztcclxuICAgICAgICBpZiAodXNlclZhbCkgaGFzVXNlcnMgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0ZWFtVmFsKSBoYXNUZWFtcyA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJWYWwgfHwgdGVhbVZhbDtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyAyLiBCb3RoIHVzZXJzIGFuZCB0ZWFtcyBlbXB0eSDigJQgYXQgbGVhc3Qgb25lIGlzIHJlcXVpcmVkXHJcbiAgICAgIGlmICghaGFzVXNlcnMgJiYgIWhhc1RlYW1zKSB7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiQXQgbGVhc3Qgb25lIG9mIFVzZXJzIG9yIFRlYW1zIGlzIHJlcXVpcmVkLlwiKTtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIE1hdGNoIHVwbG9hZGVkIHVzZXJzIHdpdGggYWxlcnRVc2VycyBieSBlbWFpbCAodmFsdWUpXHJcbiAgICAgIGxldCBtYXRjaGVkVXNlcnM6IGFueVtdID0gW107XHJcbiAgICAgIGlmIChoYXNVc2Vycykge1xyXG4gICAgICAgIHRyaW1tZWREYXRhLmZvckVhY2goKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgdXNlckVtYWlsID0gcm93LlVzZXJzICE9IG51bGwgPyBTdHJpbmcocm93LlVzZXJzKS50cmltKCkgOiAnJztcclxuICAgICAgICAgIGlmICh1c2VyRW1haWwpIHtcclxuICAgICAgICAgICAgbGV0IGZvdW5kID0gdGhpcy5hbGVydFVzZXJzLmZpbmQoKHU6IGFueSkgPT4gdS52YWx1ZT8udG9Mb3dlckNhc2UoKSA9PT0gdXNlckVtYWlsLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICBpZiAoZm91bmQgJiYgIW1hdGNoZWRVc2Vycy5zb21lKCh1OiBhbnkpID0+IHUudmFsdWU/LnRvTG93ZXJDYXNlKCkgPT09IGZvdW5kLnZhbHVlPy50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAgICAgICAgIG1hdGNoZWRVc2Vycy5wdXNoKGZvdW5kKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBNYXRjaCB1cGxvYWRlZCB0ZWFtcyB3aXRoIGFsZXJ0VGVhbXMgYnkgdGVhbSBuYW1lIChuYW1lKVxyXG4gICAgICBsZXQgbWF0Y2hlZFRlYW1zOiBhbnlbXSA9IFtdO1xyXG4gICAgICBpZiAoaGFzVGVhbXMpIHtcclxuICAgICAgICB0cmltbWVkRGF0YS5mb3JFYWNoKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHRlYW1OYW1lID0gcm93LlRlYW1zICE9IG51bGwgPyBTdHJpbmcocm93LlRlYW1zKS50cmltKCkgOiAnJztcclxuICAgICAgICAgIGlmICh0ZWFtTmFtZSkge1xyXG4gICAgICAgICAgICBsZXQgZm91bmQgPSB0aGlzLmFsZXJ0VGVhbXMuZmluZCgodDogYW55KSA9PiB0Lm5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHRlYW1OYW1lLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICBpZiAoZm91bmQgJiYgIW1hdGNoZWRUZWFtcy5zb21lKCh0OiBhbnkpID0+IHQubmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gZm91bmQubmFtZT8udG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICAgICAgICBtYXRjaGVkVGVhbXMucHVzaChmb3VuZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFtYXRjaGVkVXNlcnMubGVuZ3RoICYmICFtYXRjaGVkVGVhbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIkV4Y2VsIGRhdGEgaXMgbm90IG1hdGNoaW5nIHdpdGggZXhpc3RpbmcgZGF0YVwiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gVXBkYXRlIHR5cGUgYXJyYXkgYmFzZWQgb24gd2hpY2ggY29sdW1ucyBoYWQgZGF0YVxyXG4gICAgICBsZXQgdHlwZUFycjogc3RyaW5nW10gPSB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWw/LnR5cGUgfHwgW107XHJcbiAgICAgIGlmIChoYXNVc2VycyAmJiAhdHlwZUFyci5pbmNsdWRlcygndXNlcicpKSB7XHJcbiAgICAgICAgdHlwZUFyci5wdXNoKCd1c2VyJyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGhhc1RlYW1zICYmICF0eXBlQXJyLmluY2x1ZGVzKCd0ZWFtcycpKSB7XHJcbiAgICAgICAgdHlwZUFyci5wdXNoKCd0ZWFtcycpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbC50eXBlID0gdHlwZUFycjtcclxuXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbC51c2VycyA9IG1hdGNoZWRVc2VycztcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsLnRlYW1zID0gbWF0Y2hlZFRlYW1zO1xyXG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKTtcclxuICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoXCJGaWxlIHVwbG9hZGVkIFN1Y2Nlc3NmdWxseVwiKTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gZXZlbnQ7XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVGaWx0ZXIpIHtcclxuICAgICAgLy8gdGhpcy5zZWFyY2hUYWJsZURhdGEoKTtcclxuICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSB0aGlzLnNlYXJjaFRhYmxlLmxlbmd0aDtcclxuICAgICAgaWYgKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LCAyMF07XHJcbiAgICAgICAgdGhpcy5zaXplID0gNTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMuc2VhcmNoVGFibGUuc2xpY2UoXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUgLSB0aGlzLnNpemUsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUsXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID8gKHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UpIDogKHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVBcnJheS5zbGljZShcclxuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSAtIHRoaXMuc2l6ZSxcclxuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPyAodGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZSkgOiAodGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNpemUgPSBldmVudDtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVGaWx0ZXIpIHtcclxuICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSB0aGlzLnNlYXJjaFRhYmxlLmxlbmd0aDtcclxuICAgICAgaWYgKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LCAyMF07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnNlYXJjaFRhYmxlLnNsaWNlKFxyXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplIC0gdGhpcy5zaXplLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplLFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA/ICh0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlKSA6ICh0aGlzLnRhYmxlTG9hZGluZyA9IHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlQXJyYXkuc2xpY2UoXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUgLSB0aGlzLnNpemUsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUsXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID8gKHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UpIDogKHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG9wZW5Ecm9wZG93bihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmRyb3BEb3duID0gIXRoaXMuZHJvcERvd247XHJcbiAgfVxyXG5cclxuICBvcGVuRW1haWxEcm9wZG93bigpIHtcclxuICAgIHRoaXMuZW1haWxEcm9wZG93biA9ICF0aGlzLmVtYWlsRHJvcGRvd247XHJcbiAgfVxyXG5cclxuICBzZWFyY2hUYWJsZTogYW55O1xyXG4gIHNlYXJjaFRhYmxlRGF0YSgpIHtcclxuICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSAxO1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbGV0IHNlYXJjaEZpZWxkOiBhbnkgPSBbXHJcbiAgICAgIFwic3RvcmVOYW1lXCIsXHJcbiAgICAgIFwidXNlck5hbWVcIixcclxuICAgICAgXCJ1c2VyRW1haWxcIixcclxuICAgICAgXCJjbHVzdGVyTmFtZVwiLFxyXG4gICAgICBcInRlYW1OYW1lXCIsXHJcbiAgICBdO1xyXG5cclxuICAgIGlmICghdGhpcy50YWJsZUZpbHRlcikge1xyXG4gICAgICB0aGlzLmFzc2lnblR5cGUgPT09IFwic3RvcmVcIiB8fCB0aGlzLmFzc2lnblR5cGUgPT09IFwidXNlclwiXHJcbiAgICAgICAgPyB0aGlzLmdldFRhYmxlRGF0YSgpXHJcbiAgICAgICAgOiB0aGlzLnVzZXJEZXRhaWxzVjIoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHNlYXJjaERhdGEgPSB0aGlzLnRhYmxlRmlsdGVyLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGNvbnN0IHNlYXJjaFRlcm0gPSBzZWFyY2hEYXRhLnNwbGl0KFwiLFwiKS5tYXAoKGVsOiBhbnkpID0+IGVsLnRyaW0oKSk7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGFibGUgPSB0aGlzLnRhYmxlQXJyYXk/LmZpbHRlcigoaXRlbTogYW55KSA9PlxyXG4gICAgICAgIHNlYXJjaEZpZWxkLnNvbWUoKGZpZWxkOiBhbnkpID0+XHJcbiAgICAgICAgICBzZWFyY2hUZXJtLnNvbWUoKHRlcm06IGFueSkgPT5cclxuICAgICAgICAgICAgaXRlbVtmaWVsZF0/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGVybSksXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICksXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gdGhpcy5zZWFyY2hUYWJsZS5sZW5ndGg7XHJcbiAgICAgIGlmICh0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gW3RoaXMucmVjb3Jkc1RvdGFsXTtcclxuICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsIDEwLCAxNSwgMjBdO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnNlYXJjaFRhYmxlLnNsaWNlKFxyXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplIC0gdGhpcy5zaXplLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZURhdGEgPyAodGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZSkgOiAodGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlKTtcclxuICB9XHJcblxyXG4gIHNvcnREYXRhKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc29ydENvbHVtbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5zb3J0QnkgKj0gLTE7XHJcbiAgICBjb25zdCBzb3J0QnkgPSBwYXJzZUludCh0aGlzLnNvcnRCeSwgMTApID09PSAtMSA/IC0xIDogMTtcclxuICAgIHRoaXMudGFibGVBcnJheS5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHNvcnRCeSAqXHJcbiAgICAgICAgKGFbdGhpcy5zb3J0Q29sdW1uXSB8fCBcIlwiKS5sb2NhbGVDb21wYXJlKGJbdGhpcy5zb3J0Q29sdW1uXSB8fCBcIlwiKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlQXJyYXkuc2xpY2UoXHJcbiAgICAgIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplIC0gdGhpcy5zaXplLFxyXG4gICAgICB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGbGFnKGV2ZW50OiBhbnksIGluZGV4OiBhbnksIGVsZW1lbnQ6IGFueSkge1xyXG4gICAgZWxlbWVudC5jaGVja0ZsYWcgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnJlbW92ZVVzZXJzLmZpbmRJbmRleCgoaXRlbTogYW55KSA9PiBpdGVtID09IGVsZW1lbnQuaWQpO1xyXG4gICAgICB0aGlzLnJlbW92ZVVzZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMucHVzaChlbGVtZW50LmlkKTtcclxuICAgIH1cclxuICAgIGlmICghZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5yZW1vdmVVc2Vycy5wdXNoKGVsZW1lbnQuaWQpO1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmZpbmRJbmRleChcclxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtID09IGVsZW1lbnQuaWQsXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVEYXRhW2luZGV4XS5jaGVja0ZsYWcgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmxlbmd0aCAhPSB0aGlzLnJlY29yZHNUb3RhbFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrQWxsKGV2ZW50OiBhbnkpIHtcclxuICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbXTtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpdGVtLmNoZWNrRmxhZyA9IHRydWU7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5yZW1vdmVVc2Vycy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGl0ZW0uaWQsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnJlbW92ZVVzZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpKVxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5wdXNoKGl0ZW0uaWQpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVVc2Vycy5wdXNoKGl0ZW0uaWQpO1xyXG4gICAgICAgIGxldCBpbmRleCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGlkOiBhbnkpID0+IGlkID09IGl0ZW0uaWQsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZVNwZWNpZmljKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09IFwicmFuZ2VcIiAmJlxyXG4gICAgICBldmVudD8uc2VsZWN0ZWRMaXN0XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gZXZlbnQuc2VsZWN0ZWRMaXN0O1xyXG4gICAgfVxyXG4gIH1cclxuICBkYXRlUmFuZ2VTdGFydChldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuc3RhcnREYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gXCJvbmV0aW1lXCIpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICAgIGV2ZW50LnN0YXJ0RGF0ZSxcclxuICAgICAgICApLmZvcm1hdChcIllZWVktTU0tRERcIik7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICBldmVudC5zdGFydERhdGUsXHJcbiAgICAgICAgKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09IFwib25ldGltZVwiKVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGU7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRTdGFydERhdGUgPSB7XHJcbiAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSxcclxuICAgICAgKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgfTtcclxuICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgpO1xyXG4gICAgdGhpcy5taW5EYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgpO1xyXG4gICAgdGhpcy5taW5FbmREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSxcclxuICAgICkuZm9ybWF0KCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IFwiXCI7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSBbXTtcclxuICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSBcInJhbmdlXCIpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGV2ZW50Py5zdGFydERhdGUgJiZcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgIT0gZXZlbnQuc3RhcnREYXRlXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICAgIClcclxuICAgICAgICAgIC5hZGQoMSwgXCJkYXlcIilcclxuICAgICAgICAgIC5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0ge1xyXG4gICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlLFxyXG4gICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUsXHJcbiAgICAgICAgKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGV2ZW50Py5zdGFydERhdGUgJiZcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgIT0gZXZlbnQuc3RhcnREYXRlXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSBcIlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbGlkYXRlVGltZSgpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZVJhbmdlRW5kKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudCAmJiBldmVudC5lbmREYXRlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID5cclxuICAgICAgICB0aGlzLmRheWpzKGV2ZW50LmVuZERhdGUpLmZvcm1hdChcIllZWVktTU0tRERcIilcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICBldmVudC5lbmREYXRlLFxyXG4gICAgICAgICkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IHtcclxuICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSxcclxuICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlLFxyXG4gICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5taW5FbmREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICApLmZvcm1hdCgpO1xyXG4gICAgICB0aGlzLnZhbGlkYXRlVGltZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZGF0ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xyXG4gIC8vICAgdGhpcy5kYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydCk7XHJcbiAgLy8gICB0aGlzLm1vbnRoRGF0ZSA9IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpID09IDEgPyBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSArICdzdCcgOiBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSA9PSAyID8gcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgKyAnbmQnIDogcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgPT0gMyA/IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpICsgJ3JkJyA6IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpICsgJ3RoJztcclxuICAvLyAgIHRoaXMubW9udGhEYXkgPSB0aGlzLmRhdGUuZm9ybWF0KCdkZGRkJyk7XHJcbiAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0KS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuXHJcbiAgLy8gICBsZXQgd2Vla051bWJlciA9IGdldFdlZWtOdW1iZXIodGhpcy5kYXRlKTtcclxuICAvLyAgIHRoaXMuTW9udGh3ZWVrTnVtYmVyID0gd2Vla051bWJlciA9PSAxID8gd2Vla051bWJlciArICdzdCcgOiB3ZWVrTnVtYmVyID09IDIgPyB3ZWVrTnVtYmVyICsgJ25kJyA6IHdlZWtOdW1iZXIgPT0gMyA/IHdlZWtOdW1iZXIgKyAncmQnIDogd2Vla051bWJlciArICd0aCc7XHJcbiAgLy8gICB0aGlzLnNldE1vbnRoRGF0ZSh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCk7XHJcbiAgLy8gfVxyXG4gIC8vIHNldERheShkYXk6IGFueSkge1xyXG4gIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9IGRheTtcclxuICAvLyB9XHJcbiAgc2V0RGF5KGRheTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERheXMuaW5jbHVkZXMoZGF5KSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IHRoaXMuc2VsZWN0ZWREYXlzLmZpbHRlcihcclxuICAgICAgICAoc2VsZWN0ZWREYXkpID0+IHNlbGVjdGVkRGF5ICE9PSBkYXksXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF5cy5wdXNoKGRheSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHNldE1vbnRoRGF0ZShkYXRhOiBhbnkpIHtcclxuICAvLyAgIGlmIChkYXRhID09ICdkYXRlJykge1xyXG4gIC8vICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5ID0gW3RoaXMubW9udGhEYXRlXTtcclxuICAvLyAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbdGhpcy5tb250aERhdGVdO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgZWxzZSB7XHJcbiAgLy8gICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSBbdGhpcy5tb250aERheV07XHJcbiAgLy8gICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gW3RoaXMubW9udGhEYXldO1xyXG4gIC8vICAgICBsZXQgd2Vla051bWJlciA9IGdldFdlZWtOdW1iZXIodGhpcy5kYXRlKTtcclxuICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHdlZWtOdW1iZXIgPT0gMSA/IHdlZWtOdW1iZXIgKyAnc3QnIDogd2Vla051bWJlciA9PSAyID8gd2Vla051bWJlciArICduZCcgOiB3ZWVrTnVtYmVyID09IDMgPyB3ZWVrTnVtYmVyICsgJ3JkJyA6IHdlZWtOdW1iZXIgKyAndGgnO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPSBkYXRhO1xyXG5cclxuICAvLyB9XHJcbiAgLy8gc2V0RGF0ZShldmVudDogYW55KSB7XHJcbiAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPSBldmVudC5zdGFydDtcclxuICAvLyB9XHJcblxyXG4gIHB1Ymxpc2goc2hvd1BvcHVwOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgaWYgKFxyXG4gICAgICBbXCJ3ZWVrbHlcIiwgXCJ3ZWVrZGF5XCJdLmluY2x1ZGVzKFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlLFxyXG4gICAgICApICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzLmxlbmd0aCA9PSAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIHNlbGVjdCBhdGxlYXN0IDEgZGF5IHRvIHByb2NlZWRcIik7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy52YWxpZFRpbWUpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiSW52YWxpZCBTY2hlZHVsZSBFbmQgVGltZVwiKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNob3dSYW5nZVZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IFwiXCI7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9IFwib25ldGltZVwiKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09IFwibW9udGhseVwiICYmXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09IFwiZGF0ZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9XHJcbiAgICAgICAgdGhpcy5tb250aERhdGUgKyBcIiBcIiArIHRoaXMubW9udGhEYXk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09IFwibW9udGhseVwiICYmXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09IFwic3BlY2lmaWNcIlxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aGlzLnN1Ym1pdHRlZERhdGVzLmxlbmd0aClcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnN1Ym1pdHRlZERhdGVzO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2Ugc2VsZWN0IGF0bGVhc3QgMSBkYXRlIHRvIHByb2NlZWRcIik7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gXCJyYW5nZVwiKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlTGlzdDtcclxuICAgIH1cclxuICAgIGlmIChzaG93UG9wdXApIHtcclxuICAgICAgbGV0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMzggMjcuMDgxOFYyOC4wMDE4QzM3Ljk5ODggMzAuMTU4MiAzNy4zMDA1IDMyLjI1NjUgMzYuMDA5MyAzMy45ODM2QzM0LjcxODIgMzUuNzEwOCAzMi45MDMzIDM2Ljk3NDMgMzAuODM1NCAzNy41ODU3QzI4Ljc2NzQgMzguMTk3MSAyNi41NTczIDM4LjEyMzcgMjQuNTM0NSAzNy4zNzY0QzIyLjUxMTcgMzYuNjI5MSAyMC43ODQ3IDM1LjI0NzkgMTkuNjExIDMzLjQzODlDMTguNDM3MyAzMS42Mjk5IDE3Ljg3OTggMjkuNDg5OSAxOC4wMjE3IDI3LjMzODFDMTguMTYzNiAyNS4xODY0IDE4Ljk5NzIgMjMuMTM4MSAyMC4zOTgzIDIxLjQ5ODlDMjEuNzk5NCAxOS44NTk2IDIzLjY5MjggMTguNzE3MiAyNS43OTYyIDE4LjI0MkMyNy44OTk2IDE3Ljc2NjcgMzAuMTAwMyAxNy45ODQyIDMyLjA3IDE4Ljg2MThNMzggMjAuMDAxOEwyOCAzMC4wMTE4TDI1IDI3LjAxMThcIiBzdHJva2U9XCIjMDM5ODU1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQ0ZERjNcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHVibGlzaCAke3RoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNoZWNrTGlzdE5hbWV9IGNoZWNrbGlzdD9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBQdWJsaXNoaW5nIHdpbGwgbWFrZSB0aGlzIGNoZWNrbGlzdCBsaXZlLCBhbmQgY2hhbmdlcyB3aWxsIHRha2UgZWZmZWN0IGltbWVkaWF0ZWx5LmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogXCJjb25maXJtXCIsXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgICB9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyA9PSBcImNvbmZpcm1cIikge1xyXG4gICAgICAgICAgdGhpcy5kZXRhc3NpZ25VcGRhdGUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVQdWJsaXNoKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRldGFzc2lnblVwZGF0ZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVQdWJsaXNoKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGlzaEFJKHNob3dQb3B1cDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmICghdGhpcy5jb25maWdEYXRhLmNsaWVudElkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS50eXBlID0gdGhpcy50eXBlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmlkID0gdGhpcy5jaGVja2xpc3RJZDtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlnRGF0YS5wdWJsaXNoID0gdHJ1ZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyAhPT0gXCJzdG9yZVwiXHJcbiAgICAgID8gdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV2ZW50c1xyXG4gICAgICA6ICh0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZXZlbnRzID0gW10pO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy50eXBlID09IFwibW9iaWxldXNhZ2VkZXRlY3Rpb25cIiAmJlxyXG4gICAgICAhdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBFbnRlciB0aGUgVXNhZ2UgRXhjZWVkIER1cmF0aW9uXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLnR5cGUgPT0gXCJtb2JpbGV1c2FnZWRldGVjdGlvblwiICYmXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWQgPCAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCA9IDA7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICBcIlBsZWFzZSBFbnRlciB0aGUgVXNhZ2UgRXhjZWVkIER1cmF0aW9uIDE1IHRvIDk5OVwiLFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnR5cGUgPT0gXCJzdG9yZW9wZW5hbmRjbG9zZVwiICYmXHJcbiAgICAgIHRoaXMuY2hlY2tCdWZmZXIgJiZcclxuICAgICAgKHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgPiAzMCB8fFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgPCAxIHx8XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWUgPiAzMCB8fFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lIDwgMSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJCdWZmZXIgdGltZSBtaW4gMSBhbmQgbWF4IDMwXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIFtcInVzZXJcIiwgXCJ0ZWFtc1wiXS5pbmNsdWRlcyhcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudGFza0Fzc2lnbmVkVG8sXHJcbiAgICAgICkgJiZcclxuICAgICAgIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy51c2Vycy5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJUYXNrIGFzc2lnbmVkIHVzZXJzIGlzIHJlcXVpcmVkXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoW1widHZjb21wbGlhbmNlXCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5yZWN1cnJlbmNlID0ge307XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5kZXRlY3RlZFN0YXR1cyA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLnNjaGVkdWxldHlwZSA9XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZXR5cGU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUub3BlblRpbWUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVzdGFydFRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUuY2xvc2VUaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxlZW5kVGltZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5yZWN1cnJlbmNlLnN0YXR1cyA9XHJcbiAgICAgICAgdGhpcy5yZWN1cnJlbmNlU3RhdHVzO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnJlY3VycmVuY2UudGltZSA9XHJcbiAgICAgICAgdGhpcy5yZWN1cnJlbmNldGltZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5kZXRlY3RlZFN0YXR1cy5zdGF0dXMgPVxyXG4gICAgICAgIHRoaXMuaXNUaHJlc2hvbGRFbmFibGVkO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLmRldGVjdGVkU3RhdHVzLmRldGVjdGlvbnMgPVxyXG4gICAgICAgIHRoaXMuZGV0ZWN0aW9uVGhyZXNob2xkO1xyXG4gICAgfVxyXG4gICAgaWYgKFtcInN0b3JlaHlnaWVuZW1vbml0b3JpbmdcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3JpbmcucmVjdXJyZW5jZSA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc2NoZWR1bGUgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLmRldGVjdGVkU3RhdHVzID0ge307XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5zY2hlZHVsZS5zY2hlZHVsZXR5cGUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc2NoZWR1bGUub3BlblRpbWUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlID09IFwic3RhbmRhcmRcIiA/IHVuZGVmaW5lZCA6IHRoaXMuc2NoZWR1bGVzdGFydFRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5zY2hlZHVsZS5jbG9zZVRpbWUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlID09IFwic3RhbmRhcmRcIiA/IHVuZGVmaW5lZCA6IHRoaXMuc2NoZWR1bGVlbmRUaW1lO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3JpbmcucmVjdXJyZW5jZS5zdGF0dXMgPSB0aGlzXHJcbiAgICAgICAgLnJlY3VycmVuY2VUeXBlXHJcbiAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgOiBmYWxzZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnJlY3VycmVuY2UudGltZSA9XHJcbiAgICAgICAgdGhpcy5yZWN1cnJlbmNldGltZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnJlY3VycmVuY2UudHlwZSA9XHJcbiAgICAgICAgdGhpcy5yZWN1cnJlbmNlVHlwZTtcclxuICAgIH1cclxuICAgIGlmIChbXCJzdGFmZmdyb3VwaW5nXCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZykge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nID0ge307XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgc2NoZWR1bGV0eXBlOiB0aGlzLnNjaGVkdWxldHlwZSxcclxuICAgICAgICBvcGVuVGltZTogdGhpcy5zY2hlZHVsZXN0YXJ0VGltZSxcclxuICAgICAgICBjbG9zZVRpbWU6IHRoaXMuc2NoZWR1bGVlbmRUaW1lLFxyXG4gICAgICB9O1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLmFsZXJ0Q29vbGRvd25FbmFibGVkID1cclxuICAgICAgICB0aGlzLmFsZXJ0Q29vbGRvd25FbmFibGVkO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5hbGVydENvb2xkb3duVGltZSA9XHJcbiAgICAgICAgdGhpcy5hbGVydENvb2xkb3duVGltZTtcclxuICAgIH1cclxuICAgIGlmIChbXCJib3hhbGVydFwiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0KSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0ID0ge307XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LnNjaGVkdWxlID0ge1xyXG4gICAgICAgIHNjaGVkdWxldHlwZTogdGhpcy5zY2hlZHVsZXR5cGUsXHJcbiAgICAgICAgb3BlblRpbWU6IHRoaXMuc2NoZWR1bGVzdGFydFRpbWUsXHJcbiAgICAgICAgY2xvc2VUaW1lOiB0aGlzLnNjaGVkdWxlZW5kVGltZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LnJlY3VycmVuY2UgPSB7XHJcbiAgICAgICAgc3RhdHVzOiB0aGlzLnJlY3VycmVuY2VUeXBlID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICAgIHRpbWU6IHRoaXMucmVjdXJyZW5jZXRpbWUsXHJcbiAgICAgICAgdHlwZTogdGhpcy5yZWN1cnJlbmNlVHlwZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChbXCJlbXBsb3llZUNvdW50XCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZW1wbG95ZWVDb3VudCkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5lbXBsb3llZUNvdW50ID0ge307XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmVtcGxveWVlQ291bnQuc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgc2NoZWR1bGV0eXBlOiB0aGlzLnNjaGVkdWxldHlwZSxcclxuICAgICAgICBvcGVuVGltZTogdGhpcy5zY2hlZHVsZXN0YXJ0VGltZSxcclxuICAgICAgICBjbG9zZVRpbWU6IHRoaXMuc2NoZWR1bGVlbmRUaW1lLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZW1wbG95ZWVDb3VudC5yZWN1cnJlbmNlID0ge1xyXG4gICAgICAgIHN0YXR1czogdGhpcy5yZWN1cnJlbmNlVHlwZSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICB0aW1lOiB0aGlzLnJlY3VycmVuY2V0aW1lLFxyXG4gICAgICAgIHR5cGU6IHRoaXMucmVjdXJyZW5jZVR5cGUsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoW1wicXVldWVhbGVydFwiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMud2FpdFRpbWVMaW1pdCwgdGhpcy5xdWV1ZUxpbWl0KTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5zY2hlZHVsZSA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLnNjaGVkdWxldHlwZSA9XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZXR5cGU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUub3BlblRpbWUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVzdGFydFRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUuY2xvc2VUaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxlZW5kVGltZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQucXVldWVMZW5ndGhFbmFibGVkID1cclxuICAgICAgICB0aGlzLnF1ZXVlTGVuZ3RoRW5hYmxlZDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQucXVldWVMaW1pdCA9IHRoaXMucXVldWVMaW1pdDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQud2FpdFRpbWVFbmFibGVkID1cclxuICAgICAgICB0aGlzLndhaXRUaW1lRW5hYmxlZDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQud2FpdFRpbWVMaW1pdCA9IHRoaXMud2FpdFRpbWVMaW1pdDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQuYWxlcnRDb29sZG93bkVuYWJsZWQgPVxyXG4gICAgICAgIHRoaXMuYWxlcnRDb29sZG93bkVuYWJsZWQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LmFsZXJ0Q29vbGRvd25UaW1lID1cclxuICAgICAgICB0aGlzLmFsZXJ0Q29vbGRvd25UaW1lO1xyXG4gICAgfVxyXG4gICAgaWYgKFtcImNhbWVyYXRhbXBlcmluZ1wiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5jYW1lcmFBbmdsZSA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuY2FtZXJhQW5nbGUuZW5hYmxlZCA9IHRoaXMuY2FtZXJhQW5nbGVFbmFibGVkO1xyXG4gICAgfVxyXG4gICAgaWYgKHNob3dQb3B1cCkge1xyXG4gICAgICBsZXQgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEMUZBREZcIi8+PHBhdGggZD1cIk0zOCAyNy4wODE4VjI4LjAwMThDMzcuOTk4OCAzMC4xNTgyIDM3LjMwMDUgMzIuMjU2NSAzNi4wMDkzIDMzLjk4MzZDMzQuNzE4MiAzNS43MTA4IDMyLjkwMzMgMzYuOTc0MyAzMC44MzU0IDM3LjU4NTdDMjguNzY3NCAzOC4xOTcxIDI2LjU1NzMgMzguMTIzNyAyNC41MzQ1IDM3LjM3NjRDMjIuNTExNyAzNi42MjkxIDIwLjc4NDcgMzUuMjQ3OSAxOS42MTEgMzMuNDM4OUMxOC40MzczIDMxLjYyOTkgMTcuODc5OCAyOS40ODk5IDE4LjAyMTcgMjcuMzM4MUMxOC4xNjM2IDI1LjE4NjQgMTguOTk3MiAyMy4xMzgxIDIwLjM5ODMgMjEuNDk4OUMyMS43OTk0IDE5Ljg1OTYgMjMuNjkyOCAxOC43MTcyIDI1Ljc5NjIgMTguMjQyQzI3Ljg5OTYgMTcuNzY2NyAzMC4xMDAzIDE3Ljk4NDIgMzIuMDcgMTguODYxOE0zOCAyMC4wMDE4TDI4IDMwLjAxMThMMjUgMjcuMDExOFwiIHN0cm9rZT1cIiMwMzk4NTVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICB0aXRsZTogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBwdWJsaXNoICR7dGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdE5hbWV9IGNoZWNrbGlzdD9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBQdWJsaXNoaW5nIHdpbGwgbWFrZSB0aGlzIGNoZWNrbGlzdCBsaXZlLCBhbmQgY2hhbmdlcyB3aWxsIHRha2UgZWZmZWN0IGltbWVkaWF0ZWx5LmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogXCJjb25maXJtXCIsXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgICB9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyA9PSBcImNvbmZpcm1cIikge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgICAgICAgIHRoaXMuU29wU2VydmljZS51cGRhdGVBaUNvbmZpZ3VyZSh0aGlzLmNvbmZpZ0RhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzPy5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS90cmF4L2NoZWNrbGlzdFwiXSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGVycm9yID0gZXJyPy5lcnJvcj8uZXJyb3IgfHwgXCJzb21ldGhpbmcgd2VudCB3cm9uZ1wiO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnJvcik7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2F2ZURyYWZ0QUkoKSB7XHJcbiAgICBpZiAodGhpcy5jb25maWdEYXRhLmNsaWVudElkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5pZCA9IHRoaXMuY2hlY2tsaXN0SWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEudHlwZSA9IHRoaXMudHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoW1widHZjb21wbGlhbmNlXCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5yZWN1cnJlbmNlID0ge307XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5kZXRlY3RlZFN0YXR1cyA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLnNjaGVkdWxldHlwZSA9XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZXR5cGU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUub3BlblRpbWUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVzdGFydFRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUuY2xvc2VUaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxlZW5kVGltZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5yZWN1cnJlbmNlLnN0YXR1cyA9XHJcbiAgICAgICAgdGhpcy5yZWN1cnJlbmNlU3RhdHVzO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnJlY3VycmVuY2UudGltZSA9XHJcbiAgICAgICAgdGhpcy5yZWN1cnJlbmNldGltZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5kZXRlY3RlZFN0YXR1cy5zdGF0dXMgPVxyXG4gICAgICAgIHRoaXMuaXNUaHJlc2hvbGRFbmFibGVkO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLmRldGVjdGVkU3RhdHVzLmRldGVjdGlvbnMgPVxyXG4gICAgICAgIHRoaXMuZGV0ZWN0aW9uVGhyZXNob2xkO1xyXG4gICAgfVxyXG4gICAgaWYgKFtcInN0b3JlaHlnaWVuZW1vbml0b3JpbmdcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3JpbmcucmVjdXJyZW5jZSA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc2NoZWR1bGUgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLmRldGVjdGVkU3RhdHVzID0ge307XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5zY2hlZHVsZS5zY2hlZHVsZXR5cGUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc2NoZWR1bGUub3BlblRpbWUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlID09ICdzdGFuZGFyZCcgPyB1bmRlZmluZWQgOiB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc2NoZWR1bGUuY2xvc2VUaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxldHlwZSA9PSBcInN0YW5kYXJkXCIgPyB1bmRlZmluZWQgOiB0aGlzLnNjaGVkdWxlZW5kVGltZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnJlY3VycmVuY2Uuc3RhdHVzID0gdGhpc1xyXG4gICAgICAgIC5yZWN1cnJlbmNlVHlwZVxyXG4gICAgICAgID8gdHJ1ZVxyXG4gICAgICAgIDogZmFsc2U7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5yZWN1cnJlbmNlLnRpbWUgPVxyXG4gICAgICAgIHRoaXMucmVjdXJyZW5jZXRpbWU7XHJcbiAgICB9XHJcbiAgICBpZiAoW1wic3RhZmZncm91cGluZ1wiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZyA9IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLnNjaGVkdWxlID0ge1xyXG4gICAgICAgIHNjaGVkdWxldHlwZTogdGhpcy5zY2hlZHVsZXR5cGUsXHJcbiAgICAgICAgb3BlblRpbWU6IHRoaXMuc2NoZWR1bGVzdGFydFRpbWUsXHJcbiAgICAgICAgY2xvc2VUaW1lOiB0aGlzLnNjaGVkdWxlZW5kVGltZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuYWxlcnRDb29sZG93bkVuYWJsZWQgPVxyXG4gICAgICAgIHRoaXMuYWxlcnRDb29sZG93bkVuYWJsZWQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLmFsZXJ0Q29vbGRvd25UaW1lID1cclxuICAgICAgICB0aGlzLmFsZXJ0Q29vbGRvd25UaW1lO1xyXG4gICAgfVxyXG4gICAgaWYgKFtcImJveGFsZXJ0XCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYm94QWxlcnQpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYm94QWxlcnQgPSB7fTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYm94QWxlcnQuc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgc2NoZWR1bGV0eXBlOiB0aGlzLnNjaGVkdWxldHlwZSxcclxuICAgICAgICBvcGVuVGltZTogdGhpcy5zY2hlZHVsZXN0YXJ0VGltZSxcclxuICAgICAgICBjbG9zZVRpbWU6IHRoaXMuc2NoZWR1bGVlbmRUaW1lLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYm94QWxlcnQucmVjdXJyZW5jZSA9IHtcclxuICAgICAgICBzdGF0dXM6IHRoaXMucmVjdXJyZW5jZVR5cGUgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgdGltZTogdGhpcy5yZWN1cnJlbmNldGltZSxcclxuICAgICAgICB0eXBlOiB0aGlzLnJlY3VycmVuY2VUeXBlLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKFtcImVtcGxveWVlQ291bnRcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5lbXBsb3llZUNvdW50KSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmVtcGxveWVlQ291bnQgPSB7fTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZW1wbG95ZWVDb3VudC5zY2hlZHVsZSA9IHtcclxuICAgICAgICBzY2hlZHVsZXR5cGU6IHRoaXMuc2NoZWR1bGV0eXBlLFxyXG4gICAgICAgIG9wZW5UaW1lOiB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lLFxyXG4gICAgICAgIGNsb3NlVGltZTogdGhpcy5zY2hlZHVsZWVuZFRpbWUsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5lbXBsb3llZUNvdW50LnJlY3VycmVuY2UgPSB7XHJcbiAgICAgICAgc3RhdHVzOiB0aGlzLnJlY3VycmVuY2VUeXBlID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICAgIHRpbWU6IHRoaXMucmVjdXJyZW5jZXRpbWUsXHJcbiAgICAgICAgdHlwZTogdGhpcy5yZWN1cnJlbmNlVHlwZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChbXCJxdWV1ZWFsZXJ0XCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5zY2hlZHVsZSA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLnNjaGVkdWxldHlwZSA9XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZXR5cGU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUub3BlblRpbWUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVzdGFydFRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUuY2xvc2VUaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxlZW5kVGltZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQucXVldWVMZW5ndGhFbmFibGVkID1cclxuICAgICAgICB0aGlzLnF1ZXVlTGVuZ3RoRW5hYmxlZDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQucXVldWVMaW1pdCA9IHRoaXMucXVldWVMaW1pdDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQud2FpdFRpbWVFbmFibGVkID1cclxuICAgICAgICB0aGlzLndhaXRUaW1lRW5hYmxlZDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQud2FpdFRpbWVMaW1pdCA9IHRoaXMud2FpdFRpbWVMaW1pdDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQuYWxlcnRDb29sZG93bkVuYWJsZWQgPVxyXG4gICAgICAgIHRoaXMuYWxlcnRDb29sZG93bkVuYWJsZWQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LmFsZXJ0Q29vbGRvd25UaW1lID1cclxuICAgICAgICB0aGlzLmFsZXJ0Q29vbGRvd25UaW1lO1xyXG4gICAgfVxyXG4gICAgaWYgKFtcImNhbWVyYXRhbXBlcmluZ1wiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5jYW1lcmFBbmdsZSA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuY2FtZXJhQW5nbGUuZW5hYmxlZCA9IHRoaXMuY2FtZXJhQW5nbGVFbmFibGVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLnB1Ymxpc2ggPSBmYWxzZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyAhPT0gXCJzdG9yZVwiXHJcbiAgICAgID8gdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV2ZW50c1xyXG4gICAgICA6ICh0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZXZlbnRzID0gW10pO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnR5cGUgPT0gXCJtb2JpbGV1c2FnZWRldGVjdGlvblwiICYmXHJcbiAgICAgICF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLnVzYWdlRXhjZWVkXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIEVudGVyIHRoZSBVc2FnZSBFeGNlZWQgRHVyYXRpb25cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMudHlwZSA9PSBcIm1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIgJiZcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCA8IDFcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLnVzYWdlRXhjZWVkID0gMDtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFxyXG4gICAgICAgIFwiUGxlYXNlIEVudGVyIHRoZSBVc2FnZSBFeGNlZWQgRHVyYXRpb24gMTUgdG8gOTk5XCIsXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgaW1hZ2VzcmM6XHJcbiAgICAgICAgJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgIHRpdGxlOiBgVW5zYXZlZCBjaGFuZ2VzYCxcclxuICAgICAgY29udGVudDogYERvIHlvdSB3YW50IHRvIHNhdmUgYXMgZHJhZnQ/YCxcclxuICAgICAgYnV0dG9udHlwZTogXCJkcmFmdFwiLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICBzaXplOiBcIm1kXCIsXHJcbiAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuXHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAoIXJlcykge1xyXG4gICAgICAgIHRoaXMucG9wdXBDb3VudCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcyA9PSBcImNvbmZpcm1cIikge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICAgICAgdGhpcy5Tb3BTZXJ2aWNlLnVwZGF0ZUFpQ29uZmlndXJlKHRoaXMuY29uZmlnRGF0YSlcclxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoXHJcbiAgICAgICAgICAgICAgICAgIFwiRHJhZnQgaGFzIGJlZW4gc2F2ZWQgc3VjY2Vzc2Z1bGx5LlwiLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS90cmF4L2NoZWNrbGlzdFwiXSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yIHx8IFwic29tZXRoaW5nIHdlbnQgd3JvbmdcIjtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHVwbG9hZEFJZmlsZXMoKSB7XHJcbiAgICB0aGlzLnVwbG9hZERhdGEgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGF0YUZyb21DaGlsZChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMudXBsb2FkRGF0YSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQdWJsaXNoKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnR5cGUgPT0gXCJtb2JpbGV1c2FnZWRldGVjdGlvblwiIHx8XHJcbiAgICAgIHRoaXMudHlwZSA9PSBcInN0b3Jlb3BlbmFuZGNsb3NlXCJcclxuICAgICkge1xyXG4gICAgICAvLyBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicpIHtcclxuICAgICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5kZXRlY3Rpb25BcmVhID0gdGhpcy56b25lcztcclxuICAgICAgLy8gfVxyXG4gICAgICBpZiAodGhpcy50eXBlID09IFwic3RvcmVvcGVuYW5kY2xvc2VcIikge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID1cclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5vcGVuVGltZTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPVxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNsb3NlVGltZTtcclxuICAgICAgfVxyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUbyA9IHRoaXMuZW1haWxMaXN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucHVibGlzaCA9IHRydWU7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb3ZlcmFnZSA9IHRoaXMuY292ZXJhZ2U7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuc3VibWl0VHlwZSA9IFwicHVibGlzaFwiO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLnJlbW92ZWRVc2VycyA9IHRoaXMucmVtb3ZlVXNlcnM7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVdlZWtEYXlzID0gdGhpcy5zZWxlY3RlZERheXM7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEudXBkYXRlQ29uZmlndXJlID0gdGhpcy5kaXNhYmxlZFF1ZXN0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5zaG93RWRpdCA9IHRoaXMuc2hvd0VkaXQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gW1xyXG4gICAgICAuLi50aGlzLnNpbmdsZUFzc2lnbixcclxuICAgICAgLi4udGhpcy5ncm91cEFzc2lnbixcclxuICAgIF07XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zdG9yZUNvdW50ID1cclxuICAgICAgdGhpcy5hc3NpZ25TaW5nbGU/Lmxlbmd0aCArIHRoaXMuZ3JvdXBBc3NpZ24/Lmxlbmd0aDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmVuYWJsZU5ld0RlcGxveWVkU3RvcmUgPSB0aGlzLnN0b3JlQ292ZXJhZ2VcclxuICAgICAgPyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5lbmFibGVOZXdEZXBsb3llZFN0b3JlXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgICBjb25zdCB0aW1lWm9uZSA9IGRheWpzLnR6Lmd1ZXNzKCk7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEudGltZVpvbmUgPSB0aW1lWm9uZTtcclxuXHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNoZWNrTGlzdE5hbWV9IGNoZWNrbGlzdCBwdWJsaXNoZWQuYCxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS90cmF4L2NoZWNrbGlzdFwiXSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIEFzc2lnbiBhIFVzZXIhXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgQXNzaWduIGEgVXNlciFcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3IgfHwgXCJzb21ldGhpbmcgd2VudCB3cm9uZ1wiO1xyXG4gICAgICAgICAgaWYgKGVyciA9PSBcIkNoZWNrbGlzdCBnb3Qgc3VibWl0dGVkXCIpIHtcclxuICAgICAgICAgICAgbGV0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCI+PC9yZWN0PjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiPjwvcmVjdD48L3N2Zz5gLFxyXG4gICAgICAgICAgICAgIHRpdGxlOiBgQ2hlY2tsaXN0IFVwZGF0ZSFgLFxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGBNdWx0aXBsZSBzdG9yZXMgaGF2ZSBhbHJlYWR5IHN1Ym1pdHRlZCB0aGlzIGNoZWNrbGlzdC4gRG8geW91IHdhbnQgdG8gcmUtYXNzaWduIGl0IHRvIHRoZW0/YCxcclxuICAgICAgICAgICAgICBidXR0b250eXBlOiBcInJlQXNzaWduXCIsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICAgICAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcyA9PSBcImNvbmZpcm1cIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmVkaXRTdWJtaXQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuZWRpdFN1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnB1Ymxpc2goZmFsc2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBkZXRhc3NpZ25VcGRhdGUoY2FsbGJhY2s6IChyZXN1bHQ6IGJvb2xlYW4pID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNoZWNrTGlzdElkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBhc3NpZ25lZExpc3Q6IHRoaXMuYXNzaWduU2luZ2xlIHx8IFtdLFxyXG4gICAgICBhc3NpZ25lZEdyb3VwOiB0aGlzLmFzc2lnbkdyb3VwIHx8IFtdLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2UsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuU29wU2VydmljZS5hc3NpZ25VcGRhdGUocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWRkZWQgPSByZXM/LmRhdGE/LmFkZGVkO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEucmVtb3ZlZCA9IHJlcz8uZGF0YT8ucmVtb3ZlZDtcclxuICAgICAgICAgICAgY2FsbGJhY2sodHJ1ZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjYWxsYmFjayhmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgIGNhbGxiYWNrKGZhbHNlKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIHNlbGVjdHN0b3JlKGVsZW1lbnQ6IGFueSkge1xyXG4gIC8vICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4U3RvcmVDb21wb25lbnQsIHtcclxuICAvLyAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gIC8vICAgfSk7XHJcblxyXG4gIC8vICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBlbGVtZW50O1xyXG5cclxuICAvLyAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgLy8gICAgIGlmIChkYXRhICYmIGRhdGEubXNnID09ICdjb25maXJtJykge1xyXG4gIC8vICAgICAgIGlmIChkYXRhLnN0b3Jlcy5sZW5ndGgpIHtcclxuICAvLyAgICAgICAgIGxldCBzb3AgPSBkYXRhLnN0b3JlcztcclxuICAvLyAgICAgICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7XHJcbiAgLy8gICAgICAgICAvLyB0aGlzLlNvcFNlcnZpY2UuYXNzaWduU29wU3RvcmUoc29wLCBpZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgICAgLy8gICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gIC8vICAgICAgICAgLy8gICAgIGVsZW1lbnQuc29wX3N0b3JlcyA9IGRhdGEuc3RvcmVzO1xyXG4gIC8vICAgICAgICAgLy8gICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIC8vICAgICAgICAgLy8gICB9XHJcbiAgLy8gICAgICAgICAvLyB9LCAoZXJyb3I6IGFueSkgPT4ge1xyXG5cclxuICAvLyAgICAgICAgIC8vIH0pXHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KVxyXG4gIC8vIH1cclxuICBuZXdzdG9yZSgpIHtcclxuICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS9zdG9yZXNcIl0sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgY2hlY2tsaXN0aWQ6IEpTT04uc3RyaW5naWZ5KHRoaXMub2JqKSB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbnZpdGV1c2VyKCkge1xyXG4gICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbXCIvY29udHJvbC1wYW5lbC9hc3NpZ24tcm9sZVwiXSwge1xyXG4gICAgICBxdWVyeVBhcmFtczogeyBjaGVja2xpc3RpZDogSlNPTi5zdHJpbmdpZnkodGhpcy5vYmopIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZURheSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSBcImRheVwiXHJcbiAgICAgID8gdGhpcy5kYXlqcygpLmZvcm1hdChcIkREXCIpXHJcbiAgICAgIDogXCJcIjtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUubGVuZ3RoICE9IDApIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlIDwgOSA/IFwiMFwiICsgZXZlbnQudGFyZ2V0LnZhbHVlIDogZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9XHJcbiAgICAgICAgdGhpcy5kYXlqcygpLmZvcm1hdChcIkREXCIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoIWlzTmFOKGV2ZW50LnRhcmdldC52YWx1ZSkpIHtcclxuICAgICAgaWYgKGV2ZW50LnRhcmdldC52YWx1ZVswXSA9PSAzICYmIGV2ZW50LnRhcmdldC52YWx1ZVsxXSA+IDEpIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAzO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSAzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChldmVudC50YXJnZXQudmFsdWVbMF0gPiAzICYmIGV2ZW50LnRhcmdldC52YWx1ZVsxXSA+PSAwKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlWzBdO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPVxyXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlWzBdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChldmVudC50YXJnZXQudmFsdWVbMF0gPCAxKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gXCJcIjtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gXCJcIjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IFwiXCI7XHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzYXZlZHJhZnQoKSB7XHJcbiAgICBpZiAoIXRoaXMudmFsaWRUaW1lKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIkludmFsaWQgU2NoZWR1bGUgRW5kIFRpbWVcIik7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGxldCBzdGFydERhdGVXaXRoVGltZSwgZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgaWYgKCF0aGlzLnNob3dSYW5nZVZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IFwiXCI7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9IFwib25ldGltZVwiKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09IFwibW9udGhseVwiICYmXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09IFwiZGF0ZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9XHJcbiAgICAgICAgdGhpcy5tb250aERhdGUgKyBcIiBcIiArIHRoaXMubW9udGhEYXk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09IFwibW9udGhseVwiICYmXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09IFwic3BlY2lmaWNcIlxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aGlzLnN1Ym1pdHRlZERhdGVzLmxlbmd0aClcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnN1Ym1pdHRlZERhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSBcInJhbmdlXCIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0O1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRUeXBlID09ICdyYW5nZScpIHtcclxuICAgIC8vICAgbGV0IHN0YXJ0ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUuc3BsaXQoJyAnKTtcclxuICAgIC8vICAgbGV0IGVuZCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZS5zcGxpdCgnICcpO1xyXG4gICAgLy8gICBzdGFydERhdGVXaXRoVGltZSA9IHN0YXJ0Lmxlbmd0aCA+IDIgPyBzdGFydFsxXSArICcgJyArIHN0YXJ0WzJdIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWU7XHJcbiAgICAvLyAgIGVuZERhdGVXaXRoVGltZSA9IGVuZC5sZW5ndGggPiAyID8gZW5kWzFdICsgJyAnICsgZW5kWzJdIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lO1xyXG4gICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHRoaXMuZGF5anModGhpcy5yYW5nZVN0YXJ0KS5mb3JtYXQoJ1lZWVktTU0tREQnKSArICcgJyArIHN0YXJ0RGF0ZVdpdGhUaW1lO1xyXG4gICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSB0aGlzLmRheWpzKHRoaXMucmFuZ2VFbmQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpICsgJyAnICsgZW5kRGF0ZVdpdGhUaW1lO1xyXG5cclxuICAgIC8vICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID4gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lKSB7XHJcbiAgICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSBzdGFydERhdGVXaXRoVGltZTtcclxuICAgIC8vICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSBlbmREYXRlV2l0aFRpbWU7XHJcbiAgICAvLyAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdFbmQgdGltZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCB0aW1lJyk7XHJcbiAgICAvLyAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5zdWJtaXRUeXBlID0gXCJzYXZlXCI7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5wdWJsaXNoID0gZmFsc2U7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEucmVtb3ZlZFVzZXJzID0gdGhpcy5yZW1vdmVVc2VycztcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlV2Vla0RheXMgPSB0aGlzLnNlbGVjdGVkRGF5cztcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvdmVyYWdlID0gdGhpcy5jb3ZlcmFnZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbXHJcbiAgICAgIC4uLnRoaXMuc2luZ2xlQXNzaWduLFxyXG4gICAgICAuLi50aGlzLmdyb3VwQXNzaWduLFxyXG4gICAgXTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnN0b3JlQ291bnQgPVxyXG4gICAgICB0aGlzLmFzc2lnblNpbmdsZT8ubGVuZ3RoICsgdGhpcy5ncm91cEFzc2lnbj8ubGVuZ3RoO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZW5hYmxlTmV3RGVwbG95ZWRTdG9yZSA9IHRoaXMuc3RvcmVDb3ZlcmFnZVxyXG4gICAgICA/IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmVuYWJsZU5ld0RlcGxveWVkU3RvcmVcclxuICAgICAgOiBmYWxzZTtcclxuICAgIGNvbnN0IHRpbWVab25lID0gZGF5anMudHouZ3Vlc3MoKTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS50aW1lWm9uZSA9IHRpbWVab25lO1xyXG4gICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgIGltYWdlc3JjOlxyXG4gICAgICAgICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICB0aXRsZTogYFVuc2F2ZWQgY2hhbmdlc2AsXHJcbiAgICAgIGNvbnRlbnQ6IGBEbyB5b3Ugd2FudCB0byBzYXZlIGFzIGRyYWZ0P2AsXHJcbiAgICAgIGJ1dHRvbnR5cGU6IFwiZHJhZnRcIixcclxuICAgIH07XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIixcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy50eXBlID09IFwibW9iaWxldXNhZ2VkZXRlY3Rpb25cIiB8fFxyXG4gICAgICAgIHRoaXMudHlwZSA9PSBcInN0b3Jlb3BlbmFuZGNsb3NlXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBcIm1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIpIHtcclxuICAgICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmRldGVjdGlvbkFyZWEgPSB0aGlzLnpvbmVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy50eXBlID09IFwic3RvcmVvcGVuYW5kY2xvc2VcIikge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEub3BlblRpbWU7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2xvc2VUaW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gdGhpcy5zb3BTdG9yZXM7XHJcbiAgICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxlcnQuYWxlcnRzVG8gPSB0aGlzLmVtYWlsTGlzdDtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFyZXMpIHtcclxuICAgICAgICB0aGlzLnBvcHVwQ291bnQgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMgPT0gXCJjb25maXJtXCIpIHtcclxuICAgICAgICB0aGlzLmRldGFzc2lnblVwZGF0ZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICAgICAgICAgIHRoaXMuU29wU2VydmljZS5jb25maWdVcGRhdGUodGhpcy5jb25maWdEYXRhKVxyXG4gICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJEcmFmdCBoYXMgYmVlbiBzYXZlZCBzdWNjZXNzZnVsbHkuXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFtcIi9tYW5hZ2UvdHJheC9jaGVja2xpc3RcIl0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3IgfHwgXCJzb21ldGhpbmcgd2VudCB3cm9uZ1wiO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgUmV1cGxvYWQoKSB7XHJcbiAgICAvLyB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKCk7XHJcbiAgICB0aGlzLnZhbGlkYXRlZFN0b3JlID0gW107XHJcbiAgICB0aGlzLnZhbGlkYXRlZFVzZXIgPSBbXTtcclxuICAgIHRoaXMudmFsaWRhdGVkQ2x1c3RlciA9IFtdO1xyXG4gICAgdGhpcy52YWxpZGF0ZWRUZWFtID0gW107XHJcbiAgICB0aGlzLm5ld1VzZXIgPSBbXTtcclxuICAgIHRoaXMuaW5hY3RpdmVTdG9yZXMgPSBbXTtcclxuICAgIHRoaXMuc2hvd1VzZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1RlYW0gPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1N0b3JlID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dDbHVzdGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dJbmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICBsZXQgZWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMlwiKTtcclxuICAgIGVsZT8uY2xpY2soKTtcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgUmV1cGxvYWQxKCkge1xyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcHVwQ291bnQgPSB0aGlzLnBvcHVwQ291bnQgKyAxO1xyXG4gICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgdGl0bGU6IGBSZXVwbG9hZCBDU1ZgLFxyXG4gICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlcGxhY2UgZXhpc3RpbmcgZGF0YSBieSB1cGxvYWRpbmcgbmV3IGZpbGU/IFlvdXIgZXhpc3RpbmcgZGF0YSB3aWxsIGdldCByZXBsYWNlZCB3aXRoIHRoZSBuZXcgb25lLmAsXHJcbiAgICAgIGJ1dHRvbnR5cGU6IFwiUmV1cGxvYWRcIixcclxuICAgIH07XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIixcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzID09IFwiY29uZmlybVwiKSB7XHJcbiAgICAgICAgdGhpcy5yZXVwbG9hZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgbGV0IGVsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzJcIik7XHJcbiAgICAgICAgZWxlPy5jbGljaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy8gaW52aXRlbmV3dXNlcigpIHtcclxuICAvLyAgIHRoaXMucG9wdXBDb3VudCA9IHRoaXMucG9wdXBDb3VudCArIDE7XHJcbiAgLy8gICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgLy8gICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAvLyAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gIC8vICAgICB0aXRsZTogYEludml0ZSBuZXcgdXNlcnMgYWRkZWQgaW4gQ1NWYCxcclxuICAvLyAgICAgY29udGVudDogYFRoaXMgQ1NWIGNvbnRhaW5zIG5ldyB1c2Vycy4gSW52aXRlIHVzZXJzIGJ5IHNlbmRpbmcgbWFpbCB0byB0aGVtLiA8YnI+YCxcclxuICAvLyAgICAgYnV0dG9udHlwZTogJ0ludml0ZSdcclxuICAvLyAgIH1cclxuICAvLyAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgLy8gICB9KTtcclxuICAvLyAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gIC8vICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuXHJcbiAgLy8gICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgLy8gICAgICAgLy8gdGhpcy5Tb3BTZXJ2aWNlLmNvbmZpZ1VwZGF0ZSh0aGlzLmNvbmZpZ0RhdGEpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAvLyAgICAgICAvLyAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcblxyXG4gIC8vICAgICAgIC8vICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAvLyAgICAgICAvLyAgICAgU3dhbC5maXJlKHtcclxuICAvLyAgICAgICAvLyAgICAgICB0b2FzdDogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICBpY29uSHRtbDogJzxpbWcgIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9JY29ucy9jaGVja2xpc3QtdW5wdWJsaXNoZWQtaWNvbi5zdmdcIj4nLFxyXG4gIC8vICAgICAgIC8vICAgICAgIC8vIHRpdGxlVGV4dDogYEVtYWlsIHNlbnQgc3VjY2VzZnVsbHlgLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGh0bWw6IGA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0yXCI+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPGg0PkNTViBoYXMgYmVlbiBSZXVwbG9hZGVkIHN1Y2Nlc3NmdWxseS48L2g0PlxyXG4gIC8vICAgICAgIC8vICAgICAgIDwvZGl2PlxyXG4gIC8vICAgICAgIC8vICAgICAgIDwvZGl2PmAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcclxuICAvLyAgICAgICAvLyAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgdGltZXI6IDYwMDAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgdGltZXJQcm9ncmVzc0JhcjogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICBkaWRPcGVuOiAodG9hc3QpID0+IHtcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBTd2FsLnN0b3BUaW1lcilcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBTd2FsLnJlc3VtZVRpbWVyKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgJChcIiNrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiKS52YWwoJycpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgICAgICAvLyAgICAgICB9XHJcblxyXG4gIC8vICAgICAgIC8vICAgICB9KVxyXG5cclxuICAvLyAgICAgICAvLyAgICAgLy8gdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9zb3AvQ2hlY2tsaXN0cyddKTtcclxuXHJcbiAgLy8gICAgICAgLy8gICB9XHJcbiAgLy8gICAgICAgLy8gfSlcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSlcclxuXHJcbiAgLy8gfVxyXG4gIC8vIEFkZHN0b3JlKCkge1xyXG4gIC8vICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAvLyAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAvLyAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gIC8vICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgLy8gICAgIHRpdGxlOiBgSW52aXRlIG5ldyB1c2VycyBhZGRlZCBpbiBDU1ZgLFxyXG4gIC8vICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgbmV3IHVzZXJzLiBJbnZpdGUgdXNlcnMgYnkgc2VuZGluZyBtYWlsIHRvIHRoZW0uIDxicj5gLFxyXG4gIC8vICAgICBzdWJ0aXRsZTogJ0xLU1QwMDksIFNUMzA0NScsXHJcbiAgLy8gICAgIGJ1dHRvbnR5cGU6ICdBZGRzdG9yZSdcclxuICAvLyAgIH1cclxuICAvLyAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgLy8gICB9KTtcclxuICAvLyAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gIC8vICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuXHJcbiAgLy8gICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgLy8gICAgICAgLy8gdGhpcy5Tb3BTZXJ2aWNlLmNvbmZpZ1VwZGF0ZSh0aGlzLmNvbmZpZ0RhdGEpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAvLyAgICAgICAvLyAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcblxyXG4gIC8vICAgICAgIC8vICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAvLyAgICAgICAvLyAgICAgU3dhbC5maXJlKHtcclxuICAvLyAgICAgICAvLyAgICAgICB0b2FzdDogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICBpY29uSHRtbDogJzxpbWcgIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9JY29ucy9jaGVja2xpc3QtdW5wdWJsaXNoZWQtaWNvbi5zdmdcIj4nLFxyXG4gIC8vICAgICAgIC8vICAgICAgIC8vIHRpdGxlVGV4dDogYEVtYWlsIHNlbnQgc3VjY2VzZnVsbHlgLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGh0bWw6IGA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0yXCI+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPGg0PkNTViBoYXMgYmVlbiBSZXVwbG9hZGVkIHN1Y2Nlc3NmdWxseS48L2g0PlxyXG4gIC8vICAgICAgIC8vICAgICAgIDwvZGl2PlxyXG4gIC8vICAgICAgIC8vICAgICAgIDwvZGl2PmAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcclxuICAvLyAgICAgICAvLyAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgdGltZXI6IDYwMDAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgdGltZXJQcm9ncmVzc0JhcjogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICBkaWRPcGVuOiAodG9hc3QpID0+IHtcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBTd2FsLnN0b3BUaW1lcilcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBTd2FsLnJlc3VtZVRpbWVyKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgJChcIiNrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiKS52YWwoJycpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgICAgICAvLyAgICAgICB9XHJcblxyXG4gIC8vICAgICAgIC8vICAgICB9KVxyXG5cclxuICAvLyAgICAgICAvLyAgICAgLy8gdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9zb3AvQ2hlY2tsaXN0cyddKTtcclxuXHJcbiAgLy8gICAgICAgLy8gICB9XHJcbiAgLy8gICAgICAgLy8gfSlcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSlcclxuXHJcbiAgLy8gfVxyXG4gIC8vIGFkZFVzZXIoKSB7XHJcbiAgLy8gICB0aGlzLmFkZFVzZXJGb3JtID0gIXRoaXMuYWRkVXNlckZvcm07XHJcbiAgLy8gfVxyXG5cclxuICAvLyBjcmVhdGV1c2VyUG9wdXAodHlwZTogc3RyaW5nLCByZWNvcmQ6IGFueSA9IG51bGwpOiB2b2lkIHtcclxuICAvLyAgICAgaWYgKHR5cGUgPT0gJ3ZpZXcnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5wb3BVcFRpdGxlID0gXCJWaWV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5wb3BVcFRpdGxlID0gXCJFZGl0IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgIHRoaXMucG9wVXBUaXRsZSA9IFwiRW50ZXIgTmV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICAgIC8vIHRoaXMucG9wVXBUaXRsZSA9IFwiRW50ZXIgTmV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIGxldCBkYXRhID0ge1xyXG4gIC8vICAgICAgIHJlY29yZDogcmVjb3JkLFxyXG4gIC8vICAgICAgIHR5cGU6IHR5cGUsXHJcbiAgLy8gICAgICAgdGl0bGU6IHRoaXMucG9wVXBUaXRsZVxyXG4gIC8vICAgICB9XHJcblxyXG4gIC8vICAgICBjb25zdCBkaWFsb2dSZWZfY3JlYXRlVXNlciA9IHRoaXMuZGlhbG9nLm9wZW4oVXBsb2FkU2luZ2xlVXNlckNvbXBvbmVudCwge1xyXG4gIC8vICAgICAgIHBhbmVsQ2xhc3M6ICdjdXN0b20tbW9kYWxib3gnLFxyXG4gIC8vICAgICAgIGRhdGE6IGRhdGFcclxuICAvLyAgICAgfSk7XHJcblxyXG4gIC8vICAgICBkaWFsb2dSZWZfY3JlYXRlVXNlci5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAvLyAgICAgICB0aGlzLnNob3dJbnRybyA9IGZhbHNlO1xyXG4gIC8vICAgICAgIGlmICghcmVjb3JkICYmIHJlcyAmJiByZXMuZGF0YS5jb2RlID09IDIwMCkge1xyXG4gIC8vICAgICAgICAgU3dhbC5maXJlKHtcclxuICAvLyAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnLFxyXG4gIC8vICAgICAgICAgICB0ZXh0OiAnVGhlIHVzZXIgaW52aXRlIGhhcyBiZWVuIHNlbnQgc3VjY2Vzc2Z1bGx5IHRvIHRoZSB1c2VyIGFuZCBhZGRlZCB0byB0aGUgcGxhdGZvcm0hJyxcclxuICAvLyAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICdPSycsXHJcbiAgLy8gICAgICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiBmYWxzZSxcclxuICAvLyAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2VcclxuICAvLyAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gIC8vICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VyID0gJydcclxuICAvLyAgICAgICAgICAgICB0aGlzLmFkZFVzZXJGb3JtID0gZmFsc2U7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSAxO1xyXG4gIC8vICAgICAgICAgICAgIC8vIHRoaXMubG9hZFJlY29yZHMoMCwgdGhpcy5zaXplKVxyXG4gIC8vICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICB9KVxyXG4gIC8vICAgICAgIH0gZWxzZSBpZiAocmVzICYmIHJlcy5kYXRhLmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgICBTd2FsLmZpcmUoe1xyXG4gIC8vICAgICAgICAgICBpY29uOiAnc3VjY2VzcycsXHJcbiAgLy8gICAgICAgICAgIHRleHQ6ICdVc2VyIFVwZGF0ZWQgU3VjY2Vzc2Z1bGx5IScsXHJcbiAgLy8gICAgICAgICAgIGhlaWdodEF1dG86IGZhbHNlXHJcbiAgLy8gICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIHRoaXMuc2VhcmNoVXNlciA9ICcnXHJcbiAgLy8gICAgICAgICB0aGlzLmFkZFVzZXJGb3JtID0gZmFsc2U7XHJcbiAgLy8gICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgLy8gICAgICAgICAvLyB0aGlzLmxvYWRSZWNvcmRzKDAsIHRoaXMuc2l6ZSlcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICB9XHJcblxyXG4gIC8vIGNyZWF0ZXVzZXJQb3B1cCgpIHtcclxuICAvLyAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVXBsb2FkU2luZ2xlVXNlckNvbXBvbmVudCwge1xyXG4gIC8vICAgICBwYW5lbENsYXNzOiAnY3VzdG9tLW1vZGFsYm94J1xyXG5cclxuICAvLyAgIH0pO1xyXG4gIC8vICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKClcclxuICAvLyAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuXHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gfVxyXG5cclxuICAvLyB0cmFuc2ZlckZvcm1EYXRhKCkge1xyXG4gIC8vICAgdGhpcy5Tb3BTZXJ2aWNlLnNvcERhdGEuYXNPYnNlcnZhYmxlKClcclxuICAvLyB9XHJcbiAgc2F2ZWFuZHJlZGlyZWN0KGlkOiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy50eXBlID09IFwibW9iaWxldXNhZ2VkZXRlY3Rpb25cIiB8fFxyXG4gICAgICB0aGlzLnR5cGUgPT0gXCJzdG9yZW9wZW5hbmRjbG9zZVwiXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PSBcIm1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIpIHtcclxuICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5kZXRlY3Rpb25BcmVhID0gdGhpcy56b25lcztcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50eXBlID09IFwic3RvcmVvcGVuYW5kY2xvc2VcIikge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID1cclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5vcGVuVGltZTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPVxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNsb3NlVGltZTtcclxuICAgICAgfVxyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUbyA9IHRoaXMuZW1haWxMaXN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLnN1Ym1pdFR5cGUgPSBcInNhdmVcIjtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5yZW1vdmVkVXNlcnMgPSB0aGlzLnJlbW92ZVVzZXJzO1xyXG5cclxuICAgIGxldCBzdGFydERhdGVXaXRoVGltZSwgZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgaWYgKCF0aGlzLnNob3dSYW5nZVZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IFwiXCI7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9IFwib25ldGltZVwiKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSBcIm1vbnRobHlcIiAmJlxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSBcImRhdGVcIlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPVxyXG4gICAgICAgIHRoaXMubW9udGhEYXRlICsgXCIgXCIgKyB0aGlzLm1vbnRoRGF5O1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSBcIm1vbnRobHlcIiAmJlxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSBcInNwZWNpZmljXCJcclxuICAgICkge1xyXG4gICAgICBpZiAodGhpcy5zdWJtaXR0ZWREYXRlcy5sZW5ndGgpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zdWJtaXR0ZWREYXRlcztcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gXCJyYW5nZVwiICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdC5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuXHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdFwiXSwge1xyXG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IGNoZWNrbGlzdElkOiBpZCB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCBcInNvbWV0aGluZyB3ZW50IHdyb25nXCI7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycik7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgdmFsaWRhdGVUaW1lKCkge1xyXG4gICAgbGV0IHN0YXJ0VGltZSA9IHRoaXMuZGF5anModGhpcy5zdGFydFRpbWUsIFwiSEg6bW1cIik7XHJcbiAgICBsZXQgZW5kVGltZSA9IHRoaXMuZGF5anModGhpcy5lbmRUaW1lLCBcIkhIOm1tXCIpO1xyXG4gICAgaWYgKHRoaXMuc2hvd1JhbmdlVmFsdWUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gXCJcIiAmJlxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gbnVsbCAmJlxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT0gXCJcIiAmJlxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT0gbnVsbFxyXG4gICAgICApIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlID09XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaWYgKHN0YXJ0VGltZSA+IGVuZFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZFRpbWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBUaW1lJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRUaW1lID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA+XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkVGltZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiSW52YWxpZCBTY2hlZHVsZSBFbmQgRGF0ZVwiKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52YWxpZFRpbWUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmFsaWRUaW1lID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChzdGFydFRpbWUgPiBlbmRUaW1lKSB7XHJcbiAgICAgIHRoaXMudmFsaWRUaW1lID0gZmFsc2U7XHJcbiAgICAgIC8vIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBTY2hlZHVsZSBFbmQgVGltZScpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkVGltZSA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVUaW1lKGRhdGE6IGFueSkge1xyXG4gICAgaWYgKHRoaXMudmFsaWRhdGVUaW1lKCkpIHtcclxuICAgICAgaWYgKGRhdGEgPT0gXCJzdGFydFwiKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgdGhpcy5zdGFydFRpbWUsXHJcbiAgICAgICAgICBcIkhIOm1tXCIsXHJcbiAgICAgICAgKS5mb3JtYXQoXCJoaDptbSBBXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICB0aGlzLmVuZFRpbWUsXHJcbiAgICAgICAgICBcIkhIOm1tXCIsXHJcbiAgICAgICAgKS5mb3JtYXQoXCJoaDptbSBBXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgdXBkYXRlU2NoZWR1bGUoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPSBcIlwiO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9IFwiMDFcIjtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gW107XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICB0aGlzLnNwZWNpZmljID0gZmFsc2U7XHJcbiAgICB0aGlzLm1vbnRoRGF0ZSA9IFwiXCI7XHJcbiAgICB0aGlzLm1vbnRoRGF5ID0gXCJcIjtcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dSYW5nZVZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlID09IFwicmFuZ2VcIiA/IHRydWUgOiBmYWxzZTtcclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPT0gXCJyYW5nZVwiKSB7XHJcbiAgICAgIC8vIHRoaXMucmVmcmVzaFBpY2tlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNwZWNpZmljID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSBbXTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID1cclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHx8XHJcbiAgICAgICAgdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIik7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHx8XHJcbiAgICAgICAgdGhpcy5kYXlqcygpLmFkZCgxLCBcImRheVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IHtcclxuICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSxcclxuICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlLFxyXG4gICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5taW5FbmREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSxcclxuICAgICAgKS5mb3JtYXQoKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtcclxuICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSxcclxuICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICApLmZvcm1hdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gXCJcIjtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IFwiXCI7XHJcbiAgICAgIHRoaXMubWluU3RhcnREYXRlID0gXCJcIjtcclxuICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSBcIlwiO1xyXG4gICAgICB0aGlzLm1pbkVuZERhdGUgPSBcIlwiO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5kYXlqcygpXHJcbiAgICAgICAgLmFkZCgxLCBcImRheVwiKVxyXG4gICAgICAgIC5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xyXG4gICAgICAvLyB0aGlzLnJlZnJlc2hQaWNrZXIgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPT0gXCJ3ZWVrZGF5XCIpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbXHJcbiAgICAgICAgXCJNb25kYXlcIixcclxuICAgICAgICBcIlR1ZXNkYXlcIixcclxuICAgICAgICBcIldlZG5lc2RheVwiLFxyXG4gICAgICAgIFwiVGh1cnNkYXlcIixcclxuICAgICAgICBcIkZyaWRheVwiLFxyXG4gICAgICBdO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSBcIndlZWtseVwiKSB7XHJcbiAgICAgIGxldCB0b2RheURhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KFwiZGRkZFwiKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbdG9kYXlEYXRlXTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPT0gXCJtb250aGx5XCIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPSBcImRheVwiO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID1cclxuICAgICAgICB0aGlzLmRheWpzKCkuZm9ybWF0KFwiRERcIik7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIFtcImRhaWx5XCIsIFwib25ldGltZVwiXS5pbmNsdWRlcyhldmVudC50YXJnZXQudmFsdWUpIHx8XHJcbiAgICAgIChldmVudC50YXJnZXQudmFsdWUgPT0gXCJtb250aGx5XCIgJiZcclxuICAgICAgICBbXCJkYXlcIiwgXCJkYXRlXCJdLmluY2x1ZGVzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAsXHJcbiAgICAgICAgKSlcclxuICAgICkge1xyXG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlID09IFwib25ldGltZVwiKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5jb25maWdEYXRhXHJcbiAgICAgICAgICAuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGVcclxuICAgICAgICAgID8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlXHJcbiAgICAgICAgICA6IGRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0ge1xyXG4gICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUsXHJcbiAgICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUsXHJcbiAgICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dPbmNlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlcGVhdFR5cGUgPVxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gXCJkYWlseVwiXHJcbiAgICAgICAgPyBcIkRheVwiXHJcbiAgICAgICAgOiBbXCJ3ZWVrbHlcIiwgXCJ3ZWVrZGF5XCJdLmluY2x1ZGVzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlLFxyXG4gICAgICAgIClcclxuICAgICAgICAgID8gXCJXZWVrXCJcclxuICAgICAgICAgIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09IFwibW9udGhseVwiXHJcbiAgICAgICAgICAgID8gXCJNb250aFwiXHJcbiAgICAgICAgICAgIDogXCJcIjtcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy52YWxpZGF0ZVRpbWUoKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9Db250cm9sQ2VudGVyKCkge1xyXG4gICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbXCIvY29udHJvbGNlbnRlci90ZW1wbGF0ZXZpZXdcIl0sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgc291cmNlOiBcImNjXCIgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkOiBhbnk7XHJcblxyXG4gIGFkZFN0b3JlQ29tcG9uZW50KCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4U3RvcmVDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgYmFja2Ryb3A6IFwic3RhdGljXCIsXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICBjaGVja2xpc3RJZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgb2JqOiB0aGlzLm9iaixcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2UsXHJcbiAgICB9O1xyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMudXNlckRhdGEgPSByZXM7XHJcbiAgICAgICAgdGhpcy51cGxvYWQgPSBcInN0b3JlXCI7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZURldGFpbHMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvZ2dsZURyb3BEb3duKCkge1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSAhdGhpcy5zaG93RHJvcERvd247XHJcbiAgfVxyXG4gIHNlbGVjdERhdGUoZGF0ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUuaW5jbHVkZXMoZGF0ZSkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZS5maWx0ZXIoKGRheTogYW55KSA9PiBkYXkgIT09IGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRGF0ZS5pbmNsdWRlcyhkYXRlKSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnB1c2goZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgc3VibWl0RGF0ZSgpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMgPSBbLi4udGhpcy5zZWxlY3RlZERhdGVdO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQmFkZ2UoZGF0ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gdGhpcy5zdWJtaXR0ZWREYXRlcy5maWx0ZXIoKGQpID0+IGQgIT09IGRhdGUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZS5maWx0ZXIoKGQ6IGFueSkgPT4gZCAhPT0gZGF0ZSk7XHJcbiAgfVxyXG4gIGdldERhdGVXaXRoU3VmZml4KGRhdGU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoZGF0ZSA9PSAxIHx8IGRhdGUgPT0gMzEgfHwgZGF0ZSA9PSAyMSkge1xyXG4gICAgICByZXR1cm4gZGF0ZSArIFwic3RcIjtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PSAyIHx8IGRhdGUgPT0gMjIpIHtcclxuICAgICAgcmV0dXJuIGRhdGUgKyBcIm5kXCI7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGUgPT0gMyB8fCBkYXRlID09IDIzKSB7XHJcbiAgICAgIHJldHVybiBkYXRlICsgXCJyZFwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGRhdGUgKyBcInRoXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZURyb3BEb3duKCkge1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU1vbnRoKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IFwiXCI7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gW107XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9IHR5cGU7XHJcbiAgICB0aGlzLm1vbnRoRGF0ZSA9IFwiXCI7XHJcbiAgICB0aGlzLm1vbnRoRGF5ID0gXCJcIjtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dPbmNlID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gXCJkYXRlXCIpIHtcclxuICAgICAgbGV0IGRhdGVXZWVrID0gZ2V0V2Vla051bWJlcih0aGlzLmRheWpzKCkpO1xyXG4gICAgICB0aGlzLm1vbnRoRGF0ZSA9IGRhdGVXZWVrLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMubW9udGhEYXkgPSB0aGlzLmRheWpzKCkuZm9ybWF0KFwiZGRkZFwiKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSBcImRheVwiKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPVxyXG4gICAgICAgIHRoaXMuZGF5anMoKS5mb3JtYXQoXCJERFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVJlcGVhdERheSgpIHtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXk7XHJcbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XHJcbiAgICAgIHZhbHVlID0gXCIwMVwiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9XHJcbiAgICAgIHZhbHVlID09IFwiMDBcIiB8fCB2YWx1ZSA9PSBcIjBcIiB8fCB2YWx1ZSA9PSBcIlwiID8gXCIwMVwiIDogdmFsdWU7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVNb250aFZhbHVlKCkge1xyXG4gICAgbGV0IGRhdGVWYWx1ZSA9IFwiXCI7XHJcbiAgICBpZiAodGhpcy5tb250aERhdGUgPT0gXCIxXCIpIHtcclxuICAgICAgZGF0ZVZhbHVlID0gXCJGaXJzdFwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubW9udGhEYXRlID09IFwiMlwiKSB7XHJcbiAgICAgIGRhdGVWYWx1ZSA9IFwiU2Vjb25kXCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb250aERhdGUgPT0gXCIzXCIpIHtcclxuICAgICAgZGF0ZVZhbHVlID0gXCJUaGlyZFwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubW9udGhEYXRlID09IFwiNFwiKSB7XHJcbiAgICAgIGRhdGVWYWx1ZSA9IFwiRm91cnRoXCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb250aERhdGUgPT0gXCI1XCIpIHtcclxuICAgICAgZGF0ZVZhbHVlID0gXCJMYXN0XCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJvbiB0aGUgXCIgKyBkYXRlVmFsdWUgKyBcIiBcIiArIHRoaXMubW9udGhEYXk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTcGVjaWZpY1ZhbHVlKCkge1xyXG4gICAgbGV0IHZhbHVlOiBhbnkgPSBbXTtcclxuICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGl0ZW0gPVxyXG4gICAgICAgIGl0ZW0gPT0gMSB8fCBpdGVtID09IDMxIHx8IGl0ZW0gPT0gMjFcclxuICAgICAgICAgID8gaXRlbSArIFwiIHN0XCJcclxuICAgICAgICAgIDogaXRlbSA9PSAyIHx8IGl0ZW0gPT0gMjJcclxuICAgICAgICAgICAgPyBpdGVtICsgXCIgbmRcIlxyXG4gICAgICAgICAgICA6IGl0ZW0gPT0gMyB8fCBpdGVtID09IDIzXHJcbiAgICAgICAgICAgICAgPyBpdGVtICsgXCJyZFwiXHJcbiAgICAgICAgICAgICAgOiBpdGVtICsgXCIgdGhcIjtcclxuICAgICAgdmFsdWUucHVzaChpdGVtKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRGF0ZShkYXRlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IHRoaXMuc2VsZWN0ZWREYXRlTGlzdC5maWx0ZXIoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlICE9IGRhdGUsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2NlZHVsZURhdGUoKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygndGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlJyx0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSBcIlwiICYmXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSBudWxsXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlRGF0ZVZhbHVlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfHxcclxuICAgICAgICB0aGlzLmRheWpzKCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IFwiXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPSBcIlwiO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gXCJcIjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0gXCJcIjtcclxuICAgIHRoaXMubWluRGF0ZSA9IFwiXCI7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkRGF0ZSA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUsXHJcbiAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5taW5TdGFydERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgKS5mb3JtYXQoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNwZWNpZmljKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRhdGVwaWNrZXJSZWZyZXNoKCkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IFwiXCI7XHJcbiAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IFwiXCI7XHJcbiAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUsXHJcbiAgICApLmZvcm1hdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3BlY2lmaWNEYXRlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSBldmVudDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnRcIl0pXHJcbiAgY2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcclxuICAgICAgXCIuZHJvcGRvd24tY2xvc2VcIixcclxuICAgICk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhjbGlja2VkSW5zaWRlKTtcclxuXHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcclxuICAgICAgdGhpcy5jbG9zZURyb3BEb3duKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDbGllbnRVc2VyKCkge1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldENsaWVudFVzZXIodGhpcy5jbGllbnRJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRVc2VycyA9IHJlcy5kYXRhLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IG5hbWU6IGl0ZW0udXNlck5hbWUsIHZhbHVlOiBpdGVtLmVtYWlsLCByb2xlOiBpdGVtLnJvbGUgfTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIC8vIHRoaXMuYWRtaW5Vc2VycyA9IHRoaXMuYWxlcnRVc2Vycy5maWx0ZXIoKGVsZTphbnkpID0+IGVsZS5yb2xlICE9ICd1c2VyJyk7XHJcblxyXG4gICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFwcHJvdmVyPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5hcHByb3ZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgbGV0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcInt9XCIsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmICh1c2VySW5mby51c2VyVHlwZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlclR5cGUgPSB1c2VySW5mby51c2VyVHlwZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgdXNlckluZm8/LnVzZXJUeXBlID09IFwidGFuZ29cIiB8fFxyXG4gICAgICAgICAgICAgICh1c2VySW5mbz8udXNlclR5cGUgPT0gXCJjbGllbnRcIiAmJiB1c2VySW5mbz8ucm9sZSA9PSBcInVzZXJcIilcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHVzZXJMaXN0ID0gdGhpcy5hbGVydFVzZXJzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5yb2xlID09IFwic3VwZXJhZG1pblwiLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgaWYgKHVzZXJMaXN0ICYmIHRoaXMudHlwZSA9PSBcImN1c3RvbVwiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFtcclxuICAgICAgICAgICAgICAgICAgeyBuYW1lOiB1c2VyTGlzdC5uYW1lLCB2YWx1ZTogdXNlckxpc3QudmFsdWUgfSxcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFVzZXJzLmZpbmQoKGVsZTogYW55KSA9PiBlbGUudmFsdWUgPT0gdXNlckluZm8uZW1haWwpLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFVzZXJzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFpvbmVMaXN0KCkge1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldFpvbmVMaXN0KHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIGNoZWNrTGlzdE5hbWU6IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3ROYW1lLFxyXG4gICAgfSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy56b25lTGlzdCA9IHJlcy5kYXRhLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IG5hbWU6IGl0ZW0uem9uZSwgdmFsdWU6IGl0ZW0uem9uZSB9O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuem9uZUxpc3QgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVhbUxpc3QoKSB7XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0VGVhbUxpc3QodGhpcy5jbGllbnRJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFRlYW1zID0gcmVzLmRhdGEubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbmFtZTogaXRlbS50ZWFtTmFtZSwgdmFsdWU6IGl0ZW0uX2lkIH07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFRlYW1zID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFsZXJ0KGV2ZW50OiBhbnksIHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT0gXCJ1c2VyXCIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0cy51c2VycyA9IGV2ZW50O1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09IFwiYXBwcm92ZVwiKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5hcHByb3ZlciA9IGV2ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlWm9uZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLmRldGVjdGlvbkFyZWEgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUxvb3AoKSB7XHJcbiAgICBsZXQgZGF0YSA9IHRoaXMubWludXRlcy5maWx0ZXIoXHJcbiAgICAgIChpdGVtKSA9PiAhdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyLmluY2x1ZGVzKGl0ZW0pLFxyXG4gICAgKTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5wdXNoKGRhdGFbMF0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVtYWluZGVyKGV2ZW50OiBhbnksIGluZGV4OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlcltpbmRleF0gPSBwYXJzZUludChcclxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFwcHJvdmVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVPd25lcihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5vd25lciA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQXNzaWduKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudXBsb2FkID0gXCJcIjtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IGV2ZW50O1xyXG4gICAgLy8gdGhpcy50YWJsZUFycmF5ID0gZXZlbnQ7XHJcbiAgICBsZXQgZGF0YSA9IGV2ZW50Lm1hcCgoZWw6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4geyBpZDogZWw/Ll9pZCwgdHlwZTogZWw/LnR5cGUgfTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pZExpc3QgPSBkYXRhO1xyXG4gICAgdGhpcy50YWJsZUZpbHRlciA9IFwiXCI7XHJcbiAgICB0aGlzLmFzc2lnblR5cGUgPT09IFwic3RvcmVcIiB8fCB0aGlzLmFzc2lnblR5cGUgPT09IFwidXNlclwiXHJcbiAgICAgID8gKCh0aGlzLnNpbmdsZUFzc2lnbiA9IHRoaXMuaWRMaXN0KSwgdGhpcy5nZXRUYWJsZURhdGEoKSlcclxuICAgICAgOiAoKHRoaXMuZ3JvdXBBc3NpZ24gPSB0aGlzLmlkTGlzdCksIHRoaXMudXNlckRldGFpbHNWMihldmVudCkpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlZENoaXAoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZUFycmF5ID0gdGhpcy50YWJsZUFycmF5Py5maWx0ZXIoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+ICFldmVudC5pbmNsdWRlcyhpdGVtLl9pZCksXHJcbiAgICApO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduPy5maWx0ZXIoXHJcbiAgICAgICAgKGl0ZW06IGFueSkgPT4gIWV2ZW50LmluY2x1ZGVzKGl0ZW0uX2lkKSxcclxuICAgICAgKTtcclxuICAgIC8vICh0aGlzLmFzc2lnblR5cGUgPT09ICdzdG9yZScgfHwgdGhpcy5hc3NpZ25UeXBlID09PSAndXNlcicpID8gdGhpcy5nZXRUYWJsZURhdGEoKSA6dGhpcy51c2VyRGV0YWlsc1YyKCk7XHJcbiAgfVxyXG5cclxuICB0YWJsZUFycmF5OiBhbnkgPSBbXTtcclxuICB0YWJsZUxvYWRpbmcxOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgdXNlckRldGFpbHNWMihkYXRhPzogYW55KSB7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBjaGVja2xpc3RJZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgaWRMaXN0OiB0aGlzLmlkTGlzdCxcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2UsIC8vW1wiY2x1c3RlclwiLFwic3RvcmVcIixcInVzZXJcIixcInRlYW1zXCJdXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBzZWFyY2g6IHRoaXMudGFibGVGaWx0ZXIsXHJcbiAgICB9O1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcxID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0ltYWdlID0gdHJ1ZTtcclxuICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMuU29wU2VydmljZS5zZWxlY3RDaGlwcyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IHJlcz8uZGF0YT8udW5pcXVlQXJyO1xyXG4gICAgICAgICAgICB0aGlzLmFzc2lnbkdyb3VwID0gdGhpcy50YWJsZUFycmF5O1xyXG4gICAgICAgICAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLnJlY29yZHNDb3VudCA9IHRoaXMudGFibGVEYXRhLmxlbmd0aDtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUFycmF5Py5sZW5ndGhcclxuICAgICAgICAgICAgICA/ICh0aGlzLnNob3dJbWFnZSA9IGZhbHNlKVxyXG4gICAgICAgICAgICAgIDogKHRoaXMuc2hvd0ltYWdlID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gW3RoaXMucmVjb3Jkc1RvdGFsXTtcclxuICAgICAgICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsIDEwLCAxNSwgMjBdO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlQXJyYXkuc2xpY2UoXHJcbiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUgLSB0aGlzLnNpemUsXHJcbiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyB0aGlzLnN0b3JlQ292ZXJhZ2UgPyB0aGlzLmdldEluaXRpYWxEYXRhKHJlcz8uZGF0YT8uc3RvcmVMaXN0KSA6IHRoaXMuZ2V0SW5pdGlhbERhdGEocmVzPy5kYXRhPy51c2VyTGlzdCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gW107XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycj8ubWVzc2FnZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzb3J0Q29sdW1uOiBhbnkgPSBcIlwiO1xyXG4gIHNvcnRCeTogYW55ID0gLTE7XHJcblxyXG4gIGdldHRhYmxlRGF0YSgpIHtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNoZWNrbGlzdElkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBsaW1pdDogdGhpcy5zaXplLFxyXG4gICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgIHNlYXJjaDogdGhpcy50YWJsZUZpbHRlcixcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydENvbHVtbixcclxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnRCeSxcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2UsXHJcbiAgICB9O1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRVc2VyRGV0YWlsc1YyKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVCdG4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSByZXM/LmRhdGE/LnVzZXJzO1xyXG4gICAgICAgICAgICB0aGlzLnJlY29yZHNDb3VudCA9IHRoaXMudGFibGVEYXRhLmxlbmd0aDtcclxuICAgICAgICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LCAyMF07XHJcbiAgICAgICAgICAgICAgdGhpcy5zaXplID0gNTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zdG9yZUNvdmVyYWdlXHJcbiAgICAgICAgICAgID8gdGhpcy5nZXRJbml0aWFsRGF0YShyZXM/LmRhdGE/LnN0b3JlTGlzdClcclxuICAgICAgICAgICAgOiB0aGlzLmdldEluaXRpYWxEYXRhKHJlcz8uZGF0YT8udXNlckxpc3QpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyPy5tZXNzYWdlKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUh1ZGRsZXRpbWUoZXZlbnQ6IEV2ZW50LCBrZXk6IGFueSkge1xyXG4gICAgLy8gbGV0IHNhbXBsZU9iamVjdDphbnk7XHJcbiAgICAvLyBpZiAoa2V5ID09PSAndGltZScpIHtcclxuICAgIC8vICAgY29uc3Qgc2VsZWN0ZWRUaW1lID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcclxuICAgIC8vICAgc2FtcGxlT2JqZWN0LnN0YXJ0VGltZSA9IHNlbGVjdGVkVGltZTtcclxuICAgIC8vIH0gZWxzZSBpZiAoa2V5ID09PSAnZHVyYXRpb24nKSB7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBjb25zb2xlLmxvZygnZHVyYXRpb24nLHRoaXMuaHVkZGxlYXR0aW1lQXJyYXkpXHJcbiAgfVxyXG5cclxuICBkZWxldGVIdWRkbGUoaTogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHMuc3BsaWNlKGksIDEpO1xyXG4gIH1cclxuXHJcbiAgQWRkSHVkZGxlRWVudCgpIHtcclxuICAgIGxldCBzYW1wbGVPYmplY3QgPSB7IHRpbWU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJISDptbVwiKSwgZHVyYXRpb246IFwiMTVcIiB9O1xyXG4gICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzPy5sZW5ndGggPCAzXHJcbiAgICAgID8gdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzLnB1c2goc2FtcGxlT2JqZWN0KVxyXG4gICAgICA6IFwiXCI7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb25maWdSZW1haW5kZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCFldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIgPSBbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlciA9IFt0aGlzLm1pbnV0ZXNbMF1dO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVDb25maWdBcHByb3ZlcihldmVudDogYW55KSB7XHJcbiAgICBpZiAoIWV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgdXNlckluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlci1pbmZvXCIpIHx8IFwie31cIik7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB1c2VySW5mbz8udXNlclR5cGUgPT0gXCJ0YW5nb1wiIHx8XHJcbiAgICAgICAgKHVzZXJJbmZvPy51c2VyVHlwZSA9PSBcImNsaWVudFwiICYmIHVzZXJJbmZvPy5yb2xlID09IFwidXNlclwiKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFtcclxuICAgICAgICAgIHRoaXMuYWxlcnRVc2Vycy5maW5kKChlbGU6IGFueSkgPT4gZWxlLnJvbGUgPT0gXCJzdXBlcmFkbWluXCIpLFxyXG4gICAgICAgIF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBbXHJcbiAgICAgICAgICB0aGlzLmFsZXJ0VXNlcnMuZmluZCgoZWxlOiBhbnkpID0+IGVsZS52YWx1ZSA9PSB1c2VySW5mby5lbWFpbCksXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGltZUxvb3AoaW5kZXg6IGFueSkge1xyXG4gICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIpLFxyXG4gICAgKTtcclxuICAgIGlmIChkYXRhLmxlbmd0aCkge1xyXG4gICAgICBkYXRhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5taW51dGVzLmZpbHRlcigoaXRlbTogYW55KSA9PlxyXG4gICAgICBkYXRhLmxlbmd0aCA/ICFkYXRhPy5pbmNsdWRlcyhpdGVtKSA6IGl0ZW0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYnVsa3VwbG9hZE1vZGVsKCkge1xyXG4gICAgdGhpcy5kcm9wRG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaWFsb2cub3Blbih0aGlzLmJ1bGt1cGxvYWQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlbWFpbEJ1bGt1cGxvYWRNb2RlbCgpIHtcclxuICAgIHRoaXMuZHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nLm9wZW4odGhpcy5lbWFpbEJ1bGt1cGxvYWQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBleGNlbEVycm9yOiBhbnk7XHJcblxyXG4gIGFmdGVyVXBsbG9hZChkYXRhPzogYW55KSB7XHJcbiAgICB0aGlzLmV4Y2VsRXJyb3IgPSBkYXRhO1xyXG4gICAgdGhpcy5kaWFsb2cub3Blbih0aGlzLmFmdGVyVmFsaWRhdGlvbiwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgYmFja2Ryb3A6IFwic3RhdGljXCIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEluaXRpYWxzKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIW5hbWUpIHJldHVybiBcIlwiOyAvLyBIYW5kbGUgZW1wdHkgY2FzZVxyXG4gICAgY29uc3QgW2ZpcnN0TmFtZSwgbGFzdE5hbWVdID0gbmFtZS5zcGxpdChcIiBcIik7XHJcbiAgICBpZiAoIWxhc3ROYW1lKSB7XHJcbiAgICAgIGNvbnN0IGluaXRpYWxzID0gKGZpcnN0TmFtZT8uWzBdIHx8IFwiXCIpICsgKGZpcnN0TmFtZT8uWzFdIHx8IFwiXCIpO1xyXG4gICAgICByZXR1cm4gaW5pdGlhbHMudG9VcHBlckNhc2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluaXRpYWxzID0gKGZpcnN0TmFtZT8uWzBdIHx8IFwiXCIpICsgKGxhc3ROYW1lPy5bMF0gfHwgXCJcIik7XHJcbiAgICAgIHJldHVybiBpbml0aWFscy50b1VwcGVyQ2FzZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uZmlybVVzZXJwb3B1cCgpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4odGhpcy5jb25maXJtVXNlciwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgYmFja2Ryb3A6IFwic3RhdGljXCIsXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jbG9zZWQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzID09PSBcImNvbmZpcm1cIikge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVEZXRhaWxzKFwiYWRkVXNlclwiKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LnJlbW92ZShcImRyYWctb3ZlclwiKTtcclxuICB9XHJcblxyXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgLy8gQWRkIGEgdmlzdWFsIGVmZmVjdCB0byBpbmRpY2F0ZSBkcmFnIGlzIG92ZXIgdGhlIGFyZWFcclxuICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5hZGQoXCJkcmFnLW92ZXJcIik7XHJcbiAgfVxyXG5cclxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5yZW1vdmUoXCJkcmFnLW92ZXJcIik7XHJcblxyXG4gICAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF07XHJcbiAgICAgIGNvbnN0IGZpbGVJbnB1dEVsZW1lbnQgPSB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgLy8gTWFudWFsbHkgc2V0IHRoZSBmaWxlIHRvIHRoZSBpbnB1dFxyXG4gICAgICBjb25zdCBkYXRhVHJhbnNmZXIgPSBuZXcgRGF0YVRyYW5zZmVyKCk7XHJcbiAgICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XHJcbiAgICAgIGZpbGVJbnB1dEVsZW1lbnQuZmlsZXMgPSBkYXRhVHJhbnNmZXIuZmlsZXM7XHJcblxyXG4gICAgICAvLyBUcmlnZ2VyIHRoZSBjaGFuZ2UgZXZlbnQgbWFudWFsbHlcclxuICAgICAgZmlsZUlucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImNoYW5nZVwiKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVBbHBoYXBldChldmVudDogYW55KSB7XHJcbiAgICBpZiAoaXNOYU4oZXZlbnQudGFyZ2V0LnZhbHVlKSkge1xyXG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSBcIjAxXCI7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSBcIjAxXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcmVvcGVudGltZWNvbmZpZzogYW55O1xyXG4gIGNoYW5nZVByZW9wZW50aW1lY29uZmlnKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucHJlb3BlbnRpbWVjb25maWcgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIGlmICghdGhpcy5wcmVvcGVudGltZWNvbmZpZykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcub3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nLnByZW9wZW50aW1lY29uZmlnID1cclxuICAgICAgICBcIlwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJlY2xvc2V0aW1lY29uZmlnOiBhbnk7XHJcbiAgY2hhbmdlUHJlY2xvc2V0aW1lY29uZmlnKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucHJlY2xvc2V0aW1lY29uZmlnID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICBpZiAoIXRoaXMucHJlY2xvc2V0aW1lY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5vdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcucHJlY2xvc2V0aW1lY29uZmlnID1cclxuICAgICAgICBcIlwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlYWxlcnR0aW1lY29uZmlnKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuYWxlcnR0aW1la2V5Y29uZmlnID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxsb3dCdWZmZXIuZW5hYmxlZCA9XHJcbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkIHx8IGZhbHNlO1xyXG4gICAgaWYgKCF0aGlzLmFsZXJ0dGltZWtleWNvbmZpZykge1xyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxsb3dCdWZmZXIuYWZ0ZXJPcGVuVGltZSA9ICcnO1xyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxsb3dCdWZmZXIuYmVmb3JlQ2xvc2VUaW1lID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2Vub3RpZmljYXRpb25jb25maWcoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25rZXljb25maWcgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbmFibGVkID1cclxuICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgfHwgZmFsc2U7XHJcbiAgICBpZiAoIXRoaXMubm90aWZpY2F0aW9ua2V5Y29uZmlnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIgPSBbXTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLm1vYmlsZSA9IFtdO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uc3luY01vYmlsZVdlYiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWwudHlwZSA9IFtdO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWwudXNlcnMgPSBbXTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsLnRlYW1zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VhdXRvdGFza2NvbmZpZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmF1dG90YXNra2V5Y29uZmlnID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcuZW5hYmxlZCA9XHJcbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkIHx8IGZhbHNlO1xyXG4gICAgaWYgKCF0aGlzLmF1dG90YXNra2V5Y29uZmlnKSB7XHJcbiAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy5hcHByb3ZlciA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGFuZ2VxdWV1ZWxlbmd0aGNvbmZpZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnF1ZXVlTGVuZ3RoRW5hYmxlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgIFwi8J+agCB+IENoZWNrbGlzdENvbmZpZ3VyZUNvbXBvbmVudCB+IGNoYW5nZXF1ZXVlbGVuZ3RoY29uZmlnIH4gdGhpcy5xdWV1ZUxlbmd0aEVuYWJsZWQ6XCIsXHJcbiAgICAgIHRoaXMucXVldWVMZW5ndGhFbmFibGVkLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcucXVldWVhbGVydC5xdWV1ZUxlbmd0aEVuYWJsZWQgPVxyXG4gICAgICBldmVudC50YXJnZXQuY2hlY2tlZCB8fCBmYWxzZTtcclxuICB9XHJcbiAgY2FtZXJhQW5nbGVjb25maWcoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jYW1lcmFBbmdsZUVuYWJsZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBcIvCfmoAgfiBDaGVja2xpc3RDb25maWd1cmVDb21wb25lbnQgfiBjaGFuZ2VxdWV1ZWxlbmd0aGNvbmZpZyB+IHRoaXMucXVldWVMZW5ndGhFbmFibGVkOlwiLFxyXG4gICAgICB0aGlzLmNhbWVyYUFuZ2xlRW5hYmxlZCxcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmNhbWVyQW5nbGUuZW5hYmxlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkIHx8IGZhbHNlO1xyXG4gIH1cclxuICBjaGFuZ2VxdWV1ZXdhaXR0aW1lY29uZmlnKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMud2FpdFRpbWVFbmFibGVkID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcucXVldWVhbGVydC53YWl0VGltZUVuYWJsZWQgPVxyXG4gICAgICBldmVudC50YXJnZXQuY2hlY2tlZCB8fCBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNoYW5nZWFsZXJ0Y29vbGRvd25jb25maWcoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5hbGVydENvb2xkb3duRW5hYmxlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3N0YWZmZ3JvdXBpbmcnKSB7XHJcbiAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZyA9IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLmFsZXJ0Q29vbGRvd25FbmFibGVkID1cclxuICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCB8fCBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcucXVldWVhbGVydCA9IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LmFsZXJ0Q29vbGRvd25FbmFibGVkID1cclxuICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCB8fCBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZWV4cG9ydGNvbmZpZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmV4cG9ydGtleWNvbmZpZyA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV4cG9ydENvbmZpZy5lbmFibGVkID1cclxuICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgfHwgZmFsc2U7XHJcbiAgICBpZiAoIXRoaXMuZXhwb3J0a2V5Y29uZmlnKSB7XHJcbiAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5leHBvcnRDb25maWcuZm9ybWF0ID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VkZXRlY3RlZHN0YXR1c2NvbmZpZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmRldGVjdGVkc3RhdHVza2V5Y29uZmlnID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWR2YW5jZWRDb25maWcuZGV0ZWN0ZWRTdGF0dXMuZW5hYmxlZCA9XHJcbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkIHx8IGZhbHNlO1xyXG4gICAgaWYgKCF0aGlzLmRldGVjdGVkc3RhdHVza2V5Y29uZmlnKSB7XHJcbiAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hZHZhbmNlZENvbmZpZy5kZXRlY3RlZFN0YXR1cy5kZXRlY3Rpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VhdWRpdHJlcXVpcmVkY29uZmlnKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuYXVkaXRrZXljb25maWcgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hZHZhbmNlZENvbmZpZy5hdWRpdENvbmZpZy5lbmFibGVkID1cclxuICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgfHwgZmFsc2U7XHJcbiAgICBpZiAoIXRoaXMuYXVkaXRrZXljb25maWcpIHtcclxuICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFkdmFuY2VkQ29uZmlnLmF1ZGl0Q29uZmlnLmlucHV0U291cmNlRmlsZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlc3luY01vYmlsZVdlYmNvbmZpZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uc3luY01vYmlsZVdlYiA9XHJcbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkIHx8IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5zeW5jTW9iaWxlV2ViKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIgPSB0aGlzLm1lcmdlVW5pcXVlKFxyXG4gICAgICAgIFtcclxuICAgICAgICAgIC4uLnRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIsXHJcbiAgICAgICAgICAuLi50aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8ubW9iaWxlLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgXCJuYW1lXCIsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyB1cGRhdGVOb3RpZmljYXRpb25BbGVydChldmVudDogYW55LHR5cGU6YW55LG9wdGlvbjphbnkpIHtcclxuICAvLyAgIGlmICh0eXBlID09ICd1c2VyJykge1xyXG4gIC8vICAgICBpZiAob3B0aW9uID09ICd3ZWInKSB7XHJcbiAgLy8gICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLndlYiA9IFsuLi5ldmVudF07XHJcbiAgLy8gICAgIH1lbHNlIGlmIChvcHRpb24gPT0gJ21vYmlsZScpIHtcclxuICAvLyAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8ubW9iaWxlID0gWy4uLmV2ZW50XTtcclxuICAvLyAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uc3luY01vYmlsZVdlYil7XHJcbiAgLy8gICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8ud2ViID0gWy4uLmV2ZW50XTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0gZWxzZSBpZiAodHlwZSA9PSAnYXBwcm92ZScpIHtcclxuICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmFwcHJvdmVyID0gZXZlbnQ7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICAvLyBwcml2YXRlIG1lcmdlVW5pcXVlKHRhcmdldEFycjogYW55W10sIG5ld0l0ZW1zOiBhbnkgfCBhbnlbXSk6IGFueVtdIHtcclxuICAvLyAgIGNvbnN0IGFyciA9IEFycmF5LmlzQXJyYXkobmV3SXRlbXMpID8gbmV3SXRlbXMgOiBbbmV3SXRlbXNdO1xyXG4gIC8vICAgLy8gbWVyZ2UgYXJyYXlzXHJcbiAgLy8gICBjb25zdCBtZXJnZWQgPSBbLi4udGFyZ2V0QXJyLCAuLi5hcnJdO1xyXG4gIC8vICAgLy8gcmVtb3ZlIGR1cGxpY2F0ZXMgYnkgXCJ2YWx1ZVwiXHJcbiAgLy8gICBjb25zdCB1bmlxdWUgPSBBcnJheS5mcm9tKFxyXG4gIC8vICAgICBuZXcgTWFwKG1lcmdlZC5tYXAoaXRlbSA9PiBbaXRlbS52YWx1ZSwgaXRlbV0pKS52YWx1ZXMoKVxyXG4gIC8vICAgKTtcclxuICAvLyAgIHJldHVybiB1bmlxdWU7XHJcbiAgLy8gfVxyXG5cclxuICB1cGRhdGVOb3RpZmljYXRpb25BbGVydChldmVudDogYW55LCB0eXBlOiBhbnksIG9wdGlvbjogYW55KSB7XHJcbiAgICBpZiAodHlwZSA9PT0gXCJ1c2VyXCIpIHtcclxuICAgICAgaWYgKG9wdGlvbiA9PT0gXCJ3ZWJcIikge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIgPSB0aGlzLm1lcmdlVW5pcXVlKFxyXG4gICAgICAgICAgWy4uLnRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIsIC4uLmV2ZW50XSxcclxuICAgICAgICAgIFwibmFtZVwiLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSBpZiAob3B0aW9uID09PSBcIm1vYmlsZVwiKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLm1vYmlsZSA9XHJcbiAgICAgICAgICB0aGlzLm1lcmdlVW5pcXVlKFxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgLi4udGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLm1vYmlsZSxcclxuICAgICAgICAgICAgICAuLi5ldmVudCxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgXCJuYW1lXCIsXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLnN5bmNNb2JpbGVXZWIpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIgPVxyXG4gICAgICAgICAgICB0aGlzLm1lcmdlVW5pcXVlKFxyXG4gICAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIsXHJcbiAgICAgICAgICAgICAgICAuLi5ldmVudCxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIFwibmFtZVwiLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBcImFwcHJvdmVcIikge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYXBwcm92ZXIgPSBldmVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVyZ2VVbmlxdWUoYXJyOiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gWy4uLm5ldyBNYXAoYXJyLm1hcCgob2JqOiBhbnkpID0+IFtvYmpba2V5XSwgb2JqXSkpLnZhbHVlcygpXTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUF1dG9UYXNrKGV2ZW50OiBhbnksIHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT0gXCJ1c2VyXCIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLmFwcHJvdmVyID0gZXZlbnQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5hcHByb3ZlciA9IGV2ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlSW5wdXRTb3VyY2VGaWxlUmFkaW8oZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWR2YW5jZWRDb25maWcuYXVkaXRDb25maWcuaW5wdXRTb3VyY2VGaWxlID0gZGF0YTtcclxuICB9XHJcblxyXG4gIGNoYW5nZURldGVjdGlvblN0YXR1cyhldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGlucHV0LnZhbHVlO1xyXG5cclxuICAgIGlmIChpbnB1dC5jaGVja2VkKSB7XHJcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZERldGVjdGlvblN0YXR1cy5pbmNsdWRlcyh2YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZWN0aW9uU3RhdHVzLnB1c2godmFsdWUpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hZHZhbmNlZENvbmZpZy5kZXRlY3RlZFN0YXR1cy5kZXRlY3Rpb25zID1cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlY3Rpb25TdGF0dXM7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGV0ZWN0aW9uU3RhdHVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZWN0aW9uU3RhdHVzID0gdGhpcy5zZWxlY3RlZERldGVjdGlvblN0YXR1cy5maWx0ZXIoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtICE9PSB2YWx1ZSxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VEYXRhcHJvY2Vzc2luZyhkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hZHZhbmNlZENvbmZpZy5kYXRhUHJvY2Vzc2luZyA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VFeHBvcnRWYWx1ZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dC52YWx1ZTtcclxuICAgIGNvbnN0IGFsbFZhbHVlID0gW1wiQUxMXCIsIFwiQ1NWXCIsIFwiUERGXCIsIFwiUFBUXCIsIFwiWklQXCJdO1xyXG4gICAgY29uc3QgcmVxdWlyZWRWYWx1ZXMgPSBbXCJDU1ZcIiwgXCJQREZcIiwgXCJQUFRcIiwgXCJaSVBcIl07XHJcbiAgICBpZiAodmFsdWUgPT0gXCJBTExcIikge1xyXG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnID0gYWxsVmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV4cG9ydENvbmZpZy5mb3JtYXQgPVxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnID0gW107XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV4cG9ydENvbmZpZy5mb3JtYXQgPVxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gaG93IHRvIHJlbW92ZSBvbmx5ICdBTEwnIHZhbHVlXHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnLmluY2x1ZGVzKFwiQUxMXCIpKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZyA9IHRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWcuZmlsdGVyKFxyXG4gICAgICAgICAgKGl0ZW0pID0+IGl0ZW0gIT09IFwiQUxMXCIsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZXhwb3J0Q29uZmlnLmZvcm1hdCA9XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnB1dC5jaGVja2VkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnLmluY2x1ZGVzKHZhbHVlKSkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZy5wdXNoKHZhbHVlKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgcmVxdWlyZWRWYWx1ZXMuZXZlcnkoKHZhbCkgPT5cclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnLmluY2x1ZGVzKHZhbCksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWcuaW5jbHVkZXMoXCJBTExcIikpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnLnB1c2goXCJBTExcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5leHBvcnRDb25maWcuZm9ybWF0ID1cclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZztcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWcubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZyA9IHRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWcuZmlsdGVyKFxyXG4gICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtICE9PSB2YWx1ZSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZXhwb3J0Q29uZmlnLmZvcm1hdCA9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVOb3RpZnkoZXZlbnQ6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5ub3RpZnlGbGFncykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlsc1tcIm5vdGlmeUZsYWdzXCJdID0ge1xyXG4gICAgICAgIG5vdGlmeVR5cGU6IFtdLFxyXG4gICAgICAgIHVzZXJzOiBbXSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5ub3RpZnlGbGFncy5ub3RpZnlUeXBlLnB1c2godHlwZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5ub3RpZnlGbGFncy5ub3RpZnlUeXBlID1cclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5ub3RpZnlGbGFncy5ub3RpZnlUeXBlLmZpbHRlcihcclxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlICE9IHR5cGUsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTm90aWZ5RmxhZ1RvZ2dsZSgpIHtcclxuICAgIGlmICh0aGlzLm5vdGlmeUZsYWcpIHJldHVybjtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLm5vdGlmeUZsYWdzLm5vdGlmeVR5cGUgPSBbXTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLm5vdGlmeUZsYWdzLnVzZXJzID0gW107XHJcbiAgfVxyXG5cclxuICBvbkVuYWJsZUVtYWlsVG9nZ2xlKCkge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlRW1haWwpIHJldHVybjtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmF1dG9FbWFpbC50eXBlID0gW107XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hdXRvRW1haWwudXNlcnMgPSBbXTtcclxuICB9XHJcblxyXG4gIG9uUmVjdXJyaW5nRmxhZ1RvZ2dsZSgpIHtcclxuICAgIGlmICh0aGlzLnJlY3VycmluZ0ZsYWdOb3RpZnkpIHJldHVybjtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlY3VycmluZ0ZsYWcubm90aWZ5VHlwZSA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVjdXJyaW5nRmxhZy51c2VycyA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVjdXJyaW5nRmxhZy50aHJlc2hvbGQgPSAyO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTWFpbGVyKGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jb25maWdEYXRhLmFpQ29uZmlnPy5hbGVydENvbmZpZz8uYWxlcnRTZW5kVG8pO1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWc/LmFsZXJ0Q29uZmlnPy5hbGVydFNlbmRUbz8uZW1haWwpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvW1wiZW1haWxcIl0gPSB7XHJcbiAgICAgICAgdHlwZTogW10sXHJcbiAgICAgICAgdXNlcnM6IFtdLFxyXG4gICAgICAgIHRlYW1zOiBbXSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWwudHlwZS5wdXNoKHR5cGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsLnR5cGUgPVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbC50eXBlLmZpbHRlcihcclxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlICE9IHR5cGUsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZU5vdGlmaWVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLm5vdGlmeUZsYWdzLnVzZXJzID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSZWN1cnJpbmdOb3RpZnkoZXZlbnQ6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZWN1cnJpbmdGbGFnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzW1wicmVjdXJyaW5nRmxhZ1wiXSA9IHtcclxuICAgICAgICBub3RpZnlUeXBlOiBbXSxcclxuICAgICAgICB1c2VyczogW10sXHJcbiAgICAgICAgdGhyZXNob2xkOiAzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlY3VycmluZ0ZsYWcubm90aWZ5VHlwZS5wdXNoKHR5cGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVjdXJyaW5nRmxhZy5ub3RpZnlUeXBlID1cclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZWN1cnJpbmdGbGFnLm5vdGlmeVR5cGUuZmlsdGVyKFxyXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUgIT0gdHlwZSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVjdXJyaW5nRmxhZ1VzZXJzKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWcpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHNbXCJyZWN1cnJpbmdGbGFnXCJdID0ge1xyXG4gICAgICAgIG5vdGlmeVR5cGU6IFtdLFxyXG4gICAgICAgIHVzZXJzOiBbXSxcclxuICAgICAgICB0aHJlc2hvbGQ6IDMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZWN1cnJpbmdGbGFnLnVzZXJzID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSZWN1cnJpbmdUaHJlc2hvbGQodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVjdXJyaW5nRmxhZykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlsc1tcInJlY3VycmluZ0ZsYWdcIl0gPSB7XHJcbiAgICAgICAgbm90aWZ5VHlwZTogW10sXHJcbiAgICAgICAgdXNlcnM6IFtdLFxyXG4gICAgICAgIHRocmVzaG9sZDogMixcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlY3VycmluZ0ZsYWcudGhyZXNob2xkID0gTnVtYmVyKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUF1dG9FbWFpbChldmVudDogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmF1dG9FbWFpbCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlsc1tcImF1dG9FbWFpbFwiXSA9IHtcclxuICAgICAgICB0eXBlOiBbXSxcclxuICAgICAgICB1c2VyczogW10sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXV0b0VtYWlsLnR5cGUucHVzaCh0eXBlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmF1dG9FbWFpbC50eXBlID1cclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hdXRvRW1haWwudHlwZS5maWx0ZXIoXHJcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZSAhPSB0eXBlLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVFbWFpbGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmF1dG9FbWFpbC51c2VycyA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRW1haWxVc2VycyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWwudXNlcnMgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUVtYWlsVGVhbXMoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsLnRlYW1zID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVBdXRvVGFza1VzZXJzKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy51c2VycyA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGltZVNsb3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnRhc2tWYWxpZGl0eS50aW1lID0gMTtcclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPT0gXCJtaW5zXCIpIHtcclxuICAgICAgdGhpcy50aW1lU2xvdCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSBcImhvdXJzXCIpIHtcclxuICAgICAgdGhpcy50aW1lU2xvdCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDI0IH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRpbWVTbG90ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMyB9LCAoXywgaSkgPT4gaSArIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVjdXJyZW5jZShldmVudDogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnJlY3VycmVuY2VUeXBlID0gdHlwZTtcclxuICAgICAgdGhpcy5yZWN1cnJlbmNldGltZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRXZWVrTnVtYmVyKGRhdGU6IGFueSkge1xyXG4gIGxldCBkYXlzID0gW107XHJcbiAgbGV0IGRhdGVEYXQgPSBkYXlqcyhkYXRlKS5zdGFydE9mKCdtb250aCcpO1xyXG5cclxuICB3aGlsZSAoZGF0ZURhdC5tb250aCgpID09PSBkYXRlLm1vbnRoKCkpIHtcclxuICAgIGlmIChkYXRlRGF0LmZvcm1hdCgnZGRkZCcpID09PSBkYXRlLmZvcm1hdCgnZGRkZCcpKSB7XHJcbiAgICAgIGRheXMucHVzaChkYXRlRGF0LmZvcm1hdCgnWVlZWS1NTS1ERCcpKTtcclxuICAgIH1cclxuICAgIGRhdGVEYXQgPSBkYXRlRGF0LmFkZCgxLCAnZGF5Jyk7XHJcbiAgfVxyXG5cclxuICBsZXQgZmluZEluZGV4ID0gZGF5cy5maW5kSW5kZXgoKGl0ZW06IGFueSkgPT4gaXRlbSA9PSBkYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gIHJldHVybiAoZmluZEluZGV4ICsgMSk7XHJcbn0iLCI8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwiY2FyZCByb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiIWxvYWRpbmdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTMgcGItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwiIWRpc2FibGVkUXVlc3Rpb24gJiZ0eXBlID09PSAnY3VzdG9tJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIicvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0J1wiIFtxdWVyeVBhcmFtc109XCJ7Y2hlY2tsaXN0SWQ6IGNoZWNrbGlzdElkfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZSBtZS01IHB4LTMgcHktM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNS44MzMyIDEwLjAwMDNINC4xNjY1TTQuMTY2NSAxMC4wMDAzTDkuOTk5ODQgMTUuODMzN000LjE2NjUgMTAuMDAwM0w5Ljk5OTg0IDQuMTY2OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW4gdy04MDBweFwiICpuZ0lmPVwidHlwZSA9PT0gJ2N1c3RvbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudCBtYi00IHctMTAwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJjaGVja2xpc3QgcGxhaW4taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgQ2hlY2tsaXN0IE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jaGVja0xpc3ROYW1lXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnQgdy0xMDBcIj48aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tsaXN0RGVzY3JpcHRpb24gcGxhaW4taW5wdXRcIiAjY2hlY2tsaXN0RGVzY3JpcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIENoZWNrbGlzdCBEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNoZWNrTGlzdERlc2NyaXB0aW9uXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgIT09ICdjdXN0b20nXCIgY2xhc3M9XCJmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnQgbWItNCB3LTEwMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hlY2tsaXN0IHBsYWluLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgQ2hlY2tsaXN0IE5hbWVcIiBbdmFsdWVdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0TmFtZVwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnQgdy0xMDBcIj48aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFpbi1pbnB1dFwiICNjaGVja2xpc3REZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERlc2NyaXB0aW9uXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXktNiBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1tZCBweS00IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0eXBlID09PSAnY3VzdG9tJyA/IHB1Ymxpc2goKSA6IHB1Ymxpc2hBSSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkUHVibGlzaCB8fCBkaXNhYmxlQnRuXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+UHVibGlzaDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidHlwZSA9PT0nY3VzdG9tJyA/IHNhdmVkcmFmdCgpIDogc2F2ZURyYWZ0QUkoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnRuXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+U2F2ZSBhcyBEcmFmdDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgY2hlY2tjb25maWdjb250IG10LTJcIiAqbmdJZj1cImNvbmZpZ0RhdGFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTMgbGVmdGNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcHgtNyBweS03XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZzFcIj57e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNoZWNrTGlzdE5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5jaGVja0xpc3RJZFwiIGNsYXNzPVwic2VjdGlvbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWN0aW9uczsgbGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy00IGZ3LWJvbGQgc2VjdGlvblwiPnt7c2VjdGlvbi5uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cImFjY29yZGlhbihpKVwiIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3cgIT09IGl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvdz09PWlcIiBjbGFzcz1cInF1ZXN0aW9uLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGF0YV09XCJzZWN0aW9uLnF1ZXN0aW9uc1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucztsZXQgaj1pbmRleDtcIiBjbGFzcz1cIm15LTIgcS1idG5cIiBjZGtEcmFnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3txdWVzdGlvbi5xbmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTZcIj5TY2hlZHVsZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NhbWVyYXRhbXBlcmluZycsJ3F1ZXVlYWxlcnQnLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ2hhbGZzaHV0dGVyJywnc3RvcmVvcGVuYW5kY2xvc2UnLCd1bmlmb3JtZGV0ZWN0aW9uJywnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsJ3N0YWZmZ3JvdXBpbmcnLCdib3hhbGVydCcsJ2VtcGxveWVlQ291bnQnLCAndW5hdHRlbmRlZGRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJzdWIxIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+UnVucyBiYXNlZCBvbiBTdG9yZSBPcGVuICYgQ2xvc2UgdGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJyB8fCB0eXBlID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnXCIgY2xhc3M9XCJtdC00IG14LTIgc3ViXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIG14LTRcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgNlYxMkwxNiAxNE0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMlwiPnt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lfX0gdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIzIDIzXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC40MTQ0OCA0LjUyMzAzQzguNjk1MTggNC44MDM3MSA4LjY5NTE4IDUuMjU4OCA4LjQxNDQ4IDUuNTM5NDhMNS41Mzk0OCA4LjQxNDQ4QzUuMjU4OCA4LjY5NTE4IDQuODAzNzEgOC42OTUxOCA0LjUyMzAzIDguNDE0NDhMMy4wODU1MyA2Ljk3Njk4QzIuODA0ODIgNi42OTYzIDIuODA0ODIgNi4yNDEyMSAzLjA4NTUzIDUuOTYwNTNDMy4zNjYyMSA1LjY3OTgyIDMuODIxMyA1LjY3OTgyIDQuMTAxOTggNS45NjA1M0w1LjAzMTI1IDYuODg5NzhMNy4zOTgwMyA0LjUyMzAzQzcuNjc4NzEgNC4yNDIzMiA4LjEzMzggNC4yNDIzMiA4LjQxNDQ4IDQuNTIzMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC40MTQ0OCAxMS43MTA1QzguNjk1MTggMTEuOTkxMiA4LjY5NTE4IDEyLjQ0NjMgOC40MTQ0OCAxMi43MjdMNS41Mzk0OCAxNS42MDJDNS4yNTg4IDE1Ljg4MjYgNC44MDM3MSAxNS44ODI2IDQuNTIzMDMgMTUuNjAyTDMuMDg1NTMgMTQuMTY0NUMyLjgwNDgyIDEzLjg4MzggMi44MDQ4MiAxMy40Mjg3IDMuMDg1NTMgMTMuMTQ3OUMzLjM2NjIxIDEyLjg2NzMgMy44MjEzIDEyLjg2NzMgNC4xMDE5OCAxMy4xNDc5TDUuMDMxMjUgMTQuMDc3M0w3LjM5ODAzIDExLjcxMDVDNy42Nzg3MSAxMS40Mjk5IDguMTMzOCAxMS40Mjk5IDguNDE0NDggMTEuNzEwNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wNjI1IDYuNDY4NzVDMTAuMDYyNSA2LjA3MTggMTAuMzg0NCA1Ljc1IDEwLjc4MTIgNS43NUgxNS4wOTM4QzE1LjQ5MDYgNS43NSAxNS44MTI1IDYuMDcxOCAxNS44MTI1IDYuNDY4NzVDMTUuODEyNSA2Ljg2NTcgMTUuNDkwNiA3LjE4NzUgMTUuMDkzOCA3LjE4NzVIMTAuNzgxMkMxMC4zODQ0IDcuMTg3NSAxMC4wNjI1IDYuODY1NyAxMC4wNjI1IDYuNDY4NzVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy41OTM3NSAwQzEuNjA4OTggMCAwIDEuNjA4OTggMCAzLjU5Mzc1VjE2LjUzMTJDMCAxOC41MTYgMS42MDg5OCAyMC4xMjUgMy41OTM3NSAyMC4xMjVIOS40ODcwOEM5LjI1NDI5IDE5LjY2OTYgOS4wNjQzNiAxOS4xODg2IDguOTIyNjEgMTguNjg3NUgzLjU5Mzc1QzIuNDAyODggMTguNjg3NSAxLjQzNzUgMTcuNzIyMSAxLjQzNzUgMTYuNTMxMlYzLjU5Mzc1QzEuNDM3NSAyLjQwMjg4IDIuNDAyODggMS40Mzc1IDMuNTkzNzUgMS40Mzc1SDE2LjUzMTJDMTcuNzIyMSAxLjQzNzUgMTguNjg3NSAyLjQwMjg4IDE4LjY4NzUgMy41OTM3NVY4LjkyMjYxQzE5LjE4ODYgOS4wNjQzNiAxOS42Njk2IDkuMjU0MjkgMjAuMTI1IDkuNDg3MDhWMy41OTM3NUMyMC4xMjUgMS42MDg5OCAxOC41MTYgMCAxNi41MzEyIDBIMy41OTM3NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNi41MzEzIDIzQzIwLjEwMzkgMjMgMjMgMjAuMTAzOSAyMyAxNi41MzEzQzIzIDEyLjk1ODYgMjAuMTAzOSAxMC4wNjI1IDE2LjUzMTMgMTAuMDYyNUMxMi45NTg2IDEwLjA2MjUgMTAuMDYyNSAxMi45NTg2IDEwLjA2MjUgMTYuNTMxM0MxMC4wNjI1IDIwLjEwMzkgMTIuOTU4NiAyMyAxNi41MzEzIDIzWk0xNi41MzEzIDEyLjkzNzVDMTYuOTI4MSAxMi45Mzc1IDE3LjI1IDEzLjI1OTQgMTcuMjUgMTMuNjU2M1YxNS44MTI1SDE5LjQwNjNDMTkuODAzMSAxNS44MTI1IDIwLjEyNSAxNi4xMzQ0IDIwLjEyNSAxNi41MzEzQzIwLjEyNSAxNi45MjgxIDE5LjgwMzEgMTcuMjUgMTkuNDA2MyAxNy4yNUgxNy4yNVYxOS40MDYzQzE3LjI1IDE5LjgwMzEgMTYuOTI4MSAyMC4xMjUgMTYuNTMxMyAyMC4xMjVDMTYuMTM0NCAyMC4xMjUgMTUuODEyNSAxOS44MDMxIDE1LjgxMjUgMTkuNDA2M1YxNy4yNUgxMy42NTYzQzEzLjI1OTQgMTcuMjUgMTIuOTM3NSAxNi45MjgxIDEyLjkzNzUgMTYuNTMxM0MxMi45Mzc1IDE2LjEzNDQgMTMuMjU5NCAxNS44MTI1IDEzLjY1NjMgMTUuODEyNUgxNS44MTI1VjEzLjY1NjNDMTUuODEyNSAxMy4yNTk0IDE2LjEzNDQgMTIuOTM3NSAxNi41MzEzIDEyLjkzNzVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdvbmV0aW1lJyA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ09uZS10aW1lJyA6IChjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSB8IHRpdGxlY2FzZSl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgNlYxMkwxNiAxNE0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+e3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVN0YXJ0VGltZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUuc3Vic3RyKC04KSA6IGNvbmZpZ0RhdGE/Lm9wZW5UaW1lfX0gdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lLnN1YnN0cigtOCkgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGE/LmNsb3NlVGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IG14LTIgc3ViXCIgKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNiAyVjZNOCAyVjZNMyAxMEgyMU01IDRIMTlDMjAuMTA0NiA0IDIxIDQuODk1NDMgMjEgNlYyMEMyMSAyMS4xMDQ2IDIwLjEwNDYgMjIgMTkgMjJINUMzLjg5NTQzIDIyIDMgMjEuMTA0NiAzIDIwVjZDMyA0Ljg5NTQzIDMuODk1NDMgNCA1IDRaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yIG1zLTJcIj48c3Bhbj57e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZX19PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPT0gJycgJiYgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB7e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGV9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC02XCI+QXNzaWduPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTYgNEgxOEMxOC41MzA0IDQgMTkuMDM5MSA0LjIxMDcxIDE5LjQxNDIgNC41ODU3OUMxOS43ODkzIDQuOTYwODYgMjAgNS40Njk1NyAyMCA2VjIwQzIwIDIwLjUzMDQgMTkuNzg5MyAyMS4wMzkxIDE5LjQxNDIgMjEuNDE0MkMxOS4wMzkxIDIxLjc4OTMgMTguNTMwNCAyMiAxOCAyMkg2QzUuNDY5NTcgMjIgNC45NjA4NiAyMS43ODkzIDQuNTg1NzkgMjEuNDE0MkM0LjIxMDcxIDIxLjAzOTEgNCAyMC41MzA0IDQgMjBWNkM0IDUuNDY5NTcgNC4yMTA3MSA0Ljk2MDg2IDQuNTg1NzkgNC41ODU3OUM0Ljk2MDg2IDQuMjEwNzEgNS40Njk1NyA0IDYgNEg4TTkgMkgxNUMxNS41NTIzIDIgMTYgMi40NDc3MiAxNiAzVjVDMTYgNS41NTIyOCAxNS41NTIzIDYgMTUgNkg5QzguNDQ3NzIgNiA4IDUuNTUyMjggOCA1VjNDOCAyLjQ0NzcyIDguNDQ3NzIgMiA5IDJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+IHt7Y292ZXJhZ2UgfCB0aXRsZWNhc2V9fXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zLjA4OTk1IDYuODgzMzJMMy4wMjQwMSA2Ljk4NjMyQzIuMzAzNTggOC4yNTUyMSAzLjA2MTAxIDkuODc5MDggNC40NjQ2NCAxMC4wNjU5QzQuNTg2MjcgMTAuMDgwOCA0LjcwMTEyIDEwLjA4ODkgNC44MTQ1IDEwLjA4ODlDNS41NTI1NSAxMC4wODg5IDYuMjA1MjMgOS43NzE5MiA2LjY1OTUzIDkuMjc4OEw3LjIxMjg2IDguNjc4MThMNy43NjQzMiA5LjI4MDUyQzguMjEzNjcgOS43NzEzNSA4Ljg2NTIgMTAuMDg4OSA5LjYwNzc2IDEwLjA4ODlDMTAuMzQ3MSAxMC4wODg5IDExLjAwMjIgOS43NzEgMTEuNDUxMiA5LjI4MDUyTDEyLjAwNDQgOC42NzYyOUwxMi41NTc2IDkuMjgwNTJDMTMuMDA2NiA5Ljc3MSAxMy42NjE3IDEwLjA4ODkgMTQuNDAxIDEwLjA4ODlDMTUuMTQwNCAxMC4wODg5IDE1Ljc5NTQgOS43NzEgMTYuMjQ0NSA5LjI4MDUyTDE2Ljc5NzcgOC42NzYyOUwxNy4zNTA4IDkuMjgwNTJDMTcuNzk5OSA5Ljc3MSAxOC40NTQ5IDEwLjA4ODkgMTkuMTk0MyAxMC4wODg5QzE5LjMwNDEgMTAuMDg4OSAxOS40MjIzIDEwLjA4MDggMTkuNTQzMyAxMC4wNjZDMjAuOTc3MiA5Ljg3MTMxIDIxLjczNTUgOC4xNjM1MSAyMC45MTU1IDYuODgzODJDMjAuOTE1NCA2Ljg4Mzc2IDIwLjkxNTQgNi44ODM3MSAyMC45MTU0IDYuODgzNjVMMTguODA1NiAzLjU5MzkyTDE4LjgwNTYgMy41OTM5MkwxOC44MDQ2IDMuNTkyNDZDMTguNzU4MiAzLjUxOTY2IDE4LjY2NDkgMy40NjM4NyAxOC41NTg0IDMuNDYzODdINS40NDMwN0M1LjMzNjUgMy40NjM4NyA1LjI0MzI2IDMuNTE5NjYgNS4xOTY4MSAzLjU5MjQ2TDUuMTk2MTkgMy41OTM0MkwzLjA4OTk1IDYuODgzMzJaTTQuODE4MTggMTIuNzQ5NkM0LjcxNjQ0IDEyLjc0OTYgNC42MTYgMTIuNzQ2NSA0LjUxNjkgMTIuNzQwNlYxNi42NDI0VjE4Ljk2MzlDNC41MTY5IDE5LjgyMDcgNS4yMjY2MyAyMC41MzUzIDYuMTE5NDIgMjAuNTM1M0gxNy44ODJDMTguNzc0OCAyMC41MzUzIDE5LjQ4NDUgMTkuODIwNyAxOS40ODQ1IDE4Ljk2MzlWMTYuNjQyNFYxMi43NDExQzE5LjM4NzQgMTIuNzQ2NiAxOS4yODkzIDEyLjc0OTYgMTkuMTkwNiAxMi43NDk2QzE5LjAwMjIgMTIuNzQ5NiAxOC44MTU3IDEyLjczOTUgMTguNjMyIDEyLjcxOThWMTYuNjQyNFYxNy4zOTI0SDE3Ljg4Mkg2LjExOTQySDUuMzY5NDJWMTYuNjQyNFYxMi43MjA2QzUuMTg4NjYgMTIuNzM5NyA1LjAwNDcyIDEyLjc0OTYgNC44MTgxOCAxMi43NDk2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7YXNzaWduU2luZ2xlPy5sZW5ndGggKyBncm91cEFzc2lnbj8ubGVuZ3RofX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb3ZlcmFnZX19e3soYXNzaWduU2luZ2xlPy5sZW5ndGggKyBncm91cEFzc2lnbj8ubGVuZ3RoKSA+IDEgPyAncyc6Jyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1sZy0xMCBlZGl0cXVlc1wiICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKSAmJiAhZGlzYWJsZWRRdWVzdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNhdmVhbmRyZWRpcmVjdChvYmouY2hlY2tMaXN0SWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRhc2hlZCBidG4gYnRuLWxpZ2h0IHVwbG9hZFwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjEgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC42NjY2IDIuNTAwOUMxNC44ODU1IDIuMjgyMDMgMTUuMTQ1MyAyLjEwODQyIDE1LjQzMTMgMS45ODk5NkMxNS43MTczIDEuODcxNTEgMTYuMDIzOCAxLjgxMDU1IDE2LjMzMzMgMS44MTA1NUMxNi42NDI4IDEuODEwNTUgMTYuOTQ5MyAxLjg3MTUxIDE3LjIzNTMgMS45ODk5NkMxNy41MjEzIDIuMTA4NDIgMTcuNzgxMSAyLjI4MjAzIDE4IDIuNTAwOUMxOC4yMTg4IDIuNzE5NzcgMTguMzkyNCAyLjk3OTYxIDE4LjUxMDkgMy4yNjU1OEMxOC42Mjk0IDMuNTUxNTQgMTguNjkwMyAzLjg1ODA0IDE4LjY5MDMgNC4xNjc1N0MxOC42OTAzIDQuNDc3MSAxOC42Mjk0IDQuNzgzNiAxOC41MTA5IDUuMDY5NTZDMTguMzkyNCA1LjM1NTUzIDE4LjIxODggNS42MTUzNyAxOCA1LjgzNDI0TDYuNzQ5OTYgMTcuMDg0MkwyLjE2NjYzIDE4LjMzNDJMMy40MTY2MyAxMy43NTA5TDE0LjY2NjYgMi41MDA5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwidXBsb2FkdGV4dFwiPkVkaXQgUXVlc3Rpb25zPC9zcGFuPjwvYT4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTAgZWRpdHF1ZXNcIiAqbmdJZj1cIiFkaXNhYmxlZFF1ZXN0aW9uJiZ0eXBlID09PSAnY3VzdG9tJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCInL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdCdcIiBbcXVlcnlQYXJhbXNdPVwie2NoZWNrbGlzdElkOiBjaGVja2xpc3RJZH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGFzaGVkIGJ0biBidG4tbGlnaHQgdXBsb2FkXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjY2NjYgMi41MDA5QzE0Ljg4NTUgMi4yODIwMyAxNS4xNDUzIDIuMTA4NDIgMTUuNDMxMyAxLjk4OTk2QzE1LjcxNzMgMS44NzE1MSAxNi4wMjM4IDEuODEwNTUgMTYuMzMzMyAxLjgxMDU1QzE2LjY0MjggMS44MTA1NSAxNi45NDkzIDEuODcxNTEgMTcuMjM1MyAxLjk4OTk2QzE3LjUyMTMgMi4xMDg0MiAxNy43ODExIDIuMjgyMDMgMTggMi41MDA5QzE4LjIxODggMi43MTk3NyAxOC4zOTI0IDIuOTc5NjEgMTguNTEwOSAzLjI2NTU4QzE4LjYyOTQgMy41NTE1NCAxOC42OTAzIDMuODU4MDQgMTguNjkwMyA0LjE2NzU3QzE4LjY5MDMgNC40NzcxIDE4LjYyOTQgNC43ODM2IDE4LjUxMDkgNS4wNjk1NkMxOC4zOTI0IDUuMzU1NTMgMTguMjE4OCA1LjYxNTM3IDE4IDUuODM0MjRMNi43NDk5NiAxNy4wODQyTDIuMTY2NjMgMTguMzM0MkwzLjQxNjYzIDEzLjc1MDlMMTQuNjY2NiAyLjUwMDlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJ1cGxvYWR0ZXh0XCI+RWRpdCBRdWVzdGlvbnM8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzFcIj5BbGVydHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNiBteC00IHN1YlwiPkVtYWlsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJteC00IG10LTQgc3ViXCI+aWYgdXNhZ2UgZXhjZWVkc1xyXG4gICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YT8uYWlDb25maWc/Lm1vYmlsZURldGVjdGlvbj8udXNhZ2VFeGNlZWR9fVxyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50c1xyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxXCI+QWxlcnRzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtNCBzdWJcIj5TZW5kIGVtYWlsIGV2ZXJ5ZGF5IHRvPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIVsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSkgJiYgY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHM/Lmxlbmd0aFwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9PT0nZ2xvYmFsJ1wiIGNsYXNzPVwic2NlZHVsZS10ZXh0XCI+RXZlcnlkYXkgYXQge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF5anMoY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHNbMF0/LnRpbWUsJ0hIOk1NJykuZm9ybWF0KCdoaDptbSBBJykgfX0gZm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHNbMF0/LmR1cmF0aW9ufX0gbWluczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXNzaWduQ29uZmlnID09PSdzdG9yZSdcIiBjbGFzcz1cInNjZWR1bGUtdGV4dFwiPk11bHRpcGxlIHRpbWVzIGFyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZWQgZm9yIG11bHRpcGxlIHN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKSAmJiBjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0cy51c2Vycz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzEgbXQtNFwiPkFsZXJ0cyBUbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBhbGVydCBvZiBjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0cy51c2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtMiBtcy0yIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgaC0yNXB4XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnkgcm91bmRlZC01IG1lLTFcIj57e2dldEluaXRpYWxzKGFsZXJ0Py5uYW1lKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2FsZXJ0Py5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cIiFbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpICYmIGNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRzLnVzZXJzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC00XCI+QWxlcnRzIFRvPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGFsZXJ0IG9mIGNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRzLnVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yIG1zLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBoLTI1cHhcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSByb3VuZGVkLTUgbWUtMVwiPnt7Z2V0SW5pdGlhbHMoYWxlcnQ/Lm5hbWUpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7YWxlcnQ/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKSAmJiBjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvPy5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzEgbXQtNFwiPkFsZXJ0cyBUbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBhbGVydCBvZiBjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvPy5tb2JpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTIgbXMtMiBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0IGgtMjVweFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5IHJvdW5kZWQtNSBtZS0xXCI+e3tnZXRJbml0aWFscyhhbGVydD8ubmFtZSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3thbGVydD8ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3R2Y29tcGxpYW5jZScsJ3F1ZXVlYWxlcnQnLCdjYW1lcmF0YW1wZXJpbmcnLCdlbXBsb3llZUNvdW50JywgJ3VuYXR0ZW5kZWRkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKSAmJiBjb25maWdEYXRhPy5haUNvbmZpZz8ubW9iaWxlRGV0ZWN0aW9uPy5kZXRlY3Rpb25BcmVhPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtbiBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC00XCI+RGV0ZWN0aW9uIEFyZWFzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Q2hlY2tsaXN0IHdpbGwgcnVuIG9uIHRoaXMgWm9uZTwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgc3ViXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB6b25lIG9mIGNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5tb2JpbGVEZXRlY3Rpb24/LmRldGVjdGlvbkFyZWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBteC0yIG10LTQgYmFkZ2UtbGlnaHQgY2hlY2tsaXN0bGFiZWwgaC0yNXB4IGZzLWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSByb3VuZGVkLTUgbWUtMVwiPnt7Z2V0SW5pdGlhbHMoem9uZT8ubmFtZSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwia2ktZHVvdG9uZSBraS1hcnJvdy11cCBjaGVja2xpc3R0ZXh0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t6b25lPy5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTRcIj5Bc3NpZ248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNiA0SDE4QzE4LjUzMDQgNCAxOS4wMzkxIDQuMjEwNzEgMTkuNDE0MiA0LjU4NTc5QzE5Ljc4OTMgNC45NjA4NiAyMCA1LjQ2OTU3IDIwIDZWMjBDMjAgMjAuNTMwNCAxOS43ODkzIDIxLjAzOTEgMTkuNDE0MiAyMS40MTQyQzE5LjAzOTEgMjEuNzg5MyAxOC41MzA0IDIyIDE4IDIySDZDNS40Njk1NyAyMiA0Ljk2MDg2IDIxLjc4OTMgNC41ODU3OSAyMS40MTQyQzQuMjEwNzEgMjEuMDM5MSA0IDIwLjUzMDQgNCAyMFY2QzQgNS40Njk1NyA0LjIxMDcxIDQuOTYwODYgNC41ODU3OSA0LjU4NTc5QzQuOTYwODYgNC4yMTA3MSA1LjQ2OTU3IDQgNiA0SDhNOSAySDE1QzE1LjU1MjMgMiAxNiAyLjQ0NzcyIDE2IDNWNUMxNiA1LjU1MjI4IDE1LjU1MjMgNiAxNSA2SDlDOC40NDc3MiA2IDggNS41NTIyOCA4IDVWM0M4IDIuNDQ3NzIgOC40NDc3MiAyIDkgMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+IFN0b3Jlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy4wODk5NSA2Ljg4MzMyTDMuMDI0MDEgNi45ODYzMkMyLjMwMzU4IDguMjU1MjEgMy4wNjEwMSA5Ljg3OTA4IDQuNDY0NjQgMTAuMDY1OUM0LjU4NjI3IDEwLjA4MDggNC43MDExMiAxMC4wODg5IDQuODE0NSAxMC4wODg5QzUuNTUyNTUgMTAuMDg4OSA2LjIwNTIzIDkuNzcxOTIgNi42NTk1MyA5LjI3ODhMNy4yMTI4NiA4LjY3ODE4TDcuNzY0MzIgOS4yODA1MkM4LjIxMzY3IDkuNzcxMzUgOC44NjUyIDEwLjA4ODkgOS42MDc3NiAxMC4wODg5QzEwLjM0NzEgMTAuMDg4OSAxMS4wMDIyIDkuNzcxIDExLjQ1MTIgOS4yODA1MkwxMi4wMDQ0IDguNjc2MjlMMTIuNTU3NiA5LjI4MDUyQzEzLjAwNjYgOS43NzEgMTMuNjYxNyAxMC4wODg5IDE0LjQwMSAxMC4wODg5QzE1LjE0MDQgMTAuMDg4OSAxNS43OTU0IDkuNzcxIDE2LjI0NDUgOS4yODA1MkwxNi43OTc3IDguNjc2MjlMMTcuMzUwOCA5LjI4MDUyQzE3Ljc5OTkgOS43NzEgMTguNDU0OSAxMC4wODg5IDE5LjE5NDMgMTAuMDg4OUMxOS4zMDQxIDEwLjA4ODkgMTkuNDIyMyAxMC4wODA4IDE5LjU0MzMgMTAuMDY2QzIwLjk3NzIgOS44NzEzMSAyMS43MzU1IDguMTYzNTEgMjAuOTE1NSA2Ljg4MzgyQzIwLjkxNTQgNi44ODM3NiAyMC45MTU0IDYuODgzNzEgMjAuOTE1NCA2Ljg4MzY1TDE4LjgwNTYgMy41OTM5MkwxOC44MDU2IDMuNTkzOTJMMTguODA0NiAzLjU5MjQ2QzE4Ljc1ODIgMy41MTk2NiAxOC42NjQ5IDMuNDYzODcgMTguNTU4NCAzLjQ2Mzg3SDUuNDQzMDdDNS4zMzY1IDMuNDYzODcgNS4yNDMyNiAzLjUxOTY2IDUuMTk2ODEgMy41OTI0Nkw1LjE5NjE5IDMuNTkzNDJMMy4wODk5NSA2Ljg4MzMyWk00LjgxODE4IDEyLjc0OTZDNC43MTY0NCAxMi43NDk2IDQuNjE2IDEyLjc0NjUgNC41MTY5IDEyLjc0MDZWMTYuNjQyNFYxOC45NjM5QzQuNTE2OSAxOS44MjA3IDUuMjI2NjMgMjAuNTM1MyA2LjExOTQyIDIwLjUzNTNIMTcuODgyQzE4Ljc3NDggMjAuNTM1MyAxOS40ODQ1IDE5LjgyMDcgMTkuNDg0NSAxOC45NjM5VjE2LjY0MjRWMTIuNzQxMUMxOS4zODc0IDEyLjc0NjYgMTkuMjg5MyAxMi43NDk2IDE5LjE5MDYgMTIuNzQ5NkMxOS4wMDIyIDEyLjc0OTYgMTguODE1NyAxMi43Mzk1IDE4LjYzMiAxMi43MTk4VjE2LjY0MjRWMTcuMzkyNEgxNy44ODJINi4xMTk0Mkg1LjM2OTQyVjE2LjY0MjRWMTIuNzIwNkM1LjE4ODY2IDEyLjczOTcgNS4wMDQ3MiAxMi43NDk2IDQuODE4MTggMTIuNzQ5NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7dGhpcy5jb25maWdEYXRhPy5zdG9yZUxpc3Q/Lmxlbmd0aH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZXt7dGhpcy5jb25maWdEYXRhPy5zdG9yZUxpc3Q/Lmxlbmd0aCA+IDEgPyAncyc6Jyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFbJ2N1c3RvbScsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnaGFsZnNodXR0ZXInLCdzdG9yZW9wZW5hbmRjbG9zZScsJ3VuaWZvcm1kZXRlY3Rpb24nLCdzdG9yZWh5Z2llbmVtb25pdG9yaW5nJywnY2FtZXJhdGFtcGVyaW5nJywndHZjb21wbGlhbmNlJywnc3RhZmZncm91cGluZycsJ2JveGFsZXJ0JywnZW1wbG95ZWVDb3VudCcsICd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSkgJiYgY29uZmlnRGF0YS5hcHByb3Zlcj8ubGVuZ3RoICYmIGNsaWVudElkIT09JzQ1MidcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC00XCI+QXV0b21hdGljIFRhc2s8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYXBwcm92ZSBvZiBjb25maWdEYXRhLmFwcHJvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yIG1zLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBoLTI1cHhcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSByb3VuZGVkLTUgbWUtMVwiPnt7Z2V0SW5pdGlhbHMoYXBwcm92ZT8ubmFtZSl9fTwvc3Bhbj57e2FwcHJvdmU/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBDb25maWcgZGl2IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtOVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBiZy10cmFuc3BhcmVudCBib3JkZXItMCBvdXRsaW5lLTAgY2FyZC1mbHVzaCBoLXhsLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFbJ2hhbGZzaHV0dGVyJywndHZjb21wbGlhbmNlJywncXVldWVhbGVydCcsJ2NhbWVyYXRhbXBlcmluZycsJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCdzdGFmZmdyb3VwaW5nJywnYm94YWxlcnQnLCdlbXBsb3llZUNvdW50JywndW5hdHRlbmRlZGRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBiZy13aGl0ZSByb3VuZGVkLTQgcHgtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKFsnbW9iaWxldXNhZ2VkZXRlY3Rpb24nLCdzdG9yZW9wZW5hbmRjbG9zZScsJ3VuaWZvcm1kZXRlY3Rpb24nLCdoYWxmc2h1dHRlciddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmdcIj5TY2hlZHVsZSBDaGVja2xpc3QgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKFsnc3RvcmVvcGVuYW5kY2xvc2UnLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3VuaWZvcm1kZXRlY3Rpb24nLCdoYWxmc2h1dHRlciddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG1iLTZcIj5TZXQgdGhlIHRpbWUgdG8gcnVuIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrbGlzdDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtYi02XCI+U2V0IHRoZSBkZXNpcmVkIHRpbWUgdG8gcnVuIHRoZSBjaGVja2xpc3Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmdcIj5TY2hlZHVsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg3NF82NjE5NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NzRfNjYxOTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cIlsndW5pZm9ybWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTIgbXgtNFwiPkZyb208L3NwYW4+Jm5ic3A7Jm5ic3A7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0yMDBweCBtdC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ3N0YXJ0JylcIiBbKG5nTW9kZWwpXT1cInN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCIgbmFtZT1cImR1ZV9kYXRlXCIgdHlwZT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTMgbXgtNFwiPlRvPC9zcGFuPiZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0yMDBweCBtdC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ2VuZCcpXCIgWyhuZ01vZGVsKV09XCJlbmRUaW1lXCIgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZHVlX2RhdGVcIiB0eXBlPVwidGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtNSBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNoZWNrbGlzdCB3aWxsIHJ1biBiYXNlZCBvbiBlYWNoIHN0b3Jl4oCZcyBvcGVuaW5nIGFuZCBjbG9zaW5nIHRpbWVzLiBZb3UgY2FuIHZpZXcgb3IgZWRpdCBzdG9yZSB0aW1pbmdzIGluIHRoZSAnQXNzaWduIFN0b3Jlcycgc2VjdGlvbiBiZWxvdy4gRG93bmxvYWQgdGhlIHRlbXBsYXRlLCB1cGRhdGUgdGhlIHRpbWluZ3MsIGFuZCBidWxrIHVwbG9hZCB5b3VyIGNoYW5nZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTUgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjaGVja2xpc3Qgd2lsbCBydW4gYmFzZWQgb24gZWFjaCBzdG9yZeKAmXMgb3BlbmluZyBhbmQgY2xvc2luZyB0aW1lcy4gWW91IGNhbiB2aWV3IG9yIGVkaXQgc3RvcmUgdGltaW5ncyBpbiB0aGUgJ0Fzc2lnbiBTdG9yZXMnIHNlY3Rpb24gYmVsb3cuIERvd25sb2FkIHRoZSB0ZW1wbGF0ZSwgdXBkYXRlIHRoZSB0aW1pbmdzLCBhbmQgYnVsayB1cGxvYWQgeW91ciBjaGFuZ2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzY3J1bSddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtNSBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgc3RvcmUncyBvcGVuIGFuZCBjbG9zZSB0aW1lcyBhcmUgc2V0IGluIHRoZSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGRlclwiPnN0b3JlIGNvbmZpZ3VyYXRpb25zLjwvc3Bhbj4gVG8gbWFrZSBjaGFuZ2VzLCBwbGVhc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGUgPHNwYW4gcm91dGVyTGluaz1cIi9tYW5hZ2Uvc2V0dGluZ3MvY29uZmlndXJhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiPmNsaWNrIGhlcmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjbGVhbmluZyddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTUgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHN0b3JlJ3Mgb3BlbiBhbmQgY2xvc2UgdGltZXMgYXJlIHNldCBpbiB0aGUgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdy1ib2xkZXJcIj5zdG9yZSBjb25maWd1cmF0aW9ucy48L3NwYW4+IFRvIG1ha2UgY2hhbmdlcywgcGxlYXNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlIDxzcGFuIHJvdXRlckxpbms9XCIvbWFuYWdlL3NldHRpbmdzL2NvbmZpZ3VyYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIj5jbGljayBoZXJlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnc3RhZmZsZWZ0aW50aGVtaWRkbGUnXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC01IGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgQUkgY2hlY2tsaXN0IHdpbGwgaW5pdGlhdGUgZGV0ZWN0aW9ucyBiYXNlZCBvbiB0aGUgc3RvcmUncyBvcGVyYXRpb25hbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXJzLCBzdGFydGluZyB3aGVuIHRoZSBzdG9yZSBvcGVucyBhbmQgc3RvcHBpbmcgd2hlbiBpdCBjbG9zZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjdXN0b21lcnVuYXR0ZW5kZWQnXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC01IGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgQUkgY2hlY2tsaXN0IHdpbGwgaW5pdGlhdGUgZGV0ZWN0aW9ucyBiYXNlZCBvbiB0aGUgc3RvcmUncyBvcGVyYXRpb25hbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXJzLCBzdGFydGluZyB3aGVuIHRoZSBzdG9yZSBvcGVucyBhbmQgc3RvcHBpbmcgd2hlbiBpdCBjbG9zZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWyd1bmlmb3JtZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtNSBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNoZWNrbGlzdCB3aWxsIHJ1biBiYXNlZCBvbiBlYWNoIHN0b3Jl4oCZcyBvcGVuaW5nIGFuZCBjbG9zaW5nIHRpbWVzLiBZb3UgY2FuIHZpZXcgb3IgZWRpdCBzdG9yZSB0aW1pbmdzIGluIHRoZSAnQXNzaWduIFN0b3Jlcycgc2VjdGlvbiBiZWxvdy4gRG93bmxvYWQgdGhlIHRlbXBsYXRlLCB1cGRhdGUgdGhlIHRpbWluZ3MsIGFuZCBidWxrIHVwbG9hZCB5b3VyIGNoYW5nZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NsZWFuaW5nJywnc2NydW0nXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTYgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJjbGlja0FJY29uZmlndXJlKCdnbG9iYWwnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdnbG9iYWwnPyAnY29uZmlndXJlQWNpdGUnIDogJ2JvcmRlciBib3JkZXItMSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gaC03MHB4IHJvdW5kZWQtMyBwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpbGxdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAnI0VBRjhGRicgOiAnI0YyRjRGNydcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAnI0RBRjFGRicgOicjRjlGQUZCJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCI0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDE3OV80Njg2NylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS43NSAyNkMxMS4yODU5IDI2IDEwLjg0MDggMjUuODE1NiAxMC41MTI2IDI1LjQ4NzRDMTAuMTg0NCAyNS4xNTkyIDEwIDI0LjcxNDEgMTAgMjQuMjVWMTEuNzVDMTAgMTAuNzg0IDEwLjc4NCAxMCAxMS43NSAxMEgyMC4yNUMyMS4yMTYgMTAgMjIgMTAuNzg0IDIyIDExLjc1VjI0LjI1QzIyIDI0LjMzNSAyMS45OTQgMjQuNDE4IDIxLjk4MiAyNC41SDI0LjI1QzI0LjMxNjMgMjQuNSAyNC4zNzk5IDI0LjQ3MzcgMjQuNDI2OCAyNC40MjY4QzI0LjQ3MzcgMjQuMzc5OSAyNC41IDI0LjMxNjMgMjQuNSAyNC4yNVYxOC4yODVDMjQuNSAxOC4yNDM5IDI0LjQ4OTkgMTguMjAzNCAyNC40NzA2IDE4LjE2NzFDMjQuNDUxMiAxOC4xMzA4IDI0LjQyMzIgMTguMDk5OSAyNC4zODkgMTguMDc3TDIzLjMzNCAxNy4zNzRDMjMuMjUyMSAxNy4zMTk0IDIzLjE4MTcgMTcuMjQ5MSAyMy4xMjY5IDE3LjE2NzNDMjMuMDcyMSAxNy4wODU1IDIzLjAzMzkgMTYuOTkzNyAyMy4wMTQ2IDE2Ljg5NzFDMjIuOTk1MyAxNi44MDA1IDIyLjk5NTIgMTYuNzAxMSAyMy4wMTQzIDE2LjYwNDVDMjMuMDMzNCAxNi41MDc4IDIzLjA3MTQgMTYuNDE1OSAyMy4xMjYgMTYuMzM0QzIzLjE4MDYgMTYuMjUyMSAyMy4yNTA5IDE2LjE4MTcgMjMuMzMyNyAxNi4xMjY5QzIzLjQxNDUgMTYuMDcyMSAyMy41MDYzIDE2LjAzMzkgMjMuNjAyOSAxNi4wMTQ2QzIzLjY5OTUgMTUuOTk1MyAyMy43OTg5IDE1Ljk5NTIgMjMuODk1NSAxNi4wMTQzQzIzLjk5MjIgMTYuMDMzNCAyNC4wODQxIDE2LjA3MTQgMjQuMTY2IDE2LjEyNkwyNS4yMjEgMTYuODI5QzI1LjcwOCAxNy4xNTQgMjYgMTcuNyAyNiAxOC4yODVWMjQuMjVDMjYgMjQuNzE0MSAyNS44MTU2IDI1LjE1OTIgMjUuNDg3NCAyNS40ODc0QzI1LjE1OTIgMjUuODE1NiAyNC43MTQxIDI2IDI0LjI1IDI2SDIwLjc1QzIwLjY4MzUgMjUuOTk5OSAyMC42MTczIDI1Ljk5MTIgMjAuNTUzIDI1Ljk3NEMyMC40NTQgMjUuOTkxIDIwLjM1MyAyNiAyMC4yNSAyNkgxNy4yNUMxNy4wNTExIDI2IDE2Ljg2MDMgMjUuOTIxIDE2LjcxOTcgMjUuNzgwM0MxNi41NzkgMjUuNjM5NyAxNi41IDI1LjQ0ODkgMTYuNSAyNS4yNVYyNEgxNS41VjI1LjI1QzE1LjUgMjUuNDQ4OSAxNS40MjEgMjUuNjM5NyAxNS4yODAzIDI1Ljc4MDNDMTUuMTM5NyAyNS45MjEgMTQuOTQ4OSAyNiAxNC43NSAyNkgxMS43NVpNMTEuNSAyNC4yNUMxMS41IDI0LjM4OCAxMS42MTIgMjQuNSAxMS43NSAyNC41SDE0VjIzLjI1QzE0IDIzLjA1MTEgMTQuMDc5IDIyLjg2MDMgMTQuMjE5NyAyMi43MTk3QzE0LjM2MDMgMjIuNTc5IDE0LjU1MTEgMjIuNSAxNC43NSAyMi41SDE3LjI1QzE3LjQ0ODkgMjIuNSAxNy42Mzk3IDIyLjU3OSAxNy43ODAzIDIyLjcxOTdDMTcuOTIxIDIyLjg2MDMgMTggMjMuMDUxMSAxOCAyMy4yNVYyNC41SDIwLjI1QzIwLjMxNjMgMjQuNSAyMC4zNzk5IDI0LjQ3MzcgMjAuNDI2OCAyNC40MjY4QzIwLjQ3MzcgMjQuMzc5OSAyMC41IDI0LjMxNjMgMjAuNSAyNC4yNVYxMS43NUMyMC41IDExLjY4MzcgMjAuNDczNyAxMS42MjAxIDIwLjQyNjggMTEuNTczMkMyMC4zNzk5IDExLjUyNjMgMjAuMzE2MyAxMS41IDIwLjI1IDExLjVIMTEuNzVDMTEuNjgzNyAxMS41IDExLjYyMDEgMTEuNTI2MyAxMS41NzMyIDExLjU3MzJDMTEuNTI2MyAxMS42MjAxIDExLjUgMTEuNjgzNyAxMS41IDExLjc1VjI0LjI1Wk0xMy43NSAxNkgxNC4yNUMxNC40NDg5IDE2IDE0LjYzOTcgMTYuMDc5IDE0Ljc4MDMgMTYuMjE5N0MxNC45MjEgMTYuMzYwMyAxNSAxNi41NTExIDE1IDE2Ljc1QzE1IDE2Ljk0ODkgMTQuOTIxIDE3LjEzOTcgMTQuNzgwMyAxNy4yODAzQzE0LjYzOTcgMTcuNDIxIDE0LjQ0ODkgMTcuNSAxNC4yNSAxNy41SDEzLjc1QzEzLjU1MTEgMTcuNSAxMy4zNjAzIDE3LjQyMSAxMy4yMTk3IDE3LjI4MDNDMTMuMDc5IDE3LjEzOTcgMTMgMTYuOTQ4OSAxMyAxNi43NUMxMyAxNi41NTExIDEzLjA3OSAxNi4zNjAzIDEzLjIxOTcgMTYuMjE5N0MxMy4zNjAzIDE2LjA3OSAxMy41NTExIDE2IDEzLjc1IDE2Wk0xMyAxMy43NUMxMyAxMy41NTExIDEzLjA3OSAxMy4zNjAzIDEzLjIxOTcgMTMuMjE5N0MxMy4zNjAzIDEzLjA3OSAxMy41NTExIDEzIDEzLjc1IDEzSDE0LjI1QzE0LjQ0ODkgMTMgMTQuNjM5NyAxMy4wNzkgMTQuNzgwMyAxMy4yMTk3QzE0LjkyMSAxMy4zNjAzIDE1IDEzLjU1MTEgMTUgMTMuNzVDMTUgMTMuOTQ4OSAxNC45MjEgMTQuMTM5NyAxNC43ODAzIDE0LjI4MDNDMTQuNjM5NyAxNC40MjEgMTQuNDQ4OSAxNC41IDE0LjI1IDE0LjVIMTMuNzVDMTMuNTUxMSAxNC41IDEzLjM2MDMgMTQuNDIxIDEzLjIxOTcgMTQuMjgwM0MxMy4wNzkgMTQuMTM5NyAxMyAxMy45NDg5IDEzIDEzLjc1Wk0xNyAxNi43NUMxNyAxNi41NTExIDE3LjA3OSAxNi4zNjAzIDE3LjIxOTcgMTYuMjE5N0MxNy4zNjAzIDE2LjA3OSAxNy41NTExIDE2IDE3Ljc1IDE2SDE4LjI1QzE4LjQ0ODkgMTYgMTguNjM5NyAxNi4wNzkgMTguNzgwMyAxNi4yMTk3QzE4LjkyMSAxNi4zNjAzIDE5IDE2LjU1MTEgMTkgMTYuNzVDMTkgMTYuOTQ4OSAxOC45MjEgMTcuMTM5NyAxOC43ODAzIDE3LjI4MDNDMTguNjM5NyAxNy40MjEgMTguNDQ4OSAxNy41IDE4LjI1IDE3LjVIMTcuNzVDMTcuNTUxMSAxNy41IDE3LjM2MDMgMTcuNDIxIDE3LjIxOTcgMTcuMjgwM0MxNy4wNzkgMTcuMTM5NyAxNyAxNi45NDg5IDE3IDE2Ljc1Wk0xNy43NSAxM0gxOC4yNUMxOC40NDg5IDEzIDE4LjYzOTcgMTMuMDc5IDE4Ljc4MDMgMTMuMjE5N0MxOC45MjEgMTMuMzYwMyAxOSAxMy41NTExIDE5IDEzLjc1QzE5IDEzLjk0ODkgMTguOTIxIDE0LjEzOTcgMTguNzgwMyAxNC4yODAzQzE4LjYzOTcgMTQuNDIxIDE4LjQ0ODkgMTQuNSAxOC4yNSAxNC41SDE3Ljc1QzE3LjU1MTEgMTQuNSAxNy4zNjAzIDE0LjQyMSAxNy4yMTk3IDE0LjI4MDNDMTcuMDc5IDE0LjEzOTcgMTcgMTMuOTQ4OSAxNyAxMy43NUMxNyAxMy41NTExIDE3LjA3OSAxMy4zNjAzIDE3LjIxOTcgMTMuMjE5N0MxNy4zNjAzIDEzLjA3OSAxNy41NTExIDEzIDE3Ljc1IDEzWk0xMyAxOS43NUMxMyAxOS41NTExIDEzLjA3OSAxOS4zNjAzIDEzLjIxOTcgMTkuMjE5N0MxMy4zNjAzIDE5LjA3OSAxMy41NTExIDE5IDEzLjc1IDE5SDE0LjI1QzE0LjQ0ODkgMTkgMTQuNjM5NyAxOS4wNzkgMTQuNzgwMyAxOS4yMTk3QzE0LjkyMSAxOS4zNjAzIDE1IDE5LjU1MTEgMTUgMTkuNzVDMTUgMTkuOTQ4OSAxNC45MjEgMjAuMTM5NyAxNC43ODAzIDIwLjI4MDNDMTQuNjM5NyAyMC40MjEgMTQuNDQ4OSAyMC41IDE0LjI1IDIwLjVIMTMuNzVDMTMuNTUxMSAyMC41IDEzLjM2MDMgMjAuNDIxIDEzLjIxOTcgMjAuMjgwM0MxMy4wNzkgMjAuMTM5NyAxMyAxOS45NDg5IDEzIDE5Ljc1Wk0xNy43NSAxOUgxOC4yNUMxOC40NDg5IDE5IDE4LjYzOTcgMTkuMDc5IDE4Ljc4MDMgMTkuMjE5N0MxOC45MjEgMTkuMzYwMyAxOSAxOS41NTExIDE5IDE5Ljc1QzE5IDE5Ljk0ODkgMTguOTIxIDIwLjEzOTcgMTguNzgwMyAyMC4yODAzQzE4LjYzOTcgMjAuNDIxIDE4LjQ0ODkgMjAuNSAxOC4yNSAyMC41SDE3Ljc1QzE3LjU1MTEgMjAuNSAxNy4zNjAzIDIwLjQyMSAxNy4yMTk3IDIwLjI4MDNDMTcuMDc5IDIwLjEzOTcgMTcgMTkuOTQ4OSAxNyAxOS43NUMxNyAxOS41NTExIDE3LjA3OSAxOS4zNjAzIDE3LjIxOTcgMTkuMjE5N0MxNy4zNjAzIDE5LjA3OSAxNy41NTExIDE5IDE3Ljc1IDE5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnZ2xvYmFsJyA/ICcjMDBBM0ZGJyA6ICdibGFjaydcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTAxNzlfNDY4NjdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTAgMTApXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy0zIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdnbG9iYWwnID8gJ3RleHQtcHJpbWFyeScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlciBmdy1ib2xkXCI+R2xvYmFsIENvbmZpZ3VyYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAnYWxlcnR0ZXh0JyA6ICdoZWFkZXJhbGlnbidcIj5Db25maWd1cmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHVkZGxlIHRpbWUgaW4gYSBzdG9yZSBsZXZlbCBmb3IgYWxsIHN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHctMTVweCBoLTE1cHggbXQtMSByb3VuZGVkLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdnbG9iYWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cIm9uZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTYgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJjbGlja0FJY29uZmlndXJlKCdzdG9yZScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ3N0b3JlJyA/ICdjb25maWd1cmVBY2l0ZScgOiAnYm9yZGVyIGJvcmRlci0xJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBoLTcwcHggcm91bmRlZC0zIHAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9PT0gJ3N0b3JlJyA/ICcjRUFGOEZGJzonI0YyRjRGNydcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hc3NpZ25Db25maWcgPT09ICdzdG9yZScgPyAnI0RBRjFGRicgOiAnI0Y5RkFGQidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjA1NzQgMTQuNTg4MkwxMi4wMTM0IDE0LjY1NjlDMTEuNTMzMSAxNS41MDI4IDEyLjAzODEgMTYuNTg1NCAxMi45NzM4IDE2LjcwOTlDMTMuMDU0OSAxNi43MTk5IDEzLjEzMTUgMTYuNzI1MyAxMy4yMDcxIDE2LjcyNTNDMTMuNjk5MSAxNi43MjUzIDE0LjEzNDIgMTYuNTE0IDE0LjQzNzEgMTYuMTg1MkwxNC44MDYgMTUuNzg0OEwxNS4xNzM2IDE2LjE4NjRDMTUuNDczMiAxNi41MTM2IDE1LjkwNzUgMTYuNzI1MyAxNi40MDI2IDE2LjcyNTNDMTYuODk1NSAxNi43MjUzIDE3LjMzMjIgMTYuNTEzMyAxNy42MzE1IDE2LjE4NjRMMTguMDAwMyAxNS43ODM1TDE4LjM2OTEgMTYuMTg2NEMxOC42Njg1IDE2LjUxMzMgMTkuMTA1MiAxNi43MjUzIDE5LjU5ODEgMTYuNzI1M0MyMC4wOTEgMTYuNzI1MyAyMC41Mjc3IDE2LjUxMzMgMjAuODI3IDE2LjE4NjRMMjEuMTk1OCAxNS43ODM1TDIxLjU2NDYgMTYuMTg2NEMyMS44NjQgMTYuNTEzMyAyMi4zMDA3IDE2LjcyNTMgMjIuNzkzNiAxNi43MjUzQzIyLjg2NjggMTYuNzI1MyAyMi45NDU2IDE2LjcxOTkgMjMuMDI2MiAxNi43MUMyMy45ODIyIDE2LjU4MDIgMjQuNDg3OCAxNS40NDE3IDIzLjk0MTEgMTQuNTg4NkMyMy45NDEgMTQuNTg4NSAyMy45NDEgMTQuNTg4NSAyMy45NDEgMTQuNTg4NEwyMi41MzQ0IDEyLjM5NTNMMjIuNTMzOCAxMi4zOTQzQzIyLjUwMjggMTIuMzQ1OCAyMi40NDA3IDEyLjMwODYgMjIuMzY5NiAxMi4zMDg2SDEzLjYyNjFDMTMuNTU1MSAxMi4zMDg2IDEzLjQ5MjkgMTIuMzQ1OCAxMy40NjE5IDEyLjM5NDNMMTMuNDYxNSAxMi4zOTVMMTIuMDU3NCAxNC41ODgyWk0xMS42MzYzIDE0LjMxODZMMTMuMDQwNCAxMi4xMjU0TDExLjYzNjMgMTQuMzE4NlpNMTMuMjA5NSAxOC40OTkxQzEzLjE0MTcgMTguNDk5MSAxMy4wNzQ3IDE4LjQ5NyAxMy4wMDg3IDE4LjQ5MzFWMjEuMDk0M1YyMi42NDE5QzEzLjAwODcgMjMuMjEzMSAxMy40ODE4IDIzLjY4OTUgMTQuMDc3IDIzLjY4OTVIMjEuOTE4N0MyMi41MTM5IDIzLjY4OTUgMjIuOTg3MSAyMy4yMTMxIDIyLjk4NzEgMjIuNjQxOVYyMS4wOTQzVjE4LjQ5MzRDMjIuOTIyNCAxOC40OTcxIDIyLjg1NjkgMTguNDk5MSAyMi43OTExIDE4LjQ5OTFDMjIuNjY1NSAxOC40OTkxIDIyLjU0MTIgMTguNDkyMyAyMi40MTg3IDE4LjQ3OTJWMjEuMDk0M1YyMS41OTQzSDIxLjkxODdIMTQuMDc3SDEzLjU3N1YyMS4wOTQzVjE4LjQ3OThDMTMuNDU2NSAxOC40OTI1IDEzLjMzMzkgMTguNDk5MSAxMy4yMDk1IDE4LjQ5OTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnc3RvcmUnID8gJyMwMEEzRkYnIDogJyMxMDE4MjgnXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnc3RvcmUnID8gJ3RleHQtcHJpbWFyeScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlciBmdy1ib2xkXCI+U3RvcmUgV2lzZSBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdzdG9yZScgPyAnYWxlcnR0ZXh0JyA6ICdoZWFkZXJhbGlnbidcIj5Db25maWd1cmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHVkZGxlIHRpbWUgaW4gYSBzdG9yZSBsZXZlbCBmb3IgYWxsIHN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHctMTVweCBoLTE1cHggbXQtMSByb3VuZGVkLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdzdG9yZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwib25lVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnc3RvcmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1zbS0xMiBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkQUlmaWxlcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTA4XCIgaGVpZ2h0PVwiODhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTA4IDg4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMzAuODQ2OVwiIGN5PVwiMzAuODQ2OVwiIHI9XCIzMC44NDY5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDg0Ljg1MTYgMClcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RkXzk1NDhfOTk2MTMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUzLjA0OTkgOS40OTIxOUM1OS40NDA0IDkuNDkyMTkgNjUuMDkzMyAxMi42NSA2OC41MzM0IDE3LjQ5MDRDNjkuNjU2OCAxNy4yMjU1IDcwLjgyODMgMTcuMDg1MyA3Mi4wMzI2IDE3LjA4NTNDODAuNDE5NyAxNy4wODUzIDg3LjIxODggMjMuODg0NCA4Ny4yMTg4IDMyLjI3MTVDODcuMjE4OCA0MC42NTg1IDgwLjQxOTcgNDcuNDU3NiA3Mi4wMzI2IDQ3LjQ1NzZMMzQuMDY3MSA0Ny40NTc2QzI2LjcyODQgNDcuNDU3NiAyMC43NzkzIDQxLjUwODQgMjAuNzc5MyAzNC4xNjk3QzIwLjc3OTMgMjYuODMxIDI2LjcyODQgMjAuODgxOCAzNC4wNjcyIDIwLjg4MThDMzQuNTg4NCAyMC44ODE4IDM1LjEwMjcgMjAuOTExOCAzNS42MDgzIDIwLjk3MDJDMzguNTE3MiAxNC4yMTg3IDQ1LjIzMTYgOS40OTIxOSA1My4wNDk5IDkuNDkyMTlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRjlGQUZCXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVsbGlwc2UgY3g9XCIxNS4xODYyXCIgY3k9XCIxNS4xODYyXCIgcng9XCIxNS4xODYyXCIgcnk9XCIxNS4xODYyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA4Ny4yMTg4IDE3LjA4NTkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ1cmwoI3BhaW50MF9saW5lYXJfOTU0OF85OTYxMylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTguOTgyN1wiIGN5PVwiMTguOTgyN1wiIHI9XCIxOC45ODI3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA3Mi4wMzEyIDkuNDkyMTkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ1cmwoI3BhaW50MV9saW5lYXJfOTU0OF85OTYxMylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZWxsaXBzZSBjeD1cIjEzLjI4NzlcIiBjeT1cIjEzLjI4NzlcIiByeD1cIjEzLjI4NzlcIiByeT1cIjEzLjI4NzlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDQ3LjM1OTQgMjAuODc4OSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cInVybCgjcGFpbnQyX2xpbmVhcl85NTQ4Xzk5NjEzKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIyLjk2NjA1XCIgY3k9XCIyLjk2NjA1XCIgcj1cIjIuOTY2MDVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgODkuNTkzOCA4LjMwNDY5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRjJGNEY3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNC4xNTI0N1wiIGN5PVwiNC4xNTI0N1wiIHI9XCI0LjE1MjQ3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDkyLjU2MjUgNjAuNTA3OClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0YyRjRGN1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjQuMTUyNDdcIiBjeT1cIjQuMTUyNDdcIiByPVwiNC4xNTI0N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAxNy4yMjY2IDE2LjYwOTQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGMkY0RjdcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIyLjM3Mjg0XCIgY3k9XCIyLjM3Mjg0XCIgcj1cIjIuMzcyODRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjEuOTY4OCAyLjM3MTA5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRjJGNEY3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjI4LjQ3NDFcIiBoZWlnaHQ9XCIyOC40NzQxXCIgcng9XCIxNC4yMzdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgNjguMjQyMiAzNi43NzczKVwiIGZpbGw9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMC40XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQ4LjY2NiA1Mi43OTQzVjU1LjE2NzFDNDguNjY2IDU1LjQ4MTggNDguNzkxIDU1Ljc4MzYgNDkuMDEzNSA1Ni4wMDYxQzQ5LjIzNiA1Ni4yMjg2IDQ5LjUzNzcgNTYuMzUzNiA0OS44NTI0IDU2LjM1MzZINTguMTU3M0M1OC40NzIgNTYuMzUzNiA1OC43NzM4IDU2LjIyODYgNTguOTk2MyA1Ni4wMDYxQzU5LjIxODggNTUuNzgzNiA1OS4zNDM4IDU1LjQ4MTggNTkuMzQzOCA1NS4xNjcxVjUyLjc5NDNNNTEuMDM4OCA0OC42NDE4TDU0LjAwNDkgNDUuNjc1OE01NC4wMDQ5IDQ1LjY3NThMNTYuOTcwOSA0OC42NDE4TTU0LjAwNDkgNDUuNjc1OFY1Mi43OTQzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjE4NjQyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZGRfOTU0OF85OTYxM1wiIHg9XCIwLjc4MTI1XCIgeT1cIjkuNDkyMTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDYuNDM4XCIgaGVpZ2h0PVwiNzcuOTY0OFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9XCI0XCIgb3BlcmF0b3I9XCJlcm9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW49XCJTb3VyY2VBbHBoYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93Xzk1NDhfOTk2MTNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDMgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfOTU0OF85OTYxM1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cImhhcmRBbHBoYVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz1cIjRcIiBvcGVyYXRvcj1cImVyb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbj1cIlNvdXJjZUFscGhhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QyX2Ryb3BTaGFkb3dfOTU0OF85OTYxM1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIyMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMTJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA4IDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93Xzk1NDhfOTk2MTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cImVmZmVjdDJfZHJvcFNoYWRvd185NTQ4Xzk5NjEzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluMj1cImVmZmVjdDJfZHJvcFNoYWRvd185NTQ4Xzk5NjEzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJzaGFwZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDBfbGluZWFyXzk1NDhfOTk2MTNcIiB4MT1cIjMuNTI1MzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE9XCI1LjE1MjQ1XCIgeDI9XCIzMC4zNzI0XCIgeTI9XCIzMC4zNzIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj1cIiNEMEQ1RERcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC4zNTA3MTVcIiBzdG9wLWNvbG9yPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3Atb3BhY2l0eT1cIjBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDFfbGluZWFyXzk1NDhfOTk2MTNcIiB4MT1cIjQuNDA2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MT1cIjYuNDQwNTZcIiB4Mj1cIjM3Ljk2NTRcIiB5Mj1cIjM3Ljk2NTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjM1MDcxNVwiIHN0b3AtY29sb3I9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5PVwiMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50Ml9saW5lYXJfOTU0OF85OTYxM1wiIHgxPVwiMy4wODQ2OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MT1cIjQuNTA4MzlcIiB4Mj1cIjI2LjU3NThcIiB5Mj1cIjI2LjU3NThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjM1MDcxNVwiIHN0b3AtY29sb3I9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5PVwiMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy00MDBweCBzdWJ0aXRsZSB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG93bmxvYWQgdGhlIHRlbXBsYXRlIGJlbG93IGluIHRoZSA8c3BhbiBjbGFzcz1cImZ3LWJvbGRlclwiPuKAmEFzc2lnblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jlc+KAmTwvc3Bhbj4gc2VjdGlvbiBhbmQgdXBsb2FkIHRvIGNvbmZpZ3VyZSBzdG9yZS13aXNlIHRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSBjaGVja2xpc3QgYWNjb3JkaW5nbHkuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyAhPT0gJ3N0b3JlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtc20tMTIgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFycmF5IG9mIGNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHM7IGxldCBpPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IG1iLTUgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtM1wiPlN0YXJ0IGh1ZGRsZSBhdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LWF1dG8gbWFyZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUh1ZGRsZXRpbWUoJGV2ZW50LCd0aW1lJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYXJyYXkudGltZVwiIHBsYWNlaG9sZGVyPVwiU2V0IHN0b3JlIG9wZW4gdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInN0YXJ0X2RhdGVfe3tpfX1cIiB0eXBlPVwidGltZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0zXCI+Zm9yIGEgZHVyYXRpb24gb2Y8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xNTBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1zZWxlY3QtbGcgc2VsZWN0Mi1oaWRkZW4tYWNjZXNzaWJsZSBuZy1wcmlzdGluZSBuZy12YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFycmF5LmR1cmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUh1ZGRsZXRpbWUoJGV2ZW50LCdkdXJhdGlvbicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjE1XCI+MTUgbWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzMFwiPjMwIG1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNDVcIj40NSBtaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjYwXCI+NjAgbWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzPy5sZW5ndGggPiAxXCI+PGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHB4LTMgbXMtM1wiIChjbGljayk9XCJkZWxldGVIdWRkbGUoaSlcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi41IDUuMDAxM0g0LjE2NjY3TTQuMTY2NjcgNS4wMDEzSDE3LjVNNC4xNjY2NyA1LjAwMTNWMTYuNjY4QzQuMTY2NjcgMTcuMTEgNC4zNDIyNiAxNy41MzM5IDQuNjU0ODIgMTcuODQ2NUM0Ljk2NzM4IDE4LjE1OSA1LjM5MTMxIDE4LjMzNDYgNS44MzMzMyAxOC4zMzQ2SDE0LjE2NjdDMTQuNjA4NyAxOC4zMzQ2IDE1LjAzMjYgMTguMTU5IDE1LjM0NTIgMTcuODQ2NUMxNS42NTc3IDE3LjUzMzkgMTUuODMzMyAxNy4xMSAxNS44MzMzIDE2LjY2OFY1LjAwMTNINC4xNjY2N1pNNi42NjY2NyA1LjAwMTNWMy4zMzQ2NEM2LjY2NjY3IDIuODkyNjEgNi44NDIyNiAyLjQ2ODY4IDcuMTU0ODIgMi4xNTYxMkM3LjQ2NzM4IDEuODQzNTYgNy44OTEzMSAxLjY2Nzk3IDguMzMzMzMgMS42Njc5N0gxMS42NjY3QzEyLjEwODcgMS42Njc5NyAxMi41MzI2IDEuODQzNTYgMTIuODQ1MiAyLjE1NjEyQzEzLjE1NzcgMi40Njg2OCAxMy4zMzMzIDIuODkyNjEgMTMuMzMzMyAzLjMzNDY0VjUuMDAxM004LjMzMzMzIDkuMTY3OTdWMTQuMTY4TTExLjY2NjcgOS4xNjc5N1YxNC4xNjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2J1dHRvbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHM/Lmxlbmd0aCA8IDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIChjbGljayk9XCJBZGRIdWRkbGVFZW50KClcIj4gPHNwYW4+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTc0IDQuMTY3OTdWMTUuODM0Nk00LjE2NDA2IDEwLjAwMTNIMTUuODMwN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJtcy0zXCI+QWRkIEV2ZW50PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydvdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcnXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtMyBweC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtLTNcIj5Db25maWd1cmF0aW9uIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItdG9wIGJvcmRlci10b3AtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAxcHg7IG1hcmdpbjogMXJlbSAtOS43NTBweDtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtMyBweC0zIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtMlwiPlByZS1PcGVuIFRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlUHJlb3BlbnRpbWVjb25maWcoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5haUNvbmZpZz8ub3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nPy5wcmVvcGVudGltZWNvbmZpZyAhPT0gJycgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5XaGVuIGVuYWJsZWQsIHRoaXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd3MgZGV0ZWN0aW9ucyBiZWZvcmUgc3RvcmUgb3BlbiB0aW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJlb3BlbnRpbWVjb25maWcgfHwgY29uZmlnRGF0YS5haUNvbmZpZy5vdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmc/LnByZW9wZW50aW1lY29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbWUtM1wiPiBNb25pdG9yIFN0b3JlIGZvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcub3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nLnByZW9wZW50aW1lY29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdGltZSBvZiBwcmVPcGVuQ2xvc2VUaW1lQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidGltZVwiPnt7IHRpbWUgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1zdWItaGVhZGVyIG1zLTNcIj4gbWludXRlcyBiZWZvcmUgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlZCBvcGVuIFRpbWUgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMiByb3VuZGVkLTMgcHgtMyBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctaGVhZGVyIG10LTJcIj5Qb3N0LUNsb3NlIFRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlUHJlY2xvc2V0aW1lY29uZmlnKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/Lm91dHNpZGVidXNpbmVzc2hvdXJzcXVldWV0cmFja2luZz8ucHJlY2xvc2V0aW1lY29uZmlnICE9PSAnJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbXQtMlwiPldoZW4gZW5hYmxlZCwgdGhpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93cyBkZXRlY3Rpb25zIGFmdGVyIHN0b3JlIGNsb3NlIHRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcmVjbG9zZXRpbWVjb25maWcgfHwgY29uZmlnRGF0YS5haUNvbmZpZy5vdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmc/LnByZWNsb3NldGltZWNvbmZpZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1zdWItaGVhZGVyIG1lLTNcIj4gTW9uaXRvciBTdG9yZSBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLm91dHNpZGVidXNpbmVzc2hvdXJzcXVldWV0cmFja2luZy5wcmVjbG9zZXRpbWVjb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgcmVxdWlyZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0aW1lIG9mIHByZU9wZW5DbG9zZVRpbWVDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0aW1lXCI+e3sgdGltZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbXMtM1wiPiBtaW51dGVzIGFmdGVyIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZWQgY2xvc2UgVGltZSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtMyBweC0zIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtMlwiPlBlcnNvbiBEZXRlY3Rpb24gVGltZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJlc2hvbGQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+V2hlbiBlbmFibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGVjdGlvbiBjb3VudCBpcyBiYXNlZCBvbiB0aGUgY29uZmlndXJlZCB0aW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbWUtM1wiPiBGbGFnLCBJZiBkZXRlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYSBwZXJzb24gZXhjZWVkcyA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLm91dHNpZGVidXNpbmVzc2hvdXJzcXVldWV0cmFja2luZy5wZXJzb25kZXRlY3Rpb250aW1ldGhyZXNob2xkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0aW1lIG9mIHBlcnNvbkRldGVjdGlvblRpbWVUaHJlc2hvbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0aW1lXCI+e3sgdGltZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbXMtM1wiPiBtaW51dGVzIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXQtNiBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC02IHN1YlwiPkZvcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVTY2hlZHVsZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwib25ldGltZVwiPkRvZXMgTm90IFJlcGVhdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIndlZWtkYXlcIj4gRXZlcnkgV2Vla2RheSAoTW9uIC0gRnJpKTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImRhaWx5XCI+RGFpbHk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ3ZWVrbHlcIj5XZWVrbHk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtb250aGx5XCI+TW9udGhseTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJhbmdlXCI+Q3VzdG9tIFJhbmdlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtMyBteC0yXCI+QXQ8L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTIwMHB4IG1hcmdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ3N0YXJ0JylcIiBbKG5nTW9kZWwpXT1cInN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNldCBzdG9yZSBvcGVuIHRpbWVcIiBuYW1lPVwiZHVlX2RhdGVcIiB0eXBlPVwidGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtMyBtcy01XCI+RW5kczwvc3Bhbj4mbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMjAwcHggbWFyZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVGltZSgnZW5kJylcIiBbKG5nTW9kZWwpXT1cImVuZFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCIgbmFtZT1cImR1ZV9kYXRlXCIgdHlwZT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmdcIj5DaGVja2xpc3QgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ29uZXRpbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2wtbGctMTIgZC1mbGV4IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtM1wiPk9uY2UgT248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgcHgtNCBwZS0zXCIgaWQ9XCJkYXRlY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXI9XCJ0cnVlXCIgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXItb3BlbnM9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZCBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZVJhbmdlU3RhcnQoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT09ICdvbmV0aW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwicmFuZ2VEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBuZy12YWxpZCBuZy1kaXJ0eSBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2hvd1JhbmdlVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdyYW5nZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVEYXRlVmFsdWUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicmFuZ2VEYXRlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGNoZWNrbGlzdHRleHQgbXMtMlwiPlNldFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSByYW5nZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2wtbGctMTIgZC1mbGV4IG10LTVcIiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTNcIj5TdGFydHMgZnJvbTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdyYW5nZScgPyAncHMtMTAnIDogJ3B4LTQgcGUtMydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJkYXRlY2xhc3NcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXItb3BlbnM9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZCBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluU3RhcnREYXRlXCIgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZVJhbmdlU3RhcnQoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtdC04IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPT0gJ3JhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YlwiPlJlcGVhdHMgZXZlcnk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IG1iLTUgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctMTAwcHggbmctcHJpc3RpbmUgbmctaW52YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMlwiIG1pbj1cIjFcIiAoY2hhbmdlKT1cInVwZGF0ZVJlcGVhdERheSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJyZW1vdmVBbHBoYXBldCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IG14LTIgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTEwMHB4IG5nLXByaXN0aW5lIG5nLWludmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlcGVhdFR5cGVcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ21vbnRobHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdkYXknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZU1vbnRoKCdkYXknKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJpbmxpbmVSYWRpbzFcIj5PblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERheTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy0xMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ2RheScgPyAnZGlzYWJsZWQnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdkYXknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGg9XCIyXCIgKGlucHV0KT1cInZhbGlkYXRlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdkYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVNb250aCgnZGF0ZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIGZvcj1cImlubGluZVJhZGlvMVwiPk9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9udGhEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIj4gRmlyc3QgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj4gU2Vjb25kIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+IFRoaXJkPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjRcIj4gRm91cnRoPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj4gTGFzdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IG14LTIgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb250aERheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTdW5kYXlcIj4gU3VuZGF5IDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJNb25kYXlcIj4gTW9uZGF5IDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJUdWVzZGF5XCI+IFR1ZXNkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiV2VkbmVzZGF5XCI+IFdlZG5lc2RheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJUaHVyc2RheVwiPiBUaHVyc2RheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJGcmlkYXlcIj5GcmlkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiU2F0dXJkYXlcIj4gU2F0dXJkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdzcGVjaWZpYydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlTW9udGgoJ3NwZWNpZmljJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+T25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGVjaWZpYyBEYXRlczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2xvc2VEcm9wRG93bigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY2xvc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZHJvcGRvd24taW5wdXQgcHMtMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wRG93bigpXCIgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdzcGVjaWZpYydcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBjdXN0b20tZHJvcGRvd24tbWVudSB3LTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0Ryb3BEb3duXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0yIG1iLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF0ZSBvZiBkYXRlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBtZS0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUoZGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgYnRuIHdlZWtzdHlsZWRhdGUgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtcGlsbCBtaW4tdy0zNXB4IHB5LTIgcHgtMyBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkRGF0ZS5pbmNsdWRlcyhkYXRlKSA/ICdhY3RpdmUgYnRuLWFjdGl2ZS1wcmltYXJ5JyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cInRhYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwidGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaWxsc3R5bGVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24gbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXREYXRlKCk7c2hvd0Ryb3BEb3duPSBmYWxzZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJtaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgcHktMyBiYWRnZS1zcGVjaWZpY2RhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGRhdGUgb2Ygc3VibWl0dGVkRGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1saWdodCBjaGVja2xpc3R0ZXh0IG1lLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXREYXRlV2l0aFN1ZmZpeChkYXRlKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJyZW1vdmVCYWRnZShkYXRlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSAzTDMgOU0zIDNMOSA5XCIgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnd2Vla2RheScsJ3dlZWtseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXBpbGxzIGQtZmxleCBmbGV4LW5vd3JhcCBtYi0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYmxpc3RcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBtZS0xXCIgcm9sZT1cInByZXNlbnRhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIihjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICd3ZWVrbHknIHx8IChjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICd3ZWVrZGF5JyAmJiAhWydTdW5kYXknLCdTYXR1cmRheSddLmluY2x1ZGVzKGRheSkpKSA/IHNldERheShkYXkpIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rIGJ0biB3ZWVrc3R5bGUgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtcGlsbCBtaW4tdy00NXB4IG1lLTIgcHktNCBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3dlZWtkYXknICYmIFsnU3VuZGF5JywnU2F0dXJkYXknXS5pbmNsdWRlcyhkYXkpKSA/ICdjdXJzb3ItZGVmYXVsdCcgOiBzZWxlY3RlZERheXMuaW5jbHVkZXMoZGF5KSA/ICdzZWxlY3REYXknIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cInRhYlwiIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIiByb2xlPVwidGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGlsbHN0eWxlXCI+e3sgZGF5WzBdIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG5nLXZhbGlkIG5nLWRpcnR5IG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzcGVjaWZpY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVNwZWNpZmljKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGNoZWNrbGlzdHRleHQgbXMtMlwiPk9uIFNwZWNpZmljXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTQgcGUtMyBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2xvc2VEcm9wRG93bigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jbG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgdy0zMDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGRyb3Bkb3duLWlucHV0IHBzLTE0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wRG93bigpXCIgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3BlY2lmaWNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBjdXN0b20tZHJvcGRvd24tbWVudSB3LTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93RHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLW11bHRpLWRhdGUtZGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWREYXRlcyk9XCJzZWxlY3RTcGVjaWZpY0RhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmVkZWZpbmVkRGF0ZXNdPVwic2VsZWN0ZWREYXRlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGFydERhdGVdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmREYXRlXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlXCI+PC9saWItbXVsdGktZGF0ZS1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBweS0zIGJhZGdlLXNwZWNpZmljZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIG1zLTUgZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGRhdGUgb2Ygc2VsZWN0ZWREYXRlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1saWdodCBjaGVja2xpc3R0ZXh0IG1lLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwicmVtb3ZlRGF0ZShkYXRlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05IDNMMyA5TTMgM0w5IDlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIXNob3dSYW5nZVZhbHVlIHx8IGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ29uZXRpbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAncmFuZ2UnID8gJ210LTQnIDogJ210LTInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YlwiPkVuZHMgT248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiBpZD1cImRhdGVjbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdyYW5nZScgPyAncHMtOScgOiAncHgtNCBwZS0zJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlci1vcGVucz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRW5kRGF0ZVwiIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEVuZERhdGVcIiBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlUmFuZ2VFbmQoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IHJlbW92ZSBjdXJzb3ItcG9pbnRlciBtcy00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGF0ZXBpY2tlclJlZnJlc2goKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT09ICcnICYmIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlICE9PSBudWxsICYmIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPT0ncmFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnb25ldGltZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9jY3VycyBvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGRheSB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVEYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgdXNlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnd2Vla2RheScsJ3dlZWtseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPY2N1cnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZXJ5IHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09JzAxJykgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5IDogJyd9fSB3ZWVrPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gMDFcIj5zPC9zcGFuPiBvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZERheXMudG9TdHJpbmcoKX19PHNwYW4gKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPiBzdGFydGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZVwiPnVudGlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnZGFpbHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPY2N1cnMgZXZlcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09ICcwMScpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSA6ICcnfX0gZGF5PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gMDFcIj5zPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPiBzdGFydGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGU6J2RkIE1NTSBZWVlZJ319IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIFwiPnVudGlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnbW9udGhseSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9jY3Vyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09ICcwMScpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSA6ICcnfX0gbW9udGg8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5ICE9PSAwMVwiPnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj57eyhjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09PSAnZGF5JykgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdvbiBkYXkgJyArIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09PSAnZGF0ZScgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlTW9udGhWYWx1ZSgpOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3BlY2lmaWNWYWx1ZSgpfX08c3BhbiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+IHN0YXJ0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlXCI+dW50aWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zIHVzZXJcIiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9jY3VycyBldmVyeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlV2Vla0RheXM/LnRvU3RyaW5nKCl9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1JhbmdlVmFsdWVcIj4gc3RhcnRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlOidkZCBNTU0gWVlZWSd9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZVwiPnVudGlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWxlZnRcIiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmdcIj5SZXNwb25zZSBDb25maWd1cmF0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwibXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjb25maWdhY2NvcmRpYW4oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3djb25maWd9XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3djb25maWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0RyYWc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ29uZXRpbWUnLCdkYWlseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUpIHx8IChjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnbW9udGhseScgJiYgIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09J3NwZWNpZmljJykgPyAnYmctY29sb3ItZGlzYWJsZWQnIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxsb3dPbmNlID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd09uY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwib25lVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlsnb25ldGltZScsJ2RhaWx5J10uaW5jbHVkZXMoY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSkgfHwgKGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdtb250aGx5JyAmJiAgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0nc3BlY2lmaWMnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWIgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwib25lVGltZVwiPk9ubHkgb25lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHQgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwib25lVGltZVwiPkJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxpbmcgdGhpcywgdGhlIHJlc3BvbnNlIGNhbiBiZSBjYXB0dXJlZCBvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jZSBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIGNoZWNrbGlzdCA8c3BhbiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+ZnJvbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZVwiPnRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlfX0uPC9zcGFuPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFsbG93ZWRPdmVyVGltZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93ZWRPdmVyVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImZpbGxSZXNwb25zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3ViIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmaWxsUmVzcG9uc2VcIj5GaWxsIHJlc3BvbnNlIGFmdGVyIGNvbmZpZ3VyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLjwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmlsbFJlc3BvbnNlXCI+QnkgZW5hYmxpbmcsIHRoZSB1c2VyIGNhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3QgZXZlbiBhZnRlciB0aGUgYWJvdmUgY29uZmlndXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQtdGltZS48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGxvd2VkU3RvcmVMb2NhdGlvbiA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dlZFN0b3JlTG9jYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwiZ2VvRmVuY2luZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWIgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZ2VvRmVuY2luZ1wiPkdlb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlbmNpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0IG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImdlb0ZlbmNpbmdcIj5CeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsaW5nLCB0aGUgY2hlY2tsaXN0IGNhbiBiZSBmaWxsZWQgYnkgdGhlIHVzZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5IHdoZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNpZGUgdGhlIHN0b3JlLjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGxvd2VkTXVsdGlTdWJtaXQgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93ZWRNdWx0aVN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJhbGxvd2VkTXVsdGlTdWJtaXRTd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3ViIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImFsbG93ZWRNdWx0aVN1Ym1pdFN3aXRjaFwiPkFsbG93IG11bHRpcGxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VzPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHQgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiYWxsb3dlZE11bHRpU3VibWl0U3dpdGNoXCI+QnkgZW5hYmxpbmcsIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSBmaWxsZWQgbXVsdGlwbGUgdGltZXMgaW4gYSBkYXk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucmVzdHJpY3RBdHRlbmRhbmNlID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZXN0cmljdEF0dGVuZGFuY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwicmVzdHJpY3RBdHRlbmRhbmNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YiBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJyZXN0cmljdEF0dGVuZGFuY2VcIj5SZXN0cmljdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGVuZGFuY2U8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJyZXN0cmljdEF0dGVuZGFuY2VcIj5CeSBlbmFibGluZywgdXNlciBjYW4ndCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFibGUgdG8gY2xvY2tvdXQgd2l0aG91dCBjb21wbGV0aW5nIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhc2suPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdFwiICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctaGVhZGluZ1wiPkFkdmFuY2UgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYWR2YW5jZWFjY29yZGlhbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyb3RhdGUnIDogc2hvd2FkdmFuY2V9XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dhZHZhbmNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcmFnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Q2hlY2tsaXN0IE93bmVyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3duZXJzIGdldCBhY2Nlc3MgdG8gbWFuYWdlIHRoZSBjaGVja2xpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5DYW4gYmUgbWFuYWdlZCBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctODBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ub3duZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZU93bmVyKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZm9ybS1jaGVjay1sYWJlbCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BcHByb3Zlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFwcHJvdmVyPy5sZW5ndGggPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFwcHJvdmVcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFwcHJvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVDb25maWdBcHByb3ZlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeSBlbmFibGluZywgdGhlIHVzZXJzIHdpbGwgYmUgYWJsZSB0byBhcHByb3ZlIHRoZSBjaGVja2xpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG10LTNcIiAqbmdJZj1cImFwcHJvdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5UbyBiZSBhcHByb3ZlZCBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctODBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXBwcm92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUFwcHJvdmVyKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZm9ybS1jaGVjay1sYWJlbCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5SZW1pbmRlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVtYWluZGVyXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJvbmVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVDb25maWdSZW1haW5kZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnkgZW5hYmxpbmcsIHRoZSB1c2VycyB3aWxsIGJlIHJlbWluZGVkIGluIHRoZSBzZWxlY3RlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnZhbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtM1wiICpuZ0lmPVwicmVtYWluZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTUgdy0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViXCI+Tm90aWZ5IHVzZXIgYmVmb3JlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTgwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSB3LTIwMHB4ICxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxvb3Agb2YgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZW1haW5kZXI7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gKm5nRm9yPVwibGV0IGxvb3Agb2YgdGltZUxvb3BcIj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE0ODdfNDc2MzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAuMDAxMyA1LjAwMDMzVjEwLjAwMDNMMTMuMzM0NiAxMS42NjdNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTQ4N180NzYzNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgcHMtMTQgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVSZW1haW5kZXIoJGV2ZW50LGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ3JlbWFpbmRlcicrIGlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0aW1lIG9mIHVwZGF0ZVRpbWVMb29wKGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTIwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImxvb3AgPT09IHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidGltZVwiPnt7dGltZX19IG1pbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIubGVuZ3RoIDwgM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlTG9vcCgpXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEwLjAwMTMgNC4xNjY5OVYxNS44MzM3TTQuMTY3OTcgMTAuMDAwM0gxNS44MzQ2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVtYWluZGVyXCIgY2xhc3M9XCJtdC0yIHVzZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZCBBbGVydHMgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXI7bGV0IGk9aW5kZXhcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSAhPT0gY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5sZW5ndGgtMSAmJiBpICE9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLDwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSA9PT0gY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5sZW5ndGgtMSAmJiBpICE9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kPC9zcGFuPiB7e2l0ZW19fW1pbnMgPC9zcGFuPmJlZm9yZSB0aGUgY2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCB0aW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk5vdGlmeSBGbGFnczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIm5vdGlmeUZsYWcgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5vdGlmeUZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk5vdGlmeUZsYWdUb2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cIm5vdGlmeVN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeSBlbmFibGluZywgYWxsIGZsYWdzIHdpbGwgYmUgc2VudCBhcyBlbWFpbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIHNvcFRhYmxlXCIgKm5nSWY9XCJub3RpZnlGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kIFRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBoLTE0cHggdy0xNHB4IG14LTFcIiB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYXBwcm92ZXJcIiBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5ub3RpZnlGbGFncz8ubm90aWZ5VHlwZT8uaW5jbHVkZXMoJ2FwcHJvdmVyJylcIiAoY2hhbmdlKSA9XCJ1cGRhdGVOb3RpZnkoJGV2ZW50LCdhcHByb3ZlcicpXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIGxpbmVIZWlnaHRcIj5BcHByb3Zlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImN1c3RvbVwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/Lm5vdGlmeUZsYWdzPy5ub3RpZnlUeXBlPy5pbmNsdWRlcygnY3VzdG9tJylcIiAoY2hhbmdlKSA9XCJ1cGRhdGVOb3RpZnkoJGV2ZW50LCdjdXN0b20nKVwiPjwvZGl2PiA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBsaW5lSGVpZ2h0XCI+Q3VzdG9tPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5ub3RpZnlGbGFncz8ubm90aWZ5VHlwZT8uaW5jbHVkZXMoJ2N1c3RvbScpICYmIG5vdGlmeUZsYWdcIiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5ub3RpZnlGbGFncz8udXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVOb3RpZmllcigkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk5vdGlmeSBvbiBSZWN1cnJpbmcgRmxhZ3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJyZWN1cnJpbmdGbGFnTm90aWZ5ID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWN1cnJpbmdGbGFnTm90aWZ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25SZWN1cnJpbmdGbGFnVG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJyZWN1cnJpbmdGbGFnU3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoZW4gZW5hYmxlZCwgZW1haWxzIGFyZSBzZW50IGZvciByZWN1cnJpbmcgZmxhZ3MgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVjdXJyaW5nRmxhZ05vdGlmeVwiIGNsYXNzPVwicmVjdXJyaW5nLWZsYWctYm94IG10LTMgcC00IGJvcmRlciByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yXCI+U2VuZCBFbWFpbCBpZiB0aGUgc2FtZSBxdWVzdGlvbiBpcyBmbGFnZ2VkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LXNtIHctNzVweCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5yZWN1cnJpbmdGbGFnPy50aHJlc2hvbGQgfHwgM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlUmVjdXJyaW5nVGhyZXNob2xkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0IG9mIHJlY3VycmluZ1RocmVzaG9sZHNcIiBbdmFsdWVdPVwidFwiPnt7dH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPnRpbWVzIGJ5IHRoZSBzYW1lIHN0b3JlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtdC0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIGNsYXNzPVwibWUtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC4wMDAxNiAxMC42NjczVjguMDAwNjVNOC4wMDAxNiA1LjMzMzk4SDguMDA2ODNNMTQuNjY2OCA4LjAwMDY1QzE0LjY2NjggMTEuNjgyNiAxMS42ODIxIDE0LjY2NzMgOC4wMDAxNiAxNC42NjczQzQuMzE4MjYgMTQuNjY3MyAxLjMzMzUgMTEuNjgyNiAxLjMzMzUgOC4wMDA2NUMxLjMzMzUgNC4zMTg3NSA0LjMxODI2IDEuMzMzOTggOC4wMDAxNiAxLjMzMzk4QzExLjY4MjEgMS4zMzM5OCAxNC42NjY4IDQuMzE4NzUgMTQuNjY2OCA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5PbmNlIHRoZSB0aHJlc2hvbGQgaXMgcmVhY2hlZCBhbmQgYW4gZW1haWwgaXMgc2VudCwgdGhlIGZsYWcgY291bnQgcmVzZXRzIHRvIHplcm88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTMgc29wVGFibGVcIiAqbmdJZj1cInJlY3VycmluZ0ZsYWdOb3RpZnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQgVG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJyZWN1cnJpbmdBcHByb3ZlclwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/Lm5vdGlmeVR5cGU/LmluY2x1ZGVzKCdhcHByb3ZlcicpXCIgKGNoYW5nZSk9XCJ1cGRhdGVSZWN1cnJpbmdOb3RpZnkoJGV2ZW50LCdhcHByb3ZlcicpXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIGxpbmVIZWlnaHRcIj5BcHByb3Zlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInJlY3VycmluZ0N1c3RvbVwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/Lm5vdGlmeVR5cGU/LmluY2x1ZGVzKCdjdXN0b20nKVwiIChjaGFuZ2UpPVwidXBkYXRlUmVjdXJyaW5nTm90aWZ5KCRldmVudCwnY3VzdG9tJylcIj48L2Rpdj4gPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPkN1c3RvbTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInJlY3VycmluZ1NhbWVBc05vdGlmeVwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/Lm5vdGlmeVR5cGU/LmluY2x1ZGVzKCdzYW1lQXNOb3RpZnknKVwiIChjaGFuZ2UpPVwidXBkYXRlUmVjdXJyaW5nTm90aWZ5KCRldmVudCwnc2FtZUFzTm90aWZ5JylcIj48L2Rpdj4gPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPlVzZSBzYW1lIHVzZXJzIGZyb20gTm90aWZ5IEZsYWdzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWN1cnJpbmdGbGFnTm90aWZ5ICYmIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/Lm5vdGlmeVR5cGU/LmluY2x1ZGVzKCdjdXN0b20nKVwiIGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/LnVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlUmVjdXJyaW5nRmxhZ1VzZXJzKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZm9ybS1jaGVjay1sYWJlbCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+RW5hYmxlIC0gRGFpbHkgUmVwb3J0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiZW5hYmxlRW1haWwgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVuYWJsZUVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FbmFibGVFbWFpbFRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwibm90aWZ5U3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5IEVuYWJsaW5nLCBjb21wbGlhbmNlIHNjb3JlIHdpbGwgYmUgc2VudCBhcyBhbiBlbWFpbCB0byB0aGUgYWJvdmUgdXNlcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTMgc29wVGFibGVcIiAqbmdJZj1cImVuYWJsZUVtYWlsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kIFRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBoLTE0cHggdy0xNHB4IG14LTFcIiB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYXV0b0VtYWlsQXBwcm92ZXJcIiBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hdXRvRW1haWw/LnR5cGU/LmluY2x1ZGVzKCdhcHByb3ZlcicpXCIgKGNoYW5nZSkgPVwidXBkYXRlQXV0b0VtYWlsKCRldmVudCwnYXBwcm92ZXInKVwiPjwvZGl2PiA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBsaW5lSGVpZ2h0XCI+QXBwcm92ZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJhdXRvRW1haWxDdXN0b21cIiBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hdXRvRW1haWw/LnR5cGU/LmluY2x1ZGVzKCdjdXN0b20nKVwiIChjaGFuZ2UpID1cInVwZGF0ZUF1dG9FbWFpbCgkZXZlbnQsJ2N1c3RvbScpXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIGxpbmVIZWlnaHRcIj5DdXN0b208L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmF1dG9FbWFpbD8udHlwZT8uaW5jbHVkZXMoJ2N1c3RvbScpXCIgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXV0b0VtYWlsPy51c2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUVtYWlsZXIoJGV2ZW50KVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+RXhwb3J0IFN1Ym1pc3Npb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmV4cG9ydCA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZXhwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImV4cG9ydFN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIHRoaXMgdG8gYWxsb3cgY2hlY2tsaXN0IHN1Ym1pdHRlcnMgdG8gZG93bmxvYWQgdGhlaXIgc3VibWlzc2lvbiBhcyBhIFBERiBmaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmb3JtLWNoZWNrLWxhYmVsIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlJlZG8gVmFsaWRpdHk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldCB0aGUgZHVyYXRpb24gZm9yIHdoaWNoIGEgcmVkbyByZW1haW5zIHZhbGlkIGFmdGVyIGNyZWF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBtZS0zXCI+UmVkbyB2YWxpZCBmb3I8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy04MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlZG9WYWxpZGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgZGF5IG9mIFsxLDIsMyw0LDUsNiw3XVwiIFtuZ1ZhbHVlXT1cImRheVwiPnt7ZGF5fX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXMtM1wiPkRheSBmcm9tIFJlZG8gY3JlYXRpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnZXlldGVzdCddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJtdC02IG14LTQgc3ViXCI+U3RvcmUgb3BlbnMgYXQgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctNjAwXCI+PHU+e3tjb25maWdEYXRhPy5vcGVuVGltZX19PC91Pjwvc3Bhbj4gYW5kIGNsb3Nlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdCA8c3BhbiBjbGFzcz1cImZ3LTYwMFwiPjx1Pnt7Y29uZmlnRGF0YT8uY2xvc2VUaW1lfX08L3U+PC9zcGFuPiwgZXZlcnlkYXkuIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3VuYXR0ZW5kZWQnXCIgY2xhc3M9XCJtdC02IG14LTQgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWUgdGFrZW4gdG8gYXNzaXN0IGJ5IHN0YWZmICZsdDs9IDEgbWlucyB8IFN0YWZmIHRvIGN1c3RvbWVyIHRpbWUgc3BlbnQgJmx0Oz0xXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTdG9yZSBvcGVucyBhdCA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdy02MDBcIj48dT57e2NvbmZpZ0RhdGE/Lm9wZW5UaW1lfX08L3U+PC9zcGFuPiBhbmQgY2xvc2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IDxzcGFuIGNsYXNzPVwiZnctNjAwXCI+PHU+e3tjb25maWdEYXRhPy5jbG9zZVRpbWV9fTwvdT48L3NwYW4+LCBldmVyeWRheS4gPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0nY3VzdG9tJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFbJ2V5ZXRlc3QnLCdoYWxmc2h1dHRlcicsJ3R2Y29tcGxpYW5jZScsJ2NhbWVyYXRhbXBlcmluZycsJ3N0b3Jlb3BlbmFuZGNsb3NlJywnbW9iaWxldXNhZ2VkZXRlY3Rpb24nLCdzdG9yZWh5Z2llbmVtb25pdG9yaW5nJywndW5pZm9ybWRldGVjdGlvbicsJ3N0YWZmZ3JvdXBpbmcnLCdib3hhbGVydCcsJ2VtcGxveWVlQ291bnQnLCd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtdC04XCI+Tm90aWZ5IEFsZXJ0c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NzRfNjYxOTUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImNvbC1tZC0xMiBtdC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtdC0yIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC00IHN1YlwiPklmIHVzYWdlIGV4Y2VlZHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGZsZXggZmxleC1jb2x1bW5cIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB0ZXh0LWNlbnRlciB3LTU1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLnVzYWdlRXhjZWVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkIG1pbmxlbmd0aD1cIjJcIiBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlciB1c2FnZWVycm9yXCIgKm5nSWY9XCJlcnJvcm1zZ1wiPlBsZWFzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRlciBldmVudCBjb3VudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXR3ZWVuIDE1IHRvIDk5OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViXCI+ZGV0ZWN0aW9ucyBwZXIgZGF5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3NjcnVtJywnY2xlYW5pbmcnLCdzdG9yZW9wZW5hbmRjbG9zZScsJ3VuYXR0ZW5kZWQnLCdwYWNrYWdlQ29uZmlndXJhdGlvbicsJ3N0YWZmbGVmdGludGhlbWlkZGxlJywnY3VzdG9tZXJ1bmF0dGVuZGVkJywnb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJywnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdjYW1lcmF0YW1wZXJpbmcnLCdxdWV1ZWFsZXJ0J10uaW5jbHVkZXModHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+U2VuZCBBbGVydCB0byA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydHMudXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlQWxlcnQoJGV2ZW50LCd1c2VyJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ub3duZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZU93bmVyKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIFNjaGVkdWxlIENoZWNrbGlzdCAgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydoYWxmc2h1dHRlcicsJ3R2Y29tcGxpYW5jZScsJ3F1ZXVlYWxlcnQnLCdjYW1lcmF0YW1wZXJpbmcnLCdzdG9yZWh5Z2llbmVtb25pdG9yaW5nJywnc3RhZmZncm91cGluZycsJ2JveGFsZXJ0JywnZW1wbG95ZWVDb3VudCcsICd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGJnLXdoaXRlIHJvdW5kZWQtNCBweC03IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdxdWV1ZWFsZXJ0JywnY2FtZXJhdGFtcGVyaW5nJywnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsJ3N0YWZmZ3JvdXBpbmcnLCdib3hhbGVydCcsJ2VtcGxveWVlQ291bnQnLCAndW5hdHRlbmRlZGRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+U2NoZWR1bGUgQ2hlY2tsaXN0IDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbWItNlwiPlNldCB0aGUgZGVzaXJlZCB0aW1lIHRvIHJ1biB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnaGFsZnNodXR0ZXInXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTIgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjaGVja2xpc3Qgd2lsbCBydW4gYmFzZWQgb24gZWFjaCBzdG9yZeKAmXMgb3BlbmluZyBhbmQgY2xvc2luZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZS4gWW91IGNhbiB2aWV3IHN0b3JlIHRpbWluZ3MgaW4gdGhlICdBc3NpZ24gU3RvcmVzJyBzZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWxvdy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NhbWVyYXRhbXBlcmluZyddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtMiBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNoZWNrbGlzdCB3aWxsIHJ1biBiYXNlZCBvbiBlYWNoIHN0b3Jl4oCZcyBvcGVuaW5nIGFuZCBjbG9zaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBjYW4gdmlldyBvciBlZGl0IHN0b3JlIHRpbWluZ3MgaW4gdGhlICdBc3NpZ24gU3RvcmVzJyBzZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWxvdy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkIHRoZSB0ZW1wbGF0ZSwgdXBkYXRlIHRoZSB0aW1pbmdzLCBhbmQgYnVsayB1cGxvYWQgeW91clxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZFwiICpuZ0lmPVwiWydoYWxmc2h1dHRlciddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktMSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtZS0zXCI+IFN0YXJ0IERldGVjdGlvbiBmb3IgYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb24sIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTEgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuaGFsZnNodXR0ZXIuc2NoZWR1bGUuYWZ0ZXJPcGVuVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdGltZSBvZiBtaW51dGVzU2xvdFwiIFt2YWx1ZV09XCJ0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRpbWUgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1zdWItaGVhZGVyIG1lLTNcIj4gbWludXRlcyBhZnRlciBTdG9yZSBPcGVuIHRpbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1zdWItaGVhZGVyIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmhhbGZzaHV0dGVyLnNjaGVkdWxlLmR1cmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0aW1lIG9mIG1pbnV0ZXNTbG90XCIgW3ZhbHVlXT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGltZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbXMtM1wiPiBtaW51dGVzIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktMSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtZS0zXCI+IFN0YXJ0IERldGVjdGlvbiBCZWZvcmUsIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuaGFsZnNodXR0ZXIuc2NoZWR1bGUuYmVmb3JlQ2xvc2VUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0aW1lIG9mIG1pbnV0ZXNTbG90XCIgW3ZhbHVlXT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGltZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbXMtM1wiPiBtaW51dGVzIGZyb20gU3RvcmUgQ2xvc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTQgbWItNFwiICpuZ0lmPVwiIVsnY2FtZXJhdGFtcGVyaW5nJywnaGFsZnNodXR0ZXInXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwic2NoZWRcIiBpZD1cInN0ZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNjaGVkdWxldHlwZVwiIHZhbHVlPVwic3RhbmRhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic21hbGwgZnctbWVkaXVtXCIgZm9yPVwic3RkXCI+U3RhbmRhcmQgU3RvcmUgT3BlbiAmIENsb3NlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cInNjaGVkXCIgaWQ9XCJjdXN0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzY2hlZHVsZXR5cGVcIiB2YWx1ZT1cImN1c3RvbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzbWFsbCBmdy1tZWRpdW1cIiBmb3I9XCJjdXN0b21cIj5DdXN0b20gVGltZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zIG1iLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2NoZWR1bGV0eXBlPT09J2N1c3RvbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bSB0ZXh0LWRhcmtcIj5TdGFydCBhdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1pbnB1dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGltZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHRpbWUtZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzY2hlZHVsZXN0YXJ0VGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNsb2NrXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bSB0ZXh0LWRhcmsgbXMtMlwiPkVuZHMgYXQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRpbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbCB0aW1lLWZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2NoZWR1bGVlbmRUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2xvY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3R2Y29tcGxpYW5jZScsJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCdib3hhbGVydCcsJ2VtcGxveWVlQ291bnQnLCd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBzdHlsZT1cImJvcmRlcjoxcHggc29saWQgI2NiY2RkMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtZS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPVwiZnctYm9sZCBzbWFsbCBtZS0zXCI+U2V0IHJlY3VycmVuY2U8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHR5cGUgPT0gJ3R2Y29tcGxpYW5jZScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWN1cnJlbmNlU3RhdHVzXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJlY3VycmVuY2VUeXBlID09ICdjdXN0b20nXCIgdmFsdWU9IFwiY3VzdG9tXCIgKGNoYW5nZSk9XCJ1cGRhdGVSZWN1cnJlbmNlKCRldmVudCwnY3VzdG9tJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCdib3hhbGVydCcsJ2VtcGxveWVlQ291bnQnLCd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48c3BhbiBjbGFzcz1cImZ3LWJvbGQgc21hbGwgbWUtM1wiPlJ1biBhdCBEeW5hbWljIEludGVydmFsczwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJlY3VycmVuY2VUeXBlID09ICdyYW5kb20nXCIgdmFsdWU9XCJyYW5kb21cIiAoY2hhbmdlKT1cInVwZGF0ZVJlY3VycmVuY2UoJGV2ZW50LCdyYW5kb20nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWN1cnJlbmNlU3RhdHVzIHx8IHJlY3VycmVuY2VUeXBlID09ICdjdXN0b20nXCIgY2xhc3M9XCJmYWRlLWluIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeS1ibHVlIGZ3LW1lZGl1bVwiPlJlcGVhdCBldmVyeTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY3VzdG9tLXNlbGVjdCBzaGFkb3ctbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWN1cnJlbmNldGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjFcIj4xPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiMlwiPjI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCIzXCI+Mzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjRcIj40PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiNVwiPjU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCI2XCI+Njwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjdcIj43PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiOFwiPjg8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnktYmx1ZSBmdy1tZWRpdW1cIj5Ib3Vyczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJvdyAzOiBTdW1tYXJ5IFRleHQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic3VtbWFyeS10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPY2N1cnMgZXZlcnkge3tyZWN1cnJlbmNldGltZX19IEhvdXJzIGJldHdlZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2NoZWR1bGV0eXBlIT09J2N1c3RvbSdcIj5TdG9yZSBPcGVuICYgQ2xvc2UgVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2NoZWR1bGV0eXBlPT09J2N1c3RvbSdcIj57e3NjaGVkdWxlc3RhcnRUaW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDigJN7e3NjaGVkdWxlZW5kVGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlY3VycmVuY2VUeXBlID09ICdyYW5kb20nXCIgY2xhc3M9XCJmYWRlLWluIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeS1ibHVlIGZ3LW1lZGl1bVwiPlJ1bjwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY3VzdG9tLXNlbGVjdCBzaGFkb3ctbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWN1cnJlbmNldGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjFcIj4xPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiMlwiPjI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCIzXCI+Mzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjRcIj40PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiNVwiPjU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCI2XCI+Njwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjdcIj43PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiOFwiPjg8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnktYmx1ZSBmdy1tZWRpdW1cIj5kZXRlY3Rpb24gcmFuZG9tbHkgd2l0aGluIHRoZSBzY2hlZHVsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJvdyAzOiBTdW1tYXJ5IFRleHQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic3VtbWFyeS10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPY2N1cnMge3tyZWN1cnJlbmNldGltZX19IHRpbWVzIGF0IHJhbmRvbSBpbnRlcnZhbHMgYmV0d2VlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzY2hlZHVsZXR5cGUhPT0nY3VzdG9tJ1wiPlN0b3JlIE9wZW4gJiBDbG9zZSBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzY2hlZHVsZXR5cGU9PT0nY3VzdG9tJ1wiPnt7c2NoZWR1bGVzdGFydFRpbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKAk3t7c2NoZWR1bGVlbmRUaW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2NhbWVyYXRhbXBlcmluZyddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmdcIj5EZXRlY3Rpb24gQ29uZmlndXJhdGlvbiA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG1iLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2wgY2hlY2tsaXN0IGxvZ2ljIGFuZCBhbGVydCBjb25maWd1cmF0aW9ucyA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTMgYm9yZGVyLWxpZ2h0LXN1YnRsZSByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwibWItMCBmdy1ib2xkIGZzLTRcIj5EZXRlY3QgQ2FtZXJhIGFuZ2xlIENoYW5nZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtMyBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5jYW1lcmFBbmdsZT8uZW5hYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2FtZXJhQW5nbGVjb25maWcoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0zXCI+V2hlbiBlbmFibGVkLCBhbiBhbGVydCBpcyB0cmlnZ2VyZWQgaWYgYW55IGNhbWVyYSBhbmdsZSBpcyBjaGFuZ2VkPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTMgYm9yZGVyLWxpZ2h0LXN1YnRsZSByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPklQIENoYW5nZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLklQQ2hhbmdlZC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFuIGFsZXJ0IGlzIHRyaWdnZXJlZCBpZiBJUCBpcyBDaGFuZ2VkPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTMgYm9yZGVyLWxpZ2h0LXN1YnRsZSByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPkNhbWVyYSBSZXNvbHV0aW9uIENoYW5nZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnJlc29sdXRpb25DaGFuZ2UuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0zXCI+V2hlbiBlbmFibGVkLCBhbiBhbGVydCBpcyB0cmlnZ2VyZWQgaWYgYW55IGNhbWVyYSByZXNvbHV0aW9uIGlzIGNoYW5nZWQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gRGV0ZWN0aW9uIENvbmZpZ3VyYXRpb24gZm9yIFN0b3JlIEh5Z2llbmUgTW9uaXRvcmluZyAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+RGV0ZWN0aW9uIENvbmZpZ3VyYXRpb24gPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbWItNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbCBjaGVja2xpc3QgbG9naWMgYW5kIGFsZXJ0IGNvbmZpZ3VyYXRpb25zIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPlRhYmxlIENsdXR0ZXIgRGV0ZWN0aW9uPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnRhYmxlQ2x1dHRlckRldGVjdGlvbi5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5haUNvbmZpZz8uaHlnaWVuZU1vbml0b3Jpbmc/LnRhYmxlQ2x1dHRlckRldGVjdGlvbj8uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFuIGFsZXJ0IGlzIHRyaWdnZXJlZCBpZiB0aGUgdGFibGUgaXMgZGV0ZWN0ZWQgdG8gYmUgY2x1dHRlcmVkIHdpdGggb2JqZWN0cyBmb3IgbG9uZ2VyIHRoYW4gdGhlIGNvbmZpZ3VyZWQgdGltZTwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktMTAgbWItNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPkRldGVjdHMsIElmIHRoZSB0YWJsZSBpcyBjbHV0dGVyZWQgZm9yIG1vcmUgdGhhbiB0aGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgdy1hdXRvIGN1c3RvbS1zZWxlY3RcIiBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3JpbmcudGFibGVDbHV0dGVyRGV0ZWN0aW9uLmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdGltZSBvZiBwZXJzb25EZXRlY3Rpb25UaW1lVGhyZXNob2xkXCIgW3ZhbHVlXT1cInRpbWVcIj57eyB0aW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+TWluczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+aW4gRGV0ZWN0aW9uIEFyZWFzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0zIGJvcmRlci1saWdodC1zdWJ0bGUgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cIm1iLTAgZnctYm9sZCBmcy00XCI+T2JqZWN0cyBEZXRlY3Rpb248L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3JpbmcuZmxvb3JEZXRlY3Rpb24uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8uYWlDb25maWc/Lmh5Z2llbmVNb25pdG9yaW5nPy5mbG9vckRldGVjdGlvbj8uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFuIGFsZXJ0IGlzIHRyaWdnZXJlZCBpZiBvYmplY3RzIGFyZSBkZXRlY3RlZCBmb3IgbG9uZ2VyIHRoYW4gdGhlIGNvbmZpZ3VyZWQgdGltZTwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktMTAgbWItNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPkRldGVjdCwgSWYgT2JqZWN0cyBhcmUgZm91bmQgZm9yIG1vcmUgdGhhbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LWF1dG8gY3VzdG9tLXNlbGVjdFwiIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5mbG9vckRldGVjdGlvbi5kdXJhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRpbWUgb2YgcGVyc29uRGV0ZWN0aW9uVGltZVRocmVzaG9sZFwiIFt2YWx1ZV09XCJ0aW1lXCI+e3sgdGltZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPk1pbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPmluIERldGVjdGlvbiBBcmVhczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPlNwaWxsIG9yIERlYnJpcyBEZXRlY3Rpb248L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc3BpbGxEZXRlY3Rpb24uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8uYWlDb25maWc/Lmh5Z2llbmVNb25pdG9yaW5nPy5zcGlsbERldGVjdGlvbj8uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFuIGFsZXJ0IGlzIHRyaWdnZXJlZCBpZiBTcGlsbCBvciBkZWJyaXMgYXJlIGRldGVjdGVkIGZvciBsb25nZXIgdGhhbiB0aGUgY29uZmlndXJlZCBkdXJhdGlvbjwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktMTAgbWItNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPkRldGVjdCwgSWYgU3BpbGwgb3IgRGVicmlzIGFyZSBkZXRlY3RlZCBmb3IgbW9yZSB0aGFuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctYXV0byBjdXN0b20tc2VsZWN0XCIgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnNwaWxsRGV0ZWN0aW9uLmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdGltZSBvZiBwZXJzb25EZXRlY3Rpb25UaW1lVGhyZXNob2xkXCIgW3ZhbHVlXT1cInRpbWVcIj57eyB0aW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+TWluczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+aW4gRGV0ZWN0aW9uIEFyZWFzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ3VuYXR0ZW5kZWRkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+RGV0ZWN0aW9uIENvbmZpZ3VyYXRpb24gPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbWItNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbCBjaGVja2xpc3QgbG9naWMgYW5kIGFsZXJ0IGNvbmZpZ3VyYXRpb25zIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPlVuYXR0ZW5kZWQgRGV0ZWN0aW9uPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnVuYXR0ZW5kZWREZXRlY3Rpb24udW5hdHRlbmRlZERldGVjdGlvbi5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLnVuYXR0ZW5kZWREZXRlY3Rpb24udW5hdHRlbmRlZERldGVjdGlvbi5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgbWItM1wiPldoZW4gZW5hYmxlZCwgYWxlcnRzIGFyZSB0cmlnZ2VyZWQgYmFzZWQgb24gdGhlIGZsb29yIGhhemFyZHMgY29uZmlndXJlZCB0aW1lPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwib3BhY2l0eS0xMCBtYi00XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+RGV0ZWN0LCBJZiBPYmplY3RzIGFyZSBmb3VuZCBvbiB0aGUgZmxvb3IgZm9yIG1vcmUgdGhhbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LWF1dG8gY3VzdG9tLXNlbGVjdFwiIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy51bmF0dGVuZGVkRGV0ZWN0aW9uLnVuYXR0ZW5kZWREZXRlY3Rpb24uZHVyYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0aW1lIG9mIHBlcnNvbkRldGVjdGlvblRpbWVUaHJlc2hvbGRcIiBbdmFsdWVdPVwidGltZVwiPnt7IHRpbWUgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5NaW5zPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5pbiBEZXRlY3Rpb24gQXJlYXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBEZXRlY3Rpb24gQ29uZmlndXJhdGlvbiBmb3IgU3RhZmYgR3JvdXBpbmcgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGJnLXdoaXRlIHJvdW5kZWQtNCBweC03IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWydzdGFmZmdyb3VwaW5nJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZ1wiPkRldGVjdGlvbiBDb25maWd1cmF0aW9uIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG1iLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbCBjaGVja2xpc3QgbG9naWMgYW5kIGFsZXJ0IGNvbmZpZ3VyYXRpb25zIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQ291bnQgQWxlcnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPkNvdW50IEFsZXJ0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuY291bnRBbGVydC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuY291bnRBbGVydC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgbWItM1wiPkFsZXJ0IHdpbGwgYmUgc2VudCBiYXNlZCBvbiB0aGUgY29uZmlndXJlZCBTdGFmZiBtZW1iZXIgQ291bnQ8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTEwIG1iLTRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5BbGVydCwgSWYgbW9yZSB0aGFuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctYXV0byBjdXN0b20tc2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5jb3VudEFsZXJ0LnRocmVzaG9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGkgb2YgcGVyc29uRGV0ZWN0aW9uVGltZVRocmVzaG9sZFwiIFt2YWx1ZV09XCJpXCI+e3sgaSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPlN0YWZmIG1lbWJlcnMgYXJlIGRldGVjdGVkIGluIGEgZ3JvdXAgaW4gZGV0ZWN0aW9uIGFyZWFzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRpbWUgU3BlbnQgQWxlcnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPlRpbWUgU3BlbnQgQWxlcnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy50aW1lU3BlbnRBbGVydC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcudGltZVNwZW50QWxlcnQuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFsZXJ0cyB3aWxsIGJlIHNlbnQgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgdGltZSBzcGVudCBieSBncm91cDwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktMTAgbWItNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPkFsZXJ0LCBJZiBhIEdyb3VwIGRldGVjdGVkIFNwZW5kcyBtb3JlIHRoYW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgdy1hdXRvIGN1c3RvbS1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLnRpbWVTcGVudEFsZXJ0LmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiBwZXJzb25EZXRlY3Rpb25UaW1lVGhyZXNob2xkXCIgW3ZhbHVlXT1cImlcIj57eyBpIH19IG1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5pbiBEZXRlY3Rpb24gQXJlYXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSGliZXJuYXRpb24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPkhpYmVybmF0aW9uPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuaGliZXJuYXRpb24uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLmhpYmVybmF0aW9uLmVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0zXCI+V2hlbiBlbmFibGVkLCBDaGVja2xpc3Qgd2lsbCBiZSBwYXVzZWQgZHVyaW5nIHRoaXMgdGltZTwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktMTAgbWItNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPlN0YXJ0cyBhdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGltZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHRpbWUtZmllbGQgdy1hdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5oaWJlcm5hdGlvbi5zdGFydFRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+RW5kczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGltZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHRpbWUtZmllbGQgdy1hdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5oaWJlcm5hdGlvbi5lbmRUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG10LTMgYm9yZGVyLWxpZ2h0LXN1YnRsZSByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwibWItMCBmdy1ib2xkIGZzLTRcIj5BbGVydCBDb29sZG93bjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtMyBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5zdGFmZkdyb3VwaW5nPy5hbGVydENvb2xkb3duRW5hYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlYWxlcnRjb29sZG93bmNvbmZpZygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhbGVydENvb2xkb3duRW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XYWl0IGZvciB0aGUgY29uZmlndXJlZCBpbnRlcnZhbCB0aW1lIGJlZm9yZSBzZW5kaW5nIGFub3RoZXIgYWxlcnQ8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTEwIG1iLTRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5TZW5kIG5ldyBhbGVydCBhZnRlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LWF1dG8gY3VzdG9tLXNlbGVjdDFcIiBbKG5nTW9kZWwpXT1cImFsZXJ0Q29vbGRvd25UaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj41IE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTBcIj4xMCBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjE1XCI+MTUgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyMFwiPjIwIE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMjVcIj4yNSBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjMwXCI+MzAgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPnNpbmNlIHRoZSBsYXN0IGFsZXJ0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gRGV0ZWN0aW9uIENvbmZpZ3VyYXRpb24gZm9yIEJveCBBbGVydCAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2JveGFsZXJ0J10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZ1wiPkRldGVjdGlvbiBDb25maWd1cmF0aW9uIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG1iLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbCBjaGVja2xpc3QgbG9naWMgYW5kIGFsZXJ0IGNvbmZpZ3VyYXRpb25zIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRW1wdHkgU2hlbGYgQWxlcnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPkVtcHR5IFNoZWxmIEFsZXJ0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LmVtcHR5U2hlbGZBbGVydC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LmVtcHR5U2hlbGZBbGVydC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgbWItM1wiPldoZW4gZW5hYmxlZCwgYWxlcnRzIGFyZSB0cmlnZ2VyZWQgaWYgZW1wdHkgc2hlbGYgaXMgZGV0ZWN0ZWQ8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTEwIG1iLTRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5BbGVydCwgSWYgYW4gZW1wdHkgc2hlbGYgaXMgZGV0ZWN0ZWQgZm9yIG1vcmUgdGhhbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LWF1dG8gY3VzdG9tLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LmVtcHR5U2hlbGZBbGVydC5kdXJhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRpbWUgb2Ygc2NoZWR1bGVUaW1lQ29uZmlnXCIgW3ZhbHVlXT1cInRpbWVcIj57eyB0aW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+TWluczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+aW4gRGV0ZWN0aW9uIEFyZWFzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIERldGVjdGlvbiBDb25maWd1cmF0aW9uIGZvciBFbXBsb3llZSBDb3VudCAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2VtcGxveWVlQ291bnQnXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+RGV0ZWN0aW9uIENvbmZpZ3VyYXRpb24gPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbWItNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sIGNoZWNrbGlzdCBsb2dpYyBhbmQgYWxlcnQgY29uZmlndXJhdGlvbnMgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWxpZ2h0IGJvcmRlciByb3VuZGVkLTMgcHgtNCBweS0zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgOHY0bTAgNGguMDFNMjIgMTJjMCA1LjUyMy00LjQ3NyAxMC0xMCAxMFMyIDE3LjUyMyAyIDEyIDYuNDc3IDIgMTIgMnMxMCA0LjQ3NyAxMCAxMHpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtIHRleHQtc2Vjb25kYXJ5XCI+RW1wbG95ZWUgY291bnQgaXMgZGV0ZWN0ZWQgYmFzZWQgb24gY29uZmlndXJlZCB0aW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIERldGVjdGlvbiBBcmVhcyAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJywnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdxdWV1ZWFsZXJ0JywnY2FtZXJhdGFtcGVyaW5nJywnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsJ3VuaWZvcm1kZXRlY3Rpb24nLCdzdGFmZmdyb3VwaW5nJywnYm94YWxlcnQnLCdlbXBsb3llZUNvdW50JywgJ3VuYXR0ZW5kZWRkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZ1wiPkRldGVjdGlvbiBBcmVhc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm14LTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODc0XzY2MTk1KVwiPiA8cGF0aCBkPVwiTTguMDAwMTYgMTAuNjY3M1Y4LjAwMDY1TTguMDAwMTYgNS4zMzM5OEg4LjAwNjgzTTE0LjY2NjggOC4wMDA2NUMxNC42NjY4IDExLjY4MjYgMTEuNjgyMSAxNC42NjczIDguMDAwMTYgMTQuNjY3M0M0LjMxODI2IDE0LjY2NzMgMS4zMzM1IDExLjY4MjYgMS4zMzM1IDguMDAwNjVDMS4zMzM1IDQuMzE4NzUgNC4zMTgyNiAxLjMzMzk4IDguMDAwMTYgMS4zMzM5OEMxMS42ODIxIDEuMzMzOTggMTQuNjY2OCA0LjMxODc1IDE0LjY2NjggOC4wMDA2NVpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+IDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+IDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NzRfNjYxOTVcIj4gPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz4gPC9jbGlwUGF0aD4gPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViIG1iLTRcIiAqbmdJZj1cIlsnbW9iaWxldXNhZ2VkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0ZWN0IG1vYmlsZSB1c2FnZSBleGNlcHQgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbWItNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJywnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdxdWV1ZWFsZXJ0JywnY2FtZXJhdGFtcGVyaW5nJywnZW1wbG95ZWVDb3VudCcsICd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrbGlzdCB3aWxsIHJ1biBvbiB0aGlzIFpvbmUgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8ucHJvZHVjdC5pbmNsdWRlcygndGFuZ29ab25lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJ6b25lTGlzdFwiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5haUNvbmZpZz8uZGV0ZWN0aW9uQXJlYVwiIChzZWxlY3RlZExpc3QpPVwidXBkYXRlWm9uZSgkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMiBwLTMgcm91bmRlZFwiIHN0eWxlPVwibWluLWhlaWdodDogNDRweDtcIj4gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHpvbmVMaXN0O2xldCBpPWluZGV4XCI+e3tpdGVtLm5hbWV9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkIG14LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhY29uZmlnRGF0YT8ucHJvZHVjdC5pbmNsdWRlcygndGFuZ29ab25lJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FyZCBtdC0zIHAtMyBib3JkZXIgYm9yZGVyLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI3MFwiIGhlaWdodD1cIjcwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA5MCA5MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjc1LjY2NjZcIiBoZWlnaHQ9XCI3NS42NjY2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ4PVwiMzcuODMzM1wiIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjdcIiB5PVwiN1wiIHdpZHRoPVwiNzUuNjY2NlwiIGhlaWdodD1cIjc1LjY2NjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcng9XCIzNy44MzMzXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjEzLjUxMTlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00NS40Mjg3IDM3LjkxNTdMNDQuODY4MyAzOC4yNDE2TDQ1LjE3MDkgMzguODE1TDQ3LjcyNDggNDMuNjUzOUM0OC4zMzMzIDQ0LjgwNjggNDkuODY5NyA0NS4xMDU4IDUwLjg5NjEgNDQuMzI5MUw1MC44OTY1IDQ0LjMyODhMNTQuODY3OCA0MS4zMTgxTDU1LjI0ODUgNDEuMDI5NUw1NS4xOTEyIDQxLjMyOEw1My4xNTQ2IDUxLjk0MjFDNTIuOTcxMSA1Mi44ODg5IDUyLjA4NzkgNTMuNjE2MSA1MS4wMDk5IDUzLjYxNjFIMzguNjU0OUMzNy41NzIyIDUzLjYxNjEgMzYuNjkwMyA1Mi44ODQ4IDM2LjUxMDYgNTEuOTQzOUwzNi41MTA1IDUxLjk0MzNMMzQuNDczNiA0MS4zMjhMMzQuNDE2MyA0MS4wMjk1TDM0Ljc5NyA0MS4zMTgxTDM4Ljc2ODMgNDQuMzI4OEwzOC43Njg3IDQ0LjMyOTFDMzkuNzk1MSA0NS4xMDU4IDQxLjMzMTUgNDQuODA2OCA0MS45NCA0My42NTM5TDQ0LjQ5MzkgMzguODE1TDQ0Ljc5NjUgMzguMjQxNkw0NC4yMzYxIDM3LjkxNTdDNDMuOTE3NCAzNy43MzAyIDQzLjcyNTIgMzcuNDEwNyA0My43MjUyIDM3LjA2NEM0My43MjUyIDM2LjUzNzkgNDQuMTg1NiAzNi4wNTA2IDQ0LjgzMjQgMzYuMDUwNkM0NS40NzkyIDM2LjA1MDYgNDUuOTM5NiAzNi41Mzc5IDQ1LjkzOTYgMzcuMDY0QzQ1LjkzOTYgMzcuNDA3NCA0NS43NDY1IDM3LjczMDggNDUuNDI4NyAzNy45MTU3Wk01NS44NTQ3IDQwLjc3OThINTUuMzE5N0w1NC45OTAzIDQwLjM2MTdDNTQuODU0NCA0MC4xODkyIDU0Ljc3ODcgMzkuOTg0IDU0Ljc3ODcgMzkuNzY2NEM1NC43Nzg3IDM5LjI0MDMgNTUuMjM5MSAzOC43NTMgNTUuODg1OSAzOC43NTNDNTYuNTMyNiAzOC43NTMgNTYuOTkzMSAzOS4yNDAzIDU2Ljk5MzEgMzkuNzY2NEM1Ni45OTMxIDQwLjI5MjUgNTYuNTMyNiA0MC43Nzk4IDU1Ljg4NTkgNDAuNzc5OEg1NS44ODU4SDU1Ljg4NThINTUuODg1N0g1NS44ODU3SDU1Ljg4NTZINTUuODg1Nkg1NS44ODU1SDU1Ljg4NTVINTUuODg1NEg1NS44ODU0SDU1Ljg4NTNINTUuODg1Mkg1NS44ODUySDU1Ljg4NTFINTUuODg1MUg1NS44ODVINTUuODg1SDU1Ljg4NDlINTUuODg0OUg1NS44ODQ4SDU1Ljg4NDhINTUuODg0N0g1NS44ODQ3SDU1Ljg4NDZINTUuODg0NUg1NS44ODQ1SDU1Ljg4NDRINTUuODg0NEg1NS44ODQzSDU1Ljg4NDNINTUuODg0Mkg1NS44ODQySDU1Ljg4NDFINTUuODg0SDU1Ljg4NEg1NS44ODM5SDU1Ljg4MzlINTUuODgzOEg1NS44ODM4SDU1Ljg4MzdINTUuODgzN0g1NS44ODM2SDU1Ljg4MzVINTUuODgzNUg1NS44ODM0SDU1Ljg4MzRINTUuODgzM0g1NS44ODMzSDU1Ljg4MzJINTUuODgzMUg1NS44ODMxSDU1Ljg4M0g1NS44ODNINTUuODgyOUg1NS44ODI5SDU1Ljg4MjhINTUuODgyN0g1NS44ODI3SDU1Ljg4MjZINTUuODgyNkg1NS44ODI1SDU1Ljg4MjVINTUuODgyNEg1NS44ODIzSDU1Ljg4MjNINTUuODgyMkg1NS44ODIySDU1Ljg4MjFINTUuODgyMUg1NS44ODJINTUuODgxOUg1NS44ODE5SDU1Ljg4MThINTUuODgxOEg1NS44ODE3SDU1Ljg4MTZINTUuODgxNkg1NS44ODE1SDU1Ljg4MTVINTUuODgxNEg1NS44ODEzSDU1Ljg4MTNINTUuODgxMkg1NS44ODEySDU1Ljg4MTFINTUuODgxMUg1NS44ODFINTUuODgwOUg1NS44ODA5SDU1Ljg4MDhINTUuODgwOEg1NS44ODA3SDU1Ljg4MDZINTUuODgwNkg1NS44ODA1SDU1Ljg4MDVINTUuODgwNEg1NS44ODAzSDU1Ljg4MDNINTUuODgwMkg1NS44ODAySDU1Ljg4MDFINTUuODhINTUuODhINTUuODc5OUg1NS44Nzk4SDU1Ljg3OThINTUuODc5N0g1NS44Nzk3SDU1Ljg3OTZINTUuODc5NUg1NS44Nzk1SDU1Ljg3OTRINTUuODc5NEg1NS44NzkzSDU1Ljg3OTJINTUuODc5Mkg1NS44NzkxSDU1Ljg3OTFINTUuODc5SDU1Ljg3ODlINTUuODc4OUg1NS44Nzg4SDU1Ljg3ODdINTUuODc4N0g1NS44Nzg2SDU1Ljg3ODZINTUuODc4NUg1NS44Nzg0SDU1Ljg3ODRINTUuODc4M0g1NS44NzgySDU1Ljg3ODJINTUuODc4MUg1NS44NzgxSDU1Ljg3OEg1NS44Nzc5SDU1Ljg3NzlINTUuODc3OEg1NS44Nzc3SDU1Ljg3NzdINTUuODc3Nkg1NS44Nzc2SDU1Ljg3NzVINTUuODc3NEg1NS44Nzc0SDU1Ljg3NzNINTUuODc3Mkg1NS44NzcySDU1Ljg3NzFINTUuODc3MUg1NS44NzdINTUuODc2OUg1NS44NzY5SDU1Ljg3NjhINTUuODc2N0g1NS44NzY3SDU1Ljg3NjZINTUuODc2Nkg1NS44NzY1SDU1Ljg3NjRINTUuODc2NEg1NS44NzYzSDU1Ljg3NjJINTUuODc2Mkg1NS44NzYxSDU1Ljg3Nkg1NS44NzZINTUuODc1OUg1NS44NzU5SDU1Ljg3NThINTUuODc1N0g1NS44NzU3SDU1Ljg3NTZINTUuODc1NUg1NS44NzU1SDU1Ljg3NTRINTUuODc1M0g1NS44NzUzSDU1Ljg3NTJINTUuODc1MUg1NS44NzUxSDU1Ljg3NUg1NS44NzVINTUuODc0OUg1NS44NzQ4SDU1Ljg3NDhINTUuODc0N0g1NS44NzQ2SDU1Ljg3NDZINTUuODc0NUg1NS44NzQ0SDU1Ljg3NDRINTUuODc0M0g1NS44NzQySDU1Ljg3NDJINTUuODc0MUg1NS44NzQxSDU1Ljg3NEg1NS44NzM5SDU1Ljg3MzlINTUuODczOEg1NS44NzM3SDU1Ljg3MzdINTUuODczNkg1NS44NzM1SDU1Ljg3MzVINTUuODczNEg1NS44NzMzSDU1Ljg3MzNINTUuODczMkg1NS44NzMxSDU1Ljg3MzFINTUuODczSDU1Ljg3M0g1NS44NzI5SDU1Ljg3MjhINTUuODcyOEg1NS44NzI3SDU1Ljg3MjZINTUuODcyNkg1NS44NzI1SDU1Ljg3MjRINTUuODcyNEg1NS44NzIzSDU1Ljg3MjJINTUuODcyMkg1NS44NzIxSDU1Ljg3Mkg1NS44NzJINTUuODcxOUg1NS44NzE4SDU1Ljg3MThINTUuODcxN0g1NS44NzE3SDU1Ljg3MTZINTUuODcxNUg1NS44NzE1SDU1Ljg3MTRINTUuODcxM0g1NS44NzEzSDU1Ljg3MTJINTUuODcxMUg1NS44NzExSDU1Ljg3MUg1NS44NzA5SDU1Ljg3MDlINTUuODcwOEg1NS44NzA3SDU1Ljg3MDdINTUuODcwNkg1NS44NzA1SDU1Ljg3MDVINTUuODcwNEg1NS44NzAzSDU1Ljg3MDNINTUuODcwMkg1NS44NzAxSDU1Ljg3MDFINTUuODdINTUuODdINTUuODY5OUg1NS44Njk4SDU1Ljg2OThINTUuODY5N0g1NS44Njk2SDU1Ljg2OTZINTUuODY5NUg1NS44Njk0SDU1Ljg2OTRINTUuODY5M0g1NS44NjkySDU1Ljg2OTJINTUuODY5MUg1NS44NjlINTUuODY5SDU1Ljg2ODlINTUuODY4OEg1NS44Njg4SDU1Ljg2ODdINTUuODY4Nkg1NS44Njg2SDU1Ljg2ODVINTUuODY4NUg1NS44Njg0SDU1Ljg2ODNINTUuODY4M0g1NS44NjgySDU1Ljg2ODFINTUuODY4MUg1NS44NjhINTUuODY3OUg1NS44Njc5SDU1Ljg2NzhINTUuODY3N0g1NS44Njc3SDU1Ljg2NzZINTUuODY3NUg1NS44Njc1SDU1Ljg2NzRINTUuODY3M0g1NS44NjczSDU1Ljg2NzJINTUuODY3Mkg1NS44NjcxSDU1Ljg2N0g1NS44NjdINTUuODY2OUg1NS44NjY4SDU1Ljg2NjhINTUuODY2N0g1NS44NjY2SDU1Ljg2NjZINTUuODY2NUg1NS44NjY0SDU1Ljg2NjRINTUuODY2M0g1NS44NjYySDU1Ljg2NjJINTUuODY2MUg1NS44NjYxSDU1Ljg2Nkg1NS44NjU5SDU1Ljg2NTlINTUuODY1OEg1NS44NjU3SDU1Ljg2NTdINTUuODY1Nkg1NS44NjU1SDU1Ljg2NTVINTUuODY1NEg1NS44NjUzSDU1Ljg2NTNINTUuODY1Mkg1NS44NjUySDU1Ljg2NTFINTUuODY1SDU1Ljg2NUg1NS44NjQ5SDU1Ljg2NDhINTUuODY0OEg1NS44NjQ3SDU1Ljg2NDZINTUuODY0Nkg1NS44NjQ1SDU1Ljg2NDVINTUuODY0NEg1NS44NjQzSDU1Ljg2NDNINTUuODY0Mkg1NS44NjQxSDU1Ljg2NDFINTUuODY0SDU1Ljg2MzlINTUuODYzOUg1NS44NjM4SDU1Ljg2MzhINTUuODYzN0g1NS44NjM2SDU1Ljg2MzZINTUuODYzNUg1NS44NjM0SDU1Ljg2MzRINTUuODYzM0g1NS44NjMySDU1Ljg2MzJINTUuODYzMUg1NS44NjMxSDU1Ljg2M0g1NS44NjI5SDU1Ljg2MjlINTUuODYyOEg1NS44NjI3SDU1Ljg2MjdINTUuODYyNkg1NS44NjI2SDU1Ljg2MjVINTUuODYyNEg1NS44NjI0SDU1Ljg2MjNINTUuODYyMkg1NS44NjIySDU1Ljg2MjFINTUuODYyMUg1NS44NjJINTUuODYxOUg1NS44NjE5SDU1Ljg2MThINTUuODYxOEg1NS44NjE3SDU1Ljg2MTZINTUuODYxNkg1NS44NjE1SDU1Ljg2MTRINTUuODYxNEg1NS44NjEzSDU1Ljg2MTNINTUuODYxMkg1NS44NjExSDU1Ljg2MTFINTUuODYxSDU1Ljg2MUg1NS44NjA5SDU1Ljg2MDhINTUuODYwOEg1NS44NjA3SDU1Ljg2MDZINTUuODYwNkg1NS44NjA1SDU1Ljg2MDVINTUuODYwNEg1NS44NjAzSDU1Ljg2MDNINTUuODYwMkg1NS44NjAySDU1Ljg2MDFINTUuODZINTUuODZINTUuODU5OUg1NS44NTk5SDU1Ljg1OThINTUuODU5N0g1NS44NTk3SDU1Ljg1OTZINTUuODU5Nkg1NS44NTk1SDU1Ljg1OTRINTUuODU5NEg1NS44NTkzSDU1Ljg1OTNINTUuODU5Mkg1NS44NTkxSDU1Ljg1OTFINTUuODU5SDU1Ljg1OUg1NS44NTg5SDU1Ljg1ODlINTUuODU4OEg1NS44NTg3SDU1Ljg1ODdINTUuODU4Nkg1NS44NTg2SDU1Ljg1ODVINTUuODU4NEg1NS44NTg0SDU1Ljg1ODNINTUuODU4M0g1NS44NTgySDU1Ljg1ODJINTUuODU4MUg1NS44NThINTUuODU4SDU1Ljg1NzlINTUuODU3OUg1NS44NTc4SDU1Ljg1NzhINTUuODU3N0g1NS44NTc2SDU1Ljg1NzZINTUuODU3NUg1NS44NTc1SDU1Ljg1NzRINTUuODU3NEg1NS44NTczSDU1Ljg1NzJINTUuODU3Mkg1NS44NTcxSDU1Ljg1NzFINTUuODU3SDU1Ljg1N0g1NS44NTY5SDU1Ljg1NjhINTUuODU2OEg1NS44NTY3SDU1Ljg1NjdINTUuODU2Nkg1NS44NTY2SDU1Ljg1NjVINTUuODU2NUg1NS44NTY0SDU1Ljg1NjNINTUuODU2M0g1NS44NTYySDU1Ljg1NjJINTUuODU2MUg1NS44NTYxSDU1Ljg1Nkg1NS44NTZINTUuODU1OUg1NS44NTU5SDU1Ljg1NThINTUuODU1N0g1NS44NTU3SDU1Ljg1NTZINTUuODU1Nkg1NS44NTU1SDU1Ljg1NTVINTUuODU1NEg1NS44NTU0SDU1Ljg1NTNINTUuODU1M0g1NS44NTUySDU1Ljg1NTJINTUuODU1MUg1NS44NTVINTUuODU1SDU1Ljg1NDlINTUuODU0OUg1NS44NTQ4SDU1Ljg1NDhINTUuODU0N0g1NS44NTQ3Wk0zNC42NzQ1IDQwLjM2MTdMMzQuMzQ1MSA0MC43Nzk4SDMzLjgxMDFIMzMuODEwMUgzMy44MUgzMy44MUgzMy44MDk5SDMzLjgwOTlIMzMuODA5OEgzMy44MDk3SDMzLjgwOTdIMzMuODA5NkgzMy44MDk2SDMzLjgwOTVIMzMuODA5NUgzMy44MDk0SDMzLjgwOTRIMzMuODA5M0gzMy44MDkzSDMzLjgwOTJIMzMuODA5MkgzMy44MDkxSDMzLjgwOUgzMy44MDlIMzMuODA4OUgzMy44MDg5SDMzLjgwODhIMzMuODA4OEgzMy44MDg3SDMzLjgwODdIMzMuODA4NkgzMy44MDg2SDMzLjgwODVIMzMuODA4NEgzMy44MDg0SDMzLjgwODNIMzMuODA4M0gzMy44MDgySDMzLjgwODJIMzMuODA4MUgzMy44MDgxSDMzLjgwOEgzMy44MDc5SDMzLjgwNzlIMzMuODA3OEgzMy44MDc4SDMzLjgwNzdIMzMuODA3N0gzMy44MDc2SDMzLjgwNzZIMzMuODA3NUgzMy44MDc0SDMzLjgwNzRIMzMuODA3M0gzMy44MDczSDMzLjgwNzJIMzMuODA3MkgzMy44MDcxSDMzLjgwN0gzMy44MDdIMzMuODA2OUgzMy44MDY5SDMzLjgwNjhIMzMuODA2OEgzMy44MDY3SDMzLjgwNjZIMzMuODA2NkgzMy44MDY1SDMzLjgwNjVIMzMuODA2NEgzMy44MDYzSDMzLjgwNjNIMzMuODA2MkgzMy44MDYySDMzLjgwNjFIMzMuODA2MUgzMy44MDZIMzMuODA1OUgzMy44MDU5SDMzLjgwNThIMzMuODA1OEgzMy44MDU3SDMzLjgwNTZIMzMuODA1NkgzMy44MDU1SDMzLjgwNTVIMzMuODA1NEgzMy44MDUzSDMzLjgwNTNIMzMuODA1MkgzMy44MDUySDMzLjgwNTFIMzMuODA1SDMzLjgwNUgzMy44MDQ5SDMzLjgwNDlIMzMuODA0OEgzMy44MDQ3SDMzLjgwNDdIMzMuODA0NkgzMy44MDQ2SDMzLjgwNDVIMzMuODA0NEgzMy44MDQ0SDMzLjgwNDNIMzMuODA0M0gzMy44MDQySDMzLjgwNDFIMzMuODA0MUgzMy44MDRIMzMuODA0SDMzLjgwMzlIMzMuODAzOEgzMy44MDM4SDMzLjgwMzdIMzMuODAzN0gzMy44MDM2SDMzLjgwMzVIMzMuODAzNUgzMy44MDM0SDMzLjgwMzNIMzMuODAzM0gzMy44MDMySDMzLjgwMzJIMzMuODAzMUgzMy44MDNIMzMuODAzSDMzLjgwMjlIMzMuODAyOUgzMy44MDI4SDMzLjgwMjdIMzMuODAyN0gzMy44MDI2SDMzLjgwMjVIMzMuODAyNUgzMy44MDI0SDMzLjgwMjRIMzMuODAyM0gzMy44MDIySDMzLjgwMjJIMzMuODAyMUgzMy44MDJIMzMuODAySDMzLjgwMTlIMzMuODAxOUgzMy44MDE4SDMzLjgwMTdIMzMuODAxN0gzMy44MDE2SDMzLjgwMTVIMzMuODAxNUgzMy44MDE0SDMzLjgwMTRIMzMuODAxM0gzMy44MDEySDMzLjgwMTJIMzMuODAxMUgzMy44MDFIMzMuODAxSDMzLjgwMDlIMzMuODAwOEgzMy44MDA4SDMzLjgwMDdIMzMuODAwN0gzMy44MDA2SDMzLjgwMDVIMzMuODAwNUgzMy44MDA0SDMzLjgwMDNIMzMuODAwM0gzMy44MDAySDMzLjgwMDFIMzMuODAwMUgzMy44SDMzLjhIMzMuNzk5OUgzMy43OTk4SDMzLjc5OThIMzMuNzk5N0gzMy43OTk2SDMzLjc5OTZIMzMuNzk5NUgzMy43OTk0SDMzLjc5OTRIMzMuNzk5M0gzMy43OTkzSDMzLjc5OTJIMzMuNzk5MUgzMy43OTkxSDMzLjc5OUgzMy43OTg5SDMzLjc5ODlIMzMuNzk4OEgzMy43OTg3SDMzLjc5ODdIMzMuNzk4NkgzMy43OTg1SDMzLjc5ODVIMzMuNzk4NEgzMy43OTg0SDMzLjc5ODNIMzMuNzk4MkgzMy43OTgySDMzLjc5ODFIMzMuNzk4SDMzLjc5OEgzMy43OTc5SDMzLjc5NzhIMzMuNzk3OEgzMy43OTc3SDMzLjc5NzZIMzMuNzk3NkgzMy43OTc1SDMzLjc5NzRIMzMuNzk3NEgzMy43OTczSDMzLjc5NzNIMzMuNzk3MkgzMy43OTcxSDMzLjc5NzFIMzMuNzk3SDMzLjc5NjlIMzMuNzk2OUgzMy43OTY4SDMzLjc5NjdIMzMuNzk2N0gzMy43OTY2SDMzLjc5NjVIMzMuNzk2NUgzMy43OTY0SDMzLjc5NjNIMzMuNzk2M0gzMy43OTYySDMzLjc5NjFIMzMuNzk2MUgzMy43OTZIMzMuNzk1OUgzMy43OTU5SDMzLjc5NThIMzMuNzk1OEgzMy43OTU3SDMzLjc5NTZIMzMuNzk1NkgzMy43OTU1SDMzLjc5NTRIMzMuNzk1NEgzMy43OTUzSDMzLjc5NTJIMzMuNzk1MkgzMy43OTUxSDMzLjc5NUgzMy43OTVIMzMuNzk0OUgzMy43OTQ4SDMzLjc5NDhIMzMuNzk0N0gzMy43OTQ2SDMzLjc5NDZIMzMuNzk0NUgzMy43OTQ0SDMzLjc5NDRIMzMuNzk0M0gzMy43OTQzSDMzLjc5NDJIMzMuNzk0MUgzMy43OTQxSDMzLjc5NEgzMy43OTM5SDMzLjc5MzlIMzMuNzkzOEgzMy43OTM3SDMzLjc5MzdIMzMuNzkzNkgzMy43OTM1SDMzLjc5MzVIMzMuNzkzNEgzMy43OTMzSDMzLjc5MzNIMzMuNzkzMkgzMy43OTMxSDMzLjc5MzFIMzMuNzkzSDMzLjc5MjlIMzMuNzkyOUgzMy43OTI4SDMzLjc5MjhIMzMuNzkyN0gzMy43OTI2SDMzLjc5MjZIMzMuNzkyNUgzMy43OTI0SDMzLjc5MjRIMzMuNzkyM0gzMy43OTIySDMzLjc5MjJIMzMuNzkyMUgzMy43OTJIMzMuNzkySDMzLjc5MTlIMzMuNzkxOEgzMy43OTE4SDMzLjc5MTdIMzMuNzkxNkgzMy43OTE2SDMzLjc5MTVIMzMuNzkxNUgzMy43OTE0SDMzLjc5MTNIMzMuNzkxM0gzMy43OTEySDMzLjc5MTFIMzMuNzkxMUgzMy43OTFIMzMuNzkwOUgzMy43OTA5SDMzLjc5MDhIMzMuNzkwN0gzMy43OTA3SDMzLjc5MDZIMzMuNzkwNUgzMy43OTA1SDMzLjc5MDRIMzMuNzkwNEgzMy43OTAzSDMzLjc5MDJIMzMuNzkwMkgzMy43OTAxSDMzLjc5SDMzLjc5SDMzLjc4OTlIMzMuNzg5OEgzMy43ODk4SDMzLjc4OTdIMzMuNzg5NkgzMy43ODk2SDMzLjc4OTVIMzMuNzg5NUgzMy43ODk0SDMzLjc4OTNIMzMuNzg5M0gzMy43ODkySDMzLjc4OTFIMzMuNzg5MUgzMy43ODlIMzMuNzg4OUgzMy43ODg5SDMzLjc4ODhIMzMuNzg4N0gzMy43ODg3SDMzLjc4ODZIMzMuNzg4NkgzMy43ODg1SDMzLjc4ODRIMzMuNzg4NEgzMy43ODgzSDMzLjc4ODJIMzMuNzg4MkgzMy43ODgxSDMzLjc4ODFIMzMuNzg4SDMzLjc4NzlIMzMuNzg3OUgzMy43ODc4SDMzLjc4NzdIMzMuNzg3N0gzMy43ODc2SDMzLjc4NzVIMzMuNzg3NUgzMy43ODc0SDMzLjc4NzRIMzMuNzg3M0gzMy43ODcySDMzLjc4NzJIMzMuNzg3MUgzMy43ODdIMzMuNzg3SDMzLjc4NjlIMzMuNzg2OUgzMy43ODY4SDMzLjc4NjdIMzMuNzg2N0gzMy43ODY2SDMzLjc4NjVIMzMuNzg2NUgzMy43ODY0SDMzLjc4NjRIMzMuNzg2M0gzMy43ODYySDMzLjc4NjJIMzMuNzg2MUgzMy43ODZIMzMuNzg2SDMzLjc4NTlIMzMuNzg1OUgzMy43ODU4SDMzLjc4NTdIMzMuNzg1N0gzMy43ODU2SDMzLjc4NTZIMzMuNzg1NUgzMy43ODU0SDMzLjc4NTRIMzMuNzg1M0gzMy43ODUySDMzLjc4NTJIMzMuNzg1MUgzMy43ODUxSDMzLjc4NUgzMy43ODQ5SDMzLjc4NDlIMzMuNzg0OEgzMy43ODQ4SDMzLjc4NDdIMzMuNzg0NkgzMy43ODQ2SDMzLjc4NDVIMzMuNzg0NUgzMy43ODQ0SDMzLjc4NDNIMzMuNzg0M0gzMy43ODQySDMzLjc4NDJIMzMuNzg0MUgzMy43ODRIMzMuNzg0SDMzLjc4MzlIMzMuNzgzOUgzMy43ODM4SDMzLjc4MzdIMzMuNzgzN0gzMy43ODM2SDMzLjc4MzZIMzMuNzgzNUgzMy43ODM0SDMzLjc4MzRIMzMuNzgzM0gzMy43ODMzSDMzLjc4MzJIMzMuNzgzMUgzMy43ODMxSDMzLjc4M0gzMy43ODNIMzMuNzgyOUgzMy43ODI5SDMzLjc4MjhIMzMuNzgyN0gzMy43ODI3SDMzLjc4MjZIMzMuNzgyNkgzMy43ODI1SDMzLjc4MjRIMzMuNzgyNEgzMy43ODIzSDMzLjc4MjNIMzMuNzgyMkgzMy43ODIySDMzLjc4MjFIMzMuNzgySDMzLjc4MkgzMy43ODE5SDMzLjc4MTlIMzMuNzgxOEgzMy43ODE4SDMzLjc4MTdIMzMuNzgxNkgzMy43ODE2SDMzLjc4MTVIMzMuNzgxNUgzMy43ODE0SDMzLjc4MTRIMzMuNzgxM0gzMy43ODEySDMzLjc4MTJIMzMuNzgxMUgzMy43ODExSDMzLjc4MUgzMy43ODFIMzMuNzgwOUgzMy43ODA5SDMzLjc4MDhIMzMuNzgwN0gzMy43ODA3SDMzLjc4MDZIMzMuNzgwNkgzMy43ODA1SDMzLjc4MDVIMzMuNzgwNEgzMy43ODA0SDMzLjc4MDNIMzMuNzgwM0gzMy43ODAySDMzLjc4MDFIMzMuNzgwMUgzMy43OEgzMy43OEgzMy43Nzk5SDMzLjc3OTlIMzMuNzc5OEgzMy43Nzk4SDMzLjc3OTdIMzMuNzc5N0gzMy43Nzk2SDMzLjc3OTVIMzMuNzc5NUgzMy43Nzk0SDMzLjc3OTRIMzMuNzc5M0gzMy43NzkzSDMzLjc3OTJIMzMuNzc5MkgzMy43NzkxSDMzLjc3OTFIMzMuNzc5SDMzLjc3OUgzMy43Nzg5QzMzLjEzMjEgNDAuNzc5OCAzMi42NzE3IDQwLjI5MjUgMzIuNjcxNyAzOS43NjY0QzMyLjY3MTcgMzkuMjQwMyAzMy4xMzIxIDM4Ljc1MyAzMy43Nzg5IDM4Ljc1M0MzNC40MjU3IDM4Ljc1MyAzNC44ODYxIDM5LjI0MDMgMzQuODg2MSAzOS43NjY0QzM0Ljg4NjEgMzkuOTg0IDM0LjgxMDMgNDAuMTg5MiAzNC42NzQ1IDQwLjM2MTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjM1MTE5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+RXhjbHVkZSBab25lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInpvbmUtc3Vic2NyaXB0aW9uXCI+VG8gYWRkIGFuIEV4Y2x1ZGVkIFpvbmUgaW5zaWRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzdG9yZSwgcGxlYXNlIHVwZ3JhZGUgeW91ciBwbGFuIGFuZCBzdWJzY3JpYmUgdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFuZ29FeWUuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc2V0dGluZ3MvcGF5bWVudC1zdWJzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gYnRuIGJ0bi1zbSBweS0zIGJ0bi1wcmltYXJ5IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+VXBncmFkZSBwbGFuPC9zcGFuPjxzcGFuPjxzdmcgY2xhc3M9XCJtcy0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4zNjA3IDYuMTQ0NTNDMTEuNzM2NyA1LjkyNTc4IDExLjk4NzQgNS41Mjg5MSAxMS45ODc0IDUuMDgyMDNDMTEuOTg3NCA0LjM5MTQxIDExLjM5NyAzLjgzMjAzIDEwLjY2OCAzLjgzMjAzQzkuOTM4OTggMy44MzIwMyA5LjM0ODUyIDQuMzkxNDEgOS4zNDg1MiA1LjA4MjAzQzkuMzQ4NTIgNS41MzIwMyA5LjU5OTIyIDUuOTI1NzggOS45NzUyNiA2LjE0NDUzTDguMDg1MTYgOS43MjU3OEM3Ljc4NDk4IDEwLjI5NDUgNy4wMDY1MSAxMC40NTcgNi40ODIwMyAxMC4wNjAyTDMuNTQyOTcgNy44MzIwM0MzLjcwNzkgNy42MjI2NiAzLjgwNjg2IDcuMzYzMjggMy44MDY4NiA3LjA4MjAzQzMuODA2ODYgNi4zOTE0MSAzLjIxNjQxIDUuODMyMDMgMi40ODc0MSA1LjgzMjAzQzEuNzU4NDIgNS44MzIwMyAxLjE2Nzk3IDYuMzkxNDEgMS4xNjc5NyA3LjA4MjAzQzEuMTY3OTcgNy43NzI2NiAxLjc1ODQyIDguMzMyMDMgMi40ODc0MSA4LjMzMjAzQzIuNDk0MDEgOC4zMzIwMyAyLjUwMzkxIDguMzMyMDMgMi41MTA1IDguMzMyMDNMNC4wMTc5NyAxNi4xODgzQzQuMTk5MzkgMTcuMTM4MyA1LjA3MzUyIDE3LjgzMiA2LjA5NjA5IDE3LjgzMkgxNS4yMzk4QzE2LjI1OTEgMTcuODMyIDE3LjEzMzIgMTcuMTQxNCAxNy4zMTggMTYuMTg4M0wxOC44MjU0IDguMzMyMDNDMTguODMyIDguMzMyMDMgMTguODQxOSA4LjMzMjAzIDE4Ljg0ODUgOC4zMzIwM0MxOS41Nzc1IDguMzMyMDMgMjAuMTY4IDcuNzcyNjYgMjAuMTY4IDcuMDgyMDNDMjAuMTY4IDYuMzkxNDEgMTkuNTc3NSA1LjgzMjAzIDE4Ljg0ODUgNS44MzIwM0MxOC4xMTk1IDUuODMyMDMgMTcuNTI5MSA2LjM5MTQxIDE3LjUyOTEgNy4wODIwM0MxNy41MjkxIDcuMzYzMjggMTcuNjI4IDcuNjIyNjYgMTcuNzkzIDcuODMyMDNMMTQuODUzOSAxMC4wNjAyQzE0LjMyOTQgMTAuNDU3IDEzLjU1MSAxMC4yOTQ1IDEzLjI1MDggOS43MjU3OEwxMS4zNjA3IDYuMTQ0NTNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXQtMlwiPlNldCBCdWZmZXIgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlQnVmZmVyVGltZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lID4gMCB8fCBjb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWUgPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0ZWN0aW9udGV4dCBtdC0yXCI+V2hlbiBlbmFibGVkLCBhbGVydHMgd2lsbCBiZSBwYXVzZWQgZHVyaW5nIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBwZXJpb2Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2hlY2tCdWZmZXIgfHwgY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgfHwgY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbWUtM1wiPiBJZiBTdG9yZSBPcGVuIHRpbWUgZXhjZWVkcyBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgcC0zIHRleHQtY2VudGVyIHctNDVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgbWlubGVuZ3RoPVwiMlwiIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbXMtM1wiPiBtaW51dGVzIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24xIG1lLTNcIj4gSWYgU3RvcmUgQ2xvc2UgdGltZSBleGNlZWRzIGJ5IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBwLTMgdGV4dC1jZW50ZXIgdy00NXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgbWlubGVuZ3RoPVwiMlwiIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbXMtM1wiPiBtaW51dGVzIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzY3J1bScsJ2NsZWFuaW5nJ10uaW5jbHVkZXModHlwZSkgJiYgY2xpZW50SWQhPT0nNDUyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nIG10LThcIj5BdXRvbWF0aWMgVGFza1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+IFNlbGVjdCBBcHByb3ZlciA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5hcHByb3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlQWxlcnQoJGV2ZW50LCdhcHByb3ZlJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nIG10LThcIj57e3R5cGUgPT09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgPyAnVG8gYmUgQWNrbm93bGVkZ2VkIGJ5JyA6ICdBcHByb3Zlcid9fTwvaDI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG10LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5CeSBlbmFibGluZywgdGhlIHVzZXJzIHdpbGwgYmUgYWJsZSB0byBhY2tub3dsZWRnZSB0aGUgY2hlY2tsaXN0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ1wiIGNsYXNzPVwiY29sLW1kLTEyIG10LThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBtdC0yIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTQgc3ViXCI+SWYgdXNhZ2UgZXhjZWVkczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTU1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5hbGVydC51c2FnZUV4Y2VlZHNcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZCBtaW5sZW5ndGg9XCIyXCIgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXIgdXNhZ2VlcnJvclwiICpuZ0lmPVwiZXJyb3Jtc2dcIj5QbGVhc2UgZW50ZXIgZXZlbnQgY291bnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXR3ZWVuIDE1IHRvIDk5OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+VG8gYmUgYXBwcm92ZWQgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRhaW5lciBtdC0zXCIgKm5nSWY9XCJbJ3F1ZXVlYWxlcnQnXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctY2FyZCBzaGFkb3ctc20gcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSGVhZGVyIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtYi0xXCI+RGV0ZWN0aW9uIENvbmZpZ3VyYXRpb248L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPkNvbnRyb2wgY2hlY2tsaXN0IGxvZ2ljIGFuZCBhbGVydCBjb25maWd1cmF0aW9uczwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlY3Rpb24gMTogUXVldWUgTGVuZ3RoIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0zIGJvcmRlci1saWdodC1zdWJ0bGUgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cIm1iLTAgZnctYm9sZCBmcy00XCI+UXVldWUgTGVuZ3RoPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LnF1ZXVlYWxlcnQ/LnF1ZXVlTGVuZ3RoRW5hYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlcXVldWVsZW5ndGhjb25maWcoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXVlTGVuZ3RoRW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFsZXJ0cyB3aWxsIGJlIHNlbnQgYmFzZWQgb24gdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmVkIGxpbWl0IGV4Y2VlZGluZyB0aGUgcXVldWU8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTEwIG1iLTRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5BbGVydCwgSWYgUXVldWUgTGVuZ3RoIEV4Y2VlZHMgbW9yZSB0aGFuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctYXV0byBjdXN0b20tc2VsZWN0XCIgWyhuZ01vZGVsKV09XCJxdWV1ZUxpbWl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiMlwiPjI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCIzXCI+Mzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjRcIj40PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiNVwiPjU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCI2XCI+Njwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPlBlcnNvbiBpbiBEZXRlY3Rpb24gQXJlYXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZWN0aW9uIDI6IFF1ZXVlIFdhaXQgVGltZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLWxpZ2h0LXN1YnRsZSByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwibWItMCBmdy1ib2xkIGZzLTRcIj5RdWV1ZSBXYWl0IFRpbWUgQWxlcnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5haUNvbmZpZz8ucXVldWVhbGVydD8ud2FpdFRpbWVFbmFibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VxdWV1ZXdhaXR0aW1lY29uZmlnKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIndhaXRUaW1lRW5hYmxlZFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0zXCI+V2hlbiBlbmFibGVkLCBhbGVydHMgd2lsbCBiZSBzZW50IHdoZW4gYSBwZXJzb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZW5kcyBtb3JlIHRoYW4gY29uZmlndXJlZCB0aW1lPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwib3BhY2l0eS0xMCBtYi00XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+QWxlcnQsIElmIFBlcnNvbiBTcGVuZHMgbW9yZSB0aGFuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctYXV0byBjdXN0b20tc2VsZWN0MVwiIFsobmdNb2RlbCldPVwid2FpdFRpbWVMaW1pdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+MSBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj4yIE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjMgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+NCBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj41IE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNlwiPjYgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI3XCI+NyBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjhcIj44IE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiOVwiPjkgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMFwiPjEwIE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5pbiBEZXRlY3Rpb24gQXJlYXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZWN0aW9uIDM6IEFsZXJ0IENvb2xkb3duIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC0zIGJvcmRlci1saWdodC1zdWJ0bGUgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cIm1iLTAgZnctYm9sZCBmcy00XCI+QWxlcnQgQ29vbGRvd248L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5haUNvbmZpZz8ucXVldWVhbGVydD8uYWxlcnRDb29sZG93bkVuYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZWFsZXJ0Y29vbGRvd25jb25maWcoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWxlcnRDb29sZG93bkVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0zXCI+V2FpdCBmb3IgdGhlIGNvbmZpZ3VyZWQgaW50ZXJ2YWwgdGltZSBiZWZvcmUgc2VuZGluZyBhbm90aGVyIGFsZXJ0PC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwib3BhY2l0eS0xMCBtYi00XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+U2VuZCBuZXcgYWxlcnQgYWZ0ZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgdy1hdXRvIGN1c3RvbS1zZWxlY3QxXCIgWyhuZ01vZGVsKV09XCJhbGVydENvb2xkb3duVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+NSBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwXCI+MTAgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxNVwiPjE1IE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMjBcIj4yMCBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjI1XCI+MjUgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzMFwiPjMwIE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5zaW5jZSB0aGUgbGFzdCBhbGVydDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQWxlcnQgQ29uZmlndXJhdGlvbiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2hhbGZzaHV0dGVyJywndHZjb21wbGlhbmNlJywnc3RvcmVvcGVuYW5kY2xvc2UnLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmdcIj5BbGVydCBDb25maWd1cmF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwibXgtMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NzRfNjYxOTUpXCI+IDxwYXRoIGQ9XCJNOC4wMDAxNiAxMC42NjczVjguMDAwNjVNOC4wMDAxNiA1LjMzMzk4SDguMDA2ODNNMTQuNjY2OCA4LjAwMDY1QzE0LjY2NjggMTEuNjgyNiAxMS42ODIxIDE0LjY2NzMgOC4wMDAxNiAxNC42NjczQzQuMzE4MjYgMTQuNjY3MyAxLjMzMzUgMTEuNjgyNiAxLjMzMzUgOC4wMDA2NUMxLjMzMzUgNC4zMTg3NSA0LjMxODI2IDEuMzMzOTggOC4wMDAxNiAxLjMzMzk4QzExLjY4MjEgMS4zMzM5OCAxNC42NjY4IDQuMzE4NzUgMTQuNjY2OCA4LjAwMDY1WlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz4gPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz4gPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPiA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPiA8L2NsaXBQYXRoPiA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnaGFsZnNodXR0ZXInXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtMiBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGVydHMgd2lsbCBiZSBzZW50LCBJZiB0aGUgc3RvcmUgc2h1dHRlciBpcyBsZWZ0IGhhbGYgb3BlbmVkIGR1cmluZyB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJlZCBvcGVuICYgY2xvc2UgdGltZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtMiBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGVydHMgd2lsbCBiZSBzZW50LCBJZiB0aGUgZXZlbnQgZG9lcyBub3Qgb2NjdXIgd2l0aGluIHRoZSBjb25maWd1cmVkIHRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC0yIGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXJ0cyB3aWxsIGJlIHNlbnQgd2hlbiB0aGVyZSdzIGEgbWlzbWF0Y2ggYmV0d2VlbiBhY3R1YWwgYW5kIGNvbmZpZ3VyZWQgc3RvcmUgb3Blbi9jbG9zZSB0aW1lc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3R2Y29tcGxpYW5jZSddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC0yIGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXJ0cyB3aWxsIGJlIHNlbnQsIHdoZW4gdGhlcmUgaXMgYSBicmVhY2ggaGFwcGVuZWQgYmV0d2VlbiB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJlZCB0aW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2hhbGZzaHV0dGVyJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtMlwiPkFsbG93IEJ1ZmZlciBUaW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlYWxlcnR0aW1lY29uZmlnKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxsb3dCdWZmZXIuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+V2hlbiBlbmFibGVkLCBhbGVydHMgd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXVzZWQgZHVyaW5nIHRoZSBidWZmZXIgcGVyaW9kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZFwiICpuZ0lmPVwiYWxlcnR0aW1la2V5Y29uZmlnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktMSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtZS0zXCI+IFN0b3JlIHNodXR0ZXIgY2FuIHJlbWFpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFsZi1vcGVuLCA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS0xIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1zdWItaGVhZGVyIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsbG93QnVmZmVyLmFmdGVyT3BlblRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRpbWUgb2YgYWxlcnRUaW1lQ29uZmlnXCIgW3ZhbHVlXT1cInRpbWVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtZS0zXCI+IG1pbnV0ZXMgYWZ0ZXIgc3RvcmUgb3BlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSBhbmQgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGxvd0J1ZmZlci5iZWZvcmVDbG9zZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRpbWUgb2YgYWxlcnRUaW1lQ29uZmlnXCIgW3ZhbHVlXT1cInRpbWVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtcy0zXCI+IG1pbnV0ZXMgYmVmb3JlIHN0b3JlIGNsb3NlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGhyZXNob2xkLWNvbnRhaW5lciBwLTRcIiAqbmdJZj1cIlsndHZjb21wbGlhbmNlJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtM1wiPkJyZWFjaGVkIERldGVjdGlvbiBUaHJlc2hvbGQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1c3RvbS1zd2l0Y2hcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInN3aXRjaFwiIFsobmdNb2RlbCldPVwiaXNUaHJlc2hvbGRFbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5XaGVuIGVuYWJsZWQsIGRldGVjdGlvbnMgb3ZlciB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmVkIGRhaWx5IGxpbWl0IGFyZSBmbGFnZ2VkIGFzIGEgYnJlYWNoPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMyBtdC00XCIgKm5nSWY9XCJpc1RocmVzaG9sZEVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5LWJsdWUgZnctbWVkaXVtXCI+RmxhZywgYXMgYnJlYWNoZWQgaWYgZGV0ZWN0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRzPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY3VzdG9tLXNlbGVjdFwiIFsobmdNb2RlbCldPVwiZGV0ZWN0aW9uVGhyZXNob2xkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1RocmVzaG9sZEVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0IG9mIHRocmVzaG9sZE9wdGlvbnNcIiBbdmFsdWVdPVwib3B0XCI+e3sgb3B0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5LWJsdWUgZnctbWVkaXVtXCI+aW4gYSBkYXk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTIgcm91bmRlZC00IHB4LTMgbWItMiBtdC0yXCIgKm5nSWY9XCJbJ3N0b3Jlb3BlbmFuZGNsb3NlJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBtdC0yXCI+RGV0ZWN0aW9uIENvbmZpZ3VyYXRpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5DaG9vc2UgaG93IGRldGVjdGlvbiBzaG91bGQgYmUgYXBwbGllZCBhY3Jvc3MgY2FtZXJhczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1lLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNvY0RldGVjdGlvblR5cGVcIiBpZD1cInNvY0RldGVjdGlvblR5cGVBbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImFsbENhbWVyYXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuZGV0ZWN0aW9uVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc2VjdGlvbjEgbXMtMiBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInNvY0RldGVjdGlvblR5cGVBbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUHJvY2Vzc2VzIGFuZCBkaXNwbGF5cyBkZXRlY3Rpb25zIGZyb20gYWxsIGNvbmZpZ3VyZWQgY2FtZXJhIGZlZWRzIGluIGEgZ3JpZCB2aWV3IGluIHRoZSBnYWxsZXJ5LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiPkFsbCBDYW1lcmFzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNvY0RldGVjdGlvblR5cGVcIiBpZD1cInNvY0RldGVjdGlvblR5cGVGaXJzdExhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImZpcnN0QW5kTGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5kZXRlY3Rpb25UeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzZWN0aW9uMSBtcy0yIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwic29jRGV0ZWN0aW9uVHlwZUZpcnN0TGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEaXNwbGF5cyBvbmx5IHRoZSBmaXJzdCBvcGVuaW5nIGFuZCB0aGUgbGFzdCBjbG9zaW5nIGRldGVjdGlvbiBmcm9tIGFueSBjYW1lcmEgZm9yIHRoZSBzdG9yZSBpbiB0aGUgZ2FsbGVyeS5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIj5PcGVuaW5nICZhbXA7IENsb3NpbmcgRGV0ZWN0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC00IG1iLTRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTIgcm91bmRlZC00IHB4LTMgbWItMiBtdC0yXCIgICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXQtMlwiPlNldCBCdWZmZXIgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZUJ1ZmZlclRpbWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgPiAwIHx8IGNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLmNsb3NlVGltZSA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbXQtMlwiPldoZW4gZW5hYmxlZCwgYWxlcnRzIHdpbGwgYmUgcGF1c2VkIGR1cmluZyB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIHBlcmlvZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNoZWNrQnVmZmVyIHx8IGNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lIHx8IGNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLmNsb3NlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24xIG1lLTNcIj4gSWYgU3RvcmUgT3BlbiB0aW1lIGV4Y2VlZHMgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTUwcHggcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiBidWZmZXJUaW1lXCI+e3tpfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uMSBtcy0zXCI+IG1pbnV0ZXMgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbWUtM1wiPiBJZiBTdG9yZSBDbG9zZSB0aW1lIGV4Y2VlZHMgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTUwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1zZWxlY3QtbGcgc2VsZWN0Mi1oaWRkZW4tYWNjZXNzaWJsZSBuZy1wcmlzdGluZSBuZy12YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiBidWZmZXJUaW1lXCI+e3tpfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uMSBtcy0zXCI+IG1pbnV0ZXMgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTIgcm91bmRlZC00IHB4LTMgbWItMiBtdC0yXCIgICpuZ0lmPVwiWydtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtNCBzdWJcIj5BbGVydCwgSWYgbW9iaWxlIHVzYWdlIGV4Y2VlZHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZmxleCBmbGV4LWNvbHVtblwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB0ZXh0LWNlbnRlciB3LTU1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkIG1pbmxlbmd0aD1cIjFcIiBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJcIj5kZXRlY3Rpb25zIHBlciBkYXk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwiZXJyb3Jtc2dcIj5QbGVhc2UgZW50ZXIgZXZlbnQgY291bnQgYmV0d2VlbiAxIHRvIDk5OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gUHVzaCBOb3RpZmljYXRpb25zIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBiZy13aGl0ZSByb3VuZGVkLTQgcHgtNyBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdxdWV1ZWFsZXJ0JywnY2FtZXJhdGFtcGVyaW5nJywnc3RvcmVvcGVuYW5kY2xvc2UnLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCd1bmlmb3JtZGV0ZWN0aW9uJywnc3RhZmZncm91cGluZycsJ2JveGFsZXJ0JywnZW1wbG95ZWVDb3VudCcsJ3VuYXR0ZW5kZWRkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+UHVzaCBOb3RpZmljYXRpb25zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbmFibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlbm90aWZpY2F0aW9uY29uZmlnKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZighWydzdG9yZW9wZW5hbmRjbG9zZScsJ2hhbGZzaHV0dGVyJ10uaW5jbHVkZXModHlwZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5TZW5kIG5vdGlmaWNhdGlvbnMgdG8gTW9iaWxlLCBXZWIsIG9yIGJvdGggLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmUgYXMgcGVyIHlvdXIgbmVlZHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+U2VuZCBub3RpZmljYXRpb25zIHZpYSBNb2JpbGUsIFdlYiwgb3IgRW1haWwg4oCUIGNvbmZpZ3VyZSBhcyBuZWVkZWQ8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbmFibGVkXCIgY2xhc3M9XCJtdC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0yXCI+TW9iaWxlIE5vdGlmaWNhdGlvbnM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMVwiPiBTZW5kIHRvIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMSBmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLm1vYmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlTm90aWZpY2F0aW9uQWxlcnQoJGV2ZW50LCd1c2VyJywnbW9iaWxlJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0yIGNvbC02XCI+V2ViIE5vdGlmaWNhdGlvbnM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctaGVhZGVyIG10LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgY29sLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1LjMzNDYgMS42NjUwOVY1LjY2NTA5TTE1LjMzNDYgNS42NjUwOUgxMS4zMzQ2TTE1LjMzNDYgNS42NjUwOUwxMi4yNDEzIDIuNzU4NDJDMTEuNTI0OCAyLjA0MTU3IDEwLjYzODQgMS41MTc4OSA5LjY2NDc2IDEuMjM2MjdDOC42OTExNCAwLjk1NDY1IDcuNjYyMDQgMC45MjQyNTcgNi42NzM0OSAxLjE0NzkzQzUuNjg0OTUgMS4zNzE2IDQuNzY5MTcgMS44NDIwNSA0LjAxMTYxIDIuNTE1MzdDMy4yNTQwNiAzLjE4ODY5IDIuNjc5NDEgNC4wNDI5NSAyLjM0MTMgNC45OTg0Mk0wLjY2Nzk2OSAxMi4zMzE4VjguMzMxNzZNMC42Njc5NjkgOC4zMzE3Nkg0LjY2Nzk3TTAuNjY3OTY5IDguMzMxNzZMMy43NjEzIDExLjIzODRDNC40Nzc4IDExLjk1NTMgNS4zNjQyMiAxMi40NzkgNi4zMzc4NCAxMi43NjA2QzcuMzExNDcgMTMuMDQyMiA4LjM0MDU2IDEzLjA3MjYgOS4zMjkxMSAxMi44NDg5QzEwLjMxNzcgMTIuNjI1MiAxMS4yMzM0IDEyLjE1NDggMTEuOTkxIDExLjQ4MTVDMTIuNzQ4NSAxMC44MDgyIDEzLjMyMzIgOS45NTM5IDEzLjY2MTMgOC45OTg0MlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjEuMjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yIG1zLTNcIj4gU3luYyB1c2VycyBmcm9tIE1vYmlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMSBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZXN5bmNNb2JpbGVXZWJjb25maWcoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLnN5bmNNb2JpbGVXZWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMVwiPiBTZW5kIHRvIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMSBmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLndlYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlTm90aWZpY2F0aW9uQWxlcnQoJGV2ZW50LCd1c2VyJywnd2ViJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZScsJ2hhbGZzaHV0dGVyJywnbW9iaWxldXNhZ2VkZXRlY3Rpb24nLCdzdG9yZWh5Z2llbmVtb25pdG9yaW5nJywndHZjb21wbGlhbmNlJywndW5pZm9ybWRldGVjdGlvbicsJ2NhbWVyYXRhbXBlcmluZycsJ3N0YWZmZ3JvdXBpbmcnLCdib3hhbGVydCcsJ3F1ZXVlYWxlcnQnLCdlbXBsb3llZUNvdW50JywndW5hdHRlbmRlZGRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctaGVhZGVyIG10LTIgY29sLTZcIj5TZW5kIGFzIEVtYWlsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgbXQtNSBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gcHktMyBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTMgY3Vyc29yLXBvaW50ZXJcIiAjdXBsb2FkIChjbGljayk9XCJmaWxlLmNsaWNrKClcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8c3BhbiBjbGFzcz1cInRlbXBsYXRlLWRyb3Bkb3duIGJnLXdoaXRlIG1zLTNcIj5CdWxrVXBsb2FkIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIHR5cGU9XCJmaWxlXCIgI2ZpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIiAoY2hhbmdlKT1cInZhbGlkYXRlRXhjZWxUZW1wbGF0ZSgkZXZlbnQpXCIgLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VidGl0bGUgbXgtMyBtZS0yXCI+IHwgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9wZW5FbWFpbERyb3Bkb3duKClcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiA5TDEyIDE1TDE4IDlcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlbWFpbERyb3Bkb3duXCIgY2xhc3M9XCJjYXJkIHRlbXBsYXRlLWRyb3Bkb3duIGgtNDBweCB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSByb3VuZGVkLTMgei0xIHRvcC01MHB4IGVuZC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMCB3LWF1dG8gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZW1haWxCdWxrdXBsb2FkTW9kZWwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicHgtNSBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0yXCI+RG93bmxvYWQgVGVtcGxhdGU8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIHNvcFRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgbWUtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZCBUb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImFwcHJvdmVyXCIgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbD8udHlwZT8uaW5jbHVkZXMoJ3N0b3JlJylcIiAoY2hhbmdlKSA9XCJ1cGRhdGVNYWlsZXIoJGV2ZW50LCdzdG9yZScpXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPlN0b3JlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJjdXN0b21cIiBbY2hlY2tlZF09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsPy50eXBlPy5pbmNsdWRlcygndXNlcicpXCIgKGNoYW5nZSkgPVwidXBkYXRlTWFpbGVyKCRldmVudCwndXNlcicpXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPlVzZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm1lLTMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBoLTE0cHggdy0xNHB4IG14LTFcIiB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiY3VzdG9tXCIgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbD8udHlwZT8uaW5jbHVkZXMoJ2N1c3RvbScpXCIgKGNoYW5nZSkgPVwidXBkYXRlTWFpbGVyKCRldmVudCwnY3VzdG9tJylcIj48L2Rpdj4gPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBsaW5lSGVpZ2h0XCI+Q2x1c3Rlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImN1c3RvbVwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWw/LnR5cGU/LmluY2x1ZGVzKCd0ZWFtcycpXCIgKGNoYW5nZSkgPVwidXBkYXRlTWFpbGVyKCRldmVudCwndGVhbXMnKVwiPjwvZGl2PiA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIGxpbmVIZWlnaHRcIj5UZWFtczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWw/LnR5cGU/LmluY2x1ZGVzKCd1c2VyJylcIiBjbGFzcz1cIm10LTMgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtwbGFjZWhvbGRlcl09XCInQWRkIFVzZXJzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbD8udXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUVtYWlsVXNlcnMoJGV2ZW50KVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsPy50eXBlPy5pbmNsdWRlcygndGVhbXMnKVwiIGNsYXNzPVwibXQtMyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFRlYW1zXCIgW3BsYWNlaG9sZGVyXT1cIidBZGQgVGVhbXMnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsPy50ZWFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlRW1haWxUZWFtcygkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtMiBhbGVydCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnNvbGlkYXRlZCBicmVhY2hlZCBkZXRlY3Rpb25zIHdpbGwgYmUgc2VudCBhcyBlbWFpbCByZXBvcnRzIHRvIHRoZSB1c2VycyBhZGRlZCBoZXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBiZy13aGl0ZSByb3VuZGVkLTQgcHgtNyBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnc3RvcmVvcGVuYW5kY2xvc2UnLCdoYWxmc2h1dHRlcicsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsJ3VuaWZvcm1kZXRlY3Rpb24nLCd0dmNvbXBsaWFuY2UnLCdzdGFmZmdyb3VwaW5nJywnYm94YWxlcnQnLCdjYW1lcmF0YW1wZXJpbmcnLCdlbXBsb3llZUNvdW50J10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtM1wiPkF1dG8tQXNzaWduIFRhc2tzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLmVuYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+T24gYnJlYWNoZXMsIHRhc2tzIGFyZSBhdXRvLWNyZWF0ZWQgYW5kIGFzc2lnbmVkIHRvIHVzZXJzL3N0b3JlczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcuZW5hYmxlZFwiIGNsYXNzPVwibXQtOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMiByb3VuZGVkLTQgcHgtMyBtYi0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgc2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+IEFzc2lnbiBUYXNrIHRvIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0YXNrVXBkYXRlXCIgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnRhc2tBc3NpZ25lZFRvXCIgdmFsdWU9XCJzdG9yZVwiIChjaGFuZ2UpPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy51c2VycyA9IFtdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPlN0b3JlczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0YXNrVXBkYXRlXCIgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnRhc2tBc3NpZ25lZFRvXCIgdmFsdWU9XCJ1c2VyXCIgKGNoYW5nZSk9XCJjb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnVzZXJzID0gW11cIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ1cGxvYWR0ZXh0IGN1cnNvci1wb2ludGVyIGZ3LXNlbWlib2xkXCI+VXNlcnM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHNlbGVjdGVkLXJhZGlvIG1lLTMgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidGFza1VwZGF0ZVwiIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy50YXNrQXNzaWduZWRUb1wiIHZhbHVlPVwidGVhbXNcIiAoY2hhbmdlKT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudXNlcnMgPSBbXVwiIGRpc2FibGVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGRcIj5UZWFtczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3VzZXInLCd0ZWFtcyddLmluY2x1ZGVzKGNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudGFza0Fzc2lnbmVkVG8pXCIgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIGNsYXNzPVwidy0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUF1dG9UYXNrVXNlcnMoJGV2ZW50KVwiICpuZ0lmPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy50YXNrQXNzaWduZWRUbyA9PSAndXNlcidcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VGVhbXNcIiBjbGFzcz1cInctMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVBdXRvVGFza1VzZXJzKCRldmVudClcIiAqbmdJZj1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudGFza0Fzc2lnbmVkVG8gPT0gJ3RlYW1zJ1wiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+RW5hYmxlIEFwcHJvdmVyPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcuYXBwcm92ZXJFbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1Ym1pdHRlZCB0YXNrcyBtdXN0IGJlIHJldmlld2VkIGFuZCBhY3Rpb25lZCBieSBhbiBhcHByb3ZlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtNFwiICpuZ0lmPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy5hcHByb3ZlckVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctM1wiPiBTZW5kIHRvIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05IGZ2LXJvdyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcuYXBwcm92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUF1dG9UYXNrKCRldmVudCwndXNlcicpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMiByb3VuZGVkLTQgcHgtMyBtYi0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+IFRhc2sgVmFsaWRpdHkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFzayB2YWxpZCBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTUwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWQgdy04MHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy50YXNrVmFsaWRpdHkudGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiB0aW1lU2xvdFwiPnt7aX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTUwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWQgdy0xNDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudGFza1ZhbGlkaXR5LnR5cGVcIiAoY2hhbmdlKT1cInVwZGF0ZVRpbWVTbG90KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtaW5zXCI+TWludXRlczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImhvdXJzXCI+SG91cnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJkYXlzXCI+RGF5czwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSBUYXNrIGNyZWF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIEF1dG8tQXNzaWduIFRhc2tzIC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGJnLXdoaXRlIHJvdW5kZWQtNCBweC03IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWyd0dmNvbXBsaWFuY2UnLCdjYW1lcmF0YW1wZXJpbmcnLF0uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtM1wiPkF1dG8tQXNzaWduIFRhc2tzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VhdXRvdGFza2NvbmZpZygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+T24gYnJlYWNoLCB0YXNrcyBhcmUgYXV0by1jcmVhdGVkIGFuZCBhc3NpZ25lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHVzZXJzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC04XCIgKm5nSWY9XCJhdXRvdGFza2tleWNvbmZpZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+IFNlbGVjdCBBcHByb3ZlciA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTAgZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy5hcHByb3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlQXV0b1Rhc2soJGV2ZW50LCd1c2VyJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gRXhwb3J0IGRhdGEgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGJnLXdoaXRlIHJvdW5kZWQtNCBweC03IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWydoYWxmc2h1dHRlcicsJ3R2Y29tcGxpYW5jZScsJ3F1ZXVlYWxlcnQnLCdjYW1lcmF0YW1wZXJpbmcnLCdzdG9yZW9wZW5hbmRjbG9zZScsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsJ3VuaWZvcm1kZXRlY3Rpb24nLCdzdGFmZmdyb3VwaW5nJywnYm94YWxlcnQnLCdlbXBsb3llZUNvdW50JywndW5hdHRlbmRlZGRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctaGVhZGVyIG10LTNcIj5FeHBvcnQgZGF0YTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlZXhwb3J0Y29uZmlnKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5leHBvcnRDb25maWcuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+RXhwb3J0IHlvdXIgZGF0YSBpbiB0aGUgZm9ybWF0IHlvdSBuZWVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC04XCIgKm5nSWY9XCJleHBvcnRrZXljb25maWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBtYi01IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidBTEwnXCIgKGNoYW5nZSk9XCJjaGFuZ2VFeHBvcnRWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRFeHBvcnRDb25maWcuaW5jbHVkZXMoJ0FMTCcpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ1cGxvYWR0ZXh0IGN1cnNvci1wb2ludGVyIGZ3LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBoLTE0cHggdy0xNHB4IG14LTFcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiJ0NTVidcIiAoY2hhbmdlKT1cImNoYW5nZUV4cG9ydFZhbHVlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZEV4cG9ydENvbmZpZy5pbmNsdWRlcygnQ1NWJylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NWXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCInUERGJ1wiIChjaGFuZ2UpPVwiY2hhbmdlRXhwb3J0VmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkRXhwb3J0Q29uZmlnLmluY2x1ZGVzKCdQREYnKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQREZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidQUFQnXCIgKGNoYW5nZSk9XCJjaGFuZ2VFeHBvcnRWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRFeHBvcnRDb25maWcuaW5jbHVkZXMoJ1BQVCcpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ1cGxvYWR0ZXh0IGN1cnNvci1wb2ludGVyIGZ3LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBQVFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCInWklQJ1wiIChjaGFuZ2UpPVwiY2hhbmdlRXhwb3J0VmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkRXhwb3J0Q29uZmlnLmluY2x1ZGVzKCdaSVAnKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaSVBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgbXQtMyByb3VuZGVkLTQgcHgtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBcIj5Bc3NpZ248c3BhbiBjbGFzcz1cIm14LTJcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODc0XzY2MTk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODc0XzY2MTk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTUgbXQtMyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHNlbGVjdGVkLXJhZGlvIG1lLTMgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic3RvcmVzXCIgW2NoZWNrZWRdPVwic3RvcmVDb3ZlcmFnZVwiIChjbGljayk9XCJzZWxlY3RSYWRpbygnc3RvcmUnLCdjaGFuZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGRcIj5Bc3NpZ24gU3RvcmVzIGFuZCBDbHVzdGVyczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2Vyc1wiIFtjaGVja2VkXT1cInVzZXJDb3ZlcmFnZVwiIChjbGljayk9XCJzZWxlY3RSYWRpbygndXNlcicsJ2NoYW5nZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPkFzc2lnbiBVc2VycyBhbmQgVGVhbXM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0b3JlQ292ZXJhZ2UgJiYgYXNzaWduVHlwZSA9PT0nc3RvcmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtNSBtcy01IHN0b3JlQXNzaWduIHNvcFRhYmxlIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJmbGFnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZW5hYmxlTmV3RGVwbG95ZWRTdG9yZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPkF1dG8gYXNzaWduIHRvIG5ld2x5IGRlcGxveWVkIHN0b3Jlczwvc3Bhbj4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtcy01IGFsaWduLWl0ZW1zLWVuZCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBvdmVyZmxvdy1hdXRvIGgtNDVweCB3LTc1IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFicyBuYXYtbGluZS10YWJzLTJ4IGJvcmRlci10cmFuc3BhcmVudCBmcy01IGZ3LWJvbGRlciBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT1cInNlbGVjdGVkVGFiKCdzdG9yZScpXCIgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlciBoLTEwMFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXNzaWduVHlwZSA9PT0nc3RvcmUnID8gJ2FjdGl2ZSBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeScgOicnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbS0wIHB4LTVcIj5TdG9yZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0ZWRUYWIoJ2NsdXN0ZXInKVwiIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXIgaC0xMDBcIj48YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFzc2lnblR5cGUgPT09J2NsdXN0ZXInID8gJ2FjdGl2ZSBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeScgOicnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbS0wIHB4LTVcIj5DbHVzdGVyczwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0lmPVwidXNlckNvdmVyYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFicyBuYXYtbGluZS10YWJzLTJ4IGJvcmRlci10cmFuc3BhcmVudCBmcy01IGZ3LWJvbGRlciBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT1cInNlbGVjdGVkVGFiKCd1c2VyJylcIiBjbGFzcz1cIm5hdi1pdGVtIGN1cnNvci1wb2ludGVyIGgtMTAwXCI+PGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhc3NpZ25UeXBlID09PSd1c2VyJyA/ICdhY3RpdmUgYmctbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnknIDonJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG0tMCBweC01XCI+VXNlcnM8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0ZWRUYWIoJ3RlYW0nKVwiIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXIgaC0xMDBcIj48YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFzc2lnblR5cGUgPT09J3RlYW0nID8gJ2FjdGl2ZSBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeScgOicnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbS0wIHB4LTVcIj5UZWFtczwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCIgKGNsaWNrKT1cImFkZFN0b3JlQ29tcG9uZW50KClcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtNCBuZy1zdGFyLWluc2VydGVkIG10LThcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCI+PHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0yXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk4NCA0LjE2Njk5VjE1LjgzMzdNNC4xNjY1IDEwLjAwMDNIMTUuODMzMlwiIHN0cm9rZT1cIiMzNDQwNTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cImNyZWF0ZTFcIj5Bc3NpZ24gU3RvcmU8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwidXNlckNvdmVyYWdlXCIgKGNsaWNrKT1cImFkZFN0b3JlQ29tcG9uZW50KClcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtNCBuZy1zdGFyLWluc2VydGVkIG10LThcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCI+PHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0yXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk4NCA0LjE2Njk5VjE1LjgzMzdNNC4xNjY1IDEwLjAwMDNIMTUuODMzMlwiIHN0cm9rZT1cIiMzNDQwNTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cImNyZWF0ZTFcIj5Bc3NpZ24gVXNlcjwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5TZWxlY3RlZCA8c3Bhbj57e2Fzc2lnblR5cGUgfCB0aXRsZWNhc2V9fXM8L3NwYW4+IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICpuZ0lmPVwiIVsnY2x1c3RlcicsJ3RlYW0nXS5pbmNsdWRlcyhhc3NpZ25UeXBlKVwiICAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBwZS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1tdWx0aS1jaGlwLWRyb3Bkb3duICpuZ0lmPVwic3RvcmVMaXN0XCIgW2l0ZW1zXT1cInN0b3JlTGlzdFwiIFttdWx0aV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaEZpZWxkXT1cIlsnc3RvcmVOYW1lJywnY2x1c3Rlck5hbWUnLCdzdG9yZUlkJywndXNlck5hbWUnLCd0ZWFtTmFtZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaEtleV09XCJzZWFyY2hLZXlcIiBbaWRGaWVsZF09XCInX2lkJ1wiIChzZWxlY3RlZCk9XCJ1cGRhdGVBc3NpZ24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZWRDaGlwKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZXNdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXNzaWduXCI+PC9saWItbXVsdGktY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCIgY2xhc3M9XCJ3LTEwMCBwZS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1tdWx0aS1jaGlwLWRyb3Bkb3duICpuZ0lmPVwic3RvcmVMaXN0XCIgW2l0ZW1zXT1cInN0b3JlTGlzdFwiIFttdWx0aV09XCJ0cnVlXCIgW3NlYXJjaEZpZWxkXT1cIlsnc3RvcmVOYW1lJywnY2x1c3Rlck5hbWUnLCdzdG9yZUlkJywndXNlck5hbWUnLCd0ZWFtTmFtZSddXCIgW3NlYXJjaEtleV09XCJzZWFyY2hLZXlcIiBbaWRGaWVsZF09XCInX2lkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZCk9XCJ1cGRhdGVBc3NpZ24oJGV2ZW50KVwiIChyZW1vdmVkKT1cInJlbW92ZWRDaGlwKCRldmVudClcIiBbc2VsZWN0ZWRWYWx1ZXNdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXNzaWduXCI+PC9saWItbXVsdGktY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCIgKm5nSWY9XCJ0YWJsZURhdGEubGVuZ3RoIHx8IHRhYmxlRmlsdGVyLmxlbmd0aCB8fCAhc2hvd0ltYWdlXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0YWJsZUxvYWRpbmcgJiYgdGFibGVBcnJheT8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQtYm9keSBweC0wIG10LTAgcHQtMCBwYi0wIG14LTQgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlciBtdC01IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS10aXRsZVwiPlNlbGVjdGVkIDxzcGFuPnt7YXNzaWduVHlwZSB8IHRpdGxlY2FzZX19czwvc3Bhbj4gTGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBkYXRhLWt0LXN1YnNjcmlwdGlvbi10YWJsZS1maWx0ZXI9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWFyY2hUYWJsZURhdGEoKVwiIFsobmdNb2RlbCldPVwidGFibGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctMjAwcHggcHMtNSBteC0xIG1lLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgYXV0b2NhcGl0YWxpemU9XCJub25lXCIgc3BlbGxjaGVjaz1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IG5vbmVcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaC4uLlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIVsnY2x1c3RlcicsJ3RlYW0nXS5pbmNsdWRlcyhhc3NpZ25UeXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xMDAgbXQtNSBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBweS0zIGJ0bi1kZWZhdWx0IHctMTAwIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWwgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTMgY3Vyc29yLXBvaW50ZXJcIiAjdXBsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbGUuY2xpY2soKVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8c3BhbiBjbGFzcz1cInRlbXBsYXRlLWRyb3Bkb3duIGJnLXdoaXRlIG1zLTNcIj5CdWxrVXBsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGlucHV0IHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiB0eXBlPVwiZmlsZVwiICNmaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCIgLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YnRpdGxlIG14LTMgbWUtMlwiPiB8IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3BlbkRyb3Bkb3duKCRldmVudClcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDlMMTIgMTVMMTggOVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQgdGVtcGxhdGUtZHJvcGRvd24gaC00MHB4IHctMTAwIHBvc2l0aW9uLWFic29sdXRlIHJvdW5kZWQtMyB6LTEgdG9wLTUwcHggZW5kLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMCB3LWF1dG8gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidWxrdXBsb2FkTW9kZWwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInB4LTUgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgcHktMlwiPkRvd25sb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NsdXN0ZXInLCd0ZWFtJ10uaW5jbHVkZXMoYXNzaWduVHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIHB5LTMgYnRuLWRlZmF1bHQgdy0xMDAgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGVWMigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTMgY3Vyc29yLXBvaW50ZXJcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4xMjUgMTMuMTI1SDE2LjM1NjJMMTQuNzQzOCAxNC43NDM4TDE1LjYyNSAxNS42MjVMMTguNzUgMTIuNUwxNS42MjUgOS4zNzVMMTQuNzQzOCAxMC4yNTYyTDE2LjM1NjIgMTEuODc1SDguMTI1VjEzLjEyNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImJsYWNrXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuNzUgOC43NTAwMVY2LjI1MDAxQzEzLjc1MDUgNi4xNjc3NiAxMy43MzQ3IDYuMDg2MjIgMTMuNzAzNiA2LjAxMDA3QzEzLjY3MjUgNS45MzM5MiAxMy42MjY3IDUuODY0NjYgMTMuNTY4OCA1LjgwNjI2TDkuMTkzNzUgMS40MzEyNkM5LjEzNTM1IDEuMzczMzMgOS4wNjYwOSAxLjMyNzUxIDguOTg5OTQgMS4yOTY0QzguOTEzNzkgMS4yNjUzIDguODMyMjUgMS4yNDk1MyA4Ljc1IDEuMjUwMDFIMi41QzIuMTY4NDggMS4yNTAwMSAxLjg1MDU0IDEuMzgxNzEgMS42MTYxMiAxLjYxNjEzQzEuMzgxNyAxLjg1MDU1IDEuMjUgMi4xNjg0OSAxLjI1IDIuNTAwMDFWMTcuNUMxLjI1IDE3LjgzMTUgMS4zODE3IDE4LjE0OTUgMS42MTYxMiAxOC4zODM5QzEuODUwNTQgMTguNjE4MyAyLjE2ODQ4IDE4Ljc1IDIuNSAxOC43NUgxMi41QzEyLjgzMTUgMTguNzUgMTMuMTQ5NSAxOC42MTgzIDEzLjM4MzkgMTguMzgzOUMxMy42MTgzIDE4LjE0OTUgMTMuNzUgMTcuODMxNSAxMy43NSAxNy41VjE2LjI1SDEyLjVWMTcuNUgyLjVWMi41MDAwMUg3LjVWNi4yNTAwMUM3LjUgNi41ODE1MyA3LjYzMTcgNi44OTk0NyA3Ljg2NjEyIDcuMTMzODlDOC4xMDA1NCA3LjM2ODMxIDguNDE4NDggNy41MDAwMSA4Ljc1IDcuNTAwMDFIMTIuNVY4Ljc1MDAxSDEzLjc1Wk04Ljc1IDYuMjUwMDFWMi43NTYyNkwxMi4yNDM4IDYuMjUwMDFIOC43NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImJsYWNrXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPHNwYW4gY2xhc3M9XCJ0ZW1wbGF0ZS1kcm9wZG93biBiZy13aGl0ZSBtcy0zXCI+RXhwb3J0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIiAqbmdJZj1cIiF0YWJsZURhdGE/Lmxlbmd0aCAmJiAhdGFibGVGaWx0ZXIgJiYgIXNob3dJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQtYm9keSBteS04IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGUgPHNwYW4+e3thc3NpZ25UeXBlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMCBteC00XCIgKm5nSWY9XCJ0YWJsZUFycmF5Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzb3BUYWJsZSB0YWJsZS1yZXNwb25zaXZlIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFibGVMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiICpuZ0lmPVwidGFibGVGaWx0ZXIgJiYgIXRhYmxlRGF0YT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkLWJvZHkgbXktOCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7YXNzaWduVHlwZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5LXNvcFwiICpuZ0lmPVwidGFibGVEYXRhLmxlbmd0aCAmJiAhdGFibGVMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIiBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3N0b3JlTmFtZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSBOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3N0b3JlTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICdzdG9yZU5hbWUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAnc3RvcmVOYW1lJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJOYW1lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQT0MgTmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJFbWFpbCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUE9DIEVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3VzZXJFbWFpbCcgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyRW1haWwnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlckVtYWlsJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiYXNzaWduVHlwZSA9PT0nY2x1c3RlcidcIiBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNvcnREYXRhKCdjbHVzdGVyTmFtZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbHVzdGVyIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAnY2x1c3Rlck5hbWUnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1uICE9PSAnY2x1c3Rlck5hbWUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAnY2x1c3Rlck5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiB0YWJsZURhdGE7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLnN0b3JlTmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLnVzZXJOYW1lID8gZGF0YS51c2VyTmFtZSA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ZGF0YS51c2VyRW1haWwgPyBkYXRhLnVzZXJFbWFpbCA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiYXNzaWduVHlwZSA9PT0gJ2NsdXN0ZXInXCI+e3tkYXRhLmNsdXN0ZXJOYW1lID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5jbHVzdGVyTmFtZSA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgKm5nSWY9XCJ1c2VyQ292ZXJhZ2VcIiBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJOYW1lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXIgTmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJFbWFpbCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyIEVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3VzZXJFbWFpbCcgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyRW1haWwnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlckVtYWlsJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiYXNzaWduVHlwZSA9PT0ndGVhbSdcIiBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3RlYW1OYW1lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlYW1zIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndGVhbU5hbWUnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1uICE9PSAndGVhbU5hbWUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndGVhbU5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgdGFibGVEYXRhO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIG14LTQgbGluZS1oZWlnaHRcIj57e2RhdGEudXNlck5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGEudXNlckVtYWlsID8gZGF0YS51c2VyRW1haWwgOiAnLS0nfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cImFzc2lnblR5cGUgPT09J3RlYW0nXCI+e3tkYXRhLnRlYW1OYW1lID8gZGF0YS50ZWFtTmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uIFtpdGVtc1BlclBhZ2VdPVwic2l6ZVwiIFtjdXJyZW50UGFnZV09XCJjdXJyZW50VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b3RhbEl0ZW1zXT1cInJlY29yZHNUb3RhbFwiIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJzaXplXCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFibGVMb2FkaW5nMSAmJiBzaG93SW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0YWJsZUFycmF5Lmxlbmd0aCAmJiAhdGFibGVMb2FkaW5nMSAmJiAhdGFibGVGaWx0ZXIubGVuZ3RoICYmIHNob3dJbWFnZSAmJiAhY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgJiYgIVsnY2x1c3RlcicsJ3RlYW0nXS5pbmNsdWRlcyhhc3NpZ25UeXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbWItNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgYXNzaWducGFkZGluZyBtYi0xMCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaHIgdy0xMDAgYm9yZGVyIGJvcmRlci0xIHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRlbXBsYXRlLWRyb3Bkb3duIG9ycG9zaXRpb24gYmctd2hpdGUgdy0xMDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkcGFkZGluZyBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1YnRleHQgbGlzdC11bnN0eWxlZCBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIG14LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlVzZSB0aGUgdGVtcGxhdGUgdG8gdXBsb2FkIG11bHRpcGxlIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCI+c3RvcmVzPC9zcGFuPiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidXNlckNvdmVyYWdlXCI+dXNlcnM8L3NwYW4+IGF0IG9uY2UuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiBEb3dubG9hZCB0aGUgdGVtcGxhdGUgaGVyZSAtIDxzcGFuIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlVjIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzcGFuIGNsYXNzPVwibWUtM1wiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU01LjgzMzMzIDguMzMzMzNMMTAgMTIuNU0xMCAxMi41TDE0LjE2NjcgOC4zMzMzM00xMCAxMi41VjIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeVwiPkRvd25sb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlPC9zcGFuPjwvc3Bhbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+IEFkZCB5b3VyIGRhdGEgdG8gdGhlIFRlbXBsYXRlIEZpbGU8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBib3JkZXIgYm9yZGVyLTIgdGV4dC1jZW50ZXIgYm9yZGVyLWRhc2hlZCByb3VuZGVkLTMgYm9yZGVyLXByaW1hcnkgcC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCIgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiIChjbGljayk9XCJmaWxlLmNsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0NlwiIGhlaWdodD1cIjQ2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNDYgNDZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBmaWxsPVwiI0YyRjRGN1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgcng9XCIyMFwiIHN0cm9rZT1cIiNGOUZBRkJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF83OTc5XzUyMDIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yNi4zMzM1IDI2LjMzMzJMMjMuMDAwMiAyMi45OTk5TTIzLjAwMDIgMjIuOTk5OUwxOS42NjY5IDI2LjMzMzJNMjMuMDAwMiAyMi45OTk5VjMwLjQ5OTlNMjkuOTkxOSAyOC4zMjQ5QzMwLjgwNDcgMjcuODgxOCAzMS40NDY3IDI3LjE4MDYgMzEuODE2OCAyNi4zMzIxQzMyLjE4NjggMjUuNDgzNSAzMi4yNjM3IDI0LjUzNTkgMzIuMDM1NCAyMy42Mzg4QzMxLjgwNyAyMi43NDE3IDMxLjI4NjUgMjEuOTQ2MiAzMC41NTU4IDIxLjM3NzhDMjkuODI1MSAyMC44MDk0IDI4LjkyNTkgMjAuNTAwNSAyOC4wMDAyIDIwLjQ5OTlIMjYuOTUwMkMyNi42OTggMTkuNTI0MyAyNi4yMjc4IDE4LjYxODUgMjUuNTc1MiAxNy44NTA3QzI0LjkyMjUgMTcuMDgyOSAyNC4xMDQyIDE2LjQ3MzEgMjMuMTgyIDE2LjA2NzFDMjIuMjU5NyAxNS42NjEgMjEuMjU3MyAxNS40Njk0IDIwLjI1MDMgMTUuNTA2NUMxOS4yNDMzIDE1LjU0MzYgMTguMjU3OCAxNS44MDg1IDE3LjM2NzkgMTYuMjgxM0MxNi40Nzc5IDE2Ljc1NDEgMTUuNzA2OCAxNy40MjI1IDE1LjExMjQgMTguMjM2MkMxNC41MTggMTkuMDUgMTQuMTE1OCAxOS45ODc5IDEzLjkzNiAyMC45Nzk0QzEzLjc1NjMgMjEuOTcwOSAxMy44MDM2IDIyLjk5MDMgMTQuMDc0NiAyMy45NjFDMTQuMzQ1NSAyNC45MzE2IDE0LjgzMjkgMjUuODI4MSAxNS41MDAyIDI2LjU4MzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDc1NDY3XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF83OTc5XzUyMDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxMyAxMylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZXRleHQgY3Vyc29yLXBvaW50ZXIgbWItMiBmdy1ib2xkXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmVcIj5DbGljayBUb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXBsb2FkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBkcmFnIGFuZCBkcm9wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcmFsaWduIGZ3LTQwMFwiPnRoZSBkYXRhIGFkZGVkIHRlbXBsYXRlIGZpbGUgZm9yIHByb2Nlc3NpbmcuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuO1wiIHR5cGU9XCJmaWxlXCIgI2ZpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMVwiIChjaGFuZ2UpPVwib25GaWxlVXBsb2FkKCRldmVudClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0YWJsZUFycmF5Lmxlbmd0aCAmJiAhdGFibGVMb2FkaW5nMSAmJiAhdGFibGVGaWx0ZXIubGVuZ3RoICYmIHNob3dJbWFnZSAmJiAhY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgJiYgWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQtYm9keSBteS04IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGUgPHNwYW4+e3thc3NpZ25UeXBlfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlICE9PSAnY3VzdG9tJ1wiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1hc3NpZ24gW2NvbmZpZ0RhdGFdPVwiY29uZmlnRGF0YVwiIFt1cGxvYWREYXRhXT1cInVwbG9hZERhdGFcIiBbY29uZmlndXJlVHlwZV09XCJjb25maWd1cmVUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGFUb1BhcmVudCk9XCJoYW5kbGVEYXRhRnJvbUNoaWxkKCRldmVudClcIj48L2xpYi1hc3NpZ24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPCEtLSBBZHZhbmNlZCBDb25maWd1cmF0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBiZy13aGl0ZSByb3VuZGVkLTQgcHgtNyBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdxdWV1ZWFsZXJ0JywnY2FtZXJhdGFtcGVyaW5nJywnc3RvcmVvcGVuYW5kY2xvc2UnLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCd1bmlmb3JtZGV0ZWN0aW9uJywnc3RhZmZncm91cGluZycsJ2JveGFsZXJ0JywnZW1wbG95ZWVDb3VudCcsJ3VuYXR0ZW5kZWRkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKSAmJiB1c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlclwiPkFkdmFuY2VkIENvbmZpZ3VyYXRpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMiByb3VuZGVkLTQgcHgtMyBtYi0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXJcIj5EYXRhIFByb2Nlc3Npbmc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5XaGVuIHlvdSB3YW50IHRvIHByb2Nlc3MgdGhpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3QgcmVwb3J0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGN1cnNvci1wb2ludGVyIGJvcmRlciBib3JkZXItMiByb3VuZGVkLTQgcHgtMyBtYi0yIG10LTIgbXMtNCBtZS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hZHZhbmNlZENvbmZpZz8uZGF0YVByb2Nlc3NpbmcgPT09ICdsaXZlJyA/ICdhZHZhbmNlZENvbmZpZ3VyZUFjaXRlJzogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggaC03MHB4IHJvdW5kZWQtMyBwLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJkYXRhcHJvY2Vzc2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIiBuYW1lPVwiZGF0YXByb2Nlc3NpbmdcIiB2YWx1ZT1cImxpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VEYXRhcHJvY2Vzc2luZygnbGl2ZScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRhcHJvY2Vzc2luZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFkdmFuY2VkQ29uZmlnPy5kYXRhUHJvY2Vzc2luZyA9PT0gJ2xpdmUnID8gJ3RleHQtcHJpbWFyeScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyIGZ3LWJvbGRcIj5MaXZlIE5vdGlmaWNhdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+VHJpZ2dlcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkgd2hlbmV2ZXIgYSBkZXRlY3Rpb24gb3IgYnJlYWNoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2NjdXJzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGN1cnNvci1wb2ludGVyIGJvcmRlciBib3JkZXItMiByb3VuZGVkLTQgcHgtMyBtYi0yIG10LTIgbXMtNCBtZS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hZHZhbmNlZENvbmZpZz8uZGF0YVByb2Nlc3NpbmcgPT09ICdlb2QnID8gJ2FkdmFuY2VkQ29uZmlndXJlQWNpdGUnOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBoLTcwcHggcm91bmRlZC0zIHAtMyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtdC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImRhdGFwcm9jZXNzaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzZWxlY3RlZC1yYWRpbyBtZS0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJkYXRhcHJvY2Vzc2luZ1wiIHZhbHVlPVwiZW9kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlRGF0YXByb2Nlc3NpbmcoJ2VvZCcpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRhcHJvY2Vzc2luZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFkdmFuY2VkQ29uZmlnPy5kYXRhUHJvY2Vzc2luZyA9PT0gJ2VvZCcgPyAndGV4dC1wcmltYXJ5JyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXIgZnctYm9sZFwiPkRhaWx5IChFT0QpPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbXQtMlwiPkZ1bGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRlY3Rpb24vYnJlYWNoIGhpc3RvcnkgZGVsaXZlcmVkIHRoZSBuZXh0IGRheSBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbWFydGVyIGRlY2lzaW9uczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+RGV0ZWN0ZWQgU3RhdHVzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlZGV0ZWN0ZWRzdGF0dXNjb25maWcoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYWR2YW5jZWRDb25maWcuZGV0ZWN0ZWRTdGF0dXMuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5DaG9vc2Ugd2hpY2ggZGV0ZWN0aW9ucyB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IG9uIGRhc2hib2FyZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCJkZXRlY3RlZHN0YXR1c2tleWNvbmZpZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBtYi01IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgW3ZhbHVlXT1cIidkZXRlY3RlZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZURldGVjdGlvblN0YXR1cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWREZXRlY3Rpb25TdGF0dXMuaW5jbHVkZXMoJ2RldGVjdGVkJylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGQgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhY2hlZCBEZXRlY3Rpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIFt2YWx1ZV09XCInbm9uZGV0ZWN0ZWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VEZXRlY3Rpb25TdGF0dXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkRGV0ZWN0aW9uU3RhdHVzLmluY2x1ZGVzKCdub25kZXRlY3RlZCcpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ1cGxvYWR0ZXh0IGN1cnNvci1wb2ludGVyIGZ3LXNlbWlib2xkIG1zLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uIEJyZWFjaGVkIERldGVjdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+QXVkaXQgUmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VhdWRpdHJlcXVpcmVkY29uZmlnKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFkdmFuY2VkQ29uZmlnLmF1ZGl0Q29uZmlnLmVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+SXMgYW4gYXVkaXQgcmVxdWlyZWQgZm9yIHRoaXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTIgcm91bmRlZC00IHB4LTMgbWItNCBtdC00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhdWRpdGtleWNvbmZpZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC00XCI+SW5wdXQgU291cmNlIEZpbGUgVHlwZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5JcyBhbiBhdWRpdCByZXF1aXJlZCBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgY2hlY2tsaXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy04IG10LTUgbWItNSBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzZWxlY3RlZC1yYWRpbyBtZS0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgbmFtZT1cInN0b3Jlc1wiIHZhbHVlPVwiaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZUlucHV0U291cmNlRmlsZVJhZGlvKCdpbWFnZScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFNvdXJjZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPkltYWdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwidmlkZW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJzdG9yZXNcIiB2YWx1ZT1cInZpZGVvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VJbnB1dFNvdXJjZUZpbGVSYWRpbygndmlkZW8nKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRTb3VyY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidmlkZW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGRcIj5WaWRlbzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNidWxrdXBsb2FkIGxldC1tb2RlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIG10LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLWxpZ2h0LXByaW1hcnkgcm91bmRlZC01IHctNDBweCBoLTQwcHggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiA8c3BhbiBjbGFzcz1cImNvbmZpZy1oZWFkaW5nIGZ3LXNlbWlib2xkIG1zLTUgdy1hdXRvXCI+QnVsayBVcGxvYWQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZUFzc2lnbiBtdC0zXCIgc3R5bGU9XCJmb250LXdlaWdodDogNDAwXCI+U3RlcCAxIC0gPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGVWMigpXCI+RG93bmxvYWQgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlIGhlcmU8L2E+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmVBc3NpZ24gbXQtM1wiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMFwiPlN0ZXAyIC0gQWRkIHlvdXIgZGF0YSB0byB0aGUgVGVtcGxhdGUgRmlsZSB3aXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcgPHNwYW4gKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCI+c3RvcmU8L3NwYW4+IDxzcGFuICpuZ0lmPVwidXNlckNvdmVyYWdlXCI+dXNlcjwvc3Bhbj4gZGF0YTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlQXNzaWduIG10LTNcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDBcIj5TdGVwMyAtIFVwbG9hZCBpdCBiZWxvdyBmb3IgcHJvY2Vzc2luZzwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIHN0b3JlQXNzaWduIG10LTEwXCI+KipOb3RlIDogT24gdXBsb2FkLCBhbGwgdGhlIGV4aXN0aW5nIGRhdGEgd2lsbCBiZSByZXBsYWNlZDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTAgdGV4dC1lbmQgcHQtMFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1tZCBidG4tZGVmYXVsdCBidG4tb3V0bGluZVwiIChjbGljayk9XCJtb2RlbC5jbG9zZSgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW1kIHB5LTQgYnRuLWRlZmF1bHQgbXMtMyBidG4tcHJpbWFyeVwiIChjbGljayk9XCJmaWxlMS5jbGljaygpXCI+VXBsb2FkPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxpbnB1dCBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjtcIiAjZmlsZTEgdHlwZT1cImZpbGVcIiBpZD1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8yXCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlVXBsb2FkKCRldmVudClcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2VtYWlsQnVsa3VwbG9hZCBsZXQtbW9kZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBib3JkZXItMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBtdC01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIG10LTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHJvdW5kZWQtNSB3LTQwcHggaC00MHB4IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gPHNwYW4gY2xhc3M9XCJjb25maWctaGVhZGluZyBmdy1zZW1pYm9sZCBtcy01IHctYXV0b1wiPkJ1bGsgVXBsb2FkPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB0LTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmVBc3NpZ24gbXQtM1wiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMFwiPlN0ZXAgMSAtIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJlbWFpbERvd25sb2FkVGVtcGxhdGUoKVwiPkRvd25sb2FkIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZSBoZXJlPC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlQXNzaWduIG10LTNcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDBcIj5TdGVwMiAtIEFkZCB5b3VyIGRhdGEgdG8gdGhlIFRlbXBsYXRlIEZpbGUgd2l0aFxyXG4gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nIDxzcGFuICpuZ0lmPVwic3RvcmVDb3ZlcmFnZVwiPnN0b3JlPC9zcGFuPiA8c3BhbiAqbmdJZj1cInVzZXJDb3ZlcmFnZVwiPnVzZXI8L3NwYW4+IGRhdGE8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZUFzc2lnbiBtdC0zXCIgc3R5bGU9XCJmb250LXdlaWdodDogNDAwXCI+U3RlcDMgLSBVcGxvYWQgaXQgYmVsb3cgZm9yIHByb2Nlc3Npbmc8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCBzdG9yZUFzc2lnbiBtdC0xMFwiPioqTm90ZSA6IE9uIHVwbG9hZCwgYWxsIHRoZSBleGlzdGluZyBkYXRhIHdpbGwgYmUgcmVwbGFjZWQ8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIHRleHQtZW5kIHB0LTBcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgYnRuLWRlZmF1bHQgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwibW9kZWwuY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1tZCBweS00IGJ0bi1kZWZhdWx0IG1zLTMgYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiZW1haWxGaWxlLmNsaWNrKClcIj5VcGxvYWQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGlucHV0IHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuO1wiICNlbWFpbEZpbGUgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCIueGxzeFwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInZhbGlkYXRlRXhjZWxUZW1wbGF0ZSgkZXZlbnQpXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNhZnRlclZhbGlkYXRpb24gbGV0LW1vZGVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgbXQtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBtdC0zXCI+PHNwYW4gY2xhc3M9XCJjb25maWctaGVhZGluZyBmdy1zZW1pYm9sZCB3LWF1dG9cIj5Bc3NpZ24gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCI+U3RvcmVzPC9zcGFuPiA8c3BhbiAqbmdJZj1cInVzZXJDb3ZlcmFnZVwiPlVzZXJzPC9zcGFuPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB0LTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nIHctMTAwXCI+e3tnZXRTdG9yZUNvdW50cyhleGNlbERhdGEpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIHN1YnRpdGxlIG10LTFcIj5Ub3RhbCA8c3BhbiAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIj5TdG9yZXM8L3NwYW4+IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ1c2VyQ292ZXJhZ2VcIj5Vc2Vyczwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nIHctMTAwXCI+e3tleGNlbERhdGE/Lmxlbmd0aH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1zZW1pYm9sZCBzdWJ0aXRsZSBtdC0xXCI+Um93cyBwcm9jZXNzZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleGNlbEVycm9yID8gJ2Vycm9yLWhlYWRpbmcnOicnXCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tleGNlbEVycm9yPy5lcnJvcj8ubGVuZ3RoIHx8IDB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4Y2VsRXJyb3IgPyAnZXhjZWwtZXJyb3InOicnXCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBzdWJ0aXRsZSBtdC0xXCI+RXJyb3I8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFleGNlbEVycm9yXCIgY2xhc3M9XCJ0YWJsZS1oZWFkZXIgbXQtNVwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2hvd1N0b3JlJiYhc2hvd1RlYW0mJiFzaG93Q2x1c3RlciYmIXNob3dVc2VyJiYhc2hvd0luYWN0aXZlXCI+WW91J3JlIGFib3V0IHRvIGFzc2lnblxyXG4gICAgICAgICAgICAgICAgICAgIHt7Z2V0U3RvcmVDb3VudHMoZXhjZWxEYXRhKX19IDxzcGFuICpuZ0lmPVwic3RvcmVDb3ZlcmFnZVwiPnN0b3Jlczwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInVzZXJDb3ZlcmFnZVwiPnVzZXJzPC9zcGFuPiB0byB0aGUgY2hlY2tsaXN0LiBBcmUgeW91IHN1cmUgd2FudCB0byBwcm9jZWVkPzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0b3JlQ292ZXJhZ2UgJiYgc2hvd1N0b3JlXCIgY2xhc3M9XCJtdC0zXCI+U3RvcmUgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0b3JlIG9mIHZhbGlkYXRlZFN0b3JlO2xldCBsYXN0ID0gbGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmdcIj57e3N0b3JlfX08c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj48L3NwYW4+IHRoYXQgSeKAmW0gbG9va2luZ1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciBpc27igJl0IGF2YWlsYWJsZSwgPGEgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc3RvcmVzXCIgW3F1ZXJ5UGFyYW1zXT1cInt0eW9lOiAnc3RvcmVzJ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+T25ib2FyZCBTdG9yZXM8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyQ292ZXJhZ2UgJiYgc2hvd1VzZXJcIiBjbGFzcz1cIm10LTNcIj5Vc2VyIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdG9yZSBvZiB2YWxpZGF0ZWRVc2VyO2xldCBsYXN0ID0gbGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmdcIj57e3N0b3JlfX08c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj48L3NwYW4+IHRoYXQgSeKAmW0gbG9va2luZ1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciBpc27igJl0IGF2YWlsYWJsZSwgPGEgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlYWN0aXZlcG9wdXAoKTtjb25maXJtVXNlcnBvcHVwKClcIj5PbmJvYXJkIFVzZXJzPC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJDb3ZlcmFnZSAmJiBzaG93VGVhbVwiIGNsYXNzPVwibXQtM1wiPlRlYW0gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0b3JlIG9mIHZhbGlkYXRlZFRlYW07bGV0IGxhc3QgPSBsYXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZ1wiPnt7c3RvcmV9fTxzcGFuICpuZ0lmPVwiIWxhc3RcIj4sPC9zcGFuPjwvc3Bhbj4gdGhhdCBJ4oCZbSBsb29raW5nXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIGlzbuKAmXQgYXZhaWxhYmxlLCA8YSByb3V0ZXJMaW5rPVwiL21hbmFnZS91c2Vycy9jbGllbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+Q3JlYXRlIFRlYW08L2E+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIHNob3dDbHVzdGVyXCIgY2xhc3M9XCJtdC0zXCI+dXNlciA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgdmFsaWRhdGVkQ2x1c3RlcjtsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmdcclxuICAgICAgICAgICAgICAgICAgICBmb3IgaXNu4oCZdCBhdmFpbGFibGUsIDxhIHJvdXRlckxpbms9XCIvbWFuYWdlL3N0b3Jlc1wiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJ7dHlvZTogJ2NsdXN0ZXInfVwiIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKClcIj5DcmVhdGUgQ2x1c3RlcjwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIHNob3dVc2VyXCIgY2xhc3M9XCJtdC0zXCI+VXNlciA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgdmFsaWRhdGVkVXNlcjtsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmdcclxuICAgICAgICAgICAgICAgICAgICBmb3IgaXNu4oCZdCBhdmFpbGFibGUsIDxhIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKCk7Y29uZmlybVVzZXJwb3B1cCgpXCI+T25ib2FyZCBVc2VyczwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIHNob3dJbmFjdGl2ZVwiIGNsYXNzPVwibXQtM1wiPlN0b3JlIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdG9yZSBvZiBpbmFjdGl2ZVN0b3JlcztsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmdcclxuICAgICAgICAgICAgICAgICAgICBmb3IgaXMgaW5hY3RpdmUsIDxhIHJvdXRlckxpbms9XCIvbWFuYWdlL3N0b3Jlc1wiIFtxdWVyeVBhcmFtc109XCJ7dHlvZTogJ3N0b3Jlcyd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsb3NlYWN0aXZlcG9wdXAoKVwiPk9uYm9hcmQgU3RvcmVzPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXhjZWxFcnJvclwiIGNsYXNzPVwiZmxleC1jb2x1bW4gbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1oZWFkaW5nIGZ3LWJvbGRcIj5JbnZhbGlkIERldGFpbHMgITwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YnRpdGxlIG10LTVcIj5QbGVhc2UgcHJvdmlkZSBjb3JyZWN0IGFuZCBjb21wbGV0ZSBsYXlvdXQgaW5mb3JtYXRpb24uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC01IHctMTAwIHJvdW5kZWQtMyBib3JkZXItZXJyb3IgbXQtNSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yIG9mIGV4Y2VsRXJyb3I/LmVycm9yOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIhbGFzdCA/ICdtYi0yJyA6ICcnXCIgY2xhc3M9XCJ0ZXh0LWVycm9yXCI+e3tpICsgMX19KSB7e2Vycm9yfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIHRleHQtZW5kIHB0LTBcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgYnRuLWRlZmF1bHQgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhZXhjZWxFcnJvciYmIXNob3dTdG9yZSYmIXNob3dDbHVzdGVyJiYhc2hvd1VzZXImJiFzaG93VGVhbSYmIXNob3dJbmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbWQgcHktNCBidG4tZGVmYXVsdCBtcy0zIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInZhbGlkYXRlRGV0YWlscygpXCI+UHJvY2VlZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZXhjZWxFcnJvcnx8c2hvd1N0b3JlfHxzaG93Q2x1c3Rlcnx8c2hvd1VzZXJ8fHNob3dUZWFtIHx8IHNob3dJbmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBweS0zIGJ0bi1tZCBidG4tZGVmYXVsdCBtcy0zIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwiUmV1cGxvYWQoKTtcIj5SZXVwbG9hZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCIgI2ZpbGUxIHR5cGU9XCJmaWxlXCIgaWQ9XCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMlwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQsJ3JldXBsb2FkJylcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1Vc2VyIGxldC1tb2RlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIG10LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgZC1mbGV4IGZsZXgtY29sdW1uIG10LTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHJvdW5kZWQtNSB3LTQwcHggaC00MHB4IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj48YnI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmcgZnctc2VtaWJvbGQgdy1hdXRvXCI+TmV3IFVzZXIgZm91bmQgaW4gdXBsb2FkZWQgZmlsZTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB0LTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmVBc3NpZ24gbXQtM1wiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMFwiPlRoaXMgQ1NWIGNvbnRhaW5zIGEgbmV3IFVzZXIuIEFkZCBuZXcgVXNlciBpbiB0aGVcclxuICAgICAgICAgICAgICAgICAgICBVc2VyIE1hbmFnZW1lbnQgdW5kZXIgTWFuYWdlIG1lbnUuPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMCB0ZXh0LWVuZCBwdC0wXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgYnRuLWRlZmF1bHQgYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS91c2Vycy9jbGllbnRcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+U2tpcCBOZXcgRW50cmllczwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgcHktNCBidG4tZGVmYXVsdCBtcy0zIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGVsLmNsb3NlKCdjb25maXJtJylcIj5JbnZpdGVcclxuICAgICAgICAgICAgICAgIFNlbGVjdGVkPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
4168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdySCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUc3QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQztBQUN0QyxPQUFPLFFBQVEsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBQ2hELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFPaEMsTUFBTSxPQUFPLDJCQUEyQjtJQTBJNUI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0Q7SUFDQztJQWhKUyxTQUFTLENBQWM7SUFDdEIsVUFBVSxDQUFjO0lBQ25CLFVBQVUsQ0FBTTtJQUNYLGVBQWUsQ0FBTTtJQUNyQixlQUFlLENBQU07SUFDekIsV0FBVyxDQUFNO0lBQzNDLEtBQUssR0FBUSxLQUFLLENBQUM7SUFDbkIsYUFBYSxDQUFNO0lBQ25CLE9BQU8sQ0FBTTtJQUNiLElBQUksR0FBVyxRQUFRLENBQUM7SUFDeEIsR0FBRyxDQUFNO0lBQ1QsVUFBVSxDQUFNO0lBQ2hCLFNBQVMsR0FBUSxFQUFFLENBQUM7SUFDcEIsWUFBWSxHQUFRLEtBQUssQ0FBQztJQUMxQixxQkFBcUIsR0FBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsU0FBUyxHQUFRLEVBQUUsQ0FBQztJQUNwQixNQUFNLEdBQVcsQ0FBQyxDQUFDO0lBQ25CLFlBQVksR0FBUSxDQUFDLENBQUM7SUFDdEIsVUFBVSxDQUFNO0lBQ2hCLElBQUksR0FBUSxDQUFDLENBQUM7SUFDZCxXQUFXLEdBQVcsQ0FBQyxDQUFDO0lBQ3hCLFdBQVcsR0FBUSxFQUFFLENBQUM7SUFDdEIsT0FBTyxHQUFZLElBQUksQ0FBQztJQUN4QixPQUFPLEdBQVksSUFBSSxDQUFDO0lBQ3hCLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFDakIsWUFBWSxHQUFRLENBQUMsQ0FBQztJQUN0QixXQUFXLEdBQVEsRUFBRSxDQUFDO0lBQ3RCLFNBQVMsR0FBUSxDQUFDLENBQUM7SUFDbkIsT0FBTyxHQUFRLENBQUMsQ0FBQztJQUNqQixZQUFZLENBQU07SUFDbEIsY0FBYyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsUUFBUSxHQUFRLEVBQUUsQ0FBQztJQUNuQixhQUFhLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLFNBQVMsR0FBWSxJQUFJLENBQUM7SUFDMUIsUUFBUSxDQUFNO0lBQ2QsSUFBSSxHQUFXLENBQUMsQ0FBQztJQUNqQixVQUFVLENBQU07SUFDaEIsU0FBUyxHQUFZLElBQUksQ0FBQztJQUMxQixVQUFVLENBQU07SUFDaEIsV0FBVyxDQUFVO0lBQ3JCLFNBQVMsR0FBUSxFQUFFLENBQUM7SUFDcEIsYUFBYSxHQUFZLElBQUksQ0FBQztJQUM5QixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixTQUFTLENBQU07SUFDZixPQUFPLENBQU07SUFDYixXQUFXLENBQU07SUFDakIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixhQUFhLEdBQVksS0FBSyxDQUFDO0lBQy9CLFdBQVcsR0FBUSxFQUFFLENBQUM7SUFDdEIsWUFBWSxHQUFVLEVBQUUsQ0FBQztJQUN6QixjQUFjLEdBQVksS0FBSyxDQUFDO0lBQ2hDLGNBQWMsR0FBYSxFQUFFLENBQUM7SUFDOUIsU0FBUyxHQUFXLEVBQUUsQ0FBQztJQUN2QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLGVBQWUsR0FBWSxJQUFJLENBQUM7SUFDaEMsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLGFBQWEsQ0FBTTtJQUNuQixJQUFJLENBQU07SUFDVixRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ25CLGVBQWUsQ0FBUztJQUN4QixVQUFVLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLFNBQVMsR0FBWSxJQUFJLENBQUM7SUFDMUIsZ0JBQWdCLEdBQVksS0FBSyxDQUFDO0lBQ2xDLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFDM0IsV0FBVyxHQUFZLElBQUksQ0FBQztJQUM1QixVQUFVLEdBQVcsRUFBRSxDQUFDO0lBQ3hCLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDOUIsWUFBWSxHQUFRLEVBQUUsQ0FBQztJQUN2QixLQUFLLEdBQWEsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtJQUNwRixnQkFBZ0IsR0FBUSxFQUFFLENBQUM7SUFDM0IsaUJBQWlCLENBQU07SUFDdkIsWUFBWSxDQUFNO0lBQ2xCLGVBQWUsQ0FBTTtJQUNyQixVQUFVLENBQU07SUFDaEIsUUFBUSxDQUFNO0lBQ2QsVUFBVSxHQUFRLEVBQUUsQ0FBQztJQUNyQixVQUFVLEdBQVEsRUFBRSxDQUFDO0lBQ3JCLFFBQVEsR0FBUSxFQUFFLENBQUM7SUFDbkIsT0FBTyxHQUFZLElBQUksQ0FBQztJQUN4QixPQUFPLEdBQVksSUFBSSxDQUFDO0lBQ3hCLGNBQWMsR0FBWSxJQUFJLENBQUM7SUFDL0IsYUFBYSxDQUFNO0lBQ25CLFlBQVksQ0FBTTtJQUNsQixXQUFXLENBQU07SUFDakIsWUFBWSxDQUFNO0lBQ2xCLFdBQVcsQ0FBTTtJQUNqQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLGVBQWUsR0FBWSxLQUFLLENBQUM7SUFDekIsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDL0IsUUFBUSxHQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsT0FBTyxHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsVUFBVSxHQUFZLElBQUksQ0FBQztJQUMzQixzQkFBc0IsR0FBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkQsNEJBQTRCLEdBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxrQkFBa0IsR0FBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLGVBQWUsR0FBUSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUNwRSxrQkFBa0IsQ0FBTTtJQUN4QixjQUFjLENBQU07SUFDcEIsdUJBQXVCLEdBQWEsRUFBRSxDQUFDO0lBQ3ZDLHNCQUFzQixDQUFNO0lBQzVCLG9CQUFvQixHQUFhLEVBQUUsQ0FBQztJQUNwQyxxQkFBcUIsQ0FBTTtJQUMzQixpQkFBaUIsQ0FBTTtJQUN2QixlQUFlLENBQU07SUFDckIsdUJBQXVCLENBQU07SUFDN0IsY0FBYyxDQUFNO0lBQ3BCLFFBQVEsQ0FBTTtJQUNkLFlBQVksR0FBUSxVQUFVLENBQUM7SUFDL0IsVUFBVSxDQUFNO0lBQ2hCLGlCQUFpQixDQUFNO0lBQ3ZCLGVBQWUsQ0FBTTtJQUNyQixnQkFBZ0IsQ0FBTTtJQUN0QixjQUFjLENBQU07SUFDcEIsY0FBYyxDQUFNO0lBQ3BCLGtCQUFrQixHQUFRLEtBQUssQ0FBQztJQUNoQyxrQkFBa0IsR0FBVyxDQUFDLENBQUM7SUFDL0IsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkMsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLFVBQVUsR0FBUSxHQUFHLENBQUM7SUFDdEIsZUFBZSxHQUFZLElBQUksQ0FBQztJQUNoQyxrQkFBa0IsR0FBWSxJQUFJLENBQUM7SUFDbkMsYUFBYSxHQUFRLEdBQUcsQ0FBQztJQUN6QixvQkFBb0IsR0FBWSxLQUFLLENBQUM7SUFDdEMsaUJBQWlCLEdBQVEsSUFBSSxDQUFDO0lBQzlCLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsbUJBQW1CLEdBQVksS0FBSyxDQUFDO0lBQ3JDLG1CQUFtQixHQUFhLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUUsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixRQUFRLEdBQWEsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqRSxVQUFVLEdBQWEsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRSxXQUFXLEdBQWEsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRSxhQUFhLEdBQVksS0FBSyxDQUFDO0lBQy9CLHVCQUF1QjtJQUN2QixZQUNVLGNBQWlDLEVBQ2pDLE1BQXNCLEVBQ3RCLEtBQWEsRUFDYixNQUFnQixFQUNoQixVQUF1QixFQUN2QixLQUFtQixFQUNwQixFQUFzQixFQUNyQixRQUF5QjtRQVB6QixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQUN2QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ3BCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQy9CLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksUUFBUSxFQUFFLFFBQVEsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7U0FDbkM7UUFDRCxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUM3QixZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUMvQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUU7WUFDM0IsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3pCLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQy9DLENBQUM7WUFDRixjQUFjLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7U0FDakQ7UUFDRCxJQUFJLGNBQWMsRUFBRSxNQUFNLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMzQyxJQUFJLE1BQU0sRUFBRSxXQUFXLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxHQUFHLEdBQUc7d0JBQ1QsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO3dCQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7cUJBQ3hCLENBQUM7b0JBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO29CQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztvQkFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDakQ7cUJBQU0sSUFBSSxNQUFNLEVBQUUsYUFBYSxFQUFFO29CQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztvQkFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRzt3QkFDVCxFQUFFLEVBQUUsTUFBTSxDQUFDLGFBQWE7d0JBQ3hCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtxQkFDeEIsQ0FBQztvQkFDRixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sRUFBRSxhQUFhLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztvQkFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUN4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2lCQUNqRDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztvQkFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRzt3QkFDVCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7d0JBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtxQkFDeEIsQ0FBQztvQkFDRixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7aUJBQ3pCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9ELHNCQUFzQjtTQUN2QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQzFCLGlFQUFpRSxDQUNsRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDM0I7Z0JBQ0UsS0FBSyxFQUFFLFlBQVk7Z0JBQ25CLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFdBQVcsRUFBRSxLQUFLO2FBQ25CO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLFlBQVk7Z0JBQ25CLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFdBQVcsRUFBRSxJQUFJO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxhQUFhO1lBQ2hCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVCLFNBQVMsQ0FDUixDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFO29CQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDO29CQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO29CQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7b0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO29CQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO29CQUMxRCxJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVU7d0JBQ3ZELEVBQUUsTUFBTSxFQUNWO3dCQUNBLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO3FCQUN4QjtvQkFDRCxJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFVBQVU7d0JBQ3pELEVBQUUsTUFBTSxFQUNWO3dCQUNBLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7cUJBQ2pDO29CQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTt3QkFDN0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7cUJBQ3pCO29CQUNELDhGQUE4RjtvQkFDOUYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2hDLG1GQUFtRjtvQkFDbkYsSUFBSSxDQUFDLFdBQVc7d0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDO29CQUN2RCxtRkFBbUY7b0JBQ25GLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTO3dCQUMxRCxFQUFFLE1BQU07d0JBQ1IsQ0FBQyxDQUFDLElBQUk7d0JBQ04sQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDVixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsU0FBUzt3QkFDekQsRUFBRSxNQUFNO3dCQUNSLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNWOzRCQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxNQUFNO3lCQUMxRCxFQUNELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNaO3dCQUNELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUVSLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUU7d0JBQ2xELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDeEIsSUFDRSxJQUFJLENBQUMsSUFBSSxDQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUNaLElBQUksQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxDQUMvQyxFQUNELFNBQVMsQ0FDVixHQUFHLENBQUMsRUFDTDs0QkFDQSxJQUFJLGFBQWEsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO2dDQUNuQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dDQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztnQ0FDNUIsSUFDRSxJQUFJLENBQUMsSUFBSSxDQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUNaLElBQUksQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxDQUMvQyxFQUNELFNBQVMsQ0FDVixJQUFJLENBQUMsRUFDTjtvQ0FDQSxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztvQ0FDN0IsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29DQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2lDQUNyQzs0QkFDSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7eUJBQ1A7cUJBQ0Y7b0JBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7b0JBQ2xFLHVFQUF1RTtvQkFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztvQkFDMUQsSUFBSSxDQUFDLFlBQVk7d0JBQ2YsSUFBSSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7b0JBQzVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlO3dCQUM5RCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FDVixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsRUFDakQsUUFBUSxDQUNULENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzt3QkFDakIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztvQkFDWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO3dCQUMvQyxFQUFFLGlCQUFpQjt3QkFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFDbkQsUUFBUSxDQUNULENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzt3QkFDakIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztvQkFDWixJQUFJLENBQUMsVUFBVTt3QkFDYixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsSUFBSSxPQUFPOzRCQUNuRCxDQUFDLENBQUMsS0FBSzs0QkFDUCxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FDM0M7Z0NBQ0MsQ0FBQyxDQUFDLE1BQU07Z0NBQ1IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztvQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFO3dCQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7cUJBQy9EO29CQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFO3dCQUN4RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztxQkFDakU7b0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFO3dCQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7cUJBQ25EO29CQUVELG1FQUFtRTtvQkFDbkUseUVBQXlFO29CQUN6RSxJQUFJO29CQUVKLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFO3dCQUMxRCxJQUFJLENBQUMsY0FBYzs0QkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLElBQUksRUFBRTtnQ0FDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLElBQUksSUFBSTtnQ0FDekQsQ0FBQyxDQUFDLElBQUk7Z0NBQ04sQ0FBQyxDQUFDLEtBQUssQ0FBQzt3QkFDWixJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxJQUFJLEVBQUU7NEJBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxJQUFJLElBQUksRUFDekQ7NEJBQ0EsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQ2xELENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDOzRCQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUc7Z0NBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FDbEQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2dDQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQ2xELENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs2QkFDdkIsQ0FBQzs0QkFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUNsRCxDQUFDLE1BQU0sRUFBRSxDQUFDO3lCQUNaO3dCQUNELElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLElBQUksRUFBRTs0QkFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLElBQUksSUFBSSxFQUN2RDs0QkFDQSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FDaEQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7NEJBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUc7Z0NBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FDaEQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2dDQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQ2hELENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs2QkFDdkIsQ0FBQzs0QkFDRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUNoRCxDQUFDLE1BQU0sRUFBRSxDQUFDO3lCQUNaO3dCQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFOzRCQUMzRCxJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO2dDQUM5QixFQUFFLDBCQUEwQixJQUFJLE1BQU0sRUFDeEM7Z0NBQ0EsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLEtBQUssQ0FDL0QsR0FBRyxDQUNKLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFDYjtvQ0FDQSxJQUFJLENBQUMsU0FBUzt3Q0FDWixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLEtBQUssQ0FDL0QsR0FBRyxDQUNKLENBQUMsQ0FBQyxDQUFDLENBQUM7b0NBQ1AsSUFBSSxDQUFDLFFBQVE7d0NBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSx5QkFBeUIsQ0FBQyxLQUFLLENBQy9ELEdBQUcsQ0FDSixDQUFDLENBQUMsQ0FBQyxDQUFDO29DQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCO3dDQUN4RCxFQUFFLENBQUM7aUNBQ047NkJBQ0Y7NEJBQ0QsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQjtnQ0FDOUIsRUFBRSwwQkFBMEIsSUFBSSxVQUFVLEVBQzVDO2dDQUNBLElBQUksQ0FBQyxjQUFjO29DQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7Z0NBQ3ZELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQzs2QkFDekM7eUJBQ0Y7d0JBRUQsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsSUFBSSxPQUFPOzRCQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQ3BEOzRCQUNBLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDOzRCQUNyQixJQUFJLENBQUMsZ0JBQWdCO2dDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQzt5QkFDakQ7cUJBQ0Y7b0JBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsSUFBSSxTQUFTLEVBQUU7d0JBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVOzZCQUM1RCxnQkFBZ0IsQ0FBQyxZQUFZOzRCQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7aUNBQ1QsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO2lDQUNsRCxNQUFNLEVBQUU7NEJBQ1gsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHOzRCQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQzlDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzs0QkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUM5QyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7eUJBQ3ZCLENBQUM7d0JBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FDOUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztxQkFDWjtvQkFDRCx3QkFBd0I7b0JBQ3hCLDRCQUE0QjtvQkFDNUIsdUJBQXVCO29CQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3RCO2FBQ0Y7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7Z0JBQ3JCLHNDQUFzQzthQUN2QztRQUNILENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVCLFNBQVMsQ0FDUixDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQzNCLElBQ0UsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTTtvQkFDMUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDekM7b0JBQ0EsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDckMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO3dCQUNsQyxRQUFRLEVBQUUsSUFBSTtxQkFDZixDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsSUFDRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVk7b0JBQ3hDLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ3pDO29CQUNBLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7aUJBQ2xEO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFO29CQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEdBQUc7d0JBQ3hELElBQUksRUFBRSxNQUFNO3dCQUNaLElBQUksRUFBRSxDQUFDO3FCQUNSLENBQUM7aUJBQ0g7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUU7b0JBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7aUJBQ3ZEO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFO29CQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUM7d0JBQ3hELEtBQUssQ0FBQztpQkFDVDtnQkFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFO3dCQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO3FCQUM5QztvQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRTt3QkFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDO3FCQUNoRjtvQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRTt3QkFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7cUJBQ3RFO2lCQUNGO2dCQUNELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ2xELElBQUksQ0FBQyxZQUFZO3dCQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7b0JBQ25FLElBQUksQ0FBQyxpQkFBaUI7d0JBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7b0JBQy9ELElBQUksQ0FBQyxlQUFlO3dCQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO29CQUNoRSxJQUFJLENBQUMsY0FBYzt3QkFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztvQkFDN0QsSUFBSSxDQUFDLGNBQWM7d0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUU7d0JBQzlELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsR0FBRzs0QkFDMUQsT0FBTyxFQUFFLEtBQUs7NEJBQ2QsUUFBUSxFQUFFLENBQUM7eUJBQ1osQ0FBQztxQkFDSDtpQkFDRjtnQkFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDeEMsSUFBSSxDQUFDLFlBQVk7d0JBQ2YsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUM7b0JBQ2xFLElBQUksQ0FBQyxpQkFBaUI7d0JBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDO29CQUM5RCxJQUFJLENBQUMsZUFBZTt3QkFDbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUM7b0JBQy9ELElBQUksQ0FBQyxnQkFBZ0I7d0JBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDO29CQUM5RCxJQUFJLENBQUMsY0FBYzt3QkFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUM7b0JBQzVELElBQUksQ0FBQyxrQkFBa0I7d0JBQ3JCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDO29CQUNsRSxJQUFJLENBQUMsa0JBQWtCO3dCQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQztpQkFDdkU7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3RDLElBQUksQ0FBQyxZQUFZO3dCQUNmLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDO29CQUNsRSxJQUFJLENBQUMsaUJBQWlCO3dCQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQztvQkFDOUQsSUFBSSxDQUFDLGVBQWU7d0JBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDO29CQUMvRCxJQUFJLENBQUMsa0JBQWtCO3dCQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLENBQUM7b0JBQzVELElBQUksQ0FBQyxVQUFVO3dCQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7b0JBQ3BELElBQUksQ0FBQyxlQUFlO3dCQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDO29CQUN6RCxJQUFJLENBQUMsYUFBYTt3QkFDaEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQztvQkFDdkQsSUFBSSxDQUFDLG9CQUFvQjt3QkFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixJQUFJLEtBQUssQ0FBQztvQkFDdkUsSUFBSSxDQUFDLGlCQUFpQjt3QkFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixJQUFJLElBQUksQ0FBQztpQkFDcEU7Z0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3pDLElBQUksQ0FBQyxZQUFZO3dCQUNmLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsWUFBWSxJQUFJLFVBQVUsQ0FBQztvQkFDakYsSUFBSSxDQUFDLGlCQUFpQjt3QkFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7b0JBQy9ELElBQUksQ0FBQyxlQUFlO3dCQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztvQkFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTt3QkFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztxQkFDN0M7b0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUU7d0JBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUc7NEJBQ2xELE9BQU8sRUFBRSxLQUFLOzRCQUNkLFNBQVMsRUFBRSxDQUFDO3lCQUNiLENBQUM7cUJBQ0g7b0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUU7d0JBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEdBQUc7NEJBQ3RELE9BQU8sRUFBRSxLQUFLOzRCQUNkLFFBQVEsRUFBRSxDQUFDO3lCQUNaLENBQUM7cUJBQ0g7b0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUU7d0JBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUc7NEJBQ25ELE9BQU8sRUFBRSxLQUFLOzRCQUNkLFNBQVMsRUFBRSxPQUFPOzRCQUNsQixXQUFXLEVBQUUsSUFBSTs0QkFDakIsT0FBTyxFQUFFLE9BQU87NEJBQ2hCLFNBQVMsRUFBRSxJQUFJO3lCQUNoQixDQUFDO3FCQUNIO29CQUNELElBQUksQ0FBQyxvQkFBb0I7d0JBQ3ZCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsSUFBSSxLQUFLLENBQUM7b0JBQzFFLElBQUksQ0FBQyxpQkFBaUI7d0JBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUM7aUJBQ3ZFO2dCQUNELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNwQyxJQUFJLENBQUMsWUFBWTt3QkFDZixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFlBQVksSUFBSSxVQUFVLENBQUM7b0JBQzVFLElBQUksQ0FBQyxpQkFBaUI7d0JBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDO29CQUMxRCxJQUFJLENBQUMsZUFBZTt3QkFDbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUM7b0JBQzNELElBQUksQ0FBQyxjQUFjO3dCQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQztvQkFDeEQsSUFBSSxDQUFDLGNBQWM7d0JBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDO29CQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO3dCQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO3FCQUN4QztvQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRTt3QkFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGVBQWUsR0FBRzs0QkFDbEQsT0FBTyxFQUFFLEtBQUs7NEJBQ2QsUUFBUSxFQUFFLEVBQUU7eUJBQ2IsQ0FBQztxQkFDSDtpQkFDRjtnQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTt3QkFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztxQkFDN0M7b0JBQ0QsSUFBSSxDQUFDLFlBQVk7d0JBQ2YsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxZQUFZLElBQUksVUFBVSxDQUFDO29CQUNqRixJQUFJLENBQUMsaUJBQWlCO3dCQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLGVBQWU7d0JBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDO29CQUNoRSxJQUFJLENBQUMsY0FBYzt3QkFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUM7b0JBQzdELElBQUksQ0FBQyxjQUFjO3dCQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQztvQkFDN0QsSUFBSSxDQUFDLGdCQUFnQjt3QkFDbkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLElBQUksS0FBSyxDQUFDO2lCQUN6RTtnQkFDRCxJQUNFO29CQUNFLGFBQWE7b0JBQ2IsY0FBYztvQkFDZCxZQUFZO29CQUNaLGlCQUFpQjtvQkFDakIsbUJBQW1CO29CQUNuQixzQkFBc0I7b0JBQ3RCLHdCQUF3QjtvQkFDeEIsa0JBQWtCO29CQUNsQixlQUFlO29CQUNmLFVBQVU7b0JBQ1YsZUFBZTtpQkFDaEIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUNyQjtvQkFDQSxJQUFJLENBQUMsa0JBQWtCO3dCQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQztvQkFDM0QsSUFBSSxDQUFDLGtCQUFrQjt3QkFDckIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPOzRCQUM1RCxLQUFLLENBQUM7b0JBQ1IsSUFBSSxDQUFDLGNBQWM7d0JBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxXQUFXOzRCQUNwRCxFQUFFLGVBQWUsSUFBSSxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyx1QkFBdUI7d0JBQzFCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxjQUFjOzRCQUN2RCxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0I7d0JBQ3pCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxjQUFjLElBQUksRUFBRSxDQUFDO29CQUNsRSxJQUFJLENBQUMsb0JBQW9CO3dCQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLHFCQUFxQjt3QkFDeEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPOzRCQUM1RCxLQUFLLENBQUM7b0JBQ1IsSUFBSSxDQUFDLGlCQUFpQjt3QkFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUM7b0JBQzlELElBQUksQ0FBQyxlQUFlO3dCQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQztvQkFDNUQsSUFBSSxDQUFDLHVCQUF1Qjt3QkFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLGNBQWM7NEJBQ3ZELEVBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQztvQkFDdkIsSUFBSSxDQUFDLGNBQWM7d0JBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxXQUFXOzRCQUNwRCxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUM7b0JBRXZCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFO3dCQUMzRSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7cUJBQzVEO3lCQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFO3dCQUNuRixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7cUJBQzdEO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDN0Q7aUJBQ0Y7Z0JBQ0QsZ0RBQWdEO2dCQUNoRCw2REFBNkQ7Z0JBQzdELG9EQUFvRDtnQkFDcEQsdURBQXVEO2dCQUN2RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO2dCQUNyQixzQ0FBc0M7YUFDdkM7UUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBUyxFQUFFLE1BQVk7UUFDcEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTSxFQUFFO1lBQzdELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLHNCQUFzQjtZQUN0QixrSUFBa0k7WUFDbEksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ2pDO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFZO1FBQ3ZCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUU7WUFDN0IsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNO2dCQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFDeEI7Z0JBQ0EsS0FBSyxFQUFFLENBQUM7YUFDVDtZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUM5RCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDckMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FDOUMsQ0FBQztnQkFDRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7b0JBQ25CLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ3ZCLEtBQUssRUFBRSxDQUFDO3FCQUNUO3lCQUFNO3dCQUNMLElBQ0UsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7NEJBQzlCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFOzRCQUNuQyxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFDekI7NEJBQ0EsTUFBTSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDOzRCQUN6QyxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7NEJBQ3ZDLEtBQUssRUFBRSxDQUFDO3lCQUNUO3FCQUNGO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLEtBQUssRUFBRTtnQkFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7YUFDM0M7U0FDRjtRQUVELHFHQUFxRztRQUNyRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxFQUFFO1lBQzNCLElBQUksS0FBSyxHQUFHO2dCQUNWLEdBQUcsSUFBSSxDQUFDLFVBQVU7Z0JBQ2xCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNO2FBQzNDLENBQUM7WUFDRixJQUFJLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQzVCLHNEQUFzRDtZQUN0RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksR0FBRztvQkFDTCxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVM7b0JBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFO29CQUN2QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3ZCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztpQkFDZCxDQUFDO2dCQUNGLElBQUksSUFBSSxHQUFHO29CQUNULEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztvQkFDYixHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWE7d0JBQ3BCLENBQUMsQ0FBQzs0QkFDQSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7NEJBQ3ZDLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUzt5QkFDM0I7d0JBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDUixDQUFDO2dCQUNGLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQywyQ0FBMkM7Z0JBQzNFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMxQixXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGtEQUFrRDtpQkFDL0U7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDckM7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUMxRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU07WUFDckIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQzNDLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDL0I7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNmO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVTtRQUNsQixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDaEI7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkMsQ0FBQztJQUNELFNBQVM7UUFDUCxvQ0FBb0M7UUFDcEMsMkNBQTJDO0lBQzdDLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxDQUFDO1FBQ04sQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxpREFBaUQ7UUFDckUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBVTtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksc0JBQXNCLEVBQUU7WUFDakUsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLDREQUE0RDtZQUM1RCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3JDO2FBQU0sSUFDTCxJQUFJLENBQUMsSUFBSSxJQUFJLG1CQUFtQjtZQUNoQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUN4RCxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUN6RDtZQUNBLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQzFCOztZQUFNLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRLEdBQVEsT0FBTyxDQUFDO0lBRXhCLFdBQVcsQ0FBQyxJQUFTLEVBQUUsTUFBWTtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7YUFBTSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQztZQUNsRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1lBQ2hFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ1Y7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFNBQVMsQ0FBTTtJQUNmLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFN0IsWUFBWSxDQUFDLEtBQVUsRUFBRSxRQUFjO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QyxJQUFJLElBQVMsQ0FBQztRQUNkLE1BQU0sTUFBTSxHQUErQixLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3hELElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0QsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksZUFBZSxHQUFZLEtBQUssQ0FBQztRQUNyQyxJQUFJLFdBQVcsRUFBRTtZQUNmLE1BQU0sTUFBTSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0JBQ3pCLE1BQU0sSUFBSSxHQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNyQyxNQUFNLEVBQUUsR0FBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDOUQsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxFQUFFLEdBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLElBQ0UsQ0FBQyxJQUFJLENBQUMsTUFBTTtvQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxhQUFhLElBQUksSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsRUFDckU7b0JBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsNkJBQTZCLENBQUMsQ0FBQztvQkFDeEQsT0FBTztpQkFDUjtnQkFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYTtvQkFDckMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUM7b0JBQ3hDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtnQkFDeEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWE7b0JBQ3JDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUM7b0JBQ3ZCLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFFMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUN0QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMvQixNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FDbkIsQ0FBQztvQkFDRixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQ2xDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQ2xFLENBQUM7b0JBQ0YsT0FBTyxlQUFlLElBQUksaUJBQWlCLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsNkJBQTZCLENBQUMsQ0FBQztvQkFDeEQsT0FBTztpQkFDUjtnQkFFRCxxQ0FBcUM7Z0JBQ3JDLDRRQUE0UTtnQkFDNVEsS0FBSztnQkFFTCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEtBQVUsRUFBRSxFQUFFO29CQUN4QyxJQUFJLE9BQU8sRUFBRSxTQUFTLEVBQUU7d0JBQ3RCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3FCQUMzRDtvQkFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7d0JBQ3RCLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7NEJBQ2pFLEtBQUssQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3lCQUNqRDt3QkFDRCxJQUFJLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFOzRCQUMvRCxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQzt5QkFDaEQ7d0JBQ0QsSUFBSSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTs0QkFDakUsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7eUJBQ2pEO3dCQUNELElBQ0UsT0FBTyxFQUFFLFNBQVM7NEJBQ2xCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQ3RCLGlEQUFpRCxDQUNsRCxFQUNEOzRCQUNBLEtBQUssQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3lCQUNqRDt3QkFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUU7NEJBQ3ZCLElBQ0UsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dDQUNqQyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksRUFDM0I7Z0NBQ0EsS0FBSyxDQUFDLElBQUksQ0FBQywwQkFBMEIsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ25EO3lCQUNGO3FCQUNGO3lCQUFNLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUU7d0JBQ25ELElBQUksT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7NEJBQy9ELEtBQUssQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3lCQUNoRDt3QkFDRCxJQUFJLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFOzRCQUNqRSxLQUFLLENBQUMsSUFBSSxDQUFDLHdCQUF3QixLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQzt5QkFDakQ7d0JBQ0QsSUFDRSxPQUFPLEVBQUUsU0FBUzs0QkFDbEIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FDdEIsaURBQWlELENBQ2xELEVBQ0Q7NEJBQ0EsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7eUJBQ2pEO3dCQUNELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTs0QkFDcEIsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtnQ0FDOUQsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ2hEO3lCQUNGO3FCQUNGO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLDZCQUE2QixDQUFDLENBQUM7d0JBQ3hELGVBQWUsR0FBRyxJQUFJLENBQUM7cUJBQ3hCO29CQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTt3QkFDdEIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLE9BQU8sRUFBRTs0QkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0NBQ2pCLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtnQ0FDckMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dDQUNuQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUU7Z0NBQ3BELFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUztnQ0FDN0IscURBQXFEO2dDQUNyRCxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUk7Z0NBQ25CLElBQUksRUFBRSxPQUFPOzZCQUNkLENBQUMsQ0FBQzt5QkFDSjs2QkFBTTs0QkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQ0FDakIsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO2dDQUNyQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0NBQ25DLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRTtnQ0FDcEQsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXO2dDQUNqQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVM7Z0NBQzdCLHFEQUFxRDtnQ0FDckQsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJO2dDQUNuQixJQUFJLEVBQUUsU0FBUzs2QkFDaEIsQ0FBQyxDQUFDO3lCQUNKO3FCQUNGO3lCQUFNLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTt3QkFDNUIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLE1BQU0sRUFBRTs0QkFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0NBQ2pCLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQ0FDbkMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFO2dDQUNwRCxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVM7Z0NBQzdCLHFEQUFxRDtnQ0FDckQsSUFBSSxFQUFFLE1BQU07NkJBQ2IsQ0FBQyxDQUFDO3lCQUNKOzZCQUFNOzRCQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dDQUNqQixRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0NBQ25DLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRTtnQ0FDcEQsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRO2dDQUMzQixTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVM7Z0NBQzdCLHFEQUFxRDtnQ0FDckQsSUFBSSxFQUFFLE9BQU87NkJBQ2QsQ0FBQyxDQUFDO3lCQUNKO3FCQUNGO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDekIsTUFBTSxZQUFZLEdBQUc7d0JBQ25CLFdBQVcsRUFBRSxLQUFLO3dCQUNsQixRQUFRLEVBQUUsMC9CQUEwL0I7d0JBQ3BnQyxLQUFLLEVBQUUsa0JBQWtCO3dCQUN6QixPQUFPLEVBQUUsd0RBQXdEO3dCQUNqRSxVQUFVLEVBQUUsT0FBTzt3QkFDbkIsS0FBSyxFQUFFLEtBQUs7cUJBQ2IsQ0FBQztvQkFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUNoQyxPQUFPO2lCQUNSO3FCQUFNO29CQUNMLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDN0M7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2lCQUN6QztnQkFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7aUJBQzFDO1lBQ0gsQ0FBQyxDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzthQUN6QztZQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzthQUMxQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDekQ7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsR0FBUztRQUMzQixJQUFJLE1BQU0sR0FBRztZQUNYLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUNwQixhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDNUIsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUNGLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSTtnQkFDWixDQUFDLHNCQUFzQixFQUFFLG1CQUFtQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUNyRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJO2dCQUNmLENBQUMsQ0FBQyxFQUFFO1lBQ1IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQzthQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QixTQUFTLENBQ1IsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNYLElBQUksUUFBUSxHQUFZLElBQUksQ0FBQztZQUM3QixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtvQkFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQ3RCLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLENBQzdELENBQUM7b0JBQ0YsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO3FCQUN6QztvQkFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7d0JBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7cUJBQzFDO29CQUNELE9BQU87aUJBQ1I7cUJBQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztvQkFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO29CQUNsQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3JDO3FCQUFNO29CQUNMLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFO3dCQUM1QixJQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDN0Qsa0RBQWtEO3dCQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsdUJBQXVCLENBQ2pELENBQUM7d0JBQ0YsT0FBTztxQkFDUjt5QkFBTSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7d0JBQzlELFFBQVEsR0FBRyxLQUFLLENBQUM7d0JBQ2pCLElBQUksWUFBWSxDQUFDO3dCQUNqQixJQUFJLEtBQUssR0FBUSxFQUFFLENBQUM7d0JBQ3BCLElBQUksUUFBUSxHQUFRLEVBQUUsQ0FBQzt3QkFDdkIsSUFBSSxhQUFhLEdBQVEsRUFBRSxDQUFDO3dCQUM1QixLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7NEJBQzFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7d0JBQzVCLENBQUMsQ0FBQyxDQUFDO3dCQUVILGFBQWEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTs0QkFDbEQsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLG1CQUFtQixDQUFDO3dCQUM3QyxDQUFDLENBQUMsQ0FBQzt3QkFFSCxvREFBb0Q7d0JBQ3BELHNFQUFzRTt3QkFDdEUsTUFBTTt3QkFFTixLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzNELGFBQWEsR0FBRzs0QkFDZCxHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt5QkFDekQsQ0FBQzt3QkFDRixRQUFRLEdBQUc7NEJBQ1QsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7eUJBQ3BELENBQUM7d0JBQ0YsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFOzRCQUNoQixJQUFJLEtBQUssR0FBRyxrQ0FBa0MsQ0FBQzs0QkFDL0MsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFO2dDQUN4QixLQUFLLEdBQUcscURBQXFELENBQUM7NkJBQy9EOzRCQUNELFlBQVksR0FBRztnQ0FDYixXQUFXLEVBQUUsS0FBSztnQ0FDbEIsUUFBUSxFQUFFLEVBQUU7Z0NBQ1osS0FBSyxFQUFFLEtBQUs7Z0NBQ1osT0FBTyxFQUFFLDBGQUEwRjtnQ0FDbkcsVUFBVSxFQUFFLFVBQVU7Z0NBQ3RCLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQ0FDMUIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0NBQ3pCLGNBQWMsRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFOzZCQUNyQyxDQUFDO3lCQUNIOzZCQUFNLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRTs0QkFDL0IsWUFBWSxHQUFHO2dDQUNiLFdBQVcsRUFBRSxLQUFLO2dDQUNsQixRQUFRLEVBQ04sMC9CQUEwL0I7Z0NBQzUvQixLQUFLLEVBQUUsdUNBQXVDO2dDQUM5QyxPQUFPLEVBQUUsdUZBQXVGO2dDQUNoRyxVQUFVLEVBQUUsYUFBYTtnQ0FDekIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzZCQUNuQyxDQUFDO3lCQUNIOzZCQUFNO3lCQUNOO3dCQUNELElBQUksWUFBWSxFQUFFOzRCQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQ0FDckQsUUFBUSxFQUFFLElBQUk7Z0NBQ2QsSUFBSSxFQUFFLElBQUk7Z0NBQ1YsUUFBUSxFQUFFLFFBQVE7NkJBQ25CLENBQUMsQ0FBQzs0QkFDSCxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQzs0QkFDaEQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQ0FDL0IsSUFBSSxNQUFNLElBQUksY0FBYyxFQUFFO29DQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2lDQUMzRDtnQ0FDRCxJQUFJLE1BQU0sSUFBSSxhQUFhLEVBQUU7b0NBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2lDQUMzQztnQ0FDRCxRQUFRLEdBQUcsSUFBSSxDQUFDO2dDQUNoQixJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUU7b0NBQ3BCLElBQUksWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0NBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO29DQUNuQixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7d0NBQ2pDLElBQ0UsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7NENBQy9CLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQ3ZDOzRDQUNBLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3lDQUMxQjtvQ0FDSCxDQUFDLENBQUMsQ0FBQztvQ0FFSCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7d0NBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7d0NBQ3ZELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTs0Q0FDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzt5Q0FDekM7d0NBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFOzRDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO3lDQUMxQzt3Q0FDRCxPQUFPO3FDQUNSO29DQUNELElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNqQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDOUIsQ0FBQztvQ0FDRixJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQ0FDOUIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO29DQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7d0NBQ3pCLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7NENBQ3hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt5Q0FDMUI7b0NBQ0gsQ0FBQyxDQUFDLENBQUM7b0NBQ0gsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7d0NBQ3hCLFlBQVksR0FBRzs0Q0FDYixXQUFXLEVBQUUsS0FBSzs0Q0FDbEIsUUFBUSxFQUNOLDAvQkFBMC9COzRDQUM1L0IsS0FBSyxFQUFFLCtCQUErQjs0Q0FDdEMsT0FBTyxFQUFFLG1FQUFtRTs0Q0FDNUUsVUFBVSxFQUFFLFFBQVE7NENBQ3BCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUk7eUNBQ3BCLENBQUM7d0NBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7NENBQ3JELFFBQVEsRUFBRSxJQUFJOzRDQUNkLElBQUksRUFBRSxJQUFJOzRDQUNWLFFBQVEsRUFBRSxRQUFRO3lDQUNuQixDQUFDLENBQUM7d0NBQ0gsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7d0NBQ2hELFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7NENBQy9CLElBQ0UsTUFBTSxFQUFFLE9BQU8sSUFBSSxTQUFTO2dEQUM1QixNQUFNLElBQUksTUFBTSxFQUNoQjtnREFDQSxJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUU7b0RBQ3BCLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29EQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztvREFDbkIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO3dEQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7NERBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3lEQUMxQjtvREFDSCxDQUFDLENBQUMsQ0FBQztpREFDSjtxREFBTTtvREFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO3dEQUNqQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FDakMsQ0FBQyxJQUFTLEVBQUUsRUFBRTs0REFDWixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQzt3REFDMUMsQ0FBQyxDQUNGLENBQUM7d0RBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7NERBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzt5REFDaEM7b0RBQ0gsQ0FBQyxDQUFDLENBQUM7b0RBQ0gsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTt3REFDOUIsSUFBSSxJQUFJLEVBQUUsT0FBTyxFQUFFOzREQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDdEIsR0FBRyxJQUFJLENBQUMsU0FBUyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FDdEMsQ0FBQzs0REFDRixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0VBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7NkRBQ3pDOzREQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnRUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzs2REFDMUM7NERBQ0QsUUFBUSxHQUFHLEtBQUssQ0FBQzs0REFDakIsT0FBTzt5REFDUjtxREFDRjtpREFDRjtnREFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7b0RBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUN0Qiw0QkFBNEIsQ0FDN0IsQ0FBQztvREFDRixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7d0RBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7cURBQ3pDO29EQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTt3REFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztxREFDMUM7b0RBQ0QsT0FBTztpREFDUjtnREFDRCxJQUFJLFFBQVEsRUFBRTtvREFDWixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7b0RBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7aURBQ3RCOzZDQUNGO3dDQUNILENBQUMsQ0FBQyxDQUFDO3FDQUNKO3lDQUFNO3dDQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzt3Q0FDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQ0FDdEI7aUNBQ0Y7NEJBQ0gsQ0FBQyxDQUFDLENBQUM7eUJBQ0o7cUJBQ0Y7eUJBQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO3dCQUM5RCxRQUFRLEdBQUcsS0FBSyxDQUFDO3dCQUNqQixJQUFJLFlBQVksQ0FBQzt3QkFDakIsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFDO3dCQUNwQixJQUFJLFFBQVEsR0FBUSxFQUFFLENBQUM7d0JBQ3ZCLElBQUksYUFBYSxHQUFRLEVBQUUsQ0FBQzt3QkFDNUIsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7NEJBQzNCLFlBQVksR0FBRztnQ0FDYixXQUFXLEVBQUUsS0FBSztnQ0FDbEIsUUFBUSxFQUNOLDAvQkFBMC9CO2dDQUM1L0IsS0FBSyxFQUFFLCtCQUErQjtnQ0FDdEMsT0FBTyxFQUFFLG1FQUFtRTtnQ0FDNUUsVUFBVSxFQUFFLFFBQVE7Z0NBQ3BCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUk7NkJBQ3BCLENBQUM7eUJBQ0g7NkJBQU07NEJBQ0wsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dDQUMxQyxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDOzRCQUM1QixDQUFDLENBQUMsQ0FBQzs0QkFFSCxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0NBQ2xELE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQzs0QkFDN0MsQ0FBQyxDQUFDLENBQUM7NEJBRUgsb0RBQW9EOzRCQUNwRCwrQkFBK0I7NEJBQy9CLE1BQU07NEJBRU4sS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUMzRCxhQUFhLEdBQUc7Z0NBQ2QsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7NkJBQ3pELENBQUM7NEJBQ0YsUUFBUSxHQUFHO2dDQUNULEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOzZCQUNwRCxDQUFDOzRCQUNGLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtnQ0FDaEIsSUFBSSxLQUFLLEdBQUcsa0NBQWtDLENBQUM7Z0NBQy9DLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRTtvQ0FDeEIsS0FBSyxHQUFHLHFEQUFxRCxDQUFDO2lDQUMvRDtnQ0FDRCxZQUFZLEdBQUc7b0NBQ2IsV0FBVyxFQUFFLEtBQUs7b0NBQ2xCLFFBQVEsRUFDTiwwL0JBQTAvQjtvQ0FDNS9CLEtBQUssRUFBRSxLQUFLO29DQUNaLE9BQU8sRUFBRSwwRkFBMEY7b0NBQ25HLFVBQVUsRUFBRSxVQUFVO29DQUN0QixRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0NBQzFCLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFO29DQUN6QixjQUFjLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRTtpQ0FDckMsQ0FBQzs2QkFDSDtpQ0FBTSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUU7Z0NBQy9CLFlBQVksR0FBRztvQ0FDYixXQUFXLEVBQUUsS0FBSztvQ0FDbEIsUUFBUSxFQUNOLDAvQkFBMC9CO29DQUM1L0IsS0FBSyxFQUFFLHVDQUF1QztvQ0FDOUMsT0FBTyxFQUFFLHVGQUF1RjtvQ0FDaEcsVUFBVSxFQUFFLGFBQWE7b0NBQ3pCLFFBQVEsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQ0FDbkMsQ0FBQzs2QkFDSDtpQ0FBTTtnQ0FDTCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7b0NBQ25CLElBQUksWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0NBQ3RDLElBQUksUUFBUSxHQUFRLEVBQUUsQ0FBQztvQ0FDdkIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO3dDQUM3QixJQUFJLE9BQU8sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUM3QixDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQ3hDLENBQUM7d0NBQ0YsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLFNBQVMsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRTs0Q0FDbkQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt5Q0FDckI7b0NBQ0gsQ0FBQyxDQUFDLENBQUM7b0NBQ0gsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO3dDQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDdEIsbUNBQW1DLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNyRCxDQUFDO3dDQUNGLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTs0Q0FDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzt5Q0FDekM7d0NBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFOzRDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO3lDQUMxQzt3Q0FDRCxPQUFPO3FDQUNSO3lDQUFNO3dDQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzt3Q0FDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQ0FDdEI7aUNBQ0Y7NkJBQ0Y7eUJBQ0Y7d0JBQ0QsSUFBSSxZQUFZLEVBQUU7NEJBQ2hCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dDQUNyRCxRQUFRLEVBQUUsSUFBSTtnQ0FDZCxJQUFJLEVBQUUsSUFBSTtnQ0FDVixRQUFRLEVBQUUsUUFBUTs2QkFDbkIsQ0FBQyxDQUFDOzRCQUNILFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDOzRCQUNoRCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dDQUMvQixJQUFJLE1BQU0sSUFBSSxjQUFjLEVBQUU7b0NBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLCtCQUErQixDQUFDLENBQUM7aUNBQzNEO2dDQUNELElBQUksTUFBTSxJQUFJLGFBQWEsRUFBRTtvQ0FDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7aUNBQzNDO2dDQUNELElBQUksTUFBTSxFQUFFLE9BQU8sSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLE1BQU0sRUFBRTtvQ0FDcEQsUUFBUSxHQUFHLElBQUksQ0FBQztvQ0FDaEIsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFO3dDQUNwQixJQUFJLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dDQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQzt3Q0FDbkIsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7NENBQzNCLElBQUksV0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDakMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQzlCLENBQUM7NENBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dEQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7b0RBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lEQUMxQjs0Q0FDSCxDQUFDLENBQUMsQ0FBQzt5Q0FDSjt3Q0FFRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7NENBQ25CLElBQUksUUFBUSxHQUFRLEVBQUUsQ0FBQzs0Q0FDdkIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dEQUM3QixJQUFJLE9BQU8sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUM3QixDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQ3hDLENBQUM7Z0RBQ0YsSUFDRSxPQUFPLENBQUMsSUFBSSxJQUFJLFNBQVM7b0RBQ3pCLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUNsQjtvREFDQSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lEQUNyQjs0Q0FDSCxDQUFDLENBQUMsQ0FBQzs0Q0FDSCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0RBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUN0QixtQ0FBbUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3JELENBQUM7Z0RBQ0YsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO29EQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2lEQUN6QztnREFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7b0RBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7aURBQzFDO2dEQUNELE9BQU87NkNBQ1I7eUNBQ0Y7d0NBRUQsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7NENBQzVCLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnREFDakMsSUFDRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztvREFDL0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDdkM7b0RBQ0EsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aURBQzFCOzRDQUNILENBQUMsQ0FBQyxDQUFDO3lDQUNKO3FDQUNGO3lDQUFNO3dDQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7NENBQ2pDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0RBQ2hELE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDOzRDQUMxQyxDQUFDLENBQUMsQ0FBQzs0Q0FDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnREFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDOzZDQUNoQzt3Q0FDSCxDQUFDLENBQUMsQ0FBQzt3Q0FDSCxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFOzRDQUM5QixJQUFJLElBQUksRUFBRSxPQUFPLEVBQUU7Z0RBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUN0QixHQUFHLElBQUksQ0FBQyxTQUFTLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUN0QyxDQUFDO2dEQUNGLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtvREFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztpREFDekM7Z0RBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO29EQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2lEQUMxQztnREFDRCxRQUFRLEdBQUcsS0FBSyxDQUFDO2dEQUNqQixPQUFPOzZDQUNSO3lDQUNGO3FDQUNGO29DQUNELElBQUksUUFBUSxFQUFFO3dDQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTs0Q0FDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQ3RCLDRCQUE0QixDQUM3QixDQUFDOzRDQUNGLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnREFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzs2Q0FDekM7NENBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dEQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDOzZDQUMxQzs0Q0FDRCxPQUFPO3lDQUNSO3dDQUNELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzt3Q0FDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQ0FDdEI7aUNBQ0Y7NEJBQ0gsQ0FBQyxDQUFDLENBQUM7eUJBQ0o7cUJBQ0Y7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO3dCQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7NEJBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7eUJBQ3pDO3dCQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTs0QkFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzt5QkFDMUM7d0JBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDdEI7aUJBQ0Y7YUFDRjtRQUNILENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2FBQ3pDO1lBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2FBQzFDO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQ0YsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjLEdBQVEsRUFBRSxDQUFDO0lBQ3pCLGFBQWEsR0FBUSxFQUFFLENBQUM7SUFDeEIsZ0JBQWdCLEdBQVEsRUFBRSxDQUFDO0lBQzNCLGFBQWEsR0FBUSxFQUFFLENBQUM7SUFDeEIsT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUNsQixjQUFjLEdBQVEsRUFBRSxDQUFDO0lBQ3pCLFlBQVksR0FBUSxLQUFLLENBQUM7SUFFMUIsZUFBZSxDQUFDLE9BQWE7UUFDM0IsSUFBSSxNQUFNLEdBQVE7WUFDaEIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUM1QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUM7UUFDRixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQzthQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzNCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLEVBQUU7d0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzt3QkFDMUQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRTs0QkFDekMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7d0JBQ3pDLENBQUMsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO3dCQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTTs0QkFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7NEJBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO3FCQUNyQjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQzt3QkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7d0JBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7d0JBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7d0JBQzFELElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFOzRCQUN6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQzt3QkFDekMsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7d0JBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQzt3QkFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7d0JBQzFCLElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTTs0QkFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7NEJBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO3FCQUNyQjtvQkFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUMxQjtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQ2hELElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO29CQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsRUFBRSxJQUFJLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxFQUFFLElBQUksQ0FBQztvQkFDaEMsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRTt3QkFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQ3RCLFdBQVcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQ3hFLENBQUM7cUJBQ0g7eUJBQU0sSUFDTCxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU07d0JBQ3ZCLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQzdCO3dCQUNBLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxFQUFFLEtBQUssQ0FBQzt3QkFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7d0JBQ3RCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztxQkFDckI7eUJBQU0sSUFDTCxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU07d0JBQ3ZCLFNBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUM1Qjt3QkFDQSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTTs0QkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFOzRCQUMxQixDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUN0QixXQUFXLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUNuRSxDQUFDO3FCQUNIO3lCQUFNLElBQUksU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUU7d0JBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxFQUFFLGNBQWMsQ0FBQzt3QkFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztxQkFDckI7eUJBQU0sSUFDTCxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU07d0JBQ3ZCLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQzlCO3dCQUNBLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7d0JBQ3JCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLEVBQUU7NEJBQzNCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO3lCQUN6Qjs2QkFBTTs0QkFDTCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7eUJBQ3JCO3FCQUNGO3lCQUFNLElBQ0wsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNO3dCQUN2QixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFDN0I7d0JBQ0EsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQzt3QkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQ3RCLFdBQVcsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQ25FLENBQUM7cUJBQ0g7b0JBQ0QsSUFBSSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTt3QkFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQzt3QkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQ3RCLEdBQUcsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQy9ELENBQUM7cUJBQ0g7aUJBQ0Y7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVcsQ0FBTTtJQUNqQixnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDeEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7U0FDOUQ7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFTO1FBQ2xCLElBQUksSUFBSSxHQUFHO1lBQ1QsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3BCLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUM1QixVQUFVLEVBQUUsSUFBSTtZQUNoQixPQUFPLEVBQUUsSUFBSTtZQUNiLElBQUksRUFDRixJQUFJLENBQUMsR0FBRyxFQUFFLElBQUk7Z0JBQ1osQ0FBQyxzQkFBc0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDckUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtnQkFDZixDQUFDLENBQUMsRUFBRTtZQUNSLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7YUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUIsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQVMsR0FBUSxFQUFFLENBQUM7SUFDcEIsU0FBUyxHQUFRLEVBQUUsQ0FBQztJQUVwQixpQkFBaUIsQ0FBQyxNQUFZO1FBQzVCLElBQUksSUFBSSxHQUFHO1lBQ1QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVCLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3RCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztnQkFDakMsSUFBSSxJQUFJLEVBQUUsUUFBUSxLQUFLLE9BQU8sRUFBRTtvQkFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztpQkFDL0M7cUJBQU0sSUFBSSxJQUFJLEVBQUUsUUFBUSxLQUFLLE1BQU0sRUFBRTtvQkFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztpQkFDM0M7Z0JBRUQsQ0FBQyxNQUFNO29CQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUNuQixJQUFJLENBQUMsVUFBVSxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLE1BQU07d0JBQ3ZELENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWTt3QkFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3BCLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3JCO29CQUNELENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7YUFDM0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBUztRQUN0QixPQUFPLENBQUMsR0FBRyxDQUNULDJEQUEyRCxFQUMzRCxJQUFJLENBQ0wsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUM5QixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQ3pDLENBQUM7WUFDRixPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQztTQUM5QjthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM1QixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN6RSxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxNQUFNLEdBQUc7WUFDWCxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQzthQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QixTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTTtvQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQzthQUNyQjtZQUNELElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO2dCQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDM0IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FDM0MsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxXQUFXLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLElBQUksRUFBRSxDQUN4RCxDQUFDO29CQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUM1QyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLFdBQVcsS0FBSyxFQUFFLENBQ3BDLENBQUM7aUJBQ0g7cUJBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FDM0MsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxRQUFRLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxRQUFRLElBQUksRUFBRSxDQUN0RCxDQUFDO29CQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUM1QyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsS0FBSyxFQUFFLENBQ2pDLENBQUM7aUJBQ0g7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUMzQyxzQ0FBc0M7Z0JBQ3RDLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztpQkFDL0I7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztpQkFDZjtnQkFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUM5QixDQUFDO2dCQUNGLElBQUksQ0FBQyxTQUFTO29CQUNaLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO29CQUM3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUUvQix5QkFBeUI7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxTQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUU7Z0JBQ3ZELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxPQUFPLEVBQUU7b0JBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUM7d0JBQ2IsU0FBUyxFQUFFLEVBQUU7d0JBQ2IsUUFBUSxFQUFFLEVBQUU7d0JBQ1osU0FBUyxFQUFFLEVBQUU7d0JBQ2IsU0FBUyxFQUFFLEVBQUU7d0JBQ2IsSUFBSSxFQUFFLEVBQUU7cUJBQ1QsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLFNBQVMsQ0FBQyxJQUFJLENBQUM7d0JBQ2IsU0FBUyxFQUFFLEVBQUU7d0JBQ2IsUUFBUSxFQUFFLEVBQUU7d0JBQ1osU0FBUyxFQUFFLEVBQUU7d0JBQ2IsV0FBVyxFQUFFLEVBQUU7d0JBQ2YsU0FBUyxFQUFFLEVBQUU7d0JBQ2IsSUFBSSxFQUFFLEVBQUU7cUJBQ1QsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7WUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQ3BDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxPQUFPLEVBQUU7d0JBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUM7NEJBQ2IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTOzRCQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7NEJBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzs0QkFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTOzRCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7eUJBQ2hCLENBQUMsQ0FBQztxQkFDSjt5QkFBTTt3QkFDTCxTQUFTLENBQUMsSUFBSSxDQUFDOzRCQUNiLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzs0QkFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFROzRCQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7NEJBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVzs0QkFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTOzRCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7eUJBQ2hCLENBQUMsQ0FBQztxQkFDSjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDNUIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFO2dCQUN2RCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTSxFQUFFO29CQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDO3dCQUNiLFFBQVEsRUFBRSxFQUFFO3dCQUNaLFNBQVMsRUFBRSxFQUFFO3dCQUNiLFNBQVMsRUFBRSxFQUFFO3FCQUNkLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxTQUFTLENBQUMsSUFBSSxDQUFDO3dCQUNiLFFBQVEsRUFBRSxFQUFFO3dCQUNaLFNBQVMsRUFBRSxFQUFFO3dCQUNiLFFBQVEsRUFBRSxFQUFFO3dCQUNaLFNBQVMsRUFBRSxFQUFFO3FCQUNkLENBQUMsQ0FBQztpQkFDSjthQUNGO1lBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUNwQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTSxFQUFFO3dCQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDOzRCQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTs0QkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTOzRCQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7eUJBQzFCLENBQUMsQ0FBQztxQkFDSjt5QkFBTTt3QkFDTCxTQUFTLENBQUMsSUFBSSxDQUFDOzRCQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTs0QkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTOzRCQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7NEJBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzt5QkFDMUIsQ0FBQyxDQUFDO3FCQUNKO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQy9CLFNBQVMsRUFDVCxhQUFhLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxTQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEYsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNoRixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUM7b0JBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRTtvQkFDNUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRTtpQkFDNUIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjthQUFNO1lBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDYixLQUFLLEVBQUUsRUFBRTtnQkFDVCxLQUFLLEVBQUUsRUFBRTthQUNWLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQVU7UUFDOUIsTUFBTSxNQUFNLEdBQStCLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFFbEIsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQzlELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN4QixPQUFPO1NBQ1I7UUFFRCxNQUFNLE1BQU0sR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDekIsTUFBTSxJQUFJLEdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDckMsTUFBTSxFQUFFLEdBQWtCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDOUQsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLEVBQUUsR0FBbUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxNQUFNLElBQUksR0FBVSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVqRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztnQkFDcEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUN4QixPQUFPO2FBQ1I7WUFFRCxrREFBa0Q7WUFDbEQsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztZQUNyQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQzNDLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hFLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hFLElBQUksT0FBTztvQkFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUM3QixJQUFJLE9BQU87b0JBQUUsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDN0IsT0FBTyxPQUFPLElBQUksT0FBTyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1lBRUgsMkRBQTJEO1lBQzNELElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7Z0JBQ3hFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsT0FBTzthQUNSO1lBRUQsd0RBQXdEO1lBQ3hELElBQUksWUFBWSxHQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLFFBQVEsRUFBRTtnQkFDWixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQy9CLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2xFLElBQUksU0FBUyxFQUFFO3dCQUNiLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO3dCQUNqRyxJQUFJLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFOzRCQUNsRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3lCQUMxQjtxQkFDRjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsMkRBQTJEO1lBQzNELElBQUksWUFBWSxHQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLFFBQVEsRUFBRTtnQkFDWixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQy9CLElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2pFLElBQUksUUFBUSxFQUFFO3dCQUNaLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO3dCQUMvRixJQUFJLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFOzRCQUNoRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3lCQUMxQjtxQkFDRjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUNoRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLCtDQUErQyxDQUFDLENBQUM7YUFDbEY7WUFFRCxvREFBb0Q7WUFDcEQsSUFBSSxPQUFPLEdBQWEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzRixJQUFJLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEI7WUFDRCxJQUFJLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdkI7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBRXRFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7WUFDNUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztZQUM1RSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRTFCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQiwwQkFBMEI7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDL0I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQzthQUNmO1lBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDOUIsQ0FBQztZQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQzNFO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUM5QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDM0U7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQzVDLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDdkM7WUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUM5QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDM0U7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQzlCLENBQUM7WUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQztTQUMzRTtJQUNILENBQUM7SUFFRCxRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMzQyxDQUFDO0lBRUQsV0FBVyxDQUFNO0lBQ2pCLGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksV0FBVyxHQUFRO1lBQ3JCLFdBQVc7WUFDWCxVQUFVO1lBQ1YsV0FBVztZQUNYLGFBQWE7WUFDYixVQUFVO1NBQ1gsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTTtnQkFDdkQsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7YUFBTTtZQUNMLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbEQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUN2RCxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FDOUIsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQzFDLENBQ0YsQ0FDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDL0I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQzthQUNmO1lBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDOUIsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUU7WUFDdEMsT0FBTyxDQUNMLE1BQU07Z0JBQ04sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUNuRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVLEVBQUUsS0FBVSxFQUFFLE9BQVk7UUFDN0MsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3hCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQ2xFLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FDbEMsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakU7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN2RCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQzFFO1lBQ0EsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQVU7UUFDakIsdURBQXVEO1FBQ3ZELElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUNwQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQ3JDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUNsRSxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQzNCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsSUFBSSxPQUFPO1lBQ3JELEtBQUssRUFBRSxZQUFZLEVBQ25CO1lBQ0EsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUM1QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxJQUFJLFNBQVM7Z0JBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3hELEtBQUssQ0FBQyxTQUFTLENBQ2hCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNwQjtnQkFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUMzRCxLQUFLLENBQUMsU0FBUyxDQUNoQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN4QjtTQUNGO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxJQUFJLFNBQVM7Z0JBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWTtvQkFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7aUJBQzdDO2dCQUNILElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZTtvQkFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7YUFDcEQ7U0FDRjtRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQ2xELENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQ2xELENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUN2QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FDbEQsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsSUFBSSxPQUFPLEVBQUU7WUFDeEQsSUFDRSxLQUFLLEVBQUUsU0FBUztnQkFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLFNBQVMsRUFDbkU7Z0JBQ0EsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQ2pEO3FCQUNFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO3FCQUNiLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN6QjtZQUNELElBQUksQ0FBQyxlQUFlLEdBQUc7Z0JBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FDaEQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2dCQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQ2hELENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzthQUN2QixDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQ0UsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQ25FO2dCQUNBLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQzthQUNyRDtTQUNGO1FBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7WUFDM0IsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWU7Z0JBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFDOUM7Z0JBQ0EsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhO29CQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQzthQUNwRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN6RCxLQUFLLENBQUMsT0FBTyxDQUNkLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3hCO1lBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRztnQkFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUNoRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FDaEQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ3ZCLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUNsRCxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELDRCQUE0QjtJQUM1Qix5Q0FBeUM7SUFDekMsb1RBQW9UO0lBQ3BULDhDQUE4QztJQUM5QyxrR0FBa0c7SUFFbEcsK0NBQStDO0lBQy9DLGdLQUFnSztJQUNoSyxvRkFBb0Y7SUFDcEYsSUFBSTtJQUNKLHFCQUFxQjtJQUNyQixnRUFBZ0U7SUFDaEUsSUFBSTtJQUNKLE1BQU0sQ0FBQyxHQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDMUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQ3JDLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBQ0QsNEJBQTRCO0lBQzVCLDBCQUEwQjtJQUMxQiwrRUFBK0U7SUFDL0UsNENBQTRDO0lBQzVDLE1BQU07SUFDTixXQUFXO0lBQ1gsOEVBQThFO0lBQzlFLDJDQUEyQztJQUMzQyxpREFBaUQ7SUFDakQsd01BQXdNO0lBQ3hNLE1BQU07SUFDTix3RUFBd0U7SUFFeEUsSUFBSTtJQUNKLHdCQUF3QjtJQUN4QixpRUFBaUU7SUFDakUsSUFBSTtJQUVKLE9BQU8sQ0FBQyxZQUFxQixJQUFJO1FBQy9CLElBQ0UsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FDMUM7WUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQzdCO1lBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsd0NBQXdDLENBQUMsQ0FBQztZQUNuRSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN0RCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztTQUNyRDtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFO1lBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztTQUNwRDtRQUNELElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixJQUFJLE1BQU0sRUFDckU7WUFDQSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QjtnQkFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN4QztRQUNELElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixJQUFJLFVBQVUsRUFDekU7WUFDQSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTtnQkFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztpQkFDakU7Z0JBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMseUNBQXlDLENBQUMsQ0FBQztnQkFDcEUsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsSUFBSSxPQUFPLEVBQUU7WUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLFlBQVksR0FBRztnQkFDakIsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLFFBQVEsRUFBRSx5d0JBQXl3QjtnQkFDbnhCLEtBQUssRUFBRSxvQ0FBb0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLGFBQWE7Z0JBQ3RHLE9BQU8sRUFBRSxxRkFBcUY7Z0JBQzlGLFVBQVUsRUFBRSxTQUFTO2FBQ3RCLENBQUM7WUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDckQsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsUUFBUSxFQUFFLFFBQVE7YUFDbkIsQ0FBQyxDQUFDO1lBQ0gsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7WUFDaEQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxHQUFHLElBQUksU0FBUyxFQUFFO29CQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7d0JBQ3ZDLElBQUksTUFBTSxFQUFFOzRCQUNWLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzt5QkFDdEI7NkJBQU07eUJBQ047b0JBQ0gsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7Z0JBQ3ZDLElBQUksTUFBTSxFQUFFO29CQUNWLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDdEI7cUJBQU07aUJBQ047WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxZQUFxQixJQUFJO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksS0FBSyxPQUFPO1lBQ2pELENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQ2pDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUzQyxJQUNFLElBQUksQ0FBQyxJQUFJLElBQUksc0JBQXNCO1lBQ25DLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsS0FBSyxJQUFJO2dCQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxLQUFLLFNBQVM7Z0JBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEtBQUssRUFBRSxDQUFDLEVBQzlEO1lBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsd0NBQXdDLENBQUMsQ0FBQztZQUNuRSxPQUFPO1NBQ1I7YUFBTSxJQUNMLElBQUksQ0FBQyxJQUFJLElBQUksc0JBQXNCO1lBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUN4RDtZQUNBLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUN0QixrREFBa0QsQ0FDbkQsQ0FBQztZQUNGLE9BQU87U0FDUjtRQUVELElBQ0UsSUFBSSxDQUFDLElBQUksSUFBSSxtQkFBbUI7WUFDaEMsSUFBSSxDQUFDLFdBQVc7WUFDaEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxFQUFFO2dCQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxFQUFFO2dCQUM3RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFDL0Q7WUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1lBQ3pELE9BQU87U0FDUjtRQUNELElBQ0UsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUN2RDtZQUNELENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQ3JEO1lBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsaUNBQWlDLENBQUMsQ0FBQztZQUM1RCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVk7Z0JBQ3pELElBQUksQ0FBQyxZQUFZLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRO2dCQUNyRCxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2dCQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTTtnQkFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSTtnQkFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLE1BQU07Z0JBQ3pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFVBQVU7Z0JBQzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQztTQUMzQjtRQUNELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDL0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFlBQVk7Z0JBQzlELElBQUksQ0FBQyxZQUFZLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFFBQVE7Z0JBQzFELElBQUksQ0FBQyxZQUFZLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUN2RSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsU0FBUztnQkFDM0QsSUFBSSxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNyRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUk7aUJBQ2hFLGNBQWM7Z0JBQ2YsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQzthQUM3QztZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUc7Z0JBQ2hELFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUI7Z0JBQ2hDLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZTthQUNoQyxDQUFDO1lBQ0EsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLG9CQUFvQjtnQkFDM0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUI7Z0JBQ3RELElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7YUFDeEM7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHO2dCQUMzQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2dCQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWU7YUFDaEMsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUc7Z0JBQzdDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQzFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDekIsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjO2FBQzFCLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7YUFDN0M7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHO2dCQUNoRCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2dCQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWU7YUFDaEMsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUc7Z0JBQ2xELE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQzFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDekIsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjO2FBQzFCLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVk7Z0JBQ3pELElBQUksQ0FBQyxZQUFZLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRO2dCQUNyRCxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2dCQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0I7Z0JBQ3BELElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGVBQWU7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0I7Z0JBQ3RELElBQUksQ0FBQyxvQkFBb0IsQ0FBQztZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsaUJBQWlCO2dCQUNuRCxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7U0FDeEU7UUFDRCxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksWUFBWSxHQUFHO2dCQUNqQixXQUFXLEVBQUUsS0FBSztnQkFDbEIsUUFBUSxFQUFFLHl3QkFBeXdCO2dCQUNueEIsS0FBSyxFQUFFLG9DQUFvQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsYUFBYTtnQkFDckYsT0FBTyxFQUFFLHFGQUFxRjtnQkFDOUYsVUFBVSxFQUFFLFNBQVM7YUFDdEIsQ0FBQztZQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUNyRCxRQUFRLEVBQUUsSUFBSTtnQkFDZCxJQUFJLEVBQUUsSUFBSTtnQkFDVixRQUFRLEVBQUUsUUFBUTthQUNuQixDQUFDLENBQUM7WUFDSCxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztZQUNoRCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM1QixJQUFJLEdBQUcsSUFBSSxTQUFTLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDM0QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7NEJBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFO2dDQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0NBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDOzZCQUNqRDt3QkFDSCxDQUFDO3dCQUNELEtBQUssRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFOzRCQUNsQixJQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxzQkFBc0IsQ0FBQzs0QkFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ2xDLENBQUM7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZO2dCQUN6RCxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUTtnQkFDckQsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUztnQkFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU07Z0JBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUk7Z0JBQ25ELElBQUksQ0FBQyxjQUFjLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNO2dCQUN6RCxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxVQUFVO2dCQUM3RCxJQUFJLENBQUMsa0JBQWtCLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQy9ELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxZQUFZO2dCQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRO2dCQUMxRCxJQUFJLENBQUMsWUFBWSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDdkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVM7Z0JBQzNELElBQUksQ0FBQyxZQUFZLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDckUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJO2lCQUNoRSxjQUFjO2dCQUNmLENBQUMsQ0FBQyxJQUFJO2dCQUNOLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSTtnQkFDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7YUFDN0M7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHO2dCQUNoRCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2dCQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWU7YUFDaEMsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0I7Z0JBQ3pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQztZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsaUJBQWlCO2dCQUN0RCxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRztnQkFDM0MsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtnQkFDaEMsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQ2hDLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHO2dCQUM3QyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO2dCQUMxQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYzthQUMxQixDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2FBQzdDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRztnQkFDaEQsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtnQkFDaEMsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQ2hDLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHO2dCQUNsRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO2dCQUMxQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYzthQUMxQixDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWTtnQkFDekQsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVE7Z0JBQ3JELElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVM7Z0JBQ3RELElBQUksQ0FBQyxlQUFlLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGtCQUFrQjtnQkFDcEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZTtnQkFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDdkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLG9CQUFvQjtnQkFDdEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUI7Z0JBQ25ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztTQUN4RTtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLEtBQUssT0FBTztZQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUNqQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFDRSxJQUFJLENBQUMsSUFBSSxJQUFJLHNCQUFzQjtZQUNuQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEtBQUssSUFBSTtnQkFDNUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsS0FBSyxTQUFTO2dCQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxLQUFLLEVBQUUsQ0FBQyxFQUM5RDtZQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7WUFDbkUsT0FBTztTQUNSO2FBQU0sSUFDTCxJQUFJLENBQUMsSUFBSSxJQUFJLHNCQUFzQjtZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLENBQUMsRUFDeEQ7WUFDQSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDdEIsa0RBQWtELENBQ25ELENBQUM7WUFDRixPQUFPO1NBQ1I7UUFFRCxNQUFNLFlBQVksR0FBRztZQUNuQixXQUFXLEVBQUUsS0FBSztZQUNsQixRQUFRLEVBQ04sMC9CQUEwL0I7WUFDNS9CLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsT0FBTyxFQUFFLCtCQUErQjtZQUN4QyxVQUFVLEVBQUUsT0FBTztTQUNwQixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDckQsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1FBRWhELFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQzthQUNyQjtZQUNELElBQUksR0FBRyxJQUFJLFNBQVMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO3FCQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDNUIsU0FBUyxDQUNSLENBQUMsTUFBVyxFQUFFLEVBQUU7b0JBQ2QsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7d0JBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUN4QixvQ0FBb0MsQ0FDckMsQ0FBQzt3QkFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztxQkFDakQ7Z0JBQ0gsQ0FBQyxFQUNELENBQUMsS0FBVSxFQUFFLEVBQUU7b0JBQ2IsSUFBSSxHQUFHLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUksc0JBQXNCLENBQUM7b0JBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxDQUFDLENBQ0YsQ0FBQzthQUNMO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixhQUFhO1FBQ1gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQVM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUNFLElBQUksQ0FBQyxJQUFJLElBQUksc0JBQXNCO1lBQ25DLElBQUksQ0FBQyxJQUFJLElBQUksbUJBQW1CLEVBQ2hDO1lBQ0EsNkNBQTZDO1lBQzdDLGlFQUFpRTtZQUNqRSxJQUFJO1lBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLG1CQUFtQixFQUFFO2dCQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQjtvQkFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZTtvQkFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7YUFDN0I7WUFDRCxvRUFBb0U7U0FDckU7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMxRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN2RSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUc7WUFDL0MsR0FBRyxJQUFJLENBQUMsWUFBWTtZQUNwQixHQUFHLElBQUksQ0FBQyxXQUFXO1NBQ3BCLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFVBQVU7WUFDekMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsYUFBYTtZQUMxRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0I7WUFDekQsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNWLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRXBDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUIsU0FBUyxDQUNSLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDWCxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQ3hCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLHVCQUF1QixDQUN6RSxDQUFDO29CQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO2lCQUNqRDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2lCQUNuRDthQUNGO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7YUFDbkQ7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNiLElBQUksR0FBRyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxJQUFJLHNCQUFzQixDQUFDO1lBQ3hELElBQUksR0FBRyxJQUFJLHlCQUF5QixFQUFFO2dCQUNwQyxJQUFJLFlBQVksR0FBRztvQkFDakIsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLFFBQVEsRUFBRSw0Z0NBQTRnQztvQkFDdGhDLEtBQUssRUFBRSxtQkFBbUI7b0JBQzFCLE9BQU8sRUFBRSw2RkFBNkY7b0JBQ3RHLFVBQVUsRUFBRSxVQUFVO2lCQUN2QixDQUFDO2dCQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO29CQUNyRCxRQUFRLEVBQUUsSUFBSTtvQkFDZCxJQUFJLEVBQUUsSUFBSTtvQkFDVixRQUFRLEVBQUUsUUFBUTtpQkFDbkIsQ0FBQyxDQUFDO2dCQUNILFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO2dCQUNoRCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUM1QixJQUFJLEdBQUcsSUFBSSxTQUFTLEVBQUU7d0JBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztxQkFDbkM7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO3FCQUNwQztvQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQW1DO1FBQ2pELE1BQU0sT0FBTyxHQUFHO1lBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUU7WUFDckMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRTtZQUNyQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7YUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO29CQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztvQkFDN0MsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoQjtxQkFBTTtvQkFDTCxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2pCO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUIsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsOEJBQThCO0lBQzlCLDZEQUE2RDtJQUM3RCw2QkFBNkI7SUFDN0IsUUFBUTtJQUVSLGdEQUFnRDtJQUVoRCwyQ0FBMkM7SUFDM0MsMkNBQTJDO0lBQzNDLGtDQUFrQztJQUNsQyxpQ0FBaUM7SUFDakMsK0JBQStCO0lBQy9CLCtFQUErRTtJQUMvRSw2Q0FBNkM7SUFDN0MsbURBQW1EO0lBQ25ELHNEQUFzRDtJQUN0RCxpQkFBaUI7SUFDakIsa0NBQWtDO0lBRWxDLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsUUFBUTtJQUNSLE9BQU87SUFDUCxJQUFJO0lBQ0osUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUN0QyxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLEVBQUU7WUFDbEQsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1NBQ3ZELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixJQUFJLEtBQUs7WUFDekUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDVCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCO2dCQUN4RCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDMUU7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCO2dCQUN4RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDM0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixHQUFHLENBQUMsQ0FBQzthQUNoRTtZQUNELElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCO29CQUN4RCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6QjtZQUNELElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDO2FBQ2pFO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDO1lBQ2hFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN0RCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxpQkFBaUIsRUFBRSxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztTQUNyRDtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFO1lBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztTQUNwRDtRQUNELElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixJQUFJLE1BQU0sRUFDckU7WUFDQSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QjtnQkFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN4QztRQUNELElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixJQUFJLFVBQVUsRUFDekU7WUFDQSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTtnQkFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2RTtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksT0FBTyxFQUFFO1lBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUN2RTtRQUNELDBFQUEwRTtRQUMxRSwrRUFBK0U7UUFDL0UsMkVBQTJFO1FBQzNFLDJIQUEySDtRQUMzSCxpSEFBaUg7UUFDakgscUlBQXFJO1FBQ3JJLCtIQUErSDtRQUUvSCxpSEFBaUg7UUFDakgsOEVBQThFO1FBQzlFLDBFQUEwRTtRQUMxRSw0RUFBNEU7UUFDNUUsb0JBQW9CO1FBQ3BCLE1BQU07UUFDTixJQUFJO1FBRUosSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUc7WUFDL0MsR0FBRyxJQUFJLENBQUMsWUFBWTtZQUNwQixHQUFHLElBQUksQ0FBQyxXQUFXO1NBQ3BCLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFVBQVU7WUFDekMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsYUFBYTtZQUMxRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0I7WUFDekQsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNWLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3BDLE1BQU0sWUFBWSxHQUFHO1lBQ25CLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFFBQVEsRUFDTiwwL0JBQTAvQjtZQUM1L0IsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixPQUFPLEVBQUUsK0JBQStCO1lBQ3hDLFVBQVUsRUFBRSxPQUFPO1NBQ3BCLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNyRCxRQUFRLEVBQUUsSUFBSTtZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDaEQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM1QixJQUNFLElBQUksQ0FBQyxJQUFJLElBQUksc0JBQXNCO2dCQUNuQyxJQUFJLENBQUMsSUFBSSxJQUFJLG1CQUFtQixFQUNoQztnQkFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksc0JBQXNCLEVBQUU7b0JBQ3ZDLCtEQUErRDtpQkFDaEU7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLG1CQUFtQixFQUFFO29CQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQjt3QkFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7b0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZTt3QkFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7aUJBQzdCO2dCQUNELG1FQUFtRTtnQkFDbkUsb0VBQW9FO2FBQ3JFO1lBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQzthQUNyQjtZQUNELElBQUksR0FBRyxJQUFJLFNBQVMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQWUsRUFBRSxFQUFFO29CQUN2QyxJQUFJLE1BQU0sRUFBRTt3QkFDVixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO3dCQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDOzZCQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzs2QkFDNUIsU0FBUyxDQUNSLENBQUMsTUFBVyxFQUFFLEVBQUU7NEJBQ2QsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7Z0NBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUN4QixvQ0FBb0MsQ0FDckMsQ0FBQztnQ0FDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQzs2QkFDakQ7d0JBQ0gsQ0FBQyxFQUNELENBQUMsS0FBVSxFQUFFLEVBQUU7NEJBQ2IsSUFBSSxHQUFHLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUksc0JBQXNCLENBQUM7NEJBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNoQyxDQUFDLENBQ0YsQ0FBQztxQkFDTDt5QkFBTTtxQkFDTjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDMUM7UUFDRCxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDMUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHO1lBQ25CLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFFBQVEsRUFBRSwwL0JBQTAvQjtZQUNwZ0MsS0FBSyxFQUFFLGNBQWM7WUFDckIsT0FBTyxFQUFFLDhIQUE4SDtZQUN2SSxVQUFVLEVBQUUsVUFBVTtTQUN2QixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDckQsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxHQUFHLElBQUksU0FBUyxFQUFFO2dCQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2dCQUNuRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELG9CQUFvQjtJQUNwQiwyQ0FBMkM7SUFDM0MsMkJBQTJCO0lBQzNCLDBCQUEwQjtJQUMxQiw0Z0NBQTRnQztJQUM1Z0MsOENBQThDO0lBQzlDLDBGQUEwRjtJQUMxRiwyQkFBMkI7SUFDM0IsTUFBTTtJQUNOLDZEQUE2RDtJQUM3RCw4QkFBOEI7SUFDOUIsUUFBUTtJQUNSLHFEQUFxRDtJQUNyRCxxQ0FBcUM7SUFFckMsOEJBQThCO0lBQzlCLHNGQUFzRjtJQUN0RixxQ0FBcUM7SUFFckMsaURBQWlEO0lBQ2pELDJCQUEyQjtJQUMzQiw4QkFBOEI7SUFDOUIsbUdBQW1HO0lBQ25HLHlEQUF5RDtJQUN6RCwwQ0FBMEM7SUFDMUMsMkNBQTJDO0lBQzNDLGdFQUFnRTtJQUNoRSx3QkFBd0I7SUFDeEIsMEJBQTBCO0lBQzFCLHFDQUFxQztJQUNyQywyQ0FBMkM7SUFDM0Msd0NBQXdDO0lBQ3hDLDhCQUE4QjtJQUM5Qix5Q0FBeUM7SUFDekMsdUNBQXVDO0lBQ3ZDLHdFQUF3RTtJQUN4RSwwRUFBMEU7SUFDMUUsOEVBQThFO0lBQzlFLHdEQUF3RDtJQUN4RCxtQkFBbUI7SUFFbkIsa0JBQWtCO0lBRWxCLDREQUE0RDtJQUU1RCxlQUFlO0lBQ2YsY0FBYztJQUNkLFFBQVE7SUFDUixPQUFPO0lBRVAsSUFBSTtJQUNKLGVBQWU7SUFDZiwyQ0FBMkM7SUFDM0MsMkJBQTJCO0lBQzNCLDBCQUEwQjtJQUMxQiw0Z0NBQTRnQztJQUM1Z0MsOENBQThDO0lBQzlDLDBGQUEwRjtJQUMxRixtQ0FBbUM7SUFDbkMsNkJBQTZCO0lBQzdCLE1BQU07SUFDTiw2REFBNkQ7SUFDN0QsOEJBQThCO0lBQzlCLFFBQVE7SUFDUixxREFBcUQ7SUFDckQscUNBQXFDO0lBRXJDLDhCQUE4QjtJQUM5QixzRkFBc0Y7SUFDdEYscUNBQXFDO0lBRXJDLGlEQUFpRDtJQUNqRCwyQkFBMkI7SUFDM0IsOEJBQThCO0lBQzlCLG1HQUFtRztJQUNuRyx5REFBeUQ7SUFDekQsMENBQTBDO0lBQzFDLDJDQUEyQztJQUMzQyxnRUFBZ0U7SUFDaEUsd0JBQXdCO0lBQ3hCLDBCQUEwQjtJQUMxQixxQ0FBcUM7SUFDckMsMkNBQTJDO0lBQzNDLHdDQUF3QztJQUN4Qyw4QkFBOEI7SUFDOUIseUNBQXlDO0lBQ3pDLHVDQUF1QztJQUN2Qyx3RUFBd0U7SUFDeEUsMEVBQTBFO0lBQzFFLDhFQUE4RTtJQUM5RSx3REFBd0Q7SUFDeEQsbUJBQW1CO0lBRW5CLGtCQUFrQjtJQUVsQiw0REFBNEQ7SUFFNUQsZUFBZTtJQUNmLGNBQWM7SUFDZCxRQUFRO0lBQ1IsT0FBTztJQUVQLElBQUk7SUFDSixjQUFjO0lBQ2QsMENBQTBDO0lBQzFDLElBQUk7SUFFSiw0REFBNEQ7SUFDNUQsNEJBQTRCO0lBQzVCLCtDQUErQztJQUMvQyxtQ0FBbUM7SUFDbkMsK0NBQStDO0lBQy9DLGVBQWU7SUFDZixvREFBb0Q7SUFDcEQsdURBQXVEO0lBQ3ZELFFBQVE7SUFDUixtQkFBbUI7SUFDbkIsd0JBQXdCO0lBQ3hCLG9CQUFvQjtJQUNwQiwrQkFBK0I7SUFDL0IsUUFBUTtJQUVSLGlGQUFpRjtJQUNqRix1Q0FBdUM7SUFDdkMsbUJBQW1CO0lBQ25CLFVBQVU7SUFFVixtRUFBbUU7SUFDbkUsZ0NBQWdDO0lBQ2hDLHNEQUFzRDtJQUN0RCxzQkFBc0I7SUFDdEIsNkJBQTZCO0lBQzdCLHVHQUF1RztJQUN2RyxxQ0FBcUM7SUFDckMsc0NBQXNDO0lBQ3RDLDhCQUE4QjtJQUM5QixnQ0FBZ0M7SUFDaEMsc0NBQXNDO0lBQ3RDLG1DQUFtQztJQUNuQyx3Q0FBd0M7SUFDeEMscUNBQXFDO0lBQ3JDLGdEQUFnRDtJQUNoRCxjQUFjO0lBQ2QsYUFBYTtJQUNiLGtEQUFrRDtJQUNsRCxzQkFBc0I7SUFDdEIsNkJBQTZCO0lBQzdCLGdEQUFnRDtJQUNoRCw4QkFBOEI7SUFDOUIsY0FBYztJQUNkLCtCQUErQjtJQUMvQixvQ0FBb0M7SUFDcEMsaUNBQWlDO0lBQ2pDLDRDQUE0QztJQUM1QyxVQUFVO0lBQ1YsU0FBUztJQUNULE1BQU07SUFFTixzQkFBc0I7SUFDdEIsb0VBQW9FO0lBQ3BFLG9DQUFvQztJQUVwQyxRQUFRO0lBQ1IsNEJBQTRCO0lBQzVCLGlDQUFpQztJQUVqQyxTQUFTO0lBQ1QsSUFBSTtJQUVKLHVCQUF1QjtJQUN2QiwyQ0FBMkM7SUFDM0MsSUFBSTtJQUNKLGVBQWUsQ0FBQyxFQUFPO1FBQ3JCLElBQ0UsSUFBSSxDQUFDLElBQUksSUFBSSxzQkFBc0I7WUFDbkMsSUFBSSxDQUFDLElBQUksSUFBSSxtQkFBbUIsRUFDaEM7WUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksc0JBQXNCLEVBQUU7Z0JBQ3ZDLCtEQUErRDthQUNoRTtZQUNELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxtQkFBbUIsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUI7b0JBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWU7b0JBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO2FBQzdCO1lBQ0Qsb0VBQW9FO1NBQ3JFO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFaEQsSUFBSSxpQkFBaUIsRUFBRSxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztTQUNyRDtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFO1lBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztTQUNwRDtRQUVELElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixJQUFJLE1BQU0sRUFDckU7WUFDQSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QjtnQkFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN4QztRQUNELElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksU0FBUztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixJQUFJLFVBQVUsRUFDekU7WUFDQSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTtnQkFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2RTtRQUNELElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksT0FBTztZQUNwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUM1QjtZQUNBLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUN2RTtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QixTQUFTLENBQ1IsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUNkLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLEVBQUU7b0JBQ3BELFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUU7aUJBQ2pDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxFQUNELENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDYixJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxzQkFBc0IsQ0FBQztZQUN4RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxJQUFJLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxJQUFJLElBQUk7Z0JBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxJQUFJLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxJQUFJLElBQUksRUFDdEQ7Z0JBQ0EsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGVBQWU7b0JBQ2pELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUMvQztvQkFDQSxJQUFJLFNBQVMsR0FBRyxPQUFPLEVBQUU7d0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO3dCQUN2Qix5REFBeUQ7d0JBQ3pELE9BQU8sS0FBSyxDQUFDO3FCQUNkO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO3dCQUN0QixPQUFPLElBQUksQ0FBQztxQkFDYjtpQkFDRjtxQkFBTSxJQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZTtvQkFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQzlDO29CQUNBLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO29CQUN0RCxPQUFPLEtBQUssQ0FBQztpQkFDZDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDdEIsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO2FBQU0sSUFBSSxTQUFTLEdBQUcsT0FBTyxFQUFFO1lBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLHlEQUF5RDtZQUN6RCxPQUFPLEtBQUssQ0FBQztTQUNkO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3ZCLElBQUksSUFBSSxJQUFJLE9BQU8sRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUM3RCxJQUFJLENBQUMsU0FBUyxFQUNkLE9BQU8sQ0FDUixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNyQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUMzRCxJQUFJLENBQUMsT0FBTyxFQUNaLE9BQU8sQ0FDUixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNyQjtTQUNGO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsR0FBRyxFQUFFLENBQUM7UUFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDNUQsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbkUsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxPQUFPLEVBQUU7WUFDakMsOEJBQThCO1lBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZTtnQkFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlO29CQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYTtnQkFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhO29CQUMvQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRztnQkFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUNoRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FDaEQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ3ZCLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUNoRCxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGlCQUFpQixHQUFHO2dCQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQ2xELENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUNsRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7YUFDdkIsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQ2xELENBQUMsTUFBTSxFQUFFLENBQUM7U0FDWjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtpQkFDMUQsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7aUJBQ2IsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hCLDhCQUE4QjtTQUMvQjtRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxFQUFFO1lBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUc7Z0JBQ2xCLFFBQVE7Z0JBQ1IsU0FBUztnQkFDVCxXQUFXO2dCQUNYLFVBQVU7Z0JBQ1YsUUFBUTthQUNULENBQUM7U0FDSDtRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksUUFBUSxFQUFFO1lBQ2xDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsR0FBRyxLQUFLLENBQUM7WUFDcEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUI7Z0JBQ3hELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7UUFDRCxJQUNFLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNqRCxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLFNBQVM7Z0JBQzlCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FDNUQsQ0FBQyxFQUNKO1lBQ0EsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVO3FCQUM1RCxnQkFBZ0IsQ0FBQyxZQUFZO29CQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZO29CQUMvQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUc7b0JBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FDOUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO29CQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQzlDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztpQkFDdkIsQ0FBQztnQkFDRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUN0QztZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUNwRDtRQUNELElBQUksQ0FBQyxVQUFVO1lBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLElBQUksT0FBTztnQkFDbkQsQ0FBQyxDQUFDLEtBQUs7Z0JBQ1AsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQzNDO29CQUNDLENBQUMsQ0FBQyxNQUFNO29CQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsSUFBSSxTQUFTO3dCQUN2RCxDQUFDLENBQUMsT0FBTzt3QkFDVCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLEVBQUU7WUFDbkQsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFNO0lBRVosaUJBQWlCO1FBQ2YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDckQsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUc7WUFDakMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDO1FBQ0YsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM1QixJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUM7U0FDMUU7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDOUI7U0FDRjtJQUNILENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBWTtRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxJQUFZO1FBQzVCLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDekMsT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO2FBQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDbEMsT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO2FBQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDbEMsT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxPQUFPLElBQUksR0FBRyxJQUFJLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBUztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFDbkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixJQUFJLE1BQU0sRUFBRTtZQUN6RSxJQUFJLFFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixJQUFJLEtBQUssRUFBRTtZQUN4RSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QjtnQkFDeEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQztRQUNqRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQixLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ2Q7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQjtZQUNsRCxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEUsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxPQUFPLENBQUM7U0FDckI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxRQUFRLENBQUM7U0FDdEI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxPQUFPLENBQUM7U0FDckI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxRQUFRLENBQUM7U0FDdEI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxNQUFNLENBQUM7U0FDcEI7UUFDRCxPQUFPLFNBQVMsR0FBRyxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDckQsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLEtBQUssR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN4QyxJQUFJO2dCQUNGLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRTtvQkFDbkMsQ0FBQyxDQUFDLElBQUksR0FBRyxLQUFLO29CQUNkLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFO3dCQUN2QixDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUs7d0JBQ2QsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7NEJBQ3ZCLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSTs0QkFDYixDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUN2QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVM7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQ2xELENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQjtRQUNmLG1IQUFtSDtRQUNuSCxJQUNFLElBQUksQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxJQUFJLEVBQUU7WUFDdEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLElBQUksSUFBSSxFQUN4RDtZQUNBLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLENBQUM7U0FDekQ7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWU7Z0JBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZUFBZTtvQkFDakQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7U0FDckQ7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7U0FDckQ7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FDbEQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FDbEQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1NBQ3ZCLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUNsRCxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDakQsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFVO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUdELFlBQVksQ0FBQyxLQUFpQjtRQUM1QixNQUFNLGFBQWEsR0FBSSxLQUFLLENBQUMsTUFBc0IsQ0FBQyxPQUFPLENBQ3pELGlCQUFpQixDQUNsQixDQUFDO1FBQ0YsOEJBQThCO1FBRTlCLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVCLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3RCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyRSxDQUFDLENBQUMsQ0FBQztnQkFFSCw2RUFBNkU7Z0JBRTdFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7b0JBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO29CQUNwQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN2QixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FDMUMsQ0FBQztvQkFDRixJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUU7d0JBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztxQkFDbkM7b0JBQ0QsSUFDRSxRQUFRLEVBQUUsUUFBUSxJQUFJLE9BQU87d0JBQzdCLENBQUMsUUFBUSxFQUFFLFFBQVEsSUFBSSxRQUFRLElBQUksUUFBUSxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsRUFDNUQ7d0JBQ0EsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2pDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FDdkMsQ0FBQzt3QkFDRixJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsRUFBRTs0QkFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUc7Z0NBQzFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUU7NkJBQy9DLENBQUM7eUJBQ0g7cUJBQ0Y7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUc7NEJBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUM7eUJBQ2hFLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYTtTQUM3QyxDQUFDO2FBQ0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUIsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtvQkFDekMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQy9DLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QixTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDbEQsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVLEVBQUUsSUFBUztRQUMvQixJQUFJLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDL0M7YUFBTSxJQUFJLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQzVCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDckUsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVUsRUFBRSxLQUFVO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FDMUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDakQsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNoRCwyQkFBMkI7UUFDM0IsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFO1lBQy9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNO1lBQ3ZELENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFELENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUN2QyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDekMsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTTtZQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQzdDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUN6QyxDQUFDO1FBQ0osMkdBQTJHO0lBQzdHLENBQUM7SUFFRCxVQUFVLEdBQVEsRUFBRSxDQUFDO0lBQ3JCLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFFOUIsYUFBYSxDQUFDLElBQVU7UUFDdEIsTUFBTSxPQUFPLEdBQUc7WUFDZCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQ3pCLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7YUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFO29CQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztvQkFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7b0JBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUM7b0JBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztvQkFDMUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNO3dCQUNyQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQzt3QkFDMUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDNUIsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRTt3QkFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO3FCQUMvQjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ3RDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO3FCQUNmO29CQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQzlCLENBQUM7aUJBQ0g7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7aUJBQzFCO2dCQUNELDZHQUE2RztZQUMvRyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsVUFBVSxHQUFRLEVBQUUsQ0FBQztJQUNyQixNQUFNLEdBQVEsQ0FBQyxDQUFDLENBQUM7SUFFakIsWUFBWTtRQUNWLE1BQU0sT0FBTyxHQUFHO1lBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQixNQUFNLEVBQUUsQ0FBQztZQUNULE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxLQUFLLEdBQUcsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO29CQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO29CQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUNuQyxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFO3dCQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7cUJBQy9CO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7cUJBQ2Y7aUJBQ0Y7Z0JBQ0QsSUFBSSxDQUFDLGFBQWE7b0JBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDO29CQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN6QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVksRUFBRSxHQUFRO1FBQ3JDLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsbUVBQW1FO1FBQ25FLDJDQUEyQztRQUMzQyxtQ0FBbUM7UUFDbkMsSUFBSTtRQUNKLGlEQUFpRDtJQUNuRCxDQUFDO0lBRUQsWUFBWSxDQUFDLENBQU07UUFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLFlBQVksR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMxRSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUM7WUFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3RELENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDVCxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBVTtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1NBQ2pEO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7U0FDaEQ7YUFBTTtZQUNMLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNyRSxJQUNFLFFBQVEsRUFBRSxRQUFRLElBQUksT0FBTztnQkFDN0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxJQUFJLFFBQVEsSUFBSSxRQUFRLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUM1RDtnQkFDQSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRztvQkFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDO2lCQUM3RCxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUc7b0JBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUM7aUJBQ2hFLENBQUM7YUFDSDtTQUNGO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FDM0QsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2hDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3JDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBTTtJQUVoQixZQUFZLENBQUMsSUFBVTtRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3JDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxvQkFBb0I7UUFDMUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDakUsT0FBTyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDL0I7YUFBTTtZQUNMLE1BQU0sUUFBUSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNoRSxPQUFPLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25ELFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN0QyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBZ0I7UUFDMUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxNQUFzQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLHdEQUF3RDtRQUN2RCxLQUFLLENBQUMsTUFBc0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxNQUFNLENBQUMsS0FBZ0I7UUFDckIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxNQUFzQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUQsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztZQUV0RCxxQ0FBcUM7WUFDckMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUN4QyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUU1QyxvQ0FBb0M7WUFDcEMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDN0Q7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQU07SUFDdkIsdUJBQXVCLENBQUMsS0FBVTtRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQyxpQkFBaUI7Z0JBQzFFLEVBQUUsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFNO0lBQ3hCLHdCQUF3QixDQUFDLEtBQVU7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsaUNBQWlDLENBQUMsa0JBQWtCO2dCQUMzRSxFQUFFLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFVO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU87WUFDdEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsdUVBQXVFO1lBQ3ZFLHlFQUF5RTtTQUMxRTtJQUNILENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUFVO1FBQ2pDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU87WUFDdEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDdkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDbkU7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBVTtRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU87WUFDN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IseURBQXlEO1NBQzFEO0lBQ0gsQ0FBQztJQUNELHVCQUF1QixDQUFDLEtBQVU7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQ1QsdUZBQXVGLEVBQ3ZGLElBQUksQ0FBQyxrQkFBa0IsQ0FDeEIsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0I7WUFDcEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQyxPQUFPLENBQUMsR0FBRyxDQUNULHVGQUF1RixFQUN2RixJQUFJLENBQUMsa0JBQWtCLENBQ3hCLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztJQUM5RSxDQUFDO0lBQ0QseUJBQXlCLENBQUMsS0FBVTtRQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxlQUFlO1lBQ2pELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBVTtRQUNsQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDakQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsRUFBRTtZQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2FBQzdDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLG9CQUFvQjtnQkFDekQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO1NBQ2pDO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO2FBQzFDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLG9CQUFvQjtnQkFDdEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTztZQUMzQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIscURBQXFEO1NBQ3REO0lBQ0gsQ0FBQztJQUVELDBCQUEwQixDQUFDLEtBQVU7UUFDbkMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTztZQUM1RCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUNqQywwRUFBMEU7U0FDM0U7SUFDSCxDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBVTtRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsT0FBTztZQUN6RCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsNEVBQTRFO1NBQzdFO0lBQ0gsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQVU7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxhQUFhO1lBQzVELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQ3JFO2dCQUNFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHO2dCQUN2RCxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTTthQUMzRCxFQUNELE1BQU0sQ0FDUCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsNERBQTREO0lBQzVELDBCQUEwQjtJQUMxQiw2QkFBNkI7SUFDN0IsMkVBQTJFO0lBQzNFLHNDQUFzQztJQUN0Qyw4RUFBOEU7SUFDOUUsNEVBQTRFO0lBQzVFLDZFQUE2RTtJQUM3RSxVQUFVO0lBQ1YsUUFBUTtJQUNSLG9DQUFvQztJQUNwQyx3Q0FBd0M7SUFDeEMsTUFBTTtJQUNOLElBQUk7SUFFSix3RUFBd0U7SUFDeEUsaUVBQWlFO0lBQ2pFLG9CQUFvQjtJQUNwQiwyQ0FBMkM7SUFDM0Msb0NBQW9DO0lBQ3BDLCtCQUErQjtJQUMvQiwrREFBK0Q7SUFDL0QsT0FBTztJQUNQLG1CQUFtQjtJQUNuQixJQUFJO0lBRUosdUJBQXVCLENBQUMsS0FBVSxFQUFFLElBQVMsRUFBRSxNQUFXO1FBQ3hELElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUNuQixJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQ3JFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUNuRSxNQUFNLENBQ1AsQ0FBQzthQUNIO2lCQUFNLElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNO29CQUNyRCxJQUFJLENBQUMsV0FBVyxDQUNkO3dCQUNFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNO3dCQUMxRCxHQUFHLEtBQUs7cUJBQ1QsRUFDRCxNQUFNLENBQ1AsQ0FBQztnQkFFSixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO29CQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUc7d0JBQ2xELElBQUksQ0FBQyxXQUFXLENBQ2Q7NEJBQ0UsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUc7NEJBQ3ZELEdBQUcsS0FBSzt5QkFDVCxFQUNELE1BQU0sQ0FDUCxDQUFDO2lCQUNMO2FBQ0Y7U0FDRjthQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLEdBQVEsRUFBRSxHQUFXO1FBQ3ZDLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVSxFQUFFLElBQVM7UUFDbEMsSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxJQUFTO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM3RSxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBWTtRQUNoQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBRTFCLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxVQUFVO29CQUMvRCxJQUFJLENBQUMsdUJBQXVCLENBQUM7YUFDaEM7U0FDRjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQ2hFLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUM5QixDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFTO1FBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQy9DLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDMUIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUU7WUFDbEIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDeEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU07b0JBQzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTTtvQkFDMUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO2FBQzdCO1NBQ0Y7YUFBTTtZQUNMLGlDQUFpQztZQUNqQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUMxRCxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FDekIsQ0FBQztnQkFDRixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTTtvQkFDMUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO2FBQzdCO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDOUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdEMsSUFDRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDM0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FDeEMsRUFDRDt3QkFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTs0QkFDOUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt5QkFDdkM7cUJBQ0Y7b0JBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU07d0JBQzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztpQkFDN0I7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUN4QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FDMUQsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQzlCLENBQUM7b0JBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU07d0JBQzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztpQkFDN0I7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVLEVBQUUsSUFBWTtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsR0FBRztnQkFDaEQsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDO1NBQ0g7UUFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEU7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVU7Z0JBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQzVELENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUMxQixDQUFDO1NBQ0w7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksSUFBSSxDQUFDLG1CQUFtQjtZQUFFLE9BQU87UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVLEVBQUUsSUFBWTtRQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRztnQkFDMUQsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDO1NBQ0g7UUFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEU7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUk7Z0JBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ2hFLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUMxQixDQUFDO1NBQ0w7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUM3RCxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBVSxFQUFFLElBQVk7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFO1lBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLEdBQUc7Z0JBQ2xELFVBQVUsRUFBRSxFQUFFO2dCQUNkLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDO2FBQ2IsQ0FBQztTQUNIO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3RFO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxVQUFVO2dCQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUM5RCxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksQ0FDMUIsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQVU7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFO1lBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLEdBQUc7Z0JBQ2xELFVBQVUsRUFBRSxFQUFFO2dCQUNkLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxDQUFDO2FBQ2IsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUMvRCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBVTtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsR0FBRztnQkFDbEQsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLENBQUM7YUFDYixDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBVSxFQUFFLElBQVk7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFO1lBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEdBQUc7Z0JBQzlDLElBQUksRUFBRSxFQUFFO2dCQUNSLEtBQUssRUFBRSxFQUFFO2FBQ1YsQ0FBQztTQUNIO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJO2dCQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUNwRCxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksQ0FDMUIsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDM0QsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2RSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBVTtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3hELENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDOUQsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzdEO2FBQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxPQUFPLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzdEO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBVSxFQUFFLElBQVk7UUFDdkMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7d0dBL2dKVSwyQkFBMkI7NEZBQTNCLDJCQUEyQiw2ckJDdkJ4QyxzanJaQWl6SWM7OzRGRDF4SUQsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHlCQUF5QjttUkFLaEIsU0FBUztzQkFBM0IsU0FBUzt1QkFBQyxNQUFNO2dCQUNHLFVBQVU7c0JBQTdCLFNBQVM7dUJBQUMsT0FBTztnQkFDTyxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ08sZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0UsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0YsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQWl0SHhCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUE0ekI1QyxTQUFTLGFBQWEsQ0FBQyxJQUFTO0lBQzlCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNkLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFM0MsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3ZDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2pDO0lBRUQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtJQUNoRixPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUcmF4cG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi90cmF4cG9wdXAvdHJheHBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYXhTdG9yZUNvbXBvbmVudCB9IGZyb20gJy4uL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjLmpzJztcclxuaW1wb3J0IHRpbWVab25lIGZyb20gJ2RheWpzL3BsdWdpbi90aW1lem9uZS5qcyc7XHJcbmRheWpzLmV4dGVuZCh0aW1lWm9uZSk7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLWNoZWNrbGlzdC1jb25maWd1cmVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NoZWNrbGlzdC1jb25maWd1cmUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2NoZWNrbGlzdC1jb25maWd1cmUuY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrbGlzdENvbmZpZ3VyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKFwiZmlsZVwiKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoXCJmaWxlMVwiKSBmaWxlSW5wdXQxITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiYnVsa3VwbG9hZFwiKSBidWxrdXBsb2FkOiBhbnk7XHJcbiAgQFZpZXdDaGlsZChcImVtYWlsQnVsa3VwbG9hZFwiKSBlbWFpbEJ1bGt1cGxvYWQ6IGFueTtcclxuICBAVmlld0NoaWxkKFwiYWZ0ZXJWYWxpZGF0aW9uXCIpIGFmdGVyVmFsaWRhdGlvbjogYW55O1xyXG4gIEBWaWV3Q2hpbGQoXCJjb25maXJtVXNlclwiKSBjb25maXJtVXNlcjogYW55O1xyXG4gIGRheWpzOiBhbnkgPSBkYXlqcztcclxuICBzZWxlY3RlZERhdGVzOiBhbnk7XHJcbiAgbWluRGF0ZTogYW55O1xyXG4gIHR5cGU6IHN0cmluZyA9IFwiY3VzdG9tXCI7XHJcbiAgb2JqOiBhbnk7XHJcbiAgY29uZmlnRGF0YTogYW55O1xyXG4gIHRhYmxlRGF0YTogYW55ID0gW107XHJcbiAgdGFibGVMb2FkaW5nOiBhbnkgPSBmYWxzZTtcclxuICB0YWJsZURpc3BsYXllZENvbHVtbnM6IGFueSA9IFtcIm5hbWVcIiwgXCJyb2xlXCIsIFwiZW1haWxcIl07XHJcbiAgcGFnZVZhbHVlOiBhbnkgPSBbXTtcclxuICBvZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgcmVjb3Jkc1RvdGFsOiBhbnkgPSAwO1xyXG4gIGFzc2lnblR5cGU6IGFueTtcclxuICBzaXplOiBhbnkgPSA1O1xyXG4gIG9mZnNldHZhbHVlOiBudW1iZXIgPSAwO1xyXG4gIHBhZ2VEaXNwbGF5OiBhbnkgPSBbXTtcclxuICBuZXh0YnRuOiBib29sZWFuID0gdHJ1ZTtcclxuICBiYWNrYnRuOiBib29sZWFuID0gdHJ1ZTtcclxuICBpZExpc3Q6IGFueSA9IFtdO1xyXG4gIGN1cnJlbnRWYWx1ZTogYW55ID0gMTtcclxuICB0YWJsZUZpbHRlcjogYW55ID0gXCJcIjtcclxuICBwYWdlU3RhcnQ6IGFueSA9IDA7XHJcbiAgcGFnZUVuZDogYW55ID0gMDtcclxuICByZWNvcmRzQ291bnQ6IGFueTtcclxuICBwYWdpbmF0aW9uU2l6ZSA9IFs1LCAxMCwgMTUsIDIwXTtcclxuICB1c2VyRGF0YTogYW55ID0gW107XHJcbiAgZXhjZWxVc2VyRGF0YTogYW55ID0gW107XHJcbiAgc2hvd0ltYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuICBtb250aERheTogYW55O1xyXG4gIHNob3c6IG51bWJlciA9IDA7XHJcbiAgcG9wVXBUaXRsZTogYW55O1xyXG4gIHNob3dJbnRybzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2VhcmNoVXNlcjogYW55O1xyXG4gIGFkZFVzZXJGb3JtOiBib29sZWFuO1xyXG4gIHNvcFN0b3JlczogYW55ID0gW107XHJcbiAgc3RvcmVDb3ZlcmFnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdXNlckNvdmVyYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZXJyb3Jtc2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdGFydFRpbWU6IGFueTtcclxuICBlbmRUaW1lOiBhbnk7XHJcbiAgY2hlY2tsaXN0SWQ6IGFueTtcclxuICByZXVwbG9hZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdEFsbFVzZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZW1vdmVVc2VyczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWREYXlzOiBhbnlbXSA9IFtdO1xyXG4gIHNob3dSYW5nZVZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3VibWl0dGVkRGF0ZXM6IG51bWJlcltdID0gW107XHJcbiAgbW9udGhEYXRlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHNwZWNpZmljOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZ2xvYmFsQ29uZmlndXJlOiBib29sZWFuID0gdHJ1ZTtcclxuICBzdG9yZXdpc2VDb25maWd1cmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjb25maWd1cmVUeXBlOiBhbnk7XHJcbiAgZGF0ZTogYW55O1xyXG4gIHNlY3Rpb25zOiBhbnkgPSBbXTtcclxuICBNb250aHdlZWtOdW1iZXI6IHN0cmluZztcclxuICBwb3B1cENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHZhbGlkVGltZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgZGlzYWJsZWRRdWVzdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3djb25maWc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dhZHZhbmNlOiBib29sZWFuID0gdHJ1ZTtcclxuICByZXBlYXRUeXBlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHNob3dEcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRGF0ZTogYW55ID0gW107XHJcbiAgZGF0ZXM6IG51bWJlcltdID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMzEgfSwgKF8sIGkpID0+IGkgKyAxKTsgLy8gQXJyYXkgZnJvbSAxIHRvIDMxXHJcbiAgc2VsZWN0ZWREYXRlTGlzdDogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRTdGFydERhdGU6IGFueTtcclxuICBtaW5TdGFydERhdGU6IGFueTtcclxuICBzZWxlY3RlZEVuZERhdGU6IGFueTtcclxuICBtaW5FbmREYXRlOiBhbnk7XHJcbiAgY2xpZW50SWQ6IGFueTtcclxuICBhbGVydFVzZXJzOiBhbnkgPSBbXTtcclxuICBhbGVydFRlYW1zOiBhbnkgPSBbXTtcclxuICB6b25lTGlzdDogYW55ID0gW107XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgYXBwcm92ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgaW5pdGlhbExvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGV4aXN0aW5nVXNlcnM6IGFueTtcclxuICBhc3NpZ25TaW5nbGU6IGFueTtcclxuICBhc3NpZ25Hcm91cDogYW55O1xyXG4gIHNpbmdsZUFzc2lnbjogYW55O1xyXG4gIGdyb3VwQXNzaWduOiBhbnk7XHJcbiAgcmVtYWluZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZWRQdWJsaXNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBkZXRhY2ggPSBuZXcgU3ViamVjdCgpO1xyXG4gIHRpbWVMb29wOiBhbnlbXSA9IFsxXTtcclxuICBtaW51dGVzOiBudW1iZXJbXSA9IFszMCwgNDUsIDYwLCA3NSwgOTBdO1xyXG4gIHNob3dFZGl0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZUJ0bjogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHJlT3BlbkNsb3NlVGltZUNvbmZpZzogYW55ID0gWzEwLCAyMCwgMzAsIDQwLCA1MCwgNjBdO1xyXG4gIHBlcnNvbkRldGVjdGlvblRpbWVUaHJlc2hvbGQ6IGFueSA9IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF07XHJcbiAgc2NoZWR1bGVUaW1lQ29uZmlnOiBhbnkgPSBbMTAsIDE1LCAyMCwgMjUsIDMwLCAzNSwgNDAsIDQ1LCA1MCwgNjBdO1xyXG4gIGFsZXJ0VGltZUNvbmZpZzogYW55ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMzAgfSwgKF8sIGkpID0+IGkgKyAxKTs7XHJcbiAgYWxlcnR0aW1la2V5Y29uZmlnOiBhbnk7XHJcbiAgc2VsZWN0ZWRTb3VyY2U6IGFueTtcclxuICBzZWxlY3RlZERldGVjdGlvblN0YXR1czogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZERhdGFwcm9jZXNzaW5nOiBhbnk7XHJcbiAgc2VsZWN0ZWRFeHBvcnRDb25maWc6IHN0cmluZ1tdID0gW107XHJcbiAgbm90aWZpY2F0aW9ua2V5Y29uZmlnOiBhbnk7XHJcbiAgYXV0b3Rhc2trZXljb25maWc6IGFueTtcclxuICBleHBvcnRrZXljb25maWc6IGFueTtcclxuICBkZXRlY3RlZHN0YXR1c2tleWNvbmZpZzogYW55O1xyXG4gIGF1ZGl0a2V5Y29uZmlnOiBhbnk7XHJcbiAgdXNlclR5cGU6IGFueTtcclxuICBzY2hlZHVsZXR5cGU6IGFueSA9IFwic3RhbmRhcmRcIjtcclxuICByZWN1cnJlbmNlOiBhbnk7XHJcbiAgc2NoZWR1bGVzdGFydFRpbWU6IGFueTtcclxuICBzY2hlZHVsZWVuZFRpbWU6IGFueTtcclxuICByZWN1cnJlbmNlU3RhdHVzOiBhbnk7XHJcbiAgcmVjdXJyZW5jZVR5cGU6IGFueTtcclxuICByZWN1cnJlbmNldGltZTogYW55O1xyXG4gIGlzVGhyZXNob2xkRW5hYmxlZDogYW55ID0gZmFsc2U7XHJcbiAgZGV0ZWN0aW9uVGhyZXNob2xkOiBudW1iZXIgPSAxO1xyXG4gIHRocmVzaG9sZE9wdGlvbnMgPSBbMSwgMiwgMywgNCwgNV07XHJcbiAgcXVldWVMZW5ndGhFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcXVldWVMaW1pdDogYW55ID0gXCIzXCI7XHJcbiAgd2FpdFRpbWVFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBjYW1lcmFBbmdsZUVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHdhaXRUaW1lTGltaXQ6IGFueSA9IFwiMVwiO1xyXG4gIGFsZXJ0Q29vbGRvd25FbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWxlcnRDb29sZG93blRpbWU6IGFueSA9IFwiMTBcIjtcclxuICBub3RpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVjdXJyaW5nRmxhZ05vdGlmeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJlY3VycmluZ1RocmVzaG9sZHM6IG51bWJlcltdID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMzAgfSwgKF8sIGkpID0+IGkgKyAxKTtcclxuICBlbmFibGVFbWFpbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRpbWVTbG90OiBudW1iZXJbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgYnVmZmVyVGltZTogbnVtYmVyW10gPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAzMCB9LCAoXywgaSkgPT4gaSArIDEpO1xyXG4gIG1pbnV0ZXNTbG90OiBudW1iZXJbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgZW1haWxEcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIGFkbWluVXNlcnM6YW55ID0gW107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNoYW5nZWRldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcm91dGVyOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGU6IFJvdXRlcixcclxuICAgIHByaXZhdGUgZGlhbG9nOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgU29wU2VydmljZTogVHJheFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcGFnZUluZm86IFBhZ2VJbmZvU2VydmljZSxcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCB1c2VySW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJ7fVwiKTtcclxuICAgIGlmICh1c2VySW5mbz8udXNlclR5cGUpIHtcclxuICAgICAgdGhpcy51c2VyVHlwZSA9IHVzZXJJbmZvLnVzZXJUeXBlO1xyXG4gICAgfVxyXG4gICAgbGV0IHN0b3JhZ2VEZXRhaWxzID0gSlNPTi5wYXJzZShcclxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCIsXHJcbiAgICApO1xyXG4gICAgaWYgKCFzdG9yYWdlRGV0YWlscz8uY2xpZW50KSB7XHJcbiAgICAgIHN0b3JhZ2VEZXRhaWxzID0gSlNPTi5wYXJzZShcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNsaWVudC1kZXRhaWxzXCIpIHx8IFwie31cIixcclxuICAgICAgKTtcclxuICAgICAgc3RvcmFnZURldGFpbHMuY2xpZW50ID0gc3RvcmFnZURldGFpbHMuY2xpZW50SWQ7XHJcbiAgICB9XHJcbiAgICBpZiAoc3RvcmFnZURldGFpbHM/LmNsaWVudCkge1xyXG4gICAgICB0aGlzLmNsaWVudElkID0gc3RvcmFnZURldGFpbHMuY2xpZW50O1xyXG4gICAgICB0aGlzLnJvdXRlci5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xyXG4gICAgICAgIGlmIChwYXJhbXM/LmNoZWNrTGlzdElkKSB7XHJcbiAgICAgICAgICB0aGlzLm9iaiA9IHtcclxuICAgICAgICAgICAgY2hlY2tMaXN0SWQ6IHBhcmFtcy5jaGVja0xpc3RJZCxcclxuICAgICAgICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy5zaG93RWRpdCA9IHBhcmFtcy5zaG93RWRpdDtcclxuICAgICAgICAgIHRoaXMudHlwZSA9IFwiY3VzdG9tXCI7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVkUXVlc3Rpb24gPSBwYXJhbXMuZGlzYWJsZWRRdWVzdGlvbjtcclxuICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcz8uYWljaGVja0xpc3RJZCkge1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm9iaiA9IHtcclxuICAgICAgICAgICAgaWQ6IHBhcmFtcy5haWNoZWNrTGlzdElkLFxyXG4gICAgICAgICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdElkID0gcGFyYW1zPy5haWNoZWNrTGlzdElkO1xyXG4gICAgICAgICAgdGhpcy5zaG93RWRpdCA9IHBhcmFtcy5zaG93RWRpdDtcclxuICAgICAgICAgIHRoaXMudHlwZSA9IHBhcmFtcy50eXBlO1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlZFF1ZXN0aW9uID0gcGFyYW1zLmRpc2FibGVkUXVlc3Rpb247XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5vYmogPSB7XHJcbiAgICAgICAgICAgIHR5cGU6IHBhcmFtcy50eXBlLFxyXG4gICAgICAgICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLnR5cGUgPSBwYXJhbXMudHlwZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0SW5pdGlhbFRhYigpO1xyXG4gICAgICB0aGlzLnR5cGUgPT09IFwiY3VzdG9tXCIgPyB0aGlzLkdldENvbmZpZygpIDogdGhpcy5nZXRBSWNvbmZpZygpO1xyXG4gICAgICAvLyB0aGlzLmdldFpvbmVMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGV0YWNoLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRldGFjaC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiTWFuYWdlIENoZWNrbGlzdFwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXHJcbiAgICAgIFwiQXV0b21hdGUgb3IgY3JlYXRlIGNoZWNrbGlzdHMgdG8gaW1wcm92ZSBvcGVyYXRpb25hbCBlZmZpY2llbmN5XCIsXHJcbiAgICApO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJUYW5nbyBUcmF4XCIsXHJcbiAgICAgICAgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsXHJcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxyXG4gICAgICAgIGlzU2VwYXJhdG9yOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiBcIlRhbmdvIFRyYXhcIixcclxuICAgICAgICBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIixcclxuICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgaXNTZXBhcmF0b3I6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEluaXRpYWxUYWIoKSB7XHJcbiAgICB0aGlzLnN0b3JlQ292ZXJhZ2VcclxuICAgICAgPyAodGhpcy5hc3NpZ25UeXBlID0gXCJzdG9yZVwiKVxyXG4gICAgICA6ICh0aGlzLmFzc2lnblR5cGUgPSBcInVzZXJcIik7XHJcbiAgfVxyXG5cclxuICBHZXRDb25maWcoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5tb250aERhdGUgPSBcIlwiO1xyXG4gICAgdGhpcy5tb250aERheSA9IFwiXCI7XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0Y29uZmlnKHRoaXMub2JqKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChyZXMuZGF0YS5jaGVja0xpc3REZXRhaWxzLmNoZWNrTGlzdFR5cGUpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdElkID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscy5faWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy50eXBlID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscy5jaGVja0xpc3RUeXBlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YSA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IFtdO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLm5vdGlmeVR5cGUgPSBbXTtcclxuICAgICAgICAgICAgICB0aGlzLmNvdmVyYWdlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY292ZXJhZ2U7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/Lm5vdGlmeUZsYWdzPy5ub3RpZnlUeXBlXHJcbiAgICAgICAgICAgICAgICAgID8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeUZsYWcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVjdXJyaW5nRmxhZz8ubm90aWZ5VHlwZVxyXG4gICAgICAgICAgICAgICAgICA/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWN1cnJpbmdGbGFnTm90aWZ5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5hdXRvRW1haWw/LnR5cGU/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbmFibGVFbWFpbCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbLi4udGhpcy5zaW5nbGVBc3NpZ24sLi4udGhpcy5ncm91cEFzc2lnbl1cclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdFJhZGlvKHRoaXMuY292ZXJhZ2UpO1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuY292ZXJhZ2UgPT09ICdzdG9yZScgPyB0aGlzLnN0b3JlQ292ZXJhZ2UgPSB0cnVlIDogdGhpcy51c2VyQ292ZXJhZ2UgPSB0cnVlXHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVVc2VycyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVtb3ZlZFVzZXJzIHx8IFtdO1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuYXBwcm92ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyPy5sZW5ndGggPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1haW5kZXIgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVtYWluZGVyXHJcbiAgICAgICAgICAgICAgICA/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICAgICAgICA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMudGltZUxvb3AgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVtYWluZGVyXHJcbiAgICAgICAgICAgICAgICA/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgPyBBcnJheS5mcm9tKFxyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVuZ3RoOiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAoXywgaSkgPT4gaSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIDogWzBdO1xyXG5cclxuICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5wdWJsaXNoRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLmRheWpzKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIGRhdGUuZGlmZihcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRheWpzLnV0YyhcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucHVibGlzaERhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBcIm1pbnV0ZXNcIixcclxuICAgICAgICAgICAgICAgICAgKSA8IDVcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgc3RhcnRJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRlID0gdGhpcy5kYXlqcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRQdWJsaXNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkYXRlLmRpZmYoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF5anMudXRjKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucHVibGlzaERhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWludXRlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA+PSA1XHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkUHVibGlzaCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChzdGFydEludGVydmFsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZVVzZXJzID0gcmVzLmRhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlbW92ZWRVc2VycyB8fCBbXTtcclxuICAgICAgICAgICAgICAvLyB0aGlzLnpvbmVzID0gdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5kZXRlY3Rpb25BcmVhIHx8IFtdO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VjdGlvbnMgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zZWN0aW9ucztcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF5cyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlV2Vla0RheXMgfHwgW107XHJcbiAgICAgICAgICAgICAgdGhpcy5lbmRUaW1lID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZVxyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lLFxyXG4gICAgICAgICAgICAgICAgICBcImg6bW0gQVwiLFxyXG4gICAgICAgICAgICAgICAgKS5mb3JtYXQoXCJISDptbVwiKVxyXG4gICAgICAgICAgICAgICAgOiBcIjIyOjAwXCI7XHJcbiAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgPy5zY2hlZHVsZVN0YXJ0VGltZVxyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUsXHJcbiAgICAgICAgICAgICAgICAgIFwiaDptbSBBXCIsXHJcbiAgICAgICAgICAgICAgICApLmZvcm1hdChcIkhIOm1tXCIpXHJcbiAgICAgICAgICAgICAgICA6IFwiMTA6MDBcIjtcclxuICAgICAgICAgICAgICB0aGlzLnJlcGVhdFR5cGUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09IFwiZGFpbHlcIlxyXG4gICAgICAgICAgICAgICAgICA/IFwiRGF5XCJcclxuICAgICAgICAgICAgICAgICAgOiBbXCJ3ZWVrbHlcIiwgXCJ3ZWVrZGF5XCJdLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgID8gXCJXZWVrXCJcclxuICAgICAgICAgICAgICAgICAgICA6IFwiTW9udGhcIjtcclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZUVuZFRpbWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IFwiMTA6MDAgUE1cIjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID0gXCIxMDowMCBBTVwiO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZWRvVmFsaWRpdHkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlZG9WYWxpZGl0eSA9IDc7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAvLyBpZiAodGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGVydD8uYWxlcnRzVG8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgLy8gICB0aGlzLmVtYWlsTGlzdCA9IHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxlcnQ/LmFsZXJ0c1RvO1xyXG4gICAgICAgICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9IFwib25ldGltZVwiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dSYW5nZVZhbHVlID1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSBcIlwiICYmXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSBcIlwiICYmXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gbnVsbFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RhcnREYXRlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5taW5TdGFydERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUsXHJcbiAgICAgICAgICAgICAgICAgICkuZm9ybWF0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9IFwiXCIgJiZcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgIT0gbnVsbFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlLFxyXG4gICAgICAgICAgICAgICAgICApLmZvcm1hdChcIllZWVktTU0tRERcIik7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlLFxyXG4gICAgICAgICAgICAgICAgICApLmZvcm1hdCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSBcIm1vbnRobHlcIikge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHNcclxuICAgICAgICAgICAgICAgICAgICAgID8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gXCJkYXRlXCJcclxuICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsuc3BsaXQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKT8ubGVuZ3RoID4gMVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aERhdGUgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2Vlay5zcGxpdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVswXTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9udGhEYXkgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2Vlay5zcGxpdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVsxXTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHNcclxuICAgICAgICAgICAgICAgICAgICAgID8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gXCJzcGVjaWZpY1wiXHJcbiAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNwZWNpZmljRGF0ZSB8fCBbXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuc3VibWl0dGVkRGF0ZXM7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSBcInJhbmdlXCIgJiZcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lmaWMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSBcIm9uZXRpbWVcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5jb25maWdEYXRhXHJcbiAgICAgICAgICAgICAgICAgIC5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZVxyXG4gICAgICAgICAgICAgICAgICA/IHRoaXMuZGF5anNcclxuICAgICAgICAgICAgICAgICAgICAudXRjKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSlcclxuICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KClcclxuICAgICAgICAgICAgICAgICAgOiBkYXlqcygpLmZvcm1hdCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0ge1xyXG4gICAgICAgICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlLFxyXG4gICAgICAgICAgICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlLFxyXG4gICAgICAgICAgICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlLFxyXG4gICAgICAgICAgICAgICAgKS5mb3JtYXQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy51c2VyRGV0YWlsc1YyKCk7XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy5nZXRhc3NpZ25Ecm9wZG93bigpO1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuZ2V0dGFibGVEYXRhKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRDbGllbnRVc2VyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgaWYgKGVycm9yLmNvZGUgPT0gNDAzKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Vycm9yNDAzJ10pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGdldEFJY29uZmlnKCkge1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldEFJY29uZmlnKHRoaXMub2JqKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YSA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgIXRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmV2ZW50cz8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgW1wic2NydW1cIiwgXCJjbGVhbmluZ1wiXS5pbmNsdWRlcyh0aGlzLnR5cGUpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmV2ZW50cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHRpbWU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJISDptbVwiKSxcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBcIjE1XCIsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICF0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgJiZcclxuICAgICAgICAgICAgICBbXCJzY3J1bVwiLCBcImNsZWFuaW5nXCJdLmluY2x1ZGVzKHRoaXMudHlwZSlcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9IFwiZ2xvYmFsXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hdXRvVGFza0NvbmZpZz8udGFza1ZhbGlkaXR5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnW1widGFza1ZhbGlkaXR5XCJdID0ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJtaW5zXCIsXHJcbiAgICAgICAgICAgICAgICB0aW1lOiAxLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hdXRvVGFza0NvbmZpZz8udXNlcnMpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWdbXCJ1c2Vyc1wiXSA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLmFwcHJvdmVyRW5hYmxlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZ1tcImFwcHJvdmVyRW5hYmxlZFwiXSA9XHJcbiAgICAgICAgICAgICAgICBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoW1wic3RvcmVvcGVuYW5kY2xvc2VcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UgPSB7fTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyID0geyBvcGVuVGltZTogMCwgY2xvc2VUaW1lOiAwIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmRldGVjdGlvblR5cGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5kZXRlY3Rpb25UeXBlID0gXCJhbGxDYW1lcmFzXCI7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChbXCJzdG9yZWh5Z2llbmVtb25pdG9yaW5nXCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxldHlwZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc2NoZWR1bGUuc2NoZWR1bGV0eXBlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVzdGFydFRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnNjaGVkdWxlLm9wZW5UaW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVlbmRUaW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5zY2hlZHVsZS5jbG9zZVRpbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZWN1cnJlbmNlVHlwZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3JpbmcucmVjdXJyZW5jZS50eXBlO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVjdXJyZW5jZXRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnJlY3VycmVuY2UudGltZTtcclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5mbG9vckRldGVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLmZsb29yRGV0ZWN0aW9uID0ge1xyXG4gICAgICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoW1widHZjb21wbGlhbmNlXCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxldHlwZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy50dmNvbXBsaWFuY2U/LnNjaGVkdWxlPy5zY2hlZHVsZXR5cGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZXN0YXJ0VGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy50dmNvbXBsaWFuY2U/LnNjaGVkdWxlPy5vcGVuVGltZTtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlZW5kVGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy50dmNvbXBsaWFuY2U/LnNjaGVkdWxlPy5jbG9zZVRpbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZWN1cnJlbmNlU3RhdHVzID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LnR2Y29tcGxpYW5jZT8ucmVjdXJyZW5jZT8uc3RhdHVzO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVjdXJyZW5jZXRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8udHZjb21wbGlhbmNlPy5yZWN1cnJlbmNlPy50aW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNUaHJlc2hvbGRFbmFibGVkID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LnR2Y29tcGxpYW5jZT8uZGV0ZWN0ZWRTdGF0dXM/LnN0YXR1cztcclxuICAgICAgICAgICAgICB0aGlzLmRldGVjdGlvblRocmVzaG9sZCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy50dmNvbXBsaWFuY2U/LmRldGVjdGVkU3RhdHVzPy5kZXRlY3Rpb25zO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChbXCJxdWV1ZWFsZXJ0XCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxldHlwZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy50dmNvbXBsaWFuY2U/LnNjaGVkdWxlPy5zY2hlZHVsZXR5cGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZXN0YXJ0VGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy50dmNvbXBsaWFuY2U/LnNjaGVkdWxlPy5vcGVuVGltZTtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlZW5kVGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy50dmNvbXBsaWFuY2U/LnNjaGVkdWxlPy5jbG9zZVRpbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5xdWV1ZUxlbmd0aEVuYWJsZWQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8ucXVldWVhbGVydD8ucXVldWVMZW5ndGhFbmFibGVkO1xyXG4gICAgICAgICAgICAgIHRoaXMucXVldWVMaW1pdCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5xdWV1ZWFsZXJ0Py5xdWV1ZUxpbWl0O1xyXG4gICAgICAgICAgICAgIHRoaXMud2FpdFRpbWVFbmFibGVkID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LnF1ZXVlYWxlcnQ/LndhaXRUaW1lRW5hYmxlZDtcclxuICAgICAgICAgICAgICB0aGlzLndhaXRUaW1lTGltaXQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8ucXVldWVhbGVydD8ud2FpdFRpbWVMaW1pdDtcclxuICAgICAgICAgICAgICB0aGlzLmFsZXJ0Q29vbGRvd25FbmFibGVkID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LnF1ZXVlYWxlcnQ/LmFsZXJ0Q29vbGRvd25FbmFibGVkIHx8IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWxlcnRDb29sZG93blRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8ucXVldWVhbGVydD8uYWxlcnRDb29sZG93blRpbWUgfHwgXCIxMFwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChbXCJzdGFmZmdyb3VwaW5nXCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxldHlwZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5zdGFmZkdyb3VwaW5nPy5zY2hlZHVsZT8uc2NoZWR1bGV0eXBlIHx8IFwic3RhbmRhcmRcIjtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LnN0YWZmR3JvdXBpbmc/LnNjaGVkdWxlPy5vcGVuVGltZTtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlZW5kVGltZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5zdGFmZkdyb3VwaW5nPy5zY2hlZHVsZT8uY2xvc2VUaW1lO1xyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nID0ge307XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuY291bnRBbGVydCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuY291bnRBbGVydCA9IHtcclxuICAgICAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMyxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcudGltZVNwZW50QWxlcnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLnRpbWVTcGVudEFsZXJ0ID0ge1xyXG4gICAgICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLmhpYmVybmF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5oaWJlcm5hdGlvbiA9IHtcclxuICAgICAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogXCIwMTowMFwiLFxyXG4gICAgICAgICAgICAgICAgICBzdGFydFBlcmlvZDogXCJQTVwiLFxyXG4gICAgICAgICAgICAgICAgICBlbmRUaW1lOiBcIjAyOjAwXCIsXHJcbiAgICAgICAgICAgICAgICAgIGVuZFBlcmlvZDogXCJQTVwiLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydENvb2xkb3duRW5hYmxlZCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5zdGFmZkdyb3VwaW5nPy5hbGVydENvb2xkb3duRW5hYmxlZCB8fCBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmFsZXJ0Q29vbGRvd25UaW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LnN0YWZmR3JvdXBpbmc/LmFsZXJ0Q29vbGRvd25UaW1lIHx8IFwiMTBcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoW1wiYm94YWxlcnRcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmJveEFsZXJ0Py5zY2hlZHVsZT8uc2NoZWR1bGV0eXBlIHx8IFwic3RhbmRhcmRcIjtcclxuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmJveEFsZXJ0Py5zY2hlZHVsZT8ub3BlblRpbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZWVuZFRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYm94QWxlcnQ/LnNjaGVkdWxlPy5jbG9zZVRpbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZWN1cnJlbmNlVHlwZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ib3hBbGVydD8ucmVjdXJyZW5jZT8udHlwZTtcclxuICAgICAgICAgICAgICB0aGlzLnJlY3VycmVuY2V0aW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmJveEFsZXJ0Py5yZWN1cnJlbmNlPy50aW1lO1xyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYm94QWxlcnQgPSB7fTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYm94QWxlcnQuZW1wdHlTaGVsZkFsZXJ0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYm94QWxlcnQuZW1wdHlTaGVsZkFsZXJ0ID0ge1xyXG4gICAgICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKFtcImVtcGxveWVlQ291bnRcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmVtcGxveWVlQ291bnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5lbXBsb3llZUNvdW50ID0ge307XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmVtcGxveWVlQ291bnQ/LnNjaGVkdWxlPy5zY2hlZHVsZXR5cGUgfHwgXCJzdGFuZGFyZFwiO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVzdGFydFRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZW1wbG95ZWVDb3VudD8uc2NoZWR1bGU/Lm9wZW5UaW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVlbmRUaW1lID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmVtcGxveWVlQ291bnQ/LnNjaGVkdWxlPy5jbG9zZVRpbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZWN1cnJlbmNlVHlwZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5lbXBsb3llZUNvdW50Py5yZWN1cnJlbmNlPy50eXBlO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVjdXJyZW5jZXRpbWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZW1wbG95ZWVDb3VudD8ucmVjdXJyZW5jZT8udGltZTtcclxuICAgICAgICAgICAgICB0aGlzLnJlY3VycmVuY2VTdGF0dXMgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZW1wbG95ZWVDb3VudD8ucmVjdXJyZW5jZT8uc3RhdHVzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICBcImhhbGZzaHV0dGVyXCIsXHJcbiAgICAgICAgICAgICAgICBcInR2Y29tcGxpYW5jZVwiLFxyXG4gICAgICAgICAgICAgICAgXCJxdWV1ZWFsZXJ0XCIsXHJcbiAgICAgICAgICAgICAgICBcImNhbWVyYXRhbXBlcmluZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZW9wZW5hbmRjbG9zZVwiLFxyXG4gICAgICAgICAgICAgICAgXCJtb2JpbGV1c2FnZWRldGVjdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgXCJzdG9yZWh5Z2llbmVtb25pdG9yaW5nXCIsXHJcbiAgICAgICAgICAgICAgICBcInVuaWZvcm1kZXRlY3Rpb25cIixcclxuICAgICAgICAgICAgICAgIFwic3RhZmZncm91cGluZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJib3hhbGVydFwiLFxyXG4gICAgICAgICAgICAgICAgXCJlbXBsb3llZUNvdW50XCIsXHJcbiAgICAgICAgICAgICAgXS5pbmNsdWRlcyh0aGlzLnR5cGUpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2FtZXJhQW5nbGVFbmFibGVkID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmNhbWVyYUFuZ2xlPy5lbmFibGVkIHx8IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWxlcnR0aW1la2V5Y29uZmlnID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmFsZXJ0Q29uZmlnPy5hbGxvd0J1ZmZlcj8uZW5hYmxlZCB8fFxyXG4gICAgICAgICAgICAgICAgZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNvdXJjZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hZHZhbmNlZENvbmZpZz8uYXVkaXRDb25maWdcclxuICAgICAgICAgICAgICAgICAgPy5pbnB1dFNvdXJjZUZpbGUgfHwgXCJcIjtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZWN0aW9uU3RhdHVzID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmFkdmFuY2VkQ29uZmlnPy5kZXRlY3RlZFN0YXR1c1xyXG4gICAgICAgICAgICAgICAgICA/LmRldGVjdGlvbnMgfHwgW107XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGFwcm9jZXNzaW5nID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmFkdmFuY2VkQ29uZmlnPy5kYXRhUHJvY2Vzc2luZyB8fCBcIlwiO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWcgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZXhwb3J0Q29uZmlnPy5mb3JtYXQgfHwgW107XHJcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25rZXljb25maWcgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYWxlcnRDb25maWc/LmFsZXJ0U2VuZFRvPy5lbmFibGVkIHx8XHJcbiAgICAgICAgICAgICAgICBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmF1dG90YXNra2V5Y29uZmlnID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmF1dG9UYXNrQ29uZmlnPy5lbmFibGVkIHx8IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhwb3J0a2V5Y29uZmlnID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmV4cG9ydENvbmZpZz8uZW5hYmxlZCB8fCBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmRldGVjdGVkc3RhdHVza2V5Y29uZmlnID1cclxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmFkdmFuY2VkQ29uZmlnPy5kZXRlY3RlZFN0YXR1c1xyXG4gICAgICAgICAgICAgICAgICA/LmVuYWJsZWQgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5hdWRpdGtleWNvbmZpZyA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hZHZhbmNlZENvbmZpZz8uYXVkaXRDb25maWdcclxuICAgICAgICAgICAgICAgICAgPy5lbmFibGVkIHx8IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYXV0b1Rhc2tDb25maWc/LnRhc2tWYWxpZGl0eT8udHlwZSA9PSBcImRheXNcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW1lU2xvdCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDMgfSwgKF8sIGkpID0+IGkgKyAxKTtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmF1dG9UYXNrQ29uZmlnPy50YXNrVmFsaWRpdHk/LnR5cGUgPT0gXCJob3Vyc1wiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVTbG90ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMjQgfSwgKF8sIGkpID0+IGkgKyAxKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW1lU2xvdCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IFtdO1xyXG4gICAgICAgICAgICAvLyB0aGlzLmNvdmVyYWdlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY292ZXJhZ2U7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuY2hlY2tsaXN0SWQgPSByZXMuZGF0YS5jaGVja0xpc3REZXRhaWxzLl9pZDtcclxuICAgICAgICAgICAgLy8gdGhpcy50eXBlID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscy5jaGVja0xpc3RUeXBlO1xyXG4gICAgICAgICAgICB0aGlzLmdldENsaWVudFVzZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRab25lTGlzdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldFRlYW1MaXN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIGlmIChlcnJvci5jb2RlID09IDQwMykge1xyXG4gICAgICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lcnJvcjQwMyddKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJbml0aWFsRGF0YShkYXRhOiBhbnksIGNoYW5nZT86IGFueSkge1xyXG4gICAgbGV0IHRlbXBJZCA9IGRhdGEubWFwKChlbDogYW55KSA9PiBlbD8uaWQpO1xyXG4gICAgbGV0IHJlcyA9IHRoaXMuc3RvcmVMaXN0LmZpbHRlcigoZWw6IGFueSkgPT4gdGVtcElkLmluY2x1ZGVzKGVsPy5faWQpKTtcclxuICAgIHJlcy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IChlbGVtZW50LmlzU2VsZWN0ZWQgPSB0cnVlKSk7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSByZXM7XHJcbiAgICBpZiAodGhpcy5hc3NpZ25UeXBlID09PSBcInN0b3JlXCIgfHwgdGhpcy5hc3NpZ25UeXBlID09PSBcInVzZXJcIikge1xyXG4gICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgICAvLyB0aGlzLnVzZXJEZXRhaWxzKCksXHJcbiAgICAgIC8vICh0aGlzLmFzc2lnblR5cGUgPT09ICdzdG9yZScgJiYgdGhpcy5pbml0aWFsTG9hZGluZykgPyAodGhpcy5pbml0aWFsTG9hZGluZyA9IGZhbHNlKSA6IHRoaXMuZ2V0VGFibGVEYXRhKGNoYW5nZSA/IGNoYW5nZSA6ICcnKTtcclxuICAgICAgdGhpcy5pZExpc3QgPSB0aGlzLnNpbmdsZUFzc2lnbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaWRMaXN0ID0gdGhpcy5ncm91cEFzc2lnbjtcclxuICAgICAgdGhpcy51c2VyRGV0YWlsc1YyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUYWJsZURhdGEoY2hhbmdlPzogYW55KSB7XHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgaWYgKHRoaXMuYXNzaWduU2luZ2xlPy5sZW5ndGgpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbi5sZW5ndGggIT1cclxuICAgICAgICB0aGlzLmFzc2lnblNpbmdsZS5sZW5ndGhcclxuICAgICAgKSB7XHJcbiAgICAgICAgY291bnQrKztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24uZm9yRWFjaCgoYXNzaWduOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgZmluZExpc3QgPSB0aGlzLmFzc2lnblNpbmdsZS5maWx0ZXIoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnN0b3JlSWQgPT0gYXNzaWduLnN0b3JlSWQsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoZmluZExpc3QubGVuZ3RoKSB7XHJcbiAgICAgICAgICBpZiAoZmluZExpc3QubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgIGFzc2lnbi51c2VyRW1haWwudG9Mb3dlckNhc2UoKSAhPVxyXG4gICAgICAgICAgICAgIGZpbmRMaXN0WzBdLnVzZXJFbWFpbC50b0xvd2VyQ2FzZSgpICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5jb3ZlcmFnZSA9PT0gXCJzdG9yZVwiXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGFzc2lnbi51c2VyRW1haWwgPSBmaW5kTGlzdFswXS51c2VyRW1haWw7XHJcbiAgICAgICAgICAgICAgYXNzaWduLnVzZXJOYW1lID0gZmluZExpc3RbMF0udXNlck5hbWU7XHJcbiAgICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChjb3VudCkge1xyXG4gICAgICAgIHRoaXMudXBsb2FkID0gY2hhbmdlID8gXCJ1cGxvYWRcIiA6IFwic3RvcmVcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMudGFibGVBcnJheSA9IHRoaXMuYXNzaWduU2luZ2xlID8gdGhpcy5hc3NpZ25TaW5nbGUgOiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ247XHJcbiAgICBjaGFuZ2UgPyAodGhpcy50YWJsZUFycmF5ID0gdGhpcy5hc3NpZ25TaW5nbGUpIDogW107XHJcbiAgICBpZiAodGhpcy51cGxvYWQgPT09IFwic3RvcmVcIikge1xyXG4gICAgICBsZXQgdGFibGUgPSBbXHJcbiAgICAgICAgLi4udGhpcy50YWJsZUFycmF5LFxyXG4gICAgICAgIC4uLnRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbixcclxuICAgICAgXTtcclxuICAgICAgbGV0IHVuaXF1ZVRhYmxlID0gbmV3IE1hcCgpO1xyXG4gICAgICAvLyBDb252ZXJ0IG9iamVjdHMgdG8gSlNPTiBzdHJpbmdzIGZvciBmdWxsIGNvbXBhcmlzb25cclxuICAgICAgdGFibGUuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaXRlbSA9IHtcclxuICAgICAgICAgIHN0b3JlTmFtZTogaXRlbT8uc3RvcmVOYW1lLFxyXG4gICAgICAgICAgc3RvcmVJZDogaXRlbS5zdG9yZUlkLFxyXG4gICAgICAgICAgdXNlckVtYWlsOiBpdGVtLnVzZXJFbWFpbC50b0xvd2VyQ2FzZSgpLFxyXG4gICAgICAgICAgdXNlck5hbWU6IGl0ZW0udXNlck5hbWUsXHJcbiAgICAgICAgICBfaWQ6IGl0ZW0uX2lkLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICBfaWQ6IGl0ZW0uX2lkLFxyXG4gICAgICAgICAgLi4uKHRoaXMuc3RvcmVDb3ZlcmFnZVxyXG4gICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICB1c2VyRW1haWw6IGl0ZW0udXNlckVtYWlsLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgICAgICAgc3RvcmVOYW1lOiBpdGVtPy5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQga2V5ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7IC8vIENvbnZlcnQgZW50aXJlIG9iamVjdCB0byBzdHJpbmcgYXMgYSBrZXlcclxuICAgICAgICBpZiAoIXVuaXF1ZVRhYmxlLmhhcyhkYXRhKSkge1xyXG4gICAgICAgICAgdW5pcXVlVGFibGUuc2V0KGtleSwgaXRlbSk7IC8vIFN0b3JlIHRoZSBvYmplY3Qgb25seSBpZiBpdCdzIGNvbXBsZXRlbHkgdW5pcXVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5hc3NpZ25TaW5nbGUgPSBBcnJheS5mcm9tKHVuaXF1ZVRhYmxlLnZhbHVlcygpKTtcclxuICAgICAgdGhpcy50YWJsZUFycmF5ID0gdGhpcy5hc3NpZ25TaW5nbGU7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudXBsb2FkID09PSBcInVwbG9hZFwiKSB7XHJcbiAgICAgIHRoaXMudGFibGVBcnJheSA9IHRoaXMuYXNzaWduU2luZ2xlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJsZUFycmF5ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduO1xyXG4gICAgICB0aGlzLmFzc2lnblNpbmdsZSA9IHRoaXMudGFibGVBcnJheTtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVBcnJheT8ubGVuZ3RoXHJcbiAgICAgID8gKHRoaXMuc2hvd0ltYWdlID0gZmFsc2UpXHJcbiAgICAgIDogKHRoaXMuc2hvd0ltYWdlID0gdHJ1ZSk7XHJcbiAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHRoaXMudGFibGVBcnJheS5sZW5ndGg7XHJcbiAgICBpZiAodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LCAyMF07XHJcbiAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSBmYWxzZTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlQXJyYXkuc2xpY2UoXHJcbiAgICAgIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplIC0gdGhpcy5zaXplLFxyXG4gICAgICB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhY2NvcmRpYW4oaW5kZXg6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuc2hvdyA9PSBpbmRleCkge1xyXG4gICAgICB0aGlzLnNob3cgPSAtMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IGluZGV4O1xyXG4gICAgfVxyXG4gIH1cclxuICBjb25maWdhY2NvcmRpYW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3djb25maWcgPSAhdGhpcy5zaG93Y29uZmlnO1xyXG4gIH1cclxuICBhZHZhbmNlYWNjb3JkaWFuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93YWR2YW5jZSA9ICF0aGlzLnNob3dhZHZhbmNlO1xyXG4gIH1cclxuICBDaGVja2xpc3QoKSB7XHJcbiAgICAvLyB0aGlzLm1vYmlsZXVzYWdlZGV0ZWN0aW9uID0gdHJ1ZTtcclxuICAgIC8vIHRoaXMuc3RvcmVvcGVuYW5kY2xvc2VkZXRlY3Rpb24gPSBmYWxzZTtcclxuICB9XHJcbiAgb21pdF9zcGVjaWFsX2NoYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdmFyIGs7XHJcbiAgICBrID0gZXZlbnQuY2hhckNvZGU7IC8vICAgICAgICAgayA9IGV2ZW50LmtleUNvZGU7ICAoQm90aCBjYW4gYmUgdXNlZClcclxuICAgIHJldHVybiBrID09IDggfHwgayA9PSAzMiB8fCAoayA+PSA0OCAmJiBrIDw9IDU3KTtcclxuICB9XHJcblxyXG4gIGNsaWNrQUljb25maWd1cmUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jb25maWd1cmVUeXBlID0gdmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlTGltaXQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA8IDAgJiYgdGhpcy50eXBlID09IFwibW9iaWxldXNhZ2VkZXRlY3Rpb25cIikge1xyXG4gICAgICAvLyBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5lcnJvcm1zZyA9IHRydWU7XHJcbiAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsZXJ0LnVzYWdlRXhjZWVkcyA9ICcnO1xyXG4gICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMudHlwZSA9PSBcInN0b3Jlb3BlbmFuZGNsb3NlXCIgJiZcclxuICAgICAgIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgJiZcclxuICAgICAgIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jaGVja0J1ZmZlciA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHRoaXMuZXJyb3Jtc2cgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvdmVyYWdlOiBhbnkgPSBcInN0b3JlXCI7XHJcblxyXG4gIHNlbGVjdFJhZGlvKGRhdGE6IGFueSwgY2hhbmdlPzogYW55KSB7XHJcbiAgICB0aGlzLmNvdmVyYWdlID0gZGF0YTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICB0aGlzLnRhYmxlRmlsdGVyID0gXCJcIjtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IFtdO1xyXG4gICAgdGhpcy50YWJsZUFycmF5ID0gW107XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgaWYgKGRhdGEgPT09IFwic3RvcmVcIikge1xyXG4gICAgICB0aGlzLnN0b3JlQ292ZXJhZ2UgPSB0cnVlO1xyXG4gICAgICB0aGlzLnVzZXJDb3ZlcmFnZSA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmIChkYXRhID09PSBcInVzZXJcIikge1xyXG4gICAgICB0aGlzLnVzZXJDb3ZlcmFnZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3RvcmVDb3ZlcmFnZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RJbml0aWFsVGFiKCk7XHJcbiAgICBpZiAodGhpcy5jb3ZlcmFnZSA9PT0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY292ZXJhZ2UpIHtcclxuICAgICAgdGhpcy5zaW5nbGVBc3NpZ24gPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zaW5nbGVBc3NpZ247XHJcbiAgICAgIHRoaXMuZ3JvdXBBc3NpZ24gPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5ncm91cEFzc2lnbjtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hc3NpZ25UeXBlID8gdGhpcy51c2VyRGV0YWlscygpIDogXCJcIjtcclxuICAgICAgfSwgMzAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNpbmdsZUFzc2lnbiA9IFtdO1xyXG4gICAgICB0aGlzLmdyb3VwQXNzaWduID0gW107XHJcbiAgICAgICgodGhpcy5hc3NpZ25TaW5nbGUgPSBbXSksICh0aGlzLmFzc2lnbkdyb3VwID0gW10pKTtcclxuICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNob3dJbWFnZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldGFzc2lnbkRyb3Bkb3duKCk7XHJcbiAgfVxyXG5cclxuICBleGNlbERhdGE6IGFueTtcclxuICBzaG93VXNlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dUZWFtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd1N0b3JlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0NsdXN0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgb25GaWxlVXBsb2FkKGV2ZW50OiBhbnksIHJldXBsb2FkPzogYW55KSB7XHJcbiAgICB0aGlzLnZhbGlkYXRlZFN0b3JlID0gW107XHJcbiAgICB0aGlzLnZhbGlkYXRlZFVzZXIgPSBbXTtcclxuICAgIHRoaXMudmFsaWRhdGVkQ2x1c3RlciA9IFtdO1xyXG4gICAgdGhpcy52YWxpZGF0ZWRUZWFtID0gW107XHJcbiAgICB0aGlzLm5ld1VzZXIgPSBbXTtcclxuICAgIHRoaXMuaW5hY3RpdmVTdG9yZXMgPSBbXTtcclxuICAgIHRoaXMuc2hvd1VzZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1RlYW0gPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1N0b3JlID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dDbHVzdGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dJbmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSAxO1xyXG4gICAgdGhpcy5yZXVwbG9hZCA9IGZhbHNlO1xyXG4gICAgdGhpcy51cGxvYWQgPSBcInVwbG9hZFwiO1xyXG4gICAgdGhpcy51c2VyRGF0YSA9IHRoaXMuZXhjZWxVc2VyRGF0YSA9IFtdO1xyXG4gICAgbGV0IGRhdGE6IGFueTtcclxuICAgIGNvbnN0IHRhcmdldDogRGF0YVRyYW5zZmVyID0gPERhdGFUcmFuc2Zlcj5ldmVudC50YXJnZXQ7XHJcbiAgICBsZXQgaXNFeGNlbEZpbGUgPSAhIXRhcmdldC5maWxlc1swXS5uYW1lLm1hdGNoKC8oLnhsc3wueGxzeCkvKTtcclxuICAgIGxldCBlcnJvcjogYW55ID0gW107XHJcbiAgICBsZXQgVmFsaWRhdGlvbkVycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAoaXNFeGNlbEZpbGUpIHtcclxuICAgICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0YXJnZXQuZmlsZXNbMF0pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgICBjb25zdCB3YjogWExTWC5Xb3JrQm9vayA9IFhMU1gucmVhZChic3RyLCB7IHR5cGU6IFwiYmluYXJ5XCIgfSk7XHJcbiAgICAgICAgY29uc3Qgd3NuYW1lOiBzdHJpbmcgPSB3Yi5TaGVldE5hbWVzWzBdO1xyXG4gICAgICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWVdO1xyXG4gICAgICAgIGRhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MpO1xyXG4gICAgICAgIHRoaXMuZXhjZWxEYXRhID0gZGF0YTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAhZGF0YS5sZW5ndGggfHxcclxuICAgICAgICAgIGRhdGEuc29tZSgoaXRlbTogYW55KSA9PiBcImNsdXN0ZXJOYW1lXCIgaW4gaXRlbSB8fCBcInRlYW1OYW1lXCIgaW4gaXRlbSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBVcGxvYWQgYSBWYWxpZCBmaWxlLlwiKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkS2V5cyA9IHRoaXMuc3RvcmVDb3ZlcmFnZVxyXG4gICAgICAgICAgPyBbXCJzdG9yZU5hbWVcIiwgXCJ1c2VyTmFtZVwiLCBcInVzZXJFbWFpbFwiXVxyXG4gICAgICAgICAgOiBbXCJ1c2VyTmFtZVwiLCBcInVzZXJFbWFpbFwiXTsgLy8gTXVzdCBhbHdheXMgYmUgcHJlc2VudFxyXG4gICAgICAgIGNvbnN0IG9wdGlvbmFsS2V5cyA9IHRoaXMuc3RvcmVDb3ZlcmFnZVxyXG4gICAgICAgICAgPyBbXCJ1c2VyUGhvbmVcIiwgXCJjaXR5XCJdXHJcbiAgICAgICAgICA6IFtcInVzZXJQaG9uZVwiLCBcImNpdHlcIl07XHJcblxyXG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSBkYXRhLnNvbWUoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGl0ZW0pO1xyXG4gICAgICAgICAgY29uc3QgaGFzUmVxdWlyZWRLZXlzID0gcmVxdWlyZWRLZXlzLmV2ZXJ5KChrZXkpID0+XHJcbiAgICAgICAgICAgIGtleXMuaW5jbHVkZXMoa2V5KSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBjb25zdCBhbGxLZXlzQXJlQWxsb3dlZCA9IGtleXMuZXZlcnkoXHJcbiAgICAgICAgICAgIChrZXkpID0+IHJlcXVpcmVkS2V5cy5pbmNsdWRlcyhrZXkpIHx8IG9wdGlvbmFsS2V5cy5pbmNsdWRlcyhrZXkpLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJldHVybiBoYXNSZXF1aXJlZEtleXMgJiYgYWxsS2V5c0FyZUFsbG93ZWQ7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICghaXNWYWxpZCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIFVwbG9hZCBhIFZhbGlkIGZpbGUuXCIpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZGF0YSA9IGRhdGEuZmlsdGVyKChpdGVtOmFueSkgPT4ge1xyXG4gICAgICAgIC8vICAgcmV0dXJuICgoaXRlbT8uc3RvcmVOYW1lICYmIGl0ZW0/LnN0b3JlTmFtZS50cmltKCkgIT0gJycgJiYgaXRlbT8uc3RvcmVOYW1lLnRyaW0oKSAhPSBudWxsKSB8fCAoaXRlbT8udXNlck5hbWUgJiYgaXRlbT8udXNlck5hbWUudHJpbSgpICE9ICcnICYmIGl0ZW0/LnVzZXJOYW1lLnRyaW0oKSAhPSBudWxsKSB8fCAoaXRlbT8udXNlckVtYWlsICYmIGl0ZW0/LnVzZXJFbWFpbC50cmltKCkgIT0gJycgJiYgaXRlbT8udXNlckVtYWlsLnRyaW0oKSAhPSBudWxsKSlcclxuICAgICAgICAvLyB9KVxyXG5cclxuICAgICAgICBkYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQ/LnVzZXJFbWFpbCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LnVzZXJFbWFpbCA9IGVsZW1lbnQ/LnVzZXJFbWFpbC5yZXBsYWNlKC9cXHMvZywgXCJcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5zdG9yZUNvdmVyYWdlKSB7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50Py5zdG9yZU5hbWU/LnRyaW0oKSA9PSBcIlwiIHx8IGVsZW1lbnQuc3RvcmVOYW1lID09IG51bGwpIHtcclxuICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFN0b3JlTmFtZSAtIEEke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKSA9PSBcIlwiIHx8IGVsZW1lbnQudXNlck5hbWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgVXNlck5hbWUgLSBCJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQ/LnVzZXJFbWFpbD8udHJpbSgpID09IFwiXCIgfHwgZWxlbWVudC51c2VyRW1haWwgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgdXNlckVtYWlsIC0gQyR7aW5kZXggKyAyfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICBlbGVtZW50Py51c2VyRW1haWwgJiZcclxuICAgICAgICAgICAgICAhZWxlbWVudC51c2VyRW1haWwubWF0Y2goXHJcbiAgICAgICAgICAgICAgICAvXlthLXpBLVowLTkuXy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsNn0kLyxcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgdXNlckVtYWlsIC0gQyR7aW5kZXggKyAyfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmNsdXN0ZXJOYW1lKSB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5jbHVzdGVyTmFtZT8udHJpbSgpID09IFwiXCIgfHxcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuY2x1c3Rlck5hbWUgPT0gbnVsbFxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgZXJyb3IucHVzaChgSW52YWxpZCBjbHVzdGVyTmFtZSAtIEQke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51c2VyQ292ZXJhZ2UgJiYgIWVsZW1lbnQ/LnN0b3JlTmFtZSkge1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKSA9PSBcIlwiIHx8IGVsZW1lbnQudXNlck5hbWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgVXNlck5hbWUgLSBBJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQ/LnVzZXJFbWFpbD8udHJpbSgpID09IFwiXCIgfHwgZWxlbWVudC51c2VyRW1haWwgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgdXNlckVtYWlsIC0gQiR7aW5kZXggKyAyfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICBlbGVtZW50Py51c2VyRW1haWwgJiZcclxuICAgICAgICAgICAgICAhZWxlbWVudC51c2VyRW1haWwubWF0Y2goXHJcbiAgICAgICAgICAgICAgICAvXlthLXpBLVowLTkuXy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsNn0kLyxcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgdXNlckVtYWlsIC0gQiR7aW5kZXggKyAyfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnRlYW1OYW1lKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudGVhbU5hbWU/LnRyaW0oKSA9PSBcIlwiIHx8IGVsZW1lbnQudGVhbU5hbWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgZXJyb3IucHVzaChgSW52YWxpZCB0ZWFtTmFtZSAtIEMke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSB1cGxvYWQgYSB2YWxpZCBmaWxlLlwiKTtcclxuICAgICAgICAgICAgVmFsaWRhdGlvbkVycm9yID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnN0b3JlQ292ZXJhZ2UpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gXCJzdG9yZVwiKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHN0b3JlTmFtZTogZWxlbWVudD8uc3RvcmVOYW1lPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyTmFtZTogZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogZWxlbWVudD8udXNlckVtYWlsPy50b0xvd2VyQ2FzZSgpPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyUGhvbmU6IGVsZW1lbnQ/LnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgICAgIC8vIGNoZWNrRmxhZzogZWxlbWVudD8uY2hlY2sgPyBlbGVtZW50LmNoZWNrIDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjaXR5OiBlbGVtZW50Py5jaXR5LFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzdG9yZVwiLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBzdG9yZU5hbWU6IGVsZW1lbnQ/LnN0b3JlTmFtZT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdXNlck5hbWU6IGVsZW1lbnQ/LnVzZXJOYW1lPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGVsZW1lbnQ/LnVzZXJFbWFpbD8udG9Mb3dlckNhc2UoKT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgY2x1c3Rlck5hbWU6IGVsZW1lbnQ/LmNsdXN0ZXJOYW1lLFxyXG4gICAgICAgICAgICAgICAgdXNlclBob25lOiBlbGVtZW50Py51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgICAgICAvLyBjaGVja0ZsYWc6IGVsZW1lbnQ/LmNoZWNrID8gZWxlbWVudC5jaGVjayA6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogZWxlbWVudD8uY2l0eSxcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiY2x1c3RlclwiLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNlckNvdmVyYWdlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFzc2lnblR5cGUgPT09IFwidXNlclwiKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHVzZXJOYW1lOiBlbGVtZW50Py51c2VyTmFtZT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdXNlckVtYWlsOiBlbGVtZW50Py51c2VyRW1haWw/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHVzZXJQaG9uZTogZWxlbWVudD8udXNlclBob25lLFxyXG4gICAgICAgICAgICAgICAgLy8gY2hlY2tGbGFnOiBlbGVtZW50Py5jaGVjayA/IGVsZW1lbnQuY2hlY2sgOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwidXNlclwiLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICB1c2VyTmFtZTogZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogZWxlbWVudD8udXNlckVtYWlsPy50b0xvd2VyQ2FzZSgpPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB0ZWFtTmFtZTogZWxlbWVudD8udGVhbU5hbWUsXHJcbiAgICAgICAgICAgICAgICB1c2VyUGhvbmU6IGVsZW1lbnQ/LnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgICAgIC8vIGNoZWNrRmxhZzogZWxlbWVudD8uY2hlY2sgPyBlbGVtZW50LmNoZWNrIDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInRlYW1zXCIsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGVycm9yLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpO1xyXG4gICAgICAgICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICAgICAgdGl0bGU6IGBJbnZhbGlkIGRldGFpbHMhYCxcclxuICAgICAgICAgICAgY29udGVudDogYFBsZWFzZSBwcm92aWRlIGNvcnJlY3QgYW5kIGNvbXBsZXRlIHN0b3JlIGluZm9ybWF0aW9uLmAsXHJcbiAgICAgICAgICAgIGJ1dHRvbnR5cGU6IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMuYWZ0ZXJVcGxsb2FkKHBvcHVwY29udGVudCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICFWYWxpZGF0aW9uRXJyb3IgPyB0aGlzLmFmdGVyVXBsbG9hZCgpIDogXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIFVwbG9hZCBhIEV4Y2VsIGZpbGUuXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVVc2VyRGV0YWlscyhkZWw/OiBhbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGlkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBhc3NpZ25lZFVzZXJzOiB0aGlzLnVzZXJEYXRhLFxyXG4gICAgICB1cGxvYWRVc2VyOiB0cnVlLFxyXG4gICAgICB0eXBlOlxyXG4gICAgICAgIHRoaXMub2JqPy50eXBlICYmXHJcbiAgICAgICAgICBbXCJtb2JpbGV1c2FnZWRldGVjdGlvblwiLCBcInN0b3Jlb3BlbmFuZGNsb3NlXCJdLmluY2x1ZGVzKHRoaXMub2JqLnR5cGUpXHJcbiAgICAgICAgICA/IHRoaXMub2JqLnR5cGVcclxuICAgICAgICAgIDogXCJcIixcclxuICAgICAgLi4uKGRlbCA/IHsgZGVsZXRlOiBmYWxzZSB9IDoge30pLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgIH07XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UudmFsaWRhdGVVc2VyKHBhcmFtcylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCB2YWxpZGF0ZTogQm9vbGVhbiA9IHRydWU7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHJlcz8uZGF0YT8uRXhpc3RzRW1haWw/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICAgIHJlcz8uZGF0YT8uRXhpc3RzRW1haWwuam9pbihcIiwgXCIpICsgXCIgXCIgKyByZXM/LmRhdGE/Lm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXM/LmRhdGE/LmlkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuX2lkID0gcmVzLmRhdGEuaWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RJZCA9IHJlcy5kYXRhLmlkO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbXTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRGV0YWlscygpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LmRvbWFpbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGxldCBlbWFpbCA9IHJlcz8uZGF0YT8uZG9tYWluLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLmVtYWlsKTtcclxuICAgICAgICAgICAgICAgIC8vICsnICcrJzxhIGhyZWY9XCJwcm9maWxlL2RvbWFpbnNcIj5BZGQgZG9tYWluPC9hPidcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICAgICAgZW1haWwuam9pbihcIiwgXCIpICsgXCIgXCIgKyBcIkRvbWFpbiBpcyBub3QgRXhpc3RzLlwiLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlcz8uZGF0YT8udXNlcj8ubGVuZ3RoICYmIHJlcz8uZGF0YT8uc3RvcmU/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgc3RvcmU6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgIGxldCBpbmFjdGl2ZVN0b3JlOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgIHN0b3JlID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSA9PSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZSA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm1lc3NhZ2UgPT0gXCJzdG9yZSBpcyBpbmFjdGl2ZVwiO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gbG9jYXRpb24gPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gICByZXR1cm4gaXRlbS5tZXNzYWdlICE9ICcnICYmIGl0ZW0ubWVzc2FnZSAhPSAnc3RvcmUgaXMgaW5hY3RpdmUnO1xyXG4gICAgICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgc3RvcmUgPSBbLi4ubmV3IFNldChzdG9yZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgICAgIGluYWN0aXZlU3RvcmUgPSBbXHJcbiAgICAgICAgICAgICAgICAgIC4uLm5ldyBTZXQoaW5hY3RpdmVTdG9yZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpLFxyXG4gICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW1xyXG4gICAgICAgICAgICAgICAgICAuLi5uZXcgU2V0KGxvY2F0aW9uLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnN0b3JlKSksXHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHN0b3JlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBgTmV3IFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoaW5hY3RpdmVTdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGBOZXcgU3RvcmUgYW5kIEluYWN0aXZlIFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VzcmM6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBhIG5ldyBzdG9yZS4gQWRkIG5ldyBzdG9yZXMgaW4gdGhlIFN0b3JlIE1hbmFnZW1lbnQgdW5kZXIgTWFuYWdlIG1lbnUuYCxcclxuICAgICAgICAgICAgICAgICAgICBidXR0b250eXBlOiBcIkFkZHN0b3JlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VidGl0bGU6IHN0b3JlLmpvaW4oXCIsIFwiKSxcclxuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogbG9jYXRpb24uam9pbigpLFxyXG4gICAgICAgICAgICAgICAgICAgIGluYWN0aXZlU3RvcmVzOiBpbmFjdGl2ZVN0b3JlLmpvaW4oKSxcclxuICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5hY3RpdmVTdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZXNyYzpcclxuICAgICAgICAgICAgICAgICAgICAgICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBgSW5hY3RpdmUgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWAsXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYEluYWN0aXZlIHN0b3JlcyBmb3VuZCBpbiB0aGUgLmNzdi4gUGxlYXNlIGFjdGl2YXRlIG9yIHNraXAgdGhlbSB0byBwcm9jZWVkIHRvIGFzc2lnbi5gLFxyXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbnR5cGU6IFwiQWN0aXZlc3RvcmVcIixcclxuICAgICAgICAgICAgICAgICAgICBzdWJ0aXRsZTogaW5hY3RpdmVTdG9yZS5qb2luKFwiLCBcIiksXHJcbiAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHBvcHVwY29udGVudCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIixcclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gXCJjb25maXJtU3RvcmVcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzL2FkZGl0aW9uLW1ldGhvZGApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFwiYWN0aXZlU3RvcmVcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFwic2tpcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgdXNlckRhdGFDb3B5ID0gWy4uLnRoaXMudXNlckRhdGFdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGFDb3B5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0b3JlLmluY2x1ZGVzKGl0ZW0uc3RvcmVOYW1lKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFpbmFjdGl2ZVN0b3JlLmluY2x1ZGVzKGl0ZW0uc3RvcmVOYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy51c2VyRGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIEVudGVyIHZhbGlkIERldGFpbHNcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEZXRhaWxzID0gdGhpcy51c2VyRGF0YS5tYXAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0udXNlckVtYWlsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCB1c2VyID0gWy4uLnJlcy5kYXRhLnVzZXJdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGEudXNlciA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdXNlci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJEZXRhaWxzLmluY2x1ZGVzKGl0ZW0udXNlckVtYWlsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLnVzZXIucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEudXNlci5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZXNyYzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBgSW52aXRlIG5ldyB1c2VycyBhZGRlZCBpbiBDU1ZgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBuZXcgdXNlcnMuIEludml0ZSB1c2VycyBieSBzZW5kaW5nIG1haWwgdG8gdGhlbWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9udHlwZTogXCJJbnZpdGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyOiByZXMuZGF0YS51c2VyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD8ubWVzc2FnZSA9PSBcImNvbmZpcm1cIiB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID09IFwic2tpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFwic2tpcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyRGV0YWlscy5pbmNsdWRlcyhpdGVtLnVzZXJFbWFpbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py51c2VyLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMudXNlckRhdGEuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVzZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXNlci51c2VyRW1haWwgPT0gaXRlbS51c2VyRW1haWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpdGVtLmludml0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgcmVzLmRhdGEudXNlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtPy5tZXNzYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2l0ZW0udXNlckVtYWlsfSAtICR7aXRlbS5tZXNzYWdlfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnVzZXJEYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFBsZWFzZSBFbnRlciB2YWxpZCBEZXRhaWxzYCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFVzZXIoZGVsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFVzZXIoZGVsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzPy5kYXRhPy51c2VyPy5sZW5ndGggfHwgcmVzPy5kYXRhPy5zdG9yZT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvcHVwY29udGVudDtcclxuICAgICAgICAgICAgICAgIGxldCBzdG9yZTogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb246IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgbGV0IGluYWN0aXZlU3RvcmU6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcz8uZGF0YT8udXNlcj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VzcmM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogYEludml0ZSBuZXcgdXNlcnMgYWRkZWQgaW4gQ1NWYCxcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgbmV3IHVzZXJzLiBJbnZpdGUgdXNlcnMgYnkgc2VuZGluZyBtYWlsIHRvIHRoZW1gLFxyXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbnR5cGU6IFwiSW52aXRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlcjogcmVzLmRhdGEudXNlcixcclxuICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHN0b3JlID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5tZXNzYWdlID09IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZSA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSA9PSBcInN0b3JlIGlzIGluYWN0aXZlXCI7XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gbG9jYXRpb24gPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAvLyAgIHJldHVybiBpdGVtLm1lc3NhZ2UgIT0gJyc7XHJcbiAgICAgICAgICAgICAgICAgIC8vIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgc3RvcmUgPSBbLi4ubmV3IFNldChzdG9yZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZSA9IFtcclxuICAgICAgICAgICAgICAgICAgICAuLi5uZXcgU2V0KGluYWN0aXZlU3RvcmUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmUpKSxcclxuICAgICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgLi4ubmV3IFNldChsb2NhdGlvbi5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpLFxyXG4gICAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoc3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gYE5ldyBTdG9yZSBmb3VuZCBpbiB1cGxvYWRlZCBmaWxlYDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5hY3RpdmVTdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gYE5ldyBTdG9yZSBhbmQgSW5hY3RpdmUgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIGltYWdlc3JjOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBhIG5ldyBzdG9yZS4gQWRkIG5ldyBzdG9yZXMgaW4gdGhlIFN0b3JlIE1hbmFnZW1lbnQgdW5kZXIgTWFuYWdlIG1lbnUuYCxcclxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnR5cGU6IFwiQWRkc3RvcmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlOiBzdG9yZS5qb2luKFwiLCBcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogbG9jYXRpb24uam9pbigpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZXM6IGluYWN0aXZlU3RvcmUuam9pbigpLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5hY3RpdmVTdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbWFnZXNyYzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYEluYWN0aXZlIFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY29udGVudDogYEluYWN0aXZlIHN0b3JlcyBmb3VuZCBpbiB0aGUgLmNzdi4gUGxlYXNlIGFjdGl2YXRlIG9yIHNraXAgdGhlbSB0byBwcm9jZWVkIHRvIGFzc2lnbi5gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgYnV0dG9udHlwZTogXCJBY3RpdmVzdG9yZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc3VidGl0bGU6IGluYWN0aXZlU3RvcmUuam9pbihcIiwgXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBzdG9yZV9pZDogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSB1c2VyRGF0YUNvcHkuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RvcmU6IGFueSkgPT4gaXRlbSA9PSBzdG9yZS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXRhaWxzLmNpdHkgPT0gdW5kZWZpbmVkIHx8IGRldGFpbHMuY2l0eSA9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVfaWQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcmVfaWQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBgQ2l0eSBpcyByZXF1aXJlZCBvbiB0aGlzIHN0b3JlcyAke3N0b3JlX2lkLmpvaW4oKX1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocG9wdXBjb250ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBcImNvbmZpcm1TdG9yZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYG1hbmFnZS9zdG9yZXMvYWRkaXRpb24tbWV0aG9kYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gXCJhY3RpdmVTdG9yZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYG1hbmFnZS9zdG9yZXNgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdD8ubWVzc2FnZSA9PSBcImNvbmZpcm1cIiB8fCByZXN1bHQgPT0gXCJza2lwXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gXCJza2lwXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzPy5kYXRhPy51c2VyPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXNlckRldGFpbHMgPSByZXMuZGF0YS51c2VyLm1hcChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0udXNlckVtYWlsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGFDb3B5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyRGV0YWlscy5pbmNsdWRlcyhpdGVtLnVzZXJFbWFpbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYXRpb24ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0b3JlX2lkOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzID0gdXNlckRhdGFDb3B5LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdG9yZTogYW55KSA9PiBpdGVtID09IHN0b3JlLnN0b3JlTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMuY2l0eSA9PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscy5jaXR5ID09IFwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZV9pZC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdG9yZV9pZC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYENpdHkgaXMgcmVxdWlyZWQgb24gdGhpcyBzdG9yZXMgJHtzdG9yZV9pZC5qb2luKCl9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LnN0b3JlPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdG9yZS5pbmNsdWRlcyhpdGVtLnN0b3JlTmFtZSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWluYWN0aXZlU3RvcmUuaW5jbHVkZXMoaXRlbS5zdG9yZU5hbWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ/LnVzZXIuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy51c2VyRGF0YS5maW5kSW5kZXgoKHVzZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVzZXIudXNlckVtYWlsID09IGl0ZW0udXNlckVtYWlsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXRlbS5pbnZpdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHJlcy5kYXRhLnVzZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbT8ubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtpdGVtLnVzZXJFbWFpbH0gLSAke2l0ZW0ubWVzc2FnZX1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudXNlckRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQbGVhc2UgRW50ZXIgdmFsaWQgRGV0YWlsc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFVzZXIoZGVsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnJvci5lcnJvci5lcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlZFN0b3JlOiBhbnkgPSBbXTtcclxuICB2YWxpZGF0ZWRVc2VyOiBhbnkgPSBbXTtcclxuICB2YWxpZGF0ZWRDbHVzdGVyOiBhbnkgPSBbXTtcclxuICB2YWxpZGF0ZWRUZWFtOiBhbnkgPSBbXTtcclxuICBuZXdVc2VyOiBhbnkgPSBbXTtcclxuICBpbmFjdGl2ZVN0b3JlczogYW55ID0gW107XHJcbiAgc2hvd0luYWN0aXZlOiBhbnkgPSBmYWxzZTtcclxuXHJcbiAgdmFsaWRhdGVEZXRhaWxzKGFkZFVzZXI/OiBhbnkpIHtcclxuICAgIGxldCBwYXJhbXM6IGFueSA9IHtcclxuICAgICAgY2hlY2tsaXN0SWQ6IHRoaXMuY2hlY2tsaXN0SWQsXHJcbiAgICAgIGFzc2lnbmVkVXNlcnM6IHRoaXMudXNlckRhdGEsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBjb3ZlcmFnZTogdGhpcy5jb3ZlcmFnZSxcclxuICAgIH07XHJcbiAgICBhZGRVc2VyID8gKHBhcmFtcy5hZGRVc2VyID0gdHJ1ZSkgOiBcIlwiO1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLnZhbGlkYXRlVXNlcnYxKHBhcmFtcylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudXBsb2FkID09PSBcInN0b3JlXCIpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkudW5zaGlmdCguLi5yZXM/LmRhdGE/LmRhdGEpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IHRoaXMudGFibGVBcnJheTtcclxuICAgICAgICAgICAgICBsZXQgZGF0YSA9IHRoaXMudGFibGVBcnJheS5tYXAoKGVsOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGlkOiBlbD8uX2lkLCB0eXBlOiBlbD8udHlwZSB9O1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuaWRMaXN0ID0gZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLnNpbmdsZUFzc2lnbiA9IHRoaXMuaWRMaXN0O1xyXG4gICAgICAgICAgICAgIHRoaXMuYXNzaWduVHlwZSA9PT0gXCJ1c2VyXCJcclxuICAgICAgICAgICAgICAgID8gdGhpcy5nZXRhc3NpZ25Ecm9wZG93bihcImNoYW5nZVwiKVxyXG4gICAgICAgICAgICAgICAgOiBcIlwiO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVEYXRhKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gW107XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IHJlcz8uZGF0YT8uZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLmFzc2lnblNpbmdsZSA9IHJlcz8uZGF0YT8uZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSB0aGlzLnRhYmxlQXJyYXk7XHJcbiAgICAgICAgICAgICAgbGV0IGRhdGEgPSByZXM/LmRhdGE/LmRhdGEubWFwKChlbDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpZDogZWw/Ll9pZCwgdHlwZTogZWw/LnR5cGUgfTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmlkTGlzdCA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaW5nbGVBc3NpZ24gPSB0aGlzLmlkTGlzdDtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXNzaWduVHlwZSA9PT0gXCJ1c2VyXCJcclxuICAgICAgICAgICAgICAgID8gdGhpcy5nZXRhc3NpZ25Ecm9wZG93bihcImNoYW5nZVwiKVxyXG4gICAgICAgICAgICAgICAgOiBcIlwiO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVEYXRhKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVycj8uZXJyb3I/LmVycm9yICYmIGVycj8uZXJyb3I/LmNvZGUgPT0gNDAwKSB7XHJcbiAgICAgICAgICAgIGxldCBlcnJvckRhdGEgPSBlcnI/LmVycm9yPy5lcnJvcjtcclxuICAgICAgICAgICAgdGhpcy5leGNlbERhdGEgPSBlcnJvckRhdGE/LmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMudXNlckRhdGEgPSBlcnJvckRhdGE/LmRhdGE7XHJcbiAgICAgICAgICAgIGlmIChlcnJvckRhdGEuZXhpc3RFbWFpbD8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFxyXG4gICAgICAgICAgICAgICAgYEFscmVhZHkgJHtlcnJvckRhdGEuZXhpc3RFbWFpbC50b1N0cmluZygpfSBhc3NpZ25lZCB0byBhbm90aGVyIGNsaWVudGAsXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgICBlcnJvckRhdGEuc3RvcmU/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAgICFlcnJvckRhdGEuZXhpc3RFbWFpbD8ubGVuZ3RoXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVkU3RvcmUgPSBlcnJvckRhdGE/LnN0b3JlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd1N0b3JlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmFmdGVyVXBsbG9hZCgpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgIGVycm9yRGF0YS5zdG9yZT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgZXJyb3JEYXRhLmV4aXN0RW1haWw/Lmxlbmd0aFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAhZXJyb3JEYXRhPy5pbkFjdGl2ZVN0b3Jlcz8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKVxyXG4gICAgICAgICAgICAgICAgOiBcIlwiO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICAgIGBBbHJlYWR5ICR7ZXJyb3JEYXRhLnN0b3JlLnRvU3RyaW5nKCl9IGFzc2lnbmVkIHRvIGFub3RoZXIgY2xpZW50YCxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVycm9yRGF0YT8uaW5BY3RpdmVTdG9yZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW5hY3RpdmVTdG9yZXMgPSBlcnJvckRhdGE/LmluQWN0aXZlU3RvcmVzO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0luYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmFmdGVyVXBsbG9hZCgpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgIGVycm9yRGF0YT8udXNlcj8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgIWVycm9yRGF0YT8uZXhpc3RFbWFpbD8ubGVuZ3RoXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVkVXNlciA9IGVycm9yRGF0YS51c2VyO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd1VzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnVwbG9hZCA9PT0gXCJzdG9yZVwiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1Vc2VycG9wdXAoKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZnRlclVwbGxvYWQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAgICAgZXJyb3JEYXRhPy51c2VyPy5sZW5ndGggJiZcclxuICAgICAgICAgICAgICBlcnJvckRhdGE/LmV4aXN0RW1haWw/Lmxlbmd0aFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFxyXG4gICAgICAgICAgICAgICAgYEFscmVhZHkgJHtlcnJvckRhdGE/LnVzZXIudG9TdHJpbmcoKX0gYXNzaWduZWQgdG8gYW5vdGhlciBjbGllbnRgLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGVycm9yRGF0YT8uZHVwbGljYXRlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICAgIGAke2Vycm9yRGF0YT8uZHVwbGljYXRlcz8udG9TdHJpbmcoKX0gLSAke2Vycm9yRGF0YT8ubWVzc2FnZX1gLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoZWNrQnVmZmVyOiBhbnk7XHJcbiAgY2hhbmdlQnVmZmVyVGltZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNoZWNrQnVmZmVyID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICBpZiAodGhpcy5jaGVja0J1ZmZlcikge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lID0gMTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWUgPSAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5vcGVuVGltZSA9IDA7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdGVkVGFiKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcxID0gdHJ1ZTtcclxuICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICB0aGlzLmFzc2lnblR5cGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICB0aGlzLnRhYmxlRmlsdGVyID0gXCJcIjtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IFtdO1xyXG4gICAgdGhpcy5nZXRhc3NpZ25Ecm9wZG93bigpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VhY3RpdmVwb3B1cCgpIHtcclxuICAgIHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZFVzZXIoZGVsPzogYW55KSB7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgaWQ6IHRoaXMuY2hlY2tsaXN0SWQsXHJcbiAgICAgIGFzc2lnbmVkVXNlcnM6IHRoaXMudXNlckRhdGEsXHJcbiAgICAgIHVwbG9hZFVzZXI6IHRydWUsXHJcbiAgICAgIGFkZFVzZXI6IHRydWUsXHJcbiAgICAgIHR5cGU6XHJcbiAgICAgICAgdGhpcy5vYmo/LnR5cGUgJiZcclxuICAgICAgICAgIFtcIm1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIsIFwic3RvcmVvcGVuYW5kY2xvc2VcIl0uaW5jbHVkZXModGhpcy5vYmoudHlwZSlcclxuICAgICAgICAgID8gdGhpcy5vYmoudHlwZVxyXG4gICAgICAgICAgOiBcIlwiLFxyXG4gICAgICAuLi4oZGVsID8geyBkZWxldGU6IGZhbHNlIH0gOiB7fSksXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgfTtcclxuICAgIHRoaXMuU29wU2VydmljZS52YWxpZGF0ZVVzZXIoZGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuX2lkID0gcmVzcG9uc2UuZGF0YS5pZDtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0SWQgPSByZXNwb25zZS5kYXRhLmlkO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2VycyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy51c2VyRGV0YWlscygpO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0b3JlTGlzdDogYW55ID0gW107XHJcbiAgc2VhcmNoS2V5OiBhbnkgPSBbXTtcclxuXHJcbiAgZ2V0YXNzaWduRHJvcGRvd24oY2hhbmdlPzogYW55KSB7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIGNvdmVyYWdlOiB0aGlzLmNvdmVyYWdlLFxyXG4gICAgICBhc3NpZ25UeXBlOiB0aGlzLmFzc2lnblR5cGUsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuc3RvcmVMaXN0ID0gW107XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0YXNzaWduRHJvcGRvd24oZGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5kYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXM/LmRhdGE/LmRhdGE7XHJcbiAgICAgICAgICBpZiAoZGF0YT8uY292ZXJhZ2UgPT09IFwic3RvcmVcIikge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaEtleSA9IFtcInN0b3JlTmFtZVwiLCBcImNsdXN0ZXJOYW1lXCJdO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRhPy5jb3ZlcmFnZSA9PT0gXCJ1c2VyXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hLZXkgPSBbXCJ1c2VyTmFtZVwiLCBcInRlYW1OYW1lXCJdO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICFjaGFuZ2VcclxuICAgICAgICAgICAgPyB0aGlzLmdldEluaXRpYWxEYXRhKFxyXG4gICAgICAgICAgICAgIHRoaXMuYXNzaWduVHlwZSA9PT0gXCJzdG9yZVwiIHx8IHRoaXMuYXNzaWduVHlwZSA9PT0gXCJ1c2VyXCJcclxuICAgICAgICAgICAgICAgID8gdGhpcy5zaW5nbGVBc3NpZ25cclxuICAgICAgICAgICAgICAgIDogdGhpcy5ncm91cEFzc2lnbixcclxuICAgICAgICAgICAgICBjaGFuZ2UgPyBjaGFuZ2UgOiBcIlwiLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIDogXCJcIjtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IFtdO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gW107XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUNvdW50cyhkYXRhOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBcIvCfmoAgfiBDaGVja2xpc3RDb25maWd1cmVDb21wb25lbnQgfiBnZXRTdG9yZUNvdW50cyB+IGRhdGE6XCIsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuc3RvcmVDb3ZlcmFnZSkge1xyXG4gICAgICBjb25zdCB1bmlxdWVTdG9yZU5hbWVzID0gbmV3IFNldChcclxuICAgICAgICBkYXRhPy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZU5hbWUpLFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gdW5pcXVlU3RvcmVOYW1lcy5zaXplO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnVzZXJDb3ZlcmFnZSkge1xyXG4gICAgICBjb25zdCB1bmlxdWVVc2VyTmFtZXMgPSBuZXcgU2V0KGRhdGE/Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnVzZXJOYW1lKSk7XHJcbiAgICAgIHJldHVybiB1bmlxdWVVc2VyTmFtZXMuc2l6ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVzZXJEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5zaXplID0gNTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGlkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgIH07XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0VXNlckRldGFpbHNWMShwYXJhbXMpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgICAgIGlmIChyZXMgPT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dJbWFnZSA9IHRydWU7XHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZUZpbHRlci5sZW5ndGgpIHRoaXMuc2hvd0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSBmYWxzZTtcclxuICAgICAgICAgIGlmICh0aGlzLnN0b3JlQ292ZXJhZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gcmVzLmRhdGEudXNlckRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgIChlbDogYW55KSA9PiBlbD8uY2x1c3Rlck5hbWUgPT0gXCJcIiAmJiBlbD8uc3RvcmVJZCAhPSBcIlwiLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmFzc2lnbkdyb3VwID0gcmVzLmRhdGEudXNlckRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgIChlbDogYW55KSA9PiBlbD8uY2x1c3Rlck5hbWUgIT09IFwiXCIsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNlckNvdmVyYWdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IHJlcy5kYXRhLnVzZXJEZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAoZWw6IGFueSkgPT4gZWw/LnRlYW1OYW1lID09IFwiXCIgJiYgZWw/LnVzZXJOYW1lICE9IFwiXCIsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuYXNzaWduR3JvdXAgPSByZXMuZGF0YS51c2VyRGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKGVsOiBhbnkpID0+IGVsPy50ZWFtTmFtZSAhPT0gXCJcIixcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuYXNzaWduU2luZ2xlID0gdGhpcy50YWJsZUFycmF5O1xyXG4gICAgICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSB0aGlzLnRhYmxlQXJyYXkubGVuZ3RoO1xyXG4gICAgICAgICAgLy8gdGhpcy5yZWNvcmRzVG90YWwgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICAgIGlmICh0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFt0aGlzLnJlY29yZHNUb3RhbF07XHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFs1LCAxMCwgMTUsIDIwXTtcclxuICAgICAgICAgICAgdGhpcy5zaXplID0gNTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZUFycmF5LnNsaWNlKFxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSAtIHRoaXMuc2l6ZSxcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGFcclxuICAgICAgICAgICAgPyAodGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZSlcclxuICAgICAgICAgICAgOiAodGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlKTtcclxuXHJcbiAgICAgICAgICAvLyB0aGlzLmdldEluaXRpYWxEYXRhKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkVGVtcGxhdGVWMigpIHtcclxuICAgIGxldCBleGNlbERhdGE6IGFueSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuc3RvcmVDb3ZlcmFnZSkge1xyXG4gICAgICBpZiAodGhpcy50YWJsZUFycmF5ID09IG51bGwgfHwgIXRoaXMudGFibGVBcnJheT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gXCJzdG9yZVwiKSB7XHJcbiAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgIHN0b3JlTmFtZTogXCJcIixcclxuICAgICAgICAgICAgdXNlck5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgIHVzZXJFbWFpbDogXCJcIixcclxuICAgICAgICAgICAgdXNlclBob25lOiBcIlwiLFxyXG4gICAgICAgICAgICBjaXR5OiBcIlwiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgc3RvcmVOYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICB1c2VyTmFtZTogXCJcIixcclxuICAgICAgICAgICAgdXNlckVtYWlsOiBcIlwiLFxyXG4gICAgICAgICAgICBjbHVzdGVyTmFtZTogXCJcIixcclxuICAgICAgICAgICAgdXNlclBob25lOiBcIlwiLFxyXG4gICAgICAgICAgICBjaXR5OiBcIlwiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlQXJyYXkgJiYgdGhpcy50YWJsZUFycmF5Py5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnRhYmxlQXJyYXkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5hc3NpZ25UeXBlID09PSBcInN0b3JlXCIpIHtcclxuICAgICAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgIHN0b3JlTmFtZTogaXRlbS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgdXNlck5hbWU6IGl0ZW0udXNlck5hbWUsXHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiBpdGVtLnVzZXJFbWFpbCxcclxuICAgICAgICAgICAgICB1c2VyUGhvbmU6IGl0ZW0udXNlclBob25lLFxyXG4gICAgICAgICAgICAgIGNpdHk6IGl0ZW0uY2l0eSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgc3RvcmVOYW1lOiBpdGVtLnN0b3JlTmFtZSxcclxuICAgICAgICAgICAgICB1c2VyTmFtZTogaXRlbS51c2VyTmFtZSxcclxuICAgICAgICAgICAgICB1c2VyRW1haWw6IGl0ZW0udXNlckVtYWlsLFxyXG4gICAgICAgICAgICAgIGNsdXN0ZXJOYW1lOiBpdGVtLmNsdXN0ZXJOYW1lLFxyXG4gICAgICAgICAgICAgIHVzZXJQaG9uZTogaXRlbS51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgICAgY2l0eTogaXRlbS5jaXR5LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLnVzZXJDb3ZlcmFnZSkge1xyXG4gICAgICBpZiAodGhpcy50YWJsZUFycmF5ID09IG51bGwgfHwgIXRoaXMudGFibGVBcnJheT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gXCJ1c2VyXCIpIHtcclxuICAgICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgdXNlck5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgIHVzZXJFbWFpbDogXCJcIixcclxuICAgICAgICAgICAgdXNlclBob25lOiBcIlwiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgdXNlck5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgIHVzZXJFbWFpbDogXCJcIixcclxuICAgICAgICAgICAgdGVhbU5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgIHVzZXJQaG9uZTogXCJcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50YWJsZUFycmF5ICYmIHRoaXMudGFibGVBcnJheT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy50YWJsZUFycmF5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gXCJ1c2VyXCIpIHtcclxuICAgICAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgIHVzZXJOYW1lOiBpdGVtLnVzZXJOYW1lLFxyXG4gICAgICAgICAgICAgIHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwsXHJcbiAgICAgICAgICAgICAgdXNlclBob25lOiBpdGVtLnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgdXNlck5hbWU6IGl0ZW0udXNlck5hbWUsXHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiBpdGVtLnVzZXJFbWFpbCxcclxuICAgICAgICAgICAgICB0ZWFtTmFtZTogaXRlbS50ZWFtTmFtZSxcclxuICAgICAgICAgICAgICB1c2VyUGhvbmU6IGl0ZW0udXNlclBob25lLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmV4cG9ydEFzRXhjZWxGaWxlKFxyXG4gICAgICBleGNlbERhdGEsXHJcbiAgICAgIGBDaGVja0xpc3RfJHt0aGlzLmFzc2lnblR5cGV9X2AsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZW1haWxEb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgbGV0IGV4Y2VsRGF0YTogYW55ID0gW107XHJcbiAgICBsZXQgdXNlcnMgPSB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWw/LnVzZXJzIHx8IFtdO1xyXG4gICAgbGV0IHRlYW1zID0gdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsPy50ZWFtcyB8fCBbXTtcclxuICAgIGxldCBtYXhMZW5ndGggPSBNYXRoLm1heCh1c2Vycy5sZW5ndGgsIHRlYW1zLmxlbmd0aCk7XHJcbiAgICBpZiAodXNlcnMubGVuZ3RoIHx8IHRlYW1zLmxlbmd0aCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1heExlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgVXNlcnM6IHVzZXJzW2ldPy52YWx1ZSB8fCAnJyxcclxuICAgICAgICAgIFRlYW1zOiB0ZWFtc1tpXT8ubmFtZSB8fCAnJyxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgIFVzZXJzOiAnJyxcclxuICAgICAgICBUZWFtczogJycsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmV4cG9ydEFzRXhjZWxGaWxlKGV4Y2VsRGF0YSwgJ2VtYWlsVGVtcGxhdGUnKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRXhjZWxUZW1wbGF0ZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCB0YXJnZXQ6IERhdGFUcmFuc2ZlciA9IDxEYXRhVHJhbnNmZXI+ZXZlbnQudGFyZ2V0O1xyXG4gICAgY29uc3QgZmlsZSA9IHRhcmdldC5maWxlc1swXTtcclxuICAgIGlmICghZmlsZSkgcmV0dXJuO1xyXG5cclxuICAgIC8vIDEuIENoZWNrIGlmIGZpbGUgaXMgeGxzeFxyXG4gICAgaWYgKCFmaWxlLm5hbWUubWF0Y2goL1xcLnhsc3gkLykpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIHVwbG9hZCBhIHZhbGlkIC54bHN4IGZpbGUuXCIpO1xyXG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKGZpbGUpO1xyXG4gICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgYnN0cjogc3RyaW5nID0gZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICBjb25zdCB3YjogWExTWC5Xb3JrQm9vayA9IFhMU1gucmVhZChic3RyLCB7IHR5cGU6IFwiYmluYXJ5XCIgfSk7XHJcbiAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgIGNvbnN0IGRhdGE6IGFueVtdID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdzKTtcclxuXHJcbiAgICAgIGlmICghZGF0YS5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJVcGxvYWRlZCBmaWxlIGlzIGVtcHR5LlwiKTtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFRyaW0gdHJhaWxpbmcgc3BhY2VzIGFuZCBmaWx0ZXIgbnVsbC9lbXB0eSByb3dzXHJcbiAgICAgIGxldCBoYXNVc2VycyA9IGZhbHNlO1xyXG4gICAgICBsZXQgaGFzVGVhbXMgPSBmYWxzZTtcclxuICAgICAgY29uc3QgdHJpbW1lZERhdGEgPSBkYXRhLmZpbHRlcigocm93OiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgdXNlclZhbCA9IHJvdy5Vc2VycyAhPSBudWxsID8gU3RyaW5nKHJvdy5Vc2VycykudHJpbSgpIDogJyc7XHJcbiAgICAgICAgbGV0IHRlYW1WYWwgPSByb3cuVGVhbXMgIT0gbnVsbCA/IFN0cmluZyhyb3cuVGVhbXMpLnRyaW0oKSA6ICcnO1xyXG4gICAgICAgIGlmICh1c2VyVmFsKSBoYXNVc2VycyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRlYW1WYWwpIGhhc1RlYW1zID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdXNlclZhbCB8fCB0ZWFtVmFsO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIDIuIEJvdGggdXNlcnMgYW5kIHRlYW1zIGVtcHR5IOKAlCBhdCBsZWFzdCBvbmUgaXMgcmVxdWlyZWRcclxuICAgICAgaWYgKCFoYXNVc2VycyAmJiAhaGFzVGVhbXMpIHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJBdCBsZWFzdCBvbmUgb2YgVXNlcnMgb3IgVGVhbXMgaXMgcmVxdWlyZWQuXCIpO1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gTWF0Y2ggdXBsb2FkZWQgdXNlcnMgd2l0aCBhbGVydFVzZXJzIGJ5IGVtYWlsICh2YWx1ZSlcclxuICAgICAgbGV0IG1hdGNoZWRVc2VyczogYW55W10gPSBbXTtcclxuICAgICAgaWYgKGhhc1VzZXJzKSB7XHJcbiAgICAgICAgdHJpbW1lZERhdGEuZm9yRWFjaCgocm93OiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCB1c2VyRW1haWwgPSByb3cuVXNlcnMgIT0gbnVsbCA/IFN0cmluZyhyb3cuVXNlcnMpLnRyaW0oKSA6ICcnO1xyXG4gICAgICAgICAgaWYgKHVzZXJFbWFpbCkge1xyXG4gICAgICAgICAgICBsZXQgZm91bmQgPSB0aGlzLmFsZXJ0VXNlcnMuZmluZCgodTogYW55KSA9PiB1LnZhbHVlPy50b0xvd2VyQ2FzZSgpID09PSB1c2VyRW1haWwudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgIGlmIChmb3VuZCAmJiAhbWF0Y2hlZFVzZXJzLnNvbWUoKHU6IGFueSkgPT4gdS52YWx1ZT8udG9Mb3dlckNhc2UoKSA9PT0gZm91bmQudmFsdWU/LnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgICAgICAgbWF0Y2hlZFVzZXJzLnB1c2goZm91bmQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIE1hdGNoIHVwbG9hZGVkIHRlYW1zIHdpdGggYWxlcnRUZWFtcyBieSB0ZWFtIG5hbWUgKG5hbWUpXHJcbiAgICAgIGxldCBtYXRjaGVkVGVhbXM6IGFueVtdID0gW107XHJcbiAgICAgIGlmIChoYXNUZWFtcykge1xyXG4gICAgICAgIHRyaW1tZWREYXRhLmZvckVhY2goKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgdGVhbU5hbWUgPSByb3cuVGVhbXMgIT0gbnVsbCA/IFN0cmluZyhyb3cuVGVhbXMpLnRyaW0oKSA6ICcnO1xyXG4gICAgICAgICAgaWYgKHRlYW1OYW1lKSB7XHJcbiAgICAgICAgICAgIGxldCBmb3VuZCA9IHRoaXMuYWxlcnRUZWFtcy5maW5kKCh0OiBhbnkpID0+IHQubmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gdGVhbU5hbWUudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgIGlmIChmb3VuZCAmJiAhbWF0Y2hlZFRlYW1zLnNvbWUoKHQ6IGFueSkgPT4gdC5uYW1lPy50b0xvd2VyQ2FzZSgpID09PSBmb3VuZC5uYW1lPy50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAgICAgICAgIG1hdGNoZWRUZWFtcy5wdXNoKGZvdW5kKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIW1hdGNoZWRVc2Vycy5sZW5ndGggJiYgIW1hdGNoZWRUZWFtcy5sZW5ndGgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiRXhjZWwgZGF0YSBpcyBub3QgbWF0Y2hpbmcgd2l0aCBleGlzdGluZyBkYXRhXCIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBVcGRhdGUgdHlwZSBhcnJheSBiYXNlZCBvbiB3aGljaCBjb2x1bW5zIGhhZCBkYXRhXHJcbiAgICAgIGxldCB0eXBlQXJyOiBzdHJpbmdbXSA9IHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbD8udHlwZSB8fCBbXTtcclxuICAgICAgaWYgKGhhc1VzZXJzICYmICF0eXBlQXJyLmluY2x1ZGVzKCd1c2VyJykpIHtcclxuICAgICAgICB0eXBlQXJyLnB1c2goJ3VzZXInKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaGFzVGVhbXMgJiYgIXR5cGVBcnIuaW5jbHVkZXMoJ3RlYW1zJykpIHtcclxuICAgICAgICB0eXBlQXJyLnB1c2goJ3RlYW1zJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsLnR5cGUgPSB0eXBlQXJyO1xyXG5cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsLnVzZXJzID0gbWF0Y2hlZFVzZXJzO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWwudGVhbXMgPSBtYXRjaGVkVGVhbXM7XHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpO1xyXG4gICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChcIkZpbGUgdXBsb2FkZWQgU3VjY2Vzc2Z1bGx5XCIpO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSBldmVudDtcclxuXHJcbiAgICBpZiAodGhpcy50YWJsZUZpbHRlcikge1xyXG4gICAgICAvLyB0aGlzLnNlYXJjaFRhYmxlRGF0YSgpO1xyXG4gICAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHRoaXMuc2VhcmNoVGFibGUubGVuZ3RoO1xyXG4gICAgICBpZiAodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFt0aGlzLnJlY29yZHNUb3RhbF07XHJcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFs1LCAxMCwgMTUsIDIwXTtcclxuICAgICAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5zZWFyY2hUYWJsZS5zbGljZShcclxuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSAtIHRoaXMuc2l6ZSxcclxuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPyAodGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZSkgOiAodGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZUFycmF5LnNsaWNlKFxyXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplIC0gdGhpcy5zaXplLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplLFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA/ICh0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlKSA6ICh0aGlzLnRhYmxlTG9hZGluZyA9IHRydWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VTaXplQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2l6ZSA9IGV2ZW50O1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuXHJcbiAgICBpZiAodGhpcy50YWJsZUZpbHRlcikge1xyXG4gICAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHRoaXMuc2VhcmNoVGFibGUubGVuZ3RoO1xyXG4gICAgICBpZiAodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFt0aGlzLnJlY29yZHNUb3RhbF07XHJcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFs1LCAxMCwgMTUsIDIwXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMuc2VhcmNoVGFibGUuc2xpY2UoXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUgLSB0aGlzLnNpemUsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUsXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID8gKHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UpIDogKHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVBcnJheS5zbGljZShcclxuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSAtIHRoaXMuc2l6ZSxcclxuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPyAodGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZSkgOiAodGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb3BlbkRyb3Bkb3duKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZHJvcERvd24gPSAhdGhpcy5kcm9wRG93bjtcclxuICB9XHJcblxyXG4gIG9wZW5FbWFpbERyb3Bkb3duKCkge1xyXG4gICAgdGhpcy5lbWFpbERyb3Bkb3duID0gIXRoaXMuZW1haWxEcm9wZG93bjtcclxuICB9XHJcblxyXG4gIHNlYXJjaFRhYmxlOiBhbnk7XHJcbiAgc2VhcmNoVGFibGVEYXRhKCkge1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgc2VhcmNoRmllbGQ6IGFueSA9IFtcclxuICAgICAgXCJzdG9yZU5hbWVcIixcclxuICAgICAgXCJ1c2VyTmFtZVwiLFxyXG4gICAgICBcInVzZXJFbWFpbFwiLFxyXG4gICAgICBcImNsdXN0ZXJOYW1lXCIsXHJcbiAgICAgIFwidGVhbU5hbWVcIixcclxuICAgIF07XHJcblxyXG4gICAgaWYgKCF0aGlzLnRhYmxlRmlsdGVyKSB7XHJcbiAgICAgIHRoaXMuYXNzaWduVHlwZSA9PT0gXCJzdG9yZVwiIHx8IHRoaXMuYXNzaWduVHlwZSA9PT0gXCJ1c2VyXCJcclxuICAgICAgICA/IHRoaXMuZ2V0VGFibGVEYXRhKClcclxuICAgICAgICA6IHRoaXMudXNlckRldGFpbHNWMigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc2VhcmNoRGF0YSA9IHRoaXMudGFibGVGaWx0ZXIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgY29uc3Qgc2VhcmNoVGVybSA9IHNlYXJjaERhdGEuc3BsaXQoXCIsXCIpLm1hcCgoZWw6IGFueSkgPT4gZWwudHJpbSgpKTtcclxuICAgICAgdGhpcy5zZWFyY2hUYWJsZSA9IHRoaXMudGFibGVBcnJheT8uZmlsdGVyKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgc2VhcmNoRmllbGQuc29tZSgoZmllbGQ6IGFueSkgPT5cclxuICAgICAgICAgIHNlYXJjaFRlcm0uc29tZSgodGVybTogYW55KSA9PlxyXG4gICAgICAgICAgICBpdGVtW2ZpZWxkXT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgKSxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSB0aGlzLnNlYXJjaFRhYmxlLmxlbmd0aDtcclxuICAgICAgaWYgKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LCAyMF07XHJcbiAgICAgICAgdGhpcy5zaXplID0gNTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMuc2VhcmNoVGFibGUuc2xpY2UoXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUgLSB0aGlzLnNpemUsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA/ICh0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlKSA6ICh0aGlzLnRhYmxlTG9hZGluZyA9IHRydWUpO1xyXG4gIH1cclxuXHJcbiAgc29ydERhdGEodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zb3J0Q29sdW1uID0gdmFsdWU7XHJcbiAgICB0aGlzLnNvcnRCeSAqPSAtMTtcclxuICAgIGNvbnN0IHNvcnRCeSA9IHBhcnNlSW50KHRoaXMuc29ydEJ5LCAxMCkgPT09IC0xID8gLTEgOiAxO1xyXG4gICAgdGhpcy50YWJsZUFycmF5LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgc29ydEJ5ICpcclxuICAgICAgICAoYVt0aGlzLnNvcnRDb2x1bW5dIHx8IFwiXCIpLmxvY2FsZUNvbXBhcmUoYlt0aGlzLnNvcnRDb2x1bW5dIHx8IFwiXCIpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVBcnJheS5zbGljZShcclxuICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUgLSB0aGlzLnNpemUsXHJcbiAgICAgIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZsYWcoZXZlbnQ6IGFueSwgaW5kZXg6IGFueSwgZWxlbWVudDogYW55KSB7XHJcbiAgICBlbGVtZW50LmNoZWNrRmxhZyA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMucmVtb3ZlVXNlcnMuZmluZEluZGV4KChpdGVtOiBhbnkpID0+IGl0ZW0gPT0gZWxlbWVudC5pZCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5wdXNoKGVsZW1lbnQuaWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnJlbW92ZVVzZXJzLnB1c2goZWxlbWVudC5pZCk7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuZmluZEluZGV4KFxyXG4gICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0gPT0gZWxlbWVudC5pZCxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZURhdGFbaW5kZXhdLmNoZWNrRmxhZyA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMubGVuZ3RoICE9IHRoaXMucmVjb3Jkc1RvdGFsXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2tBbGwoZXZlbnQ6IGFueSkge1xyXG4gICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2VycyA9IFtdO1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tGbGFnID0gdHJ1ZTtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnJlbW92ZVVzZXJzLmZpbmRJbmRleChcclxuICAgICAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gaXRlbS5pZCxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuaW5jbHVkZXMoaXRlbS5pZCkpXHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLnB1c2goaXRlbS5pZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJsZURhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaXRlbS5jaGVja0ZsYWcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlbW92ZVVzZXJzLnB1c2goaXRlbS5pZCk7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaWQ6IGFueSkgPT4gaWQgPT0gaXRlbS5pZCxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBkYXRlU3BlY2lmaWMoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gXCJyYW5nZVwiICYmXHJcbiAgICAgIGV2ZW50Py5zZWxlY3RlZExpc3RcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSBldmVudC5zZWxlY3RlZExpc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRhdGVSYW5nZVN0YXJ0KGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUpIHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSBcIm9uZXRpbWVcIilcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgZXZlbnQuc3RhcnREYXRlLFxyXG4gICAgICAgICkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICAgIGV2ZW50LnN0YXJ0RGF0ZSxcclxuICAgICAgICApLmZvcm1hdChcIllZWVktTU0tRERcIik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gXCJvbmV0aW1lXCIpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID1cclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID1cclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUsXHJcbiAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5taW5TdGFydERhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgKS5mb3JtYXQoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0gXCJcIjtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09IFwicmFuZ2VcIikge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZXZlbnQ/LnN0YXJ0RGF0ZSAmJlxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSAhPSBldmVudC5zdGFydERhdGVcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUsXHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgLmFkZCgxLCBcImRheVwiKVxyXG4gICAgICAgICAgLmZvcm1hdChcIllZWVktTU0tRERcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSB7XHJcbiAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUsXHJcbiAgICAgICAgKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSxcclxuICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZXZlbnQ/LnN0YXJ0RGF0ZSAmJlxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSAhPSBldmVudC5zdGFydERhdGVcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IFwiXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudmFsaWRhdGVUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBkYXRlUmFuZ2VFbmQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50LmVuZERhdGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPlxyXG4gICAgICAgIHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID1cclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICAgIGV2ZW50LmVuZERhdGUsXHJcbiAgICAgICAgKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0ge1xyXG4gICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlLFxyXG4gICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUsXHJcbiAgICAgICAgKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUsXHJcbiAgICAgICkuZm9ybWF0KCk7XHJcbiAgICAgIHRoaXMudmFsaWRhdGVUaW1lKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBkYXRlQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgLy8gICB0aGlzLmRhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0KTtcclxuICAvLyAgIHRoaXMubW9udGhEYXRlID0gcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgPT0gMSA/IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpICsgJ3N0JyA6IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpID09IDIgPyBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSArICduZCcgOiBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSA9PSAzID8gcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgKyAncmQnIDogcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgKyAndGgnO1xyXG4gIC8vICAgdGhpcy5tb250aERheSA9IHRoaXMuZGF0ZS5mb3JtYXQoJ2RkZGQnKTtcclxuICAvLyAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuc3RhcnQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG5cclxuICAvLyAgIGxldCB3ZWVrTnVtYmVyID0gZ2V0V2Vla051bWJlcih0aGlzLmRhdGUpO1xyXG4gIC8vICAgdGhpcy5Nb250aHdlZWtOdW1iZXIgPSB3ZWVrTnVtYmVyID09IDEgPyB3ZWVrTnVtYmVyICsgJ3N0JyA6IHdlZWtOdW1iZXIgPT0gMiA/IHdlZWtOdW1iZXIgKyAnbmQnIDogd2Vla051bWJlciA9PSAzID8gd2Vla051bWJlciArICdyZCcgOiB3ZWVrTnVtYmVyICsgJ3RoJztcclxuICAvLyAgIHRoaXMuc2V0TW9udGhEYXRlKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwKTtcclxuICAvLyB9XHJcbiAgLy8gc2V0RGF5KGRheTogYW55KSB7XHJcbiAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5ID0gZGF5O1xyXG4gIC8vIH1cclxuICBzZXREYXkoZGF5OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF5cy5pbmNsdWRlcyhkYXkpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gdGhpcy5zZWxlY3RlZERheXMuZmlsdGVyKFxyXG4gICAgICAgIChzZWxlY3RlZERheSkgPT4gc2VsZWN0ZWREYXkgIT09IGRheSxcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzLnB1c2goZGF5KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gc2V0TW9udGhEYXRlKGRhdGE6IGFueSkge1xyXG4gIC8vICAgaWYgKGRhdGEgPT0gJ2RhdGUnKSB7XHJcbiAgLy8gICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSBbdGhpcy5tb250aERhdGVdO1xyXG4gIC8vICAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IFt0aGlzLm1vbnRoRGF0ZV07XHJcbiAgLy8gICB9XHJcbiAgLy8gICBlbHNlIHtcclxuICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9IFt0aGlzLm1vbnRoRGF5XTtcclxuICAvLyAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbdGhpcy5tb250aERheV07XHJcbiAgLy8gICAgIGxldCB3ZWVrTnVtYmVyID0gZ2V0V2Vla051bWJlcih0aGlzLmRhdGUpO1xyXG4gIC8vICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gd2Vla051bWJlciA9PSAxID8gd2Vla051bWJlciArICdzdCcgOiB3ZWVrTnVtYmVyID09IDIgPyB3ZWVrTnVtYmVyICsgJ25kJyA6IHdlZWtOdW1iZXIgPT0gMyA/IHdlZWtOdW1iZXIgKyAncmQnIDogd2Vla051bWJlciArICd0aCc7XHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9IGRhdGE7XHJcblxyXG4gIC8vIH1cclxuICAvLyBzZXREYXRlKGV2ZW50OiBhbnkpIHtcclxuICAvLyAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IGV2ZW50LnN0YXJ0O1xyXG4gIC8vIH1cclxuXHJcbiAgcHVibGlzaChzaG93UG9wdXA6IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIFtcIndlZWtseVwiLCBcIndlZWtkYXlcIl0uaW5jbHVkZXMoXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUsXHJcbiAgICAgICkgJiZcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMubGVuZ3RoID09IDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2Ugc2VsZWN0IGF0bGVhc3QgMSBkYXkgdG8gcHJvY2VlZFwiKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnZhbGlkVGltZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJJbnZhbGlkIFNjaGVkdWxlIEVuZCBUaW1lXCIpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2hvd1JhbmdlVmFsdWUpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gXCJcIjtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT0gXCJvbmV0aW1lXCIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gXCJcIjtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gXCJtb250aGx5XCIgJiZcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gXCJkYXRlXCJcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID1cclxuICAgICAgICB0aGlzLm1vbnRoRGF0ZSArIFwiIFwiICsgdGhpcy5tb250aERheTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gXCJtb250aGx5XCIgJiZcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gXCJzcGVjaWZpY1wiXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRoaXMuc3VibWl0dGVkRGF0ZXMubGVuZ3RoKVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZSA9IHRoaXMuc3VibWl0dGVkRGF0ZXM7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBzZWxlY3QgYXRsZWFzdCAxIGRhdGUgdG8gcHJvY2VlZFwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSBcInJhbmdlXCIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0O1xyXG4gICAgfVxyXG4gICAgaWYgKHNob3dQb3B1cCkge1xyXG4gICAgICBsZXQgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEMUZBREZcIi8+PHBhdGggZD1cIk0zOCAyNy4wODE4VjI4LjAwMThDMzcuOTk4OCAzMC4xNTgyIDM3LjMwMDUgMzIuMjU2NSAzNi4wMDkzIDMzLjk4MzZDMzQuNzE4MiAzNS43MTA4IDMyLjkwMzMgMzYuOTc0MyAzMC44MzU0IDM3LjU4NTdDMjguNzY3NCAzOC4xOTcxIDI2LjU1NzMgMzguMTIzNyAyNC41MzQ1IDM3LjM3NjRDMjIuNTExNyAzNi42MjkxIDIwLjc4NDcgMzUuMjQ3OSAxOS42MTEgMzMuNDM4OUMxOC40MzczIDMxLjYyOTkgMTcuODc5OCAyOS40ODk5IDE4LjAyMTcgMjcuMzM4MUMxOC4xNjM2IDI1LjE4NjQgMTguOTk3MiAyMy4xMzgxIDIwLjM5ODMgMjEuNDk4OUMyMS43OTk0IDE5Ljg1OTYgMjMuNjkyOCAxOC43MTcyIDI1Ljc5NjIgMTguMjQyQzI3Ljg5OTYgMTcuNzY2NyAzMC4xMDAzIDE3Ljk4NDIgMzIuMDcgMTguODYxOE0zOCAyMC4wMDE4TDI4IDMwLjAxMThMMjUgMjcuMDExOFwiIHN0cm9rZT1cIiMwMzk4NTVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICB0aXRsZTogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBwdWJsaXNoICR7dGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY2hlY2tMaXN0TmFtZX0gY2hlY2tsaXN0P2AsXHJcbiAgICAgICAgY29udGVudDogYFB1Ymxpc2hpbmcgd2lsbCBtYWtlIHRoaXMgY2hlY2tsaXN0IGxpdmUsIGFuZCBjaGFuZ2VzIHdpbGwgdGFrZSBlZmZlY3QgaW1tZWRpYXRlbHkuYCxcclxuICAgICAgICBidXR0b250eXBlOiBcImNvbmZpcm1cIixcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgICBzaXplOiBcIm1kXCIsXHJcbiAgICAgICAgYmFja2Ryb3A6IFwic3RhdGljXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzID09IFwiY29uZmlybVwiKSB7XHJcbiAgICAgICAgICB0aGlzLmRldGFzc2lnblVwZGF0ZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVB1Ymxpc2goKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGV0YXNzaWduVXBkYXRlKChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVB1Ymxpc2goKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaXNoQUkoc2hvd1BvcHVwOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuY2xpZW50SWQpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLnR5cGUgPSB0aGlzLnR5cGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuaWQgPSB0aGlzLmNoZWNrbGlzdElkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLnB1Ymxpc2ggPSB0cnVlO1xyXG4gICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnICE9PSBcInN0b3JlXCJcclxuICAgICAgPyB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZXZlbnRzXHJcbiAgICAgIDogKHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHMgPSBbXSk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnR5cGUgPT0gXCJtb2JpbGV1c2FnZWRldGVjdGlvblwiICYmXHJcbiAgICAgICh0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLnVzYWdlRXhjZWVkID09PSBudWxsIHx8XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCA9PT0gXCJcIilcclxuICAgICkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgRW50ZXIgdGhlIFVzYWdlIEV4Y2VlZCBEdXJhdGlvblwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy50eXBlID09IFwibW9iaWxldXNhZ2VkZXRlY3Rpb25cIiAmJlxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLnVzYWdlRXhjZWVkIDwgMFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWQgPSAwO1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXHJcbiAgICAgICAgXCJQbGVhc2UgRW50ZXIgdGhlIFVzYWdlIEV4Y2VlZCBEdXJhdGlvbiAxNSB0byA5OTlcIixcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy50eXBlID09IFwic3RvcmVvcGVuYW5kY2xvc2VcIiAmJlxyXG4gICAgICB0aGlzLmNoZWNrQnVmZmVyICYmXHJcbiAgICAgICh0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lID4gMzAgfHxcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lIDwgMSB8fFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lID4gMzAgfHxcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLmNsb3NlVGltZSA8IDEpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiQnVmZmVyIHRpbWUgbWluIDEgYW5kIG1heCAzMFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBbXCJ1c2VyXCIsIFwidGVhbXNcIl0uaW5jbHVkZXMoXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnRhc2tBc3NpZ25lZFRvLFxyXG4gICAgICApICYmXHJcbiAgICAgICF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudXNlcnMubGVuZ3RoXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiVGFzayBhc3NpZ25lZCB1c2VycyBpcyByZXF1aXJlZFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKFtcInR2Y29tcGxpYW5jZVwiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2UucmVjdXJyZW5jZSA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlID0ge307XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2UuZGV0ZWN0ZWRTdGF0dXMgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5zY2hlZHVsZS5zY2hlZHVsZXR5cGUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLm9wZW5UaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLmNsb3NlVGltZSA9XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZWVuZFRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2UucmVjdXJyZW5jZS5zdGF0dXMgPVxyXG4gICAgICAgIHRoaXMucmVjdXJyZW5jZVN0YXR1cztcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5yZWN1cnJlbmNlLnRpbWUgPVxyXG4gICAgICAgIHRoaXMucmVjdXJyZW5jZXRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2UuZGV0ZWN0ZWRTdGF0dXMuc3RhdHVzID1cclxuICAgICAgICB0aGlzLmlzVGhyZXNob2xkRW5hYmxlZDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5kZXRlY3RlZFN0YXR1cy5kZXRlY3Rpb25zID1cclxuICAgICAgICB0aGlzLmRldGVjdGlvblRocmVzaG9sZDtcclxuICAgIH1cclxuICAgIGlmIChbXCJzdG9yZWh5Z2llbmVtb25pdG9yaW5nXCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnJlY3VycmVuY2UgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnNjaGVkdWxlID0ge307XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5kZXRlY3RlZFN0YXR1cyA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc2NoZWR1bGUuc2NoZWR1bGV0eXBlID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxldHlwZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnNjaGVkdWxlLm9wZW5UaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxldHlwZSA9PSBcInN0YW5kYXJkXCIgPyB1bmRlZmluZWQgOiB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc2NoZWR1bGUuY2xvc2VUaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxldHlwZSA9PSBcInN0YW5kYXJkXCIgPyB1bmRlZmluZWQgOiB0aGlzLnNjaGVkdWxlZW5kVGltZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnJlY3VycmVuY2Uuc3RhdHVzID0gdGhpc1xyXG4gICAgICAgIC5yZWN1cnJlbmNlVHlwZVxyXG4gICAgICAgID8gdHJ1ZVxyXG4gICAgICAgIDogZmFsc2U7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5yZWN1cnJlbmNlLnRpbWUgPVxyXG4gICAgICAgIHRoaXMucmVjdXJyZW5jZXRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5yZWN1cnJlbmNlLnR5cGUgPVxyXG4gICAgICAgIHRoaXMucmVjdXJyZW5jZVR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAoW1wic3RhZmZncm91cGluZ1wiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZyA9IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLnNjaGVkdWxlID0ge1xyXG4gICAgICAgIHNjaGVkdWxldHlwZTogdGhpcy5zY2hlZHVsZXR5cGUsXHJcbiAgICAgICAgb3BlblRpbWU6IHRoaXMuc2NoZWR1bGVzdGFydFRpbWUsXHJcbiAgICAgICAgY2xvc2VUaW1lOiB0aGlzLnNjaGVkdWxlZW5kVGltZSxcclxuICAgICAgfTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5hbGVydENvb2xkb3duRW5hYmxlZCA9XHJcbiAgICAgICAgdGhpcy5hbGVydENvb2xkb3duRW5hYmxlZDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuYWxlcnRDb29sZG93blRpbWUgPVxyXG4gICAgICAgIHRoaXMuYWxlcnRDb29sZG93blRpbWU7XHJcbiAgICB9XHJcbiAgICBpZiAoW1wiYm94YWxlcnRcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5ib3hBbGVydCkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5ib3hBbGVydCA9IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5ib3hBbGVydC5zY2hlZHVsZSA9IHtcclxuICAgICAgICBzY2hlZHVsZXR5cGU6IHRoaXMuc2NoZWR1bGV0eXBlLFxyXG4gICAgICAgIG9wZW5UaW1lOiB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lLFxyXG4gICAgICAgIGNsb3NlVGltZTogdGhpcy5zY2hlZHVsZWVuZFRpbWUsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5ib3hBbGVydC5yZWN1cnJlbmNlID0ge1xyXG4gICAgICAgIHN0YXR1czogdGhpcy5yZWN1cnJlbmNlVHlwZSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICB0aW1lOiB0aGlzLnJlY3VycmVuY2V0aW1lLFxyXG4gICAgICAgIHR5cGU6IHRoaXMucmVjdXJyZW5jZVR5cGUsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoW1wiZW1wbG95ZWVDb3VudFwiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmVtcGxveWVlQ291bnQpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZW1wbG95ZWVDb3VudCA9IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5lbXBsb3llZUNvdW50LnNjaGVkdWxlID0ge1xyXG4gICAgICAgIHNjaGVkdWxldHlwZTogdGhpcy5zY2hlZHVsZXR5cGUsXHJcbiAgICAgICAgb3BlblRpbWU6IHRoaXMuc2NoZWR1bGVzdGFydFRpbWUsXHJcbiAgICAgICAgY2xvc2VUaW1lOiB0aGlzLnNjaGVkdWxlZW5kVGltZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmVtcGxveWVlQ291bnQucmVjdXJyZW5jZSA9IHtcclxuICAgICAgICBzdGF0dXM6IHRoaXMucmVjdXJyZW5jZVR5cGUgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgdGltZTogdGhpcy5yZWN1cnJlbmNldGltZSxcclxuICAgICAgICB0eXBlOiB0aGlzLnJlY3VycmVuY2VUeXBlLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKFtcInF1ZXVlYWxlcnRcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLndhaXRUaW1lTGltaXQsIHRoaXMucXVldWVMaW1pdCk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0ID0ge307XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5zY2hlZHVsZS5zY2hlZHVsZXR5cGUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLm9wZW5UaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLmNsb3NlVGltZSA9XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZWVuZFRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LnF1ZXVlTGVuZ3RoRW5hYmxlZCA9XHJcbiAgICAgICAgdGhpcy5xdWV1ZUxlbmd0aEVuYWJsZWQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LnF1ZXVlTGltaXQgPSB0aGlzLnF1ZXVlTGltaXQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LndhaXRUaW1lRW5hYmxlZCA9XHJcbiAgICAgICAgdGhpcy53YWl0VGltZUVuYWJsZWQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LndhaXRUaW1lTGltaXQgPSB0aGlzLndhaXRUaW1lTGltaXQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LmFsZXJ0Q29vbGRvd25FbmFibGVkID1cclxuICAgICAgICB0aGlzLmFsZXJ0Q29vbGRvd25FbmFibGVkO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcucXVldWVhbGVydC5hbGVydENvb2xkb3duVGltZSA9XHJcbiAgICAgICAgdGhpcy5hbGVydENvb2xkb3duVGltZTtcclxuICAgIH1cclxuICAgIGlmIChbXCJjYW1lcmF0YW1wZXJpbmdcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuY2FtZXJhQW5nbGUgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmNhbWVyYUFuZ2xlLmVuYWJsZWQgPSB0aGlzLmNhbWVyYUFuZ2xlRW5hYmxlZDtcclxuICAgIH1cclxuICAgIGlmIChzaG93UG9wdXApIHtcclxuICAgICAgbGV0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMzggMjcuMDgxOFYyOC4wMDE4QzM3Ljk5ODggMzAuMTU4MiAzNy4zMDA1IDMyLjI1NjUgMzYuMDA5MyAzMy45ODM2QzM0LjcxODIgMzUuNzEwOCAzMi45MDMzIDM2Ljk3NDMgMzAuODM1NCAzNy41ODU3QzI4Ljc2NzQgMzguMTk3MSAyNi41NTczIDM4LjEyMzcgMjQuNTM0NSAzNy4zNzY0QzIyLjUxMTcgMzYuNjI5MSAyMC43ODQ3IDM1LjI0NzkgMTkuNjExIDMzLjQzODlDMTguNDM3MyAzMS42Mjk5IDE3Ljg3OTggMjkuNDg5OSAxOC4wMjE3IDI3LjMzODFDMTguMTYzNiAyNS4xODY0IDE4Ljk5NzIgMjMuMTM4MSAyMC4zOTgzIDIxLjQ5ODlDMjEuNzk5NCAxOS44NTk2IDIzLjY5MjggMTguNzE3MiAyNS43OTYyIDE4LjI0MkMyNy44OTk2IDE3Ljc2NjcgMzAuMTAwMyAxNy45ODQyIDMyLjA3IDE4Ljg2MThNMzggMjAuMDAxOEwyOCAzMC4wMTE4TDI1IDI3LjAxMThcIiBzdHJva2U9XCIjMDM5ODU1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQ0ZERjNcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHVibGlzaCAke3RoaXMuY29uZmlnRGF0YS5jaGVja0xpc3ROYW1lfSBjaGVja2xpc3Q/YCxcclxuICAgICAgICBjb250ZW50OiBgUHVibGlzaGluZyB3aWxsIG1ha2UgdGhpcyBjaGVja2xpc3QgbGl2ZSwgYW5kIGNoYW5nZXMgd2lsbCB0YWtlIGVmZmVjdCBpbW1lZGlhdGVseS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6IFwiY29uZmlybVwiLFxyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIixcclxuICAgICAgfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgPT0gXCJjb25maXJtXCIpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICAgICAgICB0aGlzLlNvcFNlcnZpY2UudXBkYXRlQWlDb25maWd1cmUodGhpcy5jb25maWdEYXRhKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcz8ubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFtcIi9tYW5hZ2UvdHJheC9jaGVja2xpc3RcIl0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBlcnJvciA9IGVycj8uZXJyb3I/LmVycm9yIHx8IFwic29tZXRoaW5nIHdlbnQgd3JvbmdcIjtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3IpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNhdmVEcmFmdEFJKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuaWQgPSB0aGlzLmNoZWNrbGlzdElkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLnR5cGUgPSB0aGlzLnR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFtcInR2Y29tcGxpYW5jZVwiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2UucmVjdXJyZW5jZSA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlID0ge307XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2UuZGV0ZWN0ZWRTdGF0dXMgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5zY2hlZHVsZS5zY2hlZHVsZXR5cGUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLm9wZW5UaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLmNsb3NlVGltZSA9XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZWVuZFRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2UucmVjdXJyZW5jZS5zdGF0dXMgPVxyXG4gICAgICAgIHRoaXMucmVjdXJyZW5jZVN0YXR1cztcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5yZWN1cnJlbmNlLnRpbWUgPVxyXG4gICAgICAgIHRoaXMucmVjdXJyZW5jZXRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2UuZGV0ZWN0ZWRTdGF0dXMuc3RhdHVzID1cclxuICAgICAgICB0aGlzLmlzVGhyZXNob2xkRW5hYmxlZDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5kZXRlY3RlZFN0YXR1cy5kZXRlY3Rpb25zID1cclxuICAgICAgICB0aGlzLmRldGVjdGlvblRocmVzaG9sZDtcclxuICAgIH1cclxuICAgIGlmIChbXCJzdG9yZWh5Z2llbmVtb25pdG9yaW5nXCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnJlY3VycmVuY2UgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnNjaGVkdWxlID0ge307XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5kZXRlY3RlZFN0YXR1cyA9IHt9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc2NoZWR1bGUuc2NoZWR1bGV0eXBlID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxldHlwZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnNjaGVkdWxlLm9wZW5UaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxldHlwZSA9PSAnc3RhbmRhcmQnID8gdW5kZWZpbmVkIDogdGhpcy5zY2hlZHVsZXN0YXJ0VGltZTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnNjaGVkdWxlLmNsb3NlVGltZSA9XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZXR5cGUgPT0gXCJzdGFuZGFyZFwiID8gdW5kZWZpbmVkIDogdGhpcy5zY2hlZHVsZWVuZFRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5yZWN1cnJlbmNlLnN0YXR1cyA9IHRoaXNcclxuICAgICAgICAucmVjdXJyZW5jZVR5cGVcclxuICAgICAgICA/IHRydWVcclxuICAgICAgICA6IGZhbHNlO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3JpbmcucmVjdXJyZW5jZS50aW1lID1cclxuICAgICAgICB0aGlzLnJlY3VycmVuY2V0aW1lO1xyXG4gICAgfVxyXG4gICAgaWYgKFtcInN0YWZmZ3JvdXBpbmdcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcgPSB7fTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5zY2hlZHVsZSA9IHtcclxuICAgICAgICBzY2hlZHVsZXR5cGU6IHRoaXMuc2NoZWR1bGV0eXBlLFxyXG4gICAgICAgIG9wZW5UaW1lOiB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lLFxyXG4gICAgICAgIGNsb3NlVGltZTogdGhpcy5zY2hlZHVsZWVuZFRpbWUsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLmFsZXJ0Q29vbGRvd25FbmFibGVkID1cclxuICAgICAgICB0aGlzLmFsZXJ0Q29vbGRvd25FbmFibGVkO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5hbGVydENvb2xkb3duVGltZSA9XHJcbiAgICAgICAgdGhpcy5hbGVydENvb2xkb3duVGltZTtcclxuICAgIH1cclxuICAgIGlmIChbXCJib3hhbGVydFwiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0KSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0ID0ge307XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LnNjaGVkdWxlID0ge1xyXG4gICAgICAgIHNjaGVkdWxldHlwZTogdGhpcy5zY2hlZHVsZXR5cGUsXHJcbiAgICAgICAgb3BlblRpbWU6IHRoaXMuc2NoZWR1bGVzdGFydFRpbWUsXHJcbiAgICAgICAgY2xvc2VUaW1lOiB0aGlzLnNjaGVkdWxlZW5kVGltZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LnJlY3VycmVuY2UgPSB7XHJcbiAgICAgICAgc3RhdHVzOiB0aGlzLnJlY3VycmVuY2VUeXBlID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICAgIHRpbWU6IHRoaXMucmVjdXJyZW5jZXRpbWUsXHJcbiAgICAgICAgdHlwZTogdGhpcy5yZWN1cnJlbmNlVHlwZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChbXCJlbXBsb3llZUNvdW50XCJdLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZW1wbG95ZWVDb3VudCkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5lbXBsb3llZUNvdW50ID0ge307XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmVtcGxveWVlQ291bnQuc2NoZWR1bGUgPSB7XHJcbiAgICAgICAgc2NoZWR1bGV0eXBlOiB0aGlzLnNjaGVkdWxldHlwZSxcclxuICAgICAgICBvcGVuVGltZTogdGhpcy5zY2hlZHVsZXN0YXJ0VGltZSxcclxuICAgICAgICBjbG9zZVRpbWU6IHRoaXMuc2NoZWR1bGVlbmRUaW1lLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZW1wbG95ZWVDb3VudC5yZWN1cnJlbmNlID0ge1xyXG4gICAgICAgIHN0YXR1czogdGhpcy5yZWN1cnJlbmNlVHlwZSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICB0aW1lOiB0aGlzLnJlY3VycmVuY2V0aW1lLFxyXG4gICAgICAgIHR5cGU6IHRoaXMucmVjdXJyZW5jZVR5cGUsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoW1wicXVldWVhbGVydFwiXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0ID0ge307XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy50dmNvbXBsaWFuY2Uuc2NoZWR1bGUgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnR2Y29tcGxpYW5jZS5zY2hlZHVsZS5zY2hlZHVsZXR5cGUgPVxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGV0eXBlO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLm9wZW5UaW1lID1cclxuICAgICAgICB0aGlzLnNjaGVkdWxlc3RhcnRUaW1lO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcudHZjb21wbGlhbmNlLnNjaGVkdWxlLmNsb3NlVGltZSA9XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZWVuZFRpbWU7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LnF1ZXVlTGVuZ3RoRW5hYmxlZCA9XHJcbiAgICAgICAgdGhpcy5xdWV1ZUxlbmd0aEVuYWJsZWQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LnF1ZXVlTGltaXQgPSB0aGlzLnF1ZXVlTGltaXQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LndhaXRUaW1lRW5hYmxlZCA9XHJcbiAgICAgICAgdGhpcy53YWl0VGltZUVuYWJsZWQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LndhaXRUaW1lTGltaXQgPSB0aGlzLndhaXRUaW1lTGltaXQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LmFsZXJ0Q29vbGRvd25FbmFibGVkID1cclxuICAgICAgICB0aGlzLmFsZXJ0Q29vbGRvd25FbmFibGVkO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcucXVldWVhbGVydC5hbGVydENvb2xkb3duVGltZSA9XHJcbiAgICAgICAgdGhpcy5hbGVydENvb2xkb3duVGltZTtcclxuICAgIH1cclxuICAgIGlmIChbXCJjYW1lcmF0YW1wZXJpbmdcIl0uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuY2FtZXJhQW5nbGUgPSB7fTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmNhbWVyYUFuZ2xlLmVuYWJsZWQgPSB0aGlzLmNhbWVyYUFuZ2xlRW5hYmxlZDtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlnRGF0YS5wdWJsaXNoID0gZmFsc2U7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgIT09IFwic3RvcmVcIlxyXG4gICAgICA/IHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHNcclxuICAgICAgOiAodGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV2ZW50cyA9IFtdKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy50eXBlID09IFwibW9iaWxldXNhZ2VkZXRlY3Rpb25cIiAmJlxyXG4gICAgICAodGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCA9PT0gbnVsbCB8fFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWQgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWQgPT09IFwiXCIpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIEVudGVyIHRoZSBVc2FnZSBFeGNlZWQgRHVyYXRpb25cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMudHlwZSA9PSBcIm1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIgJiZcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCA8IDFcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLnVzYWdlRXhjZWVkID0gMDtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFxyXG4gICAgICAgIFwiUGxlYXNlIEVudGVyIHRoZSBVc2FnZSBFeGNlZWQgRHVyYXRpb24gMTUgdG8gOTk5XCIsXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgaW1hZ2VzcmM6XHJcbiAgICAgICAgJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgIHRpdGxlOiBgVW5zYXZlZCBjaGFuZ2VzYCxcclxuICAgICAgY29udGVudDogYERvIHlvdSB3YW50IHRvIHNhdmUgYXMgZHJhZnQ/YCxcclxuICAgICAgYnV0dG9udHlwZTogXCJkcmFmdFwiLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICBzaXplOiBcIm1kXCIsXHJcbiAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuXHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAoIXJlcykge1xyXG4gICAgICAgIHRoaXMucG9wdXBDb3VudCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcyA9PSBcImNvbmZpcm1cIikge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICAgICAgdGhpcy5Tb3BTZXJ2aWNlLnVwZGF0ZUFpQ29uZmlndXJlKHRoaXMuY29uZmlnRGF0YSlcclxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoXHJcbiAgICAgICAgICAgICAgICAgIFwiRHJhZnQgaGFzIGJlZW4gc2F2ZWQgc3VjY2Vzc2Z1bGx5LlwiLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS90cmF4L2NoZWNrbGlzdFwiXSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yIHx8IFwic29tZXRoaW5nIHdlbnQgd3JvbmdcIjtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHVwbG9hZEFJZmlsZXMoKSB7XHJcbiAgICB0aGlzLnVwbG9hZERhdGEgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGF0YUZyb21DaGlsZChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMudXBsb2FkRGF0YSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQdWJsaXNoKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnR5cGUgPT0gXCJtb2JpbGV1c2FnZWRldGVjdGlvblwiIHx8XHJcbiAgICAgIHRoaXMudHlwZSA9PSBcInN0b3Jlb3BlbmFuZGNsb3NlXCJcclxuICAgICkge1xyXG4gICAgICAvLyBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicpIHtcclxuICAgICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5kZXRlY3Rpb25BcmVhID0gdGhpcy56b25lcztcclxuICAgICAgLy8gfVxyXG4gICAgICBpZiAodGhpcy50eXBlID09IFwic3RvcmVvcGVuYW5kY2xvc2VcIikge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID1cclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5vcGVuVGltZTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPVxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNsb3NlVGltZTtcclxuICAgICAgfVxyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUbyA9IHRoaXMuZW1haWxMaXN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucHVibGlzaCA9IHRydWU7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb3ZlcmFnZSA9IHRoaXMuY292ZXJhZ2U7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuc3VibWl0VHlwZSA9IFwicHVibGlzaFwiO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLnJlbW92ZWRVc2VycyA9IHRoaXMucmVtb3ZlVXNlcnM7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVdlZWtEYXlzID0gdGhpcy5zZWxlY3RlZERheXM7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEudXBkYXRlQ29uZmlndXJlID0gdGhpcy5kaXNhYmxlZFF1ZXN0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5zaG93RWRpdCA9IHRoaXMuc2hvd0VkaXQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gW1xyXG4gICAgICAuLi50aGlzLnNpbmdsZUFzc2lnbixcclxuICAgICAgLi4udGhpcy5ncm91cEFzc2lnbixcclxuICAgIF07XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zdG9yZUNvdW50ID1cclxuICAgICAgdGhpcy5hc3NpZ25TaW5nbGU/Lmxlbmd0aCArIHRoaXMuZ3JvdXBBc3NpZ24/Lmxlbmd0aDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmVuYWJsZU5ld0RlcGxveWVkU3RvcmUgPSB0aGlzLnN0b3JlQ292ZXJhZ2VcclxuICAgICAgPyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5lbmFibGVOZXdEZXBsb3llZFN0b3JlXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgICBjb25zdCB0aW1lWm9uZSA9IGRheWpzLnR6Lmd1ZXNzKCk7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEudGltZVpvbmUgPSB0aW1lWm9uZTtcclxuXHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNoZWNrTGlzdE5hbWV9IGNoZWNrbGlzdCBwdWJsaXNoZWQuYCxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS90cmF4L2NoZWNrbGlzdFwiXSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIEFzc2lnbiBhIFVzZXIhXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgQXNzaWduIGEgVXNlciFcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3IgfHwgXCJzb21ldGhpbmcgd2VudCB3cm9uZ1wiO1xyXG4gICAgICAgICAgaWYgKGVyciA9PSBcIkNoZWNrbGlzdCBnb3Qgc3VibWl0dGVkXCIpIHtcclxuICAgICAgICAgICAgbGV0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCI+PC9yZWN0PjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiPjwvcmVjdD48L3N2Zz5gLFxyXG4gICAgICAgICAgICAgIHRpdGxlOiBgQ2hlY2tsaXN0IFVwZGF0ZSFgLFxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGBNdWx0aXBsZSBzdG9yZXMgaGF2ZSBhbHJlYWR5IHN1Ym1pdHRlZCB0aGlzIGNoZWNrbGlzdC4gRG8geW91IHdhbnQgdG8gcmUtYXNzaWduIGl0IHRvIHRoZW0/YCxcclxuICAgICAgICAgICAgICBidXR0b250eXBlOiBcInJlQXNzaWduXCIsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICAgICAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcyA9PSBcImNvbmZpcm1cIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmVkaXRTdWJtaXQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuZWRpdFN1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnB1Ymxpc2goZmFsc2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBkZXRhc3NpZ25VcGRhdGUoY2FsbGJhY2s6IChyZXN1bHQ6IGJvb2xlYW4pID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNoZWNrTGlzdElkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBhc3NpZ25lZExpc3Q6IHRoaXMuYXNzaWduU2luZ2xlIHx8IFtdLFxyXG4gICAgICBhc3NpZ25lZEdyb3VwOiB0aGlzLmFzc2lnbkdyb3VwIHx8IFtdLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2UsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuU29wU2VydmljZS5hc3NpZ25VcGRhdGUocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWRkZWQgPSByZXM/LmRhdGE/LmFkZGVkO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEucmVtb3ZlZCA9IHJlcz8uZGF0YT8ucmVtb3ZlZDtcclxuICAgICAgICAgICAgY2FsbGJhY2sodHJ1ZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjYWxsYmFjayhmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgIGNhbGxiYWNrKGZhbHNlKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIHNlbGVjdHN0b3JlKGVsZW1lbnQ6IGFueSkge1xyXG4gIC8vICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4U3RvcmVDb21wb25lbnQsIHtcclxuICAvLyAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gIC8vICAgfSk7XHJcblxyXG4gIC8vICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBlbGVtZW50O1xyXG5cclxuICAvLyAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgLy8gICAgIGlmIChkYXRhICYmIGRhdGEubXNnID09ICdjb25maXJtJykge1xyXG4gIC8vICAgICAgIGlmIChkYXRhLnN0b3Jlcy5sZW5ndGgpIHtcclxuICAvLyAgICAgICAgIGxldCBzb3AgPSBkYXRhLnN0b3JlcztcclxuICAvLyAgICAgICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7XHJcbiAgLy8gICAgICAgICAvLyB0aGlzLlNvcFNlcnZpY2UuYXNzaWduU29wU3RvcmUoc29wLCBpZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgICAgLy8gICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gIC8vICAgICAgICAgLy8gICAgIGVsZW1lbnQuc29wX3N0b3JlcyA9IGRhdGEuc3RvcmVzO1xyXG4gIC8vICAgICAgICAgLy8gICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIC8vICAgICAgICAgLy8gICB9XHJcbiAgLy8gICAgICAgICAvLyB9LCAoZXJyb3I6IGFueSkgPT4ge1xyXG5cclxuICAvLyAgICAgICAgIC8vIH0pXHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KVxyXG4gIC8vIH1cclxuICBuZXdzdG9yZSgpIHtcclxuICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS9zdG9yZXNcIl0sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgY2hlY2tsaXN0aWQ6IEpTT04uc3RyaW5naWZ5KHRoaXMub2JqKSB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbnZpdGV1c2VyKCkge1xyXG4gICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbXCIvY29udHJvbC1wYW5lbC9hc3NpZ24tcm9sZVwiXSwge1xyXG4gICAgICBxdWVyeVBhcmFtczogeyBjaGVja2xpc3RpZDogSlNPTi5zdHJpbmdpZnkodGhpcy5vYmopIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZURheSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSBcImRheVwiXHJcbiAgICAgID8gdGhpcy5kYXlqcygpLmZvcm1hdChcIkREXCIpXHJcbiAgICAgIDogXCJcIjtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUubGVuZ3RoICE9IDApIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlIDwgOSA/IFwiMFwiICsgZXZlbnQudGFyZ2V0LnZhbHVlIDogZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9XHJcbiAgICAgICAgdGhpcy5kYXlqcygpLmZvcm1hdChcIkREXCIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoIWlzTmFOKGV2ZW50LnRhcmdldC52YWx1ZSkpIHtcclxuICAgICAgaWYgKGV2ZW50LnRhcmdldC52YWx1ZVswXSA9PSAzICYmIGV2ZW50LnRhcmdldC52YWx1ZVsxXSA+IDEpIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAzO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSAzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChldmVudC50YXJnZXQudmFsdWVbMF0gPiAzICYmIGV2ZW50LnRhcmdldC52YWx1ZVsxXSA+PSAwKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlWzBdO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPVxyXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlWzBdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChldmVudC50YXJnZXQudmFsdWVbMF0gPCAxKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gXCJcIjtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gXCJcIjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IFwiXCI7XHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzYXZlZHJhZnQoKSB7XHJcbiAgICBpZiAoIXRoaXMudmFsaWRUaW1lKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIkludmFsaWQgU2NoZWR1bGUgRW5kIFRpbWVcIik7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGxldCBzdGFydERhdGVXaXRoVGltZSwgZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgaWYgKCF0aGlzLnNob3dSYW5nZVZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IFwiXCI7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9IFwib25ldGltZVwiKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09IFwibW9udGhseVwiICYmXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09IFwiZGF0ZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9XHJcbiAgICAgICAgdGhpcy5tb250aERhdGUgKyBcIiBcIiArIHRoaXMubW9udGhEYXk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09IFwibW9udGhseVwiICYmXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09IFwic3BlY2lmaWNcIlxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aGlzLnN1Ym1pdHRlZERhdGVzLmxlbmd0aClcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnN1Ym1pdHRlZERhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSBcInJhbmdlXCIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0O1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRUeXBlID09ICdyYW5nZScpIHtcclxuICAgIC8vICAgbGV0IHN0YXJ0ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUuc3BsaXQoJyAnKTtcclxuICAgIC8vICAgbGV0IGVuZCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZS5zcGxpdCgnICcpO1xyXG4gICAgLy8gICBzdGFydERhdGVXaXRoVGltZSA9IHN0YXJ0Lmxlbmd0aCA+IDIgPyBzdGFydFsxXSArICcgJyArIHN0YXJ0WzJdIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWU7XHJcbiAgICAvLyAgIGVuZERhdGVXaXRoVGltZSA9IGVuZC5sZW5ndGggPiAyID8gZW5kWzFdICsgJyAnICsgZW5kWzJdIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lO1xyXG4gICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHRoaXMuZGF5anModGhpcy5yYW5nZVN0YXJ0KS5mb3JtYXQoJ1lZWVktTU0tREQnKSArICcgJyArIHN0YXJ0RGF0ZVdpdGhUaW1lO1xyXG4gICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSB0aGlzLmRheWpzKHRoaXMucmFuZ2VFbmQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpICsgJyAnICsgZW5kRGF0ZVdpdGhUaW1lO1xyXG5cclxuICAgIC8vICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID4gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lKSB7XHJcbiAgICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSBzdGFydERhdGVXaXRoVGltZTtcclxuICAgIC8vICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSBlbmREYXRlV2l0aFRpbWU7XHJcbiAgICAvLyAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdFbmQgdGltZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCB0aW1lJyk7XHJcbiAgICAvLyAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5zdWJtaXRUeXBlID0gXCJzYXZlXCI7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5wdWJsaXNoID0gZmFsc2U7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEucmVtb3ZlZFVzZXJzID0gdGhpcy5yZW1vdmVVc2VycztcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlV2Vla0RheXMgPSB0aGlzLnNlbGVjdGVkRGF5cztcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvdmVyYWdlID0gdGhpcy5jb3ZlcmFnZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbXHJcbiAgICAgIC4uLnRoaXMuc2luZ2xlQXNzaWduLFxyXG4gICAgICAuLi50aGlzLmdyb3VwQXNzaWduLFxyXG4gICAgXTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnN0b3JlQ291bnQgPVxyXG4gICAgICB0aGlzLmFzc2lnblNpbmdsZT8ubGVuZ3RoICsgdGhpcy5ncm91cEFzc2lnbj8ubGVuZ3RoO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZW5hYmxlTmV3RGVwbG95ZWRTdG9yZSA9IHRoaXMuc3RvcmVDb3ZlcmFnZVxyXG4gICAgICA/IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmVuYWJsZU5ld0RlcGxveWVkU3RvcmVcclxuICAgICAgOiBmYWxzZTtcclxuICAgIGNvbnN0IHRpbWVab25lID0gZGF5anMudHouZ3Vlc3MoKTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS50aW1lWm9uZSA9IHRpbWVab25lO1xyXG4gICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgIGltYWdlc3JjOlxyXG4gICAgICAgICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICB0aXRsZTogYFVuc2F2ZWQgY2hhbmdlc2AsXHJcbiAgICAgIGNvbnRlbnQ6IGBEbyB5b3Ugd2FudCB0byBzYXZlIGFzIGRyYWZ0P2AsXHJcbiAgICAgIGJ1dHRvbnR5cGU6IFwiZHJhZnRcIixcclxuICAgIH07XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIixcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy50eXBlID09IFwibW9iaWxldXNhZ2VkZXRlY3Rpb25cIiB8fFxyXG4gICAgICAgIHRoaXMudHlwZSA9PSBcInN0b3Jlb3BlbmFuZGNsb3NlXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBcIm1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIpIHtcclxuICAgICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmRldGVjdGlvbkFyZWEgPSB0aGlzLnpvbmVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy50eXBlID09IFwic3RvcmVvcGVuYW5kY2xvc2VcIikge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEub3BlblRpbWU7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2xvc2VUaW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gdGhpcy5zb3BTdG9yZXM7XHJcbiAgICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxlcnQuYWxlcnRzVG8gPSB0aGlzLmVtYWlsTGlzdDtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFyZXMpIHtcclxuICAgICAgICB0aGlzLnBvcHVwQ291bnQgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMgPT0gXCJjb25maXJtXCIpIHtcclxuICAgICAgICB0aGlzLmRldGFzc2lnblVwZGF0ZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICAgICAgICAgIHRoaXMuU29wU2VydmljZS5jb25maWdVcGRhdGUodGhpcy5jb25maWdEYXRhKVxyXG4gICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJEcmFmdCBoYXMgYmVlbiBzYXZlZCBzdWNjZXNzZnVsbHkuXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFtcIi9tYW5hZ2UvdHJheC9jaGVja2xpc3RcIl0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3IgfHwgXCJzb21ldGhpbmcgd2VudCB3cm9uZ1wiO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgUmV1cGxvYWQoKSB7XHJcbiAgICAvLyB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKCk7XHJcbiAgICB0aGlzLnZhbGlkYXRlZFN0b3JlID0gW107XHJcbiAgICB0aGlzLnZhbGlkYXRlZFVzZXIgPSBbXTtcclxuICAgIHRoaXMudmFsaWRhdGVkQ2x1c3RlciA9IFtdO1xyXG4gICAgdGhpcy52YWxpZGF0ZWRUZWFtID0gW107XHJcbiAgICB0aGlzLm5ld1VzZXIgPSBbXTtcclxuICAgIHRoaXMuaW5hY3RpdmVTdG9yZXMgPSBbXTtcclxuICAgIHRoaXMuc2hvd1VzZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1RlYW0gPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1N0b3JlID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dDbHVzdGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dJbmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICBsZXQgZWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMlwiKTtcclxuICAgIGVsZT8uY2xpY2soKTtcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgUmV1cGxvYWQxKCkge1xyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcHVwQ291bnQgPSB0aGlzLnBvcHVwQ291bnQgKyAxO1xyXG4gICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgdGl0bGU6IGBSZXVwbG9hZCBDU1ZgLFxyXG4gICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlcGxhY2UgZXhpc3RpbmcgZGF0YSBieSB1cGxvYWRpbmcgbmV3IGZpbGU/IFlvdXIgZXhpc3RpbmcgZGF0YSB3aWxsIGdldCByZXBsYWNlZCB3aXRoIHRoZSBuZXcgb25lLmAsXHJcbiAgICAgIGJ1dHRvbnR5cGU6IFwiUmV1cGxvYWRcIixcclxuICAgIH07XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIixcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzID09IFwiY29uZmlybVwiKSB7XHJcbiAgICAgICAgdGhpcy5yZXVwbG9hZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgbGV0IGVsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzJcIik7XHJcbiAgICAgICAgZWxlPy5jbGljaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy8gaW52aXRlbmV3dXNlcigpIHtcclxuICAvLyAgIHRoaXMucG9wdXBDb3VudCA9IHRoaXMucG9wdXBDb3VudCArIDE7XHJcbiAgLy8gICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgLy8gICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAvLyAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gIC8vICAgICB0aXRsZTogYEludml0ZSBuZXcgdXNlcnMgYWRkZWQgaW4gQ1NWYCxcclxuICAvLyAgICAgY29udGVudDogYFRoaXMgQ1NWIGNvbnRhaW5zIG5ldyB1c2Vycy4gSW52aXRlIHVzZXJzIGJ5IHNlbmRpbmcgbWFpbCB0byB0aGVtLiA8YnI+YCxcclxuICAvLyAgICAgYnV0dG9udHlwZTogJ0ludml0ZSdcclxuICAvLyAgIH1cclxuICAvLyAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgLy8gICB9KTtcclxuICAvLyAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gIC8vICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuXHJcbiAgLy8gICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgLy8gICAgICAgLy8gdGhpcy5Tb3BTZXJ2aWNlLmNvbmZpZ1VwZGF0ZSh0aGlzLmNvbmZpZ0RhdGEpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAvLyAgICAgICAvLyAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcblxyXG4gIC8vICAgICAgIC8vICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAvLyAgICAgICAvLyAgICAgU3dhbC5maXJlKHtcclxuICAvLyAgICAgICAvLyAgICAgICB0b2FzdDogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICBpY29uSHRtbDogJzxpbWcgIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9JY29ucy9jaGVja2xpc3QtdW5wdWJsaXNoZWQtaWNvbi5zdmdcIj4nLFxyXG4gIC8vICAgICAgIC8vICAgICAgIC8vIHRpdGxlVGV4dDogYEVtYWlsIHNlbnQgc3VjY2VzZnVsbHlgLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGh0bWw6IGA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0yXCI+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPGg0PkNTViBoYXMgYmVlbiBSZXVwbG9hZGVkIHN1Y2Nlc3NmdWxseS48L2g0PlxyXG4gIC8vICAgICAgIC8vICAgICAgIDwvZGl2PlxyXG4gIC8vICAgICAgIC8vICAgICAgIDwvZGl2PmAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcclxuICAvLyAgICAgICAvLyAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgdGltZXI6IDYwMDAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgdGltZXJQcm9ncmVzc0JhcjogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICBkaWRPcGVuOiAodG9hc3QpID0+IHtcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBTd2FsLnN0b3BUaW1lcilcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBTd2FsLnJlc3VtZVRpbWVyKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgJChcIiNrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiKS52YWwoJycpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgICAgICAvLyAgICAgICB9XHJcblxyXG4gIC8vICAgICAgIC8vICAgICB9KVxyXG5cclxuICAvLyAgICAgICAvLyAgICAgLy8gdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9zb3AvQ2hlY2tsaXN0cyddKTtcclxuXHJcbiAgLy8gICAgICAgLy8gICB9XHJcbiAgLy8gICAgICAgLy8gfSlcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSlcclxuXHJcbiAgLy8gfVxyXG4gIC8vIEFkZHN0b3JlKCkge1xyXG4gIC8vICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAvLyAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAvLyAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gIC8vICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgLy8gICAgIHRpdGxlOiBgSW52aXRlIG5ldyB1c2VycyBhZGRlZCBpbiBDU1ZgLFxyXG4gIC8vICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgbmV3IHVzZXJzLiBJbnZpdGUgdXNlcnMgYnkgc2VuZGluZyBtYWlsIHRvIHRoZW0uIDxicj5gLFxyXG4gIC8vICAgICBzdWJ0aXRsZTogJ0xLU1QwMDksIFNUMzA0NScsXHJcbiAgLy8gICAgIGJ1dHRvbnR5cGU6ICdBZGRzdG9yZSdcclxuICAvLyAgIH1cclxuICAvLyAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgLy8gICB9KTtcclxuICAvLyAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gIC8vICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuXHJcbiAgLy8gICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgLy8gICAgICAgLy8gdGhpcy5Tb3BTZXJ2aWNlLmNvbmZpZ1VwZGF0ZSh0aGlzLmNvbmZpZ0RhdGEpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAvLyAgICAgICAvLyAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcblxyXG4gIC8vICAgICAgIC8vICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAvLyAgICAgICAvLyAgICAgU3dhbC5maXJlKHtcclxuICAvLyAgICAgICAvLyAgICAgICB0b2FzdDogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICBpY29uSHRtbDogJzxpbWcgIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9JY29ucy9jaGVja2xpc3QtdW5wdWJsaXNoZWQtaWNvbi5zdmdcIj4nLFxyXG4gIC8vICAgICAgIC8vICAgICAgIC8vIHRpdGxlVGV4dDogYEVtYWlsIHNlbnQgc3VjY2VzZnVsbHlgLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGh0bWw6IGA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0yXCI+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPGg0PkNTViBoYXMgYmVlbiBSZXVwbG9hZGVkIHN1Y2Nlc3NmdWxseS48L2g0PlxyXG4gIC8vICAgICAgIC8vICAgICAgIDwvZGl2PlxyXG4gIC8vICAgICAgIC8vICAgICAgIDwvZGl2PmAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcclxuICAvLyAgICAgICAvLyAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgdGltZXI6IDYwMDAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgdGltZXJQcm9ncmVzc0JhcjogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICBkaWRPcGVuOiAodG9hc3QpID0+IHtcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBTd2FsLnN0b3BUaW1lcilcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBTd2FsLnJlc3VtZVRpbWVyKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgJChcIiNrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiKS52YWwoJycpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgICAgICAvLyAgICAgICB9XHJcblxyXG4gIC8vICAgICAgIC8vICAgICB9KVxyXG5cclxuICAvLyAgICAgICAvLyAgICAgLy8gdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9zb3AvQ2hlY2tsaXN0cyddKTtcclxuXHJcbiAgLy8gICAgICAgLy8gICB9XHJcbiAgLy8gICAgICAgLy8gfSlcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSlcclxuXHJcbiAgLy8gfVxyXG4gIC8vIGFkZFVzZXIoKSB7XHJcbiAgLy8gICB0aGlzLmFkZFVzZXJGb3JtID0gIXRoaXMuYWRkVXNlckZvcm07XHJcbiAgLy8gfVxyXG5cclxuICAvLyBjcmVhdGV1c2VyUG9wdXAodHlwZTogc3RyaW5nLCByZWNvcmQ6IGFueSA9IG51bGwpOiB2b2lkIHtcclxuICAvLyAgICAgaWYgKHR5cGUgPT0gJ3ZpZXcnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5wb3BVcFRpdGxlID0gXCJWaWV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5wb3BVcFRpdGxlID0gXCJFZGl0IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgIHRoaXMucG9wVXBUaXRsZSA9IFwiRW50ZXIgTmV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICAgIC8vIHRoaXMucG9wVXBUaXRsZSA9IFwiRW50ZXIgTmV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIGxldCBkYXRhID0ge1xyXG4gIC8vICAgICAgIHJlY29yZDogcmVjb3JkLFxyXG4gIC8vICAgICAgIHR5cGU6IHR5cGUsXHJcbiAgLy8gICAgICAgdGl0bGU6IHRoaXMucG9wVXBUaXRsZVxyXG4gIC8vICAgICB9XHJcblxyXG4gIC8vICAgICBjb25zdCBkaWFsb2dSZWZfY3JlYXRlVXNlciA9IHRoaXMuZGlhbG9nLm9wZW4oVXBsb2FkU2luZ2xlVXNlckNvbXBvbmVudCwge1xyXG4gIC8vICAgICAgIHBhbmVsQ2xhc3M6ICdjdXN0b20tbW9kYWxib3gnLFxyXG4gIC8vICAgICAgIGRhdGE6IGRhdGFcclxuICAvLyAgICAgfSk7XHJcblxyXG4gIC8vICAgICBkaWFsb2dSZWZfY3JlYXRlVXNlci5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAvLyAgICAgICB0aGlzLnNob3dJbnRybyA9IGZhbHNlO1xyXG4gIC8vICAgICAgIGlmICghcmVjb3JkICYmIHJlcyAmJiByZXMuZGF0YS5jb2RlID09IDIwMCkge1xyXG4gIC8vICAgICAgICAgU3dhbC5maXJlKHtcclxuICAvLyAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnLFxyXG4gIC8vICAgICAgICAgICB0ZXh0OiAnVGhlIHVzZXIgaW52aXRlIGhhcyBiZWVuIHNlbnQgc3VjY2Vzc2Z1bGx5IHRvIHRoZSB1c2VyIGFuZCBhZGRlZCB0byB0aGUgcGxhdGZvcm0hJyxcclxuICAvLyAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICdPSycsXHJcbiAgLy8gICAgICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiBmYWxzZSxcclxuICAvLyAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2VcclxuICAvLyAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gIC8vICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VyID0gJydcclxuICAvLyAgICAgICAgICAgICB0aGlzLmFkZFVzZXJGb3JtID0gZmFsc2U7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSAxO1xyXG4gIC8vICAgICAgICAgICAgIC8vIHRoaXMubG9hZFJlY29yZHMoMCwgdGhpcy5zaXplKVxyXG4gIC8vICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICB9KVxyXG4gIC8vICAgICAgIH0gZWxzZSBpZiAocmVzICYmIHJlcy5kYXRhLmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgICBTd2FsLmZpcmUoe1xyXG4gIC8vICAgICAgICAgICBpY29uOiAnc3VjY2VzcycsXHJcbiAgLy8gICAgICAgICAgIHRleHQ6ICdVc2VyIFVwZGF0ZWQgU3VjY2Vzc2Z1bGx5IScsXHJcbiAgLy8gICAgICAgICAgIGhlaWdodEF1dG86IGZhbHNlXHJcbiAgLy8gICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIHRoaXMuc2VhcmNoVXNlciA9ICcnXHJcbiAgLy8gICAgICAgICB0aGlzLmFkZFVzZXJGb3JtID0gZmFsc2U7XHJcbiAgLy8gICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgLy8gICAgICAgICAvLyB0aGlzLmxvYWRSZWNvcmRzKDAsIHRoaXMuc2l6ZSlcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICB9XHJcblxyXG4gIC8vIGNyZWF0ZXVzZXJQb3B1cCgpIHtcclxuICAvLyAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVXBsb2FkU2luZ2xlVXNlckNvbXBvbmVudCwge1xyXG4gIC8vICAgICBwYW5lbENsYXNzOiAnY3VzdG9tLW1vZGFsYm94J1xyXG5cclxuICAvLyAgIH0pO1xyXG4gIC8vICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKClcclxuICAvLyAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuXHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gfVxyXG5cclxuICAvLyB0cmFuc2ZlckZvcm1EYXRhKCkge1xyXG4gIC8vICAgdGhpcy5Tb3BTZXJ2aWNlLnNvcERhdGEuYXNPYnNlcnZhYmxlKClcclxuICAvLyB9XHJcbiAgc2F2ZWFuZHJlZGlyZWN0KGlkOiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy50eXBlID09IFwibW9iaWxldXNhZ2VkZXRlY3Rpb25cIiB8fFxyXG4gICAgICB0aGlzLnR5cGUgPT0gXCJzdG9yZW9wZW5hbmRjbG9zZVwiXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PSBcIm1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIpIHtcclxuICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5kZXRlY3Rpb25BcmVhID0gdGhpcy56b25lcztcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50eXBlID09IFwic3RvcmVvcGVuYW5kY2xvc2VcIikge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID1cclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5vcGVuVGltZTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPVxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNsb3NlVGltZTtcclxuICAgICAgfVxyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUbyA9IHRoaXMuZW1haWxMaXN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLnN1Ym1pdFR5cGUgPSBcInNhdmVcIjtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5yZW1vdmVkVXNlcnMgPSB0aGlzLnJlbW92ZVVzZXJzO1xyXG5cclxuICAgIGxldCBzdGFydERhdGVXaXRoVGltZSwgZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgaWYgKCF0aGlzLnNob3dSYW5nZVZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IFwiXCI7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9IFwib25ldGltZVwiKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSBcIm1vbnRobHlcIiAmJlxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSBcImRhdGVcIlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPVxyXG4gICAgICAgIHRoaXMubW9udGhEYXRlICsgXCIgXCIgKyB0aGlzLm1vbnRoRGF5O1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSBcIm1vbnRobHlcIiAmJlxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSBcInNwZWNpZmljXCJcclxuICAgICkge1xyXG4gICAgICBpZiAodGhpcy5zdWJtaXR0ZWREYXRlcy5sZW5ndGgpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zdWJtaXR0ZWREYXRlcztcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gXCJyYW5nZVwiICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdC5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuXHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdFwiXSwge1xyXG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IGNoZWNrbGlzdElkOiBpZCB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCBcInNvbWV0aGluZyB3ZW50IHdyb25nXCI7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycik7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgdmFsaWRhdGVUaW1lKCkge1xyXG4gICAgbGV0IHN0YXJ0VGltZSA9IHRoaXMuZGF5anModGhpcy5zdGFydFRpbWUsIFwiSEg6bW1cIik7XHJcbiAgICBsZXQgZW5kVGltZSA9IHRoaXMuZGF5anModGhpcy5lbmRUaW1lLCBcIkhIOm1tXCIpO1xyXG4gICAgaWYgKHRoaXMuc2hvd1JhbmdlVmFsdWUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gXCJcIiAmJlxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gbnVsbCAmJlxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT0gXCJcIiAmJlxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT0gbnVsbFxyXG4gICAgICApIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlID09XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaWYgKHN0YXJ0VGltZSA+IGVuZFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZFRpbWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBUaW1lJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRUaW1lID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA+XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkVGltZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiSW52YWxpZCBTY2hlZHVsZSBFbmQgRGF0ZVwiKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52YWxpZFRpbWUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmFsaWRUaW1lID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChzdGFydFRpbWUgPiBlbmRUaW1lKSB7XHJcbiAgICAgIHRoaXMudmFsaWRUaW1lID0gZmFsc2U7XHJcbiAgICAgIC8vIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBTY2hlZHVsZSBFbmQgVGltZScpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkVGltZSA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVUaW1lKGRhdGE6IGFueSkge1xyXG4gICAgaWYgKHRoaXMudmFsaWRhdGVUaW1lKCkpIHtcclxuICAgICAgaWYgKGRhdGEgPT0gXCJzdGFydFwiKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgdGhpcy5zdGFydFRpbWUsXHJcbiAgICAgICAgICBcIkhIOm1tXCIsXHJcbiAgICAgICAgKS5mb3JtYXQoXCJoaDptbSBBXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICB0aGlzLmVuZFRpbWUsXHJcbiAgICAgICAgICBcIkhIOm1tXCIsXHJcbiAgICAgICAgKS5mb3JtYXQoXCJoaDptbSBBXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgdXBkYXRlU2NoZWR1bGUoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPSBcIlwiO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9IFwiMDFcIjtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gW107XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICB0aGlzLnNwZWNpZmljID0gZmFsc2U7XHJcbiAgICB0aGlzLm1vbnRoRGF0ZSA9IFwiXCI7XHJcbiAgICB0aGlzLm1vbnRoRGF5ID0gXCJcIjtcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dSYW5nZVZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlID09IFwicmFuZ2VcIiA/IHRydWUgOiBmYWxzZTtcclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPT0gXCJyYW5nZVwiKSB7XHJcbiAgICAgIC8vIHRoaXMucmVmcmVzaFBpY2tlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNwZWNpZmljID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSBbXTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID1cclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHx8XHJcbiAgICAgICAgdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIik7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHx8XHJcbiAgICAgICAgdGhpcy5kYXlqcygpLmFkZCgxLCBcImRheVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IHtcclxuICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSxcclxuICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlLFxyXG4gICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5taW5FbmREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSxcclxuICAgICAgKS5mb3JtYXQoKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtcclxuICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoXHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSxcclxuICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcyhcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICApLmZvcm1hdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gXCJcIjtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IFwiXCI7XHJcbiAgICAgIHRoaXMubWluU3RhcnREYXRlID0gXCJcIjtcclxuICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSBcIlwiO1xyXG4gICAgICB0aGlzLm1pbkVuZERhdGUgPSBcIlwiO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5kYXlqcygpXHJcbiAgICAgICAgLmFkZCgxLCBcImRheVwiKVxyXG4gICAgICAgIC5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xyXG4gICAgICAvLyB0aGlzLnJlZnJlc2hQaWNrZXIgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPT0gXCJ3ZWVrZGF5XCIpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbXHJcbiAgICAgICAgXCJNb25kYXlcIixcclxuICAgICAgICBcIlR1ZXNkYXlcIixcclxuICAgICAgICBcIldlZG5lc2RheVwiLFxyXG4gICAgICAgIFwiVGh1cnNkYXlcIixcclxuICAgICAgICBcIkZyaWRheVwiLFxyXG4gICAgICBdO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSBcIndlZWtseVwiKSB7XHJcbiAgICAgIGxldCB0b2RheURhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KFwiZGRkZFwiKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbdG9kYXlEYXRlXTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPT0gXCJtb250aGx5XCIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPSBcImRheVwiO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID1cclxuICAgICAgICB0aGlzLmRheWpzKCkuZm9ybWF0KFwiRERcIik7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIFtcImRhaWx5XCIsIFwib25ldGltZVwiXS5pbmNsdWRlcyhldmVudC50YXJnZXQudmFsdWUpIHx8XHJcbiAgICAgIChldmVudC50YXJnZXQudmFsdWUgPT0gXCJtb250aGx5XCIgJiZcclxuICAgICAgICBbXCJkYXlcIiwgXCJkYXRlXCJdLmluY2x1ZGVzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAsXHJcbiAgICAgICAgKSlcclxuICAgICkge1xyXG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlID09IFwib25ldGltZVwiKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5jb25maWdEYXRhXHJcbiAgICAgICAgICAuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGVcclxuICAgICAgICAgID8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlXHJcbiAgICAgICAgICA6IGRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0ge1xyXG4gICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUsXHJcbiAgICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUsXHJcbiAgICAgICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dPbmNlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlcGVhdFR5cGUgPVxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gXCJkYWlseVwiXHJcbiAgICAgICAgPyBcIkRheVwiXHJcbiAgICAgICAgOiBbXCJ3ZWVrbHlcIiwgXCJ3ZWVrZGF5XCJdLmluY2x1ZGVzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlLFxyXG4gICAgICAgIClcclxuICAgICAgICAgID8gXCJXZWVrXCJcclxuICAgICAgICAgIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09IFwibW9udGhseVwiXHJcbiAgICAgICAgICAgID8gXCJNb250aFwiXHJcbiAgICAgICAgICAgIDogXCJcIjtcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy52YWxpZGF0ZVRpbWUoKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9Db250cm9sQ2VudGVyKCkge1xyXG4gICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbXCIvY29udHJvbGNlbnRlci90ZW1wbGF0ZXZpZXdcIl0sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgc291cmNlOiBcImNjXCIgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkOiBhbnk7XHJcblxyXG4gIGFkZFN0b3JlQ29tcG9uZW50KCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4U3RvcmVDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgYmFja2Ryb3A6IFwic3RhdGljXCIsXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICBjaGVja2xpc3RJZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgb2JqOiB0aGlzLm9iaixcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2UsXHJcbiAgICB9O1xyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMudXNlckRhdGEgPSByZXM7XHJcbiAgICAgICAgdGhpcy51cGxvYWQgPSBcInN0b3JlXCI7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZURldGFpbHMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvZ2dsZURyb3BEb3duKCkge1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSAhdGhpcy5zaG93RHJvcERvd247XHJcbiAgfVxyXG4gIHNlbGVjdERhdGUoZGF0ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUuaW5jbHVkZXMoZGF0ZSkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZS5maWx0ZXIoKGRheTogYW55KSA9PiBkYXkgIT09IGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRGF0ZS5pbmNsdWRlcyhkYXRlKSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnB1c2goZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgc3VibWl0RGF0ZSgpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMgPSBbLi4udGhpcy5zZWxlY3RlZERhdGVdO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQmFkZ2UoZGF0ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gdGhpcy5zdWJtaXR0ZWREYXRlcy5maWx0ZXIoKGQpID0+IGQgIT09IGRhdGUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZS5maWx0ZXIoKGQ6IGFueSkgPT4gZCAhPT0gZGF0ZSk7XHJcbiAgfVxyXG4gIGdldERhdGVXaXRoU3VmZml4KGRhdGU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoZGF0ZSA9PSAxIHx8IGRhdGUgPT0gMzEgfHwgZGF0ZSA9PSAyMSkge1xyXG4gICAgICByZXR1cm4gZGF0ZSArIFwic3RcIjtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PSAyIHx8IGRhdGUgPT0gMjIpIHtcclxuICAgICAgcmV0dXJuIGRhdGUgKyBcIm5kXCI7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGUgPT0gMyB8fCBkYXRlID09IDIzKSB7XHJcbiAgICAgIHJldHVybiBkYXRlICsgXCJyZFwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGRhdGUgKyBcInRoXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZURyb3BEb3duKCkge1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU1vbnRoKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IFwiXCI7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gW107XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9IHR5cGU7XHJcbiAgICB0aGlzLm1vbnRoRGF0ZSA9IFwiXCI7XHJcbiAgICB0aGlzLm1vbnRoRGF5ID0gXCJcIjtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dPbmNlID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gXCJkYXRlXCIpIHtcclxuICAgICAgbGV0IGRhdGVXZWVrID0gZ2V0V2Vla051bWJlcih0aGlzLmRheWpzKCkpO1xyXG4gICAgICB0aGlzLm1vbnRoRGF0ZSA9IGRhdGVXZWVrLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMubW9udGhEYXkgPSB0aGlzLmRheWpzKCkuZm9ybWF0KFwiZGRkZFwiKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSBcImRheVwiKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPVxyXG4gICAgICAgIHRoaXMuZGF5anMoKS5mb3JtYXQoXCJERFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVJlcGVhdERheSgpIHtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXk7XHJcbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XHJcbiAgICAgIHZhbHVlID0gXCIwMVwiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9XHJcbiAgICAgIHZhbHVlID09IFwiMDBcIiB8fCB2YWx1ZSA9PSBcIjBcIiB8fCB2YWx1ZSA9PSBcIlwiID8gXCIwMVwiIDogdmFsdWU7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVNb250aFZhbHVlKCkge1xyXG4gICAgbGV0IGRhdGVWYWx1ZSA9IFwiXCI7XHJcbiAgICBpZiAodGhpcy5tb250aERhdGUgPT0gXCIxXCIpIHtcclxuICAgICAgZGF0ZVZhbHVlID0gXCJGaXJzdFwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubW9udGhEYXRlID09IFwiMlwiKSB7XHJcbiAgICAgIGRhdGVWYWx1ZSA9IFwiU2Vjb25kXCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb250aERhdGUgPT0gXCIzXCIpIHtcclxuICAgICAgZGF0ZVZhbHVlID0gXCJUaGlyZFwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubW9udGhEYXRlID09IFwiNFwiKSB7XHJcbiAgICAgIGRhdGVWYWx1ZSA9IFwiRm91cnRoXCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb250aERhdGUgPT0gXCI1XCIpIHtcclxuICAgICAgZGF0ZVZhbHVlID0gXCJMYXN0XCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJvbiB0aGUgXCIgKyBkYXRlVmFsdWUgKyBcIiBcIiArIHRoaXMubW9udGhEYXk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTcGVjaWZpY1ZhbHVlKCkge1xyXG4gICAgbGV0IHZhbHVlOiBhbnkgPSBbXTtcclxuICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGl0ZW0gPVxyXG4gICAgICAgIGl0ZW0gPT0gMSB8fCBpdGVtID09IDMxIHx8IGl0ZW0gPT0gMjFcclxuICAgICAgICAgID8gaXRlbSArIFwiIHN0XCJcclxuICAgICAgICAgIDogaXRlbSA9PSAyIHx8IGl0ZW0gPT0gMjJcclxuICAgICAgICAgICAgPyBpdGVtICsgXCIgbmRcIlxyXG4gICAgICAgICAgICA6IGl0ZW0gPT0gMyB8fCBpdGVtID09IDIzXHJcbiAgICAgICAgICAgICAgPyBpdGVtICsgXCJyZFwiXHJcbiAgICAgICAgICAgICAgOiBpdGVtICsgXCIgdGhcIjtcclxuICAgICAgdmFsdWUucHVzaChpdGVtKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRGF0ZShkYXRlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IHRoaXMuc2VsZWN0ZWREYXRlTGlzdC5maWx0ZXIoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlICE9IGRhdGUsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2NlZHVsZURhdGUoKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygndGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlJyx0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSBcIlwiICYmXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSBudWxsXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlRGF0ZVZhbHVlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfHxcclxuICAgICAgICB0aGlzLmRheWpzKCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IFwiXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPSBcIlwiO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gXCJcIjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0gXCJcIjtcclxuICAgIHRoaXMubWluRGF0ZSA9IFwiXCI7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkRGF0ZSA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKFxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUsXHJcbiAgICAgICkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgICApLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5taW5TdGFydERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlLFxyXG4gICAgKS5mb3JtYXQoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNwZWNpZmljKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRhdGVwaWNrZXJSZWZyZXNoKCkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IFwiXCI7XHJcbiAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IFwiXCI7XHJcbiAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUsXHJcbiAgICApLmZvcm1hdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3BlY2lmaWNEYXRlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSBldmVudDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnRcIl0pXHJcbiAgY2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcclxuICAgICAgXCIuZHJvcGRvd24tY2xvc2VcIixcclxuICAgICk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhjbGlja2VkSW5zaWRlKTtcclxuXHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcclxuICAgICAgdGhpcy5jbG9zZURyb3BEb3duKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDbGllbnRVc2VyKCkge1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldENsaWVudFVzZXIodGhpcy5jbGllbnRJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRVc2VycyA9IHJlcy5kYXRhLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IG5hbWU6IGl0ZW0udXNlck5hbWUsIHZhbHVlOiBpdGVtLmVtYWlsLCByb2xlOiBpdGVtLnJvbGUgfTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIC8vIHRoaXMuYWRtaW5Vc2VycyA9IHRoaXMuYWxlcnRVc2Vycy5maWx0ZXIoKGVsZTphbnkpID0+IGVsZS5yb2xlICE9ICd1c2VyJyk7XHJcblxyXG4gICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFwcHJvdmVyPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5hcHByb3ZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgbGV0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcInt9XCIsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmICh1c2VySW5mby51c2VyVHlwZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlclR5cGUgPSB1c2VySW5mby51c2VyVHlwZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgdXNlckluZm8/LnVzZXJUeXBlID09IFwidGFuZ29cIiB8fFxyXG4gICAgICAgICAgICAgICh1c2VySW5mbz8udXNlclR5cGUgPT0gXCJjbGllbnRcIiAmJiB1c2VySW5mbz8ucm9sZSA9PSBcInVzZXJcIilcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHVzZXJMaXN0ID0gdGhpcy5hbGVydFVzZXJzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5yb2xlID09IFwic3VwZXJhZG1pblwiLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgaWYgKHVzZXJMaXN0ICYmIHRoaXMudHlwZSA9PSBcImN1c3RvbVwiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFtcclxuICAgICAgICAgICAgICAgICAgeyBuYW1lOiB1c2VyTGlzdC5uYW1lLCB2YWx1ZTogdXNlckxpc3QudmFsdWUgfSxcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFVzZXJzLmZpbmQoKGVsZTogYW55KSA9PiBlbGUudmFsdWUgPT0gdXNlckluZm8uZW1haWwpLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFVzZXJzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFpvbmVMaXN0KCkge1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldFpvbmVMaXN0KHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIGNoZWNrTGlzdE5hbWU6IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3ROYW1lLFxyXG4gICAgfSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy56b25lTGlzdCA9IHJlcy5kYXRhLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IG5hbWU6IGl0ZW0uem9uZSwgdmFsdWU6IGl0ZW0uem9uZSB9O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuem9uZUxpc3QgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVhbUxpc3QoKSB7XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0VGVhbUxpc3QodGhpcy5jbGllbnRJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFRlYW1zID0gcmVzLmRhdGEubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbmFtZTogaXRlbS50ZWFtTmFtZSwgdmFsdWU6IGl0ZW0uX2lkIH07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFRlYW1zID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFsZXJ0KGV2ZW50OiBhbnksIHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT0gXCJ1c2VyXCIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0cy51c2VycyA9IGV2ZW50O1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09IFwiYXBwcm92ZVwiKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5hcHByb3ZlciA9IGV2ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlWm9uZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLmRldGVjdGlvbkFyZWEgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUxvb3AoKSB7XHJcbiAgICBsZXQgZGF0YSA9IHRoaXMubWludXRlcy5maWx0ZXIoXHJcbiAgICAgIChpdGVtKSA9PiAhdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyLmluY2x1ZGVzKGl0ZW0pLFxyXG4gICAgKTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5wdXNoKGRhdGFbMF0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVtYWluZGVyKGV2ZW50OiBhbnksIGluZGV4OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlcltpbmRleF0gPSBwYXJzZUludChcclxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFwcHJvdmVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVPd25lcihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5vd25lciA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQXNzaWduKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudXBsb2FkID0gXCJcIjtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IGV2ZW50O1xyXG4gICAgLy8gdGhpcy50YWJsZUFycmF5ID0gZXZlbnQ7XHJcbiAgICBsZXQgZGF0YSA9IGV2ZW50Lm1hcCgoZWw6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4geyBpZDogZWw/Ll9pZCwgdHlwZTogZWw/LnR5cGUgfTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pZExpc3QgPSBkYXRhO1xyXG4gICAgdGhpcy50YWJsZUZpbHRlciA9IFwiXCI7XHJcbiAgICB0aGlzLmFzc2lnblR5cGUgPT09IFwic3RvcmVcIiB8fCB0aGlzLmFzc2lnblR5cGUgPT09IFwidXNlclwiXHJcbiAgICAgID8gKCh0aGlzLnNpbmdsZUFzc2lnbiA9IHRoaXMuaWRMaXN0KSwgdGhpcy5nZXRUYWJsZURhdGEoKSlcclxuICAgICAgOiAoKHRoaXMuZ3JvdXBBc3NpZ24gPSB0aGlzLmlkTGlzdCksIHRoaXMudXNlckRldGFpbHNWMihldmVudCkpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlZENoaXAoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZUFycmF5ID0gdGhpcy50YWJsZUFycmF5Py5maWx0ZXIoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+ICFldmVudC5pbmNsdWRlcyhpdGVtLl9pZCksXHJcbiAgICApO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID1cclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduPy5maWx0ZXIoXHJcbiAgICAgICAgKGl0ZW06IGFueSkgPT4gIWV2ZW50LmluY2x1ZGVzKGl0ZW0uX2lkKSxcclxuICAgICAgKTtcclxuICAgIC8vICh0aGlzLmFzc2lnblR5cGUgPT09ICdzdG9yZScgfHwgdGhpcy5hc3NpZ25UeXBlID09PSAndXNlcicpID8gdGhpcy5nZXRUYWJsZURhdGEoKSA6dGhpcy51c2VyRGV0YWlsc1YyKCk7XHJcbiAgfVxyXG5cclxuICB0YWJsZUFycmF5OiBhbnkgPSBbXTtcclxuICB0YWJsZUxvYWRpbmcxOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgdXNlckRldGFpbHNWMihkYXRhPzogYW55KSB7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBjaGVja2xpc3RJZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgaWRMaXN0OiB0aGlzLmlkTGlzdCxcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2UsIC8vW1wiY2x1c3RlclwiLFwic3RvcmVcIixcInVzZXJcIixcInRlYW1zXCJdXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBzZWFyY2g6IHRoaXMudGFibGVGaWx0ZXIsXHJcbiAgICB9O1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcxID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0ltYWdlID0gdHJ1ZTtcclxuICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMuU29wU2VydmljZS5zZWxlY3RDaGlwcyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IHJlcz8uZGF0YT8udW5pcXVlQXJyO1xyXG4gICAgICAgICAgICB0aGlzLmFzc2lnbkdyb3VwID0gdGhpcy50YWJsZUFycmF5O1xyXG4gICAgICAgICAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLnJlY29yZHNDb3VudCA9IHRoaXMudGFibGVEYXRhLmxlbmd0aDtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUFycmF5Py5sZW5ndGhcclxuICAgICAgICAgICAgICA/ICh0aGlzLnNob3dJbWFnZSA9IGZhbHNlKVxyXG4gICAgICAgICAgICAgIDogKHRoaXMuc2hvd0ltYWdlID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gW3RoaXMucmVjb3Jkc1RvdGFsXTtcclxuICAgICAgICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsIDEwLCAxNSwgMjBdO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlQXJyYXkuc2xpY2UoXHJcbiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUgLSB0aGlzLnNpemUsXHJcbiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyB0aGlzLnN0b3JlQ292ZXJhZ2UgPyB0aGlzLmdldEluaXRpYWxEYXRhKHJlcz8uZGF0YT8uc3RvcmVMaXN0KSA6IHRoaXMuZ2V0SW5pdGlhbERhdGEocmVzPy5kYXRhPy51c2VyTGlzdCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gW107XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycj8ubWVzc2FnZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzb3J0Q29sdW1uOiBhbnkgPSBcIlwiO1xyXG4gIHNvcnRCeTogYW55ID0gLTE7XHJcblxyXG4gIGdldHRhYmxlRGF0YSgpIHtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNoZWNrbGlzdElkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBsaW1pdDogdGhpcy5zaXplLFxyXG4gICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgIHNlYXJjaDogdGhpcy50YWJsZUZpbHRlcixcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydENvbHVtbixcclxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnRCeSxcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2UsXHJcbiAgICB9O1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRVc2VyRGV0YWlsc1YyKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVCdG4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSByZXM/LmRhdGE/LnVzZXJzO1xyXG4gICAgICAgICAgICB0aGlzLnJlY29yZHNDb3VudCA9IHRoaXMudGFibGVEYXRhLmxlbmd0aDtcclxuICAgICAgICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LCAyMF07XHJcbiAgICAgICAgICAgICAgdGhpcy5zaXplID0gNTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zdG9yZUNvdmVyYWdlXHJcbiAgICAgICAgICAgID8gdGhpcy5nZXRJbml0aWFsRGF0YShyZXM/LmRhdGE/LnN0b3JlTGlzdClcclxuICAgICAgICAgICAgOiB0aGlzLmdldEluaXRpYWxEYXRhKHJlcz8uZGF0YT8udXNlckxpc3QpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyPy5tZXNzYWdlKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUh1ZGRsZXRpbWUoZXZlbnQ6IEV2ZW50LCBrZXk6IGFueSkge1xyXG4gICAgLy8gbGV0IHNhbXBsZU9iamVjdDphbnk7XHJcbiAgICAvLyBpZiAoa2V5ID09PSAndGltZScpIHtcclxuICAgIC8vICAgY29uc3Qgc2VsZWN0ZWRUaW1lID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcclxuICAgIC8vICAgc2FtcGxlT2JqZWN0LnN0YXJ0VGltZSA9IHNlbGVjdGVkVGltZTtcclxuICAgIC8vIH0gZWxzZSBpZiAoa2V5ID09PSAnZHVyYXRpb24nKSB7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBjb25zb2xlLmxvZygnZHVyYXRpb24nLHRoaXMuaHVkZGxlYXR0aW1lQXJyYXkpXHJcbiAgfVxyXG5cclxuICBkZWxldGVIdWRkbGUoaTogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHMuc3BsaWNlKGksIDEpO1xyXG4gIH1cclxuXHJcbiAgQWRkSHVkZGxlRWVudCgpIHtcclxuICAgIGxldCBzYW1wbGVPYmplY3QgPSB7IHRpbWU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJISDptbVwiKSwgZHVyYXRpb246IFwiMTVcIiB9O1xyXG4gICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzPy5sZW5ndGggPCAzXHJcbiAgICAgID8gdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzLnB1c2goc2FtcGxlT2JqZWN0KVxyXG4gICAgICA6IFwiXCI7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb25maWdSZW1haW5kZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCFldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIgPSBbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlciA9IFt0aGlzLm1pbnV0ZXNbMF1dO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVDb25maWdBcHByb3ZlcihldmVudDogYW55KSB7XHJcbiAgICBpZiAoIWV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgdXNlckluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlci1pbmZvXCIpIHx8IFwie31cIik7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB1c2VySW5mbz8udXNlclR5cGUgPT0gXCJ0YW5nb1wiIHx8XHJcbiAgICAgICAgKHVzZXJJbmZvPy51c2VyVHlwZSA9PSBcImNsaWVudFwiICYmIHVzZXJJbmZvPy5yb2xlID09IFwidXNlclwiKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFtcclxuICAgICAgICAgIHRoaXMuYWxlcnRVc2Vycy5maW5kKChlbGU6IGFueSkgPT4gZWxlLnJvbGUgPT0gXCJzdXBlcmFkbWluXCIpLFxyXG4gICAgICAgIF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBbXHJcbiAgICAgICAgICB0aGlzLmFsZXJ0VXNlcnMuZmluZCgoZWxlOiBhbnkpID0+IGVsZS52YWx1ZSA9PSB1c2VySW5mby5lbWFpbCksXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGltZUxvb3AoaW5kZXg6IGFueSkge1xyXG4gICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIpLFxyXG4gICAgKTtcclxuICAgIGlmIChkYXRhLmxlbmd0aCkge1xyXG4gICAgICBkYXRhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5taW51dGVzLmZpbHRlcigoaXRlbTogYW55KSA9PlxyXG4gICAgICBkYXRhLmxlbmd0aCA/ICFkYXRhPy5pbmNsdWRlcyhpdGVtKSA6IGl0ZW0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYnVsa3VwbG9hZE1vZGVsKCkge1xyXG4gICAgdGhpcy5kcm9wRG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaWFsb2cub3Blbih0aGlzLmJ1bGt1cGxvYWQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlbWFpbEJ1bGt1cGxvYWRNb2RlbCgpIHtcclxuICAgIHRoaXMuZHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nLm9wZW4odGhpcy5lbWFpbEJ1bGt1cGxvYWQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBleGNlbEVycm9yOiBhbnk7XHJcblxyXG4gIGFmdGVyVXBsbG9hZChkYXRhPzogYW55KSB7XHJcbiAgICB0aGlzLmV4Y2VsRXJyb3IgPSBkYXRhO1xyXG4gICAgdGhpcy5kaWFsb2cub3Blbih0aGlzLmFmdGVyVmFsaWRhdGlvbiwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgYmFja2Ryb3A6IFwic3RhdGljXCIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEluaXRpYWxzKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIW5hbWUpIHJldHVybiBcIlwiOyAvLyBIYW5kbGUgZW1wdHkgY2FzZVxyXG4gICAgY29uc3QgW2ZpcnN0TmFtZSwgbGFzdE5hbWVdID0gbmFtZS5zcGxpdChcIiBcIik7XHJcbiAgICBpZiAoIWxhc3ROYW1lKSB7XHJcbiAgICAgIGNvbnN0IGluaXRpYWxzID0gKGZpcnN0TmFtZT8uWzBdIHx8IFwiXCIpICsgKGZpcnN0TmFtZT8uWzFdIHx8IFwiXCIpO1xyXG4gICAgICByZXR1cm4gaW5pdGlhbHMudG9VcHBlckNhc2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluaXRpYWxzID0gKGZpcnN0TmFtZT8uWzBdIHx8IFwiXCIpICsgKGxhc3ROYW1lPy5bMF0gfHwgXCJcIik7XHJcbiAgICAgIHJldHVybiBpbml0aWFscy50b1VwcGVyQ2FzZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uZmlybVVzZXJwb3B1cCgpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4odGhpcy5jb25maXJtVXNlciwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgYmFja2Ryb3A6IFwic3RhdGljXCIsXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jbG9zZWQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzID09PSBcImNvbmZpcm1cIikge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVEZXRhaWxzKFwiYWRkVXNlclwiKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LnJlbW92ZShcImRyYWctb3ZlclwiKTtcclxuICB9XHJcblxyXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgLy8gQWRkIGEgdmlzdWFsIGVmZmVjdCB0byBpbmRpY2F0ZSBkcmFnIGlzIG92ZXIgdGhlIGFyZWFcclxuICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5hZGQoXCJkcmFnLW92ZXJcIik7XHJcbiAgfVxyXG5cclxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5yZW1vdmUoXCJkcmFnLW92ZXJcIik7XHJcblxyXG4gICAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF07XHJcbiAgICAgIGNvbnN0IGZpbGVJbnB1dEVsZW1lbnQgPSB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgLy8gTWFudWFsbHkgc2V0IHRoZSBmaWxlIHRvIHRoZSBpbnB1dFxyXG4gICAgICBjb25zdCBkYXRhVHJhbnNmZXIgPSBuZXcgRGF0YVRyYW5zZmVyKCk7XHJcbiAgICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XHJcbiAgICAgIGZpbGVJbnB1dEVsZW1lbnQuZmlsZXMgPSBkYXRhVHJhbnNmZXIuZmlsZXM7XHJcblxyXG4gICAgICAvLyBUcmlnZ2VyIHRoZSBjaGFuZ2UgZXZlbnQgbWFudWFsbHlcclxuICAgICAgZmlsZUlucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImNoYW5nZVwiKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVBbHBoYXBldChldmVudDogYW55KSB7XHJcbiAgICBpZiAoaXNOYU4oZXZlbnQudGFyZ2V0LnZhbHVlKSkge1xyXG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSBcIjAxXCI7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSBcIjAxXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcmVvcGVudGltZWNvbmZpZzogYW55O1xyXG4gIGNoYW5nZVByZW9wZW50aW1lY29uZmlnKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucHJlb3BlbnRpbWVjb25maWcgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIGlmICghdGhpcy5wcmVvcGVudGltZWNvbmZpZykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcub3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nLnByZW9wZW50aW1lY29uZmlnID1cclxuICAgICAgICBcIlwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJlY2xvc2V0aW1lY29uZmlnOiBhbnk7XHJcbiAgY2hhbmdlUHJlY2xvc2V0aW1lY29uZmlnKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucHJlY2xvc2V0aW1lY29uZmlnID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICBpZiAoIXRoaXMucHJlY2xvc2V0aW1lY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5vdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcucHJlY2xvc2V0aW1lY29uZmlnID1cclxuICAgICAgICBcIlwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlYWxlcnR0aW1lY29uZmlnKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuYWxlcnR0aW1la2V5Y29uZmlnID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxsb3dCdWZmZXIuZW5hYmxlZCA9XHJcbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkIHx8IGZhbHNlO1xyXG4gICAgaWYgKCF0aGlzLmFsZXJ0dGltZWtleWNvbmZpZykge1xyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxsb3dCdWZmZXIuYWZ0ZXJPcGVuVGltZSA9ICcnO1xyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxsb3dCdWZmZXIuYmVmb3JlQ2xvc2VUaW1lID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2Vub3RpZmljYXRpb25jb25maWcoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25rZXljb25maWcgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbmFibGVkID1cclxuICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgfHwgZmFsc2U7XHJcbiAgICBpZiAoIXRoaXMubm90aWZpY2F0aW9ua2V5Y29uZmlnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIgPSBbXTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLm1vYmlsZSA9IFtdO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uc3luY01vYmlsZVdlYiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWwudHlwZSA9IFtdO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWwudXNlcnMgPSBbXTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsLnRlYW1zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VhdXRvdGFza2NvbmZpZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmF1dG90YXNra2V5Y29uZmlnID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcuZW5hYmxlZCA9XHJcbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkIHx8IGZhbHNlO1xyXG4gICAgaWYgKCF0aGlzLmF1dG90YXNra2V5Y29uZmlnKSB7XHJcbiAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy5hcHByb3ZlciA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGFuZ2VxdWV1ZWxlbmd0aGNvbmZpZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnF1ZXVlTGVuZ3RoRW5hYmxlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgIFwi8J+agCB+IENoZWNrbGlzdENvbmZpZ3VyZUNvbXBvbmVudCB+IGNoYW5nZXF1ZXVlbGVuZ3RoY29uZmlnIH4gdGhpcy5xdWV1ZUxlbmd0aEVuYWJsZWQ6XCIsXHJcbiAgICAgIHRoaXMucXVldWVMZW5ndGhFbmFibGVkLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcucXVldWVhbGVydC5xdWV1ZUxlbmd0aEVuYWJsZWQgPVxyXG4gICAgICBldmVudC50YXJnZXQuY2hlY2tlZCB8fCBmYWxzZTtcclxuICB9XHJcbiAgY2FtZXJhQW5nbGVjb25maWcoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jYW1lcmFBbmdsZUVuYWJsZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBcIvCfmoAgfiBDaGVja2xpc3RDb25maWd1cmVDb21wb25lbnQgfiBjaGFuZ2VxdWV1ZWxlbmd0aGNvbmZpZyB+IHRoaXMucXVldWVMZW5ndGhFbmFibGVkOlwiLFxyXG4gICAgICB0aGlzLmNhbWVyYUFuZ2xlRW5hYmxlZCxcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmNhbWVyQW5nbGUuZW5hYmxlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkIHx8IGZhbHNlO1xyXG4gIH1cclxuICBjaGFuZ2VxdWV1ZXdhaXR0aW1lY29uZmlnKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMud2FpdFRpbWVFbmFibGVkID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcucXVldWVhbGVydC53YWl0VGltZUVuYWJsZWQgPVxyXG4gICAgICBldmVudC50YXJnZXQuY2hlY2tlZCB8fCBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNoYW5nZWFsZXJ0Y29vbGRvd25jb25maWcoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5hbGVydENvb2xkb3duRW5hYmxlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3N0YWZmZ3JvdXBpbmcnKSB7XHJcbiAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZyA9IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLmFsZXJ0Q29vbGRvd25FbmFibGVkID1cclxuICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCB8fCBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnF1ZXVlYWxlcnQpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcucXVldWVhbGVydCA9IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5xdWV1ZWFsZXJ0LmFsZXJ0Q29vbGRvd25FbmFibGVkID1cclxuICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCB8fCBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZWV4cG9ydGNvbmZpZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmV4cG9ydGtleWNvbmZpZyA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV4cG9ydENvbmZpZy5lbmFibGVkID1cclxuICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgfHwgZmFsc2U7XHJcbiAgICBpZiAoIXRoaXMuZXhwb3J0a2V5Y29uZmlnKSB7XHJcbiAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5leHBvcnRDb25maWcuZm9ybWF0ID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VkZXRlY3RlZHN0YXR1c2NvbmZpZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmRldGVjdGVkc3RhdHVza2V5Y29uZmlnID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWR2YW5jZWRDb25maWcuZGV0ZWN0ZWRTdGF0dXMuZW5hYmxlZCA9XHJcbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkIHx8IGZhbHNlO1xyXG4gICAgaWYgKCF0aGlzLmRldGVjdGVkc3RhdHVza2V5Y29uZmlnKSB7XHJcbiAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hZHZhbmNlZENvbmZpZy5kZXRlY3RlZFN0YXR1cy5kZXRlY3Rpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VhdWRpdHJlcXVpcmVkY29uZmlnKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuYXVkaXRrZXljb25maWcgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hZHZhbmNlZENvbmZpZy5hdWRpdENvbmZpZy5lbmFibGVkID1cclxuICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgfHwgZmFsc2U7XHJcbiAgICBpZiAoIXRoaXMuYXVkaXRrZXljb25maWcpIHtcclxuICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFkdmFuY2VkQ29uZmlnLmF1ZGl0Q29uZmlnLmlucHV0U291cmNlRmlsZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlc3luY01vYmlsZVdlYmNvbmZpZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uc3luY01vYmlsZVdlYiA9XHJcbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkIHx8IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5zeW5jTW9iaWxlV2ViKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIgPSB0aGlzLm1lcmdlVW5pcXVlKFxyXG4gICAgICAgIFtcclxuICAgICAgICAgIC4uLnRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIsXHJcbiAgICAgICAgICAuLi50aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8ubW9iaWxlLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgXCJuYW1lXCIsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyB1cGRhdGVOb3RpZmljYXRpb25BbGVydChldmVudDogYW55LHR5cGU6YW55LG9wdGlvbjphbnkpIHtcclxuICAvLyAgIGlmICh0eXBlID09ICd1c2VyJykge1xyXG4gIC8vICAgICBpZiAob3B0aW9uID09ICd3ZWInKSB7XHJcbiAgLy8gICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLndlYiA9IFsuLi5ldmVudF07XHJcbiAgLy8gICAgIH1lbHNlIGlmIChvcHRpb24gPT0gJ21vYmlsZScpIHtcclxuICAvLyAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8ubW9iaWxlID0gWy4uLmV2ZW50XTtcclxuICAvLyAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uc3luY01vYmlsZVdlYil7XHJcbiAgLy8gICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8ud2ViID0gWy4uLmV2ZW50XTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0gZWxzZSBpZiAodHlwZSA9PSAnYXBwcm92ZScpIHtcclxuICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmFwcHJvdmVyID0gZXZlbnQ7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICAvLyBwcml2YXRlIG1lcmdlVW5pcXVlKHRhcmdldEFycjogYW55W10sIG5ld0l0ZW1zOiBhbnkgfCBhbnlbXSk6IGFueVtdIHtcclxuICAvLyAgIGNvbnN0IGFyciA9IEFycmF5LmlzQXJyYXkobmV3SXRlbXMpID8gbmV3SXRlbXMgOiBbbmV3SXRlbXNdO1xyXG4gIC8vICAgLy8gbWVyZ2UgYXJyYXlzXHJcbiAgLy8gICBjb25zdCBtZXJnZWQgPSBbLi4udGFyZ2V0QXJyLCAuLi5hcnJdO1xyXG4gIC8vICAgLy8gcmVtb3ZlIGR1cGxpY2F0ZXMgYnkgXCJ2YWx1ZVwiXHJcbiAgLy8gICBjb25zdCB1bmlxdWUgPSBBcnJheS5mcm9tKFxyXG4gIC8vICAgICBuZXcgTWFwKG1lcmdlZC5tYXAoaXRlbSA9PiBbaXRlbS52YWx1ZSwgaXRlbV0pKS52YWx1ZXMoKVxyXG4gIC8vICAgKTtcclxuICAvLyAgIHJldHVybiB1bmlxdWU7XHJcbiAgLy8gfVxyXG5cclxuICB1cGRhdGVOb3RpZmljYXRpb25BbGVydChldmVudDogYW55LCB0eXBlOiBhbnksIG9wdGlvbjogYW55KSB7XHJcbiAgICBpZiAodHlwZSA9PT0gXCJ1c2VyXCIpIHtcclxuICAgICAgaWYgKG9wdGlvbiA9PT0gXCJ3ZWJcIikge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIgPSB0aGlzLm1lcmdlVW5pcXVlKFxyXG4gICAgICAgICAgWy4uLnRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIsIC4uLmV2ZW50XSxcclxuICAgICAgICAgIFwibmFtZVwiLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSBpZiAob3B0aW9uID09PSBcIm1vYmlsZVwiKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLm1vYmlsZSA9XHJcbiAgICAgICAgICB0aGlzLm1lcmdlVW5pcXVlKFxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgLi4udGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLm1vYmlsZSxcclxuICAgICAgICAgICAgICAuLi5ldmVudCxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgXCJuYW1lXCIsXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLnN5bmNNb2JpbGVXZWIpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIgPVxyXG4gICAgICAgICAgICB0aGlzLm1lcmdlVW5pcXVlKFxyXG4gICAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby53ZWIsXHJcbiAgICAgICAgICAgICAgICAuLi5ldmVudCxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIFwibmFtZVwiLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBcImFwcHJvdmVcIikge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYXBwcm92ZXIgPSBldmVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVyZ2VVbmlxdWUoYXJyOiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gWy4uLm5ldyBNYXAoYXJyLm1hcCgob2JqOiBhbnkpID0+IFtvYmpba2V5XSwgb2JqXSkpLnZhbHVlcygpXTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUF1dG9UYXNrKGV2ZW50OiBhbnksIHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT0gXCJ1c2VyXCIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLmFwcHJvdmVyID0gZXZlbnQ7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5hcHByb3ZlciA9IGV2ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlSW5wdXRTb3VyY2VGaWxlUmFkaW8oZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWR2YW5jZWRDb25maWcuYXVkaXRDb25maWcuaW5wdXRTb3VyY2VGaWxlID0gZGF0YTtcclxuICB9XHJcblxyXG4gIGNoYW5nZURldGVjdGlvblN0YXR1cyhldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGlucHV0LnZhbHVlO1xyXG5cclxuICAgIGlmIChpbnB1dC5jaGVja2VkKSB7XHJcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZERldGVjdGlvblN0YXR1cy5pbmNsdWRlcyh2YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZWN0aW9uU3RhdHVzLnB1c2godmFsdWUpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hZHZhbmNlZENvbmZpZy5kZXRlY3RlZFN0YXR1cy5kZXRlY3Rpb25zID1cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlY3Rpb25TdGF0dXM7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGV0ZWN0aW9uU3RhdHVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZWN0aW9uU3RhdHVzID0gdGhpcy5zZWxlY3RlZERldGVjdGlvblN0YXR1cy5maWx0ZXIoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtICE9PSB2YWx1ZSxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VEYXRhcHJvY2Vzc2luZyhkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hZHZhbmNlZENvbmZpZy5kYXRhUHJvY2Vzc2luZyA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VFeHBvcnRWYWx1ZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dC52YWx1ZTtcclxuICAgIGNvbnN0IGFsbFZhbHVlID0gW1wiQUxMXCIsIFwiQ1NWXCIsIFwiUERGXCIsIFwiUFBUXCIsIFwiWklQXCJdO1xyXG4gICAgY29uc3QgcmVxdWlyZWRWYWx1ZXMgPSBbXCJDU1ZcIiwgXCJQREZcIiwgXCJQUFRcIiwgXCJaSVBcIl07XHJcbiAgICBpZiAodmFsdWUgPT0gXCJBTExcIikge1xyXG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnID0gYWxsVmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV4cG9ydENvbmZpZy5mb3JtYXQgPVxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnID0gW107XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV4cG9ydENvbmZpZy5mb3JtYXQgPVxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gaG93IHRvIHJlbW92ZSBvbmx5ICdBTEwnIHZhbHVlXHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnLmluY2x1ZGVzKFwiQUxMXCIpKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZyA9IHRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWcuZmlsdGVyKFxyXG4gICAgICAgICAgKGl0ZW0pID0+IGl0ZW0gIT09IFwiQUxMXCIsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZXhwb3J0Q29uZmlnLmZvcm1hdCA9XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnB1dC5jaGVja2VkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnLmluY2x1ZGVzKHZhbHVlKSkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZy5wdXNoKHZhbHVlKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgcmVxdWlyZWRWYWx1ZXMuZXZlcnkoKHZhbCkgPT5cclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnLmluY2x1ZGVzKHZhbCksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWcuaW5jbHVkZXMoXCJBTExcIikpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRXhwb3J0Q29uZmlnLnB1c2goXCJBTExcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5leHBvcnRDb25maWcuZm9ybWF0ID1cclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZztcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWcubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydENvbmZpZyA9IHRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWcuZmlsdGVyKFxyXG4gICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtICE9PSB2YWx1ZSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZXhwb3J0Q29uZmlnLmZvcm1hdCA9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFeHBvcnRDb25maWc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVOb3RpZnkoZXZlbnQ6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5ub3RpZnlGbGFncykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlsc1tcIm5vdGlmeUZsYWdzXCJdID0ge1xyXG4gICAgICAgIG5vdGlmeVR5cGU6IFtdLFxyXG4gICAgICAgIHVzZXJzOiBbXSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5ub3RpZnlGbGFncy5ub3RpZnlUeXBlLnB1c2godHlwZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5ub3RpZnlGbGFncy5ub3RpZnlUeXBlID1cclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5ub3RpZnlGbGFncy5ub3RpZnlUeXBlLmZpbHRlcihcclxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlICE9IHR5cGUsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTm90aWZ5RmxhZ1RvZ2dsZSgpIHtcclxuICAgIGlmICh0aGlzLm5vdGlmeUZsYWcpIHJldHVybjtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLm5vdGlmeUZsYWdzLm5vdGlmeVR5cGUgPSBbXTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLm5vdGlmeUZsYWdzLnVzZXJzID0gW107XHJcbiAgfVxyXG5cclxuICBvbkVuYWJsZUVtYWlsVG9nZ2xlKCkge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlRW1haWwpIHJldHVybjtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmF1dG9FbWFpbC50eXBlID0gW107XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hdXRvRW1haWwudXNlcnMgPSBbXTtcclxuICB9XHJcblxyXG4gIG9uUmVjdXJyaW5nRmxhZ1RvZ2dsZSgpIHtcclxuICAgIGlmICh0aGlzLnJlY3VycmluZ0ZsYWdOb3RpZnkpIHJldHVybjtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlY3VycmluZ0ZsYWcubm90aWZ5VHlwZSA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVjdXJyaW5nRmxhZy51c2VycyA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVjdXJyaW5nRmxhZy50aHJlc2hvbGQgPSAyO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTWFpbGVyKGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jb25maWdEYXRhLmFpQ29uZmlnPy5hbGVydENvbmZpZz8uYWxlcnRTZW5kVG8pO1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWc/LmFsZXJ0Q29uZmlnPy5hbGVydFNlbmRUbz8uZW1haWwpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvW1wiZW1haWxcIl0gPSB7XHJcbiAgICAgICAgdHlwZTogW10sXHJcbiAgICAgICAgdXNlcnM6IFtdLFxyXG4gICAgICAgIHRlYW1zOiBbXSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWwudHlwZS5wdXNoKHR5cGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsLnR5cGUgPVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbC50eXBlLmZpbHRlcihcclxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlICE9IHR5cGUsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZU5vdGlmaWVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLm5vdGlmeUZsYWdzLnVzZXJzID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSZWN1cnJpbmdOb3RpZnkoZXZlbnQ6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZWN1cnJpbmdGbGFnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzW1wicmVjdXJyaW5nRmxhZ1wiXSA9IHtcclxuICAgICAgICBub3RpZnlUeXBlOiBbXSxcclxuICAgICAgICB1c2VyczogW10sXHJcbiAgICAgICAgdGhyZXNob2xkOiAzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlY3VycmluZ0ZsYWcubm90aWZ5VHlwZS5wdXNoKHR5cGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVjdXJyaW5nRmxhZy5ub3RpZnlUeXBlID1cclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZWN1cnJpbmdGbGFnLm5vdGlmeVR5cGUuZmlsdGVyKFxyXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUgIT0gdHlwZSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVjdXJyaW5nRmxhZ1VzZXJzKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWcpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHNbXCJyZWN1cnJpbmdGbGFnXCJdID0ge1xyXG4gICAgICAgIG5vdGlmeVR5cGU6IFtdLFxyXG4gICAgICAgIHVzZXJzOiBbXSxcclxuICAgICAgICB0aHJlc2hvbGQ6IDMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZWN1cnJpbmdGbGFnLnVzZXJzID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSZWN1cnJpbmdUaHJlc2hvbGQodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVjdXJyaW5nRmxhZykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlsc1tcInJlY3VycmluZ0ZsYWdcIl0gPSB7XHJcbiAgICAgICAgbm90aWZ5VHlwZTogW10sXHJcbiAgICAgICAgdXNlcnM6IFtdLFxyXG4gICAgICAgIHRocmVzaG9sZDogMixcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlY3VycmluZ0ZsYWcudGhyZXNob2xkID0gTnVtYmVyKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUF1dG9FbWFpbChldmVudDogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmF1dG9FbWFpbCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlsc1tcImF1dG9FbWFpbFwiXSA9IHtcclxuICAgICAgICB0eXBlOiBbXSxcclxuICAgICAgICB1c2VyczogW10sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXV0b0VtYWlsLnR5cGUucHVzaCh0eXBlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmF1dG9FbWFpbC50eXBlID1cclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hdXRvRW1haWwudHlwZS5maWx0ZXIoXHJcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZSAhPSB0eXBlLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVFbWFpbGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmF1dG9FbWFpbC51c2VycyA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRW1haWxVc2VycyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWwudXNlcnMgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUVtYWlsVGVhbXMoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsLnRlYW1zID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVBdXRvVGFza1VzZXJzKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy51c2VycyA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGltZVNsb3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnRhc2tWYWxpZGl0eS50aW1lID0gMTtcclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPT0gXCJtaW5zXCIpIHtcclxuICAgICAgdGhpcy50aW1lU2xvdCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSBcImhvdXJzXCIpIHtcclxuICAgICAgdGhpcy50aW1lU2xvdCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDI0IH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRpbWVTbG90ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMyB9LCAoXywgaSkgPT4gaSArIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVjdXJyZW5jZShldmVudDogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnJlY3VycmVuY2VUeXBlID0gdHlwZTtcclxuICAgICAgdGhpcy5yZWN1cnJlbmNldGltZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRXZWVrTnVtYmVyKGRhdGU6IGFueSkge1xyXG4gIGxldCBkYXlzID0gW107XHJcbiAgbGV0IGRhdGVEYXQgPSBkYXlqcyhkYXRlKS5zdGFydE9mKCdtb250aCcpO1xyXG5cclxuICB3aGlsZSAoZGF0ZURhdC5tb250aCgpID09PSBkYXRlLm1vbnRoKCkpIHtcclxuICAgIGlmIChkYXRlRGF0LmZvcm1hdCgnZGRkZCcpID09PSBkYXRlLmZvcm1hdCgnZGRkZCcpKSB7XHJcbiAgICAgIGRheXMucHVzaChkYXRlRGF0LmZvcm1hdCgnWVlZWS1NTS1ERCcpKTtcclxuICAgIH1cclxuICAgIGRhdGVEYXQgPSBkYXRlRGF0LmFkZCgxLCAnZGF5Jyk7XHJcbiAgfVxyXG5cclxuICBsZXQgZmluZEluZGV4ID0gZGF5cy5maW5kSW5kZXgoKGl0ZW06IGFueSkgPT4gaXRlbSA9PSBkYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gIHJldHVybiAoZmluZEluZGV4ICsgMSk7XHJcbn0iLCI8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwiY2FyZCByb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiIWxvYWRpbmdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTMgcGItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwiIWRpc2FibGVkUXVlc3Rpb24gJiZ0eXBlID09PSAnY3VzdG9tJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIicvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0J1wiIFtxdWVyeVBhcmFtc109XCJ7Y2hlY2tsaXN0SWQ6IGNoZWNrbGlzdElkfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZSBtZS01IHB4LTMgcHktM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNS44MzMyIDEwLjAwMDNINC4xNjY1TTQuMTY2NSAxMC4wMDAzTDkuOTk5ODQgMTUuODMzN000LjE2NjUgMTAuMDAwM0w5Ljk5OTg0IDQuMTY2OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW4gdy04MDBweFwiICpuZ0lmPVwidHlwZSA9PT0gJ2N1c3RvbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudCBtYi00IHctMTAwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJjaGVja2xpc3QgcGxhaW4taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgQ2hlY2tsaXN0IE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jaGVja0xpc3ROYW1lXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnQgdy0xMDBcIj48aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tsaXN0RGVzY3JpcHRpb24gcGxhaW4taW5wdXRcIiAjY2hlY2tsaXN0RGVzY3JpcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIENoZWNrbGlzdCBEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNoZWNrTGlzdERlc2NyaXB0aW9uXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgIT09ICdjdXN0b20nXCIgY2xhc3M9XCJmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnQgbWItNCB3LTEwMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hlY2tsaXN0IHBsYWluLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgQ2hlY2tsaXN0IE5hbWVcIiBbdmFsdWVdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0TmFtZVwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnQgdy0xMDBcIj48aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFpbi1pbnB1dFwiICNjaGVja2xpc3REZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERlc2NyaXB0aW9uXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXktNiBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1tZCBweS00IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0eXBlID09PSAnY3VzdG9tJyA/IHB1Ymxpc2goKSA6IHB1Ymxpc2hBSSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkUHVibGlzaCB8fCBkaXNhYmxlQnRuXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+UHVibGlzaDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidHlwZSA9PT0nY3VzdG9tJyA/IHNhdmVkcmFmdCgpIDogc2F2ZURyYWZ0QUkoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnRuXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+U2F2ZSBhcyBEcmFmdDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgY2hlY2tjb25maWdjb250IG10LTJcIiAqbmdJZj1cImNvbmZpZ0RhdGFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTMgbGVmdGNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcHgtNyBweS03XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZzFcIj57e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNoZWNrTGlzdE5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5jaGVja0xpc3RJZFwiIGNsYXNzPVwic2VjdGlvbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWN0aW9uczsgbGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy00IGZ3LWJvbGQgc2VjdGlvblwiPnt7c2VjdGlvbi5uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cImFjY29yZGlhbihpKVwiIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3cgIT09IGl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvdz09PWlcIiBjbGFzcz1cInF1ZXN0aW9uLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGF0YV09XCJzZWN0aW9uLnF1ZXN0aW9uc1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucztsZXQgaj1pbmRleDtcIiBjbGFzcz1cIm15LTIgcS1idG5cIiBjZGtEcmFnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3txdWVzdGlvbi5xbmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTZcIj5TY2hlZHVsZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NhbWVyYXRhbXBlcmluZycsJ3F1ZXVlYWxlcnQnLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ2hhbGZzaHV0dGVyJywnc3RvcmVvcGVuYW5kY2xvc2UnLCd1bmlmb3JtZGV0ZWN0aW9uJywnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsJ3N0YWZmZ3JvdXBpbmcnLCdib3hhbGVydCcsJ2VtcGxveWVlQ291bnQnLCAndW5hdHRlbmRlZGRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJzdWIxIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+UnVucyBiYXNlZCBvbiBTdG9yZSBPcGVuICYgQ2xvc2UgdGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJyB8fCB0eXBlID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnXCIgY2xhc3M9XCJtdC00IG14LTIgc3ViXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIG14LTRcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgNlYxMkwxNiAxNE0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMlwiPnt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lfX0gdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIzIDIzXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC40MTQ0OCA0LjUyMzAzQzguNjk1MTggNC44MDM3MSA4LjY5NTE4IDUuMjU4OCA4LjQxNDQ4IDUuNTM5NDhMNS41Mzk0OCA4LjQxNDQ4QzUuMjU4OCA4LjY5NTE4IDQuODAzNzEgOC42OTUxOCA0LjUyMzAzIDguNDE0NDhMMy4wODU1MyA2Ljk3Njk4QzIuODA0ODIgNi42OTYzIDIuODA0ODIgNi4yNDEyMSAzLjA4NTUzIDUuOTYwNTNDMy4zNjYyMSA1LjY3OTgyIDMuODIxMyA1LjY3OTgyIDQuMTAxOTggNS45NjA1M0w1LjAzMTI1IDYuODg5NzhMNy4zOTgwMyA0LjUyMzAzQzcuNjc4NzEgNC4yNDIzMiA4LjEzMzggNC4yNDIzMiA4LjQxNDQ4IDQuNTIzMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC40MTQ0OCAxMS43MTA1QzguNjk1MTggMTEuOTkxMiA4LjY5NTE4IDEyLjQ0NjMgOC40MTQ0OCAxMi43MjdMNS41Mzk0OCAxNS42MDJDNS4yNTg4IDE1Ljg4MjYgNC44MDM3MSAxNS44ODI2IDQuNTIzMDMgMTUuNjAyTDMuMDg1NTMgMTQuMTY0NUMyLjgwNDgyIDEzLjg4MzggMi44MDQ4MiAxMy40Mjg3IDMuMDg1NTMgMTMuMTQ3OUMzLjM2NjIxIDEyLjg2NzMgMy44MjEzIDEyLjg2NzMgNC4xMDE5OCAxMy4xNDc5TDUuMDMxMjUgMTQuMDc3M0w3LjM5ODAzIDExLjcxMDVDNy42Nzg3MSAxMS40Mjk5IDguMTMzOCAxMS40Mjk5IDguNDE0NDggMTEuNzEwNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wNjI1IDYuNDY4NzVDMTAuMDYyNSA2LjA3MTggMTAuMzg0NCA1Ljc1IDEwLjc4MTIgNS43NUgxNS4wOTM4QzE1LjQ5MDYgNS43NSAxNS44MTI1IDYuMDcxOCAxNS44MTI1IDYuNDY4NzVDMTUuODEyNSA2Ljg2NTcgMTUuNDkwNiA3LjE4NzUgMTUuMDkzOCA3LjE4NzVIMTAuNzgxMkMxMC4zODQ0IDcuMTg3NSAxMC4wNjI1IDYuODY1NyAxMC4wNjI1IDYuNDY4NzVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy41OTM3NSAwQzEuNjA4OTggMCAwIDEuNjA4OTggMCAzLjU5Mzc1VjE2LjUzMTJDMCAxOC41MTYgMS42MDg5OCAyMC4xMjUgMy41OTM3NSAyMC4xMjVIOS40ODcwOEM5LjI1NDI5IDE5LjY2OTYgOS4wNjQzNiAxOS4xODg2IDguOTIyNjEgMTguNjg3NUgzLjU5Mzc1QzIuNDAyODggMTguNjg3NSAxLjQzNzUgMTcuNzIyMSAxLjQzNzUgMTYuNTMxMlYzLjU5Mzc1QzEuNDM3NSAyLjQwMjg4IDIuNDAyODggMS40Mzc1IDMuNTkzNzUgMS40Mzc1SDE2LjUzMTJDMTcuNzIyMSAxLjQzNzUgMTguNjg3NSAyLjQwMjg4IDE4LjY4NzUgMy41OTM3NVY4LjkyMjYxQzE5LjE4ODYgOS4wNjQzNiAxOS42Njk2IDkuMjU0MjkgMjAuMTI1IDkuNDg3MDhWMy41OTM3NUMyMC4xMjUgMS42MDg5OCAxOC41MTYgMCAxNi41MzEyIDBIMy41OTM3NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNi41MzEzIDIzQzIwLjEwMzkgMjMgMjMgMjAuMTAzOSAyMyAxNi41MzEzQzIzIDEyLjk1ODYgMjAuMTAzOSAxMC4wNjI1IDE2LjUzMTMgMTAuMDYyNUMxMi45NTg2IDEwLjA2MjUgMTAuMDYyNSAxMi45NTg2IDEwLjA2MjUgMTYuNTMxM0MxMC4wNjI1IDIwLjEwMzkgMTIuOTU4NiAyMyAxNi41MzEzIDIzWk0xNi41MzEzIDEyLjkzNzVDMTYuOTI4MSAxMi45Mzc1IDE3LjI1IDEzLjI1OTQgMTcuMjUgMTMuNjU2M1YxNS44MTI1SDE5LjQwNjNDMTkuODAzMSAxNS44MTI1IDIwLjEyNSAxNi4xMzQ0IDIwLjEyNSAxNi41MzEzQzIwLjEyNSAxNi45MjgxIDE5LjgwMzEgMTcuMjUgMTkuNDA2MyAxNy4yNUgxNy4yNVYxOS40MDYzQzE3LjI1IDE5LjgwMzEgMTYuOTI4MSAyMC4xMjUgMTYuNTMxMyAyMC4xMjVDMTYuMTM0NCAyMC4xMjUgMTUuODEyNSAxOS44MDMxIDE1LjgxMjUgMTkuNDA2M1YxNy4yNUgxMy42NTYzQzEzLjI1OTQgMTcuMjUgMTIuOTM3NSAxNi45MjgxIDEyLjkzNzUgMTYuNTMxM0MxMi45Mzc1IDE2LjEzNDQgMTMuMjU5NCAxNS44MTI1IDEzLjY1NjMgMTUuODEyNUgxNS44MTI1VjEzLjY1NjNDMTUuODEyNSAxMy4yNTk0IDE2LjEzNDQgMTIuOTM3NSAxNi41MzEzIDEyLjkzNzVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdvbmV0aW1lJyA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ09uZS10aW1lJyA6IChjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSB8IHRpdGxlY2FzZSl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgNlYxMkwxNiAxNE0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+e3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVN0YXJ0VGltZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUuc3Vic3RyKC04KSA6IGNvbmZpZ0RhdGE/Lm9wZW5UaW1lfX0gdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lLnN1YnN0cigtOCkgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGE/LmNsb3NlVGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IG14LTIgc3ViXCIgKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNiAyVjZNOCAyVjZNMyAxMEgyMU01IDRIMTlDMjAuMTA0NiA0IDIxIDQuODk1NDMgMjEgNlYyMEMyMSAyMS4xMDQ2IDIwLjEwNDYgMjIgMTkgMjJINUMzLjg5NTQzIDIyIDMgMjEuMTA0NiAzIDIwVjZDMyA0Ljg5NTQzIDMuODk1NDMgNCA1IDRaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yIG1zLTJcIj48c3Bhbj57e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZX19PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPT0gJycgJiYgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB7e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGV9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC02XCI+QXNzaWduPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTYgNEgxOEMxOC41MzA0IDQgMTkuMDM5MSA0LjIxMDcxIDE5LjQxNDIgNC41ODU3OUMxOS43ODkzIDQuOTYwODYgMjAgNS40Njk1NyAyMCA2VjIwQzIwIDIwLjUzMDQgMTkuNzg5MyAyMS4wMzkxIDE5LjQxNDIgMjEuNDE0MkMxOS4wMzkxIDIxLjc4OTMgMTguNTMwNCAyMiAxOCAyMkg2QzUuNDY5NTcgMjIgNC45NjA4NiAyMS43ODkzIDQuNTg1NzkgMjEuNDE0MkM0LjIxMDcxIDIxLjAzOTEgNCAyMC41MzA0IDQgMjBWNkM0IDUuNDY5NTcgNC4yMTA3MSA0Ljk2MDg2IDQuNTg1NzkgNC41ODU3OUM0Ljk2MDg2IDQuMjEwNzEgNS40Njk1NyA0IDYgNEg4TTkgMkgxNUMxNS41NTIzIDIgMTYgMi40NDc3MiAxNiAzVjVDMTYgNS41NTIyOCAxNS41NTIzIDYgMTUgNkg5QzguNDQ3NzIgNiA4IDUuNTUyMjggOCA1VjNDOCAyLjQ0NzcyIDguNDQ3NzIgMiA5IDJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+IHt7Y292ZXJhZ2UgfCB0aXRsZWNhc2V9fXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zLjA4OTk1IDYuODgzMzJMMy4wMjQwMSA2Ljk4NjMyQzIuMzAzNTggOC4yNTUyMSAzLjA2MTAxIDkuODc5MDggNC40NjQ2NCAxMC4wNjU5QzQuNTg2MjcgMTAuMDgwOCA0LjcwMTEyIDEwLjA4ODkgNC44MTQ1IDEwLjA4ODlDNS41NTI1NSAxMC4wODg5IDYuMjA1MjMgOS43NzE5MiA2LjY1OTUzIDkuMjc4OEw3LjIxMjg2IDguNjc4MThMNy43NjQzMiA5LjI4MDUyQzguMjEzNjcgOS43NzEzNSA4Ljg2NTIgMTAuMDg4OSA5LjYwNzc2IDEwLjA4ODlDMTAuMzQ3MSAxMC4wODg5IDExLjAwMjIgOS43NzEgMTEuNDUxMiA5LjI4MDUyTDEyLjAwNDQgOC42NzYyOUwxMi41NTc2IDkuMjgwNTJDMTMuMDA2NiA5Ljc3MSAxMy42NjE3IDEwLjA4ODkgMTQuNDAxIDEwLjA4ODlDMTUuMTQwNCAxMC4wODg5IDE1Ljc5NTQgOS43NzEgMTYuMjQ0NSA5LjI4MDUyTDE2Ljc5NzcgOC42NzYyOUwxNy4zNTA4IDkuMjgwNTJDMTcuNzk5OSA5Ljc3MSAxOC40NTQ5IDEwLjA4ODkgMTkuMTk0MyAxMC4wODg5QzE5LjMwNDEgMTAuMDg4OSAxOS40MjIzIDEwLjA4MDggMTkuNTQzMyAxMC4wNjZDMjAuOTc3MiA5Ljg3MTMxIDIxLjczNTUgOC4xNjM1MSAyMC45MTU1IDYuODgzODJDMjAuOTE1NCA2Ljg4Mzc2IDIwLjkxNTQgNi44ODM3MSAyMC45MTU0IDYuODgzNjVMMTguODA1NiAzLjU5MzkyTDE4LjgwNTYgMy41OTM5MkwxOC44MDQ2IDMuNTkyNDZDMTguNzU4MiAzLjUxOTY2IDE4LjY2NDkgMy40NjM4NyAxOC41NTg0IDMuNDYzODdINS40NDMwN0M1LjMzNjUgMy40NjM4NyA1LjI0MzI2IDMuNTE5NjYgNS4xOTY4MSAzLjU5MjQ2TDUuMTk2MTkgMy41OTM0MkwzLjA4OTk1IDYuODgzMzJaTTQuODE4MTggMTIuNzQ5NkM0LjcxNjQ0IDEyLjc0OTYgNC42MTYgMTIuNzQ2NSA0LjUxNjkgMTIuNzQwNlYxNi42NDI0VjE4Ljk2MzlDNC41MTY5IDE5LjgyMDcgNS4yMjY2MyAyMC41MzUzIDYuMTE5NDIgMjAuNTM1M0gxNy44ODJDMTguNzc0OCAyMC41MzUzIDE5LjQ4NDUgMTkuODIwNyAxOS40ODQ1IDE4Ljk2MzlWMTYuNjQyNFYxMi43NDExQzE5LjM4NzQgMTIuNzQ2NiAxOS4yODkzIDEyLjc0OTYgMTkuMTkwNiAxMi43NDk2QzE5LjAwMjIgMTIuNzQ5NiAxOC44MTU3IDEyLjczOTUgMTguNjMyIDEyLjcxOThWMTYuNjQyNFYxNy4zOTI0SDE3Ljg4Mkg2LjExOTQySDUuMzY5NDJWMTYuNjQyNFYxMi43MjA2QzUuMTg4NjYgMTIuNzM5NyA1LjAwNDcyIDEyLjc0OTYgNC44MTgxOCAxMi43NDk2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7YXNzaWduU2luZ2xlPy5sZW5ndGggKyBncm91cEFzc2lnbj8ubGVuZ3RofX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb3ZlcmFnZX19e3soYXNzaWduU2luZ2xlPy5sZW5ndGggKyBncm91cEFzc2lnbj8ubGVuZ3RoKSA+IDEgPyAncyc6Jyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1sZy0xMCBlZGl0cXVlc1wiICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKSAmJiAhZGlzYWJsZWRRdWVzdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNhdmVhbmRyZWRpcmVjdChvYmouY2hlY2tMaXN0SWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRhc2hlZCBidG4gYnRuLWxpZ2h0IHVwbG9hZFwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjEgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC42NjY2IDIuNTAwOUMxNC44ODU1IDIuMjgyMDMgMTUuMTQ1MyAyLjEwODQyIDE1LjQzMTMgMS45ODk5NkMxNS43MTczIDEuODcxNTEgMTYuMDIzOCAxLjgxMDU1IDE2LjMzMzMgMS44MTA1NUMxNi42NDI4IDEuODEwNTUgMTYuOTQ5MyAxLjg3MTUxIDE3LjIzNTMgMS45ODk5NkMxNy41MjEzIDIuMTA4NDIgMTcuNzgxMSAyLjI4MjAzIDE4IDIuNTAwOUMxOC4yMTg4IDIuNzE5NzcgMTguMzkyNCAyLjk3OTYxIDE4LjUxMDkgMy4yNjU1OEMxOC42Mjk0IDMuNTUxNTQgMTguNjkwMyAzLjg1ODA0IDE4LjY5MDMgNC4xNjc1N0MxOC42OTAzIDQuNDc3MSAxOC42Mjk0IDQuNzgzNiAxOC41MTA5IDUuMDY5NTZDMTguMzkyNCA1LjM1NTUzIDE4LjIxODggNS42MTUzNyAxOCA1LjgzNDI0TDYuNzQ5OTYgMTcuMDg0MkwyLjE2NjYzIDE4LjMzNDJMMy40MTY2MyAxMy43NTA5TDE0LjY2NjYgMi41MDA5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwidXBsb2FkdGV4dFwiPkVkaXQgUXVlc3Rpb25zPC9zcGFuPjwvYT4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTAgZWRpdHF1ZXNcIiAqbmdJZj1cIiFkaXNhYmxlZFF1ZXN0aW9uJiZ0eXBlID09PSAnY3VzdG9tJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCInL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdCdcIiBbcXVlcnlQYXJhbXNdPVwie2NoZWNrbGlzdElkOiBjaGVja2xpc3RJZH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGFzaGVkIGJ0biBidG4tbGlnaHQgdXBsb2FkXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjY2NjYgMi41MDA5QzE0Ljg4NTUgMi4yODIwMyAxNS4xNDUzIDIuMTA4NDIgMTUuNDMxMyAxLjk4OTk2QzE1LjcxNzMgMS44NzE1MSAxNi4wMjM4IDEuODEwNTUgMTYuMzMzMyAxLjgxMDU1QzE2LjY0MjggMS44MTA1NSAxNi45NDkzIDEuODcxNTEgMTcuMjM1MyAxLjk4OTk2QzE3LjUyMTMgMi4xMDg0MiAxNy43ODExIDIuMjgyMDMgMTggMi41MDA5QzE4LjIxODggMi43MTk3NyAxOC4zOTI0IDIuOTc5NjEgMTguNTEwOSAzLjI2NTU4QzE4LjYyOTQgMy41NTE1NCAxOC42OTAzIDMuODU4MDQgMTguNjkwMyA0LjE2NzU3QzE4LjY5MDMgNC40NzcxIDE4LjYyOTQgNC43ODM2IDE4LjUxMDkgNS4wNjk1NkMxOC4zOTI0IDUuMzU1NTMgMTguMjE4OCA1LjYxNTM3IDE4IDUuODM0MjRMNi43NDk5NiAxNy4wODQyTDIuMTY2NjMgMTguMzM0MkwzLjQxNjYzIDEzLjc1MDlMMTQuNjY2NiAyLjUwMDlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJ1cGxvYWR0ZXh0XCI+RWRpdCBRdWVzdGlvbnM8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzFcIj5BbGVydHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNiBteC00IHN1YlwiPkVtYWlsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJteC00IG10LTQgc3ViXCI+aWYgdXNhZ2UgZXhjZWVkc1xyXG4gICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YT8uYWlDb25maWc/Lm1vYmlsZURldGVjdGlvbj8udXNhZ2VFeGNlZWR9fVxyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50c1xyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxXCI+QWxlcnRzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtNCBzdWJcIj5TZW5kIGVtYWlsIGV2ZXJ5ZGF5IHRvPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIVsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSkgJiYgY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHM/Lmxlbmd0aFwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9PT0nZ2xvYmFsJ1wiIGNsYXNzPVwic2NlZHVsZS10ZXh0XCI+RXZlcnlkYXkgYXQge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF5anMoY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHNbMF0/LnRpbWUsJ0hIOk1NJykuZm9ybWF0KCdoaDptbSBBJykgfX0gZm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHNbMF0/LmR1cmF0aW9ufX0gbWluczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXNzaWduQ29uZmlnID09PSdzdG9yZSdcIiBjbGFzcz1cInNjZWR1bGUtdGV4dFwiPk11bHRpcGxlIHRpbWVzIGFyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZWQgZm9yIG11bHRpcGxlIHN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKSAmJiBjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0cy51c2Vycz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzEgbXQtNFwiPkFsZXJ0cyBUbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBhbGVydCBvZiBjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0cy51c2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtMiBtcy0yIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgaC0yNXB4XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnkgcm91bmRlZC01IG1lLTFcIj57e2dldEluaXRpYWxzKGFsZXJ0Py5uYW1lKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2FsZXJ0Py5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cIiFbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpICYmIGNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRzLnVzZXJzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC00XCI+QWxlcnRzIFRvPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGFsZXJ0IG9mIGNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRzLnVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yIG1zLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBoLTI1cHhcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSByb3VuZGVkLTUgbWUtMVwiPnt7Z2V0SW5pdGlhbHMoYWxlcnQ/Lm5hbWUpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7YWxlcnQ/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKSAmJiBjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvPy5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzEgbXQtNFwiPkFsZXJ0cyBUbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBhbGVydCBvZiBjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvPy5tb2JpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTIgbXMtMiBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0IGgtMjVweFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5IHJvdW5kZWQtNSBtZS0xXCI+e3tnZXRJbml0aWFscyhhbGVydD8ubmFtZSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3thbGVydD8ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3R2Y29tcGxpYW5jZScsJ3F1ZXVlYWxlcnQnLCdjYW1lcmF0YW1wZXJpbmcnLCdlbXBsb3llZUNvdW50JywgJ3VuYXR0ZW5kZWRkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKSAmJiBjb25maWdEYXRhPy5haUNvbmZpZz8ubW9iaWxlRGV0ZWN0aW9uPy5kZXRlY3Rpb25BcmVhPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtbiBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC00XCI+RGV0ZWN0aW9uIEFyZWFzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Q2hlY2tsaXN0IHdpbGwgcnVuIG9uIHRoaXMgWm9uZTwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgc3ViXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB6b25lIG9mIGNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5tb2JpbGVEZXRlY3Rpb24/LmRldGVjdGlvbkFyZWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBteC0yIG10LTQgYmFkZ2UtbGlnaHQgY2hlY2tsaXN0bGFiZWwgaC0yNXB4IGZzLWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSByb3VuZGVkLTUgbWUtMVwiPnt7Z2V0SW5pdGlhbHMoem9uZT8ubmFtZSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwia2ktZHVvdG9uZSBraS1hcnJvdy11cCBjaGVja2xpc3R0ZXh0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t6b25lPy5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTRcIj5Bc3NpZ248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNiA0SDE4QzE4LjUzMDQgNCAxOS4wMzkxIDQuMjEwNzEgMTkuNDE0MiA0LjU4NTc5QzE5Ljc4OTMgNC45NjA4NiAyMCA1LjQ2OTU3IDIwIDZWMjBDMjAgMjAuNTMwNCAxOS43ODkzIDIxLjAzOTEgMTkuNDE0MiAyMS40MTQyQzE5LjAzOTEgMjEuNzg5MyAxOC41MzA0IDIyIDE4IDIySDZDNS40Njk1NyAyMiA0Ljk2MDg2IDIxLjc4OTMgNC41ODU3OSAyMS40MTQyQzQuMjEwNzEgMjEuMDM5MSA0IDIwLjUzMDQgNCAyMFY2QzQgNS40Njk1NyA0LjIxMDcxIDQuOTYwODYgNC41ODU3OSA0LjU4NTc5QzQuOTYwODYgNC4yMTA3MSA1LjQ2OTU3IDQgNiA0SDhNOSAySDE1QzE1LjU1MjMgMiAxNiAyLjQ0NzcyIDE2IDNWNUMxNiA1LjU1MjI4IDE1LjU1MjMgNiAxNSA2SDlDOC40NDc3MiA2IDggNS41NTIyOCA4IDVWM0M4IDIuNDQ3NzIgOC40NDc3MiAyIDkgMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+IFN0b3Jlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy4wODk5NSA2Ljg4MzMyTDMuMDI0MDEgNi45ODYzMkMyLjMwMzU4IDguMjU1MjEgMy4wNjEwMSA5Ljg3OTA4IDQuNDY0NjQgMTAuMDY1OUM0LjU4NjI3IDEwLjA4MDggNC43MDExMiAxMC4wODg5IDQuODE0NSAxMC4wODg5QzUuNTUyNTUgMTAuMDg4OSA2LjIwNTIzIDkuNzcxOTIgNi42NTk1MyA5LjI3ODhMNy4yMTI4NiA4LjY3ODE4TDcuNzY0MzIgOS4yODA1MkM4LjIxMzY3IDkuNzcxMzUgOC44NjUyIDEwLjA4ODkgOS42MDc3NiAxMC4wODg5QzEwLjM0NzEgMTAuMDg4OSAxMS4wMDIyIDkuNzcxIDExLjQ1MTIgOS4yODA1MkwxMi4wMDQ0IDguNjc2MjlMMTIuNTU3NiA5LjI4MDUyQzEzLjAwNjYgOS43NzEgMTMuNjYxNyAxMC4wODg5IDE0LjQwMSAxMC4wODg5QzE1LjE0MDQgMTAuMDg4OSAxNS43OTU0IDkuNzcxIDE2LjI0NDUgOS4yODA1MkwxNi43OTc3IDguNjc2MjlMMTcuMzUwOCA5LjI4MDUyQzE3Ljc5OTkgOS43NzEgMTguNDU0OSAxMC4wODg5IDE5LjE5NDMgMTAuMDg4OUMxOS4zMDQxIDEwLjA4ODkgMTkuNDIyMyAxMC4wODA4IDE5LjU0MzMgMTAuMDY2QzIwLjk3NzIgOS44NzEzMSAyMS43MzU1IDguMTYzNTEgMjAuOTE1NSA2Ljg4MzgyQzIwLjkxNTQgNi44ODM3NiAyMC45MTU0IDYuODgzNzEgMjAuOTE1NCA2Ljg4MzY1TDE4LjgwNTYgMy41OTM5MkwxOC44MDU2IDMuNTkzOTJMMTguODA0NiAzLjU5MjQ2QzE4Ljc1ODIgMy41MTk2NiAxOC42NjQ5IDMuNDYzODcgMTguNTU4NCAzLjQ2Mzg3SDUuNDQzMDdDNS4zMzY1IDMuNDYzODcgNS4yNDMyNiAzLjUxOTY2IDUuMTk2ODEgMy41OTI0Nkw1LjE5NjE5IDMuNTkzNDJMMy4wODk5NSA2Ljg4MzMyWk00LjgxODE4IDEyLjc0OTZDNC43MTY0NCAxMi43NDk2IDQuNjE2IDEyLjc0NjUgNC41MTY5IDEyLjc0MDZWMTYuNjQyNFYxOC45NjM5QzQuNTE2OSAxOS44MjA3IDUuMjI2NjMgMjAuNTM1MyA2LjExOTQyIDIwLjUzNTNIMTcuODgyQzE4Ljc3NDggMjAuNTM1MyAxOS40ODQ1IDE5LjgyMDcgMTkuNDg0NSAxOC45NjM5VjE2LjY0MjRWMTIuNzQxMUMxOS4zODc0IDEyLjc0NjYgMTkuMjg5MyAxMi43NDk2IDE5LjE5MDYgMTIuNzQ5NkMxOS4wMDIyIDEyLjc0OTYgMTguODE1NyAxMi43Mzk1IDE4LjYzMiAxMi43MTk4VjE2LjY0MjRWMTcuMzkyNEgxNy44ODJINi4xMTk0Mkg1LjM2OTQyVjE2LjY0MjRWMTIuNzIwNkM1LjE4ODY2IDEyLjczOTcgNS4wMDQ3MiAxMi43NDk2IDQuODE4MTggMTIuNzQ5NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7dGhpcy5jb25maWdEYXRhPy5zdG9yZUxpc3Q/Lmxlbmd0aH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZXt7dGhpcy5jb25maWdEYXRhPy5zdG9yZUxpc3Q/Lmxlbmd0aCA+IDEgPyAncyc6Jyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFbJ2N1c3RvbScsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnaGFsZnNodXR0ZXInLCdzdG9yZW9wZW5hbmRjbG9zZScsJ3VuaWZvcm1kZXRlY3Rpb24nLCdzdG9yZWh5Z2llbmVtb25pdG9yaW5nJywnY2FtZXJhdGFtcGVyaW5nJywndHZjb21wbGlhbmNlJywnc3RhZmZncm91cGluZycsJ2JveGFsZXJ0JywnZW1wbG95ZWVDb3VudCcsICd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSkgJiYgY29uZmlnRGF0YS5hcHByb3Zlcj8ubGVuZ3RoICYmIGNsaWVudElkIT09JzQ1MidcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC00XCI+QXV0b21hdGljIFRhc2s8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYXBwcm92ZSBvZiBjb25maWdEYXRhLmFwcHJvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yIG1zLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBoLTI1cHhcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSByb3VuZGVkLTUgbWUtMVwiPnt7Z2V0SW5pdGlhbHMoYXBwcm92ZT8ubmFtZSl9fTwvc3Bhbj57e2FwcHJvdmU/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBDb25maWcgZGl2IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtOVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBiZy10cmFuc3BhcmVudCBib3JkZXItMCBvdXRsaW5lLTAgY2FyZC1mbHVzaCBoLXhsLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFbJ2hhbGZzaHV0dGVyJywndHZjb21wbGlhbmNlJywncXVldWVhbGVydCcsJ2NhbWVyYXRhbXBlcmluZycsJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCdzdGFmZmdyb3VwaW5nJywnYm94YWxlcnQnLCdlbXBsb3llZUNvdW50JywndW5hdHRlbmRlZGRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBiZy13aGl0ZSByb3VuZGVkLTQgcHgtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKFsnbW9iaWxldXNhZ2VkZXRlY3Rpb24nLCdzdG9yZW9wZW5hbmRjbG9zZScsJ3VuaWZvcm1kZXRlY3Rpb24nLCdoYWxmc2h1dHRlciddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmdcIj5TY2hlZHVsZSBDaGVja2xpc3QgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKFsnc3RvcmVvcGVuYW5kY2xvc2UnLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3VuaWZvcm1kZXRlY3Rpb24nLCdoYWxmc2h1dHRlciddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG1iLTZcIj5TZXQgdGhlIHRpbWUgdG8gcnVuIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrbGlzdDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtYi02XCI+U2V0IHRoZSBkZXNpcmVkIHRpbWUgdG8gcnVuIHRoZSBjaGVja2xpc3Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmdcIj5TY2hlZHVsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg3NF82NjE5NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NzRfNjYxOTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cIlsndW5pZm9ybWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTIgbXgtNFwiPkZyb208L3NwYW4+Jm5ic3A7Jm5ic3A7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0yMDBweCBtdC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ3N0YXJ0JylcIiBbKG5nTW9kZWwpXT1cInN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCIgbmFtZT1cImR1ZV9kYXRlXCIgdHlwZT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTMgbXgtNFwiPlRvPC9zcGFuPiZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0yMDBweCBtdC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ2VuZCcpXCIgWyhuZ01vZGVsKV09XCJlbmRUaW1lXCIgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZHVlX2RhdGVcIiB0eXBlPVwidGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtNSBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNoZWNrbGlzdCB3aWxsIHJ1biBiYXNlZCBvbiBlYWNoIHN0b3Jl4oCZcyBvcGVuaW5nIGFuZCBjbG9zaW5nIHRpbWVzLiBZb3UgY2FuIHZpZXcgb3IgZWRpdCBzdG9yZSB0aW1pbmdzIGluIHRoZSAnQXNzaWduIFN0b3Jlcycgc2VjdGlvbiBiZWxvdy4gRG93bmxvYWQgdGhlIHRlbXBsYXRlLCB1cGRhdGUgdGhlIHRpbWluZ3MsIGFuZCBidWxrIHVwbG9hZCB5b3VyIGNoYW5nZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTUgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjaGVja2xpc3Qgd2lsbCBydW4gYmFzZWQgb24gZWFjaCBzdG9yZeKAmXMgb3BlbmluZyBhbmQgY2xvc2luZyB0aW1lcy4gWW91IGNhbiB2aWV3IG9yIGVkaXQgc3RvcmUgdGltaW5ncyBpbiB0aGUgJ0Fzc2lnbiBTdG9yZXMnIHNlY3Rpb24gYmVsb3cuIERvd25sb2FkIHRoZSB0ZW1wbGF0ZSwgdXBkYXRlIHRoZSB0aW1pbmdzLCBhbmQgYnVsayB1cGxvYWQgeW91ciBjaGFuZ2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzY3J1bSddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtNSBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgc3RvcmUncyBvcGVuIGFuZCBjbG9zZSB0aW1lcyBhcmUgc2V0IGluIHRoZSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGRlclwiPnN0b3JlIGNvbmZpZ3VyYXRpb25zLjwvc3Bhbj4gVG8gbWFrZSBjaGFuZ2VzLCBwbGVhc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGUgPHNwYW4gcm91dGVyTGluaz1cIi9tYW5hZ2Uvc2V0dGluZ3MvY29uZmlndXJhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiPmNsaWNrIGhlcmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjbGVhbmluZyddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTUgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHN0b3JlJ3Mgb3BlbiBhbmQgY2xvc2UgdGltZXMgYXJlIHNldCBpbiB0aGUgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdy1ib2xkZXJcIj5zdG9yZSBjb25maWd1cmF0aW9ucy48L3NwYW4+IFRvIG1ha2UgY2hhbmdlcywgcGxlYXNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlIDxzcGFuIHJvdXRlckxpbms9XCIvbWFuYWdlL3NldHRpbmdzL2NvbmZpZ3VyYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIj5jbGljayBoZXJlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnc3RhZmZsZWZ0aW50aGVtaWRkbGUnXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC01IGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgQUkgY2hlY2tsaXN0IHdpbGwgaW5pdGlhdGUgZGV0ZWN0aW9ucyBiYXNlZCBvbiB0aGUgc3RvcmUncyBvcGVyYXRpb25hbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXJzLCBzdGFydGluZyB3aGVuIHRoZSBzdG9yZSBvcGVucyBhbmQgc3RvcHBpbmcgd2hlbiBpdCBjbG9zZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjdXN0b21lcnVuYXR0ZW5kZWQnXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC01IGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgQUkgY2hlY2tsaXN0IHdpbGwgaW5pdGlhdGUgZGV0ZWN0aW9ucyBiYXNlZCBvbiB0aGUgc3RvcmUncyBvcGVyYXRpb25hbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXJzLCBzdGFydGluZyB3aGVuIHRoZSBzdG9yZSBvcGVucyBhbmQgc3RvcHBpbmcgd2hlbiBpdCBjbG9zZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWyd1bmlmb3JtZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtNSBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNoZWNrbGlzdCB3aWxsIHJ1biBiYXNlZCBvbiBlYWNoIHN0b3Jl4oCZcyBvcGVuaW5nIGFuZCBjbG9zaW5nIHRpbWVzLiBZb3UgY2FuIHZpZXcgb3IgZWRpdCBzdG9yZSB0aW1pbmdzIGluIHRoZSAnQXNzaWduIFN0b3Jlcycgc2VjdGlvbiBiZWxvdy4gRG93bmxvYWQgdGhlIHRlbXBsYXRlLCB1cGRhdGUgdGhlIHRpbWluZ3MsIGFuZCBidWxrIHVwbG9hZCB5b3VyIGNoYW5nZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NsZWFuaW5nJywnc2NydW0nXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTYgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJjbGlja0FJY29uZmlndXJlKCdnbG9iYWwnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdnbG9iYWwnPyAnY29uZmlndXJlQWNpdGUnIDogJ2JvcmRlciBib3JkZXItMSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gaC03MHB4IHJvdW5kZWQtMyBwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpbGxdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAnI0VBRjhGRicgOiAnI0YyRjRGNydcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAnI0RBRjFGRicgOicjRjlGQUZCJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCI0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDE3OV80Njg2NylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS43NSAyNkMxMS4yODU5IDI2IDEwLjg0MDggMjUuODE1NiAxMC41MTI2IDI1LjQ4NzRDMTAuMTg0NCAyNS4xNTkyIDEwIDI0LjcxNDEgMTAgMjQuMjVWMTEuNzVDMTAgMTAuNzg0IDEwLjc4NCAxMCAxMS43NSAxMEgyMC4yNUMyMS4yMTYgMTAgMjIgMTAuNzg0IDIyIDExLjc1VjI0LjI1QzIyIDI0LjMzNSAyMS45OTQgMjQuNDE4IDIxLjk4MiAyNC41SDI0LjI1QzI0LjMxNjMgMjQuNSAyNC4zNzk5IDI0LjQ3MzcgMjQuNDI2OCAyNC40MjY4QzI0LjQ3MzcgMjQuMzc5OSAyNC41IDI0LjMxNjMgMjQuNSAyNC4yNVYxOC4yODVDMjQuNSAxOC4yNDM5IDI0LjQ4OTkgMTguMjAzNCAyNC40NzA2IDE4LjE2NzFDMjQuNDUxMiAxOC4xMzA4IDI0LjQyMzIgMTguMDk5OSAyNC4zODkgMTguMDc3TDIzLjMzNCAxNy4zNzRDMjMuMjUyMSAxNy4zMTk0IDIzLjE4MTcgMTcuMjQ5MSAyMy4xMjY5IDE3LjE2NzNDMjMuMDcyMSAxNy4wODU1IDIzLjAzMzkgMTYuOTkzNyAyMy4wMTQ2IDE2Ljg5NzFDMjIuOTk1MyAxNi44MDA1IDIyLjk5NTIgMTYuNzAxMSAyMy4wMTQzIDE2LjYwNDVDMjMuMDMzNCAxNi41MDc4IDIzLjA3MTQgMTYuNDE1OSAyMy4xMjYgMTYuMzM0QzIzLjE4MDYgMTYuMjUyMSAyMy4yNTA5IDE2LjE4MTcgMjMuMzMyNyAxNi4xMjY5QzIzLjQxNDUgMTYuMDcyMSAyMy41MDYzIDE2LjAzMzkgMjMuNjAyOSAxNi4wMTQ2QzIzLjY5OTUgMTUuOTk1MyAyMy43OTg5IDE1Ljk5NTIgMjMuODk1NSAxNi4wMTQzQzIzLjk5MjIgMTYuMDMzNCAyNC4wODQxIDE2LjA3MTQgMjQuMTY2IDE2LjEyNkwyNS4yMjEgMTYuODI5QzI1LjcwOCAxNy4xNTQgMjYgMTcuNyAyNiAxOC4yODVWMjQuMjVDMjYgMjQuNzE0MSAyNS44MTU2IDI1LjE1OTIgMjUuNDg3NCAyNS40ODc0QzI1LjE1OTIgMjUuODE1NiAyNC43MTQxIDI2IDI0LjI1IDI2SDIwLjc1QzIwLjY4MzUgMjUuOTk5OSAyMC42MTczIDI1Ljk5MTIgMjAuNTUzIDI1Ljk3NEMyMC40NTQgMjUuOTkxIDIwLjM1MyAyNiAyMC4yNSAyNkgxNy4yNUMxNy4wNTExIDI2IDE2Ljg2MDMgMjUuOTIxIDE2LjcxOTcgMjUuNzgwM0MxNi41NzkgMjUuNjM5NyAxNi41IDI1LjQ0ODkgMTYuNSAyNS4yNVYyNEgxNS41VjI1LjI1QzE1LjUgMjUuNDQ4OSAxNS40MjEgMjUuNjM5NyAxNS4yODAzIDI1Ljc4MDNDMTUuMTM5NyAyNS45MjEgMTQuOTQ4OSAyNiAxNC43NSAyNkgxMS43NVpNMTEuNSAyNC4yNUMxMS41IDI0LjM4OCAxMS42MTIgMjQuNSAxMS43NSAyNC41SDE0VjIzLjI1QzE0IDIzLjA1MTEgMTQuMDc5IDIyLjg2MDMgMTQuMjE5NyAyMi43MTk3QzE0LjM2MDMgMjIuNTc5IDE0LjU1MTEgMjIuNSAxNC43NSAyMi41SDE3LjI1QzE3LjQ0ODkgMjIuNSAxNy42Mzk3IDIyLjU3OSAxNy43ODAzIDIyLjcxOTdDMTcuOTIxIDIyLjg2MDMgMTggMjMuMDUxMSAxOCAyMy4yNVYyNC41SDIwLjI1QzIwLjMxNjMgMjQuNSAyMC4zNzk5IDI0LjQ3MzcgMjAuNDI2OCAyNC40MjY4QzIwLjQ3MzcgMjQuMzc5OSAyMC41IDI0LjMxNjMgMjAuNSAyNC4yNVYxMS43NUMyMC41IDExLjY4MzcgMjAuNDczNyAxMS42MjAxIDIwLjQyNjggMTEuNTczMkMyMC4zNzk5IDExLjUyNjMgMjAuMzE2MyAxMS41IDIwLjI1IDExLjVIMTEuNzVDMTEuNjgzNyAxMS41IDExLjYyMDEgMTEuNTI2MyAxMS41NzMyIDExLjU3MzJDMTEuNTI2MyAxMS42MjAxIDExLjUgMTEuNjgzNyAxMS41IDExLjc1VjI0LjI1Wk0xMy43NSAxNkgxNC4yNUMxNC40NDg5IDE2IDE0LjYzOTcgMTYuMDc5IDE0Ljc4MDMgMTYuMjE5N0MxNC45MjEgMTYuMzYwMyAxNSAxNi41NTExIDE1IDE2Ljc1QzE1IDE2Ljk0ODkgMTQuOTIxIDE3LjEzOTcgMTQuNzgwMyAxNy4yODAzQzE0LjYzOTcgMTcuNDIxIDE0LjQ0ODkgMTcuNSAxNC4yNSAxNy41SDEzLjc1QzEzLjU1MTEgMTcuNSAxMy4zNjAzIDE3LjQyMSAxMy4yMTk3IDE3LjI4MDNDMTMuMDc5IDE3LjEzOTcgMTMgMTYuOTQ4OSAxMyAxNi43NUMxMyAxNi41NTExIDEzLjA3OSAxNi4zNjAzIDEzLjIxOTcgMTYuMjE5N0MxMy4zNjAzIDE2LjA3OSAxMy41NTExIDE2IDEzLjc1IDE2Wk0xMyAxMy43NUMxMyAxMy41NTExIDEzLjA3OSAxMy4zNjAzIDEzLjIxOTcgMTMuMjE5N0MxMy4zNjAzIDEzLjA3OSAxMy41NTExIDEzIDEzLjc1IDEzSDE0LjI1QzE0LjQ0ODkgMTMgMTQuNjM5NyAxMy4wNzkgMTQuNzgwMyAxMy4yMTk3QzE0LjkyMSAxMy4zNjAzIDE1IDEzLjU1MTEgMTUgMTMuNzVDMTUgMTMuOTQ4OSAxNC45MjEgMTQuMTM5NyAxNC43ODAzIDE0LjI4MDNDMTQuNjM5NyAxNC40MjEgMTQuNDQ4OSAxNC41IDE0LjI1IDE0LjVIMTMuNzVDMTMuNTUxMSAxNC41IDEzLjM2MDMgMTQuNDIxIDEzLjIxOTcgMTQuMjgwM0MxMy4wNzkgMTQuMTM5NyAxMyAxMy45NDg5IDEzIDEzLjc1Wk0xNyAxNi43NUMxNyAxNi41NTExIDE3LjA3OSAxNi4zNjAzIDE3LjIxOTcgMTYuMjE5N0MxNy4zNjAzIDE2LjA3OSAxNy41NTExIDE2IDE3Ljc1IDE2SDE4LjI1QzE4LjQ0ODkgMTYgMTguNjM5NyAxNi4wNzkgMTguNzgwMyAxNi4yMTk3QzE4LjkyMSAxNi4zNjAzIDE5IDE2LjU1MTEgMTkgMTYuNzVDMTkgMTYuOTQ4OSAxOC45MjEgMTcuMTM5NyAxOC43ODAzIDE3LjI4MDNDMTguNjM5NyAxNy40MjEgMTguNDQ4OSAxNy41IDE4LjI1IDE3LjVIMTcuNzVDMTcuNTUxMSAxNy41IDE3LjM2MDMgMTcuNDIxIDE3LjIxOTcgMTcuMjgwM0MxNy4wNzkgMTcuMTM5NyAxNyAxNi45NDg5IDE3IDE2Ljc1Wk0xNy43NSAxM0gxOC4yNUMxOC40NDg5IDEzIDE4LjYzOTcgMTMuMDc5IDE4Ljc4MDMgMTMuMjE5N0MxOC45MjEgMTMuMzYwMyAxOSAxMy41NTExIDE5IDEzLjc1QzE5IDEzLjk0ODkgMTguOTIxIDE0LjEzOTcgMTguNzgwMyAxNC4yODAzQzE4LjYzOTcgMTQuNDIxIDE4LjQ0ODkgMTQuNSAxOC4yNSAxNC41SDE3Ljc1QzE3LjU1MTEgMTQuNSAxNy4zNjAzIDE0LjQyMSAxNy4yMTk3IDE0LjI4MDNDMTcuMDc5IDE0LjEzOTcgMTcgMTMuOTQ4OSAxNyAxMy43NUMxNyAxMy41NTExIDE3LjA3OSAxMy4zNjAzIDE3LjIxOTcgMTMuMjE5N0MxNy4zNjAzIDEzLjA3OSAxNy41NTExIDEzIDE3Ljc1IDEzWk0xMyAxOS43NUMxMyAxOS41NTExIDEzLjA3OSAxOS4zNjAzIDEzLjIxOTcgMTkuMjE5N0MxMy4zNjAzIDE5LjA3OSAxMy41NTExIDE5IDEzLjc1IDE5SDE0LjI1QzE0LjQ0ODkgMTkgMTQuNjM5NyAxOS4wNzkgMTQuNzgwMyAxOS4yMTk3QzE0LjkyMSAxOS4zNjAzIDE1IDE5LjU1MTEgMTUgMTkuNzVDMTUgMTkuOTQ4OSAxNC45MjEgMjAuMTM5NyAxNC43ODAzIDIwLjI4MDNDMTQuNjM5NyAyMC40MjEgMTQuNDQ4OSAyMC41IDE0LjI1IDIwLjVIMTMuNzVDMTMuNTUxMSAyMC41IDEzLjM2MDMgMjAuNDIxIDEzLjIxOTcgMjAuMjgwM0MxMy4wNzkgMjAuMTM5NyAxMyAxOS45NDg5IDEzIDE5Ljc1Wk0xNy43NSAxOUgxOC4yNUMxOC40NDg5IDE5IDE4LjYzOTcgMTkuMDc5IDE4Ljc4MDMgMTkuMjE5N0MxOC45MjEgMTkuMzYwMyAxOSAxOS41NTExIDE5IDE5Ljc1QzE5IDE5Ljk0ODkgMTguOTIxIDIwLjEzOTcgMTguNzgwMyAyMC4yODAzQzE4LjYzOTcgMjAuNDIxIDE4LjQ0ODkgMjAuNSAxOC4yNSAyMC41SDE3Ljc1QzE3LjU1MTEgMjAuNSAxNy4zNjAzIDIwLjQyMSAxNy4yMTk3IDIwLjI4MDNDMTcuMDc5IDIwLjEzOTcgMTcgMTkuOTQ4OSAxNyAxOS43NUMxNyAxOS41NTExIDE3LjA3OSAxOS4zNjAzIDE3LjIxOTcgMTkuMjE5N0MxNy4zNjAzIDE5LjA3OSAxNy41NTExIDE5IDE3Ljc1IDE5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnZ2xvYmFsJyA/ICcjMDBBM0ZGJyA6ICdibGFjaydcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTAxNzlfNDY4NjdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTAgMTApXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy0zIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdnbG9iYWwnID8gJ3RleHQtcHJpbWFyeScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlciBmdy1ib2xkXCI+R2xvYmFsIENvbmZpZ3VyYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAnYWxlcnR0ZXh0JyA6ICdoZWFkZXJhbGlnbidcIj5Db25maWd1cmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHVkZGxlIHRpbWUgaW4gYSBzdG9yZSBsZXZlbCBmb3IgYWxsIHN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHctMTVweCBoLTE1cHggbXQtMSByb3VuZGVkLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdnbG9iYWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cIm9uZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTYgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJjbGlja0FJY29uZmlndXJlKCdzdG9yZScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ3N0b3JlJyA/ICdjb25maWd1cmVBY2l0ZScgOiAnYm9yZGVyIGJvcmRlci0xJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBoLTcwcHggcm91bmRlZC0zIHAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9PT0gJ3N0b3JlJyA/ICcjRUFGOEZGJzonI0YyRjRGNydcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hc3NpZ25Db25maWcgPT09ICdzdG9yZScgPyAnI0RBRjFGRicgOiAnI0Y5RkFGQidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjA1NzQgMTQuNTg4MkwxMi4wMTM0IDE0LjY1NjlDMTEuNTMzMSAxNS41MDI4IDEyLjAzODEgMTYuNTg1NCAxMi45NzM4IDE2LjcwOTlDMTMuMDU0OSAxNi43MTk5IDEzLjEzMTUgMTYuNzI1MyAxMy4yMDcxIDE2LjcyNTNDMTMuNjk5MSAxNi43MjUzIDE0LjEzNDIgMTYuNTE0IDE0LjQzNzEgMTYuMTg1MkwxNC44MDYgMTUuNzg0OEwxNS4xNzM2IDE2LjE4NjRDMTUuNDczMiAxNi41MTM2IDE1LjkwNzUgMTYuNzI1MyAxNi40MDI2IDE2LjcyNTNDMTYuODk1NSAxNi43MjUzIDE3LjMzMjIgMTYuNTEzMyAxNy42MzE1IDE2LjE4NjRMMTguMDAwMyAxNS43ODM1TDE4LjM2OTEgMTYuMTg2NEMxOC42Njg1IDE2LjUxMzMgMTkuMTA1MiAxNi43MjUzIDE5LjU5ODEgMTYuNzI1M0MyMC4wOTEgMTYuNzI1MyAyMC41Mjc3IDE2LjUxMzMgMjAuODI3IDE2LjE4NjRMMjEuMTk1OCAxNS43ODM1TDIxLjU2NDYgMTYuMTg2NEMyMS44NjQgMTYuNTEzMyAyMi4zMDA3IDE2LjcyNTMgMjIuNzkzNiAxNi43MjUzQzIyLjg2NjggMTYuNzI1MyAyMi45NDU2IDE2LjcxOTkgMjMuMDI2MiAxNi43MUMyMy45ODIyIDE2LjU4MDIgMjQuNDg3OCAxNS40NDE3IDIzLjk0MTEgMTQuNTg4NkMyMy45NDEgMTQuNTg4NSAyMy45NDEgMTQuNTg4NSAyMy45NDEgMTQuNTg4NEwyMi41MzQ0IDEyLjM5NTNMMjIuNTMzOCAxMi4zOTQzQzIyLjUwMjggMTIuMzQ1OCAyMi40NDA3IDEyLjMwODYgMjIuMzY5NiAxMi4zMDg2SDEzLjYyNjFDMTMuNTU1MSAxMi4zMDg2IDEzLjQ5MjkgMTIuMzQ1OCAxMy40NjE5IDEyLjM5NDNMMTMuNDYxNSAxMi4zOTVMMTIuMDU3NCAxNC41ODgyWk0xMS42MzYzIDE0LjMxODZMMTMuMDQwNCAxMi4xMjU0TDExLjYzNjMgMTQuMzE4NlpNMTMuMjA5NSAxOC40OTkxQzEzLjE0MTcgMTguNDk5MSAxMy4wNzQ3IDE4LjQ5NyAxMy4wMDg3IDE4LjQ5MzFWMjEuMDk0M1YyMi42NDE5QzEzLjAwODcgMjMuMjEzMSAxMy40ODE4IDIzLjY4OTUgMTQuMDc3IDIzLjY4OTVIMjEuOTE4N0MyMi41MTM5IDIzLjY4OTUgMjIuOTg3MSAyMy4yMTMxIDIyLjk4NzEgMjIuNjQxOVYyMS4wOTQzVjE4LjQ5MzRDMjIuOTIyNCAxOC40OTcxIDIyLjg1NjkgMTguNDk5MSAyMi43OTExIDE4LjQ5OTFDMjIuNjY1NSAxOC40OTkxIDIyLjU0MTIgMTguNDkyMyAyMi40MTg3IDE4LjQ3OTJWMjEuMDk0M1YyMS41OTQzSDIxLjkxODdIMTQuMDc3SDEzLjU3N1YyMS4wOTQzVjE4LjQ3OThDMTMuNDU2NSAxOC40OTI1IDEzLjMzMzkgMTguNDk5MSAxMy4yMDk1IDE4LjQ5OTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnc3RvcmUnID8gJyMwMEEzRkYnIDogJyMxMDE4MjgnXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnc3RvcmUnID8gJ3RleHQtcHJpbWFyeScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlciBmdy1ib2xkXCI+U3RvcmUgV2lzZSBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdzdG9yZScgPyAnYWxlcnR0ZXh0JyA6ICdoZWFkZXJhbGlnbidcIj5Db25maWd1cmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHVkZGxlIHRpbWUgaW4gYSBzdG9yZSBsZXZlbCBmb3IgYWxsIHN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHctMTVweCBoLTE1cHggbXQtMSByb3VuZGVkLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdzdG9yZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwib25lVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnc3RvcmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1zbS0xMiBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkQUlmaWxlcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTA4XCIgaGVpZ2h0PVwiODhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTA4IDg4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMzAuODQ2OVwiIGN5PVwiMzAuODQ2OVwiIHI9XCIzMC44NDY5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDg0Ljg1MTYgMClcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RkXzk1NDhfOTk2MTMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUzLjA0OTkgOS40OTIxOUM1OS40NDA0IDkuNDkyMTkgNjUuMDkzMyAxMi42NSA2OC41MzM0IDE3LjQ5MDRDNjkuNjU2OCAxNy4yMjU1IDcwLjgyODMgMTcuMDg1MyA3Mi4wMzI2IDE3LjA4NTNDODAuNDE5NyAxNy4wODUzIDg3LjIxODggMjMuODg0NCA4Ny4yMTg4IDMyLjI3MTVDODcuMjE4OCA0MC42NTg1IDgwLjQxOTcgNDcuNDU3NiA3Mi4wMzI2IDQ3LjQ1NzZMMzQuMDY3MSA0Ny40NTc2QzI2LjcyODQgNDcuNDU3NiAyMC43NzkzIDQxLjUwODQgMjAuNzc5MyAzNC4xNjk3QzIwLjc3OTMgMjYuODMxIDI2LjcyODQgMjAuODgxOCAzNC4wNjcyIDIwLjg4MThDMzQuNTg4NCAyMC44ODE4IDM1LjEwMjcgMjAuOTExOCAzNS42MDgzIDIwLjk3MDJDMzguNTE3MiAxNC4yMTg3IDQ1LjIzMTYgOS40OTIxOSA1My4wNDk5IDkuNDkyMTlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRjlGQUZCXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVsbGlwc2UgY3g9XCIxNS4xODYyXCIgY3k9XCIxNS4xODYyXCIgcng9XCIxNS4xODYyXCIgcnk9XCIxNS4xODYyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA4Ny4yMTg4IDE3LjA4NTkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ1cmwoI3BhaW50MF9saW5lYXJfOTU0OF85OTYxMylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTguOTgyN1wiIGN5PVwiMTguOTgyN1wiIHI9XCIxOC45ODI3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA3Mi4wMzEyIDkuNDkyMTkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ1cmwoI3BhaW50MV9saW5lYXJfOTU0OF85OTYxMylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZWxsaXBzZSBjeD1cIjEzLjI4NzlcIiBjeT1cIjEzLjI4NzlcIiByeD1cIjEzLjI4NzlcIiByeT1cIjEzLjI4NzlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDQ3LjM1OTQgMjAuODc4OSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cInVybCgjcGFpbnQyX2xpbmVhcl85NTQ4Xzk5NjEzKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIyLjk2NjA1XCIgY3k9XCIyLjk2NjA1XCIgcj1cIjIuOTY2MDVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgODkuNTkzOCA4LjMwNDY5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRjJGNEY3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNC4xNTI0N1wiIGN5PVwiNC4xNTI0N1wiIHI9XCI0LjE1MjQ3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDkyLjU2MjUgNjAuNTA3OClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0YyRjRGN1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjQuMTUyNDdcIiBjeT1cIjQuMTUyNDdcIiByPVwiNC4xNTI0N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAxNy4yMjY2IDE2LjYwOTQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGMkY0RjdcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIyLjM3Mjg0XCIgY3k9XCIyLjM3Mjg0XCIgcj1cIjIuMzcyODRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjEuOTY4OCAyLjM3MTA5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRjJGNEY3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjI4LjQ3NDFcIiBoZWlnaHQ9XCIyOC40NzQxXCIgcng9XCIxNC4yMzdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgNjguMjQyMiAzNi43NzczKVwiIGZpbGw9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMC40XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQ4LjY2NiA1Mi43OTQzVjU1LjE2NzFDNDguNjY2IDU1LjQ4MTggNDguNzkxIDU1Ljc4MzYgNDkuMDEzNSA1Ni4wMDYxQzQ5LjIzNiA1Ni4yMjg2IDQ5LjUzNzcgNTYuMzUzNiA0OS44NTI0IDU2LjM1MzZINTguMTU3M0M1OC40NzIgNTYuMzUzNiA1OC43NzM4IDU2LjIyODYgNTguOTk2MyA1Ni4wMDYxQzU5LjIxODggNTUuNzgzNiA1OS4zNDM4IDU1LjQ4MTggNTkuMzQzOCA1NS4xNjcxVjUyLjc5NDNNNTEuMDM4OCA0OC42NDE4TDU0LjAwNDkgNDUuNjc1OE01NC4wMDQ5IDQ1LjY3NThMNTYuOTcwOSA0OC42NDE4TTU0LjAwNDkgNDUuNjc1OFY1Mi43OTQzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjE4NjQyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZGRfOTU0OF85OTYxM1wiIHg9XCIwLjc4MTI1XCIgeT1cIjkuNDkyMTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDYuNDM4XCIgaGVpZ2h0PVwiNzcuOTY0OFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9XCI0XCIgb3BlcmF0b3I9XCJlcm9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW49XCJTb3VyY2VBbHBoYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93Xzk1NDhfOTk2MTNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDMgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfOTU0OF85OTYxM1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cImhhcmRBbHBoYVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz1cIjRcIiBvcGVyYXRvcj1cImVyb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbj1cIlNvdXJjZUFscGhhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QyX2Ryb3BTaGFkb3dfOTU0OF85OTYxM1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIyMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMTJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA4IDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93Xzk1NDhfOTk2MTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cImVmZmVjdDJfZHJvcFNoYWRvd185NTQ4Xzk5NjEzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluMj1cImVmZmVjdDJfZHJvcFNoYWRvd185NTQ4Xzk5NjEzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJzaGFwZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDBfbGluZWFyXzk1NDhfOTk2MTNcIiB4MT1cIjMuNTI1MzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE9XCI1LjE1MjQ1XCIgeDI9XCIzMC4zNzI0XCIgeTI9XCIzMC4zNzIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj1cIiNEMEQ1RERcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC4zNTA3MTVcIiBzdG9wLWNvbG9yPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3Atb3BhY2l0eT1cIjBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDFfbGluZWFyXzk1NDhfOTk2MTNcIiB4MT1cIjQuNDA2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MT1cIjYuNDQwNTZcIiB4Mj1cIjM3Ljk2NTRcIiB5Mj1cIjM3Ljk2NTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjM1MDcxNVwiIHN0b3AtY29sb3I9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5PVwiMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50Ml9saW5lYXJfOTU0OF85OTYxM1wiIHgxPVwiMy4wODQ2OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MT1cIjQuNTA4MzlcIiB4Mj1cIjI2LjU3NThcIiB5Mj1cIjI2LjU3NThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjM1MDcxNVwiIHN0b3AtY29sb3I9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5PVwiMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy00MDBweCBzdWJ0aXRsZSB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG93bmxvYWQgdGhlIHRlbXBsYXRlIGJlbG93IGluIHRoZSA8c3BhbiBjbGFzcz1cImZ3LWJvbGRlclwiPuKAmEFzc2lnblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jlc+KAmTwvc3Bhbj4gc2VjdGlvbiBhbmQgdXBsb2FkIHRvIGNvbmZpZ3VyZSBzdG9yZS13aXNlIHRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSBjaGVja2xpc3QgYWNjb3JkaW5nbHkuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyAhPT0gJ3N0b3JlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtc20tMTIgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFycmF5IG9mIGNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHM7IGxldCBpPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IG1iLTUgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtM1wiPlN0YXJ0IGh1ZGRsZSBhdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LWF1dG8gbWFyZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUh1ZGRsZXRpbWUoJGV2ZW50LCd0aW1lJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYXJyYXkudGltZVwiIHBsYWNlaG9sZGVyPVwiU2V0IHN0b3JlIG9wZW4gdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInN0YXJ0X2RhdGVfe3tpfX1cIiB0eXBlPVwidGltZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0zXCI+Zm9yIGEgZHVyYXRpb24gb2Y8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xNTBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1zZWxlY3QtbGcgc2VsZWN0Mi1oaWRkZW4tYWNjZXNzaWJsZSBuZy1wcmlzdGluZSBuZy12YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFycmF5LmR1cmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUh1ZGRsZXRpbWUoJGV2ZW50LCdkdXJhdGlvbicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjE1XCI+MTUgbWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzMFwiPjMwIG1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNDVcIj40NSBtaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjYwXCI+NjAgbWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzPy5sZW5ndGggPiAxXCI+PGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHB4LTMgbXMtM1wiIChjbGljayk9XCJkZWxldGVIdWRkbGUoaSlcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi41IDUuMDAxM0g0LjE2NjY3TTQuMTY2NjcgNS4wMDEzSDE3LjVNNC4xNjY2NyA1LjAwMTNWMTYuNjY4QzQuMTY2NjcgMTcuMTEgNC4zNDIyNiAxNy41MzM5IDQuNjU0ODIgMTcuODQ2NUM0Ljk2NzM4IDE4LjE1OSA1LjM5MTMxIDE4LjMzNDYgNS44MzMzMyAxOC4zMzQ2SDE0LjE2NjdDMTQuNjA4NyAxOC4zMzQ2IDE1LjAzMjYgMTguMTU5IDE1LjM0NTIgMTcuODQ2NUMxNS42NTc3IDE3LjUzMzkgMTUuODMzMyAxNy4xMSAxNS44MzMzIDE2LjY2OFY1LjAwMTNINC4xNjY2N1pNNi42NjY2NyA1LjAwMTNWMy4zMzQ2NEM2LjY2NjY3IDIuODkyNjEgNi44NDIyNiAyLjQ2ODY4IDcuMTU0ODIgMi4xNTYxMkM3LjQ2NzM4IDEuODQzNTYgNy44OTEzMSAxLjY2Nzk3IDguMzMzMzMgMS42Njc5N0gxMS42NjY3QzEyLjEwODcgMS42Njc5NyAxMi41MzI2IDEuODQzNTYgMTIuODQ1MiAyLjE1NjEyQzEzLjE1NzcgMi40Njg2OCAxMy4zMzMzIDIuODkyNjEgMTMuMzMzMyAzLjMzNDY0VjUuMDAxM004LjMzMzMzIDkuMTY3OTdWMTQuMTY4TTExLjY2NjcgOS4xNjc5N1YxNC4xNjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2J1dHRvbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHM/Lmxlbmd0aCA8IDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiIChjbGljayk9XCJBZGRIdWRkbGVFZW50KClcIj4gPHNwYW4+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTc0IDQuMTY3OTdWMTUuODM0Nk00LjE2NDA2IDEwLjAwMTNIMTUuODMwN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJtcy0zXCI+QWRkIEV2ZW50PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydvdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmcnXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtMyBweC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtLTNcIj5Db25maWd1cmF0aW9uIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItdG9wIGJvcmRlci10b3AtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAxcHg7IG1hcmdpbjogMXJlbSAtOS43NTBweDtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtMyBweC0zIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtMlwiPlByZS1PcGVuIFRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlUHJlb3BlbnRpbWVjb25maWcoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5haUNvbmZpZz8ub3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nPy5wcmVvcGVudGltZWNvbmZpZyAhPT0gJycgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5XaGVuIGVuYWJsZWQsIHRoaXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd3MgZGV0ZWN0aW9ucyBiZWZvcmUgc3RvcmUgb3BlbiB0aW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJlb3BlbnRpbWVjb25maWcgfHwgY29uZmlnRGF0YS5haUNvbmZpZy5vdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmc/LnByZW9wZW50aW1lY29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbWUtM1wiPiBNb25pdG9yIFN0b3JlIGZvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcub3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nLnByZW9wZW50aW1lY29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdGltZSBvZiBwcmVPcGVuQ2xvc2VUaW1lQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidGltZVwiPnt7IHRpbWUgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1zdWItaGVhZGVyIG1zLTNcIj4gbWludXRlcyBiZWZvcmUgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlZCBvcGVuIFRpbWUgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMiByb3VuZGVkLTMgcHgtMyBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctaGVhZGVyIG10LTJcIj5Qb3N0LUNsb3NlIFRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlUHJlY2xvc2V0aW1lY29uZmlnKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/Lm91dHNpZGVidXNpbmVzc2hvdXJzcXVldWV0cmFja2luZz8ucHJlY2xvc2V0aW1lY29uZmlnICE9PSAnJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbXQtMlwiPldoZW4gZW5hYmxlZCwgdGhpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93cyBkZXRlY3Rpb25zIGFmdGVyIHN0b3JlIGNsb3NlIHRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcmVjbG9zZXRpbWVjb25maWcgfHwgY29uZmlnRGF0YS5haUNvbmZpZy5vdXRzaWRlYnVzaW5lc3Nob3Vyc3F1ZXVldHJhY2tpbmc/LnByZWNsb3NldGltZWNvbmZpZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1zdWItaGVhZGVyIG1lLTNcIj4gTW9uaXRvciBTdG9yZSBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLm91dHNpZGVidXNpbmVzc2hvdXJzcXVldWV0cmFja2luZy5wcmVjbG9zZXRpbWVjb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgcmVxdWlyZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0aW1lIG9mIHByZU9wZW5DbG9zZVRpbWVDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0aW1lXCI+e3sgdGltZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbXMtM1wiPiBtaW51dGVzIGFmdGVyIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZWQgY2xvc2UgVGltZSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtMyBweC0zIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtMlwiPlBlcnNvbiBEZXRlY3Rpb24gVGltZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJlc2hvbGQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+V2hlbiBlbmFibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGVjdGlvbiBjb3VudCBpcyBiYXNlZCBvbiB0aGUgY29uZmlndXJlZCB0aW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbWUtM1wiPiBGbGFnLCBJZiBkZXRlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYSBwZXJzb24gZXhjZWVkcyA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLm91dHNpZGVidXNpbmVzc2hvdXJzcXVldWV0cmFja2luZy5wZXJzb25kZXRlY3Rpb250aW1ldGhyZXNob2xkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0aW1lIG9mIHBlcnNvbkRldGVjdGlvblRpbWVUaHJlc2hvbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0aW1lXCI+e3sgdGltZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbXMtM1wiPiBtaW51dGVzIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXQtNiBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC02IHN1YlwiPkZvcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVTY2hlZHVsZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwib25ldGltZVwiPkRvZXMgTm90IFJlcGVhdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIndlZWtkYXlcIj4gRXZlcnkgV2Vla2RheSAoTW9uIC0gRnJpKTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImRhaWx5XCI+RGFpbHk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ3ZWVrbHlcIj5XZWVrbHk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtb250aGx5XCI+TW9udGhseTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJhbmdlXCI+Q3VzdG9tIFJhbmdlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtMyBteC0yXCI+QXQ8L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTIwMHB4IG1hcmdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ3N0YXJ0JylcIiBbKG5nTW9kZWwpXT1cInN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNldCBzdG9yZSBvcGVuIHRpbWVcIiBuYW1lPVwiZHVlX2RhdGVcIiB0eXBlPVwidGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtMyBtcy01XCI+RW5kczwvc3Bhbj4mbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMjAwcHggbWFyZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVGltZSgnZW5kJylcIiBbKG5nTW9kZWwpXT1cImVuZFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCIgbmFtZT1cImR1ZV9kYXRlXCIgdHlwZT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmdcIj5DaGVja2xpc3QgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ29uZXRpbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2wtbGctMTIgZC1mbGV4IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtM1wiPk9uY2UgT248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgcHgtNCBwZS0zXCIgaWQ9XCJkYXRlY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXI9XCJ0cnVlXCIgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXItb3BlbnM9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZCBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZVJhbmdlU3RhcnQoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT09ICdvbmV0aW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwicmFuZ2VEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBuZy12YWxpZCBuZy1kaXJ0eSBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2hvd1JhbmdlVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdyYW5nZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVEYXRlVmFsdWUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicmFuZ2VEYXRlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGNoZWNrbGlzdHRleHQgbXMtMlwiPlNldFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSByYW5nZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2wtbGctMTIgZC1mbGV4IG10LTVcIiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTNcIj5TdGFydHMgZnJvbTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdyYW5nZScgPyAncHMtMTAnIDogJ3B4LTQgcGUtMydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJkYXRlY2xhc3NcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXItb3BlbnM9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZCBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluU3RhcnREYXRlXCIgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZVJhbmdlU3RhcnQoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtdC04IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPT0gJ3JhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YlwiPlJlcGVhdHMgZXZlcnk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IG1iLTUgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctMTAwcHggbmctcHJpc3RpbmUgbmctaW52YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMlwiIG1pbj1cIjFcIiAoY2hhbmdlKT1cInVwZGF0ZVJlcGVhdERheSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJyZW1vdmVBbHBoYXBldCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IG14LTIgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTEwMHB4IG5nLXByaXN0aW5lIG5nLWludmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlcGVhdFR5cGVcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ21vbnRobHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdkYXknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZU1vbnRoKCdkYXknKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJpbmxpbmVSYWRpbzFcIj5PblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERheTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy0xMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ2RheScgPyAnZGlzYWJsZWQnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdkYXknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGg9XCIyXCIgKGlucHV0KT1cInZhbGlkYXRlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdkYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVNb250aCgnZGF0ZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIGZvcj1cImlubGluZVJhZGlvMVwiPk9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9udGhEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIj4gRmlyc3QgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj4gU2Vjb25kIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+IFRoaXJkPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjRcIj4gRm91cnRoPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj4gTGFzdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IG14LTIgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb250aERheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTdW5kYXlcIj4gU3VuZGF5IDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJNb25kYXlcIj4gTW9uZGF5IDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJUdWVzZGF5XCI+IFR1ZXNkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiV2VkbmVzZGF5XCI+IFdlZG5lc2RheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJUaHVyc2RheVwiPiBUaHVyc2RheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJGcmlkYXlcIj5GcmlkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiU2F0dXJkYXlcIj4gU2F0dXJkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdzcGVjaWZpYydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlTW9udGgoJ3NwZWNpZmljJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+T25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGVjaWZpYyBEYXRlczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2xvc2VEcm9wRG93bigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY2xvc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZHJvcGRvd24taW5wdXQgcHMtMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wRG93bigpXCIgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdzcGVjaWZpYydcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBjdXN0b20tZHJvcGRvd24tbWVudSB3LTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0Ryb3BEb3duXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0yIG1iLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF0ZSBvZiBkYXRlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBtZS0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUoZGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgYnRuIHdlZWtzdHlsZWRhdGUgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtcGlsbCBtaW4tdy0zNXB4IHB5LTIgcHgtMyBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkRGF0ZS5pbmNsdWRlcyhkYXRlKSA/ICdhY3RpdmUgYnRuLWFjdGl2ZS1wcmltYXJ5JyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cInRhYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwidGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaWxsc3R5bGVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24gbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXREYXRlKCk7c2hvd0Ryb3BEb3duPSBmYWxzZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJtaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgcHktMyBiYWRnZS1zcGVjaWZpY2RhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGRhdGUgb2Ygc3VibWl0dGVkRGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1saWdodCBjaGVja2xpc3R0ZXh0IG1lLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXREYXRlV2l0aFN1ZmZpeChkYXRlKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJyZW1vdmVCYWRnZShkYXRlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSAzTDMgOU0zIDNMOSA5XCIgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnd2Vla2RheScsJ3dlZWtseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXBpbGxzIGQtZmxleCBmbGV4LW5vd3JhcCBtYi0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYmxpc3RcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBtZS0xXCIgcm9sZT1cInByZXNlbnRhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIihjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICd3ZWVrbHknIHx8IChjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICd3ZWVrZGF5JyAmJiAhWydTdW5kYXknLCdTYXR1cmRheSddLmluY2x1ZGVzKGRheSkpKSA/IHNldERheShkYXkpIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rIGJ0biB3ZWVrc3R5bGUgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtcGlsbCBtaW4tdy00NXB4IG1lLTIgcHktNCBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3dlZWtkYXknICYmIFsnU3VuZGF5JywnU2F0dXJkYXknXS5pbmNsdWRlcyhkYXkpKSA/ICdjdXJzb3ItZGVmYXVsdCcgOiBzZWxlY3RlZERheXMuaW5jbHVkZXMoZGF5KSA/ICdzZWxlY3REYXknIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cInRhYlwiIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIiByb2xlPVwidGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGlsbHN0eWxlXCI+e3sgZGF5WzBdIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG5nLXZhbGlkIG5nLWRpcnR5IG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzcGVjaWZpY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVNwZWNpZmljKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGNoZWNrbGlzdHRleHQgbXMtMlwiPk9uIFNwZWNpZmljXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTQgcGUtMyBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2xvc2VEcm9wRG93bigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jbG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgdy0zMDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGRyb3Bkb3duLWlucHV0IHBzLTE0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wRG93bigpXCIgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3BlY2lmaWNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudSBjdXN0b20tZHJvcGRvd24tbWVudSB3LTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93RHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLW11bHRpLWRhdGUtZGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWREYXRlcyk9XCJzZWxlY3RTcGVjaWZpY0RhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmVkZWZpbmVkRGF0ZXNdPVwic2VsZWN0ZWREYXRlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGFydERhdGVdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmREYXRlXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlXCI+PC9saWItbXVsdGktZGF0ZS1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBweS0zIGJhZGdlLXNwZWNpZmljZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIG1zLTUgZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGRhdGUgb2Ygc2VsZWN0ZWREYXRlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1saWdodCBjaGVja2xpc3R0ZXh0IG1lLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwicmVtb3ZlRGF0ZShkYXRlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05IDNMMyA5TTMgM0w5IDlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIXNob3dSYW5nZVZhbHVlIHx8IGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ29uZXRpbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAncmFuZ2UnID8gJ210LTQnIDogJ210LTInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YlwiPkVuZHMgT248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiBpZD1cImRhdGVjbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdyYW5nZScgPyAncHMtOScgOiAncHgtNCBwZS0zJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlci1vcGVucz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRW5kRGF0ZVwiIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEVuZERhdGVcIiBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlUmFuZ2VFbmQoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IHJlbW92ZSBjdXJzb3ItcG9pbnRlciBtcy00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGF0ZXBpY2tlclJlZnJlc2goKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT09ICcnICYmIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlICE9PSBudWxsICYmIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPT0ncmFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnb25ldGltZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9jY3VycyBvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGRheSB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVEYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgdXNlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnd2Vla2RheScsJ3dlZWtseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPY2N1cnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZXJ5IHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09JzAxJykgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5IDogJyd9fSB3ZWVrPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gMDFcIj5zPC9zcGFuPiBvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZERheXMudG9TdHJpbmcoKX19PHNwYW4gKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPiBzdGFydGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZVwiPnVudGlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnZGFpbHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPY2N1cnMgZXZlcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09ICcwMScpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSA6ICcnfX0gZGF5PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gMDFcIj5zPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPiBzdGFydGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGU6J2RkIE1NTSBZWVlZJ319IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIFwiPnVudGlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnbW9udGhseSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9jY3Vyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09ICcwMScpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSA6ICcnfX0gbW9udGg8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5ICE9PSAwMVwiPnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj57eyhjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09PSAnZGF5JykgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdvbiBkYXkgJyArIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09PSAnZGF0ZScgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlTW9udGhWYWx1ZSgpOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3BlY2lmaWNWYWx1ZSgpfX08c3BhbiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+IHN0YXJ0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlXCI+dW50aWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zIHVzZXJcIiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9jY3VycyBldmVyeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlV2Vla0RheXM/LnRvU3RyaW5nKCl9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1JhbmdlVmFsdWVcIj4gc3RhcnRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlOidkZCBNTU0gWVlZWSd9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZVwiPnVudGlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWxlZnRcIiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmdcIj5SZXNwb25zZSBDb25maWd1cmF0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwibXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjb25maWdhY2NvcmRpYW4oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3djb25maWd9XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3djb25maWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0RyYWc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ29uZXRpbWUnLCdkYWlseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUpIHx8IChjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnbW9udGhseScgJiYgIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09J3NwZWNpZmljJykgPyAnYmctY29sb3ItZGlzYWJsZWQnIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxsb3dPbmNlID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd09uY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwib25lVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlsnb25ldGltZScsJ2RhaWx5J10uaW5jbHVkZXMoY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSkgfHwgKGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdtb250aGx5JyAmJiAgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0nc3BlY2lmaWMnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWIgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwib25lVGltZVwiPk9ubHkgb25lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHQgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwib25lVGltZVwiPkJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxpbmcgdGhpcywgdGhlIHJlc3BvbnNlIGNhbiBiZSBjYXB0dXJlZCBvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jZSBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIGNoZWNrbGlzdCA8c3BhbiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+ZnJvbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZVwiPnRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlfX0uPC9zcGFuPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFsbG93ZWRPdmVyVGltZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93ZWRPdmVyVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImZpbGxSZXNwb25zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3ViIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmaWxsUmVzcG9uc2VcIj5GaWxsIHJlc3BvbnNlIGFmdGVyIGNvbmZpZ3VyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLjwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmlsbFJlc3BvbnNlXCI+QnkgZW5hYmxpbmcsIHRoZSB1c2VyIGNhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3QgZXZlbiBhZnRlciB0aGUgYWJvdmUgY29uZmlndXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQtdGltZS48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGxvd2VkU3RvcmVMb2NhdGlvbiA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dlZFN0b3JlTG9jYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwiZ2VvRmVuY2luZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWIgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZ2VvRmVuY2luZ1wiPkdlb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlbmNpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0IG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImdlb0ZlbmNpbmdcIj5CeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsaW5nLCB0aGUgY2hlY2tsaXN0IGNhbiBiZSBmaWxsZWQgYnkgdGhlIHVzZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5IHdoZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNpZGUgdGhlIHN0b3JlLjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGxvd2VkTXVsdGlTdWJtaXQgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93ZWRNdWx0aVN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJhbGxvd2VkTXVsdGlTdWJtaXRTd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3ViIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImFsbG93ZWRNdWx0aVN1Ym1pdFN3aXRjaFwiPkFsbG93IG11bHRpcGxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VzPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHQgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiYWxsb3dlZE11bHRpU3VibWl0U3dpdGNoXCI+QnkgZW5hYmxpbmcsIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSBmaWxsZWQgbXVsdGlwbGUgdGltZXMgaW4gYSBkYXk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucmVzdHJpY3RBdHRlbmRhbmNlID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZXN0cmljdEF0dGVuZGFuY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwicmVzdHJpY3RBdHRlbmRhbmNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YiBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJyZXN0cmljdEF0dGVuZGFuY2VcIj5SZXN0cmljdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGVuZGFuY2U8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJyZXN0cmljdEF0dGVuZGFuY2VcIj5CeSBlbmFibGluZywgdXNlciBjYW4ndCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFibGUgdG8gY2xvY2tvdXQgd2l0aG91dCBjb21wbGV0aW5nIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhc2suPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdFwiICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctaGVhZGluZ1wiPkFkdmFuY2UgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYWR2YW5jZWFjY29yZGlhbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyb3RhdGUnIDogc2hvd2FkdmFuY2V9XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dhZHZhbmNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcmFnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Q2hlY2tsaXN0IE93bmVyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3duZXJzIGdldCBhY2Nlc3MgdG8gbWFuYWdlIHRoZSBjaGVja2xpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5DYW4gYmUgbWFuYWdlZCBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctODBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ub3duZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZU93bmVyKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZm9ybS1jaGVjay1sYWJlbCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BcHByb3Zlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFwcHJvdmVyPy5sZW5ndGggPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFwcHJvdmVcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFwcHJvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVDb25maWdBcHByb3ZlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeSBlbmFibGluZywgdGhlIHVzZXJzIHdpbGwgYmUgYWJsZSB0byBhcHByb3ZlIHRoZSBjaGVja2xpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG10LTNcIiAqbmdJZj1cImFwcHJvdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5UbyBiZSBhcHByb3ZlZCBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctODBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXBwcm92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUFwcHJvdmVyKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZm9ybS1jaGVjay1sYWJlbCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5SZW1pbmRlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVtYWluZGVyXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJvbmVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVDb25maWdSZW1haW5kZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnkgZW5hYmxpbmcsIHRoZSB1c2VycyB3aWxsIGJlIHJlbWluZGVkIGluIHRoZSBzZWxlY3RlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnZhbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtM1wiICpuZ0lmPVwicmVtYWluZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTUgdy0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViXCI+Tm90aWZ5IHVzZXIgYmVmb3JlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTgwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSB3LTIwMHB4ICxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxvb3Agb2YgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZW1haW5kZXI7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gKm5nRm9yPVwibGV0IGxvb3Agb2YgdGltZUxvb3BcIj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE0ODdfNDc2MzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAuMDAxMyA1LjAwMDMzVjEwLjAwMDNMMTMuMzM0NiAxMS42NjdNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTQ4N180NzYzNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgcHMtMTQgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVSZW1haW5kZXIoJGV2ZW50LGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ3JlbWFpbmRlcicrIGlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0aW1lIG9mIHVwZGF0ZVRpbWVMb29wKGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTIwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImxvb3AgPT09IHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidGltZVwiPnt7dGltZX19IG1pbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIubGVuZ3RoIDwgM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlTG9vcCgpXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEwLjAwMTMgNC4xNjY5OVYxNS44MzM3TTQuMTY3OTcgMTAuMDAwM0gxNS44MzQ2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVtYWluZGVyXCIgY2xhc3M9XCJtdC0yIHVzZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZCBBbGVydHMgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXI7bGV0IGk9aW5kZXhcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSAhPT0gY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5sZW5ndGgtMSAmJiBpICE9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLDwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSA9PT0gY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5sZW5ndGgtMSAmJiBpICE9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kPC9zcGFuPiB7e2l0ZW19fW1pbnMgPC9zcGFuPmJlZm9yZSB0aGUgY2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCB0aW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk5vdGlmeSBGbGFnczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIm5vdGlmeUZsYWcgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5vdGlmeUZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk5vdGlmeUZsYWdUb2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cIm5vdGlmeVN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeSBlbmFibGluZywgYWxsIGZsYWdzIHdpbGwgYmUgc2VudCBhcyBlbWFpbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIHNvcFRhYmxlXCIgKm5nSWY9XCJub3RpZnlGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kIFRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBoLTE0cHggdy0xNHB4IG14LTFcIiB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYXBwcm92ZXJcIiBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5ub3RpZnlGbGFncz8ubm90aWZ5VHlwZT8uaW5jbHVkZXMoJ2FwcHJvdmVyJylcIiAoY2hhbmdlKSA9XCJ1cGRhdGVOb3RpZnkoJGV2ZW50LCdhcHByb3ZlcicpXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIGxpbmVIZWlnaHRcIj5BcHByb3Zlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImN1c3RvbVwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/Lm5vdGlmeUZsYWdzPy5ub3RpZnlUeXBlPy5pbmNsdWRlcygnY3VzdG9tJylcIiAoY2hhbmdlKSA9XCJ1cGRhdGVOb3RpZnkoJGV2ZW50LCdjdXN0b20nKVwiPjwvZGl2PiA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBsaW5lSGVpZ2h0XCI+Q3VzdG9tPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5ub3RpZnlGbGFncz8ubm90aWZ5VHlwZT8uaW5jbHVkZXMoJ2N1c3RvbScpICYmIG5vdGlmeUZsYWdcIiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5ub3RpZnlGbGFncz8udXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVOb3RpZmllcigkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk5vdGlmeSBvbiBSZWN1cnJpbmcgRmxhZ3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJyZWN1cnJpbmdGbGFnTm90aWZ5ID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWN1cnJpbmdGbGFnTm90aWZ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25SZWN1cnJpbmdGbGFnVG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJyZWN1cnJpbmdGbGFnU3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoZW4gZW5hYmxlZCwgZW1haWxzIGFyZSBzZW50IGZvciByZWN1cnJpbmcgZmxhZ3MgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVjdXJyaW5nRmxhZ05vdGlmeVwiIGNsYXNzPVwicmVjdXJyaW5nLWZsYWctYm94IG10LTMgcC00IGJvcmRlciByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yXCI+U2VuZCBFbWFpbCBpZiB0aGUgc2FtZSBxdWVzdGlvbiBpcyBmbGFnZ2VkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LXNtIHctNzVweCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5yZWN1cnJpbmdGbGFnPy50aHJlc2hvbGQgfHwgM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlUmVjdXJyaW5nVGhyZXNob2xkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0IG9mIHJlY3VycmluZ1RocmVzaG9sZHNcIiBbdmFsdWVdPVwidFwiPnt7dH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPnRpbWVzIGJ5IHRoZSBzYW1lIHN0b3JlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtdC0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIGNsYXNzPVwibWUtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC4wMDAxNiAxMC42NjczVjguMDAwNjVNOC4wMDAxNiA1LjMzMzk4SDguMDA2ODNNMTQuNjY2OCA4LjAwMDY1QzE0LjY2NjggMTEuNjgyNiAxMS42ODIxIDE0LjY2NzMgOC4wMDAxNiAxNC42NjczQzQuMzE4MjYgMTQuNjY3MyAxLjMzMzUgMTEuNjgyNiAxLjMzMzUgOC4wMDA2NUMxLjMzMzUgNC4zMTg3NSA0LjMxODI2IDEuMzMzOTggOC4wMDAxNiAxLjMzMzk4QzExLjY4MjEgMS4zMzM5OCAxNC42NjY4IDQuMzE4NzUgMTQuNjY2OCA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5PbmNlIHRoZSB0aHJlc2hvbGQgaXMgcmVhY2hlZCBhbmQgYW4gZW1haWwgaXMgc2VudCwgdGhlIGZsYWcgY291bnQgcmVzZXRzIHRvIHplcm88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTMgc29wVGFibGVcIiAqbmdJZj1cInJlY3VycmluZ0ZsYWdOb3RpZnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQgVG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJyZWN1cnJpbmdBcHByb3ZlclwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/Lm5vdGlmeVR5cGU/LmluY2x1ZGVzKCdhcHByb3ZlcicpXCIgKGNoYW5nZSk9XCJ1cGRhdGVSZWN1cnJpbmdOb3RpZnkoJGV2ZW50LCdhcHByb3ZlcicpXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIGxpbmVIZWlnaHRcIj5BcHByb3Zlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInJlY3VycmluZ0N1c3RvbVwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/Lm5vdGlmeVR5cGU/LmluY2x1ZGVzKCdjdXN0b20nKVwiIChjaGFuZ2UpPVwidXBkYXRlUmVjdXJyaW5nTm90aWZ5KCRldmVudCwnY3VzdG9tJylcIj48L2Rpdj4gPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPkN1c3RvbTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInJlY3VycmluZ1NhbWVBc05vdGlmeVwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/Lm5vdGlmeVR5cGU/LmluY2x1ZGVzKCdzYW1lQXNOb3RpZnknKVwiIChjaGFuZ2UpPVwidXBkYXRlUmVjdXJyaW5nTm90aWZ5KCRldmVudCwnc2FtZUFzTm90aWZ5JylcIj48L2Rpdj4gPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPlVzZSBzYW1lIHVzZXJzIGZyb20gTm90aWZ5IEZsYWdzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWN1cnJpbmdGbGFnTm90aWZ5ICYmIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/Lm5vdGlmeVR5cGU/LmluY2x1ZGVzKCdjdXN0b20nKVwiIGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlY3VycmluZ0ZsYWc/LnVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlUmVjdXJyaW5nRmxhZ1VzZXJzKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZm9ybS1jaGVjay1sYWJlbCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+RW5hYmxlIC0gRGFpbHkgUmVwb3J0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiZW5hYmxlRW1haWwgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVuYWJsZUVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FbmFibGVFbWFpbFRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwibm90aWZ5U3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5IEVuYWJsaW5nLCBjb21wbGlhbmNlIHNjb3JlIHdpbGwgYmUgc2VudCBhcyBhbiBlbWFpbCB0byB0aGUgYWJvdmUgdXNlcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTMgc29wVGFibGVcIiAqbmdJZj1cImVuYWJsZUVtYWlsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kIFRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBoLTE0cHggdy0xNHB4IG14LTFcIiB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYXV0b0VtYWlsQXBwcm92ZXJcIiBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hdXRvRW1haWw/LnR5cGU/LmluY2x1ZGVzKCdhcHByb3ZlcicpXCIgKGNoYW5nZSkgPVwidXBkYXRlQXV0b0VtYWlsKCRldmVudCwnYXBwcm92ZXInKVwiPjwvZGl2PiA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBsaW5lSGVpZ2h0XCI+QXBwcm92ZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJhdXRvRW1haWxDdXN0b21cIiBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hdXRvRW1haWw/LnR5cGU/LmluY2x1ZGVzKCdjdXN0b20nKVwiIChjaGFuZ2UpID1cInVwZGF0ZUF1dG9FbWFpbCgkZXZlbnQsJ2N1c3RvbScpXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIGxpbmVIZWlnaHRcIj5DdXN0b208L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmF1dG9FbWFpbD8udHlwZT8uaW5jbHVkZXMoJ2N1c3RvbScpXCIgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXV0b0VtYWlsPy51c2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUVtYWlsZXIoJGV2ZW50KVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+RXhwb3J0IFN1Ym1pc3Npb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmV4cG9ydCA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZXhwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImV4cG9ydFN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIHRoaXMgdG8gYWxsb3cgY2hlY2tsaXN0IHN1Ym1pdHRlcnMgdG8gZG93bmxvYWQgdGhlaXIgc3VibWlzc2lvbiBhcyBhIFBERiBmaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmb3JtLWNoZWNrLWxhYmVsIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlJlZG8gVmFsaWRpdHk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldCB0aGUgZHVyYXRpb24gZm9yIHdoaWNoIGEgcmVkbyByZW1haW5zIHZhbGlkIGFmdGVyIGNyZWF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBtZS0zXCI+UmVkbyB2YWxpZCBmb3I8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy04MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlZG9WYWxpZGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgZGF5IG9mIFsxLDIsMyw0LDUsNiw3XVwiIFtuZ1ZhbHVlXT1cImRheVwiPnt7ZGF5fX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXMtM1wiPkRheSBmcm9tIFJlZG8gY3JlYXRpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnZXlldGVzdCddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJtdC02IG14LTQgc3ViXCI+U3RvcmUgb3BlbnMgYXQgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctNjAwXCI+PHU+e3tjb25maWdEYXRhPy5vcGVuVGltZX19PC91Pjwvc3Bhbj4gYW5kIGNsb3Nlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdCA8c3BhbiBjbGFzcz1cImZ3LTYwMFwiPjx1Pnt7Y29uZmlnRGF0YT8uY2xvc2VUaW1lfX08L3U+PC9zcGFuPiwgZXZlcnlkYXkuIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3VuYXR0ZW5kZWQnXCIgY2xhc3M9XCJtdC02IG14LTQgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWUgdGFrZW4gdG8gYXNzaXN0IGJ5IHN0YWZmICZsdDs9IDEgbWlucyB8IFN0YWZmIHRvIGN1c3RvbWVyIHRpbWUgc3BlbnQgJmx0Oz0xXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTdG9yZSBvcGVucyBhdCA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdy02MDBcIj48dT57e2NvbmZpZ0RhdGE/Lm9wZW5UaW1lfX08L3U+PC9zcGFuPiBhbmQgY2xvc2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IDxzcGFuIGNsYXNzPVwiZnctNjAwXCI+PHU+e3tjb25maWdEYXRhPy5jbG9zZVRpbWV9fTwvdT48L3NwYW4+LCBldmVyeWRheS4gPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0nY3VzdG9tJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFbJ2V5ZXRlc3QnLCdoYWxmc2h1dHRlcicsJ3R2Y29tcGxpYW5jZScsJ2NhbWVyYXRhbXBlcmluZycsJ3N0b3Jlb3BlbmFuZGNsb3NlJywnbW9iaWxldXNhZ2VkZXRlY3Rpb24nLCdzdG9yZWh5Z2llbmVtb25pdG9yaW5nJywndW5pZm9ybWRldGVjdGlvbicsJ3N0YWZmZ3JvdXBpbmcnLCdib3hhbGVydCcsJ2VtcGxveWVlQ291bnQnLCd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtdC04XCI+Tm90aWZ5IEFsZXJ0c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NzRfNjYxOTUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImNvbC1tZC0xMiBtdC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtdC0yIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC00IHN1YlwiPklmIHVzYWdlIGV4Y2VlZHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGZsZXggZmxleC1jb2x1bW5cIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB0ZXh0LWNlbnRlciB3LTU1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLnVzYWdlRXhjZWVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkIG1pbmxlbmd0aD1cIjJcIiBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlciB1c2FnZWVycm9yXCIgKm5nSWY9XCJlcnJvcm1zZ1wiPlBsZWFzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRlciBldmVudCBjb3VudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXR3ZWVuIDE1IHRvIDk5OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViXCI+ZGV0ZWN0aW9ucyBwZXIgZGF5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3NjcnVtJywnY2xlYW5pbmcnLCdzdG9yZW9wZW5hbmRjbG9zZScsJ3VuYXR0ZW5kZWQnLCdwYWNrYWdlQ29uZmlndXJhdGlvbicsJ3N0YWZmbGVmdGludGhlbWlkZGxlJywnY3VzdG9tZXJ1bmF0dGVuZGVkJywnb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJywnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdjYW1lcmF0YW1wZXJpbmcnLCdxdWV1ZWFsZXJ0J10uaW5jbHVkZXModHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+U2VuZCBBbGVydCB0byA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydHMudXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlQWxlcnQoJGV2ZW50LCd1c2VyJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ub3duZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZU93bmVyKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIFNjaGVkdWxlIENoZWNrbGlzdCAgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydoYWxmc2h1dHRlcicsJ3R2Y29tcGxpYW5jZScsJ3F1ZXVlYWxlcnQnLCdjYW1lcmF0YW1wZXJpbmcnLCdzdG9yZWh5Z2llbmVtb25pdG9yaW5nJywnc3RhZmZncm91cGluZycsJ2JveGFsZXJ0JywnZW1wbG95ZWVDb3VudCcsICd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGJnLXdoaXRlIHJvdW5kZWQtNCBweC03IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdxdWV1ZWFsZXJ0JywnY2FtZXJhdGFtcGVyaW5nJywnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsJ3N0YWZmZ3JvdXBpbmcnLCdib3hhbGVydCcsJ2VtcGxveWVlQ291bnQnLCAndW5hdHRlbmRlZGRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+U2NoZWR1bGUgQ2hlY2tsaXN0IDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbWItNlwiPlNldCB0aGUgZGVzaXJlZCB0aW1lIHRvIHJ1biB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnaGFsZnNodXR0ZXInXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTIgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjaGVja2xpc3Qgd2lsbCBydW4gYmFzZWQgb24gZWFjaCBzdG9yZeKAmXMgb3BlbmluZyBhbmQgY2xvc2luZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZS4gWW91IGNhbiB2aWV3IHN0b3JlIHRpbWluZ3MgaW4gdGhlICdBc3NpZ24gU3RvcmVzJyBzZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWxvdy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NhbWVyYXRhbXBlcmluZyddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtMiBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNoZWNrbGlzdCB3aWxsIHJ1biBiYXNlZCBvbiBlYWNoIHN0b3Jl4oCZcyBvcGVuaW5nIGFuZCBjbG9zaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBjYW4gdmlldyBvciBlZGl0IHN0b3JlIHRpbWluZ3MgaW4gdGhlICdBc3NpZ24gU3RvcmVzJyBzZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWxvdy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkIHRoZSB0ZW1wbGF0ZSwgdXBkYXRlIHRoZSB0aW1pbmdzLCBhbmQgYnVsayB1cGxvYWQgeW91clxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZFwiICpuZ0lmPVwiWydoYWxmc2h1dHRlciddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktMSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtZS0zXCI+IFN0YXJ0IERldGVjdGlvbiBmb3IgYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb24sIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTEgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuaGFsZnNodXR0ZXIuc2NoZWR1bGUuYWZ0ZXJPcGVuVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdGltZSBvZiBtaW51dGVzU2xvdFwiIFt2YWx1ZV09XCJ0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRpbWUgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1zdWItaGVhZGVyIG1lLTNcIj4gbWludXRlcyBhZnRlciBTdG9yZSBPcGVuIHRpbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1zdWItaGVhZGVyIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmhhbGZzaHV0dGVyLnNjaGVkdWxlLmR1cmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0aW1lIG9mIG1pbnV0ZXNTbG90XCIgW3ZhbHVlXT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGltZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbXMtM1wiPiBtaW51dGVzIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktMSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtZS0zXCI+IFN0YXJ0IERldGVjdGlvbiBCZWZvcmUsIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuaGFsZnNodXR0ZXIuc2NoZWR1bGUuYmVmb3JlQ2xvc2VUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0aW1lIG9mIG1pbnV0ZXNTbG90XCIgW3ZhbHVlXT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGltZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLXN1Yi1oZWFkZXIgbXMtM1wiPiBtaW51dGVzIGZyb20gU3RvcmUgQ2xvc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTQgbWItNFwiICpuZ0lmPVwiIVsnY2FtZXJhdGFtcGVyaW5nJywnaGFsZnNodXR0ZXInXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwic2NoZWRcIiBpZD1cInN0ZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNjaGVkdWxldHlwZVwiIHZhbHVlPVwic3RhbmRhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic21hbGwgZnctbWVkaXVtXCIgZm9yPVwic3RkXCI+U3RhbmRhcmQgU3RvcmUgT3BlbiAmIENsb3NlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cInNjaGVkXCIgaWQ9XCJjdXN0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzY2hlZHVsZXR5cGVcIiB2YWx1ZT1cImN1c3RvbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzbWFsbCBmdy1tZWRpdW1cIiBmb3I9XCJjdXN0b21cIj5DdXN0b20gVGltZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zIG1iLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2NoZWR1bGV0eXBlPT09J2N1c3RvbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bSB0ZXh0LWRhcmtcIj5TdGFydCBhdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1pbnB1dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGltZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHRpbWUtZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzY2hlZHVsZXN0YXJ0VGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNsb2NrXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bSB0ZXh0LWRhcmsgbXMtMlwiPkVuZHMgYXQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRpbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbCB0aW1lLWZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2NoZWR1bGVlbmRUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2xvY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3R2Y29tcGxpYW5jZScsJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCdib3hhbGVydCcsJ2VtcGxveWVlQ291bnQnLCd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBzdHlsZT1cImJvcmRlcjoxcHggc29saWQgI2NiY2RkMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtZS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPVwiZnctYm9sZCBzbWFsbCBtZS0zXCI+U2V0IHJlY3VycmVuY2U8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHR5cGUgPT0gJ3R2Y29tcGxpYW5jZScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWN1cnJlbmNlU3RhdHVzXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJlY3VycmVuY2VUeXBlID09ICdjdXN0b20nXCIgdmFsdWU9IFwiY3VzdG9tXCIgKGNoYW5nZSk9XCJ1cGRhdGVSZWN1cnJlbmNlKCRldmVudCwnY3VzdG9tJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCdib3hhbGVydCcsJ2VtcGxveWVlQ291bnQnLCd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48c3BhbiBjbGFzcz1cImZ3LWJvbGQgc21hbGwgbWUtM1wiPlJ1biBhdCBEeW5hbWljIEludGVydmFsczwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJlY3VycmVuY2VUeXBlID09ICdyYW5kb20nXCIgdmFsdWU9XCJyYW5kb21cIiAoY2hhbmdlKT1cInVwZGF0ZVJlY3VycmVuY2UoJGV2ZW50LCdyYW5kb20nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWN1cnJlbmNlU3RhdHVzIHx8IHJlY3VycmVuY2VUeXBlID09ICdjdXN0b20nXCIgY2xhc3M9XCJmYWRlLWluIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeS1ibHVlIGZ3LW1lZGl1bVwiPlJlcGVhdCBldmVyeTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY3VzdG9tLXNlbGVjdCBzaGFkb3ctbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWN1cnJlbmNldGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjFcIj4xPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiMlwiPjI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCIzXCI+Mzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjRcIj40PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiNVwiPjU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCI2XCI+Njwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjdcIj43PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiOFwiPjg8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnktYmx1ZSBmdy1tZWRpdW1cIj5Ib3Vyczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJvdyAzOiBTdW1tYXJ5IFRleHQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic3VtbWFyeS10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPY2N1cnMgZXZlcnkge3tyZWN1cnJlbmNldGltZX19IEhvdXJzIGJldHdlZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2NoZWR1bGV0eXBlIT09J2N1c3RvbSdcIj5TdG9yZSBPcGVuICYgQ2xvc2UgVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2NoZWR1bGV0eXBlPT09J2N1c3RvbSdcIj57e3NjaGVkdWxlc3RhcnRUaW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDigJN7e3NjaGVkdWxlZW5kVGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlY3VycmVuY2VUeXBlID09ICdyYW5kb20nXCIgY2xhc3M9XCJmYWRlLWluIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeS1ibHVlIGZ3LW1lZGl1bVwiPlJ1bjwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY3VzdG9tLXNlbGVjdCBzaGFkb3ctbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWN1cnJlbmNldGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjFcIj4xPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiMlwiPjI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCIzXCI+Mzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjRcIj40PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiNVwiPjU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCI2XCI+Njwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjdcIj43PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiOFwiPjg8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnktYmx1ZSBmdy1tZWRpdW1cIj5kZXRlY3Rpb24gcmFuZG9tbHkgd2l0aGluIHRoZSBzY2hlZHVsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJvdyAzOiBTdW1tYXJ5IFRleHQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic3VtbWFyeS10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPY2N1cnMge3tyZWN1cnJlbmNldGltZX19IHRpbWVzIGF0IHJhbmRvbSBpbnRlcnZhbHMgYmV0d2VlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzY2hlZHVsZXR5cGUhPT0nY3VzdG9tJ1wiPlN0b3JlIE9wZW4gJiBDbG9zZSBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzY2hlZHVsZXR5cGU9PT0nY3VzdG9tJ1wiPnt7c2NoZWR1bGVzdGFydFRpbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKAk3t7c2NoZWR1bGVlbmRUaW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2NhbWVyYXRhbXBlcmluZyddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmdcIj5EZXRlY3Rpb24gQ29uZmlndXJhdGlvbiA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG1iLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2wgY2hlY2tsaXN0IGxvZ2ljIGFuZCBhbGVydCBjb25maWd1cmF0aW9ucyA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTMgYm9yZGVyLWxpZ2h0LXN1YnRsZSByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwibWItMCBmdy1ib2xkIGZzLTRcIj5EZXRlY3QgQ2FtZXJhIGFuZ2xlIENoYW5nZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtMyBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5jYW1lcmFBbmdsZT8uZW5hYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2FtZXJhQW5nbGVjb25maWcoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0zXCI+V2hlbiBlbmFibGVkLCBhbiBhbGVydCBpcyB0cmlnZ2VyZWQgaWYgYW55IGNhbWVyYSBhbmdsZSBpcyBjaGFuZ2VkPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTMgYm9yZGVyLWxpZ2h0LXN1YnRsZSByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPklQIENoYW5nZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLklQQ2hhbmdlZC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFuIGFsZXJ0IGlzIHRyaWdnZXJlZCBpZiBJUCBpcyBDaGFuZ2VkPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTMgYm9yZGVyLWxpZ2h0LXN1YnRsZSByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPkNhbWVyYSBSZXNvbHV0aW9uIENoYW5nZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnJlc29sdXRpb25DaGFuZ2UuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0zXCI+V2hlbiBlbmFibGVkLCBhbiBhbGVydCBpcyB0cmlnZ2VyZWQgaWYgYW55IGNhbWVyYSByZXNvbHV0aW9uIGlzIGNoYW5nZWQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gRGV0ZWN0aW9uIENvbmZpZ3VyYXRpb24gZm9yIFN0b3JlIEh5Z2llbmUgTW9uaXRvcmluZyAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+RGV0ZWN0aW9uIENvbmZpZ3VyYXRpb24gPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbWItNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbCBjaGVja2xpc3QgbG9naWMgYW5kIGFsZXJ0IGNvbmZpZ3VyYXRpb25zIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPlRhYmxlIENsdXR0ZXIgRGV0ZWN0aW9uPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnRhYmxlQ2x1dHRlckRldGVjdGlvbi5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5haUNvbmZpZz8uaHlnaWVuZU1vbml0b3Jpbmc/LnRhYmxlQ2x1dHRlckRldGVjdGlvbj8uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFuIGFsZXJ0IGlzIHRyaWdnZXJlZCBpZiB0aGUgdGFibGUgaXMgZGV0ZWN0ZWQgdG8gYmUgY2x1dHRlcmVkIHdpdGggb2JqZWN0cyBmb3IgbG9uZ2VyIHRoYW4gdGhlIGNvbmZpZ3VyZWQgdGltZTwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktMTAgbWItNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPkRldGVjdHMsIElmIHRoZSB0YWJsZSBpcyBjbHV0dGVyZWQgZm9yIG1vcmUgdGhhbiB0aGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgdy1hdXRvIGN1c3RvbS1zZWxlY3RcIiBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3JpbmcudGFibGVDbHV0dGVyRGV0ZWN0aW9uLmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdGltZSBvZiBwZXJzb25EZXRlY3Rpb25UaW1lVGhyZXNob2xkXCIgW3ZhbHVlXT1cInRpbWVcIj57eyB0aW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+TWluczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+aW4gRGV0ZWN0aW9uIEFyZWFzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0zIGJvcmRlci1saWdodC1zdWJ0bGUgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cIm1iLTAgZnctYm9sZCBmcy00XCI+T2JqZWN0cyBEZXRlY3Rpb248L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3JpbmcuZmxvb3JEZXRlY3Rpb24uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8uYWlDb25maWc/Lmh5Z2llbmVNb25pdG9yaW5nPy5mbG9vckRldGVjdGlvbj8uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFuIGFsZXJ0IGlzIHRyaWdnZXJlZCBpZiBvYmplY3RzIGFyZSBkZXRlY3RlZCBmb3IgbG9uZ2VyIHRoYW4gdGhlIGNvbmZpZ3VyZWQgdGltZTwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktMTAgbWItNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPkRldGVjdCwgSWYgT2JqZWN0cyBhcmUgZm91bmQgZm9yIG1vcmUgdGhhbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LWF1dG8gY3VzdG9tLXNlbGVjdFwiIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5oeWdpZW5lTW9uaXRvcmluZy5mbG9vckRldGVjdGlvbi5kdXJhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRpbWUgb2YgcGVyc29uRGV0ZWN0aW9uVGltZVRocmVzaG9sZFwiIFt2YWx1ZV09XCJ0aW1lXCI+e3sgdGltZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPk1pbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPmluIERldGVjdGlvbiBBcmVhczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPlNwaWxsIG9yIERlYnJpcyBEZXRlY3Rpb248L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuaHlnaWVuZU1vbml0b3Jpbmcuc3BpbGxEZXRlY3Rpb24uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8uYWlDb25maWc/Lmh5Z2llbmVNb25pdG9yaW5nPy5zcGlsbERldGVjdGlvbj8uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFuIGFsZXJ0IGlzIHRyaWdnZXJlZCBpZiBTcGlsbCBvciBkZWJyaXMgYXJlIGRldGVjdGVkIGZvciBsb25nZXIgdGhhbiB0aGUgY29uZmlndXJlZCBkdXJhdGlvbjwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktMTAgbWItNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPkRldGVjdCwgSWYgU3BpbGwgb3IgRGVicmlzIGFyZSBkZXRlY3RlZCBmb3IgbW9yZSB0aGFuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctYXV0byBjdXN0b20tc2VsZWN0XCIgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmh5Z2llbmVNb25pdG9yaW5nLnNwaWxsRGV0ZWN0aW9uLmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdGltZSBvZiBwZXJzb25EZXRlY3Rpb25UaW1lVGhyZXNob2xkXCIgW3ZhbHVlXT1cInRpbWVcIj57eyB0aW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+TWluczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+aW4gRGV0ZWN0aW9uIEFyZWFzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ3VuYXR0ZW5kZWRkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+RGV0ZWN0aW9uIENvbmZpZ3VyYXRpb24gPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbWItNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbCBjaGVja2xpc3QgbG9naWMgYW5kIGFsZXJ0IGNvbmZpZ3VyYXRpb25zIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPlVuYXR0ZW5kZWQgRGV0ZWN0aW9uPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnVuYXR0ZW5kZWREZXRlY3Rpb24udW5hdHRlbmRlZERldGVjdGlvbi5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLnVuYXR0ZW5kZWREZXRlY3Rpb24udW5hdHRlbmRlZERldGVjdGlvbi5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgbWItM1wiPldoZW4gZW5hYmxlZCwgYWxlcnRzIGFyZSB0cmlnZ2VyZWQgYmFzZWQgb24gdGhlIGZsb29yIGhhemFyZHMgY29uZmlndXJlZCB0aW1lPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwib3BhY2l0eS0xMCBtYi00XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+RGV0ZWN0LCBJZiBPYmplY3RzIGFyZSBmb3VuZCBvbiB0aGUgZmxvb3IgZm9yIG1vcmUgdGhhbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LWF1dG8gY3VzdG9tLXNlbGVjdFwiIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy51bmF0dGVuZGVkRGV0ZWN0aW9uLnVuYXR0ZW5kZWREZXRlY3Rpb24uZHVyYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0aW1lIG9mIHBlcnNvbkRldGVjdGlvblRpbWVUaHJlc2hvbGRcIiBbdmFsdWVdPVwidGltZVwiPnt7IHRpbWUgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5NaW5zPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5pbiBEZXRlY3Rpb24gQXJlYXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBEZXRlY3Rpb24gQ29uZmlndXJhdGlvbiBmb3IgU3RhZmYgR3JvdXBpbmcgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGJnLXdoaXRlIHJvdW5kZWQtNCBweC03IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWydzdGFmZmdyb3VwaW5nJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZ1wiPkRldGVjdGlvbiBDb25maWd1cmF0aW9uIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG1iLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbCBjaGVja2xpc3QgbG9naWMgYW5kIGFsZXJ0IGNvbmZpZ3VyYXRpb25zIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQ291bnQgQWxlcnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPkNvdW50IEFsZXJ0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuY291bnRBbGVydC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuY291bnRBbGVydC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgbWItM1wiPkFsZXJ0IHdpbGwgYmUgc2VudCBiYXNlZCBvbiB0aGUgY29uZmlndXJlZCBTdGFmZiBtZW1iZXIgQ291bnQ8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTEwIG1iLTRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5BbGVydCwgSWYgbW9yZSB0aGFuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctYXV0byBjdXN0b20tc2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5jb3VudEFsZXJ0LnRocmVzaG9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGkgb2YgcGVyc29uRGV0ZWN0aW9uVGltZVRocmVzaG9sZFwiIFt2YWx1ZV09XCJpXCI+e3sgaSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPlN0YWZmIG1lbWJlcnMgYXJlIGRldGVjdGVkIGluIGEgZ3JvdXAgaW4gZGV0ZWN0aW9uIGFyZWFzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRpbWUgU3BlbnQgQWxlcnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPlRpbWUgU3BlbnQgQWxlcnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy50aW1lU3BlbnRBbGVydC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcudGltZVNwZW50QWxlcnQuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFsZXJ0cyB3aWxsIGJlIHNlbnQgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgdGltZSBzcGVudCBieSBncm91cDwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktMTAgbWItNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPkFsZXJ0LCBJZiBhIEdyb3VwIGRldGVjdGVkIFNwZW5kcyBtb3JlIHRoYW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgdy1hdXRvIGN1c3RvbS1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLnRpbWVTcGVudEFsZXJ0LmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiBwZXJzb25EZXRlY3Rpb25UaW1lVGhyZXNob2xkXCIgW3ZhbHVlXT1cImlcIj57eyBpIH19IG1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5pbiBEZXRlY3Rpb24gQXJlYXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSGliZXJuYXRpb24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPkhpYmVybmF0aW9uPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0YWZmR3JvdXBpbmcuaGliZXJuYXRpb24uZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdGFmZkdyb3VwaW5nLmhpYmVybmF0aW9uLmVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0zXCI+V2hlbiBlbmFibGVkLCBDaGVja2xpc3Qgd2lsbCBiZSBwYXVzZWQgZHVyaW5nIHRoaXMgdGltZTwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktMTAgbWItNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPlN0YXJ0cyBhdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGltZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHRpbWUtZmllbGQgdy1hdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5oaWJlcm5hdGlvbi5zdGFydFRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+RW5kczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGltZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHRpbWUtZmllbGQgdy1hdXRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RhZmZHcm91cGluZy5oaWJlcm5hdGlvbi5lbmRUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG10LTMgYm9yZGVyLWxpZ2h0LXN1YnRsZSByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwibWItMCBmdy1ib2xkIGZzLTRcIj5BbGVydCBDb29sZG93bjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtMyBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5zdGFmZkdyb3VwaW5nPy5hbGVydENvb2xkb3duRW5hYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlYWxlcnRjb29sZG93bmNvbmZpZygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhbGVydENvb2xkb3duRW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XYWl0IGZvciB0aGUgY29uZmlndXJlZCBpbnRlcnZhbCB0aW1lIGJlZm9yZSBzZW5kaW5nIGFub3RoZXIgYWxlcnQ8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTEwIG1iLTRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5TZW5kIG5ldyBhbGVydCBhZnRlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LWF1dG8gY3VzdG9tLXNlbGVjdDFcIiBbKG5nTW9kZWwpXT1cImFsZXJ0Q29vbGRvd25UaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj41IE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTBcIj4xMCBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjE1XCI+MTUgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyMFwiPjIwIE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMjVcIj4yNSBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjMwXCI+MzAgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPnNpbmNlIHRoZSBsYXN0IGFsZXJ0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gRGV0ZWN0aW9uIENvbmZpZ3VyYXRpb24gZm9yIEJveCBBbGVydCAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2JveGFsZXJ0J10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZ1wiPkRldGVjdGlvbiBDb25maWd1cmF0aW9uIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG1iLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbCBjaGVja2xpc3QgbG9naWMgYW5kIGFsZXJ0IGNvbmZpZ3VyYXRpb25zIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRW1wdHkgU2hlbGYgQWxlcnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXItbGlnaHQtc3VidGxlIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0wIGZ3LWJvbGQgZnMtNFwiPkVtcHR5IFNoZWxmIEFsZXJ0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LmVtcHR5U2hlbGZBbGVydC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LmVtcHR5U2hlbGZBbGVydC5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgbWItM1wiPldoZW4gZW5hYmxlZCwgYWxlcnRzIGFyZSB0cmlnZ2VyZWQgaWYgZW1wdHkgc2hlbGYgaXMgZGV0ZWN0ZWQ8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTEwIG1iLTRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5BbGVydCwgSWYgYW4gZW1wdHkgc2hlbGYgaXMgZGV0ZWN0ZWQgZm9yIG1vcmUgdGhhbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LWF1dG8gY3VzdG9tLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmJveEFsZXJ0LmVtcHR5U2hlbGZBbGVydC5kdXJhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRpbWUgb2Ygc2NoZWR1bGVUaW1lQ29uZmlnXCIgW3ZhbHVlXT1cInRpbWVcIj57eyB0aW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+TWluczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+aW4gRGV0ZWN0aW9uIEFyZWFzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIERldGVjdGlvbiBDb25maWd1cmF0aW9uIGZvciBFbXBsb3llZSBDb3VudCAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2VtcGxveWVlQ291bnQnXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+RGV0ZWN0aW9uIENvbmZpZ3VyYXRpb24gPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbWItNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sIGNoZWNrbGlzdCBsb2dpYyBhbmQgYWxlcnQgY29uZmlndXJhdGlvbnMgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWxpZ2h0IGJvcmRlciByb3VuZGVkLTMgcHgtNCBweS0zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgOHY0bTAgNGguMDFNMjIgMTJjMCA1LjUyMy00LjQ3NyAxMC0xMCAxMFMyIDE3LjUyMyAyIDEyIDYuNDc3IDIgMTIgMnMxMCA0LjQ3NyAxMCAxMHpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtIHRleHQtc2Vjb25kYXJ5XCI+RW1wbG95ZWUgY291bnQgaXMgZGV0ZWN0ZWQgYmFzZWQgb24gY29uZmlndXJlZCB0aW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIERldGVjdGlvbiBBcmVhcyAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJywnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdxdWV1ZWFsZXJ0JywnY2FtZXJhdGFtcGVyaW5nJywnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsJ3VuaWZvcm1kZXRlY3Rpb24nLCdzdGFmZmdyb3VwaW5nJywnYm94YWxlcnQnLCdlbXBsb3llZUNvdW50JywgJ3VuYXR0ZW5kZWRkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZ1wiPkRldGVjdGlvbiBBcmVhc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm14LTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODc0XzY2MTk1KVwiPiA8cGF0aCBkPVwiTTguMDAwMTYgMTAuNjY3M1Y4LjAwMDY1TTguMDAwMTYgNS4zMzM5OEg4LjAwNjgzTTE0LjY2NjggOC4wMDA2NUMxNC42NjY4IDExLjY4MjYgMTEuNjgyMSAxNC42NjczIDguMDAwMTYgMTQuNjY3M0M0LjMxODI2IDE0LjY2NzMgMS4zMzM1IDExLjY4MjYgMS4zMzM1IDguMDAwNjVDMS4zMzM1IDQuMzE4NzUgNC4zMTgyNiAxLjMzMzk4IDguMDAwMTYgMS4zMzM5OEMxMS42ODIxIDEuMzMzOTggMTQuNjY2OCA0LjMxODc1IDE0LjY2NjggOC4wMDA2NVpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+IDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+IDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NzRfNjYxOTVcIj4gPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz4gPC9jbGlwUGF0aD4gPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViIG1iLTRcIiAqbmdJZj1cIlsnbW9iaWxldXNhZ2VkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0ZWN0IG1vYmlsZSB1c2FnZSBleGNlcHQgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbWItNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnb3V0c2lkZWJ1c2luZXNzaG91cnNxdWV1ZXRyYWNraW5nJywnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdxdWV1ZWFsZXJ0JywnY2FtZXJhdGFtcGVyaW5nJywnZW1wbG95ZWVDb3VudCcsICd1bmF0dGVuZGVkZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrbGlzdCB3aWxsIHJ1biBvbiB0aGlzIFpvbmUgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8ucHJvZHVjdC5pbmNsdWRlcygndGFuZ29ab25lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJ6b25lTGlzdFwiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5haUNvbmZpZz8uZGV0ZWN0aW9uQXJlYVwiIChzZWxlY3RlZExpc3QpPVwidXBkYXRlWm9uZSgkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMiBwLTMgcm91bmRlZFwiIHN0eWxlPVwibWluLWhlaWdodDogNDRweDtcIj4gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHpvbmVMaXN0O2xldCBpPWluZGV4XCI+e3tpdGVtLm5hbWV9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkIG14LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhY29uZmlnRGF0YT8ucHJvZHVjdC5pbmNsdWRlcygndGFuZ29ab25lJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FyZCBtdC0zIHAtMyBib3JkZXIgYm9yZGVyLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI3MFwiIGhlaWdodD1cIjcwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA5MCA5MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjc1LjY2NjZcIiBoZWlnaHQ9XCI3NS42NjY2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ4PVwiMzcuODMzM1wiIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjdcIiB5PVwiN1wiIHdpZHRoPVwiNzUuNjY2NlwiIGhlaWdodD1cIjc1LjY2NjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcng9XCIzNy44MzMzXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjEzLjUxMTlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00NS40Mjg3IDM3LjkxNTdMNDQuODY4MyAzOC4yNDE2TDQ1LjE3MDkgMzguODE1TDQ3LjcyNDggNDMuNjUzOUM0OC4zMzMzIDQ0LjgwNjggNDkuODY5NyA0NS4xMDU4IDUwLjg5NjEgNDQuMzI5MUw1MC44OTY1IDQ0LjMyODhMNTQuODY3OCA0MS4zMTgxTDU1LjI0ODUgNDEuMDI5NUw1NS4xOTEyIDQxLjMyOEw1My4xNTQ2IDUxLjk0MjFDNTIuOTcxMSA1Mi44ODg5IDUyLjA4NzkgNTMuNjE2MSA1MS4wMDk5IDUzLjYxNjFIMzguNjU0OUMzNy41NzIyIDUzLjYxNjEgMzYuNjkwMyA1Mi44ODQ4IDM2LjUxMDYgNTEuOTQzOUwzNi41MTA1IDUxLjk0MzNMMzQuNDczNiA0MS4zMjhMMzQuNDE2MyA0MS4wMjk1TDM0Ljc5NyA0MS4zMTgxTDM4Ljc2ODMgNDQuMzI4OEwzOC43Njg3IDQ0LjMyOTFDMzkuNzk1MSA0NS4xMDU4IDQxLjMzMTUgNDQuODA2OCA0MS45NCA0My42NTM5TDQ0LjQ5MzkgMzguODE1TDQ0Ljc5NjUgMzguMjQxNkw0NC4yMzYxIDM3LjkxNTdDNDMuOTE3NCAzNy43MzAyIDQzLjcyNTIgMzcuNDEwNyA0My43MjUyIDM3LjA2NEM0My43MjUyIDM2LjUzNzkgNDQuMTg1NiAzNi4wNTA2IDQ0LjgzMjQgMzYuMDUwNkM0NS40NzkyIDM2LjA1MDYgNDUuOTM5NiAzNi41Mzc5IDQ1LjkzOTYgMzcuMDY0QzQ1LjkzOTYgMzcuNDA3NCA0NS43NDY1IDM3LjczMDggNDUuNDI4NyAzNy45MTU3Wk01NS44NTQ3IDQwLjc3OThINTUuMzE5N0w1NC45OTAzIDQwLjM2MTdDNTQuODU0NCA0MC4xODkyIDU0Ljc3ODcgMzkuOTg0IDU0Ljc3ODcgMzkuNzY2NEM1NC43Nzg3IDM5LjI0MDMgNTUuMjM5MSAzOC43NTMgNTUuODg1OSAzOC43NTNDNTYuNTMyNiAzOC43NTMgNTYuOTkzMSAzOS4yNDAzIDU2Ljk5MzEgMzkuNzY2NEM1Ni45OTMxIDQwLjI5MjUgNTYuNTMyNiA0MC43Nzk4IDU1Ljg4NTkgNDAuNzc5OEg1NS44ODU4SDU1Ljg4NThINTUuODg1N0g1NS44ODU3SDU1Ljg4NTZINTUuODg1Nkg1NS44ODU1SDU1Ljg4NTVINTUuODg1NEg1NS44ODU0SDU1Ljg4NTNINTUuODg1Mkg1NS44ODUySDU1Ljg4NTFINTUuODg1MUg1NS44ODVINTUuODg1SDU1Ljg4NDlINTUuODg0OUg1NS44ODQ4SDU1Ljg4NDhINTUuODg0N0g1NS44ODQ3SDU1Ljg4NDZINTUuODg0NUg1NS44ODQ1SDU1Ljg4NDRINTUuODg0NEg1NS44ODQzSDU1Ljg4NDNINTUuODg0Mkg1NS44ODQySDU1Ljg4NDFINTUuODg0SDU1Ljg4NEg1NS44ODM5SDU1Ljg4MzlINTUuODgzOEg1NS44ODM4SDU1Ljg4MzdINTUuODgzN0g1NS44ODM2SDU1Ljg4MzVINTUuODgzNUg1NS44ODM0SDU1Ljg4MzRINTUuODgzM0g1NS44ODMzSDU1Ljg4MzJINTUuODgzMUg1NS44ODMxSDU1Ljg4M0g1NS44ODNINTUuODgyOUg1NS44ODI5SDU1Ljg4MjhINTUuODgyN0g1NS44ODI3SDU1Ljg4MjZINTUuODgyNkg1NS44ODI1SDU1Ljg4MjVINTUuODgyNEg1NS44ODIzSDU1Ljg4MjNINTUuODgyMkg1NS44ODIySDU1Ljg4MjFINTUuODgyMUg1NS44ODJINTUuODgxOUg1NS44ODE5SDU1Ljg4MThINTUuODgxOEg1NS44ODE3SDU1Ljg4MTZINTUuODgxNkg1NS44ODE1SDU1Ljg4MTVINTUuODgxNEg1NS44ODEzSDU1Ljg4MTNINTUuODgxMkg1NS44ODEySDU1Ljg4MTFINTUuODgxMUg1NS44ODFINTUuODgwOUg1NS44ODA5SDU1Ljg4MDhINTUuODgwOEg1NS44ODA3SDU1Ljg4MDZINTUuODgwNkg1NS44ODA1SDU1Ljg4MDVINTUuODgwNEg1NS44ODAzSDU1Ljg4MDNINTUuODgwMkg1NS44ODAySDU1Ljg4MDFINTUuODhINTUuODhINTUuODc5OUg1NS44Nzk4SDU1Ljg3OThINTUuODc5N0g1NS44Nzk3SDU1Ljg3OTZINTUuODc5NUg1NS44Nzk1SDU1Ljg3OTRINTUuODc5NEg1NS44NzkzSDU1Ljg3OTJINTUuODc5Mkg1NS44NzkxSDU1Ljg3OTFINTUuODc5SDU1Ljg3ODlINTUuODc4OUg1NS44Nzg4SDU1Ljg3ODdINTUuODc4N0g1NS44Nzg2SDU1Ljg3ODZINTUuODc4NUg1NS44Nzg0SDU1Ljg3ODRINTUuODc4M0g1NS44NzgySDU1Ljg3ODJINTUuODc4MUg1NS44NzgxSDU1Ljg3OEg1NS44Nzc5SDU1Ljg3NzlINTUuODc3OEg1NS44Nzc3SDU1Ljg3NzdINTUuODc3Nkg1NS44Nzc2SDU1Ljg3NzVINTUuODc3NEg1NS44Nzc0SDU1Ljg3NzNINTUuODc3Mkg1NS44NzcySDU1Ljg3NzFINTUuODc3MUg1NS44NzdINTUuODc2OUg1NS44NzY5SDU1Ljg3NjhINTUuODc2N0g1NS44NzY3SDU1Ljg3NjZINTUuODc2Nkg1NS44NzY1SDU1Ljg3NjRINTUuODc2NEg1NS44NzYzSDU1Ljg3NjJINTUuODc2Mkg1NS44NzYxSDU1Ljg3Nkg1NS44NzZINTUuODc1OUg1NS44NzU5SDU1Ljg3NThINTUuODc1N0g1NS44NzU3SDU1Ljg3NTZINTUuODc1NUg1NS44NzU1SDU1Ljg3NTRINTUuODc1M0g1NS44NzUzSDU1Ljg3NTJINTUuODc1MUg1NS44NzUxSDU1Ljg3NUg1NS44NzVINTUuODc0OUg1NS44NzQ4SDU1Ljg3NDhINTUuODc0N0g1NS44NzQ2SDU1Ljg3NDZINTUuODc0NUg1NS44NzQ0SDU1Ljg3NDRINTUuODc0M0g1NS44NzQySDU1Ljg3NDJINTUuODc0MUg1NS44NzQxSDU1Ljg3NEg1NS44NzM5SDU1Ljg3MzlINTUuODczOEg1NS44NzM3SDU1Ljg3MzdINTUuODczNkg1NS44NzM1SDU1Ljg3MzVINTUuODczNEg1NS44NzMzSDU1Ljg3MzNINTUuODczMkg1NS44NzMxSDU1Ljg3MzFINTUuODczSDU1Ljg3M0g1NS44NzI5SDU1Ljg3MjhINTUuODcyOEg1NS44NzI3SDU1Ljg3MjZINTUuODcyNkg1NS44NzI1SDU1Ljg3MjRINTUuODcyNEg1NS44NzIzSDU1Ljg3MjJINTUuODcyMkg1NS44NzIxSDU1Ljg3Mkg1NS44NzJINTUuODcxOUg1NS44NzE4SDU1Ljg3MThINTUuODcxN0g1NS44NzE3SDU1Ljg3MTZINTUuODcxNUg1NS44NzE1SDU1Ljg3MTRINTUuODcxM0g1NS44NzEzSDU1Ljg3MTJINTUuODcxMUg1NS44NzExSDU1Ljg3MUg1NS44NzA5SDU1Ljg3MDlINTUuODcwOEg1NS44NzA3SDU1Ljg3MDdINTUuODcwNkg1NS44NzA1SDU1Ljg3MDVINTUuODcwNEg1NS44NzAzSDU1Ljg3MDNINTUuODcwMkg1NS44NzAxSDU1Ljg3MDFINTUuODdINTUuODdINTUuODY5OUg1NS44Njk4SDU1Ljg2OThINTUuODY5N0g1NS44Njk2SDU1Ljg2OTZINTUuODY5NUg1NS44Njk0SDU1Ljg2OTRINTUuODY5M0g1NS44NjkySDU1Ljg2OTJINTUuODY5MUg1NS44NjlINTUuODY5SDU1Ljg2ODlINTUuODY4OEg1NS44Njg4SDU1Ljg2ODdINTUuODY4Nkg1NS44Njg2SDU1Ljg2ODVINTUuODY4NUg1NS44Njg0SDU1Ljg2ODNINTUuODY4M0g1NS44NjgySDU1Ljg2ODFINTUuODY4MUg1NS44NjhINTUuODY3OUg1NS44Njc5SDU1Ljg2NzhINTUuODY3N0g1NS44Njc3SDU1Ljg2NzZINTUuODY3NUg1NS44Njc1SDU1Ljg2NzRINTUuODY3M0g1NS44NjczSDU1Ljg2NzJINTUuODY3Mkg1NS44NjcxSDU1Ljg2N0g1NS44NjdINTUuODY2OUg1NS44NjY4SDU1Ljg2NjhINTUuODY2N0g1NS44NjY2SDU1Ljg2NjZINTUuODY2NUg1NS44NjY0SDU1Ljg2NjRINTUuODY2M0g1NS44NjYySDU1Ljg2NjJINTUuODY2MUg1NS44NjYxSDU1Ljg2Nkg1NS44NjU5SDU1Ljg2NTlINTUuODY1OEg1NS44NjU3SDU1Ljg2NTdINTUuODY1Nkg1NS44NjU1SDU1Ljg2NTVINTUuODY1NEg1NS44NjUzSDU1Ljg2NTNINTUuODY1Mkg1NS44NjUySDU1Ljg2NTFINTUuODY1SDU1Ljg2NUg1NS44NjQ5SDU1Ljg2NDhINTUuODY0OEg1NS44NjQ3SDU1Ljg2NDZINTUuODY0Nkg1NS44NjQ1SDU1Ljg2NDVINTUuODY0NEg1NS44NjQzSDU1Ljg2NDNINTUuODY0Mkg1NS44NjQxSDU1Ljg2NDFINTUuODY0SDU1Ljg2MzlINTUuODYzOUg1NS44NjM4SDU1Ljg2MzhINTUuODYzN0g1NS44NjM2SDU1Ljg2MzZINTUuODYzNUg1NS44NjM0SDU1Ljg2MzRINTUuODYzM0g1NS44NjMySDU1Ljg2MzJINTUuODYzMUg1NS44NjMxSDU1Ljg2M0g1NS44NjI5SDU1Ljg2MjlINTUuODYyOEg1NS44NjI3SDU1Ljg2MjdINTUuODYyNkg1NS44NjI2SDU1Ljg2MjVINTUuODYyNEg1NS44NjI0SDU1Ljg2MjNINTUuODYyMkg1NS44NjIySDU1Ljg2MjFINTUuODYyMUg1NS44NjJINTUuODYxOUg1NS44NjE5SDU1Ljg2MThINTUuODYxOEg1NS44NjE3SDU1Ljg2MTZINTUuODYxNkg1NS44NjE1SDU1Ljg2MTRINTUuODYxNEg1NS44NjEzSDU1Ljg2MTNINTUuODYxMkg1NS44NjExSDU1Ljg2MTFINTUuODYxSDU1Ljg2MUg1NS44NjA5SDU1Ljg2MDhINTUuODYwOEg1NS44NjA3SDU1Ljg2MDZINTUuODYwNkg1NS44NjA1SDU1Ljg2MDVINTUuODYwNEg1NS44NjAzSDU1Ljg2MDNINTUuODYwMkg1NS44NjAySDU1Ljg2MDFINTUuODZINTUuODZINTUuODU5OUg1NS44NTk5SDU1Ljg1OThINTUuODU5N0g1NS44NTk3SDU1Ljg1OTZINTUuODU5Nkg1NS44NTk1SDU1Ljg1OTRINTUuODU5NEg1NS44NTkzSDU1Ljg1OTNINTUuODU5Mkg1NS44NTkxSDU1Ljg1OTFINTUuODU5SDU1Ljg1OUg1NS44NTg5SDU1Ljg1ODlINTUuODU4OEg1NS44NTg3SDU1Ljg1ODdINTUuODU4Nkg1NS44NTg2SDU1Ljg1ODVINTUuODU4NEg1NS44NTg0SDU1Ljg1ODNINTUuODU4M0g1NS44NTgySDU1Ljg1ODJINTUuODU4MUg1NS44NThINTUuODU4SDU1Ljg1NzlINTUuODU3OUg1NS44NTc4SDU1Ljg1NzhINTUuODU3N0g1NS44NTc2SDU1Ljg1NzZINTUuODU3NUg1NS44NTc1SDU1Ljg1NzRINTUuODU3NEg1NS44NTczSDU1Ljg1NzJINTUuODU3Mkg1NS44NTcxSDU1Ljg1NzFINTUuODU3SDU1Ljg1N0g1NS44NTY5SDU1Ljg1NjhINTUuODU2OEg1NS44NTY3SDU1Ljg1NjdINTUuODU2Nkg1NS44NTY2SDU1Ljg1NjVINTUuODU2NUg1NS44NTY0SDU1Ljg1NjNINTUuODU2M0g1NS44NTYySDU1Ljg1NjJINTUuODU2MUg1NS44NTYxSDU1Ljg1Nkg1NS44NTZINTUuODU1OUg1NS44NTU5SDU1Ljg1NThINTUuODU1N0g1NS44NTU3SDU1Ljg1NTZINTUuODU1Nkg1NS44NTU1SDU1Ljg1NTVINTUuODU1NEg1NS44NTU0SDU1Ljg1NTNINTUuODU1M0g1NS44NTUySDU1Ljg1NTJINTUuODU1MUg1NS44NTVINTUuODU1SDU1Ljg1NDlINTUuODU0OUg1NS44NTQ4SDU1Ljg1NDhINTUuODU0N0g1NS44NTQ3Wk0zNC42NzQ1IDQwLjM2MTdMMzQuMzQ1MSA0MC43Nzk4SDMzLjgxMDFIMzMuODEwMUgzMy44MUgzMy44MUgzMy44MDk5SDMzLjgwOTlIMzMuODA5OEgzMy44MDk3SDMzLjgwOTdIMzMuODA5NkgzMy44MDk2SDMzLjgwOTVIMzMuODA5NUgzMy44MDk0SDMzLjgwOTRIMzMuODA5M0gzMy44MDkzSDMzLjgwOTJIMzMuODA5MkgzMy44MDkxSDMzLjgwOUgzMy44MDlIMzMuODA4OUgzMy44MDg5SDMzLjgwODhIMzMuODA4OEgzMy44MDg3SDMzLjgwODdIMzMuODA4NkgzMy44MDg2SDMzLjgwODVIMzMuODA4NEgzMy44MDg0SDMzLjgwODNIMzMuODA4M0gzMy44MDgySDMzLjgwODJIMzMuODA4MUgzMy44MDgxSDMzLjgwOEgzMy44MDc5SDMzLjgwNzlIMzMuODA3OEgzMy44MDc4SDMzLjgwNzdIMzMuODA3N0gzMy44MDc2SDMzLjgwNzZIMzMuODA3NUgzMy44MDc0SDMzLjgwNzRIMzMuODA3M0gzMy44MDczSDMzLjgwNzJIMzMuODA3MkgzMy44MDcxSDMzLjgwN0gzMy44MDdIMzMuODA2OUgzMy44MDY5SDMzLjgwNjhIMzMuODA2OEgzMy44MDY3SDMzLjgwNjZIMzMuODA2NkgzMy44MDY1SDMzLjgwNjVIMzMuODA2NEgzMy44MDYzSDMzLjgwNjNIMzMuODA2MkgzMy44MDYySDMzLjgwNjFIMzMuODA2MUgzMy44MDZIMzMuODA1OUgzMy44MDU5SDMzLjgwNThIMzMuODA1OEgzMy44MDU3SDMzLjgwNTZIMzMuODA1NkgzMy44MDU1SDMzLjgwNTVIMzMuODA1NEgzMy44MDUzSDMzLjgwNTNIMzMuODA1MkgzMy44MDUySDMzLjgwNTFIMzMuODA1SDMzLjgwNUgzMy44MDQ5SDMzLjgwNDlIMzMuODA0OEgzMy44MDQ3SDMzLjgwNDdIMzMuODA0NkgzMy44MDQ2SDMzLjgwNDVIMzMuODA0NEgzMy44MDQ0SDMzLjgwNDNIMzMuODA0M0gzMy44MDQySDMzLjgwNDFIMzMuODA0MUgzMy44MDRIMzMuODA0SDMzLjgwMzlIMzMuODAzOEgzMy44MDM4SDMzLjgwMzdIMzMuODAzN0gzMy44MDM2SDMzLjgwMzVIMzMuODAzNUgzMy44MDM0SDMzLjgwMzNIMzMuODAzM0gzMy44MDMySDMzLjgwMzJIMzMuODAzMUgzMy44MDNIMzMuODAzSDMzLjgwMjlIMzMuODAyOUgzMy44MDI4SDMzLjgwMjdIMzMuODAyN0gzMy44MDI2SDMzLjgwMjVIMzMuODAyNUgzMy44MDI0SDMzLjgwMjRIMzMuODAyM0gzMy44MDIySDMzLjgwMjJIMzMuODAyMUgzMy44MDJIMzMuODAySDMzLjgwMTlIMzMuODAxOUgzMy44MDE4SDMzLjgwMTdIMzMuODAxN0gzMy44MDE2SDMzLjgwMTVIMzMuODAxNUgzMy44MDE0SDMzLjgwMTRIMzMuODAxM0gzMy44MDEySDMzLjgwMTJIMzMuODAxMUgzMy44MDFIMzMuODAxSDMzLjgwMDlIMzMuODAwOEgzMy44MDA4SDMzLjgwMDdIMzMuODAwN0gzMy44MDA2SDMzLjgwMDVIMzMuODAwNUgzMy44MDA0SDMzLjgwMDNIMzMuODAwM0gzMy44MDAySDMzLjgwMDFIMzMuODAwMUgzMy44SDMzLjhIMzMuNzk5OUgzMy43OTk4SDMzLjc5OThIMzMuNzk5N0gzMy43OTk2SDMzLjc5OTZIMzMuNzk5NUgzMy43OTk0SDMzLjc5OTRIMzMuNzk5M0gzMy43OTkzSDMzLjc5OTJIMzMuNzk5MUgzMy43OTkxSDMzLjc5OUgzMy43OTg5SDMzLjc5ODlIMzMuNzk4OEgzMy43OTg3SDMzLjc5ODdIMzMuNzk4NkgzMy43OTg1SDMzLjc5ODVIMzMuNzk4NEgzMy43OTg0SDMzLjc5ODNIMzMuNzk4MkgzMy43OTgySDMzLjc5ODFIMzMuNzk4SDMzLjc5OEgzMy43OTc5SDMzLjc5NzhIMzMuNzk3OEgzMy43OTc3SDMzLjc5NzZIMzMuNzk3NkgzMy43OTc1SDMzLjc5NzRIMzMuNzk3NEgzMy43OTczSDMzLjc5NzNIMzMuNzk3MkgzMy43OTcxSDMzLjc5NzFIMzMuNzk3SDMzLjc5NjlIMzMuNzk2OUgzMy43OTY4SDMzLjc5NjdIMzMuNzk2N0gzMy43OTY2SDMzLjc5NjVIMzMuNzk2NUgzMy43OTY0SDMzLjc5NjNIMzMuNzk2M0gzMy43OTYySDMzLjc5NjFIMzMuNzk2MUgzMy43OTZIMzMuNzk1OUgzMy43OTU5SDMzLjc5NThIMzMuNzk1OEgzMy43OTU3SDMzLjc5NTZIMzMuNzk1NkgzMy43OTU1SDMzLjc5NTRIMzMuNzk1NEgzMy43OTUzSDMzLjc5NTJIMzMuNzk1MkgzMy43OTUxSDMzLjc5NUgzMy43OTVIMzMuNzk0OUgzMy43OTQ4SDMzLjc5NDhIMzMuNzk0N0gzMy43OTQ2SDMzLjc5NDZIMzMuNzk0NUgzMy43OTQ0SDMzLjc5NDRIMzMuNzk0M0gzMy43OTQzSDMzLjc5NDJIMzMuNzk0MUgzMy43OTQxSDMzLjc5NEgzMy43OTM5SDMzLjc5MzlIMzMuNzkzOEgzMy43OTM3SDMzLjc5MzdIMzMuNzkzNkgzMy43OTM1SDMzLjc5MzVIMzMuNzkzNEgzMy43OTMzSDMzLjc5MzNIMzMuNzkzMkgzMy43OTMxSDMzLjc5MzFIMzMuNzkzSDMzLjc5MjlIMzMuNzkyOUgzMy43OTI4SDMzLjc5MjhIMzMuNzkyN0gzMy43OTI2SDMzLjc5MjZIMzMuNzkyNUgzMy43OTI0SDMzLjc5MjRIMzMuNzkyM0gzMy43OTIySDMzLjc5MjJIMzMuNzkyMUgzMy43OTJIMzMuNzkySDMzLjc5MTlIMzMuNzkxOEgzMy43OTE4SDMzLjc5MTdIMzMuNzkxNkgzMy43OTE2SDMzLjc5MTVIMzMuNzkxNUgzMy43OTE0SDMzLjc5MTNIMzMuNzkxM0gzMy43OTEySDMzLjc5MTFIMzMuNzkxMUgzMy43OTFIMzMuNzkwOUgzMy43OTA5SDMzLjc5MDhIMzMuNzkwN0gzMy43OTA3SDMzLjc5MDZIMzMuNzkwNUgzMy43OTA1SDMzLjc5MDRIMzMuNzkwNEgzMy43OTAzSDMzLjc5MDJIMzMuNzkwMkgzMy43OTAxSDMzLjc5SDMzLjc5SDMzLjc4OTlIMzMuNzg5OEgzMy43ODk4SDMzLjc4OTdIMzMuNzg5NkgzMy43ODk2SDMzLjc4OTVIMzMuNzg5NUgzMy43ODk0SDMzLjc4OTNIMzMuNzg5M0gzMy43ODkySDMzLjc4OTFIMzMuNzg5MUgzMy43ODlIMzMuNzg4OUgzMy43ODg5SDMzLjc4ODhIMzMuNzg4N0gzMy43ODg3SDMzLjc4ODZIMzMuNzg4NkgzMy43ODg1SDMzLjc4ODRIMzMuNzg4NEgzMy43ODgzSDMzLjc4ODJIMzMuNzg4MkgzMy43ODgxSDMzLjc4ODFIMzMuNzg4SDMzLjc4NzlIMzMuNzg3OUgzMy43ODc4SDMzLjc4NzdIMzMuNzg3N0gzMy43ODc2SDMzLjc4NzVIMzMuNzg3NUgzMy43ODc0SDMzLjc4NzRIMzMuNzg3M0gzMy43ODcySDMzLjc4NzJIMzMuNzg3MUgzMy43ODdIMzMuNzg3SDMzLjc4NjlIMzMuNzg2OUgzMy43ODY4SDMzLjc4NjdIMzMuNzg2N0gzMy43ODY2SDMzLjc4NjVIMzMuNzg2NUgzMy43ODY0SDMzLjc4NjRIMzMuNzg2M0gzMy43ODYySDMzLjc4NjJIMzMuNzg2MUgzMy43ODZIMzMuNzg2SDMzLjc4NTlIMzMuNzg1OUgzMy43ODU4SDMzLjc4NTdIMzMuNzg1N0gzMy43ODU2SDMzLjc4NTZIMzMuNzg1NUgzMy43ODU0SDMzLjc4NTRIMzMuNzg1M0gzMy43ODUySDMzLjc4NTJIMzMuNzg1MUgzMy43ODUxSDMzLjc4NUgzMy43ODQ5SDMzLjc4NDlIMzMuNzg0OEgzMy43ODQ4SDMzLjc4NDdIMzMuNzg0NkgzMy43ODQ2SDMzLjc4NDVIMzMuNzg0NUgzMy43ODQ0SDMzLjc4NDNIMzMuNzg0M0gzMy43ODQySDMzLjc4NDJIMzMuNzg0MUgzMy43ODRIMzMuNzg0SDMzLjc4MzlIMzMuNzgzOUgzMy43ODM4SDMzLjc4MzdIMzMuNzgzN0gzMy43ODM2SDMzLjc4MzZIMzMuNzgzNUgzMy43ODM0SDMzLjc4MzRIMzMuNzgzM0gzMy43ODMzSDMzLjc4MzJIMzMuNzgzMUgzMy43ODMxSDMzLjc4M0gzMy43ODNIMzMuNzgyOUgzMy43ODI5SDMzLjc4MjhIMzMuNzgyN0gzMy43ODI3SDMzLjc4MjZIMzMuNzgyNkgzMy43ODI1SDMzLjc4MjRIMzMuNzgyNEgzMy43ODIzSDMzLjc4MjNIMzMuNzgyMkgzMy43ODIySDMzLjc4MjFIMzMuNzgySDMzLjc4MkgzMy43ODE5SDMzLjc4MTlIMzMuNzgxOEgzMy43ODE4SDMzLjc4MTdIMzMuNzgxNkgzMy43ODE2SDMzLjc4MTVIMzMuNzgxNUgzMy43ODE0SDMzLjc4MTRIMzMuNzgxM0gzMy43ODEySDMzLjc4MTJIMzMuNzgxMUgzMy43ODExSDMzLjc4MUgzMy43ODFIMzMuNzgwOUgzMy43ODA5SDMzLjc4MDhIMzMuNzgwN0gzMy43ODA3SDMzLjc4MDZIMzMuNzgwNkgzMy43ODA1SDMzLjc4MDVIMzMuNzgwNEgzMy43ODA0SDMzLjc4MDNIMzMuNzgwM0gzMy43ODAySDMzLjc4MDFIMzMuNzgwMUgzMy43OEgzMy43OEgzMy43Nzk5SDMzLjc3OTlIMzMuNzc5OEgzMy43Nzk4SDMzLjc3OTdIMzMuNzc5N0gzMy43Nzk2SDMzLjc3OTVIMzMuNzc5NUgzMy43Nzk0SDMzLjc3OTRIMzMuNzc5M0gzMy43NzkzSDMzLjc3OTJIMzMuNzc5MkgzMy43NzkxSDMzLjc3OTFIMzMuNzc5SDMzLjc3OUgzMy43Nzg5QzMzLjEzMjEgNDAuNzc5OCAzMi42NzE3IDQwLjI5MjUgMzIuNjcxNyAzOS43NjY0QzMyLjY3MTcgMzkuMjQwMyAzMy4xMzIxIDM4Ljc1MyAzMy43Nzg5IDM4Ljc1M0MzNC40MjU3IDM4Ljc1MyAzNC44ODYxIDM5LjI0MDMgMzQuODg2MSAzOS43NjY0QzM0Ljg4NjEgMzkuOTg0IDM0LjgxMDMgNDAuMTg5MiAzNC42NzQ1IDQwLjM2MTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjM1MTE5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+RXhjbHVkZSBab25lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInpvbmUtc3Vic2NyaXB0aW9uXCI+VG8gYWRkIGFuIEV4Y2x1ZGVkIFpvbmUgaW5zaWRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzdG9yZSwgcGxlYXNlIHVwZ3JhZGUgeW91ciBwbGFuIGFuZCBzdWJzY3JpYmUgdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFuZ29FeWUuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc2V0dGluZ3MvcGF5bWVudC1zdWJzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gYnRuIGJ0bi1zbSBweS0zIGJ0bi1wcmltYXJ5IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+VXBncmFkZSBwbGFuPC9zcGFuPjxzcGFuPjxzdmcgY2xhc3M9XCJtcy0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4zNjA3IDYuMTQ0NTNDMTEuNzM2NyA1LjkyNTc4IDExLjk4NzQgNS41Mjg5MSAxMS45ODc0IDUuMDgyMDNDMTEuOTg3NCA0LjM5MTQxIDExLjM5NyAzLjgzMjAzIDEwLjY2OCAzLjgzMjAzQzkuOTM4OTggMy44MzIwMyA5LjM0ODUyIDQuMzkxNDEgOS4zNDg1MiA1LjA4MjAzQzkuMzQ4NTIgNS41MzIwMyA5LjU5OTIyIDUuOTI1NzggOS45NzUyNiA2LjE0NDUzTDguMDg1MTYgOS43MjU3OEM3Ljc4NDk4IDEwLjI5NDUgNy4wMDY1MSAxMC40NTcgNi40ODIwMyAxMC4wNjAyTDMuNTQyOTcgNy44MzIwM0MzLjcwNzkgNy42MjI2NiAzLjgwNjg2IDcuMzYzMjggMy44MDY4NiA3LjA4MjAzQzMuODA2ODYgNi4zOTE0MSAzLjIxNjQxIDUuODMyMDMgMi40ODc0MSA1LjgzMjAzQzEuNzU4NDIgNS44MzIwMyAxLjE2Nzk3IDYuMzkxNDEgMS4xNjc5NyA3LjA4MjAzQzEuMTY3OTcgNy43NzI2NiAxLjc1ODQyIDguMzMyMDMgMi40ODc0MSA4LjMzMjAzQzIuNDk0MDEgOC4zMzIwMyAyLjUwMzkxIDguMzMyMDMgMi41MTA1IDguMzMyMDNMNC4wMTc5NyAxNi4xODgzQzQuMTk5MzkgMTcuMTM4MyA1LjA3MzUyIDE3LjgzMiA2LjA5NjA5IDE3LjgzMkgxNS4yMzk4QzE2LjI1OTEgMTcuODMyIDE3LjEzMzIgMTcuMTQxNCAxNy4zMTggMTYuMTg4M0wxOC44MjU0IDguMzMyMDNDMTguODMyIDguMzMyMDMgMTguODQxOSA4LjMzMjAzIDE4Ljg0ODUgOC4zMzIwM0MxOS41Nzc1IDguMzMyMDMgMjAuMTY4IDcuNzcyNjYgMjAuMTY4IDcuMDgyMDNDMjAuMTY4IDYuMzkxNDEgMTkuNTc3NSA1LjgzMjAzIDE4Ljg0ODUgNS44MzIwM0MxOC4xMTk1IDUuODMyMDMgMTcuNTI5MSA2LjM5MTQxIDE3LjUyOTEgNy4wODIwM0MxNy41MjkxIDcuMzYzMjggMTcuNjI4IDcuNjIyNjYgMTcuNzkzIDcuODMyMDNMMTQuODUzOSAxMC4wNjAyQzE0LjMyOTQgMTAuNDU3IDEzLjU1MSAxMC4yOTQ1IDEzLjI1MDggOS43MjU3OEwxMS4zNjA3IDYuMTQ0NTNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXQtMlwiPlNldCBCdWZmZXIgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlQnVmZmVyVGltZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lID4gMCB8fCBjb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWUgPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0ZWN0aW9udGV4dCBtdC0yXCI+V2hlbiBlbmFibGVkLCBhbGVydHMgd2lsbCBiZSBwYXVzZWQgZHVyaW5nIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBwZXJpb2Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2hlY2tCdWZmZXIgfHwgY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgfHwgY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbWUtM1wiPiBJZiBTdG9yZSBPcGVuIHRpbWUgZXhjZWVkcyBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgcC0zIHRleHQtY2VudGVyIHctNDVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgbWlubGVuZ3RoPVwiMlwiIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbXMtM1wiPiBtaW51dGVzIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24xIG1lLTNcIj4gSWYgU3RvcmUgQ2xvc2UgdGltZSBleGNlZWRzIGJ5IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBwLTMgdGV4dC1jZW50ZXIgdy00NXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgbWlubGVuZ3RoPVwiMlwiIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbXMtM1wiPiBtaW51dGVzIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzY3J1bScsJ2NsZWFuaW5nJ10uaW5jbHVkZXModHlwZSkgJiYgY2xpZW50SWQhPT0nNDUyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nIG10LThcIj5BdXRvbWF0aWMgVGFza1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+IFNlbGVjdCBBcHByb3ZlciA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5hcHByb3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlQWxlcnQoJGV2ZW50LCdhcHByb3ZlJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nIG10LThcIj57e3R5cGUgPT09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgPyAnVG8gYmUgQWNrbm93bGVkZ2VkIGJ5JyA6ICdBcHByb3Zlcid9fTwvaDI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG10LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5CeSBlbmFibGluZywgdGhlIHVzZXJzIHdpbGwgYmUgYWJsZSB0byBhY2tub3dsZWRnZSB0aGUgY2hlY2tsaXN0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ1wiIGNsYXNzPVwiY29sLW1kLTEyIG10LThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBtdC0yIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTQgc3ViXCI+SWYgdXNhZ2UgZXhjZWVkczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTU1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5hbGVydC51c2FnZUV4Y2VlZHNcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZCBtaW5sZW5ndGg9XCIyXCIgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXIgdXNhZ2VlcnJvclwiICpuZ0lmPVwiZXJyb3Jtc2dcIj5QbGVhc2UgZW50ZXIgZXZlbnQgY291bnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXR3ZWVuIDE1IHRvIDk5OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+VG8gYmUgYXBwcm92ZWQgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRhaW5lciBtdC0zXCIgKm5nSWY9XCJbJ3F1ZXVlYWxlcnQnXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctY2FyZCBzaGFkb3ctc20gcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSGVhZGVyIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtYi0xXCI+RGV0ZWN0aW9uIENvbmZpZ3VyYXRpb248L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPkNvbnRyb2wgY2hlY2tsaXN0IGxvZ2ljIGFuZCBhbGVydCBjb25maWd1cmF0aW9uczwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlY3Rpb24gMTogUXVldWUgTGVuZ3RoIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0zIGJvcmRlci1saWdodC1zdWJ0bGUgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cIm1iLTAgZnctYm9sZCBmcy00XCI+UXVldWUgTGVuZ3RoPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LnF1ZXVlYWxlcnQ/LnF1ZXVlTGVuZ3RoRW5hYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlcXVldWVsZW5ndGhjb25maWcoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXVlTGVuZ3RoRW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTNcIj5XaGVuIGVuYWJsZWQsIGFsZXJ0cyB3aWxsIGJlIHNlbnQgYmFzZWQgb24gdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmVkIGxpbWl0IGV4Y2VlZGluZyB0aGUgcXVldWU8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTEwIG1iLTRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5BbGVydCwgSWYgUXVldWUgTGVuZ3RoIEV4Y2VlZHMgbW9yZSB0aGFuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctYXV0byBjdXN0b20tc2VsZWN0XCIgWyhuZ01vZGVsKV09XCJxdWV1ZUxpbWl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiMlwiPjI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCIzXCI+Mzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIjRcIj40PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiNVwiPjU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCI2XCI+Njwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPlBlcnNvbiBpbiBEZXRlY3Rpb24gQXJlYXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZWN0aW9uIDI6IFF1ZXVlIFdhaXQgVGltZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLWxpZ2h0LXN1YnRsZSByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwibWItMCBmdy1ib2xkIGZzLTRcIj5RdWV1ZSBXYWl0IFRpbWUgQWxlcnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5haUNvbmZpZz8ucXVldWVhbGVydD8ud2FpdFRpbWVFbmFibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VxdWV1ZXdhaXR0aW1lY29uZmlnKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIndhaXRUaW1lRW5hYmxlZFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0zXCI+V2hlbiBlbmFibGVkLCBhbGVydHMgd2lsbCBiZSBzZW50IHdoZW4gYSBwZXJzb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZW5kcyBtb3JlIHRoYW4gY29uZmlndXJlZCB0aW1lPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwib3BhY2l0eS0xMCBtYi00XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+QWxlcnQsIElmIFBlcnNvbiBTcGVuZHMgbW9yZSB0aGFuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctYXV0byBjdXN0b20tc2VsZWN0MVwiIFsobmdNb2RlbCldPVwid2FpdFRpbWVMaW1pdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+MSBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj4yIE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjMgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+NCBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj41IE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNlwiPjYgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI3XCI+NyBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjhcIj44IE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiOVwiPjkgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMFwiPjEwIE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5pbiBEZXRlY3Rpb24gQXJlYXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZWN0aW9uIDM6IEFsZXJ0IENvb2xkb3duIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC0zIGJvcmRlci1saWdodC1zdWJ0bGUgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cIm1iLTAgZnctYm9sZCBmcy00XCI+QWxlcnQgQ29vbGRvd248L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5haUNvbmZpZz8ucXVldWVhbGVydD8uYWxlcnRDb29sZG93bkVuYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZWFsZXJ0Y29vbGRvd25jb25maWcoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWxlcnRDb29sZG93bkVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0zXCI+V2FpdCBmb3IgdGhlIGNvbmZpZ3VyZWQgaW50ZXJ2YWwgdGltZSBiZWZvcmUgc2VuZGluZyBhbm90aGVyIGFsZXJ0PC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwib3BhY2l0eS0xMCBtYi00XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtXCI+U2VuZCBuZXcgYWxlcnQgYWZ0ZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgdy1hdXRvIGN1c3RvbS1zZWxlY3QxXCIgWyhuZ01vZGVsKV09XCJhbGVydENvb2xkb3duVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+NSBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwXCI+MTAgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxNVwiPjE1IE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMjBcIj4yMCBNaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjI1XCI+MjUgTWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzMFwiPjMwIE1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW1cIj5zaW5jZSB0aGUgbGFzdCBhbGVydDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQWxlcnQgQ29uZmlndXJhdGlvbiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgcm91bmRlZC00IHB4LTcgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2hhbGZzaHV0dGVyJywndHZjb21wbGlhbmNlJywnc3RvcmVvcGVuYW5kY2xvc2UnLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmdcIj5BbGVydCBDb25maWd1cmF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwibXgtMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NzRfNjYxOTUpXCI+IDxwYXRoIGQ9XCJNOC4wMDAxNiAxMC42NjczVjguMDAwNjVNOC4wMDAxNiA1LjMzMzk4SDguMDA2ODNNMTQuNjY2OCA4LjAwMDY1QzE0LjY2NjggMTEuNjgyNiAxMS42ODIxIDE0LjY2NzMgOC4wMDAxNiAxNC42NjczQzQuMzE4MjYgMTQuNjY3MyAxLjMzMzUgMTEuNjgyNiAxLjMzMzUgOC4wMDA2NUMxLjMzMzUgNC4zMTg3NSA0LjMxODI2IDEuMzMzOTggOC4wMDAxNiAxLjMzMzk4QzExLjY4MjEgMS4zMzM5OCAxNC42NjY4IDQuMzE4NzUgMTQuNjY2OCA4LjAwMDY1WlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz4gPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz4gPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPiA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPiA8L2NsaXBQYXRoPiA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnaGFsZnNodXR0ZXInXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtMiBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGVydHMgd2lsbCBiZSBzZW50LCBJZiB0aGUgc3RvcmUgc2h1dHRlciBpcyBsZWZ0IGhhbGYgb3BlbmVkIGR1cmluZyB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJlZCBvcGVuICYgY2xvc2UgdGltZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtMiBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGVydHMgd2lsbCBiZSBzZW50LCBJZiB0aGUgZXZlbnQgZG9lcyBub3Qgb2NjdXIgd2l0aGluIHRoZSBjb25maWd1cmVkIHRpbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC0yIGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXJ0cyB3aWxsIGJlIHNlbnQgd2hlbiB0aGVyZSdzIGEgbWlzbWF0Y2ggYmV0d2VlbiBhY3R1YWwgYW5kIGNvbmZpZ3VyZWQgc3RvcmUgb3Blbi9jbG9zZSB0aW1lc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3R2Y29tcGxpYW5jZSddLmluY2x1ZGVzKHR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC0yIGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXJ0cyB3aWxsIGJlIHNlbnQsIHdoZW4gdGhlcmUgaXMgYSBicmVhY2ggaGFwcGVuZWQgYmV0d2VlbiB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJlZCB0aW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ2hhbGZzaHV0dGVyJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtMlwiPkFsbG93IEJ1ZmZlciBUaW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlYWxlcnR0aW1lY29uZmlnKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxsb3dCdWZmZXIuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+V2hlbiBlbmFibGVkLCBhbGVydHMgd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXVzZWQgZHVyaW5nIHRoZSBidWZmZXIgcGVyaW9kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZFwiICpuZ0lmPVwiYWxlcnR0aW1la2V5Y29uZmlnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktMSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtZS0zXCI+IFN0b3JlIHNodXR0ZXIgY2FuIHJlbWFpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFsZi1vcGVuLCA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS0xIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1zdWItaGVhZGVyIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsbG93QnVmZmVyLmFmdGVyT3BlblRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRpbWUgb2YgYWxlcnRUaW1lQ29uZmlnXCIgW3ZhbHVlXT1cInRpbWVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtZS0zXCI+IG1pbnV0ZXMgYWZ0ZXIgc3RvcmUgb3BlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSBhbmQgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGxvd0J1ZmZlci5iZWZvcmVDbG9zZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRpbWUgb2YgYWxlcnRUaW1lQ29uZmlnXCIgW3ZhbHVlXT1cInRpbWVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctc3ViLWhlYWRlciBtcy0zXCI+IG1pbnV0ZXMgYmVmb3JlIHN0b3JlIGNsb3NlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGhyZXNob2xkLWNvbnRhaW5lciBwLTRcIiAqbmdJZj1cIlsndHZjb21wbGlhbmNlJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtM1wiPkJyZWFjaGVkIERldGVjdGlvbiBUaHJlc2hvbGQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1c3RvbS1zd2l0Y2hcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInN3aXRjaFwiIFsobmdNb2RlbCldPVwiaXNUaHJlc2hvbGRFbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5XaGVuIGVuYWJsZWQsIGRldGVjdGlvbnMgb3ZlciB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmVkIGRhaWx5IGxpbWl0IGFyZSBmbGFnZ2VkIGFzIGEgYnJlYWNoPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMyBtdC00XCIgKm5nSWY9XCJpc1RocmVzaG9sZEVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5LWJsdWUgZnctbWVkaXVtXCI+RmxhZywgYXMgYnJlYWNoZWQgaWYgZGV0ZWN0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRzPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY3VzdG9tLXNlbGVjdFwiIFsobmdNb2RlbCldPVwiZGV0ZWN0aW9uVGhyZXNob2xkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1RocmVzaG9sZEVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0IG9mIHRocmVzaG9sZE9wdGlvbnNcIiBbdmFsdWVdPVwib3B0XCI+e3sgb3B0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5LWJsdWUgZnctbWVkaXVtXCI+aW4gYSBkYXk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTIgcm91bmRlZC00IHB4LTMgbWItMiBtdC0yXCIgKm5nSWY9XCJbJ3N0b3Jlb3BlbmFuZGNsb3NlJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBtdC0yXCI+RGV0ZWN0aW9uIENvbmZpZ3VyYXRpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5DaG9vc2UgaG93IGRldGVjdGlvbiBzaG91bGQgYmUgYXBwbGllZCBhY3Jvc3MgY2FtZXJhczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1lLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNvY0RldGVjdGlvblR5cGVcIiBpZD1cInNvY0RldGVjdGlvblR5cGVBbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImFsbENhbWVyYXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuZGV0ZWN0aW9uVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc2VjdGlvbjEgbXMtMiBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInNvY0RldGVjdGlvblR5cGVBbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiUHJvY2Vzc2VzIGFuZCBkaXNwbGF5cyBkZXRlY3Rpb25zIGZyb20gYWxsIGNvbmZpZ3VyZWQgY2FtZXJhIGZlZWRzIGluIGEgZ3JpZCB2aWV3IGluIHRoZSBnYWxsZXJ5LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiPkFsbCBDYW1lcmFzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNvY0RldGVjdGlvblR5cGVcIiBpZD1cInNvY0RldGVjdGlvblR5cGVGaXJzdExhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImZpcnN0QW5kTGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5kZXRlY3Rpb25UeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzZWN0aW9uMSBtcy0yIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwic29jRGV0ZWN0aW9uVHlwZUZpcnN0TGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJEaXNwbGF5cyBvbmx5IHRoZSBmaXJzdCBvcGVuaW5nIGFuZCB0aGUgbGFzdCBjbG9zaW5nIGRldGVjdGlvbiBmcm9tIGFueSBjYW1lcmEgZm9yIHRoZSBzdG9yZSBpbiB0aGUgZ2FsbGVyeS5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIj5PcGVuaW5nICZhbXA7IENsb3NpbmcgRGV0ZWN0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC00IG1iLTRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTIgcm91bmRlZC00IHB4LTMgbWItMiBtdC0yXCIgICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXQtMlwiPlNldCBCdWZmZXIgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZUJ1ZmZlclRpbWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgPiAwIHx8IGNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLmNsb3NlVGltZSA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbXQtMlwiPldoZW4gZW5hYmxlZCwgYWxlcnRzIHdpbGwgYmUgcGF1c2VkIGR1cmluZyB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIHBlcmlvZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNoZWNrQnVmZmVyIHx8IGNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lIHx8IGNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLmNsb3NlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24xIG1lLTNcIj4gSWYgU3RvcmUgT3BlbiB0aW1lIGV4Y2VlZHMgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTUwcHggcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiBidWZmZXJUaW1lXCI+e3tpfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uMSBtcy0zXCI+IG1pbnV0ZXMgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbWUtM1wiPiBJZiBTdG9yZSBDbG9zZSB0aW1lIGV4Y2VlZHMgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTUwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1zZWxlY3QtbGcgc2VsZWN0Mi1oaWRkZW4tYWNjZXNzaWJsZSBuZy1wcmlzdGluZSBuZy12YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiBidWZmZXJUaW1lXCI+e3tpfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uMSBtcy0zXCI+IG1pbnV0ZXMgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTIgcm91bmRlZC00IHB4LTMgbWItMiBtdC0yXCIgICpuZ0lmPVwiWydtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtNCBzdWJcIj5BbGVydCwgSWYgbW9iaWxlIHVzYWdlIGV4Y2VlZHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZmxleCBmbGV4LWNvbHVtblwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB0ZXh0LWNlbnRlciB3LTU1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkIG1pbmxlbmd0aD1cIjFcIiBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJcIj5kZXRlY3Rpb25zIHBlciBkYXk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwiZXJyb3Jtc2dcIj5QbGVhc2UgZW50ZXIgZXZlbnQgY291bnQgYmV0d2VlbiAxIHRvIDk5OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gUHVzaCBOb3RpZmljYXRpb25zIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBiZy13aGl0ZSByb3VuZGVkLTQgcHgtNyBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdxdWV1ZWFsZXJ0JywnY2FtZXJhdGFtcGVyaW5nJywnc3RvcmVvcGVuYW5kY2xvc2UnLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCd1bmlmb3JtZGV0ZWN0aW9uJywnc3RhZmZncm91cGluZycsJ2JveGFsZXJ0JywnZW1wbG95ZWVDb3VudCcsJ3VuYXR0ZW5kZWRkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+UHVzaCBOb3RpZmljYXRpb25zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbmFibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlbm90aWZpY2F0aW9uY29uZmlnKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZighWydzdG9yZW9wZW5hbmRjbG9zZScsJ2hhbGZzaHV0dGVyJ10uaW5jbHVkZXModHlwZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5TZW5kIG5vdGlmaWNhdGlvbnMgdG8gTW9iaWxlLCBXZWIsIG9yIGJvdGggLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmUgYXMgcGVyIHlvdXIgbmVlZHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+U2VuZCBub3RpZmljYXRpb25zIHZpYSBNb2JpbGUsIFdlYiwgb3IgRW1haWwg4oCUIGNvbmZpZ3VyZSBhcyBuZWVkZWQ8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbmFibGVkXCIgY2xhc3M9XCJtdC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0yXCI+TW9iaWxlIE5vdGlmaWNhdGlvbnM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMVwiPiBTZW5kIHRvIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMSBmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLm1vYmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlTm90aWZpY2F0aW9uQWxlcnQoJGV2ZW50LCd1c2VyJywnbW9iaWxlJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0yIGNvbC02XCI+V2ViIE5vdGlmaWNhdGlvbnM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctaGVhZGVyIG10LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgY29sLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1LjMzNDYgMS42NjUwOVY1LjY2NTA5TTE1LjMzNDYgNS42NjUwOUgxMS4zMzQ2TTE1LjMzNDYgNS42NjUwOUwxMi4yNDEzIDIuNzU4NDJDMTEuNTI0OCAyLjA0MTU3IDEwLjYzODQgMS41MTc4OSA5LjY2NDc2IDEuMjM2MjdDOC42OTExNCAwLjk1NDY1IDcuNjYyMDQgMC45MjQyNTcgNi42NzM0OSAxLjE0NzkzQzUuNjg0OTUgMS4zNzE2IDQuNzY5MTcgMS44NDIwNSA0LjAxMTYxIDIuNTE1MzdDMy4yNTQwNiAzLjE4ODY5IDIuNjc5NDEgNC4wNDI5NSAyLjM0MTMgNC45OTg0Mk0wLjY2Nzk2OSAxMi4zMzE4VjguMzMxNzZNMC42Njc5NjkgOC4zMzE3Nkg0LjY2Nzk3TTAuNjY3OTY5IDguMzMxNzZMMy43NjEzIDExLjIzODRDNC40Nzc4IDExLjk1NTMgNS4zNjQyMiAxMi40NzkgNi4zMzc4NCAxMi43NjA2QzcuMzExNDcgMTMuMDQyMiA4LjM0MDU2IDEzLjA3MjYgOS4zMjkxMSAxMi44NDg5QzEwLjMxNzcgMTIuNjI1MiAxMS4yMzM0IDEyLjE1NDggMTEuOTkxIDExLjQ4MTVDMTIuNzQ4NSAxMC44MDgyIDEzLjMyMzIgOS45NTM5IDEzLjY2MTMgOC45OTg0MlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjEuMjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yIG1zLTNcIj4gU3luYyB1c2VycyBmcm9tIE1vYmlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMSBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZXN5bmNNb2JpbGVXZWJjb25maWcoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLnN5bmNNb2JpbGVXZWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMVwiPiBTZW5kIHRvIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMSBmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLndlYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlTm90aWZpY2F0aW9uQWxlcnQoJGV2ZW50LCd1c2VyJywnd2ViJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZScsJ2hhbGZzaHV0dGVyJywnbW9iaWxldXNhZ2VkZXRlY3Rpb24nLCdzdG9yZWh5Z2llbmVtb25pdG9yaW5nJywndHZjb21wbGlhbmNlJywndW5pZm9ybWRldGVjdGlvbicsJ2NhbWVyYXRhbXBlcmluZycsJ3N0YWZmZ3JvdXBpbmcnLCdib3hhbGVydCcsJ3F1ZXVlYWxlcnQnLCdlbXBsb3llZUNvdW50JywndW5hdHRlbmRlZGRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctaGVhZGVyIG10LTIgY29sLTZcIj5TZW5kIGFzIEVtYWlsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgbXQtNSBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gcHktMyBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTMgY3Vyc29yLXBvaW50ZXJcIiAjdXBsb2FkIChjbGljayk9XCJmaWxlLmNsaWNrKClcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8c3BhbiBjbGFzcz1cInRlbXBsYXRlLWRyb3Bkb3duIGJnLXdoaXRlIG1zLTNcIj5CdWxrVXBsb2FkIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIHR5cGU9XCJmaWxlXCIgI2ZpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIiAoY2hhbmdlKT1cInZhbGlkYXRlRXhjZWxUZW1wbGF0ZSgkZXZlbnQpXCIgLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VidGl0bGUgbXgtMyBtZS0yXCI+IHwgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9wZW5FbWFpbERyb3Bkb3duKClcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiA5TDEyIDE1TDE4IDlcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlbWFpbERyb3Bkb3duXCIgY2xhc3M9XCJjYXJkIHRlbXBsYXRlLWRyb3Bkb3duIGgtNDBweCB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSByb3VuZGVkLTMgei0xIHRvcC01MHB4IGVuZC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMCB3LWF1dG8gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZW1haWxCdWxrdXBsb2FkTW9kZWwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicHgtNSBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0yXCI+RG93bmxvYWQgVGVtcGxhdGU8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIHNvcFRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgbWUtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZCBUb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImFwcHJvdmVyXCIgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbD8udHlwZT8uaW5jbHVkZXMoJ3N0b3JlJylcIiAoY2hhbmdlKSA9XCJ1cGRhdGVNYWlsZXIoJGV2ZW50LCdzdG9yZScpXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPlN0b3JlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJjdXN0b21cIiBbY2hlY2tlZF09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsPy50eXBlPy5pbmNsdWRlcygndXNlcicpXCIgKGNoYW5nZSkgPVwidXBkYXRlTWFpbGVyKCRldmVudCwndXNlcicpXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPlVzZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm1lLTMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBoLTE0cHggdy0xNHB4IG14LTFcIiB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiY3VzdG9tXCIgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbD8udHlwZT8uaW5jbHVkZXMoJ2N1c3RvbScpXCIgKGNoYW5nZSkgPVwidXBkYXRlTWFpbGVyKCRldmVudCwnY3VzdG9tJylcIj48L2Rpdj4gPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBsaW5lSGVpZ2h0XCI+Q2x1c3Rlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImN1c3RvbVwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWw/LnR5cGU/LmluY2x1ZGVzKCd0ZWFtcycpXCIgKGNoYW5nZSkgPVwidXBkYXRlTWFpbGVyKCRldmVudCwndGVhbXMnKVwiPjwvZGl2PiA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIGxpbmVIZWlnaHRcIj5UZWFtczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRDb25maWcuYWxlcnRTZW5kVG8uZW1haWw/LnR5cGU/LmluY2x1ZGVzKCd1c2VyJylcIiBjbGFzcz1cIm10LTMgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtwbGFjZWhvbGRlcl09XCInQWRkIFVzZXJzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydENvbmZpZy5hbGVydFNlbmRUby5lbWFpbD8udXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUVtYWlsVXNlcnMoJGV2ZW50KVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsPy50eXBlPy5pbmNsdWRlcygndGVhbXMnKVwiIGNsYXNzPVwibXQtMyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFRlYW1zXCIgW3BsYWNlaG9sZGVyXT1cIidBZGQgVGVhbXMnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0Q29uZmlnLmFsZXJ0U2VuZFRvLmVtYWlsPy50ZWFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlRW1haWxUZWFtcygkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtMiBhbGVydCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnNvbGlkYXRlZCBicmVhY2hlZCBkZXRlY3Rpb25zIHdpbGwgYmUgc2VudCBhcyBlbWFpbCByZXBvcnRzIHRvIHRoZSB1c2VycyBhZGRlZCBoZXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBiZy13aGl0ZSByb3VuZGVkLTQgcHgtNyBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnc3RvcmVvcGVuYW5kY2xvc2UnLCdoYWxmc2h1dHRlcicsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsJ3VuaWZvcm1kZXRlY3Rpb24nLCd0dmNvbXBsaWFuY2UnLCdzdGFmZmdyb3VwaW5nJywnYm94YWxlcnQnLCdjYW1lcmF0YW1wZXJpbmcnLCdlbXBsb3llZUNvdW50J10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtM1wiPkF1dG8tQXNzaWduIFRhc2tzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLmVuYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+T24gYnJlYWNoZXMsIHRhc2tzIGFyZSBhdXRvLWNyZWF0ZWQgYW5kIGFzc2lnbmVkIHRvIHVzZXJzL3N0b3JlczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcuZW5hYmxlZFwiIGNsYXNzPVwibXQtOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMiByb3VuZGVkLTQgcHgtMyBtYi0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgc2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+IEFzc2lnbiBUYXNrIHRvIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0YXNrVXBkYXRlXCIgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnRhc2tBc3NpZ25lZFRvXCIgdmFsdWU9XCJzdG9yZVwiIChjaGFuZ2UpPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy51c2VycyA9IFtdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPlN0b3JlczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0YXNrVXBkYXRlXCIgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnRhc2tBc3NpZ25lZFRvXCIgdmFsdWU9XCJ1c2VyXCIgKGNoYW5nZSk9XCJjb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnVzZXJzID0gW11cIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ1cGxvYWR0ZXh0IGN1cnNvci1wb2ludGVyIGZ3LXNlbWlib2xkXCI+VXNlcnM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHNlbGVjdGVkLXJhZGlvIG1lLTMgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidGFza1VwZGF0ZVwiIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy50YXNrQXNzaWduZWRUb1wiIHZhbHVlPVwidGVhbXNcIiAoY2hhbmdlKT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudXNlcnMgPSBbXVwiIGRpc2FibGVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGRcIj5UZWFtczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3VzZXInLCd0ZWFtcyddLmluY2x1ZGVzKGNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudGFza0Fzc2lnbmVkVG8pXCIgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIGNsYXNzPVwidy0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUF1dG9UYXNrVXNlcnMoJGV2ZW50KVwiICpuZ0lmPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy50YXNrQXNzaWduZWRUbyA9PSAndXNlcidcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VGVhbXNcIiBjbGFzcz1cInctMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmF1dG9UYXNrQ29uZmlnLnVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVBdXRvVGFza1VzZXJzKCRldmVudClcIiAqbmdJZj1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudGFza0Fzc2lnbmVkVG8gPT0gJ3RlYW1zJ1wiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+RW5hYmxlIEFwcHJvdmVyPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcuYXBwcm92ZXJFbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1Ym1pdHRlZCB0YXNrcyBtdXN0IGJlIHJldmlld2VkIGFuZCBhY3Rpb25lZCBieSBhbiBhcHByb3ZlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtNFwiICpuZ0lmPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy5hcHByb3ZlckVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctM1wiPiBTZW5kIHRvIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05IGZ2LXJvdyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcuYXBwcm92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUF1dG9UYXNrKCRldmVudCwndXNlcicpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMiByb3VuZGVkLTQgcHgtMyBtYi0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+IFRhc2sgVmFsaWRpdHkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFzayB2YWxpZCBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTUwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWQgdy04MHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy50YXNrVmFsaWRpdHkudGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiB0aW1lU2xvdFwiPnt7aX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTUwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWQgdy0xNDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcudGFza1ZhbGlkaXR5LnR5cGVcIiAoY2hhbmdlKT1cInVwZGF0ZVRpbWVTbG90KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtaW5zXCI+TWludXRlczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImhvdXJzXCI+SG91cnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJkYXlzXCI+RGF5czwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSBUYXNrIGNyZWF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIEF1dG8tQXNzaWduIFRhc2tzIC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGJnLXdoaXRlIHJvdW5kZWQtNCBweC03IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWyd0dmNvbXBsaWFuY2UnLCdjYW1lcmF0YW1wZXJpbmcnLF0uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXIgbXQtM1wiPkF1dG8tQXNzaWduIFRhc2tzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VhdXRvdGFza2NvbmZpZygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tDb25maWcuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+T24gYnJlYWNoLCB0YXNrcyBhcmUgYXV0by1jcmVhdGVkIGFuZCBhc3NpZ25lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHVzZXJzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC04XCIgKm5nSWY9XCJhdXRvdGFza2tleWNvbmZpZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+IFNlbGVjdCBBcHByb3ZlciA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTAgZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza0NvbmZpZy5hcHByb3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlQXV0b1Rhc2soJGV2ZW50LCd1c2VyJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gRXhwb3J0IGRhdGEgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGJnLXdoaXRlIHJvdW5kZWQtNCBweC03IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWydoYWxmc2h1dHRlcicsJ3R2Y29tcGxpYW5jZScsJ3F1ZXVlYWxlcnQnLCdjYW1lcmF0YW1wZXJpbmcnLCdzdG9yZW9wZW5hbmRjbG9zZScsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsJ3VuaWZvcm1kZXRlY3Rpb24nLCdzdGFmZmdyb3VwaW5nJywnYm94YWxlcnQnLCdlbXBsb3llZUNvdW50JywndW5hdHRlbmRlZGRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1jb25maWctaGVhZGVyIG10LTNcIj5FeHBvcnQgZGF0YTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlZXhwb3J0Y29uZmlnKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5leHBvcnRDb25maWcuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+RXhwb3J0IHlvdXIgZGF0YSBpbiB0aGUgZm9ybWF0IHlvdSBuZWVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC04XCIgKm5nSWY9XCJleHBvcnRrZXljb25maWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBtYi01IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidBTEwnXCIgKGNoYW5nZSk9XCJjaGFuZ2VFeHBvcnRWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRFeHBvcnRDb25maWcuaW5jbHVkZXMoJ0FMTCcpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ1cGxvYWR0ZXh0IGN1cnNvci1wb2ludGVyIGZ3LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBoLTE0cHggdy0xNHB4IG14LTFcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiJ0NTVidcIiAoY2hhbmdlKT1cImNoYW5nZUV4cG9ydFZhbHVlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZEV4cG9ydENvbmZpZy5pbmNsdWRlcygnQ1NWJylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NWXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCInUERGJ1wiIChjaGFuZ2UpPVwiY2hhbmdlRXhwb3J0VmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkRXhwb3J0Q29uZmlnLmluY2x1ZGVzKCdQREYnKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQREZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidQUFQnXCIgKGNoYW5nZSk9XCJjaGFuZ2VFeHBvcnRWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRFeHBvcnRDb25maWcuaW5jbHVkZXMoJ1BQVCcpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ1cGxvYWR0ZXh0IGN1cnNvci1wb2ludGVyIGZ3LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBQVFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCInWklQJ1wiIChjaGFuZ2UpPVwiY2hhbmdlRXhwb3J0VmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkRXhwb3J0Q29uZmlnLmluY2x1ZGVzKCdaSVAnKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaSVBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJjYXJkLWJvZHkgYmctd2hpdGUgbXQtMyByb3VuZGVkLTQgcHgtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBcIj5Bc3NpZ248c3BhbiBjbGFzcz1cIm14LTJcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODc0XzY2MTk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODc0XzY2MTk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTUgbXQtMyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHNlbGVjdGVkLXJhZGlvIG1lLTMgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic3RvcmVzXCIgW2NoZWNrZWRdPVwic3RvcmVDb3ZlcmFnZVwiIChjbGljayk9XCJzZWxlY3RSYWRpbygnc3RvcmUnLCdjaGFuZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGRcIj5Bc3NpZ24gU3RvcmVzIGFuZCBDbHVzdGVyczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2Vyc1wiIFtjaGVja2VkXT1cInVzZXJDb3ZlcmFnZVwiIChjbGljayk9XCJzZWxlY3RSYWRpbygndXNlcicsJ2NoYW5nZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPkFzc2lnbiBVc2VycyBhbmQgVGVhbXM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0b3JlQ292ZXJhZ2UgJiYgYXNzaWduVHlwZSA9PT0nc3RvcmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtNSBtcy01IHN0b3JlQXNzaWduIHNvcFRhYmxlIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJmbGFnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZW5hYmxlTmV3RGVwbG95ZWRTdG9yZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPkF1dG8gYXNzaWduIHRvIG5ld2x5IGRlcGxveWVkIHN0b3Jlczwvc3Bhbj4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtcy01IGFsaWduLWl0ZW1zLWVuZCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBvdmVyZmxvdy1hdXRvIGgtNDVweCB3LTc1IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFicyBuYXYtbGluZS10YWJzLTJ4IGJvcmRlci10cmFuc3BhcmVudCBmcy01IGZ3LWJvbGRlciBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT1cInNlbGVjdGVkVGFiKCdzdG9yZScpXCIgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlciBoLTEwMFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXNzaWduVHlwZSA9PT0nc3RvcmUnID8gJ2FjdGl2ZSBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeScgOicnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbS0wIHB4LTVcIj5TdG9yZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0ZWRUYWIoJ2NsdXN0ZXInKVwiIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXIgaC0xMDBcIj48YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFzc2lnblR5cGUgPT09J2NsdXN0ZXInID8gJ2FjdGl2ZSBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeScgOicnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbS0wIHB4LTVcIj5DbHVzdGVyczwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0lmPVwidXNlckNvdmVyYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFicyBuYXYtbGluZS10YWJzLTJ4IGJvcmRlci10cmFuc3BhcmVudCBmcy01IGZ3LWJvbGRlciBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT1cInNlbGVjdGVkVGFiKCd1c2VyJylcIiBjbGFzcz1cIm5hdi1pdGVtIGN1cnNvci1wb2ludGVyIGgtMTAwXCI+PGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhc3NpZ25UeXBlID09PSd1c2VyJyA/ICdhY3RpdmUgYmctbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnknIDonJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG0tMCBweC01XCI+VXNlcnM8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0ZWRUYWIoJ3RlYW0nKVwiIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXIgaC0xMDBcIj48YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFzc2lnblR5cGUgPT09J3RlYW0nID8gJ2FjdGl2ZSBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeScgOicnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbS0wIHB4LTVcIj5UZWFtczwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCIgKGNsaWNrKT1cImFkZFN0b3JlQ29tcG9uZW50KClcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtNCBuZy1zdGFyLWluc2VydGVkIG10LThcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCI+PHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0yXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk4NCA0LjE2Njk5VjE1LjgzMzdNNC4xNjY1IDEwLjAwMDNIMTUuODMzMlwiIHN0cm9rZT1cIiMzNDQwNTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cImNyZWF0ZTFcIj5Bc3NpZ24gU3RvcmU8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwidXNlckNvdmVyYWdlXCIgKGNsaWNrKT1cImFkZFN0b3JlQ29tcG9uZW50KClcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtNCBuZy1zdGFyLWluc2VydGVkIG10LThcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCI+PHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0yXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk4NCA0LjE2Njk5VjE1LjgzMzdNNC4xNjY1IDEwLjAwMDNIMTUuODMzMlwiIHN0cm9rZT1cIiMzNDQwNTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cImNyZWF0ZTFcIj5Bc3NpZ24gVXNlcjwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5TZWxlY3RlZCA8c3Bhbj57e2Fzc2lnblR5cGUgfCB0aXRsZWNhc2V9fXM8L3NwYW4+IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICpuZ0lmPVwiIVsnY2x1c3RlcicsJ3RlYW0nXS5pbmNsdWRlcyhhc3NpZ25UeXBlKVwiICAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBwZS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1tdWx0aS1jaGlwLWRyb3Bkb3duICpuZ0lmPVwic3RvcmVMaXN0XCIgW2l0ZW1zXT1cInN0b3JlTGlzdFwiIFttdWx0aV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaEZpZWxkXT1cIlsnc3RvcmVOYW1lJywnY2x1c3Rlck5hbWUnLCdzdG9yZUlkJywndXNlck5hbWUnLCd0ZWFtTmFtZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaEtleV09XCJzZWFyY2hLZXlcIiBbaWRGaWVsZF09XCInX2lkJ1wiIChzZWxlY3RlZCk9XCJ1cGRhdGVBc3NpZ24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZWRDaGlwKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZXNdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXNzaWduXCI+PC9saWItbXVsdGktY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCIgY2xhc3M9XCJ3LTEwMCBwZS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1tdWx0aS1jaGlwLWRyb3Bkb3duICpuZ0lmPVwic3RvcmVMaXN0XCIgW2l0ZW1zXT1cInN0b3JlTGlzdFwiIFttdWx0aV09XCJ0cnVlXCIgW3NlYXJjaEZpZWxkXT1cIlsnc3RvcmVOYW1lJywnY2x1c3Rlck5hbWUnLCdzdG9yZUlkJywndXNlck5hbWUnLCd0ZWFtTmFtZSddXCIgW3NlYXJjaEtleV09XCJzZWFyY2hLZXlcIiBbaWRGaWVsZF09XCInX2lkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZCk9XCJ1cGRhdGVBc3NpZ24oJGV2ZW50KVwiIChyZW1vdmVkKT1cInJlbW92ZWRDaGlwKCRldmVudClcIiBbc2VsZWN0ZWRWYWx1ZXNdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXNzaWduXCI+PC9saWItbXVsdGktY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCIgKm5nSWY9XCJ0YWJsZURhdGEubGVuZ3RoIHx8IHRhYmxlRmlsdGVyLmxlbmd0aCB8fCAhc2hvd0ltYWdlXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0YWJsZUxvYWRpbmcgJiYgdGFibGVBcnJheT8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQtYm9keSBweC0wIG10LTAgcHQtMCBwYi0wIG14LTQgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlciBtdC01IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS10aXRsZVwiPlNlbGVjdGVkIDxzcGFuPnt7YXNzaWduVHlwZSB8IHRpdGxlY2FzZX19czwvc3Bhbj4gTGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBkYXRhLWt0LXN1YnNjcmlwdGlvbi10YWJsZS1maWx0ZXI9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWFyY2hUYWJsZURhdGEoKVwiIFsobmdNb2RlbCldPVwidGFibGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctMjAwcHggcHMtNSBteC0xIG1lLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgYXV0b2NhcGl0YWxpemU9XCJub25lXCIgc3BlbGxjaGVjaz1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IG5vbmVcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaC4uLlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIVsnY2x1c3RlcicsJ3RlYW0nXS5pbmNsdWRlcyhhc3NpZ25UeXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xMDAgbXQtNSBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBweS0zIGJ0bi1kZWZhdWx0IHctMTAwIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWwgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTMgY3Vyc29yLXBvaW50ZXJcIiAjdXBsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbGUuY2xpY2soKVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8c3BhbiBjbGFzcz1cInRlbXBsYXRlLWRyb3Bkb3duIGJnLXdoaXRlIG1zLTNcIj5CdWxrVXBsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGlucHV0IHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiB0eXBlPVwiZmlsZVwiICNmaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCIgLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YnRpdGxlIG14LTMgbWUtMlwiPiB8IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3BlbkRyb3Bkb3duKCRldmVudClcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDlMMTIgMTVMMTggOVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQgdGVtcGxhdGUtZHJvcGRvd24gaC00MHB4IHctMTAwIHBvc2l0aW9uLWFic29sdXRlIHJvdW5kZWQtMyB6LTEgdG9wLTUwcHggZW5kLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMCB3LWF1dG8gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidWxrdXBsb2FkTW9kZWwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInB4LTUgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgcHktMlwiPkRvd25sb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NsdXN0ZXInLCd0ZWFtJ10uaW5jbHVkZXMoYXNzaWduVHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIHB5LTMgYnRuLWRlZmF1bHQgdy0xMDAgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGVWMigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTMgY3Vyc29yLXBvaW50ZXJcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4xMjUgMTMuMTI1SDE2LjM1NjJMMTQuNzQzOCAxNC43NDM4TDE1LjYyNSAxNS42MjVMMTguNzUgMTIuNUwxNS42MjUgOS4zNzVMMTQuNzQzOCAxMC4yNTYyTDE2LjM1NjIgMTEuODc1SDguMTI1VjEzLjEyNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImJsYWNrXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuNzUgOC43NTAwMVY2LjI1MDAxQzEzLjc1MDUgNi4xNjc3NiAxMy43MzQ3IDYuMDg2MjIgMTMuNzAzNiA2LjAxMDA3QzEzLjY3MjUgNS45MzM5MiAxMy42MjY3IDUuODY0NjYgMTMuNTY4OCA1LjgwNjI2TDkuMTkzNzUgMS40MzEyNkM5LjEzNTM1IDEuMzczMzMgOS4wNjYwOSAxLjMyNzUxIDguOTg5OTQgMS4yOTY0QzguOTEzNzkgMS4yNjUzIDguODMyMjUgMS4yNDk1MyA4Ljc1IDEuMjUwMDFIMi41QzIuMTY4NDggMS4yNTAwMSAxLjg1MDU0IDEuMzgxNzEgMS42MTYxMiAxLjYxNjEzQzEuMzgxNyAxLjg1MDU1IDEuMjUgMi4xNjg0OSAxLjI1IDIuNTAwMDFWMTcuNUMxLjI1IDE3LjgzMTUgMS4zODE3IDE4LjE0OTUgMS42MTYxMiAxOC4zODM5QzEuODUwNTQgMTguNjE4MyAyLjE2ODQ4IDE4Ljc1IDIuNSAxOC43NUgxMi41QzEyLjgzMTUgMTguNzUgMTMuMTQ5NSAxOC42MTgzIDEzLjM4MzkgMTguMzgzOUMxMy42MTgzIDE4LjE0OTUgMTMuNzUgMTcuODMxNSAxMy43NSAxNy41VjE2LjI1SDEyLjVWMTcuNUgyLjVWMi41MDAwMUg3LjVWNi4yNTAwMUM3LjUgNi41ODE1MyA3LjYzMTcgNi44OTk0NyA3Ljg2NjEyIDcuMTMzODlDOC4xMDA1NCA3LjM2ODMxIDguNDE4NDggNy41MDAwMSA4Ljc1IDcuNTAwMDFIMTIuNVY4Ljc1MDAxSDEzLjc1Wk04Ljc1IDYuMjUwMDFWMi43NTYyNkwxMi4yNDM4IDYuMjUwMDFIOC43NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImJsYWNrXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPHNwYW4gY2xhc3M9XCJ0ZW1wbGF0ZS1kcm9wZG93biBiZy13aGl0ZSBtcy0zXCI+RXhwb3J0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIiAqbmdJZj1cIiF0YWJsZURhdGE/Lmxlbmd0aCAmJiAhdGFibGVGaWx0ZXIgJiYgIXNob3dJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQtYm9keSBteS04IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGUgPHNwYW4+e3thc3NpZ25UeXBlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMCBteC00XCIgKm5nSWY9XCJ0YWJsZUFycmF5Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzb3BUYWJsZSB0YWJsZS1yZXNwb25zaXZlIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFibGVMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiICpuZ0lmPVwidGFibGVGaWx0ZXIgJiYgIXRhYmxlRGF0YT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkLWJvZHkgbXktOCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7YXNzaWduVHlwZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5LXNvcFwiICpuZ0lmPVwidGFibGVEYXRhLmxlbmd0aCAmJiAhdGFibGVMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIiBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3N0b3JlTmFtZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSBOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3N0b3JlTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICdzdG9yZU5hbWUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAnc3RvcmVOYW1lJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJOYW1lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQT0MgTmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJFbWFpbCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUE9DIEVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3VzZXJFbWFpbCcgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyRW1haWwnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlckVtYWlsJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiYXNzaWduVHlwZSA9PT0nY2x1c3RlcidcIiBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNvcnREYXRhKCdjbHVzdGVyTmFtZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbHVzdGVyIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAnY2x1c3Rlck5hbWUnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1uICE9PSAnY2x1c3Rlck5hbWUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAnY2x1c3Rlck5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiB0YWJsZURhdGE7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLnN0b3JlTmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLnVzZXJOYW1lID8gZGF0YS51c2VyTmFtZSA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ZGF0YS51c2VyRW1haWwgPyBkYXRhLnVzZXJFbWFpbCA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiYXNzaWduVHlwZSA9PT0gJ2NsdXN0ZXInXCI+e3tkYXRhLmNsdXN0ZXJOYW1lID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5jbHVzdGVyTmFtZSA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgKm5nSWY9XCJ1c2VyQ292ZXJhZ2VcIiBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJOYW1lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXIgTmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJFbWFpbCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyIEVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3VzZXJFbWFpbCcgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyRW1haWwnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlckVtYWlsJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiYXNzaWduVHlwZSA9PT0ndGVhbSdcIiBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3RlYW1OYW1lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlYW1zIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndGVhbU5hbWUnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1uICE9PSAndGVhbU5hbWUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndGVhbU5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgdGFibGVEYXRhO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIG14LTQgbGluZS1oZWlnaHRcIj57e2RhdGEudXNlck5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGEudXNlckVtYWlsID8gZGF0YS51c2VyRW1haWwgOiAnLS0nfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cImFzc2lnblR5cGUgPT09J3RlYW0nXCI+e3tkYXRhLnRlYW1OYW1lID8gZGF0YS50ZWFtTmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uIFtpdGVtc1BlclBhZ2VdPVwic2l6ZVwiIFtjdXJyZW50UGFnZV09XCJjdXJyZW50VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b3RhbEl0ZW1zXT1cInJlY29yZHNUb3RhbFwiIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJzaXplXCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFibGVMb2FkaW5nMSAmJiBzaG93SW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0YWJsZUFycmF5Lmxlbmd0aCAmJiAhdGFibGVMb2FkaW5nMSAmJiAhdGFibGVGaWx0ZXIubGVuZ3RoICYmIHNob3dJbWFnZSAmJiAhY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgJiYgIVsnY2x1c3RlcicsJ3RlYW0nXS5pbmNsdWRlcyhhc3NpZ25UeXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbWItNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgYXNzaWducGFkZGluZyBtYi0xMCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaHIgdy0xMDAgYm9yZGVyIGJvcmRlci0xIHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRlbXBsYXRlLWRyb3Bkb3duIG9ycG9zaXRpb24gYmctd2hpdGUgdy0xMDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkcGFkZGluZyBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1YnRleHQgbGlzdC11bnN0eWxlZCBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIG14LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlVzZSB0aGUgdGVtcGxhdGUgdG8gdXBsb2FkIG11bHRpcGxlIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCI+c3RvcmVzPC9zcGFuPiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidXNlckNvdmVyYWdlXCI+dXNlcnM8L3NwYW4+IGF0IG9uY2UuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiBEb3dubG9hZCB0aGUgdGVtcGxhdGUgaGVyZSAtIDxzcGFuIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlVjIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzcGFuIGNsYXNzPVwibWUtM1wiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU01LjgzMzMzIDguMzMzMzNMMTAgMTIuNU0xMCAxMi41TDE0LjE2NjcgOC4zMzMzM00xMCAxMi41VjIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeVwiPkRvd25sb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlPC9zcGFuPjwvc3Bhbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+IEFkZCB5b3VyIGRhdGEgdG8gdGhlIFRlbXBsYXRlIEZpbGU8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBib3JkZXIgYm9yZGVyLTIgdGV4dC1jZW50ZXIgYm9yZGVyLWRhc2hlZCByb3VuZGVkLTMgYm9yZGVyLXByaW1hcnkgcC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCIgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiIChjbGljayk9XCJmaWxlLmNsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0NlwiIGhlaWdodD1cIjQ2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNDYgNDZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBmaWxsPVwiI0YyRjRGN1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgcng9XCIyMFwiIHN0cm9rZT1cIiNGOUZBRkJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF83OTc5XzUyMDIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yNi4zMzM1IDI2LjMzMzJMMjMuMDAwMiAyMi45OTk5TTIzLjAwMDIgMjIuOTk5OUwxOS42NjY5IDI2LjMzMzJNMjMuMDAwMiAyMi45OTk5VjMwLjQ5OTlNMjkuOTkxOSAyOC4zMjQ5QzMwLjgwNDcgMjcuODgxOCAzMS40NDY3IDI3LjE4MDYgMzEuODE2OCAyNi4zMzIxQzMyLjE4NjggMjUuNDgzNSAzMi4yNjM3IDI0LjUzNTkgMzIuMDM1NCAyMy42Mzg4QzMxLjgwNyAyMi43NDE3IDMxLjI4NjUgMjEuOTQ2MiAzMC41NTU4IDIxLjM3NzhDMjkuODI1MSAyMC44MDk0IDI4LjkyNTkgMjAuNTAwNSAyOC4wMDAyIDIwLjQ5OTlIMjYuOTUwMkMyNi42OTggMTkuNTI0MyAyNi4yMjc4IDE4LjYxODUgMjUuNTc1MiAxNy44NTA3QzI0LjkyMjUgMTcuMDgyOSAyNC4xMDQyIDE2LjQ3MzEgMjMuMTgyIDE2LjA2NzFDMjIuMjU5NyAxNS42NjEgMjEuMjU3MyAxNS40Njk0IDIwLjI1MDMgMTUuNTA2NUMxOS4yNDMzIDE1LjU0MzYgMTguMjU3OCAxNS44MDg1IDE3LjM2NzkgMTYuMjgxM0MxNi40Nzc5IDE2Ljc1NDEgMTUuNzA2OCAxNy40MjI1IDE1LjExMjQgMTguMjM2MkMxNC41MTggMTkuMDUgMTQuMTE1OCAxOS45ODc5IDEzLjkzNiAyMC45Nzk0QzEzLjc1NjMgMjEuOTcwOSAxMy44MDM2IDIyLjk5MDMgMTQuMDc0NiAyMy45NjFDMTQuMzQ1NSAyNC45MzE2IDE0LjgzMjkgMjUuODI4MSAxNS41MDAyIDI2LjU4MzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDc1NDY3XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF83OTc5XzUyMDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxMyAxMylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZXRleHQgY3Vyc29yLXBvaW50ZXIgbWItMiBmdy1ib2xkXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmVcIj5DbGljayBUb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXBsb2FkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBkcmFnIGFuZCBkcm9wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcmFsaWduIGZ3LTQwMFwiPnRoZSBkYXRhIGFkZGVkIHRlbXBsYXRlIGZpbGUgZm9yIHByb2Nlc3NpbmcuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuO1wiIHR5cGU9XCJmaWxlXCIgI2ZpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMVwiIChjaGFuZ2UpPVwib25GaWxlVXBsb2FkKCRldmVudClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0YWJsZUFycmF5Lmxlbmd0aCAmJiAhdGFibGVMb2FkaW5nMSAmJiAhdGFibGVGaWx0ZXIubGVuZ3RoICYmIHNob3dJbWFnZSAmJiAhY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgJiYgWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQtYm9keSBteS04IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGUgPHNwYW4+e3thc3NpZ25UeXBlfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlICE9PSAnY3VzdG9tJ1wiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1hc3NpZ24gW2NvbmZpZ0RhdGFdPVwiY29uZmlnRGF0YVwiIFt1cGxvYWREYXRhXT1cInVwbG9hZERhdGFcIiBbY29uZmlndXJlVHlwZV09XCJjb25maWd1cmVUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGFUb1BhcmVudCk9XCJoYW5kbGVEYXRhRnJvbUNoaWxkKCRldmVudClcIj48L2xpYi1hc3NpZ24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPCEtLSBBZHZhbmNlZCBDb25maWd1cmF0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBiZy13aGl0ZSByb3VuZGVkLTQgcHgtNyBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnaGFsZnNodXR0ZXInLCd0dmNvbXBsaWFuY2UnLCdxdWV1ZWFsZXJ0JywnY2FtZXJhdGFtcGVyaW5nJywnc3RvcmVvcGVuYW5kY2xvc2UnLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCd1bmlmb3JtZGV0ZWN0aW9uJywnc3RhZmZncm91cGluZycsJ2JveGFsZXJ0JywnZW1wbG95ZWVDb3VudCcsJ3VuYXR0ZW5kZWRkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKSAmJiB1c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlclwiPkFkdmFuY2VkIENvbmZpZ3VyYXRpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMiByb3VuZGVkLTQgcHgtMyBtYi0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1oZWFkZXJcIj5EYXRhIFByb2Nlc3Npbmc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5XaGVuIHlvdSB3YW50IHRvIHByb2Nlc3MgdGhpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3QgcmVwb3J0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGN1cnNvci1wb2ludGVyIGJvcmRlciBib3JkZXItMiByb3VuZGVkLTQgcHgtMyBtYi0yIG10LTIgbXMtNCBtZS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hZHZhbmNlZENvbmZpZz8uZGF0YVByb2Nlc3NpbmcgPT09ICdsaXZlJyA/ICdhZHZhbmNlZENvbmZpZ3VyZUFjaXRlJzogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggaC03MHB4IHJvdW5kZWQtMyBwLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJkYXRhcHJvY2Vzc2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIiBuYW1lPVwiZGF0YXByb2Nlc3NpbmdcIiB2YWx1ZT1cImxpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VEYXRhcHJvY2Vzc2luZygnbGl2ZScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRhcHJvY2Vzc2luZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFkdmFuY2VkQ29uZmlnPy5kYXRhUHJvY2Vzc2luZyA9PT0gJ2xpdmUnID8gJ3RleHQtcHJpbWFyeScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyIGZ3LWJvbGRcIj5MaXZlIE5vdGlmaWNhdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+VHJpZ2dlcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkgd2hlbmV2ZXIgYSBkZXRlY3Rpb24gb3IgYnJlYWNoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2NjdXJzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGN1cnNvci1wb2ludGVyIGJvcmRlciBib3JkZXItMiByb3VuZGVkLTQgcHgtMyBtYi0yIG10LTIgbXMtNCBtZS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hZHZhbmNlZENvbmZpZz8uZGF0YVByb2Nlc3NpbmcgPT09ICdlb2QnID8gJ2FkdmFuY2VkQ29uZmlndXJlQWNpdGUnOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBoLTcwcHggcm91bmRlZC0zIHAtMyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtdC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImRhdGFwcm9jZXNzaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzZWxlY3RlZC1yYWRpbyBtZS0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJkYXRhcHJvY2Vzc2luZ1wiIHZhbHVlPVwiZW9kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlRGF0YXByb2Nlc3NpbmcoJ2VvZCcpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRhcHJvY2Vzc2luZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFkdmFuY2VkQ29uZmlnPy5kYXRhUHJvY2Vzc2luZyA9PT0gJ2VvZCcgPyAndGV4dC1wcmltYXJ5JyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXIgZnctYm9sZFwiPkRhaWx5IChFT0QpPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzY2hlZHVsZS1jb25maWctZGVzY3JpcHRpb24gbXQtMlwiPkZ1bGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRlY3Rpb24vYnJlYWNoIGhpc3RvcnkgZGVsaXZlcmVkIHRoZSBuZXh0IGRheSBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbWFydGVyIGRlY2lzaW9uczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+RGV0ZWN0ZWQgU3RhdHVzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlZGV0ZWN0ZWRzdGF0dXNjb25maWcoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYWR2YW5jZWRDb25maWcuZGV0ZWN0ZWRTdGF0dXMuZW5hYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5DaG9vc2Ugd2hpY2ggZGV0ZWN0aW9ucyB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IG9uIGRhc2hib2FyZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCJkZXRlY3RlZHN0YXR1c2tleWNvbmZpZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBtYi01IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgaC0xNHB4IHctMTRweCBteC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgW3ZhbHVlXT1cIidkZXRlY3RlZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZURldGVjdGlvblN0YXR1cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWREZXRlY3Rpb25TdGF0dXMuaW5jbHVkZXMoJ2RldGVjdGVkJylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGQgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhY2hlZCBEZXRlY3Rpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIFt2YWx1ZV09XCInbm9uZGV0ZWN0ZWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VEZXRlY3Rpb25TdGF0dXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkRGV0ZWN0aW9uU3RhdHVzLmluY2x1ZGVzKCdub25kZXRlY3RlZCcpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ1cGxvYWR0ZXh0IGN1cnNvci1wb2ludGVyIGZ3LXNlbWlib2xkIG1zLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uIEJyZWFjaGVkIERldGVjdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0yIHJvdW5kZWQtNCBweC0zIG1iLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC0zXCI+QXVkaXQgUmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VhdWRpdHJlcXVpcmVkY29uZmlnKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFkdmFuY2VkQ29uZmlnLmF1ZGl0Q29uZmlnLmVuYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLWNvbmZpZy1kZXNjcmlwdGlvbiBtdC0yXCI+SXMgYW4gYXVkaXQgcmVxdWlyZWQgZm9yIHRoaXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tsaXN0PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTIgcm91bmRlZC00IHB4LTMgbWItNCBtdC00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhdWRpdGtleWNvbmZpZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWhlYWRlciBtdC00XCI+SW5wdXQgU291cmNlIEZpbGUgVHlwZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtY29uZmlnLWRlc2NyaXB0aW9uIG10LTJcIj5JcyBhbiBhdWRpdCByZXF1aXJlZCBmb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgY2hlY2tsaXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy04IG10LTUgbWItNSBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzZWxlY3RlZC1yYWRpbyBtZS0zIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgbmFtZT1cInN0b3Jlc1wiIHZhbHVlPVwiaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZUlucHV0U291cmNlRmlsZVJhZGlvKCdpbWFnZScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFNvdXJjZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPkltYWdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwidmlkZW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJzdG9yZXNcIiB2YWx1ZT1cInZpZGVvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VJbnB1dFNvdXJjZUZpbGVSYWRpbygndmlkZW8nKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRTb3VyY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidmlkZW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGRcIj5WaWRlbzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNidWxrdXBsb2FkIGxldC1tb2RlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIG10LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLWxpZ2h0LXByaW1hcnkgcm91bmRlZC01IHctNDBweCBoLTQwcHggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiA8c3BhbiBjbGFzcz1cImNvbmZpZy1oZWFkaW5nIGZ3LXNlbWlib2xkIG1zLTUgdy1hdXRvXCI+QnVsayBVcGxvYWQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZUFzc2lnbiBtdC0zXCIgc3R5bGU9XCJmb250LXdlaWdodDogNDAwXCI+U3RlcCAxIC0gPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGVWMigpXCI+RG93bmxvYWQgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlIGhlcmU8L2E+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmVBc3NpZ24gbXQtM1wiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMFwiPlN0ZXAyIC0gQWRkIHlvdXIgZGF0YSB0byB0aGUgVGVtcGxhdGUgRmlsZSB3aXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcgPHNwYW4gKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCI+c3RvcmU8L3NwYW4+IDxzcGFuICpuZ0lmPVwidXNlckNvdmVyYWdlXCI+dXNlcjwvc3Bhbj4gZGF0YTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlQXNzaWduIG10LTNcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDBcIj5TdGVwMyAtIFVwbG9hZCBpdCBiZWxvdyBmb3IgcHJvY2Vzc2luZzwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIHN0b3JlQXNzaWduIG10LTEwXCI+KipOb3RlIDogT24gdXBsb2FkLCBhbGwgdGhlIGV4aXN0aW5nIGRhdGEgd2lsbCBiZSByZXBsYWNlZDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTAgdGV4dC1lbmQgcHQtMFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1tZCBidG4tZGVmYXVsdCBidG4tb3V0bGluZVwiIChjbGljayk9XCJtb2RlbC5jbG9zZSgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW1kIHB5LTQgYnRuLWRlZmF1bHQgbXMtMyBidG4tcHJpbWFyeVwiIChjbGljayk9XCJmaWxlMS5jbGljaygpXCI+VXBsb2FkPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxpbnB1dCBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjtcIiAjZmlsZTEgdHlwZT1cImZpbGVcIiBpZD1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8yXCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlVXBsb2FkKCRldmVudClcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2VtYWlsQnVsa3VwbG9hZCBsZXQtbW9kZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBib3JkZXItMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBtdC01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIG10LTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHJvdW5kZWQtNSB3LTQwcHggaC00MHB4IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gPHNwYW4gY2xhc3M9XCJjb25maWctaGVhZGluZyBmdy1zZW1pYm9sZCBtcy01IHctYXV0b1wiPkJ1bGsgVXBsb2FkPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB0LTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmVBc3NpZ24gbXQtM1wiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMFwiPlN0ZXAgMSAtIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJlbWFpbERvd25sb2FkVGVtcGxhdGUoKVwiPkRvd25sb2FkIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZSBoZXJlPC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlQXNzaWduIG10LTNcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDBcIj5TdGVwMiAtIEFkZCB5b3VyIGRhdGEgdG8gdGhlIFRlbXBsYXRlIEZpbGUgd2l0aFxyXG4gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nIDxzcGFuICpuZ0lmPVwic3RvcmVDb3ZlcmFnZVwiPnN0b3JlPC9zcGFuPiA8c3BhbiAqbmdJZj1cInVzZXJDb3ZlcmFnZVwiPnVzZXI8L3NwYW4+IGRhdGE8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZUFzc2lnbiBtdC0zXCIgc3R5bGU9XCJmb250LXdlaWdodDogNDAwXCI+U3RlcDMgLSBVcGxvYWQgaXQgYmVsb3cgZm9yIHByb2Nlc3Npbmc8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCBzdG9yZUFzc2lnbiBtdC0xMFwiPioqTm90ZSA6IE9uIHVwbG9hZCwgYWxsIHRoZSBleGlzdGluZyBkYXRhIHdpbGwgYmUgcmVwbGFjZWQ8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIHRleHQtZW5kIHB0LTBcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgYnRuLWRlZmF1bHQgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwibW9kZWwuY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1tZCBweS00IGJ0bi1kZWZhdWx0IG1zLTMgYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiZW1haWxGaWxlLmNsaWNrKClcIj5VcGxvYWQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGlucHV0IHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuO1wiICNlbWFpbEZpbGUgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCIueGxzeFwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInZhbGlkYXRlRXhjZWxUZW1wbGF0ZSgkZXZlbnQpXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNhZnRlclZhbGlkYXRpb24gbGV0LW1vZGVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgbXQtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBtdC0zXCI+PHNwYW4gY2xhc3M9XCJjb25maWctaGVhZGluZyBmdy1zZW1pYm9sZCB3LWF1dG9cIj5Bc3NpZ24gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCI+U3RvcmVzPC9zcGFuPiA8c3BhbiAqbmdJZj1cInVzZXJDb3ZlcmFnZVwiPlVzZXJzPC9zcGFuPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB0LTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nIHctMTAwXCI+e3tnZXRTdG9yZUNvdW50cyhleGNlbERhdGEpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIHN1YnRpdGxlIG10LTFcIj5Ub3RhbCA8c3BhbiAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIj5TdG9yZXM8L3NwYW4+IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ1c2VyQ292ZXJhZ2VcIj5Vc2Vyczwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nIHctMTAwXCI+e3tleGNlbERhdGE/Lmxlbmd0aH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1zZW1pYm9sZCBzdWJ0aXRsZSBtdC0xXCI+Um93cyBwcm9jZXNzZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleGNlbEVycm9yID8gJ2Vycm9yLWhlYWRpbmcnOicnXCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tleGNlbEVycm9yPy5lcnJvcj8ubGVuZ3RoIHx8IDB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4Y2VsRXJyb3IgPyAnZXhjZWwtZXJyb3InOicnXCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBzdWJ0aXRsZSBtdC0xXCI+RXJyb3I8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFleGNlbEVycm9yXCIgY2xhc3M9XCJ0YWJsZS1oZWFkZXIgbXQtNVwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2hvd1N0b3JlJiYhc2hvd1RlYW0mJiFzaG93Q2x1c3RlciYmIXNob3dVc2VyJiYhc2hvd0luYWN0aXZlXCI+WW91J3JlIGFib3V0IHRvIGFzc2lnblxyXG4gICAgICAgICAgICAgICAgICAgIHt7Z2V0U3RvcmVDb3VudHMoZXhjZWxEYXRhKX19IDxzcGFuICpuZ0lmPVwic3RvcmVDb3ZlcmFnZVwiPnN0b3Jlczwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInVzZXJDb3ZlcmFnZVwiPnVzZXJzPC9zcGFuPiB0byB0aGUgY2hlY2tsaXN0LiBBcmUgeW91IHN1cmUgd2FudCB0byBwcm9jZWVkPzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0b3JlQ292ZXJhZ2UgJiYgc2hvd1N0b3JlXCIgY2xhc3M9XCJtdC0zXCI+U3RvcmUgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0b3JlIG9mIHZhbGlkYXRlZFN0b3JlO2xldCBsYXN0ID0gbGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmdcIj57e3N0b3JlfX08c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj48L3NwYW4+IHRoYXQgSeKAmW0gbG9va2luZ1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciBpc27igJl0IGF2YWlsYWJsZSwgPGEgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc3RvcmVzXCIgW3F1ZXJ5UGFyYW1zXT1cInt0eW9lOiAnc3RvcmVzJ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+T25ib2FyZCBTdG9yZXM8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyQ292ZXJhZ2UgJiYgc2hvd1VzZXJcIiBjbGFzcz1cIm10LTNcIj5Vc2VyIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdG9yZSBvZiB2YWxpZGF0ZWRVc2VyO2xldCBsYXN0ID0gbGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmdcIj57e3N0b3JlfX08c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj48L3NwYW4+IHRoYXQgSeKAmW0gbG9va2luZ1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciBpc27igJl0IGF2YWlsYWJsZSwgPGEgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlYWN0aXZlcG9wdXAoKTtjb25maXJtVXNlcnBvcHVwKClcIj5PbmJvYXJkIFVzZXJzPC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJDb3ZlcmFnZSAmJiBzaG93VGVhbVwiIGNsYXNzPVwibXQtM1wiPlRlYW0gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0b3JlIG9mIHZhbGlkYXRlZFRlYW07bGV0IGxhc3QgPSBsYXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZ1wiPnt7c3RvcmV9fTxzcGFuICpuZ0lmPVwiIWxhc3RcIj4sPC9zcGFuPjwvc3Bhbj4gdGhhdCBJ4oCZbSBsb29raW5nXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIGlzbuKAmXQgYXZhaWxhYmxlLCA8YSByb3V0ZXJMaW5rPVwiL21hbmFnZS91c2Vycy9jbGllbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+Q3JlYXRlIFRlYW08L2E+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIHNob3dDbHVzdGVyXCIgY2xhc3M9XCJtdC0zXCI+dXNlciA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgdmFsaWRhdGVkQ2x1c3RlcjtsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmdcclxuICAgICAgICAgICAgICAgICAgICBmb3IgaXNu4oCZdCBhdmFpbGFibGUsIDxhIHJvdXRlckxpbms9XCIvbWFuYWdlL3N0b3Jlc1wiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJ7dHlvZTogJ2NsdXN0ZXInfVwiIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKClcIj5DcmVhdGUgQ2x1c3RlcjwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIHNob3dVc2VyXCIgY2xhc3M9XCJtdC0zXCI+VXNlciA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgdmFsaWRhdGVkVXNlcjtsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmdcclxuICAgICAgICAgICAgICAgICAgICBmb3IgaXNu4oCZdCBhdmFpbGFibGUsIDxhIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKCk7Y29uZmlybVVzZXJwb3B1cCgpXCI+T25ib2FyZCBVc2VyczwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIHNob3dJbmFjdGl2ZVwiIGNsYXNzPVwibXQtM1wiPlN0b3JlIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdG9yZSBvZiBpbmFjdGl2ZVN0b3JlcztsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmdcclxuICAgICAgICAgICAgICAgICAgICBmb3IgaXMgaW5hY3RpdmUsIDxhIHJvdXRlckxpbms9XCIvbWFuYWdlL3N0b3Jlc1wiIFtxdWVyeVBhcmFtc109XCJ7dHlvZTogJ3N0b3Jlcyd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsb3NlYWN0aXZlcG9wdXAoKVwiPk9uYm9hcmQgU3RvcmVzPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXhjZWxFcnJvclwiIGNsYXNzPVwiZmxleC1jb2x1bW4gbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1oZWFkaW5nIGZ3LWJvbGRcIj5JbnZhbGlkIERldGFpbHMgITwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YnRpdGxlIG10LTVcIj5QbGVhc2UgcHJvdmlkZSBjb3JyZWN0IGFuZCBjb21wbGV0ZSBsYXlvdXQgaW5mb3JtYXRpb24uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC01IHctMTAwIHJvdW5kZWQtMyBib3JkZXItZXJyb3IgbXQtNSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yIG9mIGV4Y2VsRXJyb3I/LmVycm9yOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIhbGFzdCA/ICdtYi0yJyA6ICcnXCIgY2xhc3M9XCJ0ZXh0LWVycm9yXCI+e3tpICsgMX19KSB7e2Vycm9yfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIHRleHQtZW5kIHB0LTBcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgYnRuLWRlZmF1bHQgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhZXhjZWxFcnJvciYmIXNob3dTdG9yZSYmIXNob3dDbHVzdGVyJiYhc2hvd1VzZXImJiFzaG93VGVhbSYmIXNob3dJbmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbWQgcHktNCBidG4tZGVmYXVsdCBtcy0zIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInZhbGlkYXRlRGV0YWlscygpXCI+UHJvY2VlZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZXhjZWxFcnJvcnx8c2hvd1N0b3JlfHxzaG93Q2x1c3Rlcnx8c2hvd1VzZXJ8fHNob3dUZWFtIHx8IHNob3dJbmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBweS0zIGJ0bi1tZCBidG4tZGVmYXVsdCBtcy0zIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwiUmV1cGxvYWQoKTtcIj5SZXVwbG9hZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCIgI2ZpbGUxIHR5cGU9XCJmaWxlXCIgaWQ9XCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMlwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQsJ3JldXBsb2FkJylcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1Vc2VyIGxldC1tb2RlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIG10LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgZC1mbGV4IGZsZXgtY29sdW1uIG10LTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHJvdW5kZWQtNSB3LTQwcHggaC00MHB4IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj48YnI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmcgZnctc2VtaWJvbGQgdy1hdXRvXCI+TmV3IFVzZXIgZm91bmQgaW4gdXBsb2FkZWQgZmlsZTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB0LTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmVBc3NpZ24gbXQtM1wiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMFwiPlRoaXMgQ1NWIGNvbnRhaW5zIGEgbmV3IFVzZXIuIEFkZCBuZXcgVXNlciBpbiB0aGVcclxuICAgICAgICAgICAgICAgICAgICBVc2VyIE1hbmFnZW1lbnQgdW5kZXIgTWFuYWdlIG1lbnUuPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMCB0ZXh0LWVuZCBwdC0wXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgYnRuLWRlZmF1bHQgYnRuLW91dGxpbmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS91c2Vycy9jbGllbnRcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+U2tpcCBOZXcgRW50cmllczwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgcHktNCBidG4tZGVmYXVsdCBtcy0zIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGVsLmNsb3NlKCdjb25maXJtJylcIj5JbnZpdGVcclxuICAgICAgICAgICAgICAgIFNlbGVjdGVkPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=