tango-app-ui-analyse-trax 3.6.0 → 3.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/add-checklist/add-checklist.component.mjs +5 -3
- package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +2 -2
- package/esm2022/lib/components/export-gallery/export-gallery.component.mjs +7 -2
- package/esm2022/lib/components/eye-test-audit/eye-test/eye-test.component.mjs +11 -17
- package/esm2022/lib/components/eye-test-audit/group-select/group-select.component.mjs +3 -3
- package/esm2022/lib/components/eye-test-audit/reactive-select/reactive-select.component.mjs +3 -3
- package/esm2022/lib/components/gallery/gallery.component.mjs +169 -42
- package/esm2022/lib/components/task-configure/task-configure.component.mjs +2 -2
- package/esm2022/lib/services/trax.service.mjs +4 -1
- package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-mp5zGDN4.mjs → tango-app-ui-analyse-trax-eye-test-audit.module-cw94cqNa.mjs} +17 -23
- package/fesm2022/tango-app-ui-analyse-trax-eye-test-audit.module-cw94cqNa.mjs.map +1 -0
- package/fesm2022/{tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DKvlR9IQ.mjs → tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-oG6ldS2p.mjs} +186 -49
- package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-oG6ldS2p.mjs.map +1 -0
- package/fesm2022/tango-app-ui-analyse-trax.mjs +1 -1
- package/lib/components/eye-test-audit/eye-test-audit/start-audit/start-audit.component.d.ts +2 -2
- package/lib/components/flags/flags.component.d.ts +2 -2
- package/lib/components/flags-info/flags-info.component.d.ts +3 -3
- package/lib/components/flags-new/flags-new.component.d.ts +2 -2
- package/lib/components/gallery/gallery.component.d.ts +23 -2
- package/lib/components/manage-task/manage-task.component.d.ts +1 -1
- package/lib/components/orders/orders.component.d.ts +1 -1
- package/lib/components/reports/reports.component.d.ts +2 -2
- package/lib/components/task-configure/task-configure.component.d.ts +1 -1
- package/lib/services/trax.service.d.ts +1 -0
- package/package.json +1 -1
- package/fesm2022/tango-app-ui-analyse-trax-eye-test-audit.module-mp5zGDN4.mjs.map +0 -1
- package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DKvlR9IQ.mjs.map +0 -1
|
@@ -521,7 +521,7 @@ export class ChecklistConfigureComponent {
|
|
|
521
521
|
return;
|
|
522
522
|
}
|
|
523
523
|
const requiredKeys = this.storeCoverage ? ['storeName', 'userName', 'userEmail'] : ['userName', 'userEmail']; // Must always be present
|
|
524
|
-
const optionalKeys = this.storeCoverage ? ['userPhone', 'city'] : ['city'];
|
|
524
|
+
const optionalKeys = this.storeCoverage ? ['userPhone', 'city'] : ['userPhone', 'city'];
|
|
525
525
|
const isValid = data.some((item) => {
|
|
526
526
|
const keys = Object.keys(item);
|
|
527
527
|
const hasRequiredKeys = requiredKeys.every(key => keys.includes(key));
|
|
@@ -2809,4 +2809,4 @@ function getWeekNumber(date) {
|
|
|
2809
2809
|
let findIndex = days.findIndex((item) => item == date.format('YYYY-MM-DD'));
|
|
2810
2810
|
return (findIndex + 1);
|
|
2811
2811
|
}
|
|
2812
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdySCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUc3QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQztBQUN0QyxPQUFPLFFBQVEsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBQ2hELEtBQUssQ0FBQyxNQUFNLENBQUUsUUFBUSxDQUFFLENBQUM7QUFDekIsS0FBSyxDQUFDLE1BQU0sQ0FBRSxHQUFHLENBQUUsQ0FBQztBQUNwQixLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFPaEMsTUFBTSxPQUFPLDJCQUEyQjtJQTRGbEI7SUFBMkM7SUFBZ0M7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QUMsT0FBTztnQkFDTyxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ08sZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0YsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQXcvRXhCLFlBQVk7c0JBRFYsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUEwVDdDLFNBQVMsYUFBYSxDQUFDLElBQVM7SUFDOUIsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2QsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFFLElBQUksQ0FBRSxDQUFDLE9BQU8sQ0FBRSxPQUFPLENBQUUsQ0FBQztJQUUvQyxPQUFRLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUc7UUFDekMsSUFBSyxPQUFPLENBQUMsTUFBTSxDQUFFLE1BQU0sQ0FBRSxLQUFNLElBQUksQ0FBQyxNQUFNLENBQUUsTUFBTSxDQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBRSxPQUFPLENBQUMsTUFBTSxDQUFFLFlBQVksQ0FBRSxDQUFFLENBQUM7U0FDN0M7UUFDRCxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBRSxDQUFDLEVBQUUsS0FBSyxDQUFFLENBQUM7S0FDbkM7SUFFRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFFekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRyYXhwb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL3RyYXhwb3B1cC90cmF4cG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJheFN0b3JlQ29tcG9uZW50IH0gZnJvbSAnLi4vdHJheC1zdG9yZS90cmF4LXN0b3JlLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yy5qcyc7XHJcbmltcG9ydCB0aW1lWm9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUuanMnO1xyXG5kYXlqcy5leHRlbmQoIHRpbWVab25lICk7XHJcbmRheWpzLmV4dGVuZCggdXRjICk7XHJcbmRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdCk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jaGVja2xpc3QtY29uZmlndXJlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NoZWNrbGlzdC1jb25maWd1cmUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RDb25maWd1cmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCdmaWxlJykgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdmaWxlMScpIGZpbGVJbnB1dDEhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2J1bGt1cGxvYWQnKSBidWxrdXBsb2FkOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnYWZ0ZXJWYWxpZGF0aW9uJykgYWZ0ZXJWYWxpZGF0aW9uOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY29uZmlybVVzZXInKSBjb25maXJtVXNlcjogYW55O1xyXG4gIGRheWpzOmFueSA9IGRheWpzO1xyXG4gIHNlbGVjdGVkRGF0ZXM6YW55O1xyXG4gIG1pbkRhdGU6YW55O1xyXG4gIHR5cGU6IHN0cmluZyA9ICdjdXN0b20nO1xyXG4gIG9iajogYW55O1xyXG4gIGNvbmZpZ0RhdGE6IGFueTtcclxuICB0YWJsZURhdGE6IGFueSA9IFtdO1xyXG4gIHRhYmxlTG9hZGluZzogYW55ID0gZmFsc2U7XHJcbiAgdGFibGVEaXNwbGF5ZWRDb2x1bW5zOiBhbnkgPSBbXCJuYW1lXCIsIFwicm9sZVwiLCBcImVtYWlsXCJdXHJcbiAgcGFnZVZhbHVlOiBhbnkgPSBbXTtcclxuICBvZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgcmVjb3Jkc1RvdGFsOiBhbnkgPSAwO1xyXG4gIGFzc2lnblR5cGU6IGFueTtcclxuICBzaXplOiBhbnkgPSA1O1xyXG4gIG9mZnNldHZhbHVlOiBudW1iZXIgPSAwO1xyXG4gIHBhZ2VEaXNwbGF5OiBhbnkgPSBbXTtcclxuICBuZXh0YnRuOiBib29sZWFuID0gdHJ1ZTtcclxuICBiYWNrYnRuOiBib29sZWFuID0gdHJ1ZTtcclxuICBpZExpc3Q6IGFueSA9IFtdO1xyXG4gIGN1cnJlbnRWYWx1ZTogYW55ID0gMTtcclxuICB0YWJsZUZpbHRlcjogYW55ID0gJyc7XHJcbiAgcGFnZVN0YXJ0OiBhbnkgPSAwO1xyXG4gIHBhZ2VFbmQ6IGFueSA9IDA7XHJcbiAgcmVjb3Jkc0NvdW50OiBhbnk7XHJcbiAgcGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LDIwXTtcclxuICB1c2VyRGF0YTogYW55ID0gW107XHJcbiAgZXhjZWxVc2VyRGF0YTogYW55ID0gW107XHJcbiAgc2hvd0ltYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuICBtb250aERheTogYW55O1xyXG4gIHNob3c6IG51bWJlciA9IDA7XHJcbiAgcG9wVXBUaXRsZTogYW55O1xyXG4gIHNob3dJbnRybzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2VhcmNoVXNlcjogYW55O1xyXG4gIGFkZFVzZXJGb3JtOiBib29sZWFuO1xyXG4gIHNvcFN0b3JlczogYW55ID0gW107XHJcbiAgc3RvcmVDb3ZlcmFnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdXNlckNvdmVyYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZXJyb3Jtc2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdGFydFRpbWU6IGFueTtcclxuICBlbmRUaW1lOiBhbnk7XHJcbiAgY2hlY2tsaXN0SWQ6IGFueTtcclxuICByZXVwbG9hZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdEFsbFVzZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZW1vdmVVc2VyczphbnkgPSBbXTtcclxuICBzZWxlY3RlZERheXM6IGFueVtdID0gW107XHJcbiAgc2hvd1JhbmdlVmFsdWU6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIHN1Ym1pdHRlZERhdGVzOiBudW1iZXJbXSA9IFtdO1xyXG4gIG1vbnRoRGF0ZTpzdHJpbmc9Jyc7XHJcbiAgc3BlY2lmaWM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBnbG9iYWxDb25maWd1cmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHN0b3Jld2lzZUNvbmZpZ3VyZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbmZpZ3VyZVR5cGU6IGFueTtcclxuICBkYXRlOiBhbnk7XHJcbiAgc2VjdGlvbnM6IGFueSA9IFtdO1xyXG4gIE1vbnRod2Vla051bWJlcjogc3RyaW5nO1xyXG4gIHBvcHVwQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgdmFsaWRUaW1lOmJvb2xlYW4gPSB0cnVlO1xyXG4gIGRpc2FibGVkUXVlc3Rpb246Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3djb25maWc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dhZHZhbmNlOiBib29sZWFuID0gdHJ1ZTtcclxuICByZXBlYXRUeXBlOnN0cmluZz0nJztcclxuICBzaG93RHJvcERvd246Ym9vbGVhbj0gZmFsc2U7XHJcbiAgc2VsZWN0ZWREYXRlOiBhbnk9IFtdO1xyXG4gIGRhdGVzOiBudW1iZXJbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDMxIH0sIChfLCBpKSA9PiBpICsgMSk7IC8vIEFycmF5IGZyb20gMSB0byAzMVxyXG4gIHNlbGVjdGVkRGF0ZUxpc3Q6YW55ID0gW107XHJcbiAgc2VsZWN0ZWRTdGFydERhdGU6YW55O1xyXG4gIG1pblN0YXJ0RGF0ZTphbnk7XHJcbiAgc2VsZWN0ZWRFbmREYXRlOmFueTtcclxuICBtaW5FbmREYXRlOmFueTtcclxuICBjbGllbnRJZDphbnk7XHJcbiAgYWxlcnRVc2Vyczphbnk9W107XHJcbiAgem9uZUxpc3Q6YW55ID0gW107XHJcbiAgbG9hZGluZzpib29sZWFuID0gdHJ1ZTtcclxuICBhcHByb3ZlOiBib29sZWFuID0gdHJ1ZTtcclxuICBpbml0aWFsTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgZXhpc3RpbmdVc2VyczogYW55OyBhc3NpZ25TaW5nbGU6IGFueTsgYXNzaWduR3JvdXA6IGFueTtcclxuICBzaW5nbGVBc3NpZ246IGFueTtcclxuICBncm91cEFzc2lnbjphbnk7XHJcbiAgcmVtYWluZGVyOmJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNhYmxlZFB1Ymxpc2g6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICB0aW1lTG9vcDphbnlbXSA9IFsxXVxyXG4gIG1pbnV0ZXM6IG51bWJlcltdID0gWzMwLCA0NSwgNjAsIDc1LCA5MF07XHJcbiAgc2hvd0VkaXQ6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc2FibGVCdG46Ym9vbGVhbiA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VkZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcm91dGVyOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZTogUm91dGVyLCBwcml2YXRlIGRpYWxvZzogTmdiTW9kYWwsIHByaXZhdGUgU29wU2VydmljZTogVHJheFNlcnZpY2UsIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSwgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBsZXQgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIHx8ICd7fScpO1xyXG4gICAgaWYoIXN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbGllbnQtZGV0YWlscycpIHx8ICd7fScpO1xyXG4gICAgICBzdG9yYWdlRGV0YWlscy5jbGllbnQgPSBzdG9yYWdlRGV0YWlscy5jbGllbnRJZDtcclxuICAgIH1cclxuICAgIGlmKHN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgdGhpcy5jbGllbnRJZCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudDtcclxuICAgICAgdGhpcy5yb3V0ZXIucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgaWYgKHBhcmFtcz8uY2hlY2tMaXN0SWQpIHtcclxuICAgICAgICAgIHRoaXMub2JqID0ge1xyXG4gICAgICAgICAgICBjaGVja0xpc3RJZDogcGFyYW1zLmNoZWNrTGlzdElkLFxyXG4gICAgICAgICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNob3dFZGl0ID0gcGFyYW1zLnNob3dFZGl0O1xyXG4gICAgICAgICAgdGhpcy50eXBlID0gJ2N1c3RvbSdcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZWRRdWVzdGlvbiA9IHBhcmFtcy5kaXNhYmxlZFF1ZXN0aW9uO1xyXG4gICAgICAgIH0gZWxzZSBpZihwYXJhbXM/LmFpY2hlY2tMaXN0SWQpe1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm9iaiA9IHtcclxuICAgICAgICAgICAgaWQ6IHBhcmFtcy5haWNoZWNrTGlzdElkLFxyXG4gICAgICAgICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdElkID0gcGFyYW1zPy5haWNoZWNrTGlzdElkO1xyXG4gICAgICAgICAgdGhpcy5zaG93RWRpdCA9IHBhcmFtcy5zaG93RWRpdDtcclxuICAgICAgICAgIHRoaXMudHlwZSA9IHBhcmFtcy50eXBlO1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlZFF1ZXN0aW9uID0gcGFyYW1zLmRpc2FibGVkUXVlc3Rpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm9iaiA9IHtcclxuICAgICAgICAgICAgdHlwZTogcGFyYW1zLnR5cGUsXHJcbiAgICAgICAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudHlwZSA9IHBhcmFtcy50eXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgICB0aGlzLnNlbGVjdEluaXRpYWxUYWIoKTtcclxuICAgICAgdGhpcy50eXBlID09PSAnY3VzdG9tJyA/IHRoaXMuR2V0Q29uZmlnKCkgOiB0aGlzLmdldEFJY29uZmlnKCk7XHJcbiAgICAgIHRoaXMuZ2V0Wm9uZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXRhY2gubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGV0YWNoLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJNYW5hZ2UgQ2hlY2tsaXN0XCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIkF1dG9tYXRlIG9yIGNyZWF0ZSBjaGVja2xpc3RzIHRvIGltcHJvdmUgb3BlcmF0aW9uYWwgZWZmaWNpZW5jeVwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogdHJ1ZSB9XHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEluaXRpYWxUYWIoKSB7XHJcbiAgICB0aGlzLnN0b3JlQ292ZXJhZ2UgPyB0aGlzLmFzc2lnblR5cGUgPSAnc3RvcmUnIDogdGhpcy5hc3NpZ25UeXBlID0gJ3VzZXInXHJcbiAgfVxyXG5cclxuICBHZXRDb25maWcoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5tb250aERhdGUgPSAnJztcclxuICAgIHRoaXMubW9udGhEYXkgPSAnJztcclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRjb25maWcodGhpcy5vYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6YW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuY2hlY2tMaXN0VHlwZSkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RJZCA9IHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuX2lkO1xyXG4gICAgICAgICAgdGhpcy50eXBlID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscy5jaGVja0xpc3RUeXBlO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSBbXTtcclxuICAgICAgICAgIHRoaXMuY292ZXJhZ2UgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb3ZlcmFnZTtcclxuICAgICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbLi4udGhpcy5zaW5nbGVBc3NpZ24sLi4udGhpcy5ncm91cEFzc2lnbl1cclxuICAgICAgICAgIHRoaXMuc2VsZWN0UmFkaW8odGhpcy5jb3ZlcmFnZSlcclxuICAgICAgICAgIC8vIHRoaXMuY292ZXJhZ2UgPT09ICdzdG9yZScgPyB0aGlzLnN0b3JlQ292ZXJhZ2UgPSB0cnVlIDogdGhpcy51c2VyQ292ZXJhZ2UgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVVzZXJzID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnJlbW92ZWRVc2VycyB8fCBbXTtcclxuICAgICAgICAgIC8vIHRoaXMuYXBwcm92ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyPy5sZW5ndGggPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnJlbWFpbmRlciA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZW1haW5kZXI/Lmxlbmd0aCA/IHRydWU6IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50aW1lTG9vcCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZW1haW5kZXI/Lmxlbmd0aCA/IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5sZW5ndGggfSwgKF8sIGkpID0+IGkpIDogWzBdO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnB1Ymxpc2hEYXRlKSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRlID0gdGhpcy5kYXlqcygpO1xyXG4gICAgICAgICAgICBpZihkYXRlLmRpZmYodGhpcy5kYXlqcy51dGModGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5wdWJsaXNoRGF0ZSksJ21pbnV0ZXMnKSA8IDUpIHtcclxuICAgICAgICAgICAgICBsZXQgc3RhcnRJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGRhdGUgPSB0aGlzLmRheWpzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkUHVibGlzaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZihkYXRlLmRpZmYodGhpcy5kYXlqcy51dGModGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5wdWJsaXNoRGF0ZSksJ21pbnV0ZXMnKSA+PSA1KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRQdWJsaXNoID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoc3RhcnRJbnRlcnZhbCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0sMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVVc2VycyA9IHJlcy5kYXRhPy5jaGVja0xpc3REZXRhaWxzPy5yZW1vdmVkVXNlcnMgfHwgW107XHJcbiAgICAgICAgICAvLyB0aGlzLnpvbmVzID0gdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5kZXRlY3Rpb25BcmVhIHx8IFtdO1xyXG4gICAgICAgICAgdGhpcy5zZWN0aW9ucyA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNlY3Rpb25zO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSB0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlV2Vla0RheXMgfHwgW107XHJcbiAgICAgICAgICB0aGlzLmVuZFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lID8gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lLCAgJ2g6bW0gQScpLmZvcm1hdCgnSEg6bW0nKSA6ICcyMjowMCc7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVN0YXJ0VGltZSA/IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlU3RhcnRUaW1lLCAnaDptbSBBJykuZm9ybWF0KCdISDptbScpIDogJzEwOjAwJztcclxuICAgICAgICAgIHRoaXMucmVwZWF0VHlwZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSAnZGFpbHknID8gJ0RheScgOiBbJ3dlZWtseScsJ3dlZWtkYXknXS5pbmNsdWRlcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUpID8gJ1dlZWsnIDogJ01vbnRoJztcclxuICAgICAgICAgIGlmKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IFwiMTA6MDAgUE1cIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYoIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVN0YXJ0VGltZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IFwiMTA6MDAgQU1cIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBpZiAodGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGVydD8uYWxlcnRzVG8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAvLyAgIHRoaXMuZW1haWxMaXN0ID0gdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGVydD8uYWxlcnRzVG87XHJcbiAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1JhbmdlVmFsdWUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlICE9ICcnICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gbnVsbCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSAnJyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpOyBcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RhcnREYXRlID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgICAgICAgICAgdGhpcy5taW5TdGFydERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9ICcnICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICAgICAgICAgIHRoaXMubWluRW5kRGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ21vbnRobHknKSB7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXRlJykge1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsuc3BsaXQoJyAnKT8ubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoRGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrLnNwbGl0KCcgJylbMF07XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubW9udGhEYXkgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2Vlay5zcGxpdCgnICcpWzFdO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gJyc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnc3BlY2lmaWMnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNwZWNpZmljRGF0ZSB8fCBbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdGhpcy5zdWJtaXR0ZWREYXRlcztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSAncmFuZ2UnICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNwZWNpZmljID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAnb25ldGltZScpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID8gdGhpcy5kYXlqcy51dGModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoKSA6IGRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgICAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUpLmZvcm1hdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gdGhpcy51c2VyRGV0YWlsc1YyKCk7XHJcbiAgICAgICAgICAvLyB0aGlzLmdldGFzc2lnbkRyb3Bkb3duKCk7IFxyXG4gICAgICAgICAgLy8gdGhpcy5nZXR0YWJsZURhdGEoKTtcclxuICAgICAgICAgIHRoaXMuZ2V0Q2xpZW50VXNlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5jb2RlID09IDQwMykge1xyXG4gICAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Vycm9yNDAzJ10pXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QUljb25maWcoKSB7XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0QUljb25maWcodGhpcy5vYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6YW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhID0gcmVzLmRhdGE7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHM/Lmxlbmd0aCAmJiBbJ3NjcnVtJywnY2xlYW5pbmcnXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHMucHVzaCh7dGltZTp0aGlzLmRheWpzKCkuZm9ybWF0KCdISDptbScpLGR1cmF0aW9uOiBcIjE1XCJ9KVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyAmJiBbJ3NjcnVtJywgJ2NsZWFuaW5nJ10uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9ICdnbG9iYWwnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IFtdO1xyXG4gICAgICAgIC8vIHRoaXMuY292ZXJhZ2UgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb3ZlcmFnZTtcclxuICAgICAgICAvLyB0aGlzLmNoZWNrbGlzdElkID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscy5faWQ7XHJcbiAgICAgICAgLy8gdGhpcy50eXBlID0gcmVzLmRhdGEuY2hlY2tMaXN0RGV0YWlscy5jaGVja0xpc3RUeXBlO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2xpZW50VXNlcigpO1xyXG4gICAgICB9XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgaWYgKGVycm9yLmNvZGUgPT0gNDAzKSB7XHJcbiAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZXJyb3I0MDMnXSlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRJbml0aWFsRGF0YShkYXRhOiBhbnksIGNoYW5nZT86IGFueSkge1xyXG4gICAgbGV0IHRlbXBJZCA9IGRhdGEubWFwKChlbDogYW55KSA9PiBlbD8uaWQpXHJcbiAgICBsZXQgcmVzID0gdGhpcy5zdG9yZUxpc3QuZmlsdGVyKChlbDogYW55KSA9PiB0ZW1wSWQuaW5jbHVkZXMoZWw/Ll9pZCkpO1xyXG4gICAgcmVzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5pc1NlbGVjdGVkID0gdHJ1ZSk7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSByZXM7XHJcbiAgICBpZiAodGhpcy5hc3NpZ25UeXBlID09PSAnc3RvcmUnIHx8IHRoaXMuYXNzaWduVHlwZSA9PT0gJ3VzZXInKSB7XHJcbiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudGFibGVMb2FkaW5nMSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNob3dJbWFnZSA9IHRydWU7XHJcbiAgICAgIC8vIHRoaXMudXNlckRldGFpbHMoKSwgXHJcbiAgICAgIC8vICh0aGlzLmFzc2lnblR5cGUgPT09ICdzdG9yZScgJiYgdGhpcy5pbml0aWFsTG9hZGluZykgPyAodGhpcy5pbml0aWFsTG9hZGluZyA9IGZhbHNlKSA6IHRoaXMuZ2V0VGFibGVEYXRhKGNoYW5nZSA/IGNoYW5nZSA6ICcnKTtcclxuICAgICAgdGhpcy5pZExpc3QgPSB0aGlzLnNpbmdsZUFzc2lnbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaWRMaXN0ID0gdGhpcy5ncm91cEFzc2lnbjtcclxuICAgICAgdGhpcy51c2VyRGV0YWlsc1YyKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRhYmxlRGF0YShjaGFuZ2U/OiBhbnkpIHtcclxuICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICBpZiAodGhpcy5hc3NpZ25TaW5nbGU/Lmxlbmd0aCkge1xyXG4gICAgICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduLmxlbmd0aCAhPSB0aGlzLmFzc2lnblNpbmdsZS5sZW5ndGgpIHtcclxuICAgICAgICBjb3VudCsrO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbi5mb3JFYWNoKChhc3NpZ246YW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGZpbmRMaXN0ID0gdGhpcy5hc3NpZ25TaW5nbGUuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmVJZCA9PSBhc3NpZ24uc3RvcmVJZCk7XHJcbiAgICAgICAgaWYgKGZpbmRMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKGZpbmRMaXN0Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoYXNzaWduLnVzZXJFbWFpbC50b0xvd2VyQ2FzZSgpICE9IGZpbmRMaXN0WzBdLnVzZXJFbWFpbC50b0xvd2VyQ2FzZSgpICYmIHRoaXMuY292ZXJhZ2UgPT09ICdzdG9yZScpIHtcclxuICAgICAgICAgICAgICBhc3NpZ24udXNlckVtYWlsID0gZmluZExpc3RbMF0udXNlckVtYWlsO1xyXG4gICAgICAgICAgICAgIGFzc2lnbi51c2VyTmFtZSA9IGZpbmRMaXN0WzBdLnVzZXJOYW1lO1xyXG4gICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAoY291bnQpIHtcclxuICAgICAgICB0aGlzLnVwbG9hZCA9IGNoYW5nZSA/ICd1cGxvYWQnIDogJ3N0b3JlJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgIFxyXG4gICAgLy8gdGhpcy50YWJsZUFycmF5ID0gdGhpcy5hc3NpZ25TaW5nbGUgPyB0aGlzLmFzc2lnblNpbmdsZSA6IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbjtcclxuICAgIGNoYW5nZSA/IHRoaXMudGFibGVBcnJheSA9IHRoaXMuYXNzaWduU2luZ2xlIDogW107XHJcbiAgICBpZiAodGhpcy51cGxvYWQgPT09ICdzdG9yZScpIHtcclxuICAgICAgXHJcbiAgICAgIGxldCB0YWJsZSA9IFsuLi50aGlzLnRhYmxlQXJyYXksIC4uLnRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbl07XHJcbiAgICAgIGxldCB1bmlxdWVUYWJsZSA9IG5ldyBNYXAoKTtcclxuICAgICAgLy8gQ29udmVydCBvYmplY3RzIHRvIEpTT04gc3RyaW5ncyBmb3IgZnVsbCBjb21wYXJpc29uXHJcbiAgICAgIHRhYmxlLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGl0ZW0gPSB7XHJcbiAgICAgICAgICBzdG9yZU5hbWU6IGl0ZW0/LnN0b3JlTmFtZSxcclxuICAgICAgICAgIHN0b3JlSWQ6IGl0ZW0uc3RvcmVJZCxcclxuICAgICAgICAgIHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwudG9Mb3dlckNhc2UoKSxcclxuICAgICAgICAgIHVzZXJOYW1lOiBpdGVtLnVzZXJOYW1lLFxyXG4gICAgICAgICAgX2lkOml0ZW0uX2lkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgX2lkOiBpdGVtLl9pZCxcclxuICAgICAgICAgIC4uLih0aGlzLnN0b3JlQ292ZXJhZ2UpPyB7IHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwudG9Mb3dlckNhc2UoKSAsc3RvcmVOYW1lOiBpdGVtPy5zdG9yZU5hbWV9Ont9LFxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgbGV0IGtleSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOyAvLyBDb252ZXJ0IGVudGlyZSBvYmplY3QgdG8gc3RyaW5nIGFzIGEga2V5XHJcbiAgICAgICAgaWYgKCF1bmlxdWVUYWJsZS5oYXMoZGF0YSkpIHtcclxuICAgICAgICAgIHVuaXF1ZVRhYmxlLnNldChrZXksIGl0ZW0pOyAvLyBTdG9yZSB0aGUgb2JqZWN0IG9ubHkgaWYgaXQncyBjb21wbGV0ZWx5IHVuaXF1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYXNzaWduU2luZ2xlID0gQXJyYXkuZnJvbSh1bmlxdWVUYWJsZS52YWx1ZXMoKSk7XHJcbiAgICAgIHRoaXMudGFibGVBcnJheSA9IHRoaXMuYXNzaWduU2luZ2xlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnVwbG9hZCA9PT0gJ3VwbG9hZCcpIHtcclxuICAgICAgdGhpcy50YWJsZUFycmF5ID0gdGhpcy5hc3NpZ25TaW5nbGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlQXJyYXkgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ247XHJcbiAgICAgIHRoaXMuYXNzaWduU2luZ2xlID0gdGhpcy50YWJsZUFycmF5O1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZUFycmF5Py5sZW5ndGggPyB0aGlzLnNob3dJbWFnZSA9IGZhbHNlIDogdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgdGhpcy5yZWNvcmRzVG90YWwgPSB0aGlzLnRhYmxlQXJyYXkubGVuZ3RoO1xyXG4gICAgaWYodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsMTAsMTUsMjBdO1xyXG4gICAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVBcnJheS5zbGljZSgodGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpIC0gdGhpcy5zaXplLCB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSk7XHJcbiAgfVxyXG5cclxuICBhY2NvcmRpYW4oaW5kZXg6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuc2hvdyA9PSBpbmRleCkge1xyXG4gICAgICB0aGlzLnNob3cgPSAtMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IGluZGV4O1xyXG5cclxuICAgIH1cclxuICB9XHJcbiAgY29uZmlnYWNjb3JkaWFuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93Y29uZmlnID0gIXRoaXMuc2hvd2NvbmZpZztcclxuICB9XHJcbiAgYWR2YW5jZWFjY29yZGlhbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd2FkdmFuY2UgPSAhdGhpcy5zaG93YWR2YW5jZTtcclxuICB9XHJcbiAgQ2hlY2tsaXN0KCkge1xyXG4gICAgLy8gdGhpcy5tb2JpbGV1c2FnZWRldGVjdGlvbiA9IHRydWU7XHJcbiAgICAvLyB0aGlzLnN0b3Jlb3BlbmFuZGNsb3NlZGV0ZWN0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG4gIG9taXRfc3BlY2lhbF9jaGFyKGV2ZW50OiBhbnkpIHtcclxuICAgIHZhciBrO1xyXG4gICAgayA9IGV2ZW50LmNoYXJDb2RlOyAgLy8gICAgICAgICBrID0gZXZlbnQua2V5Q29kZTsgIChCb3RoIGNhbiBiZSB1c2VkKVxyXG4gICAgcmV0dXJuIChrID09IDggfHwgayA9PSAzMiB8fCAoayA+PSA0OCAmJiBrIDw9IDU3KSk7XHJcblxyXG4gIH1cclxuXHJcbiAgY2xpY2tBSWNvbmZpZ3VyZSh2YWx1ZTphbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hc3NpZ25Db25maWcgPSB2YWx1ZTtcclxuICAgIHRoaXMuY29uZmlndXJlVHlwZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUxpbWl0KGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPCAxNSAmJiB0aGlzLnR5cGUgPT0nbW9iaWxldXNhZ2VkZXRlY3Rpb24nKSB7XHJcbiAgICAgIC8vIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLmVycm9ybXNnID0gdHJ1ZTtcclxuICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxlcnQudXNhZ2VFeGNlZWRzID0gJyc7XHJcbiAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJyAmJiAhdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5vcGVuVGltZSAmJiAhdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWUpIHtcclxuICAgICAgdGhpcy5jaGVja0J1ZmZlciA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmVycm9ybXNnID0gZmFsc2U7XHJcblxyXG4gIH1cclxuXHJcbiAgY292ZXJhZ2U6IGFueSA9ICdzdG9yZSc7XHJcblxyXG4gIHNlbGVjdFJhZGlvKGRhdGE6IGFueSwgY2hhbmdlPzogYW55KSB7XHJcbiAgICB0aGlzLmNvdmVyYWdlID0gZGF0YTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICB0aGlzLnRhYmxlRmlsdGVyID0gJyc7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSBbXTtcclxuICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIGlmIChkYXRhID09PSAnc3RvcmUnKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVDb3ZlcmFnZSA9IHRydWU7XHJcbiAgICAgIHRoaXMudXNlckNvdmVyYWdlID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGEgPT09ICd1c2VyJykge1xyXG4gICAgICB0aGlzLnVzZXJDb3ZlcmFnZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3RvcmVDb3ZlcmFnZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RJbml0aWFsVGFiKCk7XHJcbiAgICBpZiAodGhpcy5jb3ZlcmFnZSA9PT0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY292ZXJhZ2UpIHtcclxuICAgICAgdGhpcy5zaW5nbGVBc3NpZ24gPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zaW5nbGVBc3NpZ247XHJcbiAgICAgIHRoaXMuZ3JvdXBBc3NpZ24gPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5ncm91cEFzc2lnbjtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hc3NpZ25UeXBlID8gdGhpcy51c2VyRGV0YWlscygpIDogJyc7XHJcbiAgICAgIH0sIDMwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaW5nbGVBc3NpZ24gPSBbXTsgdGhpcy5ncm91cEFzc2lnbiA9IFtdOyB0aGlzLmFzc2lnblNpbmdsZSA9IFtdLCB0aGlzLmFzc2lnbkdyb3VwID0gW107IHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTsgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRhc3NpZ25Ecm9wZG93bigpO1xyXG4gIH1cclxuXHJcbiAgZXhjZWxEYXRhOiBhbnk7XHJcbiAgc2hvd1VzZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93VGVhbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dTdG9yZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dDbHVzdGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG9uRmlsZVVwbG9hZChldmVudDogYW55LCByZXVwbG9hZD86IGFueSkge1xyXG4gICAgdGhpcy52YWxpZGF0ZWRTdG9yZSA9IFtdO1xyXG4gICAgdGhpcy52YWxpZGF0ZWRVc2VyID0gW107XHJcbiAgICB0aGlzLnZhbGlkYXRlZENsdXN0ZXIgPSBbXTtcclxuICAgIHRoaXMudmFsaWRhdGVkVGVhbSA9IFtdO1xyXG4gICAgdGhpcy5uZXdVc2VyID0gW107XHJcbiAgICB0aGlzLmluYWN0aXZlU3RvcmVzID0gW107XHJcbiAgICB0aGlzLnNob3dVc2VyID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dUZWFtID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dTdG9yZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93Q2x1c3RlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93SW5hY3RpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMucmV1cGxvYWQgPSBmYWxzZTtcclxuICAgIHRoaXMudXBsb2FkID0gJ3VwbG9hZCc7XHJcbiAgICB0aGlzLnVzZXJEYXRhID0gdGhpcy5leGNlbFVzZXJEYXRhID0gW107XHJcbiAgICBsZXQgZGF0YTogYW55O1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSA8RGF0YVRyYW5zZmVyPihldmVudC50YXJnZXQpO1xyXG4gICAgbGV0IGlzRXhjZWxGaWxlID0gISF0YXJnZXQuZmlsZXNbMF0ubmFtZS5tYXRjaCgvKC54bHN8Lnhsc3gpLyk7XHJcbiAgICBsZXQgZXJyb3I6IGFueSA9IFtdO1xyXG4gICAgbGV0IFZhbGlkYXRpb25FcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKGlzRXhjZWxGaWxlKSB7XHJcbiAgICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiAnYmluYXJ5JyB9KTtcclxuICAgICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgICAgZGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih3cyk7XHJcbiAgICAgICAgdGhpcy5leGNlbERhdGEgPSBkYXRhO1xyXG4gICAgICAgIGlmKCFkYXRhLmxlbmd0aCB8fCAoZGF0YS5zb21lKChpdGVtOiBhbnkpID0+ICdjbHVzdGVyTmFtZScgaW4gaXRlbSB8fCAndGVhbU5hbWUnIGluIGl0ZW0pKSkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgVXBsb2FkIGEgVmFsaWQgZmlsZS4nKVxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcmVxdWlyZWRLZXlzID0gdGhpcy5zdG9yZUNvdmVyYWdlID8gWydzdG9yZU5hbWUnLCd1c2VyTmFtZScsICd1c2VyRW1haWwnXSA6IFsndXNlck5hbWUnLCAndXNlckVtYWlsJ107IC8vIE11c3QgYWx3YXlzIGJlIHByZXNlbnRcclxuICAgICAgICBjb25zdCBvcHRpb25hbEtleXMgPSB0aGlzLnN0b3JlQ292ZXJhZ2UgPyBbJ3VzZXJQaG9uZScsICdjaXR5J10gOiBbJ2NpdHknXTtcclxuICAgICAgICBcclxuICAgICAgICBjb25zdCBpc1ZhbGlkID0gZGF0YS5zb21lKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhpdGVtKTtcclxuICAgICAgICAgIGNvbnN0IGhhc1JlcXVpcmVkS2V5cyA9IHJlcXVpcmVkS2V5cy5ldmVyeShrZXkgPT4ga2V5cy5pbmNsdWRlcyhrZXkpKTtcclxuICAgICAgICAgIGNvbnN0IGFsbEtleXNBcmVBbGxvd2VkID0ga2V5cy5ldmVyeShrZXkgPT4gXHJcbiAgICAgICAgICAgIHJlcXVpcmVkS2V5cy5pbmNsdWRlcyhrZXkpIHx8IG9wdGlvbmFsS2V5cy5pbmNsdWRlcyhrZXkpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuIGhhc1JlcXVpcmVkS2V5cyAmJiBhbGxLZXlzQXJlQWxsb3dlZDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKCFpc1ZhbGlkKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBVcGxvYWQgYSBWYWxpZCBmaWxlLicpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZGF0YSA9IGRhdGEuZmlsdGVyKChpdGVtOmFueSkgPT4ge1xyXG4gICAgICAgIC8vICAgcmV0dXJuICgoaXRlbT8uc3RvcmVOYW1lICYmIGl0ZW0/LnN0b3JlTmFtZS50cmltKCkgIT0gJycgJiYgaXRlbT8uc3RvcmVOYW1lLnRyaW0oKSAhPSBudWxsKSB8fCAoaXRlbT8udXNlck5hbWUgJiYgaXRlbT8udXNlck5hbWUudHJpbSgpICE9ICcnICYmIGl0ZW0/LnVzZXJOYW1lLnRyaW0oKSAhPSBudWxsKSB8fCAoaXRlbT8udXNlckVtYWlsICYmIGl0ZW0/LnVzZXJFbWFpbC50cmltKCkgIT0gJycgJiYgaXRlbT8udXNlckVtYWlsLnRyaW0oKSAhPSBudWxsKSlcclxuICAgICAgICAvLyB9KVxyXG4gIFxyXG4gICAgICAgIGRhdGEuZm9yRWFjaCgoZWxlbWVudDogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudD8udXNlckVtYWlsKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQudXNlckVtYWlsID0gZWxlbWVudD8udXNlckVtYWlsLnJlcGxhY2UoL1xccy9nLCcnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnN0b3JlQ292ZXJhZ2UpIHtcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudD8uc3RvcmVOYW1lPy50cmltKCkgPT0gJycgfHwgZWxlbWVudC5zdG9yZU5hbWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgZXJyb3IucHVzaChgSW52YWxpZCBTdG9yZU5hbWUgLSBBJHtpbmRleCsyfWApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyTmFtZS50cmltKCkgPT0gJycgfHwgZWxlbWVudC51c2VyTmFtZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFVzZXJOYW1lIC0gQiR7aW5kZXgrMn1gKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudD8udXNlckVtYWlsPy50cmltKCkgPT0gJycgfHwgZWxlbWVudC51c2VyRW1haWwgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgZXJyb3IucHVzaChgSW52YWxpZCB1c2VyRW1haWwgLSBDJHtpbmRleCsyfWApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyRW1haWwgJiYgIWVsZW1lbnQudXNlckVtYWlsLm1hdGNoKC9eW2EtekEtWjAtOS5fLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Miw2fSQvKSkge1xyXG4gICAgICAgICAgICAgICAgZXJyb3IucHVzaChgSW52YWxpZCB1c2VyRW1haWwgLSBDJHtpbmRleCsyfWApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50LmNsdXN0ZXJOYW1lKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5jbHVzdGVyTmFtZS50cmltKCkgPT0gJycgfHwgZWxlbWVudC5jbHVzdGVyTmFtZSA9PSBudWxsKSB7IGVycm9yLnB1c2goYEludmFsaWQgY2x1c3Rlck5hbWUgLSBEJHtpbmRleCArIDJ9YCkgfVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNlckNvdmVyYWdlICYmICFlbGVtZW50Py5zdG9yZU5hbWUpIHtcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKSA9PSAnJyB8fCBlbGVtZW50LnVzZXJOYW1lID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgVXNlck5hbWUgLSBBJHtpbmRleCsyfWApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyRW1haWw/LnRyaW0oKSA9PSAnJyB8fCBlbGVtZW50LnVzZXJFbWFpbCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIHVzZXJFbWFpbCAtIEIke2luZGV4KzJ9YClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQ/LnVzZXJFbWFpbCAmJiAhZWxlbWVudC51c2VyRW1haWwubWF0Y2goL15bYS16QS1aMC05Ll8tXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLDZ9JC8pKSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIHVzZXJFbWFpbCAtIEIke2luZGV4KzJ9YClcclxuICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50LnRlYW1OYW1lKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC50ZWFtTmFtZS50cmltKCkgPT0gJycgfHwgZWxlbWVudC50ZWFtTmFtZSA9PSBudWxsKSB7IGVycm9yLnB1c2goYEludmFsaWQgdGVhbU5hbWUgLSBDJHtpbmRleCArIDJ9YCkgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIHVwbG9hZCBhIHZhbGlkIGZpbGUuJylcclxuICAgICAgICAgICAgVmFsaWRhdGlvbkVycm9yID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnN0b3JlQ292ZXJhZ2UpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gJ3N0b3JlJykge1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBzdG9yZU5hbWU6IGVsZW1lbnQ/LnN0b3JlTmFtZT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdXNlck5hbWU6IGVsZW1lbnQ/LnVzZXJOYW1lPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGVsZW1lbnQ/LnVzZXJFbWFpbD8udG9Mb3dlckNhc2UoKT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdXNlclBob25lOiBlbGVtZW50Py51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgICAgICAvLyBjaGVja0ZsYWc6IGVsZW1lbnQ/LmNoZWNrID8gZWxlbWVudC5jaGVjayA6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogZWxlbWVudD8uY2l0eSxcclxuICAgICAgICAgICAgICAgIHR5cGU6J3N0b3JlJ1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHN0b3JlTmFtZTogZWxlbWVudD8uc3RvcmVOYW1lPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyTmFtZTogZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogZWxlbWVudD8udXNlckVtYWlsPy50b0xvd2VyQ2FzZSgpPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICBjbHVzdGVyTmFtZTogZWxlbWVudD8uY2x1c3Rlck5hbWUsXHJcbiAgICAgICAgICAgICAgICB1c2VyUGhvbmU6IGVsZW1lbnQ/LnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgICAgIC8vIGNoZWNrRmxhZzogZWxlbWVudD8uY2hlY2sgPyBlbGVtZW50LmNoZWNrIDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjaXR5OiBlbGVtZW50Py5jaXR5LFxyXG4gICAgICAgICAgICAgICAgdHlwZTonY2x1c3RlcidcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNlckNvdmVyYWdlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFzc2lnblR5cGUgPT09ICd1c2VyJykge1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICB1c2VyTmFtZTogZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogZWxlbWVudD8udXNlckVtYWlsPy50b0xvd2VyQ2FzZSgpPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyUGhvbmU6IGVsZW1lbnQ/LnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgICAgIC8vIGNoZWNrRmxhZzogZWxlbWVudD8uY2hlY2sgPyBlbGVtZW50LmNoZWNrIDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB0eXBlOid1c2VyJ1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHVzZXJOYW1lOiBlbGVtZW50Py51c2VyTmFtZT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdXNlckVtYWlsOiBlbGVtZW50Py51c2VyRW1haWw/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHRlYW1OYW1lOiBlbGVtZW50Py50ZWFtTmFtZSxcclxuICAgICAgICAgICAgICAgIHVzZXJQaG9uZTogZWxlbWVudD8udXNlclBob25lLFxyXG4gICAgICAgICAgICAgICAgLy8gY2hlY2tGbGFnOiBlbGVtZW50Py5jaGVjayA/IGVsZW1lbnQuY2hlY2sgOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZWFtcydcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICBpZiAoZXJyb3IubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKCk7XHJcbiAgICAgICAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgaW1hZ2VzcmM6ICBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICAgICAgdGl0bGU6IGBJbnZhbGlkIGRldGFpbHMhYCxcclxuICAgICAgICAgICAgY29udGVudDogYFBsZWFzZSBwcm92aWRlIGNvcnJlY3QgYW5kIGNvbXBsZXRlIHN0b3JlIGluZm9ybWF0aW9uLmAsXHJcbiAgICAgICAgICAgIGJ1dHRvbnR5cGU6ICdlcnJvcicsXHJcbiAgICAgICAgICAgIGVycm9yOmVycm9yXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmFmdGVyVXBsbG9hZChwb3B1cGNvbnRlbnQpXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgIVZhbGlkYXRpb25FcnJvciA/IHRoaXMuYWZ0ZXJVcGxsb2FkKCkgOiAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIFVwbG9hZCBhIEV4Y2VsIGZpbGUuJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVVzZXJEZXRhaWxzKGRlbD86YW55KSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBpZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgYXNzaWduZWRVc2VyczogdGhpcy51c2VyRGF0YSxcclxuICAgICAgdXBsb2FkVXNlcjogdHJ1ZSxcclxuICAgICAgdHlwZTogdGhpcy5vYmo/LnR5cGUgJiYgWydtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3N0b3Jlb3BlbmFuZGNsb3NlJ10uaW5jbHVkZXModGhpcy5vYmoudHlwZSkgPyB0aGlzLm9iai50eXBlIDogJycsXHJcbiAgICAgIC4uLihkZWwpID8ge2RlbGV0ZTpmYWxzZX0gOiB7fSxcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgfVxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLnZhbGlkYXRlVXNlcihwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdmFsaWRhdGU6Qm9vbGVhbiA9IHRydWU7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICBpZiAocmVzPy5kYXRhPy5FeGlzdHNFbWFpbD8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QocmVzPy5kYXRhPy5FeGlzdHNFbWFpbC5qb2luKCcsICcpICsgJyAnICsgcmVzPy5kYXRhPy5tZXNzYWdlKTtcclxuICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChyZXM/LmRhdGE/LmlkKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5faWQgPSByZXMuZGF0YS5pZDtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0SWQgPSByZXMuZGF0YS5pZDtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudXNlckRldGFpbHMoKTtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZXM/LmRhdGE/LmRvbWFpbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbGV0IGVtYWlsID0gcmVzPy5kYXRhPy5kb21haW4ubWFwKChpdGVtOmFueSkgPT4gaXRlbS5lbWFpbClcclxuICAgICAgICAgICAgLy8gKycgJysnPGEgaHJlZj1cInByb2ZpbGUvZG9tYWluc1wiPkFkZCBkb21haW48L2E+J1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZW1haWwuam9pbignLCAnKSArICcgJyArICdEb21haW4gaXMgbm90IEV4aXN0cy4nKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAocmVzPy5kYXRhPy51c2VyPy5sZW5ndGggJiYgcmVzPy5kYXRhPy5zdG9yZT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGxldCBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgIGxldCBzdG9yZTogYW55ID0gW107XHJcbiAgICAgICAgICAgIGxldCBsb2NhdGlvbjogYW55ID0gW107XHJcbiAgICAgICAgICAgIGxldCBpbmFjdGl2ZVN0b3JlOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgc3RvcmUgPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBpdGVtLm1lc3NhZ2UgPT0gJyc7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgaW5hY3RpdmVTdG9yZSA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSA9PSAnc3RvcmUgaXMgaW5hY3RpdmUnXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgLy8gbG9jYXRpb24gPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgIHJldHVybiBpdGVtLm1lc3NhZ2UgIT0gJycgJiYgaXRlbS5tZXNzYWdlICE9ICdzdG9yZSBpcyBpbmFjdGl2ZSc7XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG5cclxuICAgICAgICAgICAgc3RvcmUgPSBbLi4ubmV3IFNldChzdG9yZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgaW5hY3RpdmVTdG9yZSA9IFsuLi4gbmV3IFNldChpbmFjdGl2ZVN0b3JlLm1hcCgoaXRlbTphbnkpID0+IGl0ZW0uc3RvcmUpKV07XHJcbiAgICAgICAgICAgIGxvY2F0aW9uID0gWy4uLm5ldyBTZXQobG9jYXRpb24ubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmUpKV07XHJcbiAgICAgICAgICAgIGlmIChzdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBgTmV3IFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgXHJcbiAgICAgICAgICAgICAgaWYoaW5hY3RpdmVTdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRpdGxlID0gYE5ldyBTdG9yZSBhbmQgSW5hY3RpdmUgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWBcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2VzcmM6ICcnLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgY29udGVudDogYFRoaXMgQ1NWIGNvbnRhaW5zIGEgbmV3IHN0b3JlLiBBZGQgbmV3IHN0b3JlcyBpbiB0aGUgU3RvcmUgTWFuYWdlbWVudCB1bmRlciBNYW5hZ2UgbWVudS5gLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9udHlwZTogJ0FkZHN0b3JlJyxcclxuICAgICAgICAgICAgICAgIHN1YnRpdGxlOiBzdG9yZS5qb2luKCcsICcpLFxyXG4gICAgICAgICAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uLmpvaW4oKSxcclxuICAgICAgICAgICAgICAgIGluYWN0aXZlU3RvcmVzOmluYWN0aXZlU3RvcmUuam9pbigpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYoaW5hY3RpdmVTdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICB0aXRsZTogYEluYWN0aXZlIFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgLFxyXG4gICAgICAgICAgICAgICAgY29udGVudDogYEluYWN0aXZlIHN0b3JlcyBmb3VuZCBpbiB0aGUgLmNzdi4gUGxlYXNlIGFjdGl2YXRlIG9yIHNraXAgdGhlbSB0byBwcm9jZWVkIHRvIGFzc2lnbi5gLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9udHlwZTogJ0FjdGl2ZXN0b3JlJyxcclxuICAgICAgICAgICAgICAgIHN1YnRpdGxlOiBpbmFjdGl2ZVN0b3JlLmpvaW4oJywgJyksXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChwb3B1cGNvbnRlbnQpIHtcclxuICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCcsYmFja2Ryb3AgOiAnc3RhdGljJ1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09ICdjb25maXJtU3RvcmUnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgbWFuYWdlL3N0b3Jlcy9hZGRpdGlvbi1tZXRob2RgKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0ID09ICdhY3RpdmVTdG9yZScpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzYClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhbGlkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gJ3NraXAnKSB7XHJcbiAgICAgICAgICAgICAgICAgIGxldCB1c2VyRGF0YUNvcHkgPSBbLi4udGhpcy51c2VyRGF0YV07XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgdXNlckRhdGFDb3B5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghc3RvcmUuaW5jbHVkZXMoaXRlbS5zdG9yZU5hbWUpICYmICFpbmFjdGl2ZVN0b3JlLmluY2x1ZGVzKGl0ZW0uc3RvcmVOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgICAgICAgIGlmICghdGhpcy51c2VyRGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBFbnRlciB2YWxpZCBEZXRhaWxzJylcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBsZXQgdXNlckRldGFpbHMgPSB0aGlzLnVzZXJEYXRhLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnVzZXJFbWFpbCk7XHJcbiAgICAgICAgICAgICAgICAgIGxldCB1c2VyID0gWy4uLnJlcy5kYXRhLnVzZXJdO1xyXG4gICAgICAgICAgICAgICAgICByZXMuZGF0YS51c2VyID0gW107XHJcbiAgICAgICAgICAgICAgICAgIHVzZXIuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJEZXRhaWxzLmluY2x1ZGVzKGl0ZW0udXNlckVtYWlsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGEudXNlci5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnVzZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGBJbnZpdGUgbmV3IHVzZXJzIGFkZGVkIGluIENTVmAsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgbmV3IHVzZXJzLiBJbnZpdGUgdXNlcnMgYnkgc2VuZGluZyBtYWlsIHRvIHRoZW1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgYnV0dG9udHlwZTogJ0ludml0ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyOiByZXMuZGF0YS51c2VyXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyxiYWNrZHJvcCA6ICdzdGF0aWMnXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ/Lm1lc3NhZ2UgPT0gJ2NvbmZpcm0nIHx8IHJlc3VsdCA9PSAnc2tpcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAnc2tpcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkgPSBbLi4udGhpcy51c2VyRGF0YV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhQ29weS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlckRldGFpbHMuaW5jbHVkZXMoaXRlbS51c2VyRW1haWwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD8udXNlci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMudXNlckRhdGEuZmluZEluZGV4KCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVzZXIudXNlckVtYWlsID09IGl0ZW0udXNlckVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpdGVtLmludml0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IGl0ZW0gb2YgcmVzLmRhdGEudXNlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0/Lm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGAke2l0ZW0udXNlckVtYWlsfSAtICR7aXRlbS5tZXNzYWdlfWApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudXNlckRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGBQbGVhc2UgRW50ZXIgdmFsaWQgRGV0YWlsc2ApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFVzZXIoZGVsKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAocmVzPy5kYXRhPy51c2VyPy5sZW5ndGggfHwgcmVzPy5kYXRhPy5zdG9yZT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGxldCBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgIGxldCBzdG9yZTogYW55ID0gW107XHJcbiAgICAgICAgICAgIGxldCBsb2NhdGlvbjogYW55ID0gW107XHJcbiAgICAgICAgICAgIGxldCBpbmFjdGl2ZVN0b3JlOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgaWYgKHJlcz8uZGF0YT8udXNlcj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IGBJbnZpdGUgbmV3IHVzZXJzIGFkZGVkIGluIENTVmAsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgbmV3IHVzZXJzLiBJbnZpdGUgdXNlcnMgYnkgc2VuZGluZyBtYWlsIHRvIHRoZW1gLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9udHlwZTogJ0ludml0ZScsXHJcbiAgICAgICAgICAgICAgICB1c2VyOiByZXMuZGF0YS51c2VyXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHN0b3JlID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm1lc3NhZ2UgPT0gJyc7XHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIGluYWN0aXZlU3RvcmUgPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSA9PSAnc3RvcmUgaXMgaW5hY3RpdmUnXHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIC8vIGxvY2F0aW9uID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAvLyAgIHJldHVybiBpdGVtLm1lc3NhZ2UgIT0gJyc7XHJcbiAgICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICAgIHN0b3JlID0gWy4uLm5ldyBTZXQoc3RvcmUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uc3RvcmUpKV07XHJcbiAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZSA9IFsuLi4gbmV3IFNldChpbmFjdGl2ZVN0b3JlLm1hcCgoaXRlbTphbnkpID0+IGl0ZW0uc3RvcmUpKV07XHJcbiAgICAgICAgICAgICAgbG9jYXRpb24gPSBbLi4ubmV3IFNldChsb2NhdGlvbi5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgICBpZiAoc3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBgTmV3IFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgXHJcbiAgICAgICAgICAgICAgICBpZihpbmFjdGl2ZVN0b3JlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICB0aXRsZSA9IGBOZXcgU3RvcmUgYW5kIEluYWN0aXZlIFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBhIG5ldyBzdG9yZS4gQWRkIG5ldyBzdG9yZXMgaW4gdGhlIFN0b3JlIE1hbmFnZW1lbnQgdW5kZXIgTWFuYWdlIG1lbnUuYCxcclxuICAgICAgICAgICAgICAgICAgYnV0dG9udHlwZTogJ0FkZHN0b3JlJyxcclxuICAgICAgICAgICAgICAgICAgc3VidGl0bGU6IHN0b3JlLmpvaW4oJywgJyksXHJcbiAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBsb2NhdGlvbi5qb2luKCksXHJcbiAgICAgICAgICAgICAgICAgIGluYWN0aXZlU3RvcmVzOmluYWN0aXZlU3RvcmUuam9pbigpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmKGluYWN0aXZlU3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogYEluYWN0aXZlIFN0b3JlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGVgLFxyXG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBgSW5hY3RpdmUgc3RvcmVzIGZvdW5kIGluIHRoZSAuY3N2LiBQbGVhc2UgYWN0aXZhdGUgb3Igc2tpcCB0aGVtIHRvIHByb2NlZWQgdG8gYXNzaWduLmAsXHJcbiAgICAgICAgICAgICAgICAgIGJ1dHRvbnR5cGU6ICdBY3RpdmVzdG9yZScsXHJcbiAgICAgICAgICAgICAgICAgIHN1YnRpdGxlOiBpbmFjdGl2ZVN0b3JlLmpvaW4oJywgJyksXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHN0b3JlX2lkOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgbG9jYXRpb24uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSB1c2VyRGF0YUNvcHkuZmluZCgoc3RvcmU6IGFueSkgPT4gaXRlbSA9PSBzdG9yZS5zdG9yZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXRhaWxzLmNpdHkgPT0gdW5kZWZpbmVkIHx8IGRldGFpbHMuY2l0eSA9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3RvcmVfaWQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIGlmIChzdG9yZV9pZC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYENpdHkgaXMgcmVxdWlyZWQgb24gdGhpcyBzdG9yZXMgJHtzdG9yZV9pZC5qb2luKCl9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChwb3B1cGNvbnRlbnQpIHtcclxuICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCcsYmFja2Ryb3AgOiAnc3RhdGljJ1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09ICdjb25maXJtU3RvcmUnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgbWFuYWdlL3N0b3Jlcy9hZGRpdGlvbi1tZXRob2RgKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0ID09ICdhY3RpdmVTdG9yZScpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzYClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ/Lm1lc3NhZ2UgPT0gJ2NvbmZpcm0nIHx8IHJlc3VsdCA9PSAnc2tpcCcpIHtcclxuICAgICAgICAgICAgICAgICAgdmFsaWRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09ICdza2lwJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB1c2VyRGF0YUNvcHkgPSBbLi4udGhpcy51c2VyRGF0YV07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LnVzZXI/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEZXRhaWxzID0gcmVzLmRhdGEudXNlci5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS51c2VyRW1haWwpXHJcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlckRldGFpbHMuaW5jbHVkZXMoaXRlbS51c2VyRW1haWwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHN0b3JlX2lkOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGV0YWlscyA9IHVzZXJEYXRhQ29weS5maW5kKChzdG9yZTogYW55KSA9PiBpdGVtID09IHN0b3JlLnN0b3JlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXRhaWxzLmNpdHkgPT0gdW5kZWZpbmVkIHx8IGRldGFpbHMuY2l0eSA9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlX2lkLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcmVfaWQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChgQ2l0eSBpcyByZXF1aXJlZCBvbiB0aGlzIHN0b3JlcyAke3N0b3JlX2lkLmpvaW4oKX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzPy5kYXRhPy5zdG9yZT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RvcmUuaW5jbHVkZXMoaXRlbS5zdG9yZU5hbWUpICYmICFpbmFjdGl2ZVN0b3JlLmluY2x1ZGVzKGl0ZW0uc3RvcmVOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py51c2VyLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy51c2VyRGF0YS5maW5kSW5kZXgoKHVzZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXNlci51c2VyRW1haWwgPT0gaXRlbS51c2VyRW1haWxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZW0uaW52aXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEuc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaXRlbSBvZiByZXMuZGF0YS51c2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbT8ubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYCR7aXRlbS51c2VyRW1haWx9IC0gJHtpdGVtLm1lc3NhZ2V9YClcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy51c2VyRGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIEVudGVyIHZhbGlkIERldGFpbHMnKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZFVzZXIoZGVsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9LChlcnJvcikgPT4ge1xyXG4gICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnJvci5lcnJvci5lcnJvcilcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVkU3RvcmU6IGFueSA9IFtdO1xyXG4gIHZhbGlkYXRlZFVzZXI6IGFueSA9IFtdO1xyXG4gIHZhbGlkYXRlZENsdXN0ZXI6IGFueSA9IFtdO1xyXG4gIHZhbGlkYXRlZFRlYW06IGFueSA9IFtdO1xyXG4gIG5ld1VzZXI6IGFueSA9IFtdO1xyXG4gIGluYWN0aXZlU3RvcmVzOiBhbnkgPSBbXTtcclxuICBzaG93SW5hY3RpdmU6IGFueT0gZmFsc2UgO1xyXG5cclxuICB2YWxpZGF0ZURldGFpbHMoYWRkVXNlcj86YW55KSB7XHJcbiAgICBsZXQgcGFyYW1zOmFueSA9IHtcclxuICAgICAgICBjaGVja2xpc3RJZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgICBhc3NpZ25lZFVzZXJzOiB0aGlzLnVzZXJEYXRhLFxyXG4gICAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICAgIGNvdmVyYWdlOiB0aGlzLmNvdmVyYWdlXHJcbiAgICAgIH1cclxuICAgIGFkZFVzZXIgPyBwYXJhbXMuYWRkVXNlciA9IHRydWUgOiAnJztcclxuICAgIHRoaXMuU29wU2VydmljZS52YWxpZGF0ZVVzZXJ2MShwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy51cGxvYWQgPT09ICdzdG9yZScpIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUFycmF5LnVuc2hpZnQoLi4ucmVzPy5kYXRhPy5kYXRhKTtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID0gdGhpcy50YWJsZUFycmF5O1xyXG4gICAgICAgICAgICBsZXQgZGF0YSA9IHRoaXMudGFibGVBcnJheS5tYXAoKGVsOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7IGlkOiBlbD8uX2lkLCB0eXBlOiBlbD8udHlwZSB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMuaWRMaXN0ID0gZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zaW5nbGVBc3NpZ24gPSB0aGlzLmlkTGlzdDtcclxuICAgICAgICAgICAgdGhpcy5hc3NpZ25UeXBlID09PSAndXNlcicgPyB0aGlzLmdldGFzc2lnbkRyb3Bkb3duKCdjaGFuZ2UnKSA6ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmdldFRhYmxlRGF0YSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gcmVzPy5kYXRhPy5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmFzc2lnblNpbmdsZSA9IHJlcz8uZGF0YT8uZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID0gdGhpcy50YWJsZUFycmF5O1xyXG4gICAgICAgICAgICBsZXQgZGF0YSA9IHJlcz8uZGF0YT8uZGF0YS5tYXAoKGVsOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7IGlkOiBlbD8uX2lkLCB0eXBlOiBlbD8udHlwZSB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMuaWRMaXN0ID0gZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zaW5nbGVBc3NpZ24gPSB0aGlzLmlkTGlzdDtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hc3NpZ25UeXBlID09PSAndXNlcicgPyB0aGlzLmdldGFzc2lnbkRyb3Bkb3duKCdjaGFuZ2UnKSA6ICcnOyBcclxuICAgICAgICAgICAgdGhpcy5nZXRUYWJsZURhdGEoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVycj8uZXJyb3I/LmVycm9yICYmIGVycj8uZXJyb3I/LmNvZGUgPT0gNDAwKSB7XHJcbiAgICAgICAgICBsZXQgZXJyb3JEYXRhID0gZXJyPy5lcnJvcj8uZXJyb3I7XHJcbiAgICAgICAgICB0aGlzLmV4Y2VsRGF0YSA9IGVycm9yRGF0YT8uZGF0YTtcclxuICAgICAgICAgIHRoaXMudXNlckRhdGEgPSBlcnJvckRhdGE/LmRhdGE7XHJcbiAgICAgICAgICBpZiAoZXJyb3JEYXRhLmV4aXN0RW1haWw/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYEFscmVhZHkgJHtlcnJvckRhdGEuZXhpc3RFbWFpbC50b1N0cmluZygpfSBhc3NpZ25lZCB0byBhbm90aGVyIGNsaWVudGApXHJcbiAgICAgICAgICB9ZWxzZSBpZiAoZXJyb3JEYXRhLnN0b3JlPy5sZW5ndGggJiYgIWVycm9yRGF0YS5leGlzdEVtYWlsPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZWRTdG9yZSA9IGVycm9yRGF0YT8uc3RvcmU7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1N0b3JlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5hZnRlclVwbGxvYWQoKTtcclxuICAgICAgICAgIH1lbHNlIGlmIChlcnJvckRhdGEuc3RvcmU/Lmxlbmd0aCAmJiBlcnJvckRhdGEuZXhpc3RFbWFpbD8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICFlcnJvckRhdGE/LmluQWN0aXZlU3RvcmVzPy5sZW5ndGggPyB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKCkgOiAnJztcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGBBbHJlYWR5ICR7ZXJyb3JEYXRhLnN0b3JlLnRvU3RyaW5nKCl9IGFzc2lnbmVkIHRvIGFub3RoZXIgY2xpZW50YClcclxuICAgICAgICAgIH1lbHNlIGlmIChlcnJvckRhdGE/LmluQWN0aXZlU3RvcmVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5pbmFjdGl2ZVN0b3JlcyA9IGVycm9yRGF0YT8uaW5BY3RpdmVTdG9yZXM7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0luYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5hZnRlclVwbGxvYWQoKTtcclxuICAgICAgICAgIH1lbHNlIGlmIChlcnJvckRhdGE/LnVzZXI/Lmxlbmd0aCAmJiAhZXJyb3JEYXRhPy5leGlzdEVtYWlsPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZWRVc2VyID0gZXJyb3JEYXRhLnVzZXI7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1VzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy51cGxvYWQgPT09ICdzdG9yZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1Vc2VycG9wdXAoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmFmdGVyVXBsbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ZWxzZSBpZiAoZXJyb3JEYXRhPy51c2VyPy5sZW5ndGggJiYgZXJyb3JEYXRhPy5leGlzdEVtYWlsPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpO1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYEFscmVhZHkgJHtlcnJvckRhdGE/LnVzZXIudG9TdHJpbmcoKX0gYXNzaWduZWQgdG8gYW5vdGhlciBjbGllbnRgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVycm9yRGF0YT8uZHVwbGljYXRlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKTtcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGAke2Vycm9yRGF0YT8uZHVwbGljYXRlcz8udG9TdHJpbmcoKX0gLSAke2Vycm9yRGF0YT8ubWVzc2FnZX1gKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pXHJcblxyXG4gIH0gXHJcblxyXG4gIGNoZWNrQnVmZmVyOiBhbnk7XHJcbiAgY2hhbmdlQnVmZmVyVGltZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuY2hlY2tCdWZmZXIgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIGlmICh0aGlzLmNoZWNrQnVmZmVyKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgPSAxO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLmNsb3NlVGltZSA9IDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lID0gMDtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWUgPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRUYWIodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZUFycmF5ID0gW107XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSB0cnVlO1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMuYXNzaWduVHlwZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSAxO1xyXG4gICAgdGhpcy5zaXplID0gNTtcclxuICAgIHRoaXMudGFibGVGaWx0ZXIgPSAnJztcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IFtdO1xyXG4gICAgdGhpcy5nZXRhc3NpZ25Ecm9wZG93bigpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VhY3RpdmVwb3B1cCgpIHtcclxuICAgIHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZFVzZXIoZGVsPzphbnkpIHtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBpZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgYXNzaWduZWRVc2VyczogdGhpcy51c2VyRGF0YSxcclxuICAgICAgdXBsb2FkVXNlcjogdHJ1ZSxcclxuICAgICAgYWRkVXNlcjogdHJ1ZSxcclxuICAgICAgdHlwZTogdGhpcy5vYmo/LnR5cGUgJiYgWydtb2JpbGV1c2FnZWRldGVjdGlvbicsICdzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHRoaXMub2JqLnR5cGUpID8gdGhpcy5vYmoudHlwZSA6ICcnLFxyXG4gICAgICAuLi4oZGVsKSA/IHtkZWxldGU6ZmFsc2V9IDoge30sXHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICAgIHRoaXMuU29wU2VydmljZS52YWxpZGF0ZVVzZXIoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuX2lkID0gcmVzcG9uc2UuZGF0YS5pZDtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdElkID0gcmVzcG9uc2UuZGF0YS5pZDtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gW107XHJcbiAgICAgICAgdGhpcy51c2VyRGV0YWlscygpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdG9yZUxpc3Q6IGFueSA9IFtdO1xyXG4gIHNlYXJjaEtleTogYW55ID0gW107XHJcblxyXG4gIGdldGFzc2lnbkRyb3Bkb3duKGNoYW5nZT86YW55KSB7XHJcbiAgICBcclxuICAgIGxldCBkYXRhID0geyAgXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5jbGllbnRJZCxcclxuICAgICAgXCJjb3ZlcmFnZVwiOiB0aGlzLmNvdmVyYWdlLFxyXG4gICAgICBcImFzc2lnblR5cGVcIjogdGhpcy5hc3NpZ25UeXBlXHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMuc3RvcmVMaXN0ID0gW107XHJcbiAgICAgdGhpcy5Tb3BTZXJ2aWNlLmdldGFzc2lnbkRyb3Bkb3duKGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXM/LmRhdGE/LmRhdGE7XHJcbiAgICAgICAgIGlmIChkYXRhPy5jb3ZlcmFnZSA9PT0gJ3N0b3JlJykge1xyXG4gICAgICAgICAgIHRoaXMuc2VhcmNoS2V5ID0gWydzdG9yZU5hbWUnLCdjbHVzdGVyTmFtZSddXHJcbiAgICAgICAgIH0gZWxzZSBpZiAoZGF0YT8uY292ZXJhZ2UgPT09ICd1c2VyJykge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hLZXkgPSBbJ3VzZXJOYW1lJywndGVhbU5hbWUnXVxyXG4gICAgICAgICB9XHJcblxyXG4gICAgICAgICAhY2hhbmdlID8gdGhpcy5nZXRJbml0aWFsRGF0YSgodGhpcy5hc3NpZ25UeXBlID09PSAnc3RvcmUnIHx8IHRoaXMuYXNzaWduVHlwZSA9PT0gJ3VzZXInKSA/IHRoaXMuc2luZ2xlQXNzaWduIDogdGhpcy5ncm91cEFzc2lnbiwgY2hhbmdlID8gY2hhbmdlIDogJycpIDogJyc7XHJcbiAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IFtdO1xyXG4gICAgICAgICB0aGlzLnRhYmxlQXJyYXkgPSBbXTtcclxuICAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlQ291bnRzKGRhdGE6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmVDb3ZlcmFnZSkge1xyXG4gICAgICBjb25zdCB1bmlxdWVTdG9yZU5hbWVzID0gbmV3IFNldChkYXRhPy5tYXAoKGl0ZW06YW55KSA9PiBpdGVtLnN0b3JlTmFtZSkpO1xyXG4gICAgICByZXR1cm4gdW5pcXVlU3RvcmVOYW1lcy5zaXplO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnVzZXJDb3ZlcmFnZSkge1xyXG4gICAgICBjb25zdCB1bmlxdWVVc2VyTmFtZXMgPSBuZXcgU2V0KGRhdGE/Lm1hcCgoaXRlbTphbnkpID0+IGl0ZW0udXNlck5hbWUpKTtcclxuICAgICAgcmV0dXJuIHVuaXF1ZVVzZXJOYW1lcy5zaXplO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXNlckRldGFpbHMoKSB7XHJcbiAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgaWQ6IHRoaXMuY2hlY2tsaXN0SWQsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkXHJcbiAgICB9XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0VXNlckRldGFpbHNWMShwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgICBpZiAocmVzID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVCdG4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dJbWFnZSA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVGaWx0ZXIubGVuZ3RoKVxyXG4gICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVMb2FkaW5nMSA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JlQ292ZXJhZ2UpIHtcclxuICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IHJlcy5kYXRhLnVzZXJEZXRhaWxzLmZpbHRlcigoZWw6IGFueSkgPT4gZWw/LmNsdXN0ZXJOYW1lID09ICcnICYmIGVsPy5zdG9yZUlkICE9ICcnKTtcclxuICAgICAgICAgIHRoaXMuYXNzaWduR3JvdXAgPSByZXMuZGF0YS51c2VyRGV0YWlscy5maWx0ZXIoKGVsOiBhbnkpID0+IGVsPy5jbHVzdGVyTmFtZSAhPT0gJycpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy51c2VyQ292ZXJhZ2UpIHtcclxuICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IHJlcy5kYXRhLnVzZXJEZXRhaWxzLmZpbHRlcigoZWw6IGFueSkgPT4gZWw/LnRlYW1OYW1lID09ICcnICYmIGVsPy51c2VyTmFtZSAhPSAnJyk7XHJcbiAgICAgICAgICB0aGlzLmFzc2lnbkdyb3VwID0gcmVzLmRhdGEudXNlckRldGFpbHMuZmlsdGVyKChlbDogYW55KSA9PiBlbD8udGVhbU5hbWUgIT09ICcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hc3NpZ25TaW5nbGUgPSB0aGlzLnRhYmxlQXJyYXk7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSB0aGlzLnRhYmxlQXJyYXkubGVuZ3RoO1xyXG4gICAgICAgIC8vIHRoaXMucmVjb3Jkc1RvdGFsID0gcmVzLmRhdGEuY291bnQ7XHJcbiAgICAgICAgaWYodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gW3RoaXMucmVjb3Jkc1RvdGFsXTtcclxuICAgICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwxMCwxNSwyMF07XHJcbiAgICAgICAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVBcnJheS5zbGljZSgodGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpIC0gdGhpcy5zaXplLCB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSk7XHJcbiAgICAgICAgdGhpcy50YWJsZURhdGEgPyB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlIDogdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyB0aGlzLmdldEluaXRpYWxEYXRhKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlVjIoKSB7XHJcbiAgICBsZXQgZXhjZWxEYXRhOiBhbnkgPSBbXTtcclxuICAgICAgaWYgKHRoaXMuc3RvcmVDb3ZlcmFnZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlQXJyYXkgPT0gbnVsbCB8fCAhdGhpcy50YWJsZUFycmF5Py5sZW5ndGgpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmFzc2lnblR5cGUgPT09ICdzdG9yZScpIHtcclxuICAgICAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgIHN0b3JlTmFtZTogJycsXHJcbiAgICAgICAgICAgICAgdXNlck5hbWU6ICcnLFxyXG4gICAgICAgICAgICAgIHVzZXJFbWFpbDogJycsXHJcbiAgICAgICAgICAgICAgdXNlclBob25lOiAnJyxcclxuICAgICAgICAgICAgICBjaXR5OicnXHJcbiAgICAgICAgICAgIH0pIFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgIHN0b3JlTmFtZTogJycsXHJcbiAgICAgICAgICAgICAgdXNlck5hbWU6ICcnLFxyXG4gICAgICAgICAgICAgIHVzZXJFbWFpbDogJycsXHJcbiAgICAgICAgICAgICAgY2x1c3Rlck5hbWU6ICcnLFxyXG4gICAgICAgICAgICAgIHVzZXJQaG9uZTogJycsXHJcbiAgICAgICAgICAgICAgY2l0eTonJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy50YWJsZUFycmF5ICYmIHRoaXMudGFibGVBcnJheT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFzc2lnblR5cGUgPT09ICdzdG9yZScpIHtcclxuICAgICAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBzdG9yZU5hbWU6IGl0ZW0uc3RvcmVOYW1lLFxyXG4gICAgICAgICAgICAgICAgdXNlck5hbWU6IGl0ZW0udXNlck5hbWUsXHJcbiAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGl0ZW0udXNlckVtYWlsLFxyXG4gICAgICAgICAgICAgICAgdXNlclBob25lOiBpdGVtLnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgICAgIGNpdHk6aXRlbS5jaXR5XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBzdG9yZU5hbWU6IGl0ZW0uc3RvcmVOYW1lLFxyXG4gICAgICAgICAgICAgICAgdXNlck5hbWU6IGl0ZW0udXNlck5hbWUsXHJcbiAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGl0ZW0udXNlckVtYWlsLFxyXG4gICAgICAgICAgICAgICAgY2x1c3Rlck5hbWU6IGl0ZW0uY2x1c3Rlck5hbWUsXHJcbiAgICAgICAgICAgICAgICB1c2VyUGhvbmU6IGl0ZW0udXNlclBob25lLFxyXG4gICAgICAgICAgICAgICAgY2l0eTppdGVtLmNpdHlcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnVzZXJDb3ZlcmFnZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlQXJyYXkgPT0gbnVsbCB8fCAhdGhpcy50YWJsZUFycmF5Py5sZW5ndGgpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmFzc2lnblR5cGUgPT09ICd1c2VyJykge1xyXG4gICAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgdXNlck5hbWU6ICcnLFxyXG4gICAgICAgICAgICAgIHVzZXJFbWFpbDogJycsXHJcbiAgICAgICAgICAgICAgdXNlclBob25lOiAnJyxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICB1c2VyTmFtZTogJycsXHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiAnJyxcclxuICAgICAgICAgICAgICB0ZWFtTmFtZTogJycsXHJcbiAgICAgICAgICAgICAgdXNlclBob25lOiAnJyxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVBcnJheSAmJiB0aGlzLnRhYmxlQXJyYXk/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZUFycmF5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hc3NpZ25UeXBlID09PSAndXNlcicpIHtcclxuICAgICAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICB1c2VyTmFtZTogaXRlbS51c2VyTmFtZSxcclxuICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwsXHJcbiAgICAgICAgICAgICAgICB1c2VyUGhvbmU6IGl0ZW0udXNlclBob25lLFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgdXNlck5hbWU6IGl0ZW0udXNlck5hbWUsXHJcbiAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGl0ZW0udXNlckVtYWlsLFxyXG4gICAgICAgICAgICAgICAgdGVhbU5hbWU6IGl0ZW0udGVhbU5hbWUsXHJcbiAgICAgICAgICAgICAgICB1c2VyUGhvbmU6IGl0ZW0udXNlclBob25lLFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuU29wU2VydmljZS5leHBvcnRBc0V4Y2VsRmlsZShleGNlbERhdGEsIGBDaGVja0xpc3RfJHt0aGlzLmFzc2lnblR5cGV9X2ApO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IGV2ZW50O1xyXG5cclxuICAgIGlmICh0aGlzLnRhYmxlRmlsdGVyKSB7XHJcbiAgICAgIC8vIHRoaXMuc2VhcmNoVGFibGVEYXRhKCk7XHJcbiAgICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gdGhpcy5zZWFyY2hUYWJsZS5sZW5ndGg7XHJcbiAgICAgIGlmKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwxMCwxNSwyMF07XHJcbiAgICAgICAgdGhpcy5zaXplID0gNTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMuc2VhcmNoVGFibGUuc2xpY2UoKHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplKSAtIHRoaXMuc2l6ZSwgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpO1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA/IHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UgOiB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVBcnJheS5zbGljZSgodGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpIC0gdGhpcy5zaXplLCB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSk7XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA/IHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UgOiB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaXplID0gZXZlbnQ7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSAxO1xyXG5cclxuICAgIGlmICh0aGlzLnRhYmxlRmlsdGVyKSB7XHJcbiAgICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gdGhpcy5zZWFyY2hUYWJsZS5sZW5ndGg7XHJcbiAgICAgIGlmICh0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gW3RoaXMucmVjb3Jkc1RvdGFsXTtcclxuICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsIDEwLCAxNSwgMjBdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5zZWFyY2hUYWJsZS5zbGljZSgodGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpIC0gdGhpcy5zaXplLCB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSk7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID8gdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZSA6IHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgIFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlQXJyYXkuc2xpY2UoKHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplKSAtIHRoaXMuc2l6ZSwgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpO1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA/IHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UgOiB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG9wZW5Ecm9wZG93bihldmVudDphbnkpIHtcclxuICAgIHRoaXMuZHJvcERvd24gPSAhdGhpcy5kcm9wRG93bjtcclxuICB9XHJcblxyXG4gIHNlYXJjaFRhYmxlOiBhbnk7XHJcbiAgc2VhcmNoVGFibGVEYXRhKCkge1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgc2VhcmNoRmllbGQ6IGFueSA9IFsnc3RvcmVOYW1lJywgJ3VzZXJOYW1lJywgJ3VzZXJFbWFpbCcsICdjbHVzdGVyTmFtZScsICd0ZWFtTmFtZSddO1xyXG5cclxuICAgIGlmICghdGhpcy50YWJsZUZpbHRlcikge1xyXG4gICAgICAodGhpcy5hc3NpZ25UeXBlID09PSdzdG9yZScgfHwgdGhpcy5hc3NpZ25UeXBlID09PSAndXNlcicpID8gdGhpcy5nZXRUYWJsZURhdGEoKSA6IHRoaXMudXNlckRldGFpbHNWMigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc2VhcmNoRGF0YSA9IHRoaXMudGFibGVGaWx0ZXIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgY29uc3Qgc2VhcmNoVGVybSA9IHNlYXJjaERhdGEuc3BsaXQoJywnKS5tYXAoKGVsOiBhbnkpID0+IGVsLnRyaW0oKSk7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGFibGUgPSB0aGlzLnRhYmxlQXJyYXk/LmZpbHRlcigoaXRlbTogYW55KSA9PiBcclxuICAgICAgICBzZWFyY2hGaWVsZC5zb21lKChmaWVsZDogYW55KSA9PiBzZWFyY2hUZXJtLnNvbWUoKHRlcm06IGFueSkgPT4gaXRlbVtmaWVsZF0/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGVybSkpKSk7XHJcbiAgICAgICAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHRoaXMuc2VhcmNoVGFibGUubGVuZ3RoO1xyXG4gICAgICAgICAgaWYodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsMTAsMTUsMjBdO1xyXG4gICAgICAgICAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5zZWFyY2hUYWJsZS5zbGljZSgodGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpIC0gdGhpcy5zaXplLCB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA/IHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UgOiB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzb3J0RGF0YSh2YWx1ZTphbnkpIHtcclxuICAgIHRoaXMuc29ydENvbHVtbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5zb3J0QnkgKj0gLTE7XHJcbiAgICAgIGNvbnN0IHNvcnRCeSA9IHBhcnNlSW50KCB0aGlzLnNvcnRCeSwgMTAgKSA9PT0gLTEgPyAtMSA6IDE7XHJcbiAgICAgICAgdGhpcy50YWJsZUFycmF5LnNvcnQoICggYTphbnksIGI6YW55ICkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gc29ydEJ5ICogKGFbdGhpcy5zb3J0Q29sdW1uXSB8fCAnJykubG9jYWxlQ29tcGFyZShiW3RoaXMuc29ydENvbHVtbl0gfHwgJycpO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlQXJyYXkuc2xpY2UoKHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplKSAtIHRoaXMuc2l6ZSwgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRmxhZyhldmVudDogYW55LCBpbmRleDogYW55LCBlbGVtZW50OiBhbnkpIHtcclxuICAgICAgICBcclxuICAgIGVsZW1lbnQuY2hlY2tGbGFnID0gZXZlbnQudGFyZ2V0LmNoZWNrZWRcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnJlbW92ZVVzZXJzLmZpbmRJbmRleCgoaXRlbTogYW55KSA9PiBpdGVtID09IGVsZW1lbnQuaWQpO1xyXG4gICAgICB0aGlzLnJlbW92ZVVzZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMucHVzaChlbGVtZW50LmlkKVxyXG4gICAgfVxyXG4gICAgaWYgKCFldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnJlbW92ZVVzZXJzLnB1c2goZWxlbWVudC5pZCk7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuZmluZEluZGV4KChpdGVtOiBhbnkpID0+IGl0ZW0gPT0gZWxlbWVudC5pZCk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVEYXRhW2luZGV4XS5jaGVja0ZsYWcgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5sZW5ndGggIT0gdGhpcy5yZWNvcmRzVG90YWwpIHtcclxuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGNoZWNrQWxsKGV2ZW50OiBhbnkpIHtcclxuICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbXTtcclxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpdGVtLmNoZWNrRmxhZyA9IHRydWVcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnJlbW92ZVVzZXJzLmZpbmRJbmRleCgoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGl0ZW0uaWQpO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICBpZighdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5pbmNsdWRlcyhpdGVtLmlkKSlcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMucHVzaChpdGVtLmlkKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpdGVtLmNoZWNrRmxhZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlVXNlcnMucHVzaChpdGVtLmlkKVxyXG4gICAgICAgIGxldCBpbmRleCA9ICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmZpbmRJbmRleCgoaWQ6YW55KSA9PiBpZCA9PSBpdGVtLmlkKTtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLnNwbGljZShpbmRleCwxKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBkYXRlU3BlY2lmaWMoZXZlbnQ6YW55KSB7XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ3JhbmdlJyAmJiBldmVudD8uc2VsZWN0ZWRMaXN0KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IGV2ZW50LnNlbGVjdGVkTGlzdDtcclxuICAgIH1cclxuICB9XHJcbiAgZGF0ZVJhbmdlU3RhcnQoZXZlbnQgOmFueSkge1xyXG4gICAgaWYoZXZlbnQgJiYgZXZlbnQuc3RhcnREYXRlKSB7XHJcbiAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSAnb25ldGltZScpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKVxyXG4gICAgICB9XHJcbiAgICB9ICAgXHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09ICdvbmV0aW1lJylcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGU7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZTtcclxuICAgICAgfVxyXG4gICAgfSBcclxuICAgIHRoaXMuc2VsZWN0ZWRTdGFydERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgpO1xyXG4gICAgdGhpcy5taW5EYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgpO1xyXG4gICAgdGhpcy5taW5FbmREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0gXCJcIjtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ3JhbmdlJykge1xyXG4gICAgICBpZihldmVudD8uc3RhcnREYXRlICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSAhPSBldmVudC5zdGFydERhdGUpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUpLmFkZCgxLCdkYXknKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYoZXZlbnQ/LnN0YXJ0RGF0ZSAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgIT0gZXZlbnQuc3RhcnREYXRlKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IFwiXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudmFsaWRhdGVUaW1lKCk7XHJcbiAgfVxyXG4gIFxyXG4gIGRhdGVSYW5nZUVuZChldmVudDphbnkpIHtcclxuICAgIGlmKGV2ZW50ICYmIGV2ZW50LmVuZERhdGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA+IHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJykpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSB0aGlzLmRheWpzKGV2ZW50LmVuZERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgpO1xyXG4gICAgICB0aGlzLnZhbGlkYXRlVGltZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8vIGRhdGVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcclxuICAvLyAgIHRoaXMuZGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuc3RhcnQpO1xyXG4gIC8vICAgdGhpcy5tb250aERhdGUgPSBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSA9PSAxID8gcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgKyAnc3QnIDogcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgPT0gMiA/IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpICsgJ25kJyA6IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpID09IDMgPyBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSArICdyZCcgOiBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSArICd0aCc7XHJcbiAgLy8gICB0aGlzLm1vbnRoRGF5ID0gdGhpcy5kYXRlLmZvcm1hdCgnZGRkZCcpO1xyXG4gIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcblxyXG4gIC8vICAgbGV0IHdlZWtOdW1iZXIgPSBnZXRXZWVrTnVtYmVyKHRoaXMuZGF0ZSk7XHJcbiAgLy8gICB0aGlzLk1vbnRod2Vla051bWJlciA9IHdlZWtOdW1iZXIgPT0gMSA/IHdlZWtOdW1iZXIgKyAnc3QnIDogd2Vla051bWJlciA9PSAyID8gd2Vla051bWJlciArICduZCcgOiB3ZWVrTnVtYmVyID09IDMgPyB3ZWVrTnVtYmVyICsgJ3JkJyA6IHdlZWtOdW1iZXIgKyAndGgnO1xyXG4gIC8vICAgdGhpcy5zZXRNb250aERhdGUodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXApO1xyXG4gIC8vIH1cclxuICAvLyBzZXREYXkoZGF5OiBhbnkpIHtcclxuICAvLyAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSBkYXk7XHJcbiAgLy8gfVxyXG4gIHNldERheShkYXk6c3RyaW5nKXtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF5cy5pbmNsdWRlcyhkYXkpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gdGhpcy5zZWxlY3RlZERheXMuZmlsdGVyKHNlbGVjdGVkRGF5ID0+IHNlbGVjdGVkRGF5ICE9PSBkYXkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMucHVzaChkYXkpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBzZXRNb250aERhdGUoZGF0YTogYW55KSB7XHJcbiAgLy8gICBpZiAoZGF0YSA9PSAnZGF0ZScpIHtcclxuICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9IFt0aGlzLm1vbnRoRGF0ZV07XHJcbiAgLy8gICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gW3RoaXMubW9udGhEYXRlXTsgXHJcbiAgLy8gICB9XHJcbiAgLy8gICBlbHNlIHtcclxuICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9IFt0aGlzLm1vbnRoRGF5XTtcclxuICAvLyAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbdGhpcy5tb250aERheV07IFxyXG4gIC8vICAgICBsZXQgd2Vla051bWJlciA9IGdldFdlZWtOdW1iZXIodGhpcy5kYXRlKTtcclxuICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHdlZWtOdW1iZXIgPT0gMSA/IHdlZWtOdW1iZXIgKyAnc3QnIDogd2Vla051bWJlciA9PSAyID8gd2Vla051bWJlciArICduZCcgOiB3ZWVrTnVtYmVyID09IDMgPyB3ZWVrTnVtYmVyICsgJ3JkJyA6IHdlZWtOdW1iZXIgKyAndGgnO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPSBkYXRhO1xyXG5cclxuICAvLyB9XHJcbiAgLy8gc2V0RGF0ZShldmVudDogYW55KSB7XHJcbiAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPSBldmVudC5zdGFydDtcclxuICAvLyB9XHJcbiAgXHJcbiAgcHVibGlzaChzaG93UG9wdXA6Ym9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmKFsnd2Vla2x5Jywnd2Vla2RheSddLmluY2x1ZGVzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlKSAmJiB0aGlzLnNlbGVjdGVkRGF5cy5sZW5ndGggPT0gMCl7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIHNlbGVjdCBhdGxlYXN0IDEgZGF5IHRvIHByb2NlZWQnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMudmFsaWRUaW1lKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBTY2hlZHVsZSBFbmQgVGltZScpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy5zaG93UmFuZ2VWYWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPScnOyBcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9Jyc7IFxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9Jyc7IFxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ21vbnRobHknICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXRlJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gdGhpcy5tb250aERhdGUgKycgJyt0aGlzLm1vbnRoRGF5O1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ21vbnRobHknICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdzcGVjaWZpYycpIHtcclxuICAgICAgaWYodGhpcy5zdWJtaXR0ZWREYXRlcy5sZW5ndGgpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zdWJtaXR0ZWREYXRlcztcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2Ugc2VsZWN0IGF0bGVhc3QgMSBkYXRlIHRvIHByb2NlZWQnKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdyYW5nZScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0O1xyXG4gICAgfVxyXG4gICAgaWYoc2hvd1BvcHVwKSB7XHJcbiAgICAgIGxldCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0QxRkFERlwiLz48cGF0aCBkPVwiTTM4IDI3LjA4MThWMjguMDAxOEMzNy45OTg4IDMwLjE1ODIgMzcuMzAwNSAzMi4yNTY1IDM2LjAwOTMgMzMuOTgzNkMzNC43MTgyIDM1LjcxMDggMzIuOTAzMyAzNi45NzQzIDMwLjgzNTQgMzcuNTg1N0MyOC43Njc0IDM4LjE5NzEgMjYuNTU3MyAzOC4xMjM3IDI0LjUzNDUgMzcuMzc2NEMyMi41MTE3IDM2LjYyOTEgMjAuNzg0NyAzNS4yNDc5IDE5LjYxMSAzMy40Mzg5QzE4LjQzNzMgMzEuNjI5OSAxNy44Nzk4IDI5LjQ4OTkgMTguMDIxNyAyNy4zMzgxQzE4LjE2MzYgMjUuMTg2NCAxOC45OTcyIDIzLjEzODEgMjAuMzk4MyAyMS40OTg5QzIxLjc5OTQgMTkuODU5NiAyMy42OTI4IDE4LjcxNzIgMjUuNzk2MiAxOC4yNDJDMjcuODk5NiAxNy43NjY3IDMwLjEwMDMgMTcuOTg0MiAzMi4wNyAxOC44NjE4TTM4IDIwLjAwMThMMjggMzAuMDExOEwyNSAyNy4wMTE4XCIgc3Ryb2tlPVwiIzAzOTg1NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUNGREYzXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgIHRpdGxlOiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHB1Ymxpc2ggJHt0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jaGVja0xpc3ROYW1lfSBjaGVja2xpc3Q/YCxcclxuICAgICAgICBjb250ZW50OiBgUHVibGlzaGluZyB3aWxsIG1ha2UgdGhpcyBjaGVja2xpc3QgbGl2ZSwgYW5kIGNoYW5nZXMgd2lsbCB0YWtlIGVmZmVjdCBpbW1lZGlhdGVseS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdjb25maXJtJ1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcsYmFja2Ryb3AgOiAnc3RhdGljJ30pO1xyXG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgdGhpcy5kZXRhc3NpZ25VcGRhdGUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVQdWJsaXNoKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5kZXRhc3NpZ25VcGRhdGUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMudXBkYXRlUHVibGlzaCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1Ymxpc2hBSShzaG93UG9wdXA6IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICBcclxuICAgIGlmICghdGhpcy5jb25maWdEYXRhLmNsaWVudElkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS50eXBlID0gdGhpcy50eXBlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5pZCA9IHRoaXMuY2hlY2tsaXN0SWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEucHVibGlzaCA9IHRydWU7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgIT09ICdzdG9yZScgPyB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZXZlbnRzIDogdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV2ZW50cyA9IFtdO1xyXG5cclxuICAgIGlmICh0aGlzLnR5cGUgPT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJyAmJiAhdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBFbnRlciB0aGUgVXNhZ2UgRXhjZWVkIER1cmF0aW9uJyk7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfWVsc2UgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nICYmIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWQgPCAxNSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLnVzYWdlRXhjZWVkID0gMDtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgRW50ZXIgdGhlIFVzYWdlIEV4Y2VlZCBEdXJhdGlvbiAxNSB0byA5OTknKTtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgaWYoc2hvd1BvcHVwKSB7XHJcbiAgICAgIGxldCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0QxRkFERlwiLz48cGF0aCBkPVwiTTM4IDI3LjA4MThWMjguMDAxOEMzNy45OTg4IDMwLjE1ODIgMzcuMzAwNSAzMi4yNTY1IDM2LjAwOTMgMzMuOTgzNkMzNC43MTgyIDM1LjcxMDggMzIuOTAzMyAzNi45NzQzIDMwLjgzNTQgMzcuNTg1N0MyOC43Njc0IDM4LjE5NzEgMjYuNTU3MyAzOC4xMjM3IDI0LjUzNDUgMzcuMzc2NEMyMi41MTE3IDM2LjYyOTEgMjAuNzg0NyAzNS4yNDc5IDE5LjYxMSAzMy40Mzg5QzE4LjQzNzMgMzEuNjI5OSAxNy44Nzk4IDI5LjQ4OTkgMTguMDIxNyAyNy4zMzgxQzE4LjE2MzYgMjUuMTg2NCAxOC45OTcyIDIzLjEzODEgMjAuMzk4MyAyMS40OTg5QzIxLjc5OTQgMTkuODU5NiAyMy42OTI4IDE4LjcxNzIgMjUuNzk2MiAxOC4yNDJDMjcuODk5NiAxNy43NjY3IDMwLjEwMDMgMTcuOTg0MiAzMi4wNyAxOC44NjE4TTM4IDIwLjAwMThMMjggMzAuMDExOEwyNSAyNy4wMTE4XCIgc3Ryb2tlPVwiIzAzOTg1NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUNGREYzXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgIHRpdGxlOiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHB1Ymxpc2ggJHt0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0TmFtZX0gY2hlY2tsaXN0P2AsXHJcbiAgICAgICAgY29udGVudDogYFB1Ymxpc2hpbmcgd2lsbCBtYWtlIHRoaXMgY2hlY2tsaXN0IGxpdmUsIGFuZCBjaGFuZ2VzIHdpbGwgdGFrZSBlZmZlY3QgaW1tZWRpYXRlbHkuYCxcclxuICAgICAgICBidXR0b250eXBlOiAnY29uZmlybSdcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnLGJhY2tkcm9wIDogJ3N0YXRpYyd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICAgICAgICB0aGlzLlNvcFNlcnZpY2UudXBkYXRlQWlDb25maWd1cmUodGhpcy5jb25maWdEYXRhKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzPy5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvY2hlY2tsaXN0J10pO1xyXG4gICAgICAgICAgICAgIH0gIFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGVycm9yID0gZXJyPy5lcnJvcj8uZXJyb3IgfHwgJ3NvbWV0aGluZyB3ZW50IHdyb25nJztcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3IpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNhdmVEcmFmdEFJKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuaWQgPSB0aGlzLmNoZWNrbGlzdElkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLnR5cGUgPSB0aGlzLnR5cGU7IFxyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLnB1Ymxpc2ggPSBmYWxzZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyAhPT0gJ3N0b3JlJyA/IHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHMgOiB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZXZlbnRzID0gW107XHJcbiAgICBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgJiYgIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWQpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgRW50ZXIgdGhlIFVzYWdlIEV4Y2VlZCBEdXJhdGlvbicpO1xyXG4gICAgICByZXR1cm5cclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgJiYgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCA8IDE1KSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWQgPSAwO1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBFbnRlciB0aGUgVXNhZ2UgRXhjZWVkIER1cmF0aW9uIDE1IHRvIDk5OScpO1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICB0aXRsZTogYFVuc2F2ZWQgY2hhbmdlc2AsXHJcbiAgICAgIGNvbnRlbnQ6IGBEbyB5b3Ugd2FudCB0byBzYXZlIGFzIGRyYWZ0P2AsXHJcbiAgICAgIGJ1dHRvbnR5cGU6ICdkcmFmdCdcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnLCBiYWNrZHJvcDogJ3N0YXRpYydcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcblxyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKCFyZXMpIHtcclxuICAgICAgICB0aGlzLnBvcHVwQ291bnQgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgICAgICAgICAgdGhpcy5Tb3BTZXJ2aWNlLnVwZGF0ZUFpQ29uZmlndXJlKHRoaXMuY29uZmlnRGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KCdEcmFmdCBoYXMgYmVlbiBzYXZlZCBzdWNjZXNzZnVsbHkuJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL21hbmFnZS90cmF4L2NoZWNrbGlzdCddKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgfSwoZXJyb3I6YW55KSA9PiB7XHJcbiAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCAnc29tZXRoaW5nIHdlbnQgd3JvbmcnO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycilcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWREYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdXBsb2FkQUlmaWxlcygpIHtcclxuICAgIHRoaXMudXBsb2FkRGF0YSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVEYXRhRnJvbUNoaWxkKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy51cGxvYWREYXRhID0gZGF0YTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVB1Ymxpc2goKSB7XHJcbiAgICBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgfHwgdGhpcy50eXBlID09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgICAgIC8vIGlmICh0aGlzLnR5cGUgPT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJykge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5kZXRlY3Rpb25BcmVhID0gdGhpcy56b25lcztcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHRoaXMuY29uZmlnRGF0YS5vcGVuVGltZTtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lID0gdGhpcy5jb25maWdEYXRhLmNsb3NlVGltZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsZXJ0LmFsZXJ0c1RvID0gdGhpcy5lbWFpbExpc3Q7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5wdWJsaXNoID0gdHJ1ZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvdmVyYWdlID0gdGhpcy5jb3ZlcmFnZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5zdWJtaXRUeXBlID0gJ3B1Ymxpc2gnO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLnJlbW92ZWRVc2VycyA9IHRoaXMucmVtb3ZlVXNlcnM7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVdlZWtEYXlzID0gdGhpcy5zZWxlY3RlZERheXM7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEudXBkYXRlQ29uZmlndXJlID0gdGhpcy5kaXNhYmxlZFF1ZXN0aW9uID8gIHRydWUgOiBmYWxzZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuc2hvd0VkaXQgPSB0aGlzLnNob3dFZGl0O1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2VycyA9IFsuLi50aGlzLnNpbmdsZUFzc2lnbiwgLi4udGhpcy5ncm91cEFzc2lnbl07XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zdG9yZUNvdW50ID0gdGhpcy5hc3NpZ25TaW5nbGU/Lmxlbmd0aCArIHRoaXMuZ3JvdXBBc3NpZ24/Lmxlbmd0aDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmVuYWJsZU5ld0RlcGxveWVkU3RvcmUgPSB0aGlzLnN0b3JlQ292ZXJhZ2UgPyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5lbmFibGVOZXdEZXBsb3llZFN0b3JlIDogZmFsc2U7XHJcbiAgICBjb25zdCB0aW1lWm9uZSA9IGRheWpzLnR6Lmd1ZXNzKCk7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEudGltZVpvbmUgPSB0aW1lWm9uZTtcclxuXHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoYCR7dGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY2hlY2tMaXN0TmFtZX0gY2hlY2tsaXN0IHB1Ymxpc2hlZC5gKTtcclxuICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvY2hlY2tsaXN0J10pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBBc3NpZ24gYSBVc2VyIScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBBc3NpZ24gYSBVc2VyIScpO1xyXG4gICAgICB9XHJcbiAgICB9LCAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCAnc29tZXRoaW5nIHdlbnQgd3JvbmcnO1xyXG4gICAgICBpZihlcnIgPT0gJ0NoZWNrbGlzdCBnb3Qgc3VibWl0dGVkJykge1xyXG4gICAgICAgIGxldCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCI+PC9yZWN0PjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiPjwvcmVjdD48L3N2Zz5gLFxyXG4gICAgICAgICAgICB0aXRsZTogYENoZWNrbGlzdCBVcGRhdGUhYCxcclxuICAgICAgICAgICAgY29udGVudDogYE11bHRpcGxlIHN0b3JlcyBoYXZlIGFscmVhZHkgc3VibWl0dGVkIHRoaXMgY2hlY2tsaXN0LiBEbyB5b3Ugd2FudCB0byByZS1hc3NpZ24gaXQgdG8gdGhlbT9gLFxyXG4gICAgICAgICAgICBidXR0b250eXBlOiAncmVBc3NpZ24nXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnLGJhY2tkcm9wIDogJ3N0YXRpYyd9KTtcclxuICAgICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgICAgaWYocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5lZGl0U3VibWl0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuZWRpdFN1Ym1pdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMucHVibGlzaChmYWxzZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBkZXRhc3NpZ25VcGRhdGUoY2FsbGJhY2s6IChyZXN1bHQ6IGJvb2xlYW4pID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIFwiY2hlY2tMaXN0SWRcIjogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgXCJhc3NpZ25lZExpc3RcIjogdGhpcy5hc3NpZ25TaW5nbGUgfHwgW10sXHJcbiAgICAgIFwiYXNzaWduZWRHcm91cFwiOiB0aGlzLmFzc2lnbkdyb3VwIHx8IFtdLFxyXG4gICAgICBcImNsaWVudElkXCI6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIFwiY292ZXJhZ2VcIjogdGhpcy5jb3ZlcmFnZVxyXG4gICAgfTtcclxuICBcclxuICAgIHRoaXMuU29wU2VydmljZS5hc3NpZ25VcGRhdGUocGF5bG9hZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmFkZGVkID0gcmVzPy5kYXRhPy5hZGRlZDtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5yZW1vdmVkID0gcmVzPy5kYXRhPy5yZW1vdmVkO1xyXG4gICAgICAgICAgY2FsbGJhY2sodHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNhbGxiYWNrKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICBjYWxsYmFjayhmYWxzZSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgLy8gc2VsZWN0c3RvcmUoZWxlbWVudDogYW55KSB7XHJcbiAgLy8gICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhTdG9yZUNvbXBvbmVudCwge1xyXG4gIC8vICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgLy8gICB9KTtcclxuXHJcbiAgLy8gICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IGVsZW1lbnQ7XHJcblxyXG4gIC8vICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChkYXRhOiBhbnkpID0+IHtcclxuICAvLyAgICAgaWYgKGRhdGEgJiYgZGF0YS5tc2cgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgLy8gICAgICAgaWYgKGRhdGEuc3RvcmVzLmxlbmd0aCkge1xyXG4gIC8vICAgICAgICAgbGV0IHNvcCA9IGRhdGEuc3RvcmVzO1xyXG4gIC8vICAgICAgICAgbGV0IGlkID0gZWxlbWVudC5pZDtcclxuICAvLyAgICAgICAgIC8vIHRoaXMuU29wU2VydmljZS5hc3NpZ25Tb3BTdG9yZShzb3AsIGlkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgICAvLyAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgICAvLyAgICAgZWxlbWVudC5zb3Bfc3RvcmVzID0gZGF0YS5zdG9yZXM7XHJcbiAgLy8gICAgICAgICAvLyAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgLy8gICAgICAgICAvLyAgIH1cclxuICAvLyAgICAgICAgIC8vIH0sIChlcnJvcjogYW55KSA9PiB7XHJcblxyXG4gIC8vICAgICAgICAgLy8gfSlcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0pXHJcbiAgLy8gfVxyXG4gIG5ld3N0b3JlKCkge1xyXG4gICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbXCIvbWFuYWdlL3N0b3Jlc1wiXSwgeyBxdWVyeVBhcmFtczogeyBjaGVja2xpc3RpZDogSlNPTi5zdHJpbmdpZnkodGhpcy5vYmopIH0gfSk7XHJcbiAgfVxyXG5cclxuICBpbnZpdGV1c2VyKCkge1xyXG4gICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbXCIvY29udHJvbC1wYW5lbC9hc3NpZ24tcm9sZVwiXSwgeyBxdWVyeVBhcmFtczogeyBjaGVja2xpc3RpZDogSlNPTi5zdHJpbmdpZnkodGhpcy5vYmopIH0gfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVEYXkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ2RheScgPyB0aGlzLmRheWpzKCkuZm9ybWF0KCdERCcpIDogJyc7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWYWx1ZShldmVudDphbnkpIHtcclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZS5sZW5ndGggIT0gMCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gZXZlbnQudGFyZ2V0LnZhbHVlIDwgOSAgPyAnMCcrZXZlbnQudGFyZ2V0LnZhbHVlIDogZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCdERCcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZShldmVudDphbnkpIHsgICAgXHJcbiAgICBpZighaXNOYU4oZXZlbnQudGFyZ2V0LnZhbHVlKSkge1xyXG4gICAgICBpZihldmVudC50YXJnZXQudmFsdWVbMF0gPT0gMyAmJiBldmVudC50YXJnZXQudmFsdWVbMV0gPiAxKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gMztcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gMztcclxuICAgICAgfVxyXG4gICAgICBpZihldmVudC50YXJnZXQudmFsdWVbMF0gPiAzICYmIGV2ZW50LnRhcmdldC52YWx1ZVsxXSA+PSAwKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlWzBdO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSBldmVudC50YXJnZXQudmFsdWVbMF07XHJcbiAgICAgIH1cclxuICAgICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlWzBdIDwgMSkge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSAnJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSAnJztcclxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgc2F2ZWRyYWZ0KCkge1xyXG4gICAgaWYoIXRoaXMudmFsaWRUaW1lKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBTY2hlZHVsZSBFbmQgVGltZScpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBsZXQgc3RhcnREYXRlV2l0aFRpbWUsIGVuZERhdGVXaXRoVGltZTtcclxuICAgIGlmKCF0aGlzLnNob3dSYW5nZVZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9Jyc7IFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0nJzsgXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPSAnb25ldGltZScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0nJzsgXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAnbW9udGhseScgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ2RhdGUnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSB0aGlzLm1vbnRoRGF0ZSArJyAnK3RoaXMubW9udGhEYXk7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAnbW9udGhseScgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ3NwZWNpZmljJykge1xyXG4gICAgICBpZih0aGlzLnN1Ym1pdHRlZERhdGVzLmxlbmd0aClcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnN1Ym1pdHRlZERhdGVzO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAncmFuZ2UnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlTGlzdDtcclxuICAgIH1cclxuICAgIC8vIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkVHlwZSA9PSAncmFuZ2UnKSB7XHJcbiAgICAvLyAgIGxldCBzdGFydCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lLnNwbGl0KCcgJyk7XHJcbiAgICAvLyAgIGxldCBlbmQgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUuc3BsaXQoJyAnKTtcclxuICAgIC8vICAgc3RhcnREYXRlV2l0aFRpbWUgPSBzdGFydC5sZW5ndGggPiAyID8gc3RhcnRbMV0gKyAnICcgKyBzdGFydFsyXSA6IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lO1xyXG4gICAgLy8gICBlbmREYXRlV2l0aFRpbWUgPSBlbmQubGVuZ3RoID4gMiA/IGVuZFsxXSArICcgJyArIGVuZFsyXSA6IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZTtcclxuICAgIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSB0aGlzLmRheWpzKHRoaXMucmFuZ2VTdGFydCkuZm9ybWF0KCdZWVlZLU1NLUREJykgKyAnICcgKyBzdGFydERhdGVXaXRoVGltZTtcclxuICAgIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lID0gdGhpcy5kYXlqcyh0aGlzLnJhbmdlRW5kKS5mb3JtYXQoJ1lZWVktTU0tREQnKSArICcgJyArIGVuZERhdGVXaXRoVGltZTtcclxuICAgICAgXHJcbiAgICAvLyAgIGlmICh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA+IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSkge1xyXG4gICAgLy8gICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID0gc3RhcnREYXRlV2l0aFRpbWU7XHJcbiAgICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lID0gZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgLy8gICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnRW5kIHRpbWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gc3RhcnQgdGltZScpO1xyXG4gICAgLy8gICAgIHJldHVybiBmYWxzZTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gICAgXHJcbiAgICB0aGlzLnBvcHVwQ291bnQgPSB0aGlzLnBvcHVwQ291bnQgKyAxO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLnN1Ym1pdFR5cGUgPSAnc2F2ZSc7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5wdWJsaXNoID0gZmFsc2U7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEucmVtb3ZlZFVzZXJzID0gdGhpcy5yZW1vdmVVc2VycztcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlV2Vla0RheXMgPSB0aGlzLnNlbGVjdGVkRGF5cztcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvdmVyYWdlID0gdGhpcy5jb3ZlcmFnZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbLi4udGhpcy5zaW5nbGVBc3NpZ24sIC4uLnRoaXMuZ3JvdXBBc3NpZ25dO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3RvcmVDb3VudCA9IHRoaXMuYXNzaWduU2luZ2xlPy5sZW5ndGggKyB0aGlzLmdyb3VwQXNzaWduPy5sZW5ndGg7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5lbmFibGVOZXdEZXBsb3llZFN0b3JlID0gdGhpcy5zdG9yZUNvdmVyYWdlID8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZW5hYmxlTmV3RGVwbG95ZWRTdG9yZSA6IGZhbHNlO1xyXG4gICAgY29uc3QgdGltZVpvbmUgPSBkYXlqcy50ei5ndWVzcygpO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLnRpbWVab25lID0gdGltZVpvbmU7XHJcbiAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICB0aXRsZTogYFVuc2F2ZWQgY2hhbmdlc2AsXHJcbiAgICAgIGNvbnRlbnQ6IGBEbyB5b3Ugd2FudCB0byBzYXZlIGFzIGRyYWZ0P2AsXHJcbiAgICAgIGJ1dHRvbnR5cGU6ICdkcmFmdCdcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCcsYmFja2Ryb3AgOiAnc3RhdGljJ1xyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJyB8fCB0aGlzLnR5cGUgPT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJykge1xyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJykge1xyXG4gICAgICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZGV0ZWN0aW9uQXJlYSA9IHRoaXMuem9uZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJykge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEub3BlblRpbWU7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEuY2xvc2VUaW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gdGhpcy5zb3BTdG9yZXM7XHJcbiAgICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxlcnQuYWxlcnRzVG8gPSB0aGlzLmVtYWlsTGlzdDtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFyZXMpIHtcclxuICAgICAgICB0aGlzLnBvcHVwQ291bnQgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgdGhpcy5kZXRhc3NpZ25VcGRhdGUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2xpZW50SWQgPSB0aGlzLmNsaWVudElkO1xyXG4gICAgICAgICAgdGhpcy5Tb3BTZXJ2aWNlLmNvbmZpZ1VwZGF0ZSh0aGlzLmNvbmZpZ0RhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KCdEcmFmdCBoYXMgYmVlbiBzYXZlZCBzdWNjZXNzZnVsbHkuJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJheC9jaGVja2xpc3QnXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sKGVycm9yOmFueSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCAnc29tZXRoaW5nIHdlbnQgd3JvbmcnO1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKVxyXG4gICAgICAgICAgfSkgICBcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgUmV1cGxvYWQoKSB7XHJcbiAgICAvLyB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKCk7XHJcbiAgICB0aGlzLnZhbGlkYXRlZFN0b3JlID0gW107XHJcbiAgICB0aGlzLnZhbGlkYXRlZFVzZXIgPSBbXTtcclxuICAgIHRoaXMudmFsaWRhdGVkQ2x1c3RlciA9IFtdO1xyXG4gICAgdGhpcy52YWxpZGF0ZWRUZWFtID0gW107XHJcbiAgICB0aGlzLm5ld1VzZXIgPSBbXTtcclxuICAgIHRoaXMuaW5hY3RpdmVTdG9yZXMgPSBbXTtcclxuICAgIHRoaXMuc2hvd1VzZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1RlYW0gPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1N0b3JlID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dDbHVzdGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dJbmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgICBsZXQgZWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2t0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8yJyk7XHJcbiAgICBlbGU/LmNsaWNrKCk7XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIFJldXBsb2FkMSgpIHtcclxuICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgIHRpdGxlOiBgUmV1cGxvYWQgQ1NWYCxcclxuICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZXBsYWNlIGV4aXN0aW5nIGRhdGEgYnkgdXBsb2FkaW5nIG5ldyBmaWxlPyBZb3VyIGV4aXN0aW5nIGRhdGEgd2lsbCBnZXQgcmVwbGFjZWQgd2l0aCB0aGUgbmV3IG9uZS5gLFxyXG4gICAgICBidXR0b250eXBlOiAnUmV1cGxvYWQnXHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyxiYWNrZHJvcCA6ICdzdGF0aWMnXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgIHRoaXMucmV1cGxvYWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIGxldCBlbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzInKTtcclxuICAgICAgICBlbGU/LmNsaWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuICAvLyBpbnZpdGVuZXd1c2VyKCkge1xyXG4gIC8vICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAvLyAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAvLyAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gIC8vICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgLy8gICAgIHRpdGxlOiBgSW52aXRlIG5ldyB1c2VycyBhZGRlZCBpbiBDU1ZgLFxyXG4gIC8vICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgbmV3IHVzZXJzLiBJbnZpdGUgdXNlcnMgYnkgc2VuZGluZyBtYWlsIHRvIHRoZW0uIDxicj5gLFxyXG4gIC8vICAgICBidXR0b250eXBlOiAnSW52aXRlJ1xyXG4gIC8vICAgfVxyXG4gIC8vICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAvLyAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAvLyAgIH0pO1xyXG4gIC8vICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgLy8gICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG5cclxuICAvLyAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAvLyAgICAgICAvLyB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgIC8vICAgLy8gY29uc29sZS5sb2cocmVzdWx0KTtcclxuXHJcbiAgLy8gICAgICAgLy8gICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gIC8vICAgICAgIC8vICAgICBTd2FsLmZpcmUoe1xyXG4gIC8vICAgICAgIC8vICAgICAgIHRvYXN0OiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGljb25IdG1sOiAnPGltZyAgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL0ljb25zL2NoZWNrbGlzdC11bnB1Ymxpc2hlZC1pY29uLnN2Z1wiPicsXHJcbiAgLy8gICAgICAgLy8gICAgICAgLy8gdGl0bGVUZXh0OiBgRW1haWwgc2VudCBzdWNjZXNmdWxseWAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgaHRtbDogYDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAvLyAgICAgICAvLyAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG10LTJcIj5cclxuICAvLyAgICAgICAvLyAgICAgICA8aDQ+Q1NWIGhhcyBiZWVuIFJldXBsb2FkZWQgc3VjY2Vzc2Z1bGx5LjwvaDQ+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPC9kaXY+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPC9kaXY+YCxcclxuICAvLyAgICAgICAvLyAgICAgICBwb3NpdGlvbjogJ2JvdHRvbScsXHJcbiAgLy8gICAgICAgLy8gICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICB0aW1lcjogNjAwMCxcclxuICAvLyAgICAgICAvLyAgICAgICB0aW1lclByb2dyZXNzQmFyOiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGRpZE9wZW46ICh0b2FzdCkgPT4ge1xyXG4gIC8vICAgICAgIC8vICAgICAgICAgdG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIFN3YWwuc3RvcFRpbWVyKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgdG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIFN3YWwucmVzdW1lVGltZXIpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICAkKFwiI2t0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCIpLnZhbCgnJylcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIC8vICAgICAgIC8vICAgICAgIH1cclxuXHJcbiAgLy8gICAgICAgLy8gICAgIH0pXHJcblxyXG4gIC8vICAgICAgIC8vICAgICAvLyB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL3NvcC9DaGVja2xpc3RzJ10pO1xyXG5cclxuICAvLyAgICAgICAvLyAgIH1cclxuICAvLyAgICAgICAvLyB9KVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KVxyXG5cclxuICAvLyB9XHJcbiAgLy8gQWRkc3RvcmUoKSB7XHJcbiAgLy8gICB0aGlzLnBvcHVwQ291bnQgPSB0aGlzLnBvcHVwQ291bnQgKyAxO1xyXG4gIC8vICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gIC8vICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgLy8gICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAvLyAgICAgdGl0bGU6IGBJbnZpdGUgbmV3IHVzZXJzIGFkZGVkIGluIENTVmAsXHJcbiAgLy8gICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBuZXcgdXNlcnMuIEludml0ZSB1c2VycyBieSBzZW5kaW5nIG1haWwgdG8gdGhlbS4gPGJyPmAsXHJcbiAgLy8gICAgIHN1YnRpdGxlOiAnTEtTVDAwOSwgU1QzMDQ1JyxcclxuICAvLyAgICAgYnV0dG9udHlwZTogJ0FkZHN0b3JlJ1xyXG4gIC8vICAgfVxyXG4gIC8vICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAvLyAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAvLyAgIH0pO1xyXG4gIC8vICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgLy8gICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG5cclxuICAvLyAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAvLyAgICAgICAvLyB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgIC8vICAgLy8gY29uc29sZS5sb2cocmVzdWx0KTtcclxuXHJcbiAgLy8gICAgICAgLy8gICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gIC8vICAgICAgIC8vICAgICBTd2FsLmZpcmUoe1xyXG4gIC8vICAgICAgIC8vICAgICAgIHRvYXN0OiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGljb25IdG1sOiAnPGltZyAgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL0ljb25zL2NoZWNrbGlzdC11bnB1Ymxpc2hlZC1pY29uLnN2Z1wiPicsXHJcbiAgLy8gICAgICAgLy8gICAgICAgLy8gdGl0bGVUZXh0OiBgRW1haWwgc2VudCBzdWNjZXNmdWxseWAsXHJcbiAgLy8gICAgICAgLy8gICAgICAgaHRtbDogYDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAvLyAgICAgICAvLyAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG10LTJcIj5cclxuICAvLyAgICAgICAvLyAgICAgICA8aDQ+Q1NWIGhhcyBiZWVuIFJldXBsb2FkZWQgc3VjY2Vzc2Z1bGx5LjwvaDQ+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPC9kaXY+XHJcbiAgLy8gICAgICAgLy8gICAgICAgPC9kaXY+YCxcclxuICAvLyAgICAgICAvLyAgICAgICBwb3NpdGlvbjogJ2JvdHRvbScsXHJcbiAgLy8gICAgICAgLy8gICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcclxuICAvLyAgICAgICAvLyAgICAgICB0aW1lcjogNjAwMCxcclxuICAvLyAgICAgICAvLyAgICAgICB0aW1lclByb2dyZXNzQmFyOiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIGRpZE9wZW46ICh0b2FzdCkgPT4ge1xyXG4gIC8vICAgICAgIC8vICAgICAgICAgdG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIFN3YWwuc3RvcFRpbWVyKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgdG9hc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIFN3YWwucmVzdW1lVGltZXIpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICAkKFwiI2t0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCIpLnZhbCgnJylcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIC8vICAgICAgIC8vICAgICAgIH1cclxuXHJcbiAgLy8gICAgICAgLy8gICAgIH0pXHJcblxyXG4gIC8vICAgICAgIC8vICAgICAvLyB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL3NvcC9DaGVja2xpc3RzJ10pO1xyXG5cclxuICAvLyAgICAgICAvLyAgIH1cclxuICAvLyAgICAgICAvLyB9KVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KVxyXG5cclxuICAvLyB9XHJcbiAgLy8gYWRkVXNlcigpIHtcclxuICAvLyAgIHRoaXMuYWRkVXNlckZvcm0gPSAhdGhpcy5hZGRVc2VyRm9ybTtcclxuICAvLyB9XHJcblxyXG5cclxuICAvLyBjcmVhdGV1c2VyUG9wdXAodHlwZTogc3RyaW5nLCByZWNvcmQ6IGFueSA9IG51bGwpOiB2b2lkIHtcclxuICAvLyAgICAgaWYgKHR5cGUgPT0gJ3ZpZXcnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5wb3BVcFRpdGxlID0gXCJWaWV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5wb3BVcFRpdGxlID0gXCJFZGl0IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgIHRoaXMucG9wVXBUaXRsZSA9IFwiRW50ZXIgTmV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICAgIC8vIHRoaXMucG9wVXBUaXRsZSA9IFwiRW50ZXIgTmV3IFVzZXIgRGV0YWlsc1wiO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIGxldCBkYXRhID0ge1xyXG4gIC8vICAgICAgIHJlY29yZDogcmVjb3JkLFxyXG4gIC8vICAgICAgIHR5cGU6IHR5cGUsXHJcbiAgLy8gICAgICAgdGl0bGU6IHRoaXMucG9wVXBUaXRsZVxyXG4gIC8vICAgICB9XHJcblxyXG4gIC8vICAgICBjb25zdCBkaWFsb2dSZWZfY3JlYXRlVXNlciA9IHRoaXMuZGlhbG9nLm9wZW4oVXBsb2FkU2luZ2xlVXNlckNvbXBvbmVudCwge1xyXG4gIC8vICAgICAgIHBhbmVsQ2xhc3M6ICdjdXN0b20tbW9kYWxib3gnLFxyXG4gIC8vICAgICAgIGRhdGE6IGRhdGFcclxuICAvLyAgICAgfSk7XHJcblxyXG4gIC8vICAgICBkaWFsb2dSZWZfY3JlYXRlVXNlci5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAvLyAgICAgICB0aGlzLnNob3dJbnRybyA9IGZhbHNlO1xyXG4gIC8vICAgICAgIGlmICghcmVjb3JkICYmIHJlcyAmJiByZXMuZGF0YS5jb2RlID09IDIwMCkge1xyXG4gIC8vICAgICAgICAgU3dhbC5maXJlKHtcclxuICAvLyAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnLFxyXG4gIC8vICAgICAgICAgICB0ZXh0OiAnVGhlIHVzZXIgaW52aXRlIGhhcyBiZWVuIHNlbnQgc3VjY2Vzc2Z1bGx5IHRvIHRoZSB1c2VyIGFuZCBhZGRlZCB0byB0aGUgcGxhdGZvcm0hJyxcclxuICAvLyAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICdPSycsXHJcbiAgLy8gICAgICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiBmYWxzZSxcclxuICAvLyAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2VcclxuICAvLyAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gIC8vICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VyID0gJydcclxuICAvLyAgICAgICAgICAgICB0aGlzLmFkZFVzZXJGb3JtID0gZmFsc2U7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSAxO1xyXG4gIC8vICAgICAgICAgICAgIC8vIHRoaXMubG9hZFJlY29yZHMoMCwgdGhpcy5zaXplKVxyXG4gIC8vICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICB9KVxyXG4gIC8vICAgICAgIH0gZWxzZSBpZiAocmVzICYmIHJlcy5kYXRhLmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgICBTd2FsLmZpcmUoe1xyXG4gIC8vICAgICAgICAgICBpY29uOiAnc3VjY2VzcycsXHJcbiAgLy8gICAgICAgICAgIHRleHQ6ICdVc2VyIFVwZGF0ZWQgU3VjY2Vzc2Z1bGx5IScsXHJcbiAgLy8gICAgICAgICAgIGhlaWdodEF1dG86IGZhbHNlXHJcbiAgLy8gICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIHRoaXMuc2VhcmNoVXNlciA9ICcnXHJcbiAgLy8gICAgICAgICB0aGlzLmFkZFVzZXJGb3JtID0gZmFsc2U7XHJcbiAgLy8gICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgLy8gICAgICAgICAvLyB0aGlzLmxvYWRSZWNvcmRzKDAsIHRoaXMuc2l6ZSlcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICB9IFxyXG5cclxuXHJcbiAgLy8gY3JlYXRldXNlclBvcHVwKCkge1xyXG4gIC8vICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihVcGxvYWRTaW5nbGVVc2VyQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgIHBhbmVsQ2xhc3M6ICdjdXN0b20tbW9kYWxib3gnXHJcblxyXG4gIC8vICAgfSk7XHJcbiAgLy8gICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKVxyXG4gIC8vICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG5cclxuICAvLyAgICAgfSlcclxuICAvLyB9XHJcblxyXG4gIC8vIHRyYW5zZmVyRm9ybURhdGEoKSB7XHJcbiAgLy8gICB0aGlzLlNvcFNlcnZpY2Uuc29wRGF0YS5hc09ic2VydmFibGUoKVxyXG4gIC8vIH1cclxuICBzYXZlYW5kcmVkaXJlY3QoaWQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nIHx8IHRoaXMudHlwZSA9PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJykge1xyXG4gICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmRldGVjdGlvbkFyZWEgPSB0aGlzLnpvbmVzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJykge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID0gdGhpcy5jb25maWdEYXRhLm9wZW5UaW1lO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IHRoaXMuY29uZmlnRGF0YS5jbG9zZVRpbWU7XHJcbiAgICAgIH1cclxuICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxlcnQuYWxlcnRzVG8gPSB0aGlzLmVtYWlsTGlzdDtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlnRGF0YS5zdWJtaXRUeXBlID0gJ3NhdmUnO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLnJlbW92ZWRVc2VycyA9IHRoaXMucmVtb3ZlVXNlcnM7XHJcbiAgICBcclxuICAgIGxldCBzdGFydERhdGVXaXRoVGltZSwgZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgaWYoIXRoaXMuc2hvd1JhbmdlVmFsdWUpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0nJzsgXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPScnOyBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9ICdvbmV0aW1lJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPScnOyBcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ21vbnRobHknICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXRlJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gdGhpcy5tb250aERhdGUgKycgJysgdGhpcy5tb250aERheTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdtb250aGx5JyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnc3BlY2lmaWMnKSB7XHJcbiAgICAgIGlmKHRoaXMuc3VibWl0dGVkRGF0ZXMubGVuZ3RoKVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZSA9IHRoaXMuc3VibWl0dGVkRGF0ZXM7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAncmFuZ2UnICYmIHRoaXMuc2VsZWN0ZWREYXRlTGlzdC5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcblxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmNvbmZpZ1VwZGF0ZSh0aGlzLmNvbmZpZ0RhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoW1wiL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdFwiXSwgeyBxdWVyeVBhcmFtczogeyBjaGVja2xpc3RJZDogaWQgfSB9KTtcclxuICAgICAgfVxyXG4gICAgfSwoZXJyb3I6YW55KSA9PiB7XHJcbiAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yIHx8ICdzb21ldGhpbmcgd2VudCB3cm9uZyc7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKVxyXG4gICAgfSlcclxuICB9XHJcbiAgdmFsaWRhdGVUaW1lKCkge1xyXG4gICAgbGV0IHN0YXJ0VGltZSA9IHRoaXMuZGF5anModGhpcy5zdGFydFRpbWUsICdISDptbScpXHJcbiAgICBsZXQgZW5kVGltZSA9IHRoaXMuZGF5anModGhpcy5lbmRUaW1lLCAnSEg6bW0nKVxyXG4gICAgaWYgKCB0aGlzLnNob3dSYW5nZVZhbHVlKSB7XHJcbiAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gJycgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSBudWxsICYmICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlICE9ICcnICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT0gbnVsbCkge1xyXG4gICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgPT0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpIHtcclxuICAgICAgICAgIGlmIChzdGFydFRpbWUgPiBlbmRUaW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRUaW1lID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBTY2hlZHVsZSBFbmQgVGltZScpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZFRpbWUgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkVGltZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBEYXRlJyk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52YWxpZFRpbWUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmFsaWRUaW1lID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoIHN0YXJ0VGltZSA+IGVuZFRpbWUpIHtcclxuICAgICAgdGhpcy52YWxpZFRpbWUgPSBmYWxzZTtcclxuICAgICAgLy8gdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBUaW1lJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkVGltZSA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVUaW1lKGRhdGE6IGFueSkge1xyXG4gICAgaWYodGhpcy52YWxpZGF0ZVRpbWUoKSkge1xyXG4gICAgICBpZiAoZGF0YSA9PSAnc3RhcnQnKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSB0aGlzLmRheWpzKHRoaXMuc3RhcnRUaW1lLCAnSEg6bW0nKS5mb3JtYXQoJ2hoOm1tIEEnKVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IHRoaXMuZGF5anModGhpcy5lbmRUaW1lLCAnSEg6bW0nKS5mb3JtYXQoJ2hoOm1tIEEnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICBcclxuICB9XHJcbiAgdXBkYXRlU2NoZWR1bGUoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9ICcnO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9ICcwMSc7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IFtdO1xyXG4gICAgdGhpcy5zdWJtaXR0ZWREYXRlcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5zcGVjaWZpYyA9IGZhbHNlO1xyXG4gICAgdGhpcy5tb250aERhdGUgPSAnJztcclxuICAgIHRoaXMubW9udGhEYXkgPSAnJztcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dSYW5nZVZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlID09ICdyYW5nZScgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBpZihldmVudC50YXJnZXQudmFsdWUgPT0gJ3JhbmdlJykge1xyXG4gICAgICAvLyB0aGlzLnJlZnJlc2hQaWNrZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zcGVjaWZpYyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSBbXTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gW107XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfHwgdGhpcy5kYXlqcygpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgfHwgdGhpcy5kYXlqcygpLmFkZCgxLCdkYXknKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICB0aGlzLm1pblN0YXJ0RGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCk7XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9ICcnO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkU3RhcnREYXRlID0gJyc7XHJcbiAgICAgIHRoaXMubWluU3RhcnREYXRlID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0gJyc7XHJcbiAgICAgIHRoaXMubWluRW5kRGF0ZSA9ICcnO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gdGhpcy5kYXlqcygpLmFkZCgxLCdkYXknKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgICAgLy8gdGhpcy5yZWZyZXNoUGlja2VyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZihldmVudC50YXJnZXQudmFsdWUgPT0gJ3dlZWtkYXknKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gWydNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5J107XHJcbiAgICB9XHJcbiAgICBpZihldmVudC50YXJnZXQudmFsdWUgPT0gJ3dlZWtseScpIHtcclxuICAgICAgbGV0IHRvZGF5RGF0ZSA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ2RkZGQnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbdG9kYXlEYXRlXTtcclxuICAgIH1cclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnbW9udGhseScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPSAnZGF5JztcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ0REJyk7XHJcbiAgICB9XHJcbiAgICBpZihbJ2RhaWx5Jywnb25ldGltZSddLmluY2x1ZGVzKGV2ZW50LnRhcmdldC52YWx1ZSkgfHwgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnbW9udGhseScgJiYgWydkYXknLCdkYXRlJ10uaW5jbHVkZXModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXApKSApIHtcclxuICAgICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdvbmV0aW1lJykge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA/IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA6IGRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZGF5anMoKS5mb3JtYXQoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd09uY2UgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMucmVwZWF0VHlwZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSAnZGFpbHknID8gJ0RheScgOiBbJ3dlZWtseScsJ3dlZWtkYXknXS5pbmNsdWRlcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUpID8gJ1dlZWsnIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09ICdtb250aGx5JyA/ICdNb250aCcgOiAnJztcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy52YWxpZGF0ZVRpbWUoKTtcclxuICB9XHJcbiAgXHJcbiAgbmF2aWdhdGVUb0NvbnRyb2xDZW50ZXIoKSB7XHJcbiAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL2NvbnRyb2xjZW50ZXIvdGVtcGxhdGV2aWV3J10seyBxdWVyeVBhcmFtczogeyBzb3VyY2U6ICdjYycgfSB9KTtcclxuICB9XHJcblxyXG4gIHVwbG9hZDogYW55IDtcclxuXHJcbiAgYWRkU3RvcmVDb21wb25lbnQoKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhTdG9yZUNvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyxiYWNrZHJvcCA6ICdzdGF0aWMnXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICBjaGVja2xpc3RJZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgb2JqOiB0aGlzLm9iaixcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2UsXHJcbiAgICB9O1xyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMudXNlckRhdGEgPSByZXM7XHJcbiAgICAgICAgdGhpcy51cGxvYWQgPSAnc3RvcmUnO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVEZXRhaWxzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICB0b2dnbGVEcm9wRG93bigpIHtcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gIXRoaXMuc2hvd0Ryb3BEb3duO1xyXG4gIH1cclxuICBzZWxlY3REYXRlKGRhdGU6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlLmluY2x1ZGVzKGRhdGUpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdGhpcy5zZWxlY3RlZERhdGUuZmlsdGVyKChkYXk6YW55KSA9PiBkYXkgIT09IGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYoIXRoaXMuc2VsZWN0ZWREYXRlLmluY2x1ZGVzKGRhdGUpKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUucHVzaChkYXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBzdWJtaXREYXRlKCkge1xyXG4gICAgdGhpcy5zdWJtaXR0ZWREYXRlcyA9IFsuLi50aGlzLnNlbGVjdGVkRGF0ZV07XHJcbiAgfVxyXG5cclxuICByZW1vdmVCYWRnZShkYXRlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMgPSB0aGlzLnN1Ym1pdHRlZERhdGVzLmZpbHRlcihkID0+IGQgIT09IGRhdGUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZS5maWx0ZXIoKGQ6YW55KSA9PiBkICE9PSBkYXRlKTtcclxuICB9XHJcbiAgZ2V0RGF0ZVdpdGhTdWZmaXgoZGF0ZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmIChkYXRlID09IDEgfHwgZGF0ZSA9PSAzMSB8fCBkYXRlID09IDIxKSB7XHJcbiAgICAgIHJldHVybiBkYXRlICsgJ3N0JztcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PSAyIHx8IGRhdGUgPT0gMjIpIHtcclxuICAgICAgcmV0dXJuIGRhdGUgKyAnbmQnO1xyXG4gICAgfSBlbHNlIGlmIChkYXRlID09IDMgfHwgZGF0ZSA9PSAyMykge1xyXG4gICAgICByZXR1cm4gZGF0ZSArICdyZCc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZGF0ZSArICd0aCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZURyb3BEb3duKCkge1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU1vbnRoKHR5cGU6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gJyc7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gW107XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9IHR5cGU7XHJcbiAgICB0aGlzLm1vbnRoRGF0ZSA9ICcnXHJcbiAgICB0aGlzLm1vbnRoRGF5ID0gJydcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dPbmNlID0gZmFsc2U7XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnZGF0ZScpIHtcclxuICAgICAgbGV0IGRhdGVXZWVrID0gZ2V0V2Vla051bWJlcih0aGlzLmRheWpzKCkpO1xyXG4gICAgICB0aGlzLm1vbnRoRGF0ZSA9IGRhdGVXZWVrLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMubW9udGhEYXkgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCdkZGRkJyk7ICAgICAgXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnZGF5Jykge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ0REJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSZXBlYXREYXkoKSB7XHJcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5O1xyXG4gICAgaWYoaXNOYU4odmFsdWUpKSB7XHJcbiAgICAgIHZhbHVlID0gJzAxJztcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSB2YWx1ZSA9PSBcIjAwXCIgfHwgdmFsdWUgPT0gJzAnIHx8ICB2YWx1ZSA9PSAnJyA/ICcwMScgOiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU1vbnRoVmFsdWUoKSB7XHJcbiAgICBsZXQgZGF0ZVZhbHVlID0gJydcclxuICAgIGlmKHRoaXMubW9udGhEYXRlID09ICcxJykge1xyXG4gICAgICBkYXRlVmFsdWUgPSAnRmlyc3QnXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLm1vbnRoRGF0ZSA9PSAnMicpIHtcclxuICAgICAgZGF0ZVZhbHVlID0gJ1NlY29uZCdcclxuICAgIH1cclxuICAgIGlmKHRoaXMubW9udGhEYXRlID09ICczJykge1xyXG4gICAgICBkYXRlVmFsdWUgPSAnVGhpcmQnXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLm1vbnRoRGF0ZSA9PSAnNCcpIHtcclxuICAgICAgZGF0ZVZhbHVlID0gJ0ZvdXJ0aCdcclxuICAgIH1cclxuICAgIGlmKHRoaXMubW9udGhEYXRlID09ICc1Jykge1xyXG4gICAgICBkYXRlVmFsdWUgPSAnTGFzdCdcclxuICAgIH1cclxuICAgIHJldHVybiAoJ29uIHRoZSAnICsgZGF0ZVZhbHVlICsnICcrdGhpcy5tb250aERheSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNwZWNpZmljVmFsdWUoKSB7XHJcbiAgICBsZXQgdmFsdWU6YW55ID0gW107XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzLmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgIGl0ZW0gPSAoaXRlbSA9PSAxIHx8IGl0ZW0gPT0gMzEgfHwgaXRlbSA9PSAyMSkgPyBpdGVtICsnIHN0JyA6IChpdGVtID09IDIgfHwgaXRlbSA9PSAyMikgPyBpdGVtICsnIG5kJyA6IChpdGVtID09IDMgfHwgaXRlbSA9PSAyMyApPyBpdGVtICsgJ3JkJyA6IGl0ZW0gKycgdGgnO1xyXG4gICAgICB2YWx1ZS5wdXNoKGl0ZW0gKVxyXG4gICAgfSlcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlbW92ZURhdGUoZGF0ZTphbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IHRoaXMuc2VsZWN0ZWREYXRlTGlzdC5maWx0ZXIoKGVsZTphbnkpID0+IGVsZSAhPSBkYXRlKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNjZWR1bGVEYXRlKCkge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ3RoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZScsdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9ICcnICYmIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlRGF0ZVZhbHVlKGV2ZW50OmFueSkge1xyXG4gICAgaWYoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSB8fCB0aGlzLmRheWpzKCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSAnJztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPSAnJztcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSAnJztcclxuICAgIHRoaXMubWluRGF0ZT0nJztcclxuICAgIC8vIHRoaXMuc2VsZWN0ZWREYXRlID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RhcnREYXRlID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICB0aGlzLm1pblN0YXJ0RGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTcGVjaWZpYyhldmVudDphbnkpIHtcclxuICAgIGlmKCFldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGF0ZXBpY2tlclJlZnJlc2goKXtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSAnJztcclxuICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0gJyc7XHJcbiAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RTcGVjaWZpY0RhdGUoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLnNob3dEcm9wRG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmNsaWNrXCIsIFtcIiRldmVudFwiXSlcclxuICBjbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KFwiLmRyb3Bkb3duLWNsb3NlXCIpO1xyXG4gICAgLy8gY29uc29sZS5sb2coY2xpY2tlZEluc2lkZSk7XHJcbiAgICBcclxuICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xyXG4gICAgICB0aGlzLmNsb3NlRHJvcERvd24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENsaWVudFVzZXIoKSB7XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0Q2xpZW50VXNlcih0aGlzLmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0VXNlcnMgPSByZXMuZGF0YS5tYXAoKGl0ZW06YW55KSA9PiB7cmV0dXJuIHtuYW1lOml0ZW0udXNlck5hbWUsdmFsdWU6aXRlbS5lbWFpbCxyb2xlOml0ZW0ucm9sZX19KTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNvbmZpZ0RhdGEpXHJcbiAgICAgICAgaWYoIXRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXBwcm92ZXI/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5hcHByb3ZlID0gdHJ1ZTtcclxuICAgICAgICAgIGxldCB1c2VySW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8ICd7fScpXHJcbiAgICAgICAgICBpZih1c2VySW5mbz8udXNlclR5cGUgPT0gJ3RhbmdvJyB8fCAodXNlckluZm8/LnVzZXJUeXBlID09ICdjbGllbnQnICYmIHVzZXJJbmZvPy5yb2xlID09ICd1c2VyJykpIHtcclxuICAgICAgICAgICAgbGV0IHVzZXJMaXN0ID0gdGhpcy5hbGVydFVzZXJzLmZpbmQoKGVsZTphbnkpID0+IGVsZS5yb2xlID09ICdzdXBlcmFkbWluJyk7XHJcbiAgICAgICAgICAgIGlmKHVzZXJMaXN0ICYmIHRoaXMudHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gW3tuYW1lOnVzZXJMaXN0Lm5hbWUsdmFsdWU6dXNlckxpc3QudmFsdWV9XVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBbdGhpcy5hbGVydFVzZXJzLmZpbmQoKGVsZTphbnkpID0+IGVsZS52YWx1ZSA9PSB1c2VySW5mby5lbWFpbCldO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmFsZXJ0VXNlcnMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRab25lTGlzdCgpIHtcclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRab25lTGlzdCh0aGlzLmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMuem9uZUxpc3QgPSByZXMuZGF0YS5tYXAoKGl0ZW06YW55KSA9PiB7cmV0dXJuIHtuYW1lOml0ZW0uem9uZSx2YWx1ZTppdGVtLnpvbmV9fSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuem9uZUxpc3QgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVBbGVydChldmVudDogYW55LHR5cGU6YW55KSB7XHJcbiAgICBpZiAodHlwZSA9PSAndXNlcicpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0cy51c2VycyA9IGV2ZW50O1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09ICdhcHByb3ZlJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYXBwcm92ZXIgPSBldmVudDsgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVab25lKGV2ZW50OmFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi5kZXRlY3Rpb25BcmVhID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMb29wKCkge1xyXG4gICAgbGV0IGRhdGEgPSB0aGlzLm1pbnV0ZXMuZmlsdGVyKGl0ZW0gPT4gIXRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5pbmNsdWRlcyhpdGVtKSk7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIucHVzaChkYXRhWzBdKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVJlbWFpbmRlcihldmVudDphbnksaW5kZXg6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXJbaW5kZXhdID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFwcHJvdmVyKGV2ZW50OmFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU93bmVyKGV2ZW50OmFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMub3duZXIgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFzc2lnbihldmVudDogYW55KSB7IFxyXG4gICAgdGhpcy51cGxvYWQgPSAnJztcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IGV2ZW50O1xyXG4gICAgLy8gdGhpcy50YWJsZUFycmF5ID0gZXZlbnQ7XHJcbiAgICBsZXQgZGF0YSA9IGV2ZW50Lm1hcCgoZWw6YW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB7IGlkOiBlbD8uX2lkLCB0eXBlOiBlbD8udHlwZSB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy5pZExpc3QgPSBkYXRhO1xyXG4gICAgdGhpcy50YWJsZUZpbHRlciA9ICcnO1xyXG4gICAgKHRoaXMuYXNzaWduVHlwZSA9PT0gJ3N0b3JlJyB8fCB0aGlzLmFzc2lnblR5cGUgPT09ICd1c2VyJykgPyAodGhpcy5zaW5nbGVBc3NpZ24gPSB0aGlzLmlkTGlzdCx0aGlzLmdldFRhYmxlRGF0YSgpKSA6ICh0aGlzLmdyb3VwQXNzaWduID0gdGhpcy5pZExpc3QsdGhpcy51c2VyRGV0YWlsc1YyKGV2ZW50KSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVkQ2hpcChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRhYmxlQXJyYXkgPSB0aGlzLnRhYmxlQXJyYXk/LmZpbHRlcigoaXRlbTphbnkpID0+ICFldmVudC5pbmNsdWRlcyhpdGVtLl9pZCkpXHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24/LmZpbHRlcigoaXRlbTogYW55KSA9PiAhZXZlbnQuaW5jbHVkZXMoaXRlbS5faWQpKVxyXG4gICAgLy8gKHRoaXMuYXNzaWduVHlwZSA9PT0gJ3N0b3JlJyB8fCB0aGlzLmFzc2lnblR5cGUgPT09ICd1c2VyJykgPyB0aGlzLmdldFRhYmxlRGF0YSgpIDp0aGlzLnVzZXJEZXRhaWxzVjIoKTtcclxuICB9XHJcblxyXG4gIHRhYmxlQXJyYXk6IGFueSA9IFtdO1xyXG4gIHRhYmxlTG9hZGluZzE6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICB1c2VyRGV0YWlsc1YyKGRhdGE/OmFueSkge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgXCJjaGVja2xpc3RJZFwiOnRoaXMuY2hlY2tsaXN0SWQsXHJcbiAgICAgIFwiaWRMaXN0XCI6IHRoaXMuaWRMaXN0LFxyXG4gICAgICBcImNvdmVyYWdlXCI6IHRoaXMuY292ZXJhZ2UsIC8vW1wiY2x1c3RlclwiLFwic3RvcmVcIixcInVzZXJcIixcInRlYW1zXCJdXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5jbGllbnRJZCxcclxuICAgICAgXCJzZWFyY2hcIjogdGhpcy50YWJsZUZpbHRlclxyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcxID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0ltYWdlID0gdHJ1ZTtcclxuICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMuU29wU2VydmljZS5zZWxlY3RDaGlwcyhwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkgPSByZXM/LmRhdGE/LnVuaXF1ZUFycjtcclxuICAgICAgICAgIHRoaXMuYXNzaWduR3JvdXAgPSB0aGlzLnRhYmxlQXJyYXk7XHJcbiAgICAgICAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgdGhpcy5yZWNvcmRzQ291bnQgPSB0aGlzLnRhYmxlRGF0YS5sZW5ndGg7IFxyXG4gICAgICAgICAgdGhpcy50YWJsZUFycmF5Py5sZW5ndGggPyB0aGlzLnNob3dJbWFnZSA9IGZhbHNlIDogdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgaWYodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsMTAsMTUsMjBdO1xyXG4gICAgICAgICAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlQXJyYXkuc2xpY2UoKHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplKSAtIHRoaXMuc2l6ZSwgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMuc2hvd0ltYWdlID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5zdG9yZUNvdmVyYWdlID8gdGhpcy5nZXRJbml0aWFsRGF0YShyZXM/LmRhdGE/LnN0b3JlTGlzdCkgOiB0aGlzLmdldEluaXRpYWxEYXRhKHJlcz8uZGF0YT8udXNlckxpc3QpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycj8ubWVzc2FnZSlcclxuICAgICAgfSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzb3J0Q29sdW1uOiBhbnkgPSAnJztcclxuICBzb3J0Qnk6IGFueSA9IC0xO1xyXG5cclxuICBnZXR0YWJsZURhdGEoKSB7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBjaGVja2xpc3RJZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgbGltaXQ6IHRoaXMuc2l6ZSxcclxuICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICBzZWFyY2g6IHRoaXMudGFibGVGaWx0ZXIsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnRDb2x1bW4sXHJcbiAgICAgIHNvcnRCeTogdGhpcy5zb3J0QnksXHJcbiAgICAgIGNvdmVyYWdlOiB0aGlzLmNvdmVyYWdlXHJcbiAgICB9ICBcclxuICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0VXNlckRldGFpbHNWMihwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDoocmVzOmFueSk9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlcz8uZGF0YT8udXNlcnM7XHJcbiAgICAgICAgICB0aGlzLnJlY29yZHNDb3VudCA9IHRoaXMudGFibGVEYXRhLmxlbmd0aDsgXHJcbiAgICAgICAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgaWYodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gWzUsMTAsMTUsMjBdO1xyXG4gICAgICAgICAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc3RvcmVDb3ZlcmFnZSA/IHRoaXMuZ2V0SW5pdGlhbERhdGEocmVzPy5kYXRhPy5zdG9yZUxpc3QpIDogdGhpcy5nZXRJbml0aWFsRGF0YShyZXM/LmRhdGE/LnVzZXJMaXN0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOihlcnI6YW55KT0+IHtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnI/Lm1lc3NhZ2UpIFxyXG4gICAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlSHVkZGxldGltZShldmVudDogRXZlbnQsIGtleTogYW55KSB7XHJcbiAgICAvLyBsZXQgc2FtcGxlT2JqZWN0OmFueTtcclxuICAgIC8vIGlmIChrZXkgPT09ICd0aW1lJykge1xyXG4gICAgLy8gICBjb25zdCBzZWxlY3RlZFRpbWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xyXG4gICAgLy8gICBzYW1wbGVPYmplY3Quc3RhcnRUaW1lID0gc2VsZWN0ZWRUaW1lOyBcclxuICAgIC8vIH0gZWxzZSBpZiAoa2V5ID09PSAnZHVyYXRpb24nKSB7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBjb25zb2xlLmxvZygnZHVyYXRpb24nLHRoaXMuaHVkZGxlYXR0aW1lQXJyYXkpXHJcbiAgfVxyXG5cclxuICBkZWxldGVIdWRkbGUoaTphbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmV2ZW50cy5zcGxpY2UoaSwgMSlcclxuICB9XHJcblxyXG4gIEFkZEh1ZGRsZUVlbnQoKSB7XHJcbiAgICBsZXQgc2FtcGxlT2JqZWN0ID0ge3RpbWU6dGhpcy5kYXlqcygpLmZvcm1hdCgnSEg6bW0nKSxkdXJhdGlvbjonMTUnfTtcclxuICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmV2ZW50cz8ubGVuZ3RoIDwgMyA/IHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmV2ZW50cy5wdXNoKHNhbXBsZU9iamVjdCkgOiAnJ1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29uZmlnUmVtYWluZGVyKGV2ZW50OmFueSkge1xyXG4gICAgaWYoIWV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlciA9IFtdO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlciA9IFt0aGlzLm1pbnV0ZXNbMF1dO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVDb25maWdBcHByb3ZlcihldmVudDphbnkpIHtcclxuICAgIGlmKCFldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFtdO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGV0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgJ3t9JylcclxuICAgICAgaWYodXNlckluZm8/LnVzZXJUeXBlID09ICd0YW5nbycgfHwgKHVzZXJJbmZvPy51c2VyVHlwZSA9PSAnY2xpZW50JyAmJiB1c2VySW5mbz8ucm9sZSA9PSAndXNlcicpKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBbdGhpcy5hbGVydFVzZXJzLmZpbmQoKGVsZTphbnkpID0+IGVsZS5yb2xlID09ICdzdXBlcmFkbWluJyldO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gW3RoaXMuYWxlcnRVc2Vycy5maW5kKChlbGU6YW55KSA9PiBlbGUudmFsdWUgPT0gdXNlckluZm8uZW1haWwpXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGltZUxvb3AoaW5kZXg6YW55KSB7XHJcbiAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyKSk7XHJcbiAgICBpZihkYXRhLmxlbmd0aCkge1xyXG4gICAgICBkYXRhLnNwbGljZShpbmRleCwxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubWludXRlcy5maWx0ZXIoKGl0ZW06YW55KSA9PiBkYXRhLmxlbmd0aCA/ICFkYXRhPy5pbmNsdWRlcyhpdGVtKSA6IGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgYnVsa3VwbG9hZE1vZGVsKCkge1xyXG4gICAgdGhpcy5kcm9wRG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaWFsb2cub3Blbih0aGlzLmJ1bGt1cGxvYWQsIHtcclxuICAgICAgY2VudGVyZWQ6dHJ1ZSxiYWNrZHJvcCA6ICdzdGF0aWMnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZXhjZWxFcnJvcjogYW55O1xyXG5cclxuICBhZnRlclVwbGxvYWQoZGF0YT86IGFueSkge1xyXG4gICAgdGhpcy5leGNlbEVycm9yID0gZGF0YTtcclxuICAgIHRoaXMuZGlhbG9nLm9wZW4odGhpcy5hZnRlclZhbGlkYXRpb24se2NlbnRlcmVkOnRydWUsYmFja2Ryb3AgOiAnc3RhdGljJ30pXHJcbiAgfVxyXG5cclxuICBnZXRJbml0aWFscyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFuYW1lKSByZXR1cm4gJyc7IC8vIEhhbmRsZSBlbXB0eSBjYXNlXHJcbiAgICBjb25zdCBbZmlyc3ROYW1lLCBsYXN0TmFtZV0gPSBuYW1lLnNwbGl0KCcgJyk7XHJcbiAgICBpZiAoIWxhc3ROYW1lKSB7XHJcbiAgICAgIGNvbnN0IGluaXRpYWxzID0gKGZpcnN0TmFtZT8uWzBdIHx8ICcnKSArIChmaXJzdE5hbWU/LlsxXSB8fCAnJyk7IFxyXG4gICAgICByZXR1cm4gaW5pdGlhbHMudG9VcHBlckNhc2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluaXRpYWxzID0gKGZpcnN0TmFtZT8uWzBdIHx8ICcnKSArIChsYXN0TmFtZT8uWzBdIHx8ICcnKTsgXHJcbiAgICAgIHJldHVybiBpbml0aWFscy50b1VwcGVyQ2FzZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uZmlybVVzZXJwb3B1cCgpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4odGhpcy5jb25maXJtVXNlciwgeyBjZW50ZXJlZDogdHJ1ZSwgYmFja2Ryb3A6ICdzdGF0aWMnIH0pXHJcbiAgICBkaWFsb2dSZWYuY2xvc2VkLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyA9PT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZURldGFpbHMoJ2FkZFVzZXInKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWctb3ZlcicpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAvLyBBZGQgYSB2aXN1YWwgZWZmZWN0IHRvIGluZGljYXRlIGRyYWcgaXMgb3ZlciB0aGUgYXJlYVxyXG4gICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmFkZCgnZHJhZy1vdmVyJyk7XHJcbiAgfVxyXG5cclxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWctb3ZlcicpO1xyXG5cclxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBmaWxlID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdO1xyXG4gICAgICBjb25zdCBmaWxlSW5wdXRFbGVtZW50ID0gdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIC8vIE1hbnVhbGx5IHNldCB0aGUgZmlsZSB0byB0aGUgaW5wdXRcclxuICAgICAgY29uc3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xyXG4gICAgICBkYXRhVHJhbnNmZXIuaXRlbXMuYWRkKGZpbGUpO1xyXG4gICAgICBmaWxlSW5wdXRFbGVtZW50LmZpbGVzID0gZGF0YVRyYW5zZmVyLmZpbGVzO1xyXG5cclxuICAgICAgLy8gVHJpZ2dlciB0aGUgY2hhbmdlIGV2ZW50IG1hbnVhbGx5XHJcbiAgICAgIGZpbGVJbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZUFscGhhcGV0KGV2ZW50OmFueSkge1xyXG4gICAgaWYoaXNOYU4oZXZlbnQudGFyZ2V0LnZhbHVlKSkge1xyXG4gICAgICBldmVudC50YXJnZXQudmFsdWU9XCIwMVwiO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5ID0gJzAxJ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFdlZWtOdW1iZXIoZGF0ZTogYW55KSB7XHJcbiAgbGV0IGRheXMgPSBbXTtcclxuICBsZXQgZGF0ZURhdCA9IGRheWpzKCBkYXRlICkuc3RhcnRPZiggJ21vbnRoJyApO1xyXG5cclxuICB3aGlsZSAoIGRhdGVEYXQubW9udGgoKSA9PT0gZGF0ZS5tb250aCgpICkge1xyXG4gICAgaWYgKCBkYXRlRGF0LmZvcm1hdCggJ2RkZGQnICkgPT09ICBkYXRlLmZvcm1hdCggJ2RkZGQnICkpIHtcclxuICAgICAgZGF5cy5wdXNoKCBkYXRlRGF0LmZvcm1hdCggJ1lZWVktTU0tREQnICkgKTtcclxuICAgIH1cclxuICAgIGRhdGVEYXQgPSBkYXRlRGF0LmFkZCggMSwgJ2RheScgKTtcclxuICB9XHJcblxyXG4gIGxldCBmaW5kSW5kZXggPSBkYXlzLmZpbmRJbmRleCgoaXRlbTphbnkpID0+IGl0ZW0gPT0gZGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKSlcclxuICByZXR1cm4gKGZpbmRJbmRleCArIDEpO1xyXG5cclxufSIsIjxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJjYXJkIHJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtMyBwYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkUXVlc3Rpb24mJnR5cGUgPT09ICdjdXN0b20nXCIgW3JvdXRlckxpbmtdPVwiJy9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3QnXCIgW3F1ZXJ5UGFyYW1zXT1cIntjaGVja2xpc3RJZDogY2hlY2tsaXN0SWR9XCIgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZSBtZS01IHB4LTMgcHktM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODMzMiAxMC4wMDAzSDQuMTY2NU00LjE2NjUgMTAuMDAwM0w5Ljk5OTg0IDE1LjgzMzdNNC4xNjY1IDEwLjAwMDNMOS45OTk4NCA0LjE2Njk5XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ2N1c3RvbSdcIiBjbGFzcz1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudCBtYi00IHctMTAwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJjaGVja2xpc3QgcGxhaW4taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgTmFtZVwiIFt2YWx1ZV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jaGVja0xpc3ROYW1lXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudCB3LTEwMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hlY2tsaXN0RGVzY3JpcHRpb24gcGxhaW4taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2NoZWNrbGlzdERlc2NyaXB0aW9uIHBsYWNlaG9sZGVyPVwiRW50ZXIgQ2hlY2tsaXN0IERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jaGVja0xpc3REZXNjcmlwdGlvblwiIHJlYWRvbmx5PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0gJ2N1c3RvbSdcIiBjbGFzcz1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudCBtYi00IHctMTAwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJjaGVja2xpc3QgcGxhaW4taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgTmFtZVwiIFt2YWx1ZV09XCJjb25maWdEYXRhPy5jaGVja0xpc3ROYW1lXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudCB3LTEwMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hlY2tsaXN0RGVzY3JpcHRpb24gcGxhaW4taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2NoZWNrbGlzdERlc2NyaXB0aW9uIHBsYWNlaG9sZGVyPVwiRW50ZXIgQ2hlY2tsaXN0IERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXNjcmlwdGlvblwiIHJlYWRvbmx5PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXktNiBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1tZCBweS00IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0eXBlID09PSAnY3VzdG9tJyA/IHB1Ymxpc2goKSA6IHB1Ymxpc2hBSSgpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkUHVibGlzaCB8fCBkaXNhYmxlQnRuXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+UHVibGlzaDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInR5cGUgPT09J2N1c3RvbScgPyBzYXZlZHJhZnQoKSA6IHNhdmVEcmFmdEFJKClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUJ0blwiPjxzcGFuIGNsYXNzPVwibXMtMlwiPlNhdmUgYXMgRHJhZnQ8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGNoZWNrY29uZmlnY29udCBtdC0yXCIgKm5nSWY9XCJjb25maWdEYXRhXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0zIGxlZnRjYXJkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIHB4LTcgcHktN1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmcxXCI+e3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jaGVja0xpc3ROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouY2hlY2tMaXN0SWRcIiBjbGFzcz1cInNlY3Rpb24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnM7IGxldCBpPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtNCBmdy1ib2xkIHNlY3Rpb25cIj57e3NlY3Rpb24ubmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIChjbGljayk9XCJhY2NvcmRpYW4oaSlcIiBbbmdDbGFzc109XCJ7J3JvdGF0ZScgOiBzaG93ICE9PSBpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93PT09aVwiIGNsYXNzPVwicXVlc3Rpb24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cInNlY3Rpb24ucXVlc3Rpb25zXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucztsZXQgaj1pbmRleDtcIiBjbGFzcz1cIm15LTIgcS1idG5cIiBjZGtEcmFnPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24ucW5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtbiBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC02XCI+U2NoZWR1bGU8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cInR5cGUgPT09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgfHwgdHlwZSA9PT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJ1wiIGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiBteC00XCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDZWMTJMMTYgMTRNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTJcIj57e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZX19IHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjMgMjNcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjQxNDQ4IDQuNTIzMDNDOC42OTUxOCA0LjgwMzcxIDguNjk1MTggNS4yNTg4IDguNDE0NDggNS41Mzk0OEw1LjUzOTQ4IDguNDE0NDhDNS4yNTg4IDguNjk1MTggNC44MDM3MSA4LjY5NTE4IDQuNTIzMDMgOC40MTQ0OEwzLjA4NTUzIDYuOTc2OThDMi44MDQ4MiA2LjY5NjMgMi44MDQ4MiA2LjI0MTIxIDMuMDg1NTMgNS45NjA1M0MzLjM2NjIxIDUuNjc5ODIgMy44MjEzIDUuNjc5ODIgNC4xMDE5OCA1Ljk2MDUzTDUuMDMxMjUgNi44ODk3OEw3LjM5ODAzIDQuNTIzMDNDNy42Nzg3MSA0LjI0MjMyIDguMTMzOCA0LjI0MjMyIDguNDE0NDggNC41MjMwM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjQxNDQ4IDExLjcxMDVDOC42OTUxOCAxMS45OTEyIDguNjk1MTggMTIuNDQ2MyA4LjQxNDQ4IDEyLjcyN0w1LjUzOTQ4IDE1LjYwMkM1LjI1ODggMTUuODgyNiA0LjgwMzcxIDE1Ljg4MjYgNC41MjMwMyAxNS42MDJMMy4wODU1MyAxNC4xNjQ1QzIuODA0ODIgMTMuODgzOCAyLjgwNDgyIDEzLjQyODcgMy4wODU1MyAxMy4xNDc5QzMuMzY2MjEgMTIuODY3MyAzLjgyMTMgMTIuODY3MyA0LjEwMTk4IDEzLjE0NzlMNS4wMzEyNSAxNC4wNzczTDcuMzk4MDMgMTEuNzEwNUM3LjY3ODcxIDExLjQyOTkgOC4xMzM4IDExLjQyOTkgOC40MTQ0OCAxMS43MTA1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEwLjA2MjUgNi40Njg3NUMxMC4wNjI1IDYuMDcxOCAxMC4zODQ0IDUuNzUgMTAuNzgxMiA1Ljc1SDE1LjA5MzhDMTUuNDkwNiA1Ljc1IDE1LjgxMjUgNi4wNzE4IDE1LjgxMjUgNi40Njg3NUMxNS44MTI1IDYuODY1NyAxNS40OTA2IDcuMTg3NSAxNS4wOTM4IDcuMTg3NUgxMC43ODEyQzEwLjM4NDQgNy4xODc1IDEwLjA2MjUgNi44NjU3IDEwLjA2MjUgNi40Njg3NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zLjU5Mzc1IDBDMS42MDg5OCAwIDAgMS42MDg5OCAwIDMuNTkzNzVWMTYuNTMxMkMwIDE4LjUxNiAxLjYwODk4IDIwLjEyNSAzLjU5Mzc1IDIwLjEyNUg5LjQ4NzA4QzkuMjU0MjkgMTkuNjY5NiA5LjA2NDM2IDE5LjE4ODYgOC45MjI2MSAxOC42ODc1SDMuNTkzNzVDMi40MDI4OCAxOC42ODc1IDEuNDM3NSAxNy43MjIxIDEuNDM3NSAxNi41MzEyVjMuNTkzNzVDMS40Mzc1IDIuNDAyODggMi40MDI4OCAxLjQzNzUgMy41OTM3NSAxLjQzNzVIMTYuNTMxMkMxNy43MjIxIDEuNDM3NSAxOC42ODc1IDIuNDAyODggMTguNjg3NSAzLjU5Mzc1VjguOTIyNjFDMTkuMTg4NiA5LjA2NDM2IDE5LjY2OTYgOS4yNTQyOSAyMC4xMjUgOS40ODcwOFYzLjU5Mzc1QzIwLjEyNSAxLjYwODk4IDE4LjUxNiAwIDE2LjUzMTIgMEgzLjU5Mzc1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE2LjUzMTMgMjNDMjAuMTAzOSAyMyAyMyAyMC4xMDM5IDIzIDE2LjUzMTNDMjMgMTIuOTU4NiAyMC4xMDM5IDEwLjA2MjUgMTYuNTMxMyAxMC4wNjI1QzEyLjk1ODYgMTAuMDYyNSAxMC4wNjI1IDEyLjk1ODYgMTAuMDYyNSAxNi41MzEzQzEwLjA2MjUgMjAuMTAzOSAxMi45NTg2IDIzIDE2LjUzMTMgMjNaTTE2LjUzMTMgMTIuOTM3NUMxNi45MjgxIDEyLjkzNzUgMTcuMjUgMTMuMjU5NCAxNy4yNSAxMy42NTYzVjE1LjgxMjVIMTkuNDA2M0MxOS44MDMxIDE1LjgxMjUgMjAuMTI1IDE2LjEzNDQgMjAuMTI1IDE2LjUzMTNDMjAuMTI1IDE2LjkyODEgMTkuODAzMSAxNy4yNSAxOS40MDYzIDE3LjI1SDE3LjI1VjE5LjQwNjNDMTcuMjUgMTkuODAzMSAxNi45MjgxIDIwLjEyNSAxNi41MzEzIDIwLjEyNUMxNi4xMzQ0IDIwLjEyNSAxNS44MTI1IDE5LjgwMzEgMTUuODEyNSAxOS40MDYzVjE3LjI1SDEzLjY1NjNDMTMuMjU5NCAxNy4yNSAxMi45Mzc1IDE2LjkyODEgMTIuOTM3NSAxNi41MzEzQzEyLjkzNzUgMTYuMTM0NCAxMy4yNTk0IDE1LjgxMjUgMTMuNjU2MyAxNS44MTI1SDE1LjgxMjVWMTMuNjU2M0MxNS44MTI1IDEzLjI1OTQgMTYuMTM0NCAxMi45Mzc1IDE2LjUzMTMgMTIuOTM3NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM2NjcwODVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+e3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PT0gJ29uZXRpbWUnID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnT25lLXRpbWUnIDogKGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlIHwgdGl0bGVjYXNlKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgNlYxMkwxNiAxNE0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9XCJtdC0yIG1zLTJcIj57e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlU3RhcnRUaW1lID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVN0YXJ0VGltZS5zdWJzdHIoLTgpIDogY29uZmlnRGF0YT8ub3BlblRpbWV9fSB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVFbmRUaW1lID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZUVuZFRpbWUuc3Vic3RyKC04KSA6IGNvbmZpZ0RhdGE/LmNsb3NlVGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiICpuZ0lmPVwic2hvd1JhbmdlVmFsdWVcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTYgMlY2TTggMlY2TTMgMTBIMjFNNSA0SDE5QzIwLjEwNDYgNCAyMSA0Ljg5NTQzIDIxIDZWMjBDMjEgMjEuMTA0NiAyMC4xMDQ2IDIyIDE5IDIySDVDMy44OTU0MyAyMiAzIDIxLjEwNDYgMyAyMFY2QzMgNC44OTU0MyAzLjg5NTQzIDQgNSA0WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yIG1zLTJcIj48c3Bhbj57e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZX19PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPT0gJycgJiYgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB7e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGV9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC02XCI+QXNzaWduPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE2IDRIMThDMTguNTMwNCA0IDE5LjAzOTEgNC4yMTA3MSAxOS40MTQyIDQuNTg1NzlDMTkuNzg5MyA0Ljk2MDg2IDIwIDUuNDY5NTcgMjAgNlYyMEMyMCAyMC41MzA0IDE5Ljc4OTMgMjEuMDM5MSAxOS40MTQyIDIxLjQxNDJDMTkuMDM5MSAyMS43ODkzIDE4LjUzMDQgMjIgMTggMjJINkM1LjQ2OTU3IDIyIDQuOTYwODYgMjEuNzg5MyA0LjU4NTc5IDIxLjQxNDJDNC4yMTA3MSAyMS4wMzkxIDQgMjAuNTMwNCA0IDIwVjZDNCA1LjQ2OTU3IDQuMjEwNzEgNC45NjA4NiA0LjU4NTc5IDQuNTg1NzlDNC45NjA4NiA0LjIxMDcxIDUuNDY5NTcgNCA2IDRIOE05IDJIMTVDMTUuNTUyMyAyIDE2IDIuNDQ3NzIgMTYgM1Y1QzE2IDUuNTUyMjggMTUuNTUyMyA2IDE1IDZIOUM4LjQ0NzcyIDYgOCA1LjU1MjI4IDggNVYzQzggMi40NDc3MiA4LjQ0NzcyIDIgOSAyWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPiB7e2NvdmVyYWdlIHwgdGl0bGVjYXNlfX1zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMuMDg5OTUgNi44ODMzMkwzLjAyNDAxIDYuOTg2MzJDMi4zMDM1OCA4LjI1NTIxIDMuMDYxMDEgOS44NzkwOCA0LjQ2NDY0IDEwLjA2NTlDNC41ODYyNyAxMC4wODA4IDQuNzAxMTIgMTAuMDg4OSA0LjgxNDUgMTAuMDg4OUM1LjU1MjU1IDEwLjA4ODkgNi4yMDUyMyA5Ljc3MTkyIDYuNjU5NTMgOS4yNzg4TDcuMjEyODYgOC42NzgxOEw3Ljc2NDMyIDkuMjgwNTJDOC4yMTM2NyA5Ljc3MTM1IDguODY1MiAxMC4wODg5IDkuNjA3NzYgMTAuMDg4OUMxMC4zNDcxIDEwLjA4ODkgMTEuMDAyMiA5Ljc3MSAxMS40NTEyIDkuMjgwNTJMMTIuMDA0NCA4LjY3NjI5TDEyLjU1NzYgOS4yODA1MkMxMy4wMDY2IDkuNzcxIDEzLjY2MTcgMTAuMDg4OSAxNC40MDEgMTAuMDg4OUMxNS4xNDA0IDEwLjA4ODkgMTUuNzk1NCA5Ljc3MSAxNi4yNDQ1IDkuMjgwNTJMMTYuNzk3NyA4LjY3NjI5TDE3LjM1MDggOS4yODA1MkMxNy43OTk5IDkuNzcxIDE4LjQ1NDkgMTAuMDg4OSAxOS4xOTQzIDEwLjA4ODlDMTkuMzA0MSAxMC4wODg5IDE5LjQyMjMgMTAuMDgwOCAxOS41NDMzIDEwLjA2NkMyMC45NzcyIDkuODcxMzEgMjEuNzM1NSA4LjE2MzUxIDIwLjkxNTUgNi44ODM4MkMyMC45MTU0IDYuODgzNzYgMjAuOTE1NCA2Ljg4MzcxIDIwLjkxNTQgNi44ODM2NUwxOC44MDU2IDMuNTkzOTJMMTguODA1NiAzLjU5MzkyTDE4LjgwNDYgMy41OTI0NkMxOC43NTgyIDMuNTE5NjYgMTguNjY0OSAzLjQ2Mzg3IDE4LjU1ODQgMy40NjM4N0g1LjQ0MzA3QzUuMzM2NSAzLjQ2Mzg3IDUuMjQzMjYgMy41MTk2NiA1LjE5NjgxIDMuNTkyNDZMNS4xOTYxOSAzLjU5MzQyTDMuMDg5OTUgNi44ODMzMlpNNC44MTgxOCAxMi43NDk2QzQuNzE2NDQgMTIuNzQ5NiA0LjYxNiAxMi43NDY1IDQuNTE2OSAxMi43NDA2VjE2LjY0MjRWMTguOTYzOUM0LjUxNjkgMTkuODIwNyA1LjIyNjYzIDIwLjUzNTMgNi4xMTk0MiAyMC41MzUzSDE3Ljg4MkMxOC43NzQ4IDIwLjUzNTMgMTkuNDg0NSAxOS44MjA3IDE5LjQ4NDUgMTguOTYzOVYxNi42NDI0VjEyLjc0MTFDMTkuMzg3NCAxMi43NDY2IDE5LjI4OTMgMTIuNzQ5NiAxOS4xOTA2IDEyLjc0OTZDMTkuMDAyMiAxMi43NDk2IDE4LjgxNTcgMTIuNzM5NSAxOC42MzIgMTIuNzE5OFYxNi42NDI0VjE3LjM5MjRIMTcuODgySDYuMTE5NDJINS4zNjk0MlYxNi42NDI0VjEyLjcyMDZDNS4xODg2NiAxMi43Mzk3IDUuMDA0NzIgMTIuNzQ5NiA0LjgxODE4IDEyLjc0OTZaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9XCJtdC0yIG1zLTJcIj57e2Fzc2lnblNpbmdsZT8ubGVuZ3RoICsgZ3JvdXBBc3NpZ24/Lmxlbmd0aH19IHt7Y292ZXJhZ2V9fXt7KGFzc2lnblNpbmdsZT8ubGVuZ3RoICsgZ3JvdXBBc3NpZ24/Lmxlbmd0aCkgPiAxID8gJ3MnOicnfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMCBlZGl0cXVlc1wiICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKSAmJiAhZGlzYWJsZWRRdWVzdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNhdmVhbmRyZWRpcmVjdChvYmouY2hlY2tMaXN0SWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRhc2hlZCBidG4gYnRuLWxpZ2h0IHVwbG9hZFwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjEgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC42NjY2IDIuNTAwOUMxNC44ODU1IDIuMjgyMDMgMTUuMTQ1MyAyLjEwODQyIDE1LjQzMTMgMS45ODk5NkMxNS43MTczIDEuODcxNTEgMTYuMDIzOCAxLjgxMDU1IDE2LjMzMzMgMS44MTA1NUMxNi42NDI4IDEuODEwNTUgMTYuOTQ5MyAxLjg3MTUxIDE3LjIzNTMgMS45ODk5NkMxNy41MjEzIDIuMTA4NDIgMTcuNzgxMSAyLjI4MjAzIDE4IDIuNTAwOUMxOC4yMTg4IDIuNzE5NzcgMTguMzkyNCAyLjk3OTYxIDE4LjUxMDkgMy4yNjU1OEMxOC42Mjk0IDMuNTUxNTQgMTguNjkwMyAzLjg1ODA0IDE4LjY5MDMgNC4xNjc1N0MxOC42OTAzIDQuNDc3MSAxOC42Mjk0IDQuNzgzNiAxOC41MTA5IDUuMDY5NTZDMTguMzkyNCA1LjM1NTUzIDE4LjIxODggNS42MTUzNyAxOCA1LjgzNDI0TDYuNzQ5OTYgMTcuMDg0MkwyLjE2NjYzIDE4LjMzNDJMMy40MTY2MyAxMy43NTA5TDE0LjY2NjYgMi41MDA5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwidXBsb2FkdGV4dFwiPkVkaXQgUXVlc3Rpb25zPC9zcGFuPjwvYT5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzFcIj5BbGVydHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNiBteC00IHN1YlwiPkVtYWlsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJteC00IG10LTQgc3ViXCI+aWYgdXNhZ2UgZXhjZWVkc1xyXG4gICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YT8uYWlDb25maWc/Lm1vYmlsZURldGVjdGlvbj8udXNhZ2VFeGNlZWR9fVxyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50c1xyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxXCI+QWxlcnRzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtNCBzdWJcIj5TZW5kIGVtYWlsIGV2ZXJ5ZGF5IHRvPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIVsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSkgJiYgY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHM/Lmxlbmd0aFwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hc3NpZ25Db25maWcgPT09J2dsb2JhbCdcIiBjbGFzcz1cInNjZWR1bGUtdGV4dFwiPkV2ZXJ5ZGF5IGF0IHt7IGRheWpzKGNvbmZpZ0RhdGEuYWlDb25maWcuZXZlbnRzWzBdPy50aW1lLCdISDpNTScpLmZvcm1hdCgnaGg6bW0gQScpIH19IGZvciB7e2NvbmZpZ0RhdGEuYWlDb25maWcuZXZlbnRzWzBdPy5kdXJhdGlvbn19IG1pbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hc3NpZ25Db25maWcgPT09J3N0b3JlJ1wiIGNsYXNzPVwic2NlZHVsZS10ZXh0XCI+TXVsdGlwbGUgdGltZXMgYXJlIGFsbG9jYXRlZCBmb3IgbXVsdGlwbGUgc3RvcmVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIVsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSkgJiYgY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydHMudXNlcnM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTRcIj5BbGVydHMgVG88L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYWxlcnQgb2YgY29uZmlnRGF0YS5haUNvbmZpZy5hbGVydHMudXNlcnNcIiBjbGFzcz1cIm10LTIgbXMtMiBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0IGgtMjVweFwiPjxzcGFuIGNsYXNzPVwiYmctbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnkgcm91bmRlZC01IG1lLTFcIj57e2dldEluaXRpYWxzKGFsZXJ0Py5uYW1lKX19PC9zcGFuPiB7e2FsZXJ0Py5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxoMyAqbmdJZj1cIlsndW5pZm9ybWRldGVjdGlvbicsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSkgJiYgY29uZmlnRGF0YT8uYWlDb25maWc/Lm1vYmlsZURldGVjdGlvbj8uZGV0ZWN0aW9uQXJlYT8ubGVuZ3RoXCIgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTRcIj5EZXRlY3Rpb24gQXJlYXM8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yIHN1YlwiPjxzcGFuICpuZ0Zvcj1cImxldCB6b25lIG9mIGNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5tb2JpbGVEZXRlY3Rpb24/LmRldGVjdGlvbkFyZWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBteC0yIG10LTQgYmFkZ2UtbGlnaHQgY2hlY2tsaXN0bGFiZWwgaC0yNXB4IGZzLWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmctbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnkgcm91bmRlZC01IG1lLTFcIj57e2dldEluaXRpYWxzKHpvbmU/Lm5hbWUpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImtpLWR1b3RvbmUga2ktYXJyb3ctdXAgY2hlY2tsaXN0dGV4dFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7em9uZT8ubmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTRcIj5Bc3NpZ248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE2IDRIMThDMTguNTMwNCA0IDE5LjAzOTEgNC4yMTA3MSAxOS40MTQyIDQuNTg1NzlDMTkuNzg5MyA0Ljk2MDg2IDIwIDUuNDY5NTcgMjAgNlYyMEMyMCAyMC41MzA0IDE5Ljc4OTMgMjEuMDM5MSAxOS40MTQyIDIxLjQxNDJDMTkuMDM5MSAyMS43ODkzIDE4LjUzMDQgMjIgMTggMjJINkM1LjQ2OTU3IDIyIDQuOTYwODYgMjEuNzg5MyA0LjU4NTc5IDIxLjQxNDJDNC4yMTA3MSAyMS4wMzkxIDQgMjAuNTMwNCA0IDIwVjZDNCA1LjQ2OTU3IDQuMjEwNzEgNC45NjA4NiA0LjU4NTc5IDQuNTg1NzlDNC45NjA4NiA0LjIxMDcxIDUuNDY5NTcgNCA2IDRIOE05IDJIMTVDMTUuNTUyMyAyIDE2IDIuNDQ3NzIgMTYgM1Y1QzE2IDUuNTUyMjggMTUuNTUyMyA2IDE1IDZIOUM4LjQ0NzcyIDYgOCA1LjU1MjI4IDggNVYzQzggMi40NDc3MiA4LjQ0NzcyIDIgOSAyWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+IFN0b3Jlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgbXgtMiBzdWJcIj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zLjA4OTk1IDYuODgzMzJMMy4wMjQwMSA2Ljk4NjMyQzIuMzAzNTggOC4yNTUyMSAzLjA2MTAxIDkuODc5MDggNC40NjQ2NCAxMC4wNjU5QzQuNTg2MjcgMTAuMDgwOCA0LjcwMTEyIDEwLjA4ODkgNC44MTQ1IDEwLjA4ODlDNS41NTI1NSAxMC4wODg5IDYuMjA1MjMgOS43NzE5MiA2LjY1OTUzIDkuMjc4OEw3LjIxMjg2IDguNjc4MThMNy43NjQzMiA5LjI4MDUyQzguMjEzNjcgOS43NzEzNSA4Ljg2NTIgMTAuMDg4OSA5LjYwNzc2IDEwLjA4ODlDMTAuMzQ3MSAxMC4wODg5IDExLjAwMjIgOS43NzEgMTEuNDUxMiA5LjI4MDUyTDEyLjAwNDQgOC42NzYyOUwxMi41NTc2IDkuMjgwNTJDMTMuMDA2NiA5Ljc3MSAxMy42NjE3IDEwLjA4ODkgMTQuNDAxIDEwLjA4ODlDMTUuMTQwNCAxMC4wODg5IDE1Ljc5NTQgOS43NzEgMTYuMjQ0NSA5LjI4MDUyTDE2Ljc5NzcgOC42NzYyOUwxNy4zNTA4IDkuMjgwNTJDMTcuNzk5OSA5Ljc3MSAxOC40NTQ5IDEwLjA4ODkgMTkuMTk0MyAxMC4wODg5QzE5LjMwNDEgMTAuMDg4OSAxOS40MjIzIDEwLjA4MDggMTkuNTQzMyAxMC4wNjZDMjAuOTc3MiA5Ljg3MTMxIDIxLjczNTUgOC4xNjM1MSAyMC45MTU1IDYuODgzODJDMjAuOTE1NCA2Ljg4Mzc2IDIwLjkxNTQgNi44ODM3MSAyMC45MTU0IDYuODgzNjVMMTguODA1NiAzLjU5MzkyTDE4LjgwNTYgMy41OTM5MkwxOC44MDQ2IDMuNTkyNDZDMTguNzU4MiAzLjUxOTY2IDE4LjY2NDkgMy40NjM4NyAxOC41NTg0IDMuNDYzODdINS40NDMwN0M1LjMzNjUgMy40NjM4NyA1LjI0MzI2IDMuNTE5NjYgNS4xOTY4MSAzLjU5MjQ2TDUuMTk2MTkgMy41OTM0MkwzLjA4OTk1IDYuODgzMzJaTTQuODE4MTggMTIuNzQ5NkM0LjcxNjQ0IDEyLjc0OTYgNC42MTYgMTIuNzQ2NSA0LjUxNjkgMTIuNzQwNlYxNi42NDI0VjE4Ljk2MzlDNC41MTY5IDE5LjgyMDcgNS4yMjY2MyAyMC41MzUzIDYuMTE5NDIgMjAuNTM1M0gxNy44ODJDMTguNzc0OCAyMC41MzUzIDE5LjQ4NDUgMTkuODIwNyAxOS40ODQ1IDE4Ljk2MzlWMTYuNjQyNFYxMi43NDExQzE5LjM4NzQgMTIuNzQ2NiAxOS4yODkzIDEyLjc0OTYgMTkuMTkwNiAxMi43NDk2QzE5LjAwMjIgMTIuNzQ5NiAxOC44MTU3IDEyLjczOTUgMTguNjMyIDEyLjcxOThWMTYuNjQyNFYxNy4zOTI0SDE3Ljg4Mkg2LjExOTQySDUuMzY5NDJWMTYuNjQyNFYxMi43MjA2QzUuMTg4NjYgMTIuNzM5NyA1LjAwNDcyIDEyLjc0OTYgNC44MTgxOCAxMi43NDk2WlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7dGhpcy5jb25maWdEYXRhPy5zdG9yZUxpc3Q/Lmxlbmd0aH19IFN0b3Jle3t0aGlzLmNvbmZpZ0RhdGE/LnN0b3JlTGlzdD8ubGVuZ3RoID4gMSA/ICdzJzonJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIVsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSkgJiYgY29uZmlnRGF0YS5hcHByb3Zlcj8ubGVuZ3RoICYmIGNsaWVudElkIT09JzQ1MidcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMSBtdC00XCI+QXV0b21hdGljIFRhc2s8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYXBwcm92ZSBvZiBjb25maWdEYXRhLmFwcHJvdmVyXCIgY2xhc3M9XCJtdC0yIG1zLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBoLTI1cHhcIj48c3BhbiBjbGFzcz1cImJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5IHJvdW5kZWQtNSBtZS0xXCI+e3tnZXRJbml0aWFscyhhcHByb3ZlPy5uYW1lKX19PC9zcGFuPnt7YXBwcm92ZT8ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtOVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBiZy10cmFuc3BhcmVudCBib3JkZXItMCBvdXRsaW5lLTAgY2FyZC1mbHVzaCBoLXhsLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBiZy13aGl0ZSByb3VuZGVkLTQgcHgtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZ1wiPlNjaGVkdWxlPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteC0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODc0XzY2MTk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAxMC42NjczVjguMDAwNjVNOC4wMDAxNiA1LjMzMzk4SDguMDA2ODNNMTQuNjY2OCA4LjAwMDY1QzE0LjY2NjggMTEuNjgyNiAxMS42ODIxIDE0LjY2NzMgOC4wMDAxNiAxNC42NjczQzQuMzE4MjYgMTQuNjY3MyAxLjMzMzUgMTEuNjgyNiAxLjMzMzUgOC4wMDA2NUMxLjMzMzUgNC4zMTg3NSA0LjMxODI2IDEuMzMzOTggOC4wMDAxNiAxLjMzMzk4QzExLjY4MjEgMS4zMzM5OCAxNC42NjY4IDQuMzE4NzUgMTQuNjY2OCA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NzRfNjYxOTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiWyd1bmlmb3JtZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTIgbXgtNFwiPkZyb208L3NwYW4+Jm5ic3A7Jm5ic3A7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTIwMHB4IG10LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVUaW1lKCdzdGFydCcpXCIgWyhuZ01vZGVsKV09XCJzdGFydFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCIgbmFtZT1cImR1ZV9kYXRlXCIgdHlwZT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTMgbXgtNFwiPlRvPC9zcGFuPiZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTIwMHB4IG10LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVUaW1lKCdlbmQnKVwiIFsobmdNb2RlbCldPVwiZW5kVGltZVwiIHBsYWNlaG9sZGVyPVwiU2V0IHN0b3JlIG9wZW4gdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZHVlX2RhdGVcIiB0eXBlPVwidGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC01IGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb2JpbGUgZGV0ZWN0aW9ucyBhcmUgcHJlLXNjaGVkdWxlZCwgb3BlcmF0ZSBkdXJpbmcgdGhlIHN0b3JlJ3Mgb3BlbiBob3VycyBiYXNlZCBvbiBpdHMgb3BlbmluZyBhbmQgY2xvc2luZyB0aW1lcywgYW5kIGNhbm5vdCBiZSBlZGl0ZWQuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtNSBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSBvcGVuIGFuZCBjbG9zZSBkZXRlY3Rpb25zIG9wZXJhdGUgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3RvcmUncyBvcGVuaW5nIGFuZCBjbG9zaW5nIHRpbWVzLiBZb3UgY2FuIHZpZXcvZWRpdCBzdG9yZeKAmXMgb3BlbiBhbmQgY2xvc2UgdGltaW5ncyBpbiB0aGUgJ0Fzc2lnbiBTdG9yZXMgYW5kIENsdXN0ZXInIHNlY3Rpb24gYmVsb3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3NjcnVtJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC01IGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBzdG9yZSdzIG9wZW4gYW5kIGNsb3NlIHRpbWVzIGFyZSBzZXQgaW4gdGhlIDxzcGFuIGNsYXNzPVwiZnctYm9sZGVyXCI+c3RvcmUgY29uZmlndXJhdGlvbnMuPC9zcGFuPiBUbyBtYWtlIGNoYW5nZXMsIHBsZWFzZSB1cGRhdGUgPHNwYW4gcm91dGVyTGluaz1cIi9tYW5hZ2Uvc2V0dGluZ3MvY29uZmlndXJhdGlvblwiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiPmNsaWNrIGhlcmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjbGVhbmluZyddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtNSBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgc3RvcmUncyBvcGVuIGFuZCBjbG9zZSB0aW1lcyBhcmUgc2V0IGluIHRoZSA8c3BhbiBjbGFzcz1cImZ3LWJvbGRlclwiPnN0b3JlIGNvbmZpZ3VyYXRpb25zLjwvc3Bhbj4gVG8gbWFrZSBjaGFuZ2VzLCBwbGVhc2UgdXBkYXRlIDxzcGFuIHJvdXRlckxpbms9XCIvbWFuYWdlL3NldHRpbmdzL2NvbmZpZ3VyYXRpb25cIiBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIj5jbGljayBoZXJlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnc3RhZmZsZWZ0aW50aGVtaWRkbGUnXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTUgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBBSSBjaGVja2xpc3Qgd2lsbCBpbml0aWF0ZSBkZXRlY3Rpb25zIGJhc2VkIG9uIHRoZSBzdG9yZSdzIG9wZXJhdGlvbmFsIGhvdXJzLCBzdGFydGluZyB3aGVuIHRoZSBzdG9yZSBvcGVucyBhbmQgc3RvcHBpbmcgd2hlbiBpdCBjbG9zZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjdXN0b21lcnVuYXR0ZW5kZWQnXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTUgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBBSSBjaGVja2xpc3Qgd2lsbCBpbml0aWF0ZSBkZXRlY3Rpb25zIGJhc2VkIG9uIHRoZSBzdG9yZSdzIG9wZXJhdGlvbmFsIGhvdXJzLCBzdGFydGluZyB3aGVuIHRoZSBzdG9yZSBvcGVucyBhbmQgc3RvcHBpbmcgd2hlbiBpdCBjbG9zZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWyd1bmlmb3JtZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC01IGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWZvcm0gZGV0ZWN0aW9ucyBhcmUgYXV0b21hdGljYWxseSBzY2hlZHVsZWQgYmFzZWQgb24gdGhlIHN0b3JlJ3Mgb3BlcmF0aW5nIGhvdXJzIGFuZCBydW4gZHVyaW5nIG9wZW4gaG91cnMuIFRoZXNlIHNjaGVkdWxlcyBjYW5ub3QgYmUgbW9kaWZpZWQuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjbGVhbmluZycsJ3NjcnVtJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTYgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImNsaWNrQUljb25maWd1cmUoJ2dsb2JhbCcpXCIgW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCc/ICdjb25maWd1cmVBY2l0ZScgOiAnYm9yZGVyIGJvcmRlci0xJ1wiICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gaC03MHB4IHJvdW5kZWQtMyBwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHZpZXdCb3g9XCIwIDAgMzYgMzZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBbYXR0ci5maWxsXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdnbG9iYWwnID8gJyNFQUY4RkYnIDogJyNGMkY0RjcnXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBbYXR0ci5zdHJva2VdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAnI0RBRjFGRicgOicjRjlGQUZCJ1wiIHN0cm9rZS13aWR0aD1cIjRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEwMTc5XzQ2ODY3KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMS43NSAyNkMxMS4yODU5IDI2IDEwLjg0MDggMjUuODE1NiAxMC41MTI2IDI1LjQ4NzRDMTAuMTg0NCAyNS4xNTkyIDEwIDI0LjcxNDEgMTAgMjQuMjVWMTEuNzVDMTAgMTAuNzg0IDEwLjc4NCAxMCAxMS43NSAxMEgyMC4yNUMyMS4yMTYgMTAgMjIgMTAuNzg0IDIyIDExLjc1VjI0LjI1QzIyIDI0LjMzNSAyMS45OTQgMjQuNDE4IDIxLjk4MiAyNC41SDI0LjI1QzI0LjMxNjMgMjQuNSAyNC4zNzk5IDI0LjQ3MzcgMjQuNDI2OCAyNC40MjY4QzI0LjQ3MzcgMjQuMzc5OSAyNC41IDI0LjMxNjMgMjQuNSAyNC4yNVYxOC4yODVDMjQuNSAxOC4yNDM5IDI0LjQ4OTkgMTguMjAzNCAyNC40NzA2IDE4LjE2NzFDMjQuNDUxMiAxOC4xMzA4IDI0LjQyMzIgMTguMDk5OSAyNC4zODkgMTguMDc3TDIzLjMzNCAxNy4zNzRDMjMuMjUyMSAxNy4zMTk0IDIzLjE4MTcgMTcuMjQ5MSAyMy4xMjY5IDE3LjE2NzNDMjMuMDcyMSAxNy4wODU1IDIzLjAzMzkgMTYuOTkzNyAyMy4wMTQ2IDE2Ljg5NzFDMjIuOTk1MyAxNi44MDA1IDIyLjk5NTIgMTYuNzAxMSAyMy4wMTQzIDE2LjYwNDVDMjMuMDMzNCAxNi41MDc4IDIzLjA3MTQgMTYuNDE1OSAyMy4xMjYgMTYuMzM0QzIzLjE4MDYgMTYuMjUyMSAyMy4yNTA5IDE2LjE4MTcgMjMuMzMyNyAxNi4xMjY5QzIzLjQxNDUgMTYuMDcyMSAyMy41MDYzIDE2LjAzMzkgMjMuNjAyOSAxNi4wMTQ2QzIzLjY5OTUgMTUuOTk1MyAyMy43OTg5IDE1Ljk5NTIgMjMuODk1NSAxNi4wMTQzQzIzLjk5MjIgMTYuMDMzNCAyNC4wODQxIDE2LjA3MTQgMjQuMTY2IDE2LjEyNkwyNS4yMjEgMTYuODI5QzI1LjcwOCAxNy4xNTQgMjYgMTcuNyAyNiAxOC4yODVWMjQuMjVDMjYgMjQuNzE0MSAyNS44MTU2IDI1LjE1OTIgMjUuNDg3NCAyNS40ODc0QzI1LjE1OTIgMjUuODE1NiAyNC43MTQxIDI2IDI0LjI1IDI2SDIwLjc1QzIwLjY4MzUgMjUuOTk5OSAyMC42MTczIDI1Ljk5MTIgMjAuNTUzIDI1Ljk3NEMyMC40NTQgMjUuOTkxIDIwLjM1MyAyNiAyMC4yNSAyNkgxNy4yNUMxNy4wNTExIDI2IDE2Ljg2MDMgMjUuOTIxIDE2LjcxOTcgMjUuNzgwM0MxNi41NzkgMjUuNjM5NyAxNi41IDI1LjQ0ODkgMTYuNSAyNS4yNVYyNEgxNS41VjI1LjI1QzE1LjUgMjUuNDQ4OSAxNS40MjEgMjUuNjM5NyAxNS4yODAzIDI1Ljc4MDNDMTUuMTM5NyAyNS45MjEgMTQuOTQ4OSAyNiAxNC43NSAyNkgxMS43NVpNMTEuNSAyNC4yNUMxMS41IDI0LjM4OCAxMS42MTIgMjQuNSAxMS43NSAyNC41SDE0VjIzLjI1QzE0IDIzLjA1MTEgMTQuMDc5IDIyLjg2MDMgMTQuMjE5NyAyMi43MTk3QzE0LjM2MDMgMjIuNTc5IDE0LjU1MTEgMjIuNSAxNC43NSAyMi41SDE3LjI1QzE3LjQ0ODkgMjIuNSAxNy42Mzk3IDIyLjU3OSAxNy43ODAzIDIyLjcxOTdDMTcuOTIxIDIyLjg2MDMgMTggMjMuMDUxMSAxOCAyMy4yNVYyNC41SDIwLjI1QzIwLjMxNjMgMjQuNSAyMC4zNzk5IDI0LjQ3MzcgMjAuNDI2OCAyNC40MjY4QzIwLjQ3MzcgMjQuMzc5OSAyMC41IDI0LjMxNjMgMjAuNSAyNC4yNVYxMS43NUMyMC41IDExLjY4MzcgMjAuNDczNyAxMS42MjAxIDIwLjQyNjggMTEuNTczMkMyMC4zNzk5IDExLjUyNjMgMjAuMzE2MyAxMS41IDIwLjI1IDExLjVIMTEuNzVDMTEuNjgzNyAxMS41IDExLjYyMDEgMTEuNTI2MyAxMS41NzMyIDExLjU3MzJDMTEuNTI2MyAxMS42MjAxIDExLjUgMTEuNjgzNyAxMS41IDExLjc1VjI0LjI1Wk0xMy43NSAxNkgxNC4yNUMxNC40NDg5IDE2IDE0LjYzOTcgMTYuMDc5IDE0Ljc4MDMgMTYuMjE5N0MxNC45MjEgMTYuMzYwMyAxNSAxNi41NTExIDE1IDE2Ljc1QzE1IDE2Ljk0ODkgMTQuOTIxIDE3LjEzOTcgMTQuNzgwMyAxNy4yODAzQzE0LjYzOTcgMTcuNDIxIDE0LjQ0ODkgMTcuNSAxNC4yNSAxNy41SDEzLjc1QzEzLjU1MTEgMTcuNSAxMy4zNjAzIDE3LjQyMSAxMy4yMTk3IDE3LjI4MDNDMTMuMDc5IDE3LjEzOTcgMTMgMTYuOTQ4OSAxMyAxNi43NUMxMyAxNi41NTExIDEzLjA3OSAxNi4zNjAzIDEzLjIxOTcgMTYuMjE5N0MxMy4zNjAzIDE2LjA3OSAxMy41NTExIDE2IDEzLjc1IDE2Wk0xMyAxMy43NUMxMyAxMy41NTExIDEzLjA3OSAxMy4zNjAzIDEzLjIxOTcgMTMuMjE5N0MxMy4zNjAzIDEzLjA3OSAxMy41NTExIDEzIDEzLjc1IDEzSDE0LjI1QzE0LjQ0ODkgMTMgMTQuNjM5NyAxMy4wNzkgMTQuNzgwMyAxMy4yMTk3QzE0LjkyMSAxMy4zNjAzIDE1IDEzLjU1MTEgMTUgMTMuNzVDMTUgMTMuOTQ4OSAxNC45MjEgMTQuMTM5NyAxNC43ODAzIDE0LjI4MDNDMTQuNjM5NyAxNC40MjEgMTQuNDQ4OSAxNC41IDE0LjI1IDE0LjVIMTMuNzVDMTMuNTUxMSAxNC41IDEzLjM2MDMgMTQuNDIxIDEzLjIxOTcgMTQuMjgwM0MxMy4wNzkgMTQuMTM5NyAxMyAxMy45NDg5IDEzIDEzLjc1Wk0xNyAxNi43NUMxNyAxNi41NTExIDE3LjA3OSAxNi4zNjAzIDE3LjIxOTcgMTYuMjE5N0MxNy4zNjAzIDE2LjA3OSAxNy41NTExIDE2IDE3Ljc1IDE2SDE4LjI1QzE4LjQ0ODkgMTYgMTguNjM5NyAxNi4wNzkgMTguNzgwMyAxNi4yMTk3QzE4LjkyMSAxNi4zNjAzIDE5IDE2LjU1MTEgMTkgMTYuNzVDMTkgMTYuOTQ4OSAxOC45MjEgMTcuMTM5NyAxOC43ODAzIDE3LjI4MDNDMTguNjM5NyAxNy40MjEgMTguNDQ4OSAxNy41IDE4LjI1IDE3LjVIMTcuNzVDMTcuNTUxMSAxNy41IDE3LjM2MDMgMTcuNDIxIDE3LjIxOTcgMTcuMjgwM0MxNy4wNzkgMTcuMTM5NyAxNyAxNi45NDg5IDE3IDE2Ljc1Wk0xNy43NSAxM0gxOC4yNUMxOC40NDg5IDEzIDE4LjYzOTcgMTMuMDc5IDE4Ljc4MDMgMTMuMjE5N0MxOC45MjEgMTMuMzYwMyAxOSAxMy41NTExIDE5IDEzLjc1QzE5IDEzLjk0ODkgMTguOTIxIDE0LjEzOTcgMTguNzgwMyAxNC4yODAzQzE4LjYzOTcgMTQuNDIxIDE4LjQ0ODkgMTQuNSAxOC4yNSAxNC41SDE3Ljc1QzE3LjU1MTEgMTQuNSAxNy4zNjAzIDE0LjQyMSAxNy4yMTk3IDE0LjI4MDNDMTcuMDc5IDE0LjEzOTcgMTcgMTMuOTQ4OSAxNyAxMy43NUMxNyAxMy41NTExIDE3LjA3OSAxMy4zNjAzIDE3LjIxOTcgMTMuMjE5N0MxNy4zNjAzIDEzLjA3OSAxNy41NTExIDEzIDE3Ljc1IDEzWk0xMyAxOS43NUMxMyAxOS41NTExIDEzLjA3OSAxOS4zNjAzIDEzLjIxOTcgMTkuMjE5N0MxMy4zNjAzIDE5LjA3OSAxMy41NTExIDE5IDEzLjc1IDE5SDE0LjI1QzE0LjQ0ODkgMTkgMTQuNjM5NyAxOS4wNzkgMTQuNzgwMyAxOS4yMTk3QzE0LjkyMSAxOS4zNjAzIDE1IDE5LjU1MTEgMTUgMTkuNzVDMTUgMTkuOTQ4OSAxNC45MjEgMjAuMTM5NyAxNC43ODAzIDIwLjI4MDNDMTQuNjM5NyAyMC40MjEgMTQuNDQ4OSAyMC41IDE0LjI1IDIwLjVIMTMuNzVDMTMuNTUxMSAyMC41IDEzLjM2MDMgMjAuNDIxIDEzLjIxOTcgMjAuMjgwM0MxMy4wNzkgMjAuMTM5NyAxMyAxOS45NDg5IDEzIDE5Ljc1Wk0xNy43NSAxOUgxOC4yNUMxOC40NDg5IDE5IDE4LjYzOTcgMTkuMDc5IDE4Ljc4MDMgMTkuMjE5N0MxOC45MjEgMTkuMzYwMyAxOSAxOS41NTExIDE5IDE5Ljc1QzE5IDE5Ljk0ODkgMTguOTIxIDIwLjEzOTcgMTguNzgwMyAyMC4yODAzQzE4LjYzOTcgMjAuNDIxIDE4LjQ0ODkgMjAuNSAxOC4yNSAyMC41SDE3Ljc1QzE3LjU1MTEgMjAuNSAxNy4zNjAzIDIwLjQyMSAxNy4yMTk3IDIwLjI4MDNDMTcuMDc5IDIwLjEzOTcgMTcgMTkuOTQ4OSAxNyAxOS43NUMxNyAxOS41NTExIDE3LjA3OSAxOS4zNjAzIDE3LjIxOTcgMTkuMjE5N0MxNy4zNjAzIDE5LjA3OSAxNy41NTExIDE5IDE3Ljc1IDE5WlwiIFthdHRyLmZpbGxdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAnIzAwQTNGRicgOiAnYmxhY2snXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDE3OV80Njg2N1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEwIDEwKVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy0zIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAndGV4dC1wcmltYXJ5JyA6ICcnXCIgY2xhc3M9XCJ1c2VyIGZ3LWJvbGRcIj5HbG9iYWwgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdnbG9iYWwnID8gJ2FsZXJ0dGV4dCcgOiAnaGVhZGVyYWxpZ24nXCI+Q29uZmlndXJlIGh1ZGRsZSB0aW1lIGluIGEgc3RvcmUgbGV2ZWwgZm9yIGFsbCBzdG9yZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHctMTVweCBoLTE1cHggbXQtMSByb3VuZGVkLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnZ2xvYmFsJ1wiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwib25lVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02IGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJjbGlja0FJY29uZmlndXJlKCdzdG9yZScpXCIgW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ3N0b3JlJyA/ICdjb25maWd1cmVBY2l0ZScgOiAnYm9yZGVyIGJvcmRlci0xJ1wiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBoLTcwcHggcm91bmRlZC0zIHAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIFthdHRyLmZpbGxdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hc3NpZ25Db25maWcgPT09ICdzdG9yZScgPyAnI0VBRjhGRic6JyNGMkY0RjcnXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBbYXR0ci5zdHJva2VdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hc3NpZ25Db25maWcgPT09ICdzdG9yZScgPyAnI0RBRjFGRicgOiAnI0Y5RkFGQidcIiBzdHJva2Utd2lkdGg9XCI0XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi4wNTc0IDE0LjU4ODJMMTIuMDEzNCAxNC42NTY5QzExLjUzMzEgMTUuNTAyOCAxMi4wMzgxIDE2LjU4NTQgMTIuOTczOCAxNi43MDk5QzEzLjA1NDkgMTYuNzE5OSAxMy4xMzE1IDE2LjcyNTMgMTMuMjA3MSAxNi43MjUzQzEzLjY5OTEgMTYuNzI1MyAxNC4xMzQyIDE2LjUxNCAxNC40MzcxIDE2LjE4NTJMMTQuODA2IDE1Ljc4NDhMMTUuMTczNiAxNi4xODY0QzE1LjQ3MzIgMTYuNTEzNiAxNS45MDc1IDE2LjcyNTMgMTYuNDAyNiAxNi43MjUzQzE2Ljg5NTUgMTYuNzI1MyAxNy4zMzIyIDE2LjUxMzMgMTcuNjMxNSAxNi4xODY0TDE4LjAwMDMgMTUuNzgzNUwxOC4zNjkxIDE2LjE4NjRDMTguNjY4NSAxNi41MTMzIDE5LjEwNTIgMTYuNzI1MyAxOS41OTgxIDE2LjcyNTNDMjAuMDkxIDE2LjcyNTMgMjAuNTI3NyAxNi41MTMzIDIwLjgyNyAxNi4xODY0TDIxLjE5NTggMTUuNzgzNUwyMS41NjQ2IDE2LjE4NjRDMjEuODY0IDE2LjUxMzMgMjIuMzAwNyAxNi43MjUzIDIyLjc5MzYgMTYuNzI1M0MyMi44NjY4IDE2LjcyNTMgMjIuOTQ1NiAxNi43MTk5IDIzLjAyNjIgMTYuNzFDMjMuOTgyMiAxNi41ODAyIDI0LjQ4NzggMTUuNDQxNyAyMy45NDExIDE0LjU4ODZDMjMuOTQxIDE0LjU4ODUgMjMuOTQxIDE0LjU4ODUgMjMuOTQxIDE0LjU4ODRMMjIuNTM0NCAxMi4zOTUzTDIyLjUzMzggMTIuMzk0M0MyMi41MDI4IDEyLjM0NTggMjIuNDQwNyAxMi4zMDg2IDIyLjM2OTYgMTIuMzA4NkgxMy42MjYxQzEzLjU1NTEgMTIuMzA4NiAxMy40OTI5IDEyLjM0NTggMTMuNDYxOSAxMi4zOTQzTDEzLjQ2MTUgMTIuMzk1TDEyLjA1NzQgMTQuNTg4MlpNMTEuNjM2MyAxNC4zMTg2TDEzLjA0MDQgMTIuMTI1NEwxMS42MzYzIDE0LjMxODZaTTEzLjIwOTUgMTguNDk5MUMxMy4xNDE3IDE4LjQ5OTEgMTMuMDc0NyAxOC40OTcgMTMuMDA4NyAxOC40OTMxVjIxLjA5NDNWMjIuNjQxOUMxMy4wMDg3IDIzLjIxMzEgMTMuNDgxOCAyMy42ODk1IDE0LjA3NyAyMy42ODk1SDIxLjkxODdDMjIuNTEzOSAyMy42ODk1IDIyLjk4NzEgMjMuMjEzMSAyMi45ODcxIDIyLjY0MTlWMjEuMDk0M1YxOC40OTM0QzIyLjkyMjQgMTguNDk3MSAyMi44NTY5IDE4LjQ5OTEgMjIuNzkxMSAxOC40OTkxQzIyLjY2NTUgMTguNDk5MSAyMi41NDEyIDE4LjQ5MjMgMjIuNDE4NyAxOC40NzkyVjIxLjA5NDNWMjEuNTk0M0gyMS45MTg3SDE0LjA3N0gxMy41NzdWMjEuMDk0M1YxOC40Nzk4QzEzLjQ1NjUgMTguNDkyNSAxMy4zMzM5IDE4LjQ5OTEgMTMuMjA5NSAxOC40OTkxWlwiIFthdHRyLnN0cm9rZV09XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnc3RvcmUnID8gJyMwMEEzRkYnIDogJyMxMDE4MjgnXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdzdG9yZScgPyAndGV4dC1wcmltYXJ5JyA6ICcnXCJjbGFzcz1cInVzZXIgZnctYm9sZFwiPlN0b3JlIFdpc2UgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdzdG9yZScgPyAnYWxlcnR0ZXh0JyA6ICdoZWFkZXJhbGlnbidcIj5Db25maWd1cmUgaHVkZGxlIHRpbWUgaW4gYSBzdG9yZSBsZXZlbCBmb3IgYWxsIHN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgdy0xNXB4IGgtMTVweCBtdC0xIHJvdW5kZWQtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdzdG9yZSdcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm9uZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnc3RvcmUnXCIgY2xhc3M9XCJjb2wtc20tMTIgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwidXBsb2FkQUlmaWxlcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMDhcIiBoZWlnaHQ9XCI4OFwiIHZpZXdCb3g9XCIwIDAgMTA4IDg4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjMwLjg0NjlcIiBjeT1cIjMwLjg0NjlcIiByPVwiMzAuODQ2OVwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA4NC44NTE2IDApXCIgZmlsbD1cIiNFQUVDRjBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kZF85NTQ4Xzk5NjEzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUzLjA0OTkgOS40OTIxOUM1OS40NDA0IDkuNDkyMTkgNjUuMDkzMyAxMi42NSA2OC41MzM0IDE3LjQ5MDRDNjkuNjU2OCAxNy4yMjU1IDcwLjgyODMgMTcuMDg1MyA3Mi4wMzI2IDE3LjA4NTNDODAuNDE5NyAxNy4wODUzIDg3LjIxODggMjMuODg0NCA4Ny4yMTg4IDMyLjI3MTVDODcuMjE4OCA0MC42NTg1IDgwLjQxOTcgNDcuNDU3NiA3Mi4wMzI2IDQ3LjQ1NzZMMzQuMDY3MSA0Ny40NTc2QzI2LjcyODQgNDcuNDU3NiAyMC43NzkzIDQxLjUwODQgMjAuNzc5MyAzNC4xNjk3QzIwLjc3OTMgMjYuODMxIDI2LjcyODQgMjAuODgxOCAzNC4wNjcyIDIwLjg4MThDMzQuNTg4NCAyMC44ODE4IDM1LjEwMjcgMjAuOTExOCAzNS42MDgzIDIwLjk3MDJDMzguNTE3MiAxNC4yMTg3IDQ1LjIzMTYgOS40OTIxOSA1My4wNDk5IDkuNDkyMTlaXCIgZmlsbD1cIiNGOUZBRkJcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbGxpcHNlIGN4PVwiMTUuMTg2MlwiIGN5PVwiMTUuMTg2MlwiIHJ4PVwiMTUuMTg2MlwiIHJ5PVwiMTUuMTg2MlwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA4Ny4yMTg4IDE3LjA4NTkpXCIgZmlsbD1cInVybCgjcGFpbnQwX2xpbmVhcl85NTQ4Xzk5NjEzKVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE4Ljk4MjdcIiBjeT1cIjE4Ljk4MjdcIiByPVwiMTguOTgyN1wiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA3Mi4wMzEyIDkuNDkyMTkpXCIgZmlsbD1cInVybCgjcGFpbnQxX2xpbmVhcl85NTQ4Xzk5NjEzKVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVsbGlwc2UgY3g9XCIxMy4yODc5XCIgY3k9XCIxMy4yODc5XCIgcng9XCIxMy4yODc5XCIgcnk9XCIxMy4yODc5XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDQ3LjM1OTQgMjAuODc4OSlcIiBmaWxsPVwidXJsKCNwYWludDJfbGluZWFyXzk1NDhfOTk2MTMpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIyLjk2NjA1XCIgY3k9XCIyLjk2NjA1XCIgcj1cIjIuOTY2MDVcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgODkuNTkzOCA4LjMwNDY5KVwiIGZpbGw9XCIjRjJGNEY3XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNC4xNTI0N1wiIGN5PVwiNC4xNTI0N1wiIHI9XCI0LjE1MjQ3XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDkyLjU2MjUgNjAuNTA3OClcIiBmaWxsPVwiI0YyRjRGN1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjQuMTUyNDdcIiBjeT1cIjQuMTUyNDdcIiByPVwiNC4xNTI0N1wiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAxNy4yMjY2IDE2LjYwOTQpXCIgZmlsbD1cIiNGMkY0RjdcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIyLjM3Mjg0XCIgY3k9XCIyLjM3Mjg0XCIgcj1cIjIuMzcyODRcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgMjEuOTY4OCAyLjM3MTA5KVwiIGZpbGw9XCIjRjJGNEY3XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjI4LjQ3NDFcIiBoZWlnaHQ9XCIyOC40NzQxXCIgcng9XCIxNC4yMzdcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgNjguMjQyMiAzNi43NzczKVwiIGZpbGw9XCIjMzQ0MDU0XCIgZmlsbC1vcGFjaXR5PVwiMC40XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTQ4LjY2NiA1Mi43OTQzVjU1LjE2NzFDNDguNjY2IDU1LjQ4MTggNDguNzkxIDU1Ljc4MzYgNDkuMDEzNSA1Ni4wMDYxQzQ5LjIzNiA1Ni4yMjg2IDQ5LjUzNzcgNTYuMzUzNiA0OS44NTI0IDU2LjM1MzZINTguMTU3M0M1OC40NzIgNTYuMzUzNiA1OC43NzM4IDU2LjIyODYgNTguOTk2MyA1Ni4wMDYxQzU5LjIxODggNTUuNzgzNiA1OS4zNDM4IDU1LjQ4MTggNTkuMzQzOCA1NS4xNjcxVjUyLjc5NDNNNTEuMDM4OCA0OC42NDE4TDU0LjAwNDkgNDUuNjc1OE01NC4wMDQ5IDQ1LjY3NThMNTYuOTcwOSA0OC42NDE4TTU0LjAwNDkgNDUuNjc1OFY1Mi43OTQzXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjE4NjQyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZGRfOTU0OF85OTYxM1wiIHg9XCIwLjc4MTI1XCIgeT1cIjkuNDkyMTlcIiB3aWR0aD1cIjEwNi40MzhcIiBoZWlnaHQ9XCI3Ny45NjQ4XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU1vcnBob2xvZ3kgcmFkaXVzPVwiNFwiIG9wZXJhdG9yPVwiZXJvZGVcIiBpbj1cIlNvdXJjZUFscGhhXCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93Xzk1NDhfOTk2MTNcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCI0XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjAzIDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfOTU0OF85OTYxM1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9XCI0XCIgb3BlcmF0b3I9XCJlcm9kZVwiIGluPVwiU291cmNlQWxwaGFcIiByZXN1bHQ9XCJlZmZlY3QyX2Ryb3BTaGFkb3dfOTU0OF85OTYxM1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMjBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxMlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wOCAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93Xzk1NDhfOTk2MTNcIiByZXN1bHQ9XCJlZmZlY3QyX2Ryb3BTaGFkb3dfOTU0OF85OTYxM1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDJfZHJvcFNoYWRvd185NTQ4Xzk5NjEzXCIgcmVzdWx0PVwic2hhcGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDBfbGluZWFyXzk1NDhfOTk2MTNcIiB4MT1cIjMuNTI1MzZcIiB5MT1cIjUuMTUyNDVcIiB4Mj1cIjMwLjM3MjRcIiB5Mj1cIjMwLjM3MjNcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjAuMzUwNzE1XCIgc3RvcC1jb2xvcj1cIndoaXRlXCIgc3RvcC1vcGFjaXR5PVwiMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwicGFpbnQxX2xpbmVhcl85NTQ4Xzk5NjEzXCIgeDE9XCI0LjQwNjdcIiB5MT1cIjYuNDQwNTZcIiB4Mj1cIjM3Ljk2NTRcIiB5Mj1cIjM3Ljk2NTRcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjAuMzUwNzE1XCIgc3RvcC1jb2xvcj1cIndoaXRlXCIgc3RvcC1vcGFjaXR5PVwiMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwicGFpbnQyX2xpbmVhcl85NTQ4Xzk5NjEzXCIgeDE9XCIzLjA4NDY5XCIgeTE9XCI0LjUwODM5XCIgeDI9XCIyNi41NzU4XCIgeTI9XCIyNi41NzU4XCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjM1MDcxNVwiIHN0b3AtY29sb3I9XCJ3aGl0ZVwiIHN0b3Atb3BhY2l0eT1cIjBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy00MDBweCBzdWJ0aXRsZSB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkIHRoZSB0ZW1wbGF0ZSBiZWxvdyBpbiB0aGUgPHNwYW4gY2xhc3M9XCJmdy1ib2xkZXJcIj7igJhBc3NpZ24gU3RvcmVz4oCZPC9zcGFuPiBzZWN0aW9uIGFuZCB1cGxvYWQgdG8gY29uZmlndXJlIHN0b3JlLXdpc2UgdGltZSB0byB0aGUgY2hlY2tsaXN0IGFjY29yZGluZ2x5LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgIT09ICdzdG9yZSdcIiBjbGFzcz1cImNvbC1zbS0xMiBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhcnJheSBvZiBjb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzOyBsZXQgaT0gaW5kZXhcIiBjbGFzcz1cImQtZmxleCBtYi01IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtM1wiPlN0YXJ0IGh1ZGRsZSBhdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LWF1dG8gbWFyZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVIdWRkbGV0aW1lKCRldmVudCwndGltZScpXCIgWyhuZ01vZGVsKV09XCJhcnJheS50aW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCIgbmFtZT1cInN0YXJ0X2RhdGVfe3tpfX1cIiB0eXBlPVwidGltZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTNcIj5mb3IgYSBkdXJhdGlvbiBvZjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTUwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhcnJheS5kdXJhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUh1ZGRsZXRpbWUoJGV2ZW50LCdkdXJhdGlvbicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTVcIj4xNSBtaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMzBcIj4zMCBtaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNDVcIj40NSBtaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNjBcIj42MCBtaW5zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHM/Lmxlbmd0aCA+IDFcIj48YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHB4LTMgbXMtM1wiIChjbGljayk9XCJkZWxldGVIdWRkbGUoaSlcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjUgNS4wMDEzSDQuMTY2NjdNNC4xNjY2NyA1LjAwMTNIMTcuNU00LjE2NjY3IDUuMDAxM1YxNi42NjhDNC4xNjY2NyAxNy4xMSA0LjM0MjI2IDE3LjUzMzkgNC42NTQ4MiAxNy44NDY1QzQuOTY3MzggMTguMTU5IDUuMzkxMzEgMTguMzM0NiA1LjgzMzMzIDE4LjMzNDZIMTQuMTY2N0MxNC42MDg3IDE4LjMzNDYgMTUuMDMyNiAxOC4xNTkgMTUuMzQ1MiAxNy44NDY1QzE1LjY1NzcgMTcuNTMzOSAxNS44MzMzIDE3LjExIDE1LjgzMzMgMTYuNjY4VjUuMDAxM0g0LjE2NjY3Wk02LjY2NjY3IDUuMDAxM1YzLjMzNDY0QzYuNjY2NjcgMi44OTI2MSA2Ljg0MjI2IDIuNDY4NjggNy4xNTQ4MiAyLjE1NjEyQzcuNDY3MzggMS44NDM1NiA3Ljg5MTMxIDEuNjY3OTcgOC4zMzMzMyAxLjY2Nzk3SDExLjY2NjdDMTIuMTA4NyAxLjY2Nzk3IDEyLjUzMjYgMS44NDM1NiAxMi44NDUyIDIuMTU2MTJDMTMuMTU3NyAyLjQ2ODY4IDEzLjMzMzMgMi44OTI2MSAxMy4zMzMzIDMuMzM0NjRWNS4wMDEzTTguMzMzMzMgOS4xNjc5N1YxNC4xNjhNMTEuNjY2NyA5LjE2Nzk3VjE0LjE2OFwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9idXR0b24+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmV2ZW50cz8ubGVuZ3RoIDwgM1wiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cIkFkZEh1ZGRsZUVlbnQoKVwiPiA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkuOTk3NCA0LjE2Nzk3VjE1LjgzNDZNNC4xNjQwNiAxMC4wMDEzSDE1LjgzMDdcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPiA8c3BhbiBjbGFzcz1cIm1zLTNcIj5BZGQgRXZlbnQ8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG10LTYgbWItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtNiBzdWJcIj5Gb3I8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlU2NoZWR1bGUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwib25ldGltZVwiPkRvZXMgTm90IFJlcGVhdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwid2Vla2RheVwiPiBFdmVyeSBXZWVrZGF5IChNb24gLSBGcmkpPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJkYWlseVwiPkRhaWx5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ3ZWVrbHlcIj5XZWVrbHk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbnRobHlcIj5Nb250aGx5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJyYW5nZVwiPkN1c3RvbSBSYW5nZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtMyBteC0yXCI+QXQ8L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0yMDBweCBtYXJnaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ3N0YXJ0JylcIiBbKG5nTW9kZWwpXT1cInN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2V0IHN0b3JlIG9wZW4gdGltZVwiIG5hbWU9XCJkdWVfZGF0ZVwiIHR5cGU9XCJ0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YiBtdC0zIG1zLTVcIj5FbmRzPC9zcGFuPiZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMjAwcHggbWFyZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVUaW1lKCdlbmQnKVwiIFsobmdNb2RlbCldPVwiZW5kVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2V0IHN0b3JlIG9wZW4gdGltZVwiIG5hbWU9XCJkdWVfZGF0ZVwiIHR5cGU9XCJ0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwianVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmdcIj5DaGVja2xpc3QgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnb25ldGltZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29sLWxnLTEyIGQtZmxleCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YiBtdC0zXCI+T25jZSBPbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgcHgtNCBwZS0zXCIgaWQ9XCJkYXRlY2xhc3NcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlci1vcGVucz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJvcHNdPVwiJ2Rvd24nXCIgW29wZW5zXT1cIidyaWdodCdcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVzXCIgW2F1dG9BcHBseV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlUmFuZ2VTdGFydCgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT09ICdvbmV0aW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cInJhbmdlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBuZy12YWxpZCBuZy1kaXJ0eSBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzaG93UmFuZ2VWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAncmFuZ2UnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVEYXRlVmFsdWUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJyYW5nZURhdGVcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgY2hlY2tsaXN0dGV4dCBtcy0yXCI+U2V0IGRlZmluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSByYW5nZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29sLWxnLTEyIGQtZmxleCBtdC01XCIgKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtM1wiPlN0YXJ0cyBmcm9tPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3JhbmdlJyA/ICdwcy0xMCcgOiAncHgtNCBwZS0zJ1wiIGlkPVwiZGF0ZWNsYXNzXCIgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXI9XCJ0cnVlXCIgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXItb3BlbnM9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5TdGFydERhdGVcIiBbZHJvcHNdPVwiJ2Rvd24nXCIgW29wZW5zXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRTdGFydERhdGVcIiBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVSYW5nZVN0YXJ0KCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtdC04IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT09ICdyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViXCI+UmVwZWF0cyBldmVyeTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctMTAwcHggbmctcHJpc3RpbmUgbmctaW52YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjJcIiBtaW49XCIxXCIgKGNoYW5nZSk9XCJ1cGRhdGVSZXBlYXREYXkoKVwiIChpbnB1dCk9XCJyZW1vdmVBbHBoYXBldCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IG14LTIgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy0xMDBweCBuZy1wcmlzdGluZSBuZy1pbnZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlcGVhdFR5cGVcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnbW9udGhseSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PT0gJ2RheSdcIiAoY2hhbmdlKT1cInVwZGF0ZU1vbnRoKCdkYXknKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIGZvcj1cImlubGluZVJhZGlvMVwiPk9uIERheTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IG1iLTUgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTEwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdkYXknID8gJ2Rpc2FibGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwICE9PSAnZGF5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGg9XCIyXCIgKGlucHV0KT1cInZhbGlkYXRlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PT0gJ2RhdGUnXCIgKGNoYW5nZSk9XCJ1cGRhdGVNb250aCgnZGF0ZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+T24gdGhlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vbnRoRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPiBGaXJzdCA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+IFNlY29uZCA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+IFRoaXJkPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPiBGb3VydGg8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+IExhc3Q8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IG14LTIgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1sZyBzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIG5nLXByaXN0aW5lIG5nLXZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb250aERheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiU3VuZGF5XCI+IFN1bmRheSA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJNb25kYXlcIj4gTW9uZGF5IDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlR1ZXNkYXlcIj4gVHVlc2RheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIldlZG5lc2RheVwiPiBXZWRuZXNkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJUaHVyc2RheVwiPiBUaHVyc2RheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkZyaWRheVwiPkZyaWRheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlNhdHVyZGF5XCI+IFNhdHVyZGF5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9udFNpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwiZGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdzcGVjaWZpYydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVNb250aCgnc3BlY2lmaWMnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIGZvcj1cImlubGluZVJhZGlvMVwiPk9uIFNwZWNpZmljIERhdGVzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2xvc2VEcm9wRG93bigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jbG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBkcm9wZG93bi1pbnB1dCBwcy0xNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcERvd24oKVwiIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ3NwZWNpZmljJ1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGN1c3RvbS1kcm9wZG93bi1tZW51IHctMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dEcm9wRG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMiBtYi0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF0ZSBvZiBkYXRlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG1lLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUoZGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGluayBidG4gd2Vla3N0eWxlZGF0ZSBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgcm91bmRlZC1waWxsIG1pbi13LTM1cHggcHktMiBweC0zIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZERhdGUuaW5jbHVkZXMoZGF0ZSkgPyAnYWN0aXZlIGJ0bi1hY3RpdmUtcHJpbWFyeScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cInRhYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwidGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGlsbHN0eWxlXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbiBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic3VibWl0RGF0ZSgpO3Nob3dEcm9wRG93bj0gZmFsc2U7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2sgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHB5LTMgYmFkZ2Utc3BlY2lmaWNkYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgZGF0ZSBvZiBzdWJtaXR0ZWREYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIGJhZGdlLXBpbGwgYmFkZ2UtbGlnaHQgY2hlY2tsaXN0dGV4dCBtZS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXREYXRlV2l0aFN1ZmZpeChkYXRlKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInJlbW92ZUJhZGdlKGRhdGUpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkgM0wzIDlNMyAzTDkgOVwiIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWyd3ZWVrZGF5Jywnd2Vla2x5J10uaW5jbHVkZXMoY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2IG5hdi1waWxscyBkLWZsZXggZmxleC1ub3dyYXAgbWItM1wiIHJvbGU9XCJ0YWJsaXN0XCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG1lLTFcIiByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIoY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnd2Vla2x5JyB8fCAoY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnd2Vla2RheScgJiYgIVsnU3VuZGF5JywnU2F0dXJkYXknXS5pbmNsdWRlcyhkYXkpKSkgPyBzZXREYXkoZGF5KSA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rIGJ0biB3ZWVrc3R5bGUgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIHJvdW5kZWQtcGlsbCBtaW4tdy00NXB4IG1lLTIgcHktNCBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIoY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnd2Vla2RheScgJiYgWydTdW5kYXknLCdTYXR1cmRheSddLmluY2x1ZGVzKGRheSkpID8gJ2N1cnNvci1kZWZhdWx0JyA6IHNlbGVjdGVkRGF5cy5pbmNsdWRlcyhkYXkpID8gJ3NlbGVjdERheScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1icy10b2dnbGU9XCJ0YWJcIiBhcmlhLXNlbGVjdGVkPVwiZmFsc2VcIiB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwidGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwaWxsc3R5bGVcIj57eyBkYXlbMF0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3JhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG5nLXZhbGlkIG5nLWRpcnR5IG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNwZWNpZmljXCIgKGNoYW5nZSk9XCJ1cGRhdGVTcGVjaWZpYygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgY2hlY2tsaXN0dGV4dCBtcy0yXCI+T24gU3BlY2lmaWNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZXM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtNCBwZS0zIHBvc2l0aW9uLXJlbGF0aXZlXCIgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZURyb3BEb3duKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY2xvc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSB3LTMwMHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGRyb3Bkb3duLWlucHV0IHBzLTE0XCIgKGNsaWNrKT1cInRvZ2dsZURyb3BEb3duKClcIiByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3BlY2lmaWNcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGN1c3RvbS1kcm9wZG93bi1tZW51IHctMTAwXCIgKm5nSWY9XCJzaG93RHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1tdWx0aS1kYXRlLWRhdGVwaWNrZXIgKHNlbGVjdGVkRGF0ZXMpPVwic2VsZWN0U3BlY2lmaWNEYXRlKCRldmVudClcIiBbcHJlZGVmaW5lZERhdGVzXT1cInNlbGVjdGVkRGF0ZUxpc3RcIiBbc3RhcnREYXRlXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGVcIiBbZW5kRGF0ZV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZVwiPjwvbGliLW11bHRpLWRhdGUtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgcHktMyBiYWRnZS1zcGVjaWZpY2RhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIG1zLTUgZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgZGF0ZSBvZiBzZWxlY3RlZERhdGVMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIGJhZGdlLXBpbGwgYmFkZ2UtbGlnaHQgY2hlY2tsaXN0dGV4dCBtZS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJyZW1vdmVEYXRlKGRhdGUpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkgM0wzIDlNMyAzTDkgOVwiIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBuZy1zdGFyLWluc2VydGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIXNob3dSYW5nZVZhbHVlIHx8IGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ29uZXRpbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCIgW25nQ2xhc3NdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAncmFuZ2UnID8gJ210LTQnIDogJ210LTInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViXCI+RW5kcyBPbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiBpZD1cImRhdGVjbGFzc1wiIFtuZ0NsYXNzXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ3JhbmdlJyA/ICdwcy05JyA6ICdweC00IHBlLTMnXCIgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXI9XCJ0cnVlXCIgZGF0YS1rdC1kYXRlcmFuZ2VwaWNrZXItb3BlbnM9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5FbmREYXRlXCIgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRFbmREYXRlXCIgW2F1dG9BcHBseV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVSYW5nZUVuZCgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTUgcmVtb3ZlIGN1cnNvci1wb2ludGVyIG1zLTRcIiAoY2xpY2spPVwib25EYXRlcGlja2VyUmVmcmVzaCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlICE9PSAnJyAmJiBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSAhPT0gbnVsbCAmJiBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT09J3JhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zIHVzZXJcIiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdvbmV0aW1lJ1wiPk9jY3VycyBvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZGF5IHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZURhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zIHVzZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnd2Vla2RheScsJ3dlZWtseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUpXCI+T2NjdXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZXJ5IHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0nMDEnKSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSA6ICcnfX0gd2VlazxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gMDFcIj5zPC9zcGFuPiBvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkRGF5cy50b1N0cmluZygpfX08c3BhbiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+IHN0YXJ0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX0gPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGVcIj51bnRpbCB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319PC9zcGFuPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnZGFpbHknXCI+T2NjdXJzIGV2ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gJzAxJykgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgOiAnJ319IGRheTxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gMDFcIj5zPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+IHN0YXJ0aW5nIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZTonZGQgTU1NIFlZWVknfX0gPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgXCI+dW50aWwge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgdXNlclwiICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PT0gJ21vbnRobHknXCI+T2NjdXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gJzAxJykgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgOiAnJ319IG1vbnRoPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWREYXkgIT09IDAxXCI+cyA8L3NwYW4+e3soY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PT0gJ2RheScpID8gKCdvbiBkYXkgJyArIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrKSA6IGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT09ICdkYXRlJyA/IHVwZGF0ZU1vbnRoVmFsdWUoKTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3BlY2lmaWNWYWx1ZSgpfX08c3BhbiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+IHN0YXJ0aW5nIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlXCI+dW50aWwge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgdXNlclwiICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PT0gJ3JhbmdlJ1wiPk9jY3VycyBldmVyeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVXZWVrRGF5cz8udG9TdHJpbmcoKX19IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+IHN0YXJ0aW5nIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZTonZGQgTU1NIFlZWVknfX0gPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGVcIj51bnRpbCB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319PC9zcGFuPjwvc3Bhbj48L2Rpdj5cclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdFwiICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctaGVhZGluZ1wiPlJlc3BvbnNlIENvbmZpZ3VyYXRpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjb25maWdhY2NvcmRpYW4oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyb3RhdGUnIDogc2hvd2NvbmZpZ31cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd2NvbmZpZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0RyYWc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiWydvbmV0aW1lJywnZGFpbHknXS5pbmNsdWRlcyhjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlKSB8fCAoY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PT0gJ21vbnRobHknICYmICBjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwICE9PSdzcGVjaWZpYycpID8gJ2JnLWNvbG9yLWRpc2FibGVkJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGxvd09uY2UgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dPbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJvbmVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJbJ29uZXRpbWUnLCdkYWlseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUpIHx8IChjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnbW9udGhseScgJiYgIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09J3NwZWNpZmljJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWIgbXMtMlwiIGZvcj1cIm9uZVRpbWVcIj5Pbmx5IG9uZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0IG1zLTJcIiBmb3I9XCJvbmVUaW1lXCI+QnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsaW5nIHRoaXMsIHRoZSByZXNwb25zZSBjYW4gYmUgY2FwdHVyZWQgb25seSBvbmNlIGZvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBjaGVja2xpc3QgPHNwYW4gKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPmZyb21cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGV9fSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlXCI+dG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZX19Ljwvc3Bhbj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBjaGVja2xpc3R0dXJub2ZmIG10LTQgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFsbG93ZWRPdmVyVGltZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxsb3dlZE92ZXJUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImZpbGxSZXNwb25zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWIgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmlsbFJlc3BvbnNlXCI+RmlsbCByZXNwb25zZSBhZnRlciBjb25maWd1cmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLjwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0IG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZpbGxSZXNwb25zZVwiPkJ5IGVuYWJsaW5nLCB0aGUgdXNlciBjYW4gZmlsbCB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpc3QgZXZlbiBhZnRlciB0aGUgYWJvdmUgY29uZmlndXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZC10aW1lLjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hbGxvd2VkU3RvcmVMb2NhdGlvbiA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd2VkU3RvcmVMb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZ2VvRmVuY2luZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YiBtcy0yXCIgZm9yPVwiZ2VvRmVuY2luZ1wiPkdlb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVuY2luZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0IG1zLTJcIiBmb3I9XCJnZW9GZW5jaW5nXCI+QnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsaW5nLCB0aGUgY2hlY2tsaXN0IGNhbiBiZSBmaWxsZWQgYnkgdGhlIHVzZXIgb25seSB3aGVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNpZGUgdGhlIHN0b3JlLjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBjaGVja2xpc3R0dXJub2ZmIG10LTQgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFsbG93ZWRNdWx0aVN1Ym1pdCA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd2VkTXVsdGlTdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFsbG93ZWRNdWx0aVN1Ym1pdFN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YiBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImFsbG93ZWRNdWx0aVN1Ym1pdFN3aXRjaFwiPkFsbG93IG11bHRpcGxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXM8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0IG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiYWxsb3dlZE11bHRpU3VibWl0U3dpdGNoXCI+QnkgZW5hYmxpbmcsIHRoZSBjaGVja2xpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSBmaWxsZWQgbXVsdGlwbGUgdGltZXMgaW4gYSBkYXk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIiBbY2hlY2tlZF09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5yZXN0cmljdEF0dGVuZGFuY2UgPyB0cnVlIDogZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVzdHJpY3RBdHRlbmRhbmNlXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cInJlc3RyaWN0QXR0ZW5kYW5jZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YiBtcy0yXCIgZm9yPVwicmVzdHJpY3RBdHRlbmRhbmNlXCI+UmVzdHJpY3QgYXR0ZW5kYW5jZTwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHQgbXMtMlwiIGZvcj1cInJlc3RyaWN0QXR0ZW5kYW5jZVwiPkJ5IGVuYWJsaW5nLCB1c2VyIGNhbid0IGJlIGFibGUgdG8gY2xvY2tvdXQgd2l0aG91dCBjb21wbGV0aW5nIHRoZSB0YXNrLjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWxlZnRcIiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmdcIj5BZHZhbmNlIENvbmZpZ3VyYXRpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJhZHZhbmNlYWNjb3JkaWFuKClcIiBbbmdDbGFzc109XCJ7J3JvdGF0ZScgOiBzaG93YWR2YW5jZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd2FkdmFuY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcmFnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZm9ybS1jaGVjay1sYWJlbCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkNoZWNrbGlzdCBPd25lcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPd25lcnMgZ2V0IGFjY2VzcyB0byBtYW5hZ2UgdGhlIGNoZWNrbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTUgdy0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YlwiPkNhbiBiZSBtYW5hZ2VkIGJ5IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy04MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIiBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/Lm93bmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZU93bmVyKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BcHByb3Zlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFwcHJvdmVyPy5sZW5ndGggPyB0cnVlIDogZmFsc2VcIiBbKG5nTW9kZWwpXT1cImFwcHJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwiYXBwcm92ZXJcIiAoY2hhbmdlKT1cInVwZGF0ZUNvbmZpZ0FwcHJvdmVyKCRldmVudClcIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeSBlbmFibGluZywgdGhlIHVzZXJzIHdpbGwgYmUgYWJsZSB0byBhcHByb3ZlIHRoZSBjaGVja2xpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtdC0zXCIgKm5nSWY9XCJhcHByb3ZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS01IHctMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5UbyBiZSBhcHByb3ZlZCBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctODBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFwcHJvdmVyXCIgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVBcHByb3ZlcigkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmb3JtLWNoZWNrLWxhYmVsIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+UmVtaW5kZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIiBbKG5nTW9kZWwpXT1cInJlbWFpbmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJvbmVUaW1lXCIgKGNoYW5nZSk9XCJ1cGRhdGVDb25maWdSZW1haW5kZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5IGVuYWJsaW5nLCB0aGUgdXNlcnMgd2lsbCBiZSByZW1pbmRlZCBpbiB0aGUgc2VsZWN0ZWQgaW50ZXJ2YWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtdC0zXCIgKm5nSWY9XCJyZW1haW5kZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTUgdy0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YlwiPk5vdGlmeSB1c2VyIGJlZm9yZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy04MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIHctMjAwcHggLFwiICpuZ0Zvcj1cImxldCBsb29wIG9mIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVtYWluZGVyO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gKm5nRm9yPVwibGV0IGxvb3Agb2YgdGltZUxvb3BcIj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE0ODdfNDc2MzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAuMDAxMyA1LjAwMDMzVjEwLjAwMDNMMTMuMzM0NiAxMS42NjdNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTQ4N180NzYzNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgcHMtMTQgbWUtNVwiIChjaGFuZ2UpPVwidXBkYXRlUmVtYWluZGVyKCRldmVudCxpKVwiICBbaWRdPVwiJ3JlbWFpbmRlcicrIGlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0aW1lIG9mIHVwZGF0ZVRpbWVMb29wKGkpXCIgY2xhc3M9XCJoLTIwMHB4XCIgW3NlbGVjdGVkXT1cImxvb3AgPT09IHRpbWVcIiBbdmFsdWVdPVwidGltZVwiPnt7dGltZX19IG1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIubGVuZ3RoIDwgM1wiIGNsYXNzPVwibXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZVwiIChjbGljayk9XCJ1cGRhdGVMb29wKClcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMTMgNC4xNjY5OVYxNS44MzM3TTQuMTY3OTcgMTAuMDAwM0gxNS44MzQ2XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVtYWluZGVyXCIgY2xhc3M9XCJtdC0yIHVzZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGVydHMgYXQgZXZlcnkgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlcjtsZXQgaT1pbmRleFwiPjxzcGFuICpuZ0lmPVwiaSAhPT0gY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5sZW5ndGgtMSAmJiBpICE9PSAwXCI+ICw8L3NwYW4+PHNwYW4gKm5nSWY9XCJpID09PSBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyLmxlbmd0aC0xICYmIGkgIT09IDBcIj4gYW5kPC9zcGFuPiB7e2l0ZW19fSBNaW5zIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2V5ZXRlc3QnXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwibXQtNiBteC00IHN1YlwiPlN0b3JlIG9wZW5zIGF0IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctNjAwXCI+PHU+e3tjb25maWdEYXRhPy5vcGVuVGltZX19PC91Pjwvc3Bhbj4gYW5kIGNsb3Nlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IDxzcGFuIGNsYXNzPVwiZnctNjAwXCI+PHU+e3tjb25maWdEYXRhPy5jbG9zZVRpbWV9fTwvdT48L3NwYW4+LCBldmVyeWRheS4gPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAndW5hdHRlbmRlZCdcIiBjbGFzcz1cIm10LTYgbXgtNCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lIHRha2VuIHRvIGFzc2lzdCBieSBzdGFmZiAmbHQ7PSAxIG1pbnMgfCBTdGFmZiB0byBjdXN0b21lciB0aW1lIHNwZW50ICZsdDs9MSBtaW5zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTdG9yZSBvcGVucyBhdCA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LTYwMFwiPjx1Pnt7Y29uZmlnRGF0YT8ub3BlblRpbWV9fTwvdT48L3NwYW4+IGFuZCBjbG9zZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdCA8c3BhbiBjbGFzcz1cImZ3LTYwMFwiPjx1Pnt7Y29uZmlnRGF0YT8uY2xvc2VUaW1lfX08L3U+PC9zcGFuPiwgZXZlcnlkYXkuIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgIT09J2N1c3RvbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIVsnZXlldGVzdCddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nIG10LThcIj5Ob3RpZnkgQWxlcnRzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODc0XzY2MTk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMTAuNjY3M1Y4LjAwMDY1TTguMDAwMTYgNS4zMzM5OEg4LjAwNjgzTTE0LjY2NjggOC4wMDA2NUMxNC42NjY4IDExLjY4MjYgMTEuNjgyMSAxNC42NjczIDguMDAwMTYgMTQuNjY3M0M0LjMxODI2IDE0LjY2NzMgMS4zMzM1IDExLjY4MjYgMS4zMzM1IDguMDAwNjVDMS4zMzM1IDQuMzE4NzUgNC4zMTgyNiAxLjMzMzk4IDguMDAwMTYgMS4zMzM5OEMxMS42ODIxIDEuMzMzOTggMTQuNjY2OCA0LjMxODc1IDE0LjY2NjggOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJjb2wtbWQtMTIgbXQtOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtNCBzdWJcIj5JZiB1c2FnZSBleGNlZWRzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IG1iLTUgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBmbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB0ZXh0LWNlbnRlciB3LTU1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWRcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmxlbmd0aD1cIjJcIiBtYXhsZW5ndGg9XCIzXCIgKGlucHV0KT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXIgdXNhZ2VlcnJvclwiICpuZ0lmPVwiZXJyb3Jtc2dcIj5QbGVhc2UgZW50ZXIgZXZlbnQgY291bnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXR3ZWVuIDE1IHRvIDk5OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJcIj5kZXRlY3Rpb25zIHBlciBkYXk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nLCdtb2JpbGV1c2FnZWRldGVjdGlvbicsJ3NjcnVtJywnY2xlYW5pbmcnLCdzdG9yZW9wZW5hbmRjbG9zZScsJ3VuYXR0ZW5kZWQnLCdwYWNrYWdlQ29uZmlndXJhdGlvbicsJ3N0YWZmbGVmdGludGhlbWlkZGxlJywnY3VzdG9tZXJ1bmF0dGVuZGVkJ10uaW5jbHVkZXModHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXgtNFwiPlNlbmQgQWxlcnQgdG8gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCIgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0cy51c2Vyc1wiIChzZWxlY3RlZExpc3QpPVwidXBkYXRlQWxlcnQoJGV2ZW50LCd1c2VyJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCIgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5vd25lclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVPd25lcigkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydtb2JpbGV1c2FnZWRldGVjdGlvbiddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmcgbXQtOFwiPkRldGVjdGlvbiBBcmVhczxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteC0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg3NF82NjE5NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NzRfNjYxOTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2gyPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8ucHJvZHVjdC5pbmNsdWRlcygndGFuZ29ab25lJylcIiBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8ucHJvZHVjdC5pbmNsdWRlcygndGFuZ29ab25lJylcIiBjbGFzcz1cImNvbC1sZy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXgtNFwiPiBEZXRlY3QgbW9iaWxlIHVzYWdlIGV4Y2VwdCA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiIGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiem9uZUxpc3RcIiBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGEuYWlDb25maWc/Lm1vYmlsZURldGVjdGlvbj8uZGV0ZWN0aW9uQXJlYVwiIChzZWxlY3RlZExpc3QpPVwidXBkYXRlWm9uZSgkZXZlbnQpXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiICBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkIG14LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhY29uZmlnRGF0YT8ucHJvZHVjdC5pbmNsdWRlcygndGFuZ29ab25lJylcIiBjbGFzcz1cImNhcmQgbXQtMyBwLTMgYm9yZGVyIGJvcmRlci0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjcwXCIgaGVpZ2h0PVwiNzBcIiB2aWV3Qm94PVwiMCAwIDkwIDkwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiN1wiIHk9XCI3XCIgd2lkdGg9XCI3NS42NjY2XCIgaGVpZ2h0PVwiNzUuNjY2NlwiIHJ4PVwiMzcuODMzM1wiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjc1LjY2NjZcIiBoZWlnaHQ9XCI3NS42NjY2XCIgcng9XCIzNy44MzMzXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjEzLjUxMTlcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk00NS40Mjg3IDM3LjkxNTdMNDQuODY4MyAzOC4yNDE2TDQ1LjE3MDkgMzguODE1TDQ3LjcyNDggNDMuNjUzOUM0OC4zMzMzIDQ0LjgwNjggNDkuODY5NyA0NS4xMDU4IDUwLjg5NjEgNDQuMzI5MUw1MC44OTY1IDQ0LjMyODhMNTQuODY3OCA0MS4zMTgxTDU1LjI0ODUgNDEuMDI5NUw1NS4xOTEyIDQxLjMyOEw1My4xNTQ2IDUxLjk0MjFDNTIuOTcxMSA1Mi44ODg5IDUyLjA4NzkgNTMuNjE2MSA1MS4wMDk5IDUzLjYxNjFIMzguNjU0OUMzNy41NzIyIDUzLjYxNjEgMzYuNjkwMyA1Mi44ODQ4IDM2LjUxMDYgNTEuOTQzOUwzNi41MTA1IDUxLjk0MzNMMzQuNDczNiA0MS4zMjhMMzQuNDE2MyA0MS4wMjk1TDM0Ljc5NyA0MS4zMTgxTDM4Ljc2ODMgNDQuMzI4OEwzOC43Njg3IDQ0LjMyOTFDMzkuNzk1MSA0NS4xMDU4IDQxLjMzMTUgNDQuODA2OCA0MS45NCA0My42NTM5TDQ0LjQ5MzkgMzguODE1TDQ0Ljc5NjUgMzguMjQxNkw0NC4yMzYxIDM3LjkxNTdDNDMuOTE3NCAzNy43MzAyIDQzLjcyNTIgMzcuNDEwNyA0My43MjUyIDM3LjA2NEM0My43MjUyIDM2LjUzNzkgNDQuMTg1NiAzNi4wNTA2IDQ0LjgzMjQgMzYuMDUwNkM0NS40NzkyIDM2LjA1MDYgNDUuOTM5NiAzNi41Mzc5IDQ1LjkzOTYgMzcuMDY0QzQ1LjkzOTYgMzcuNDA3NCA0NS43NDY1IDM3LjczMDggNDUuNDI4NyAzNy45MTU3Wk01NS44NTQ3IDQwLjc3OThINTUuMzE5N0w1NC45OTAzIDQwLjM2MTdDNTQuODU0NCA0MC4xODkyIDU0Ljc3ODcgMzkuOTg0IDU0Ljc3ODcgMzkuNzY2NEM1NC43Nzg3IDM5LjI0MDMgNTUuMjM5MSAzOC43NTMgNTUuODg1OSAzOC43NTNDNTYuNTMyNiAzOC43NTMgNTYuOTkzMSAzOS4yNDAzIDU2Ljk5MzEgMzkuNzY2NEM1Ni45OTMxIDQwLjI5MjUgNTYuNTMyNiA0MC43Nzk4IDU1Ljg4NTkgNDAuNzc5OEg1NS44ODU4SDU1Ljg4NThINTUuODg1N0g1NS44ODU3SDU1Ljg4NTZINTUuODg1Nkg1NS44ODU1SDU1Ljg4NTVINTUuODg1NEg1NS44ODU0SDU1Ljg4NTNINTUuODg1Mkg1NS44ODUySDU1Ljg4NTFINTUuODg1MUg1NS44ODVINTUuODg1SDU1Ljg4NDlINTUuODg0OUg1NS44ODQ4SDU1Ljg4NDhINTUuODg0N0g1NS44ODQ3SDU1Ljg4NDZINTUuODg0NUg1NS44ODQ1SDU1Ljg4NDRINTUuODg0NEg1NS44ODQzSDU1Ljg4NDNINTUuODg0Mkg1NS44ODQySDU1Ljg4NDFINTUuODg0SDU1Ljg4NEg1NS44ODM5SDU1Ljg4MzlINTUuODgzOEg1NS44ODM4SDU1Ljg4MzdINTUuODgzN0g1NS44ODM2SDU1Ljg4MzVINTUuODgzNUg1NS44ODM0SDU1Ljg4MzRINTUuODgzM0g1NS44ODMzSDU1Ljg4MzJINTUuODgzMUg1NS44ODMxSDU1Ljg4M0g1NS44ODNINTUuODgyOUg1NS44ODI5SDU1Ljg4MjhINTUuODgyN0g1NS44ODI3SDU1Ljg4MjZINTUuODgyNkg1NS44ODI1SDU1Ljg4MjVINTUuODgyNEg1NS44ODIzSDU1Ljg4MjNINTUuODgyMkg1NS44ODIySDU1Ljg4MjFINTUuODgyMUg1NS44ODJINTUuODgxOUg1NS44ODE5SDU1Ljg4MThINTUuODgxOEg1NS44ODE3SDU1Ljg4MTZINTUuODgxNkg1NS44ODE1SDU1Ljg4MTVINTUuODgxNEg1NS44ODEzSDU1Ljg4MTNINTUuODgxMkg1NS44ODEySDU1Ljg4MTFINTUuODgxMUg1NS44ODFINTUuODgwOUg1NS44ODA5SDU1Ljg4MDhINTUuODgwOEg1NS44ODA3SDU1Ljg4MDZINTUuODgwNkg1NS44ODA1SDU1Ljg4MDVINTUuODgwNEg1NS44ODAzSDU1Ljg4MDNINTUuODgwMkg1NS44ODAySDU1Ljg4MDFINTUuODhINTUuODhINTUuODc5OUg1NS44Nzk4SDU1Ljg3OThINTUuODc5N0g1NS44Nzk3SDU1Ljg3OTZINTUuODc5NUg1NS44Nzk1SDU1Ljg3OTRINTUuODc5NEg1NS44NzkzSDU1Ljg3OTJINTUuODc5Mkg1NS44NzkxSDU1Ljg3OTFINTUuODc5SDU1Ljg3ODlINTUuODc4OUg1NS44Nzg4SDU1Ljg3ODdINTUuODc4N0g1NS44Nzg2SDU1Ljg3ODZINTUuODc4NUg1NS44Nzg0SDU1Ljg3ODRINTUuODc4M0g1NS44NzgySDU1Ljg3ODJINTUuODc4MUg1NS44NzgxSDU1Ljg3OEg1NS44Nzc5SDU1Ljg3NzlINTUuODc3OEg1NS44Nzc3SDU1Ljg3NzdINTUuODc3Nkg1NS44Nzc2SDU1Ljg3NzVINTUuODc3NEg1NS44Nzc0SDU1Ljg3NzNINTUuODc3Mkg1NS44NzcySDU1Ljg3NzFINTUuODc3MUg1NS44NzdINTUuODc2OUg1NS44NzY5SDU1Ljg3NjhINTUuODc2N0g1NS44NzY3SDU1Ljg3NjZINTUuODc2Nkg1NS44NzY1SDU1Ljg3NjRINTUuODc2NEg1NS44NzYzSDU1Ljg3NjJINTUuODc2Mkg1NS44NzYxSDU1Ljg3Nkg1NS44NzZINTUuODc1OUg1NS44NzU5SDU1Ljg3NThINTUuODc1N0g1NS44NzU3SDU1Ljg3NTZINTUuODc1NUg1NS44NzU1SDU1Ljg3NTRINTUuODc1M0g1NS44NzUzSDU1Ljg3NTJINTUuODc1MUg1NS44NzUxSDU1Ljg3NUg1NS44NzVINTUuODc0OUg1NS44NzQ4SDU1Ljg3NDhINTUuODc0N0g1NS44NzQ2SDU1Ljg3NDZINTUuODc0NUg1NS44NzQ0SDU1Ljg3NDRINTUuODc0M0g1NS44NzQySDU1Ljg3NDJINTUuODc0MUg1NS44NzQxSDU1Ljg3NEg1NS44NzM5SDU1Ljg3MzlINTUuODczOEg1NS44NzM3SDU1Ljg3MzdINTUuODczNkg1NS44NzM1SDU1Ljg3MzVINTUuODczNEg1NS44NzMzSDU1Ljg3MzNINTUuODczMkg1NS44NzMxSDU1Ljg3MzFINTUuODczSDU1Ljg3M0g1NS44NzI5SDU1Ljg3MjhINTUuODcyOEg1NS44NzI3SDU1Ljg3MjZINTUuODcyNkg1NS44NzI1SDU1Ljg3MjRINTUuODcyNEg1NS44NzIzSDU1Ljg3MjJINTUuODcyMkg1NS44NzIxSDU1Ljg3Mkg1NS44NzJINTUuODcxOUg1NS44NzE4SDU1Ljg3MThINTUuODcxN0g1NS44NzE3SDU1Ljg3MTZINTUuODcxNUg1NS44NzE1SDU1Ljg3MTRINTUuODcxM0g1NS44NzEzSDU1Ljg3MTJINTUuODcxMUg1NS44NzExSDU1Ljg3MUg1NS44NzA5SDU1Ljg3MDlINTUuODcwOEg1NS44NzA3SDU1Ljg3MDdINTUuODcwNkg1NS44NzA1SDU1Ljg3MDVINTUuODcwNEg1NS44NzAzSDU1Ljg3MDNINTUuODcwMkg1NS44NzAxSDU1Ljg3MDFINTUuODdINTUuODdINTUuODY5OUg1NS44Njk4SDU1Ljg2OThINTUuODY5N0g1NS44Njk2SDU1Ljg2OTZINTUuODY5NUg1NS44Njk0SDU1Ljg2OTRINTUuODY5M0g1NS44NjkySDU1Ljg2OTJINTUuODY5MUg1NS44NjlINTUuODY5SDU1Ljg2ODlINTUuODY4OEg1NS44Njg4SDU1Ljg2ODdINTUuODY4Nkg1NS44Njg2SDU1Ljg2ODVINTUuODY4NUg1NS44Njg0SDU1Ljg2ODNINTUuODY4M0g1NS44NjgySDU1Ljg2ODFINTUuODY4MUg1NS44NjhINTUuODY3OUg1NS44Njc5SDU1Ljg2NzhINTUuODY3N0g1NS44Njc3SDU1Ljg2NzZINTUuODY3NUg1NS44Njc1SDU1Ljg2NzRINTUuODY3M0g1NS44NjczSDU1Ljg2NzJINTUuODY3Mkg1NS44NjcxSDU1Ljg2N0g1NS44NjdINTUuODY2OUg1NS44NjY4SDU1Ljg2NjhINTUuODY2N0g1NS44NjY2SDU1Ljg2NjZINTUuODY2NUg1NS44NjY0SDU1Ljg2NjRINTUuODY2M0g1NS44NjYySDU1Ljg2NjJINTUuODY2MUg1NS44NjYxSDU1Ljg2Nkg1NS44NjU5SDU1Ljg2NTlINTUuODY1OEg1NS44NjU3SDU1Ljg2NTdINTUuODY1Nkg1NS44NjU1SDU1Ljg2NTVINTUuODY1NEg1NS44NjUzSDU1Ljg2NTNINTUuODY1Mkg1NS44NjUySDU1Ljg2NTFINTUuODY1SDU1Ljg2NUg1NS44NjQ5SDU1Ljg2NDhINTUuODY0OEg1NS44NjQ3SDU1Ljg2NDZINTUuODY0Nkg1NS44NjQ1SDU1Ljg2NDVINTUuODY0NEg1NS44NjQzSDU1Ljg2NDNINTUuODY0Mkg1NS44NjQxSDU1Ljg2NDFINTUuODY0SDU1Ljg2MzlINTUuODYzOUg1NS44NjM4SDU1Ljg2MzhINTUuODYzN0g1NS44NjM2SDU1Ljg2MzZINTUuODYzNUg1NS44NjM0SDU1Ljg2MzRINTUuODYzM0g1NS44NjMySDU1Ljg2MzJINTUuODYzMUg1NS44NjMxSDU1Ljg2M0g1NS44NjI5SDU1Ljg2MjlINTUuODYyOEg1NS44NjI3SDU1Ljg2MjdINTUuODYyNkg1NS44NjI2SDU1Ljg2MjVINTUuODYyNEg1NS44NjI0SDU1Ljg2MjNINTUuODYyMkg1NS44NjIySDU1Ljg2MjFINTUuODYyMUg1NS44NjJINTUuODYxOUg1NS44NjE5SDU1Ljg2MThINTUuODYxOEg1NS44NjE3SDU1Ljg2MTZINTUuODYxNkg1NS44NjE1SDU1Ljg2MTRINTUuODYxNEg1NS44NjEzSDU1Ljg2MTNINTUuODYxMkg1NS44NjExSDU1Ljg2MTFINTUuODYxSDU1Ljg2MUg1NS44NjA5SDU1Ljg2MDhINTUuODYwOEg1NS44NjA3SDU1Ljg2MDZINTUuODYwNkg1NS44NjA1SDU1Ljg2MDVINTUuODYwNEg1NS44NjAzSDU1Ljg2MDNINTUuODYwMkg1NS44NjAySDU1Ljg2MDFINTUuODZINTUuODZINTUuODU5OUg1NS44NTk5SDU1Ljg1OThINTUuODU5N0g1NS44NTk3SDU1Ljg1OTZINTUuODU5Nkg1NS44NTk1SDU1Ljg1OTRINTUuODU5NEg1NS44NTkzSDU1Ljg1OTNINTUuODU5Mkg1NS44NTkxSDU1Ljg1OTFINTUuODU5SDU1Ljg1OUg1NS44NTg5SDU1Ljg1ODlINTUuODU4OEg1NS44NTg3SDU1Ljg1ODdINTUuODU4Nkg1NS44NTg2SDU1Ljg1ODVINTUuODU4NEg1NS44NTg0SDU1Ljg1ODNINTUuODU4M0g1NS44NTgySDU1Ljg1ODJINTUuODU4MUg1NS44NThINTUuODU4SDU1Ljg1NzlINTUuODU3OUg1NS44NTc4SDU1Ljg1NzhINTUuODU3N0g1NS44NTc2SDU1Ljg1NzZINTUuODU3NUg1NS44NTc1SDU1Ljg1NzRINTUuODU3NEg1NS44NTczSDU1Ljg1NzJINTUuODU3Mkg1NS44NTcxSDU1Ljg1NzFINTUuODU3SDU1Ljg1N0g1NS44NTY5SDU1Ljg1NjhINTUuODU2OEg1NS44NTY3SDU1Ljg1NjdINTUuODU2Nkg1NS44NTY2SDU1Ljg1NjVINTUuODU2NUg1NS44NTY0SDU1Ljg1NjNINTUuODU2M0g1NS44NTYySDU1Ljg1NjJINTUuODU2MUg1NS44NTYxSDU1Ljg1Nkg1NS44NTZINTUuODU1OUg1NS44NTU5SDU1Ljg1NThINTUuODU1N0g1NS44NTU3SDU1Ljg1NTZINTUuODU1Nkg1NS44NTU1SDU1Ljg1NTVINTUuODU1NEg1NS44NTU0SDU1Ljg1NTNINTUuODU1M0g1NS44NTUySDU1Ljg1NTJINTUuODU1MUg1NS44NTVINTUuODU1SDU1Ljg1NDlINTUuODU0OUg1NS44NTQ4SDU1Ljg1NDhINTUuODU0N0g1NS44NTQ3Wk0zNC42NzQ1IDQwLjM2MTdMMzQuMzQ1MSA0MC43Nzk4SDMzLjgxMDFIMzMuODEwMUgzMy44MUgzMy44MUgzMy44MDk5SDMzLjgwOTlIMzMuODA5OEgzMy44MDk3SDMzLjgwOTdIMzMuODA5NkgzMy44MDk2SDMzLjgwOTVIMzMuODA5NUgzMy44MDk0SDMzLjgwOTRIMzMuODA5M0gzMy44MDkzSDMzLjgwOTJIMzMuODA5MkgzMy44MDkxSDMzLjgwOUgzMy44MDlIMzMuODA4OUgzMy44MDg5SDMzLjgwODhIMzMuODA4OEgzMy44MDg3SDMzLjgwODdIMzMuODA4NkgzMy44MDg2SDMzLjgwODVIMzMuODA4NEgzMy44MDg0SDMzLjgwODNIMzMuODA4M0gzMy44MDgySDMzLjgwODJIMzMuODA4MUgzMy44MDgxSDMzLjgwOEgzMy44MDc5SDMzLjgwNzlIMzMuODA3OEgzMy44MDc4SDMzLjgwNzdIMzMuODA3N0gzMy44MDc2SDMzLjgwNzZIMzMuODA3NUgzMy44MDc0SDMzLjgwNzRIMzMuODA3M0gzMy44MDczSDMzLjgwNzJIMzMuODA3MkgzMy44MDcxSDMzLjgwN0gzMy44MDdIMzMuODA2OUgzMy44MDY5SDMzLjgwNjhIMzMuODA2OEgzMy44MDY3SDMzLjgwNjZIMzMuODA2NkgzMy44MDY1SDMzLjgwNjVIMzMuODA2NEgzMy44MDYzSDMzLjgwNjNIMzMuODA2MkgzMy44MDYySDMzLjgwNjFIMzMuODA2MUgzMy44MDZIMzMuODA1OUgzMy44MDU5SDMzLjgwNThIMzMuODA1OEgzMy44MDU3SDMzLjgwNTZIMzMuODA1NkgzMy44MDU1SDMzLjgwNTVIMzMuODA1NEgzMy44MDUzSDMzLjgwNTNIMzMuODA1MkgzMy44MDUySDMzLjgwNTFIMzMuODA1SDMzLjgwNUgzMy44MDQ5SDMzLjgwNDlIMzMuODA0OEgzMy44MDQ3SDMzLjgwNDdIMzMuODA0NkgzMy44MDQ2SDMzLjgwNDVIMzMuODA0NEgzMy44MDQ0SDMzLjgwNDNIMzMuODA0M0gzMy44MDQySDMzLjgwNDFIMzMuODA0MUgzMy44MDRIMzMuODA0SDMzLjgwMzlIMzMuODAzOEgzMy44MDM4SDMzLjgwMzdIMzMuODAzN0gzMy44MDM2SDMzLjgwMzVIMzMuODAzNUgzMy44MDM0SDMzLjgwMzNIMzMuODAzM0gzMy44MDMySDMzLjgwMzJIMzMuODAzMUgzMy44MDNIMzMuODAzSDMzLjgwMjlIMzMuODAyOUgzMy44MDI4SDMzLjgwMjdIMzMuODAyN0gzMy44MDI2SDMzLjgwMjVIMzMuODAyNUgzMy44MDI0SDMzLjgwMjRIMzMuODAyM0gzMy44MDIySDMzLjgwMjJIMzMuODAyMUgzMy44MDJIMzMuODAySDMzLjgwMTlIMzMuODAxOUgzMy44MDE4SDMzLjgwMTdIMzMuODAxN0gzMy44MDE2SDMzLjgwMTVIMzMuODAxNUgzMy44MDE0SDMzLjgwMTRIMzMuODAxM0gzMy44MDEySDMzLjgwMTJIMzMuODAxMUgzMy44MDFIMzMuODAxSDMzLjgwMDlIMzMuODAwOEgzMy44MDA4SDMzLjgwMDdIMzMuODAwN0gzMy44MDA2SDMzLjgwMDVIMzMuODAwNUgzMy44MDA0SDMzLjgwMDNIMzMuODAwM0gzMy44MDAySDMzLjgwMDFIMzMuODAwMUgzMy44SDMzLjhIMzMuNzk5OUgzMy43OTk4SDMzLjc5OThIMzMuNzk5N0gzMy43OTk2SDMzLjc5OTZIMzMuNzk5NUgzMy43OTk0SDMzLjc5OTRIMzMuNzk5M0gzMy43OTkzSDMzLjc5OTJIMzMuNzk5MUgzMy43OTkxSDMzLjc5OUgzMy43OTg5SDMzLjc5ODlIMzMuNzk4OEgzMy43OTg3SDMzLjc5ODdIMzMuNzk4NkgzMy43OTg1SDMzLjc5ODVIMzMuNzk4NEgzMy43OTg0SDMzLjc5ODNIMzMuNzk4MkgzMy43OTgySDMzLjc5ODFIMzMuNzk4SDMzLjc5OEgzMy43OTc5SDMzLjc5NzhIMzMuNzk3OEgzMy43OTc3SDMzLjc5NzZIMzMuNzk3NkgzMy43OTc1SDMzLjc5NzRIMzMuNzk3NEgzMy43OTczSDMzLjc5NzNIMzMuNzk3MkgzMy43OTcxSDMzLjc5NzFIMzMuNzk3SDMzLjc5NjlIMzMuNzk2OUgzMy43OTY4SDMzLjc5NjdIMzMuNzk2N0gzMy43OTY2SDMzLjc5NjVIMzMuNzk2NUgzMy43OTY0SDMzLjc5NjNIMzMuNzk2M0gzMy43OTYySDMzLjc5NjFIMzMuNzk2MUgzMy43OTZIMzMuNzk1OUgzMy43OTU5SDMzLjc5NThIMzMuNzk1OEgzMy43OTU3SDMzLjc5NTZIMzMuNzk1NkgzMy43OTU1SDMzLjc5NTRIMzMuNzk1NEgzMy43OTUzSDMzLjc5NTJIMzMuNzk1MkgzMy43OTUxSDMzLjc5NUgzMy43OTVIMzMuNzk0OUgzMy43OTQ4SDMzLjc5NDhIMzMuNzk0N0gzMy43OTQ2SDMzLjc5NDZIMzMuNzk0NUgzMy43OTQ0SDMzLjc5NDRIMzMuNzk0M0gzMy43OTQzSDMzLjc5NDJIMzMuNzk0MUgzMy43OTQxSDMzLjc5NEgzMy43OTM5SDMzLjc5MzlIMzMuNzkzOEgzMy43OTM3SDMzLjc5MzdIMzMuNzkzNkgzMy43OTM1SDMzLjc5MzVIMzMuNzkzNEgzMy43OTMzSDMzLjc5MzNIMzMuNzkzMkgzMy43OTMxSDMzLjc5MzFIMzMuNzkzSDMzLjc5MjlIMzMuNzkyOUgzMy43OTI4SDMzLjc5MjhIMzMuNzkyN0gzMy43OTI2SDMzLjc5MjZIMzMuNzkyNUgzMy43OTI0SDMzLjc5MjRIMzMuNzkyM0gzMy43OTIySDMzLjc5MjJIMzMuNzkyMUgzMy43OTJIMzMuNzkySDMzLjc5MTlIMzMuNzkxOEgzMy43OTE4SDMzLjc5MTdIMzMuNzkxNkgzMy43OTE2SDMzLjc5MTVIMzMuNzkxNUgzMy43OTE0SDMzLjc5MTNIMzMuNzkxM0gzMy43OTEySDMzLjc5MTFIMzMuNzkxMUgzMy43OTFIMzMuNzkwOUgzMy43OTA5SDMzLjc5MDhIMzMuNzkwN0gzMy43OTA3SDMzLjc5MDZIMzMuNzkwNUgzMy43OTA1SDMzLjc5MDRIMzMuNzkwNEgzMy43OTAzSDMzLjc5MDJIMzMuNzkwMkgzMy43OTAxSDMzLjc5SDMzLjc5SDMzLjc4OTlIMzMuNzg5OEgzMy43ODk4SDMzLjc4OTdIMzMuNzg5NkgzMy43ODk2SDMzLjc4OTVIMzMuNzg5NUgzMy43ODk0SDMzLjc4OTNIMzMuNzg5M0gzMy43ODkySDMzLjc4OTFIMzMuNzg5MUgzMy43ODlIMzMuNzg4OUgzMy43ODg5SDMzLjc4ODhIMzMuNzg4N0gzMy43ODg3SDMzLjc4ODZIMzMuNzg4NkgzMy43ODg1SDMzLjc4ODRIMzMuNzg4NEgzMy43ODgzSDMzLjc4ODJIMzMuNzg4MkgzMy43ODgxSDMzLjc4ODFIMzMuNzg4SDMzLjc4NzlIMzMuNzg3OUgzMy43ODc4SDMzLjc4NzdIMzMuNzg3N0gzMy43ODc2SDMzLjc4NzVIMzMuNzg3NUgzMy43ODc0SDMzLjc4NzRIMzMuNzg3M0gzMy43ODcySDMzLjc4NzJIMzMuNzg3MUgzMy43ODdIMzMuNzg3SDMzLjc4NjlIMzMuNzg2OUgzMy43ODY4SDMzLjc4NjdIMzMuNzg2N0gzMy43ODY2SDMzLjc4NjVIMzMuNzg2NUgzMy43ODY0SDMzLjc4NjRIMzMuNzg2M0gzMy43ODYySDMzLjc4NjJIMzMuNzg2MUgzMy43ODZIMzMuNzg2SDMzLjc4NTlIMzMuNzg1OUgzMy43ODU4SDMzLjc4NTdIMzMuNzg1N0gzMy43ODU2SDMzLjc4NTZIMzMuNzg1NUgzMy43ODU0SDMzLjc4NTRIMzMuNzg1M0gzMy43ODUySDMzLjc4NTJIMzMuNzg1MUgzMy43ODUxSDMzLjc4NUgzMy43ODQ5SDMzLjc4NDlIMzMuNzg0OEgzMy43ODQ4SDMzLjc4NDdIMzMuNzg0NkgzMy43ODQ2SDMzLjc4NDVIMzMuNzg0NUgzMy43ODQ0SDMzLjc4NDNIMzMuNzg0M0gzMy43ODQySDMzLjc4NDJIMzMuNzg0MUgzMy43ODRIMzMuNzg0SDMzLjc4MzlIMzMuNzgzOUgzMy43ODM4SDMzLjc4MzdIMzMuNzgzN0gzMy43ODM2SDMzLjc4MzZIMzMuNzgzNUgzMy43ODM0SDMzLjc4MzRIMzMuNzgzM0gzMy43ODMzSDMzLjc4MzJIMzMuNzgzMUgzMy43ODMxSDMzLjc4M0gzMy43ODNIMzMuNzgyOUgzMy43ODI5SDMzLjc4MjhIMzMuNzgyN0gzMy43ODI3SDMzLjc4MjZIMzMuNzgyNkgzMy43ODI1SDMzLjc4MjRIMzMuNzgyNEgzMy43ODIzSDMzLjc4MjNIMzMuNzgyMkgzMy43ODIySDMzLjc4MjFIMzMuNzgySDMzLjc4MkgzMy43ODE5SDMzLjc4MTlIMzMuNzgxOEgzMy43ODE4SDMzLjc4MTdIMzMuNzgxNkgzMy43ODE2SDMzLjc4MTVIMzMuNzgxNUgzMy43ODE0SDMzLjc4MTRIMzMuNzgxM0gzMy43ODEySDMzLjc4MTJIMzMuNzgxMUgzMy43ODExSDMzLjc4MUgzMy43ODFIMzMuNzgwOUgzMy43ODA5SDMzLjc4MDhIMzMuNzgwN0gzMy43ODA3SDMzLjc4MDZIMzMuNzgwNkgzMy43ODA1SDMzLjc4MDVIMzMuNzgwNEgzMy43ODA0SDMzLjc4MDNIMzMuNzgwM0gzMy43ODAySDMzLjc4MDFIMzMuNzgwMUgzMy43OEgzMy43OEgzMy43Nzk5SDMzLjc3OTlIMzMuNzc5OEgzMy43Nzk4SDMzLjc3OTdIMzMuNzc5N0gzMy43Nzk2SDMzLjc3OTVIMzMuNzc5NUgzMy43Nzk0SDMzLjc3OTRIMzMuNzc5M0gzMy43NzkzSDMzLjc3OTJIMzMuNzc5MkgzMy43NzkxSDMzLjc3OTFIMzMuNzc5SDMzLjc3OUgzMy43Nzg5QzMzLjEzMjEgNDAuNzc5OCAzMi42NzE3IDQwLjI5MjUgMzIuNjcxNyAzOS43NjY0QzMyLjY3MTcgMzkuMjQwMyAzMy4xMzIxIDM4Ljc1MyAzMy43Nzg5IDM4Ljc1M0MzNC40MjU3IDM4Ljc1MyAzNC44ODYxIDM5LjI0MDMgMzQuODg2MSAzOS43NjY0QzM0Ljg4NjEgMzkuOTg0IDM0LjgxMDMgNDAuMTg5MiAzNC42NzQ1IDQwLjM2MTdaXCIgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzUxMTlcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+RXhjbHVkZSBab25lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6b25lLXN1YnNjcmlwdGlvblwiPlRvIGFkZCBhbiBFeGNsdWRlZCBab25lIGluc2lkZSB0aGUgc3RvcmUsIHBsZWFzZSB1cGdyYWRlIHlvdXIgcGxhbiBhbmQgc3Vic2NyaWJlIHRvIFRhbmdvRXllLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc2V0dGluZ3MvcGF5bWVudC1zdWJzY3JpcHRpb25cIiBjbGFzcz1cImJ1dHRvbiBidG4gYnRuLXNtIHB5LTMgYnRuLXByaW1hcnkgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5VcGdyYWRlIHBsYW48L3NwYW4+PHNwYW4+PHN2ZyBjbGFzcz1cIm1zLTNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMSAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMS4zNjA3IDYuMTQ0NTNDMTEuNzM2NyA1LjkyNTc4IDExLjk4NzQgNS41Mjg5MSAxMS45ODc0IDUuMDgyMDNDMTEuOTg3NCA0LjM5MTQxIDExLjM5NyAzLjgzMjAzIDEwLjY2OCAzLjgzMjAzQzkuOTM4OTggMy44MzIwMyA5LjM0ODUyIDQuMzkxNDEgOS4zNDg1MiA1LjA4MjAzQzkuMzQ4NTIgNS41MzIwMyA5LjU5OTIyIDUuOTI1NzggOS45NzUyNiA2LjE0NDUzTDguMDg1MTYgOS43MjU3OEM3Ljc4NDk4IDEwLjI5NDUgNy4wMDY1MSAxMC40NTcgNi40ODIwMyAxMC4wNjAyTDMuNTQyOTcgNy44MzIwM0MzLjcwNzkgNy42MjI2NiAzLjgwNjg2IDcuMzYzMjggMy44MDY4NiA3LjA4MjAzQzMuODA2ODYgNi4zOTE0MSAzLjIxNjQxIDUuODMyMDMgMi40ODc0MSA1LjgzMjAzQzEuNzU4NDIgNS44MzIwMyAxLjE2Nzk3IDYuMzkxNDEgMS4xNjc5NyA3LjA4MjAzQzEuMTY3OTcgNy43NzI2NiAxLjc1ODQyIDguMzMyMDMgMi40ODc0MSA4LjMzMjAzQzIuNDk0MDEgOC4zMzIwMyAyLjUwMzkxIDguMzMyMDMgMi41MTA1IDguMzMyMDNMNC4wMTc5NyAxNi4xODgzQzQuMTk5MzkgMTcuMTM4MyA1LjA3MzUyIDE3LjgzMiA2LjA5NjA5IDE3LjgzMkgxNS4yMzk4QzE2LjI1OTEgMTcuODMyIDE3LjEzMzIgMTcuMTQxNCAxNy4zMTggMTYuMTg4M0wxOC44MjU0IDguMzMyMDNDMTguODMyIDguMzMyMDMgMTguODQxOSA4LjMzMjAzIDE4Ljg0ODUgOC4zMzIwM0MxOS41Nzc1IDguMzMyMDMgMjAuMTY4IDcuNzcyNjYgMjAuMTY4IDcuMDgyMDNDMjAuMTY4IDYuMzkxNDEgMTkuNTc3NSA1LjgzMjAzIDE4Ljg0ODUgNS44MzIwM0MxOC4xMTk1IDUuODMyMDMgMTcuNTI5MSA2LjM5MTQxIDE3LjUyOTEgNy4wODIwM0MxNy41MjkxIDcuMzYzMjggMTcuNjI4IDcuNjIyNjYgMTcuNzkzIDcuODMyMDNMMTQuODUzOSAxMC4wNjAyQzE0LjMyOTQgMTAuNDU3IDEzLjU1MSAxMC4yOTQ1IDEzLjI1MDggOS43MjU3OEwxMS4zNjA3IDYuMTQ0NTNaXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzdG9yZW9wZW5hbmRjbG9zZSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXQtMlwiPlNldCBCdWZmZXIgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIiAoY2hhbmdlKT1cImNoYW5nZUJ1ZmZlclRpbWUoJGV2ZW50KVwiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lID4gMCB8fCBjb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWUgPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0ZWN0aW9udGV4dCBtdC0yXCI+V2hlbiBlbmFibGVkLCBhbGVydHMgd2lsbCBiZSBwYXVzZWQgZHVyaW5nIHRoZSBidWZmZXIgcGVyaW9kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2hlY2tCdWZmZXIgfHwgY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgfHwgY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lXCIgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbWUtM1wiPiBJZiBTdG9yZSBPcGVuIHRpbWUgZXhjZWVkcyBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHAtMyB0ZXh0LWNlbnRlciB3LTQ1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5vcGVuVGltZVwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmxlbmd0aD1cIjJcIiBtYXhsZW5ndGg9XCIzXCIgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24xIG1zLTNcIj4gbWludXRlcyA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbWUtM1wiPiBJZiBTdG9yZSBDbG9zZSB0aW1lIGV4Y2VlZHMgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBwLTMgdGV4dC1jZW50ZXIgdy00NXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lXCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoPVwiMlwiIG1heGxlbmd0aD1cIjNcIiAoYmx1cik9XCJ2YWxpZGF0ZUxpbWl0KCRldmVudClcIiAvPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbXMtM1wiPiBtaW51dGVzIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3NjcnVtJywnY2xlYW5pbmcnXS5pbmNsdWRlcyh0eXBlKSAmJiBjbGllbnRJZCE9PSc0NTInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmcgbXQtOFwiPkF1dG9tYXRpYyBUYXNrXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1zd2l0Y2ggbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIiBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYXV0b1Rhc2tcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXgtNFwiPiBTZWxlY3QgQXBwcm92ZXIgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5hcHByb3ZlclwiIChzZWxlY3RlZExpc3QpPVwidXBkYXRlQWxlcnQoJGV2ZW50LCdhcHByb3ZlJylcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtdC04XCI+e3t0eXBlID09PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nID8gJ1RvIGJlIEFja25vd2xlZGdlZCBieScgOiAnQXBwcm92ZXInfX08L2gyPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtMyBtdC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QnkgZW5hYmxpbmcsIHRoZSB1c2VycyB3aWxsIGJlIGFibGUgdG8gYWNrbm93bGVkZ2UgdGhlIGNoZWNrbGlzdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09ICdtb2JpbGV1c2FnZWRldGVjdGlvbidcIiBjbGFzcz1cImNvbC1tZC0xMiBtdC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgbXQtMiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC00IHN1YlwiPklmIHVzYWdlIGV4Y2VlZHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy01NXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuYWxlcnQudXNhZ2VFeGNlZWRzXCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgbWlubGVuZ3RoPVwiMlwiIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyIHVzYWdlZXJyb3JcIiAqbmdJZj1cImVycm9ybXNnXCI+UGxlYXNlIGVudGVyIGV2ZW50IGNvdW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmV0d2VlbiAxNSB0byA5OTk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWQgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIgbXgtNFwiPlRvIGJlIGFwcHJvdmVkIGJ5IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIiBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlclwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnY3VzdG9tJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImNhcmQtYm9keSBiZy13aGl0ZSBtdC0zIHJvdW5kZWQtNCBweC03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nIFwiPkFzc2lnbjxzcGFuIGNsYXNzPVwibXgtMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NzRfNjYxOTUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAxMC42NjczVjguMDAwNjVNOC4wMDAxNiA1LjMzMzk4SDguMDA2ODNNMTQuNjY2OCA4LjAwMDY1QzE0LjY2NjggMTEuNjgyNiAxMS42ODIxIDE0LjY2NzMgOC4wMDAxNiAxNC42NjczQzQuMzE4MjYgMTQuNjY3MyAxLjMzMzUgMTEuNjgyNiAxLjMzMzUgOC4wMDA2NUMxLjMzMzUgNC4zMTg3NSA0LjMxODI2IDEuMzMzOTggOC4wMDAxNiAxLjMzMzk4QzExLjY4MjEgMS4zMzM5OCAxNC42NjY4IDQuMzE4NzUgMTQuNjY2OCA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy01IG10LTMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzZWxlY3RlZC1yYWRpbyBtZS0zIGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cInN0b3Jlc1wiIFtjaGVja2VkXT1cInN0b3JlQ292ZXJhZ2VcIiAoY2xpY2spPVwic2VsZWN0UmFkaW8oJ3N0b3JlJywnY2hhbmdlJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ1cGxvYWR0ZXh0IGN1cnNvci1wb2ludGVyIGZ3LXNlbWlib2xkXCI+QXNzaWduIFN0b3JlcyBhbmQgQ2x1c3RlcnM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHNlbGVjdGVkLXJhZGlvIG1lLTMgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwidXNlcnNcIiBbY2hlY2tlZF09XCJ1c2VyQ292ZXJhZ2VcIiAoY2xpY2spPVwic2VsZWN0UmFkaW8oJ3VzZXInLCdjaGFuZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGRcIj5Bc3NpZ24gVXNlcnMgYW5kIFRlYW1zPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3RvcmVDb3ZlcmFnZSAmJiBhc3NpZ25UeXBlID09PSdzdG9yZSdcIiBjbGFzcz1cIm10LTUgbXMtNSBzdG9yZUFzc2lnbiBzb3BUYWJsZSBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBoLTE0cHggdy0xNHB4IG14LTFcIiB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZW5hYmxlTmV3RGVwbG95ZWRTdG9yZVwiPjwvZGl2PiA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbGluZUhlaWdodFwiPkF1dG8gYXNzaWduIHRvIG5ld2x5IGRlcGxveWVkIHN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtcy01IGFsaWduLWl0ZW1zLWVuZCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBvdmVyZmxvdy1hdXRvIGgtNDVweCB3LTc1IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFicyBuYXYtbGluZS10YWJzLTJ4IGJvcmRlci10cmFuc3BhcmVudCBmcy01IGZ3LWJvbGRlciBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT1cInNlbGVjdGVkVGFiKCdzdG9yZScpXCIgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlciBoLTEwMFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXNzaWduVHlwZSA9PT0nc3RvcmUnID8gJ2FjdGl2ZSBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeScgOicnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbS0wIHB4LTVcIj5TdG9yZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0ZWRUYWIoJ2NsdXN0ZXInKVwiIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXIgaC0xMDBcIj48YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFzc2lnblR5cGUgPT09J2NsdXN0ZXInID8gJ2FjdGl2ZSBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeScgOicnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbS0wIHB4LTVcIj5DbHVzdGVyczwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0lmPVwidXNlckNvdmVyYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFicyBuYXYtbGluZS10YWJzLTJ4IGJvcmRlci10cmFuc3BhcmVudCBmcy01IGZ3LWJvbGRlciBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT1cInNlbGVjdGVkVGFiKCd1c2VyJylcIiBjbGFzcz1cIm5hdi1pdGVtIGN1cnNvci1wb2ludGVyIGgtMTAwXCI+PGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhc3NpZ25UeXBlID09PSd1c2VyJyA/ICdhY3RpdmUgYmctbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnknIDonJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG0tMCBweC01XCI+VXNlcnM8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0ZWRUYWIoJ3RlYW0nKVwiIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXIgaC0xMDBcIj48YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFzc2lnblR5cGUgPT09J3RlYW0nID8gJ2FjdGl2ZSBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeScgOicnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbS0wIHB4LTVcIj5UZWFtczwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCIgKGNsaWNrKT1cImFkZFN0b3JlQ29tcG9uZW50KClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtNCBuZy1zdGFyLWluc2VydGVkIG10LThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCIgdGFiaW5kZXg9XCIwXCI+PHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkuOTk5ODQgNC4xNjY5OVYxNS44MzM3TTQuMTY2NSAxMC4wMDAzSDE1LjgzMzJcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cImNyZWF0ZTFcIj5Bc3NpZ24gU3RvcmU8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwidXNlckNvdmVyYWdlXCIgKGNsaWNrKT1cImFkZFN0b3JlQ29tcG9uZW50KClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtNCBuZy1zdGFyLWluc2VydGVkIG10LThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIiB0YWJpbmRleD1cIjBcIj48c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05Ljk5OTg0IDQuMTY2OTlWMTUuODMzN000LjE2NjUgMTAuMDAwM0gxNS44MzMyXCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cImNyZWF0ZTFcIj5Bc3NpZ24gVXNlcjwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS01IHctMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YlwiPlNlbGVjdGVkIDxzcGFuPnt7YXNzaWduVHlwZSB8IHRpdGxlY2FzZX19czwvc3Bhbj4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gKm5nSWY9XCIhWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCIgIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHBlLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLW11bHRpLWNoaXAtZHJvcGRvd24gKm5nSWY9XCJzdG9yZUxpc3RcIiBbaXRlbXNdPVwic3RvcmVMaXN0XCIgW211bHRpXT1cInRydWVcIiBbc2VhcmNoRmllbGRdPVwiWydzdG9yZU5hbWUnLCdjbHVzdGVyTmFtZScsJ3N0b3JlSWQnLCd1c2VyTmFtZScsJ3RlYW1OYW1lJ11cIiBbc2VhcmNoS2V5XT1cInNlYXJjaEtleVwiIFtpZEZpZWxkXT1cIidfaWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cInVwZGF0ZUFzc2lnbigkZXZlbnQpXCIgKHJlbW92ZWQpPVwicmVtb3ZlZENoaXAoJGV2ZW50KVwiIFtzZWxlY3RlZFZhbHVlc109XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hc3NpZ25cIj48L2xpYi1tdWx0aS1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJbJ2NsdXN0ZXInLCd0ZWFtJ10uaW5jbHVkZXMoYXNzaWduVHlwZSlcIiBjbGFzcz1cInctMTAwIHBlLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLW11bHRpLWNoaXAtZHJvcGRvd24gKm5nSWY9XCJzdG9yZUxpc3RcIiBbaXRlbXNdPVwic3RvcmVMaXN0XCIgW211bHRpXT1cInRydWVcIiBbc2VhcmNoRmllbGRdPVwiWydzdG9yZU5hbWUnLCdjbHVzdGVyTmFtZScsJ3N0b3JlSWQnLCd1c2VyTmFtZScsJ3RlYW1OYW1lJ11cIiBbc2VhcmNoS2V5XT1cInNlYXJjaEtleVwiIFtpZEZpZWxkXT1cIidfaWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cInVwZGF0ZUFzc2lnbigkZXZlbnQpXCIgKHJlbW92ZWQpPVwicmVtb3ZlZENoaXAoJGV2ZW50KVwiIFtzZWxlY3RlZFZhbHVlc109XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hc3NpZ25cIj48L2xpYi1tdWx0aS1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIiAqbmdJZj1cInRhYmxlRGF0YS5sZW5ndGggfHwgdGFibGVGaWx0ZXIubGVuZ3RoIHx8ICFzaG93SW1hZ2VcIj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhdGFibGVMb2FkaW5nICYmIHRhYmxlQXJyYXk/Lmxlbmd0aFwiIGNsYXNzPVwiY2FyZC1ib2R5IHB4LTAgbXQtMCBwdC0wIHBiLTAgbXgtNCBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyIG10LTUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXRpdGxlXCI+U2VsZWN0ZWQgPHNwYW4+e3thc3NpZ25UeXBlIHwgdGl0bGVjYXNlfX1zPC9zcGFuPiBMaXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBkYXRhLWt0LXN1YnNjcmlwdGlvbi10YWJsZS1maWx0ZXI9XCJzZWFyY2hcIiAoY2hhbmdlKT1cInNlYXJjaFRhYmxlRGF0YSgpXCIgWyhuZ01vZGVsKV09XCJ0YWJsZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy0yMDBweCBwcy01IG14LTEgbWUtNFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJub25lXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIiBzdHlsZT1cInRleHQtdHJhbnNmb3JtOiBub25lXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFbJ2NsdXN0ZXInLCd0ZWFtJ10uaW5jbHVkZXMoYXNzaWduVHlwZSlcIiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIHctMTAwIG10LTUgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gcHktMyBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0zIGN1cnNvci1wb2ludGVyXCIgI3VwbG9hZCAoY2xpY2spPVwiZmlsZS5jbGljaygpXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8c3BhbiBjbGFzcz1cInRlbXBsYXRlLWRyb3Bkb3duIGJnLXdoaXRlIG1zLTNcIj5CdWxrVXBsb2FkIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpbnB1dCBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgdHlwZT1cImZpbGVcIiAjZmlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIiAoY2hhbmdlKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCIgLz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YnRpdGxlIG14LTMgbWUtMlwiPiB8IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3BlbkRyb3Bkb3duKCRldmVudClcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgOUwxMiAxNUwxOCA5XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZHJvcERvd25cIiBjbGFzcz1cImNhcmQgdGVtcGxhdGUtZHJvcGRvd24gaC00MHB4IHctMTAwIHBvc2l0aW9uLWFic29sdXRlIHJvdW5kZWQtMyB6LTEgdG9wLTUwcHggZW5kLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMCB3LWF1dG8gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYnVsa3VwbG9hZE1vZGVsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJweC01IGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIj5Eb3dubG9hZCBUZW1wbGF0ZTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBweS0zIGJ0bi1kZWZhdWx0IHctMTAwIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWwgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGVWMigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTMgY3Vyc29yLXBvaW50ZXJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguMTI1IDEzLjEyNUgxNi4zNTYyTDE0Ljc0MzggMTQuNzQzOEwxNS42MjUgMTUuNjI1TDE4Ljc1IDEyLjVMMTUuNjI1IDkuMzc1TDE0Ljc0MzggMTAuMjU2MkwxNi4zNTYyIDExLjg3NUg4LjEyNVYxMy4xMjVaXCIgZmlsbD1cImJsYWNrXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTMuNzUgOC43NTAwMVY2LjI1MDAxQzEzLjc1MDUgNi4xNjc3NiAxMy43MzQ3IDYuMDg2MjIgMTMuNzAzNiA2LjAxMDA3QzEzLjY3MjUgNS45MzM5MiAxMy42MjY3IDUuODY0NjYgMTMuNTY4OCA1LjgwNjI2TDkuMTkzNzUgMS40MzEyNkM5LjEzNTM1IDEuMzczMzMgOS4wNjYwOSAxLjMyNzUxIDguOTg5OTQgMS4yOTY0QzguOTEzNzkgMS4yNjUzIDguODMyMjUgMS4yNDk1MyA4Ljc1IDEuMjUwMDFIMi41QzIuMTY4NDggMS4yNTAwMSAxLjg1MDU0IDEuMzgxNzEgMS42MTYxMiAxLjYxNjEzQzEuMzgxNyAxLjg1MDU1IDEuMjUgMi4xNjg0OSAxLjI1IDIuNTAwMDFWMTcuNUMxLjI1IDE3LjgzMTUgMS4zODE3IDE4LjE0OTUgMS42MTYxMiAxOC4zODM5QzEuODUwNTQgMTguNjE4MyAyLjE2ODQ4IDE4Ljc1IDIuNSAxOC43NUgxMi41QzEyLjgzMTUgMTguNzUgMTMuMTQ5NSAxOC42MTgzIDEzLjM4MzkgMTguMzgzOUMxMy42MTgzIDE4LjE0OTUgMTMuNzUgMTcuODMxNSAxMy43NSAxNy41VjE2LjI1SDEyLjVWMTcuNUgyLjVWMi41MDAwMUg3LjVWNi4yNTAwMUM3LjUgNi41ODE1MyA3LjYzMTcgNi44OTk0NyA3Ljg2NjEyIDcuMTMzODlDOC4xMDA1NCA3LjM2ODMxIDguNDE4NDggNy41MDAwMSA4Ljc1IDcuNTAwMDFIMTIuNVY4Ljc1MDAxSDEzLjc1Wk04Ljc1IDYuMjUwMDFWMi43NTYyNkwxMi4yNDM4IDYuMjUwMDFIOC43NVpcIiBmaWxsPVwiYmxhY2tcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDxzcGFuIGNsYXNzPVwidGVtcGxhdGUtZHJvcGRvd24gYmctd2hpdGUgbXMtM1wiPkV4cG9ydCA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiICpuZ0lmPVwiIXRhYmxlRGF0YT8ubGVuZ3RoICYmICF0YWJsZUZpbHRlciAmJiAhc2hvd0ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IG15LTggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoZSA8c3Bhbj57e2Fzc2lnblR5cGV9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTAgbXgtNFwiICpuZ0lmPVwidGFibGVBcnJheS5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNvcFRhYmxlIHRhYmxlLXJlc3BvbnNpdmUgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFibGVMb2FkaW5nXCIgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiICpuZ0lmPVwidGFibGVGaWx0ZXIgJiYgIXRhYmxlRGF0YT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBteS04IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGUgPHNwYW4+e3thc3NpZ25UeXBlfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keS1zb3BcIiAqbmdJZj1cInRhYmxlRGF0YS5sZW5ndGggJiYgIXRhYmxlTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCIgY2xhc3M9XCJ3LTEwMCB0YWJsZSBib3R0b20tYm9yZGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0ZXh0LWFsaWduLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgnc3RvcmVOYW1lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSBOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAnc3RvcmVOYW1lJyAmJiBzb3J0QnkgIT09IDEgfHwgc29ydENvbHVtbiAhPT0gJ3N0b3JlTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICdzdG9yZU5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNvcnREYXRhKCd1c2VyTmFtZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BPQyBOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlck5hbWUnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1uICE9PSAndXNlck5hbWUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxLjMzMzM3VjEwLjY2NjdNNi4wMDAxNiAxMC42NjY3TDEwLjY2NjggNi4wMDAwNE02LjAwMDE2IDEwLjY2NjdMMS4zMzM1IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlck5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGV4dC1hbGlnbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJFbWFpbCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BPQyBFbWFpbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3VzZXJFbWFpbCcgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyRW1haWwnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxLjMzMzM3VjEwLjY2NjdNNi4wMDAxNiAxMC42NjY3TDEwLjY2NjggNi4wMDAwNE02LjAwMDE2IDEwLjY2NjdMMS4zMzM1IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlckVtYWlsJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImFzc2lnblR5cGUgPT09J2NsdXN0ZXInXCIgY2xhc3M9XCJ0ZXh0LWFsaWduLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgnY2x1c3Rlck5hbWUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsdXN0ZXIgTmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ2NsdXN0ZXJOYW1lJyAmJiBzb3J0QnkgIT09IDEgfHwgc29ydENvbHVtbiAhPT0gJ2NsdXN0ZXJOYW1lJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ2NsdXN0ZXJOYW1lJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBkYXRhIG9mIHRhYmxlRGF0YTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLnN0b3JlTmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGEudXNlck5hbWUgPyBkYXRhLnVzZXJOYW1lIDogJy0tJ319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ZGF0YS51c2VyRW1haWwgPyBkYXRhLnVzZXJFbWFpbCA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cImFzc2lnblR5cGUgPT09ICdjbHVzdGVyJ1wiPnt7ZGF0YS5jbHVzdGVyTmFtZSA/IGRhdGEuY2x1c3Rlck5hbWUgOiAnLS0nfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlICpuZ0lmPVwidXNlckNvdmVyYWdlXCIgY2xhc3M9XCJ3LTEwMCB0YWJsZSBib3R0b20tYm9yZGVyIHRleHQtbm93cmFwXCI+ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNvcnREYXRhKCd1c2VyTmFtZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlciBOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlck5hbWUnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1uICE9PSAndXNlck5hbWUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxLjMzMzM3VjEwLjY2NjdNNi4wMDAxNiAxMC42NjY3TDEwLjY2NjggNi4wMDAwNE02LjAwMDE2IDEwLjY2NjdMMS4zMzM1IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlck5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGV4dC1hbGlnbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJFbWFpbCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlciBFbWFpbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3VzZXJFbWFpbCcgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyRW1haWwnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxLjMzMzM3VjEwLjY2NjdNNi4wMDAxNiAxMC42NjY3TDEwLjY2NjggNi4wMDAwNE02LjAwMDE2IDEwLjY2NjdMMS4zMzM1IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlckVtYWlsJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImFzc2lnblR5cGUgPT09J3RlYW0nXCIgY2xhc3M9XCJ0ZXh0LWFsaWduLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgndGVhbU5hbWUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlYW1zIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd0ZWFtTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd0ZWFtTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd0ZWFtTmFtZScgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgdGFibGVEYXRhO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBteC00IGxpbmUtaGVpZ2h0XCI+e3tkYXRhLnVzZXJOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGEudXNlckVtYWlsID8gZGF0YS51c2VyRW1haWwgOiAnLS0nfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJhc3NpZ25UeXBlID09PSd0ZWFtJ1wiPnt7ZGF0YS50ZWFtTmFtZSA/IGRhdGEudGVhbU5hbWUgOiAnLS0nfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gW2l0ZW1zUGVyUGFnZV09XCJzaXplXCIgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRWYWx1ZVwiIFt0b3RhbEl0ZW1zXT1cInJlY29yZHNUb3RhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVcIiBbcGFnZVNpemVdPVwic2l6ZVwiIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFibGVMb2FkaW5nMSAmJiBzaG93SW1hZ2VcIiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXRhYmxlQXJyYXkubGVuZ3RoICYmICF0YWJsZUxvYWRpbmcxICYmICF0YWJsZUZpbHRlci5sZW5ndGggJiYgc2hvd0ltYWdlICYmICFjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2VycyAmJiAhWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCIgY2xhc3M9XCJyb3cgbWItNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgYXNzaWducGFkZGluZyBtYi0xMCBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaHIgdy0xMDAgYm9yZGVyIGJvcmRlci0xIHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRlbXBsYXRlLWRyb3Bkb3duIG9ycG9zaXRpb24gYmctd2hpdGUgdy0xMDBweFwiPm9yPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRwYWRkaW5nIG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwic3VidGV4dCBsaXN0LXVuc3R5bGVkIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+VXNlIHRoZSB0ZW1wbGF0ZSB0byB1cGxvYWQgbXVsdGlwbGUgPHNwYW4gKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCI+c3RvcmVzPC9zcGFuPiA8c3BhbiAqbmdJZj1cInVzZXJDb3ZlcmFnZVwiPnVzZXJzPC9zcGFuPiBhdCBvbmNlLjwvbGk+ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiBEb3dubG9hZCB0aGUgdGVtcGxhdGUgaGVyZSAtIDxzcGFuIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlVjIoKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48c3BhbiBjbGFzcz1cIm1lLTNcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU01LjgzMzMzIDguMzMzMzNMMTAgMTIuNU0xMCAxMi41TDE0LjE2NjcgOC4zMzMzM00xMCAxMi41VjIuNVwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+RG93bmxvYWQgVGVtcGxhdGU8L3NwYW4+PC9zcGFuPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4gQWRkIHlvdXIgZGF0YSB0byB0aGUgVGVtcGxhdGUgRmlsZTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGJvcmRlciBib3JkZXItMiB0ZXh0LWNlbnRlciBib3JkZXItZGFzaGVkIHJvdW5kZWQtMyBib3JkZXItcHJpbWFyeSBwLTVcIiAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ2xlYXZlKT1cIm9uRHJhZ0xlYXZlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbGUuY2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0NlwiIGhlaWdodD1cIjQ2XCIgdmlld0JveD1cIjAgMCA0NiA0NlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgZmlsbD1cIiNGMkY0RjdcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgc3Ryb2tlPVwiI0Y5RkFGQlwiIHN0cm9rZS13aWR0aD1cIjZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNzk3OV81MjAyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI2LjMzMzUgMjYuMzMzMkwyMy4wMDAyIDIyLjk5OTlNMjMuMDAwMiAyMi45OTk5TDE5LjY2NjkgMjYuMzMzMk0yMy4wMDAyIDIyLjk5OTlWMzAuNDk5OU0yOS45OTE5IDI4LjMyNDlDMzAuODA0NyAyNy44ODE4IDMxLjQ0NjcgMjcuMTgwNiAzMS44MTY4IDI2LjMzMjFDMzIuMTg2OCAyNS40ODM1IDMyLjI2MzcgMjQuNTM1OSAzMi4wMzU0IDIzLjYzODhDMzEuODA3IDIyLjc0MTcgMzEuMjg2NSAyMS45NDYyIDMwLjU1NTggMjEuMzc3OEMyOS44MjUxIDIwLjgwOTQgMjguOTI1OSAyMC41MDA1IDI4LjAwMDIgMjAuNDk5OUgyNi45NTAyQzI2LjY5OCAxOS41MjQzIDI2LjIyNzggMTguNjE4NSAyNS41NzUyIDE3Ljg1MDdDMjQuOTIyNSAxNy4wODI5IDI0LjEwNDIgMTYuNDczMSAyMy4xODIgMTYuMDY3MUMyMi4yNTk3IDE1LjY2MSAyMS4yNTczIDE1LjQ2OTQgMjAuMjUwMyAxNS41MDY1QzE5LjI0MzMgMTUuNTQzNiAxOC4yNTc4IDE1LjgwODUgMTcuMzY3OSAxNi4yODEzQzE2LjQ3NzkgMTYuNzU0MSAxNS43MDY4IDE3LjQyMjUgMTUuMTEyNCAxOC4yMzYyQzE0LjUxOCAxOS4wNSAxNC4xMTU4IDE5Ljk4NzkgMTMuOTM2IDIwLjk3OTRDMTMuNzU2MyAyMS45NzA5IDEzLjgwMzYgMjIuOTkwMyAxNC4wNzQ2IDIzLjk2MUMxNC4zNDU1IDI0LjkzMTYgMTQuODMyOSAyNS44MjgxIDE1LjUwMDIgMjYuNTgzMlwiIHN0cm9rZT1cIiM0NzU0NjdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF83OTc5XzUyMDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEzIDEzKVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JldGV4dCBjdXJzb3ItcG9pbnRlciBtYi0yIGZ3LWJvbGRcIj48c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeSB0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lXCI+Q2xpY2sgVG8gVXBsb2FkPC9zcGFuPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGRyYWcgYW5kIGRyb3BcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJhbGlnbiBmdy00MDBcIj50aGUgZGF0YSBhZGRlZCB0ZW1wbGF0ZSBmaWxlIGZvciBwcm9jZXNzaW5nLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCIgdHlwZT1cImZpbGVcIiAjZmlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8xXCIgKGNoYW5nZSk9XCJvbkZpbGVVcGxvYWQoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhdGFibGVBcnJheS5sZW5ndGggJiYgIXRhYmxlTG9hZGluZzEgJiYgIXRhYmxlRmlsdGVyLmxlbmd0aCAmJiBzaG93SW1hZ2UgJiYgIWNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzICYmIFsnY2x1c3RlcicsJ3RlYW0nXS5pbmNsdWRlcyhhc3NpZ25UeXBlKVwiIGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IG15LTggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoZSA8c3Bhbj57e2Fzc2lnblR5cGV9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgIT09ICdjdXN0b20nXCIgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWFzc2lnbiBbY29uZmlnRGF0YV09XCJjb25maWdEYXRhXCIgW3VwbG9hZERhdGFdPVwidXBsb2FkRGF0YVwiIFtjb25maWd1cmVUeXBlXT1cImNvbmZpZ3VyZVR5cGVcIiAoZGF0YVRvUGFyZW50KT1cImhhbmRsZURhdGFGcm9tQ2hpbGQoJGV2ZW50KVwiPjwvbGliLWFzc2lnbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNidWxrdXBsb2FkIGxldC1tb2RlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIG10LTVcIj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIG10LTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHJvdW5kZWQtNSB3LTQwcHggaC00MHB4IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCIgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IDxzcGFuIGNsYXNzPVwiY29uZmlnLWhlYWRpbmcgZnctc2VtaWJvbGQgbXMtNSB3LWF1dG9cIj5CdWxrIFVwbG9hZDwvc3Bhbj5cclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZUFzc2lnbiBtdC0zXCIgc3R5bGU9XCJmb250LXdlaWdodDogNDAwXCI+U3RlcCAxIC0gPGEgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGVWMigpXCI+RG93bmxvYWQgdGhlIHRlbXBsYXRlIGhlcmU8L2E+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmVBc3NpZ24gbXQtM1wiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMFwiPlN0ZXAyIC0gQWRkIHlvdXIgZGF0YSB0byB0aGUgVGVtcGxhdGUgRmlsZSB3aXRoIGV4aXN0aW5nIDxzcGFuICpuZ0lmPVwic3RvcmVDb3ZlcmFnZVwiPnN0b3JlPC9zcGFuPiA8c3BhbiAqbmdJZj1cInVzZXJDb3ZlcmFnZVwiPnVzZXI8L3NwYW4+IGRhdGE8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZUFzc2lnbiBtdC0zXCIgc3R5bGU9XCJmb250LXdlaWdodDogNDAwXCI+U3RlcDMgLSBVcGxvYWQgaXQgYmVsb3cgZm9yIHByb2Nlc3Npbmc8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCBzdG9yZUFzc2lnbiBtdC0xMFwiPioqTm90ZSA6IE9uIHVwbG9hZCwgYWxsIHRoZSBleGlzdGluZyBkYXRhIHdpbGwgYmUgcmVwbGFjZWQ8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIHRleHQtZW5kIHB0LTBcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgYnRuLWRlZmF1bHQgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwibW9kZWwuY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1tZCBweS00IGJ0bi1kZWZhdWx0IG1zLTMgYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiZmlsZTEuY2xpY2soKVwiPlVwbG9hZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCIgI2ZpbGUxIHR5cGU9XCJmaWxlXCIgaWQ9XCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVVcGxvYWQoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYWZ0ZXJWYWxpZGF0aW9uIGxldC1tb2RlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIG10LTBcIj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIG10LTNcIj48c3BhbiBjbGFzcz1cImNvbmZpZy1oZWFkaW5nIGZ3LXNlbWlib2xkIHctYXV0b1wiPkFzc2lnbiA8c3BhbiAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIj5TdG9yZXM8L3NwYW4+IDxzcGFuICpuZ0lmPVwidXNlckNvdmVyYWdlXCI+VXNlcnM8L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jYXJkIHJvdW5kZWQtMyBwLTMgZmxleC1jb2x1bW4gaC04MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmcgdy0xMDBcIj57e2dldFN0b3JlQ291bnRzKGV4Y2VsRGF0YSl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIHN1YnRpdGxlIG10LTFcIj5Ub3RhbCA8c3BhbiAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIj5TdG9yZXM8L3NwYW4+IDxzcGFuICpuZ0lmPVwidXNlckNvdmVyYWdlXCI+VXNlcnM8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nIHctMTAwXCI+e3tleGNlbERhdGE/Lmxlbmd0aH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1zZW1pYm9sZCBzdWJ0aXRsZSBtdC0xXCI+Um93cyBwcm9jZXNzZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jYXJkIHJvdW5kZWQtMyBwLTMgZmxleC1jb2x1bW4gaC04MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZXhjZWxFcnJvciA/ICdlcnJvci1oZWFkaW5nJzonJ1wiIGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmcgdy0xMDBcIj57e2V4Y2VsRXJyb3I/LmVycm9yPy5sZW5ndGggfHwgMH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZXhjZWxFcnJvciA/ICdleGNlbC1lcnJvcic6JydcIiBjbGFzcz1cImZ3LXNlbWlib2xkIHN1YnRpdGxlIG10LTFcIj5FcnJvcjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFleGNlbEVycm9yXCIgY2xhc3M9XCJ0YWJsZS1oZWFkZXIgbXQtNVwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2hvd1N0b3JlJiYhc2hvd1RlYW0mJiFzaG93Q2x1c3RlciYmIXNob3dVc2VyJiYhc2hvd0luYWN0aXZlXCI+WW91J3JlIGFib3V0IHRvIGFzc2lnbiB7e2dldFN0b3JlQ291bnRzKGV4Y2VsRGF0YSl9fSA8c3BhbiAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIj5zdG9yZXM8L3NwYW4+PHNwYW4gKm5nSWY9XCJ1c2VyQ292ZXJhZ2VcIj51c2Vyczwvc3Bhbj4gdG8gdGhlIGNoZWNrbGlzdC4gQXJlIHlvdSBzdXJlIHdhbnQgdG8gcHJvY2VlZD88L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIHNob3dTdG9yZVwiIGNsYXNzPVwibXQtM1wiPlN0b3JlIDxzcGFuICpuZ0Zvcj1cImxldCBzdG9yZSBvZiB2YWxpZGF0ZWRTdG9yZTtsZXQgbGFzdCA9IGxhc3RcIiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmcgZm9yIGlzbuKAmXQgIGF2YWlsYWJsZSwgPGEgIHJvdXRlckxpbms9XCIvbWFuYWdlL3N0b3Jlc1wiIFtxdWVyeVBhcmFtc109XCJ7dHlvZTogJ3N0b3Jlcyd9XCIgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsb3NlYWN0aXZlcG9wdXAoKVwiPk9uYm9hcmQgU3RvcmVzPC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJDb3ZlcmFnZSAmJiBzaG93VXNlclwiIGNsYXNzPVwibXQtM1wiPlVzZXIgPHNwYW4gKm5nRm9yPVwibGV0IHN0b3JlIG9mIHZhbGlkYXRlZFVzZXI7bGV0IGxhc3QgPSBsYXN0XCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZ1wiPnt7c3RvcmV9fTxzcGFuICpuZ0lmPVwiIWxhc3RcIj4sPC9zcGFuPjwvc3Bhbj4gdGhhdCBJ4oCZbSBsb29raW5nIGZvciBpc27igJl0ICBhdmFpbGFibGUsIDxhICBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpO2NvbmZpcm1Vc2VycG9wdXAoKVwiPk9uYm9hcmQgVXNlcnM8L2E+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlckNvdmVyYWdlICYmIHNob3dUZWFtXCIgY2xhc3M9XCJtdC0zXCI+VGVhbSA8c3BhbiAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgdmFsaWRhdGVkVGVhbTtsZXQgbGFzdCA9IGxhc3RcIiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmcgZm9yIGlzbuKAmXQgIGF2YWlsYWJsZSwgPGEgIHJvdXRlckxpbms9XCIvbWFuYWdlL3VzZXJzL2NsaWVudFwiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKClcIj5DcmVhdGUgVGVhbTwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIHNob3dDbHVzdGVyXCIgY2xhc3M9XCJtdC0zXCI+dXNlciA8c3BhbiAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgdmFsaWRhdGVkQ2x1c3RlcjtsZXQgbGFzdCA9IGxhc3RcIiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmcgZm9yIGlzbuKAmXQgIGF2YWlsYWJsZSwgPGEgIHJvdXRlckxpbms9XCIvbWFuYWdlL3N0b3Jlc1wiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiIFtxdWVyeVBhcmFtc109XCJ7dHlvZTogJ2NsdXN0ZXInfVwiIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKClcIj5DcmVhdGUgQ2x1c3RlcjwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIHNob3dVc2VyXCIgY2xhc3M9XCJtdC0zXCI+VXNlciA8c3BhbiAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgdmFsaWRhdGVkVXNlcjtsZXQgbGFzdCA9IGxhc3RcIiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmcgZm9yIGlzbuKAmXQgIGF2YWlsYWJsZSwgPGEgIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKCk7Y29uZmlybVVzZXJwb3B1cCgpXCI+T25ib2FyZCBVc2VyczwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIHNob3dJbmFjdGl2ZVwiIGNsYXNzPVwibXQtM1wiPlN0b3JlIDxzcGFuICpuZ0Zvcj1cImxldCBzdG9yZSBvZiBpbmFjdGl2ZVN0b3JlcztsZXQgbGFzdCA9IGxhc3RcIiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmcgZm9yIGlzIGluYWN0aXZlLCA8YSAgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc3RvcmVzXCIgW3F1ZXJ5UGFyYW1zXT1cInt0eW9lOiAnc3RvcmVzJ31cIiBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+T25ib2FyZCBTdG9yZXM8L2E+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXhjZWxFcnJvclwiIGNsYXNzPVwiZmxleC1jb2x1bW4gbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1oZWFkaW5nIGZ3LWJvbGRcIj5JbnZhbGlkIERldGFpbHMgITwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YnRpdGxlIG10LTVcIj5QbGVhc2UgcHJvdmlkZSBjb3JyZWN0IGFuZCBjb21wbGV0ZSBsYXlvdXQgaW5mb3JtYXRpb24uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC01IHctMTAwIHJvdW5kZWQtMyBib3JkZXItZXJyb3IgbXQtNSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yIG9mIGV4Y2VsRXJyb3I/LmVycm9yOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIiBbbmdDbGFzc109XCIhbGFzdCA/ICdtYi0yJyA6ICcnXCIgY2xhc3M9XCJ0ZXh0LWVycm9yXCI+e3tpICsgMX19KSB7e2Vycm9yfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIHRleHQtZW5kIHB0LTBcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgYnRuLWRlZmF1bHQgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhZXhjZWxFcnJvciYmIXNob3dTdG9yZSYmIXNob3dDbHVzdGVyJiYhc2hvd1VzZXImJiFzaG93VGVhbSYmIXNob3dJbmFjdGl2ZVwiIGNsYXNzPVwiYnRuIGJ0bi1tZCBweS00IGJ0bi1kZWZhdWx0IG1zLTMgYnRuLXByaW1hcnlcIiAoY2xpY2spPVwidmFsaWRhdGVEZXRhaWxzKClcIj5Qcm9jZWVkPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJleGNlbEVycm9yfHxzaG93U3RvcmV8fHNob3dDbHVzdGVyfHxzaG93VXNlcnx8c2hvd1RlYW0gfHwgc2hvd0luYWN0aXZlXCIgY2xhc3M9XCJidG4gcHktMyBidG4tbWQgYnRuLWRlZmF1bHQgbXMtMyBidG4tZGFuZ2VyXCIgKGNsaWNrKT1cIlJldXBsb2FkKCk7XCI+UmV1cGxvYWQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGlucHV0IHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuO1wiICNmaWxlMSB0eXBlPVwiZmlsZVwiIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlVXBsb2FkKCRldmVudCwncmV1cGxvYWQnKVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29uZmlybVVzZXIgbGV0LW1vZGVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgZC1mbGV4IGZsZXgtY29sdW1uIG10LTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHJvdW5kZWQtNSB3LTQwcHggaC00MHB4IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+PGJyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1oZWFkaW5nIGZ3LXNlbWlib2xkIHctYXV0b1wiPk5ldyBVc2VyIGZvdW5kIGluIHVwbG9hZGVkIGZpbGU8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwdC0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlQXNzaWduIG10LTNcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDBcIj5UaGlzIENTViBjb250YWlucyBhIG5ldyBVc2VyLiBBZGQgbmV3IFVzZXIgaW4gdGhlIFVzZXIgTWFuYWdlbWVudCB1bmRlciBNYW5hZ2UgbWVudS48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIHRleHQtZW5kIHB0LTBcIj5cclxuICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1tZCBidG4tZGVmYXVsdCBidG4tb3V0bGluZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3VzZXJzL2NsaWVudFwiIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKClcIj5Ta2lwIE5ldyBFbnRyaWVzPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1tZCBweS00IGJ0bi1kZWZhdWx0IG1zLTMgYnRuLXByaW1hcnlcIiAoY2xpY2spPVwibW9kZWwuY2xvc2UoJ2NvbmZpcm0nKVwiPkludml0ZSBTZWxlY3RlZDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
2812
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC1jb25maWd1cmUvY2hlY2tsaXN0LWNvbmZpZ3VyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdySCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUc3QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQztBQUN0QyxPQUFPLFFBQVEsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBQ2hELEtBQUssQ0FBQyxNQUFNLENBQUUsUUFBUSxDQUFFLENBQUM7QUFDekIsS0FBSyxDQUFDLE1BQU0sQ0FBRSxHQUFHLENBQUUsQ0FBQztBQUNwQixLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFPaEMsTUFBTSxPQUFPLDJCQUEyQjtJQTRGbEI7SUFBMkM7SUFBZ0M7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QixTQUFTO3VCQUFDLE9BQU87Z0JBQ08sVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNPLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNGLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkF3L0V4QixZQUFZO3NCQURWLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBMFQ3QyxTQUFTLGFBQWEsQ0FBQyxJQUFTO0lBQzlCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNkLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBRSxJQUFJLENBQUUsQ0FBQyxPQUFPLENBQUUsT0FBTyxDQUFFLENBQUM7SUFFL0MsT0FBUSxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFHO1FBQ3pDLElBQUssT0FBTyxDQUFDLE1BQU0sQ0FBRSxNQUFNLENBQUUsS0FBTSxJQUFJLENBQUMsTUFBTSxDQUFFLE1BQU0sQ0FBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxJQUFJLENBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBRSxZQUFZLENBQUUsQ0FBRSxDQUFDO1NBQzdDO1FBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBRSxDQUFDO0tBQ25DO0lBRUQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtJQUMvRSxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRXpCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUcmF4cG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi90cmF4cG9wdXAvdHJheHBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYXhTdG9yZUNvbXBvbmVudCB9IGZyb20gJy4uL3RyYXgtc3RvcmUvdHJheC1zdG9yZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMuanMnO1xyXG5pbXBvcnQgdGltZVpvbmUgZnJvbSAnZGF5anMvcGx1Z2luL3RpbWV6b25lLmpzJztcclxuZGF5anMuZXh0ZW5kKCB0aW1lWm9uZSApO1xyXG5kYXlqcy5leHRlbmQoIHV0YyApO1xyXG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2hlY2tsaXN0LWNvbmZpZ3VyZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrbGlzdC1jb25maWd1cmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jaGVja2xpc3QtY29uZmlndXJlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tsaXN0Q29uZmlndXJlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZScpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZTEnKSBmaWxlSW5wdXQxITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdidWxrdXBsb2FkJykgYnVsa3VwbG9hZDogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ2FmdGVyVmFsaWRhdGlvbicpIGFmdGVyVmFsaWRhdGlvbjogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm1Vc2VyJykgY29uZmlybVVzZXI6IGFueTtcclxuICBkYXlqczphbnkgPSBkYXlqcztcclxuICBzZWxlY3RlZERhdGVzOmFueTtcclxuICBtaW5EYXRlOmFueTtcclxuICB0eXBlOiBzdHJpbmcgPSAnY3VzdG9tJztcclxuICBvYmo6IGFueTtcclxuICBjb25maWdEYXRhOiBhbnk7XHJcbiAgdGFibGVEYXRhOiBhbnkgPSBbXTtcclxuICB0YWJsZUxvYWRpbmc6IGFueSA9IGZhbHNlO1xyXG4gIHRhYmxlRGlzcGxheWVkQ29sdW1uczogYW55ID0gW1wibmFtZVwiLCBcInJvbGVcIiwgXCJlbWFpbFwiXVxyXG4gIHBhZ2VWYWx1ZTogYW55ID0gW107XHJcbiAgb2Zmc2V0OiBudW1iZXIgPSAwO1xyXG4gIHJlY29yZHNUb3RhbDogYW55ID0gMDtcclxuICBhc3NpZ25UeXBlOiBhbnk7XHJcbiAgc2l6ZTogYW55ID0gNTtcclxuICBvZmZzZXR2YWx1ZTogbnVtYmVyID0gMDtcclxuICBwYWdlRGlzcGxheTogYW55ID0gW107XHJcbiAgbmV4dGJ0bjogYm9vbGVhbiA9IHRydWU7XHJcbiAgYmFja2J0bjogYm9vbGVhbiA9IHRydWU7XHJcbiAgaWRMaXN0OiBhbnkgPSBbXTtcclxuICBjdXJyZW50VmFsdWU6IGFueSA9IDE7XHJcbiAgdGFibGVGaWx0ZXI6IGFueSA9ICcnO1xyXG4gIHBhZ2VTdGFydDogYW55ID0gMDtcclxuICBwYWdlRW5kOiBhbnkgPSAwO1xyXG4gIHJlY29yZHNDb3VudDogYW55O1xyXG4gIHBhZ2luYXRpb25TaXplID0gWzUsIDEwLCAxNSwyMF07XHJcbiAgdXNlckRhdGE6IGFueSA9IFtdO1xyXG4gIGV4Y2VsVXNlckRhdGE6IGFueSA9IFtdO1xyXG4gIHNob3dJbWFnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgbW9udGhEYXk6IGFueTtcclxuICBzaG93OiBudW1iZXIgPSAwO1xyXG4gIHBvcFVwVGl0bGU6IGFueTtcclxuICBzaG93SW50cm86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNlYXJjaFVzZXI6IGFueTtcclxuICBhZGRVc2VyRm9ybTogYm9vbGVhbjtcclxuICBzb3BTdG9yZXM6IGFueSA9IFtdO1xyXG4gIHN0b3JlQ292ZXJhZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHVzZXJDb3ZlcmFnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdEFsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVycm9ybXNnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RhcnRUaW1lOiBhbnk7XHJcbiAgZW5kVGltZTogYW55O1xyXG4gIGNoZWNrbGlzdElkOiBhbnk7XHJcbiAgcmV1cGxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RBbGxVc2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVtb3ZlVXNlcnM6YW55ID0gW107XHJcbiAgc2VsZWN0ZWREYXlzOiBhbnlbXSA9IFtdO1xyXG4gIHNob3dSYW5nZVZhbHVlOmJvb2xlYW4gPSBmYWxzZTtcclxuICBzdWJtaXR0ZWREYXRlczogbnVtYmVyW10gPSBbXTtcclxuICBtb250aERhdGU6c3RyaW5nPScnO1xyXG4gIHNwZWNpZmljOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZ2xvYmFsQ29uZmlndXJlOiBib29sZWFuID0gdHJ1ZTtcclxuICBzdG9yZXdpc2VDb25maWd1cmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjb25maWd1cmVUeXBlOiBhbnk7XHJcbiAgZGF0ZTogYW55O1xyXG4gIHNlY3Rpb25zOiBhbnkgPSBbXTtcclxuICBNb250aHdlZWtOdW1iZXI6IHN0cmluZztcclxuICBwb3B1cENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHZhbGlkVGltZTpib29sZWFuID0gdHJ1ZTtcclxuICBkaXNhYmxlZFF1ZXN0aW9uOmJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93Y29uZmlnOiBib29sZWFuID0gdHJ1ZTtcclxuICBzaG93YWR2YW5jZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcmVwZWF0VHlwZTpzdHJpbmc9Jyc7XHJcbiAgc2hvd0Ryb3BEb3duOmJvb2xlYW49IGZhbHNlO1xyXG4gIHNlbGVjdGVkRGF0ZTogYW55PSBbXTtcclxuICBkYXRlczogbnVtYmVyW10gPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAzMSB9LCAoXywgaSkgPT4gaSArIDEpOyAvLyBBcnJheSBmcm9tIDEgdG8gMzFcclxuICBzZWxlY3RlZERhdGVMaXN0OmFueSA9IFtdO1xyXG4gIHNlbGVjdGVkU3RhcnREYXRlOmFueTtcclxuICBtaW5TdGFydERhdGU6YW55O1xyXG4gIHNlbGVjdGVkRW5kRGF0ZTphbnk7XHJcbiAgbWluRW5kRGF0ZTphbnk7XHJcbiAgY2xpZW50SWQ6YW55O1xyXG4gIGFsZXJ0VXNlcnM6YW55PVtdO1xyXG4gIHpvbmVMaXN0OmFueSA9IFtdO1xyXG4gIGxvYWRpbmc6Ym9vbGVhbiA9IHRydWU7XHJcbiAgYXBwcm92ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgaW5pdGlhbExvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGV4aXN0aW5nVXNlcnM6IGFueTsgYXNzaWduU2luZ2xlOiBhbnk7IGFzc2lnbkdyb3VwOiBhbnk7XHJcbiAgc2luZ2xlQXNzaWduOiBhbnk7XHJcbiAgZ3JvdXBBc3NpZ246YW55O1xyXG4gIHJlbWFpbmRlcjpib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZWRQdWJsaXNoOmJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGRldGFjaCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgdGltZUxvb3A6YW55W10gPSBbMV1cclxuICBtaW51dGVzOiBudW1iZXJbXSA9IFszMCwgNDUsIDYwLCA3NSwgOTBdO1xyXG4gIHNob3dFZGl0OmJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNhYmxlQnRuOmJvb2xlYW4gPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlZGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJvdXRlcjogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGU6IFJvdXRlciwgcHJpdmF0ZSBkaWFsb2c6IE5nYk1vZGFsLCBwcml2YXRlIFNvcFNlcnZpY2U6IFRyYXhTZXJ2aWNlLCBwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsIHByaXZhdGUgcGFnZUluZm86IFBhZ2VJbmZvU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgbGV0IHN0b3JhZ2VEZXRhaWxzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnKSB8fCAne30nKTtcclxuICAgIGlmKCFzdG9yYWdlRGV0YWlscz8uY2xpZW50KSB7XHJcbiAgICAgIHN0b3JhZ2VEZXRhaWxzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY2xpZW50LWRldGFpbHMnKSB8fCAne30nKTtcclxuICAgICAgc3RvcmFnZURldGFpbHMuY2xpZW50ID0gc3RvcmFnZURldGFpbHMuY2xpZW50SWQ7XHJcbiAgICB9XHJcbiAgICBpZihzdG9yYWdlRGV0YWlscz8uY2xpZW50KSB7XHJcbiAgICAgIHRoaXMuY2xpZW50SWQgPSBzdG9yYWdlRGV0YWlscy5jbGllbnQ7XHJcbiAgICAgIHRoaXMucm91dGVyLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgIGlmIChwYXJhbXM/LmNoZWNrTGlzdElkKSB7XHJcbiAgICAgICAgICB0aGlzLm9iaiA9IHtcclxuICAgICAgICAgICAgY2hlY2tMaXN0SWQ6IHBhcmFtcy5jaGVja0xpc3RJZCxcclxuICAgICAgICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zaG93RWRpdCA9IHBhcmFtcy5zaG93RWRpdDtcclxuICAgICAgICAgIHRoaXMudHlwZSA9ICdjdXN0b20nXHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVkUXVlc3Rpb24gPSBwYXJhbXMuZGlzYWJsZWRRdWVzdGlvbjtcclxuICAgICAgICB9IGVsc2UgaWYocGFyYW1zPy5haWNoZWNrTGlzdElkKXtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5vYmogPSB7XHJcbiAgICAgICAgICAgIGlkOiBwYXJhbXMuYWljaGVja0xpc3RJZCxcclxuICAgICAgICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RJZCA9IHBhcmFtcz8uYWljaGVja0xpc3RJZDtcclxuICAgICAgICAgIHRoaXMuc2hvd0VkaXQgPSBwYXJhbXMuc2hvd0VkaXQ7XHJcbiAgICAgICAgICB0aGlzLnR5cGUgPSBwYXJhbXMudHlwZTtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZWRRdWVzdGlvbiA9IHBhcmFtcy5kaXNhYmxlZFF1ZXN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5vYmogPSB7XHJcbiAgICAgICAgICAgIHR5cGU6IHBhcmFtcy50eXBlLFxyXG4gICAgICAgICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnR5cGUgPSBwYXJhbXMudHlwZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuc2V0UGFnZURhdGEoKTtcclxuICAgICAgdGhpcy5zZWxlY3RJbml0aWFsVGFiKCk7XHJcbiAgICAgIHRoaXMudHlwZSA9PT0gJ2N1c3RvbScgPyB0aGlzLkdldENvbmZpZygpIDogdGhpcy5nZXRBSWNvbmZpZygpO1xyXG4gICAgICB0aGlzLmdldFpvbmVMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGV0YWNoLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRldGFjaC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiTWFuYWdlIENoZWNrbGlzdFwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJBdXRvbWF0ZSBvciBjcmVhdGUgY2hlY2tsaXN0cyB0byBpbXByb3ZlIG9wZXJhdGlvbmFsIGVmZmljaWVuY3lcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfVxyXG4gICAgXSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJbml0aWFsVGFiKCkge1xyXG4gICAgdGhpcy5zdG9yZUNvdmVyYWdlID8gdGhpcy5hc3NpZ25UeXBlID0gJ3N0b3JlJyA6IHRoaXMuYXNzaWduVHlwZSA9ICd1c2VyJ1xyXG4gIH1cclxuXHJcbiAgR2V0Q29uZmlnKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubW9udGhEYXRlID0gJyc7XHJcbiAgICB0aGlzLm1vbnRoRGF5ID0gJyc7XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0Y29uZmlnKHRoaXMub2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOmFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChyZXMuZGF0YS5jaGVja0xpc3REZXRhaWxzLmNoZWNrTGlzdFR5cGUpIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0SWQgPSByZXMuZGF0YS5jaGVja0xpc3REZXRhaWxzLl9pZDtcclxuICAgICAgICAgIHRoaXMudHlwZSA9IHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuY2hlY2tMaXN0VHlwZTtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YSA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID0gW107XHJcbiAgICAgICAgICB0aGlzLmNvdmVyYWdlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY292ZXJhZ2U7XHJcbiAgICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gWy4uLnRoaXMuc2luZ2xlQXNzaWduLC4uLnRoaXMuZ3JvdXBBc3NpZ25dXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdFJhZGlvKHRoaXMuY292ZXJhZ2UpXHJcbiAgICAgICAgICAvLyB0aGlzLmNvdmVyYWdlID09PSAnc3RvcmUnID8gdGhpcy5zdG9yZUNvdmVyYWdlID0gdHJ1ZSA6IHRoaXMudXNlckNvdmVyYWdlID0gdHJ1ZVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVVc2VycyA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZW1vdmVkVXNlcnMgfHwgW107XHJcbiAgICAgICAgICAvLyB0aGlzLmFwcHJvdmUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3Zlcj8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZW1haW5kZXIgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVtYWluZGVyPy5sZW5ndGggPyB0cnVlOiBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGltZUxvb3AgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8ucmVtYWluZGVyPy5sZW5ndGggPyBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIubGVuZ3RoIH0sIChfLCBpKSA9PiBpKSA6IFswXTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5wdWJsaXNoRGF0ZSkge1xyXG4gICAgICAgICAgICBsZXQgZGF0ZSA9IHRoaXMuZGF5anMoKTtcclxuICAgICAgICAgICAgaWYoZGF0ZS5kaWZmKHRoaXMuZGF5anMudXRjKHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucHVibGlzaERhdGUpLCdtaW51dGVzJykgPCA1KSB7XHJcbiAgICAgICAgICAgICAgbGV0IHN0YXJ0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkYXRlID0gdGhpcy5kYXlqcygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFB1Ymxpc2ggPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYoZGF0ZS5kaWZmKHRoaXMuZGF5anMudXRjKHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucHVibGlzaERhdGUpLCdtaW51dGVzJykgPj0gNSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkUHVibGlzaCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHN0YXJ0SW50ZXJ2YWwpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9LDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMucmVtb3ZlVXNlcnMgPSByZXMuZGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ucmVtb3ZlZFVzZXJzIHx8IFtdO1xyXG4gICAgICAgICAgLy8gdGhpcy56b25lcyA9IHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uZGV0ZWN0aW9uQXJlYSB8fCBbXTtcclxuICAgICAgICAgIHRoaXMuc2VjdGlvbnMgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zZWN0aW9ucztcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVdlZWtEYXlzIHx8IFtdO1xyXG4gICAgICAgICAgdGhpcy5lbmRUaW1lID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZSA/IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZSwgICdoOm1tIEEnKS5mb3JtYXQoJ0hIOm1tJykgOiAnMjI6MDAnO1xyXG4gICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUgPyB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVN0YXJ0VGltZSwgJ2g6bW0gQScpLmZvcm1hdCgnSEg6bW0nKSA6ICcxMDowMCc7XHJcbiAgICAgICAgICB0aGlzLnJlcGVhdFR5cGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ2RhaWx5JyA/ICdEYXknIDogWyd3ZWVrbHknLCd3ZWVrZGF5J10uaW5jbHVkZXModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlKSA/ICdXZWVrJyA6ICdNb250aCc7XHJcbiAgICAgICAgICBpZighdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSBcIjEwOjAwIFBNXCJcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSBcIjEwOjAwIEFNXCJcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8gaWYgKHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxlcnQ/LmFsZXJ0c1RvLmxlbmd0aCkge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmVtYWlsTGlzdCA9IHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxlcnQ/LmFsZXJ0c1RvO1xyXG4gICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9ICdvbmV0aW1lJykge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dSYW5nZVZhbHVlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSAnJyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlICE9IG51bGwgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgIT0gJycgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKTsgXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgICAgICAgICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSAnJyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgICAgICAgICAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09ICdtb250aGx5Jykge1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrLnNwbGl0KCcgJyk/Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5tb250aERhdGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2Vlay5zcGxpdCgnICcpWzBdO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoRGF5ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsuc3BsaXQoJyAnKVsxXTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9ICcnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ3NwZWNpZmljJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWREYXRlcyA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zcGVjaWZpY0RhdGUgfHwgW107XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuc3VibWl0dGVkRGF0ZXM7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ3JhbmdlJyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zcGVjaWZpYyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA/IHRoaXMuZGF5anMudXRjKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSkuZm9ybWF0KCkgOiBkYXlqcygpLmZvcm1hdCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgICAgICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIHRoaXMudXNlckRldGFpbHNWMigpO1xyXG4gICAgICAgICAgLy8gdGhpcy5nZXRhc3NpZ25Ecm9wZG93bigpOyBcclxuICAgICAgICAgIC8vIHRoaXMuZ2V0dGFibGVEYXRhKCk7XHJcbiAgICAgICAgICB0aGlzLmdldENsaWVudFVzZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICBpZiAoZXJyb3IuY29kZSA9PSA0MDMpIHtcclxuICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lcnJvcjQwMyddKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEFJY29uZmlnKCkge1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldEFJY29uZmlnKHRoaXMub2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOmFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YSA9IHJlcy5kYXRhO1xyXG4gICAgICAgIGlmICghdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzPy5sZW5ndGggJiYgWydzY3J1bScsJ2NsZWFuaW5nJ10uaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzLnB1c2goe3RpbWU6dGhpcy5kYXlqcygpLmZvcm1hdCgnSEg6bW0nKSxkdXJhdGlvbjogXCIxNVwifSlcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgJiYgWydzY3J1bScsICdjbGVhbmluZyddLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5hc3NpZ25Db25maWcgPSAnZ2xvYmFsJ1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSBbXTtcclxuICAgICAgICAvLyB0aGlzLmNvdmVyYWdlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY292ZXJhZ2U7XHJcbiAgICAgICAgLy8gdGhpcy5jaGVja2xpc3RJZCA9IHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuX2lkO1xyXG4gICAgICAgIC8vIHRoaXMudHlwZSA9IHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHMuY2hlY2tMaXN0VHlwZTtcclxuICAgICAgICB0aGlzLmdldENsaWVudFVzZXIoKTtcclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5jb2RlID09IDQwMykge1xyXG4gICAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Vycm9yNDAzJ10pXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5pdGlhbERhdGEoZGF0YTogYW55LCBjaGFuZ2U/OiBhbnkpIHtcclxuICAgIGxldCB0ZW1wSWQgPSBkYXRhLm1hcCgoZWw6IGFueSkgPT4gZWw/LmlkKVxyXG4gICAgbGV0IHJlcyA9IHRoaXMuc3RvcmVMaXN0LmZpbHRlcigoZWw6IGFueSkgPT4gdGVtcElkLmluY2x1ZGVzKGVsPy5faWQpKTtcclxuICAgIHJlcy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQuaXNTZWxlY3RlZCA9IHRydWUpO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID0gcmVzO1xyXG4gICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gJ3N0b3JlJyB8fCB0aGlzLmFzc2lnblR5cGUgPT09ICd1c2VyJykge1xyXG4gICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgICAvLyB0aGlzLnVzZXJEZXRhaWxzKCksIFxyXG4gICAgICAvLyAodGhpcy5hc3NpZ25UeXBlID09PSAnc3RvcmUnICYmIHRoaXMuaW5pdGlhbExvYWRpbmcpID8gKHRoaXMuaW5pdGlhbExvYWRpbmcgPSBmYWxzZSkgOiB0aGlzLmdldFRhYmxlRGF0YShjaGFuZ2UgPyBjaGFuZ2UgOiAnJyk7XHJcbiAgICAgIHRoaXMuaWRMaXN0ID0gdGhpcy5zaW5nbGVBc3NpZ247XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlkTGlzdCA9IHRoaXMuZ3JvdXBBc3NpZ247XHJcbiAgICAgIHRoaXMudXNlckRldGFpbHNWMigpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUYWJsZURhdGEoY2hhbmdlPzogYW55KSB7XHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgaWYgKHRoaXMuYXNzaWduU2luZ2xlPy5sZW5ndGgpIHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbi5sZW5ndGggIT0gdGhpcy5hc3NpZ25TaW5nbGUubGVuZ3RoKSB7XHJcbiAgICAgICAgY291bnQrKztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24uZm9yRWFjaCgoYXNzaWduOmFueSkgPT4ge1xyXG4gICAgICAgIGxldCBmaW5kTGlzdCA9IHRoaXMuYXNzaWduU2luZ2xlLmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtLnN0b3JlSWQgPT0gYXNzaWduLnN0b3JlSWQpO1xyXG4gICAgICAgIGlmIChmaW5kTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgIGlmIChmaW5kTGlzdC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGFzc2lnbi51c2VyRW1haWwudG9Mb3dlckNhc2UoKSAhPSBmaW5kTGlzdFswXS51c2VyRW1haWwudG9Mb3dlckNhc2UoKSAmJiB0aGlzLmNvdmVyYWdlID09PSAnc3RvcmUnKSB7XHJcbiAgICAgICAgICAgICAgYXNzaWduLnVzZXJFbWFpbCA9IGZpbmRMaXN0WzBdLnVzZXJFbWFpbDtcclxuICAgICAgICAgICAgICBhc3NpZ24udXNlck5hbWUgPSBmaW5kTGlzdFswXS51c2VyTmFtZTtcclxuICAgICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgaWYgKGNvdW50KSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWQgPSBjaGFuZ2UgPyAndXBsb2FkJyA6ICdzdG9yZSc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICBcclxuICAgIC8vIHRoaXMudGFibGVBcnJheSA9IHRoaXMuYXNzaWduU2luZ2xlID8gdGhpcy5hc3NpZ25TaW5nbGUgOiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ247XHJcbiAgICBjaGFuZ2UgPyB0aGlzLnRhYmxlQXJyYXkgPSB0aGlzLmFzc2lnblNpbmdsZSA6IFtdO1xyXG4gICAgaWYgKHRoaXMudXBsb2FkID09PSAnc3RvcmUnKSB7XHJcbiAgICAgIFxyXG4gICAgICBsZXQgdGFibGUgPSBbLi4udGhpcy50YWJsZUFycmF5LCAuLi50aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25dO1xyXG4gICAgICBsZXQgdW5pcXVlVGFibGUgPSBuZXcgTWFwKCk7XHJcbiAgICAgIC8vIENvbnZlcnQgb2JqZWN0cyB0byBKU09OIHN0cmluZ3MgZm9yIGZ1bGwgY29tcGFyaXNvblxyXG4gICAgICB0YWJsZS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpdGVtID0ge1xyXG4gICAgICAgICAgc3RvcmVOYW1lOiBpdGVtPy5zdG9yZU5hbWUsXHJcbiAgICAgICAgICBzdG9yZUlkOiBpdGVtLnN0b3JlSWQsXHJcbiAgICAgICAgICB1c2VyRW1haWw6IGl0ZW0udXNlckVtYWlsLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgICB1c2VyTmFtZTogaXRlbS51c2VyTmFtZSxcclxuICAgICAgICAgIF9pZDppdGVtLl9pZFxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgIF9pZDogaXRlbS5faWQsXHJcbiAgICAgICAgICAuLi4odGhpcy5zdG9yZUNvdmVyYWdlKT8geyB1c2VyRW1haWw6IGl0ZW0udXNlckVtYWlsLnRvTG93ZXJDYXNlKCkgLHN0b3JlTmFtZTogaXRlbT8uc3RvcmVOYW1lfTp7fSxcclxuICAgICAgICB9IFxyXG4gICAgICAgIGxldCBrZXkgPSBKU09OLnN0cmluZ2lmeShkYXRhKTsgLy8gQ29udmVydCBlbnRpcmUgb2JqZWN0IHRvIHN0cmluZyBhcyBhIGtleVxyXG4gICAgICAgIGlmICghdW5pcXVlVGFibGUuaGFzKGRhdGEpKSB7XHJcbiAgICAgICAgICB1bmlxdWVUYWJsZS5zZXQoa2V5LCBpdGVtKTsgLy8gU3RvcmUgdGhlIG9iamVjdCBvbmx5IGlmIGl0J3MgY29tcGxldGVseSB1bmlxdWVcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFzc2lnblNpbmdsZSA9IEFycmF5LmZyb20odW5pcXVlVGFibGUudmFsdWVzKCkpO1xyXG4gICAgICB0aGlzLnRhYmxlQXJyYXkgPSB0aGlzLmFzc2lnblNpbmdsZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy51cGxvYWQgPT09ICd1cGxvYWQnKSB7XHJcbiAgICAgIHRoaXMudGFibGVBcnJheSA9IHRoaXMuYXNzaWduU2luZ2xlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJsZUFycmF5ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduO1xyXG4gICAgICB0aGlzLmFzc2lnblNpbmdsZSA9IHRoaXMudGFibGVBcnJheTtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVBcnJheT8ubGVuZ3RoID8gdGhpcy5zaG93SW1hZ2UgPSBmYWxzZSA6IHRoaXMuc2hvd0ltYWdlID0gdHJ1ZTtcclxuICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gdGhpcy50YWJsZUFycmF5Lmxlbmd0aDtcclxuICAgIGlmKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplID0gW3RoaXMucmVjb3Jkc1RvdGFsXTtcclxuICAgICAgdGhpcy5zaXplID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFs1LDEwLDE1LDIwXTtcclxuICAgICAgdGhpcy5zaXplID0gNTtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVMb2FkaW5nMSA9IGZhbHNlO1xyXG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlQXJyYXkuc2xpY2UoKHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplKSAtIHRoaXMuc2l6ZSwgdGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpO1xyXG4gIH1cclxuXHJcbiAgYWNjb3JkaWFuKGluZGV4OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNob3cgPT0gaW5kZXgpIHtcclxuICAgICAgdGhpcy5zaG93ID0gLTE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3cgPSBpbmRleDtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbmZpZ2FjY29yZGlhbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd2NvbmZpZyA9ICF0aGlzLnNob3djb25maWc7XHJcbiAgfVxyXG4gIGFkdmFuY2VhY2NvcmRpYW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dhZHZhbmNlID0gIXRoaXMuc2hvd2FkdmFuY2U7XHJcbiAgfVxyXG4gIENoZWNrbGlzdCgpIHtcclxuICAgIC8vIHRoaXMubW9iaWxldXNhZ2VkZXRlY3Rpb24gPSB0cnVlO1xyXG4gICAgLy8gdGhpcy5zdG9yZW9wZW5hbmRjbG9zZWRldGVjdGlvbiA9IGZhbHNlO1xyXG4gIH1cclxuICBvbWl0X3NwZWNpYWxfY2hhcihldmVudDogYW55KSB7XHJcbiAgICB2YXIgaztcclxuICAgIGsgPSBldmVudC5jaGFyQ29kZTsgIC8vICAgICAgICAgayA9IGV2ZW50LmtleUNvZGU7ICAoQm90aCBjYW4gYmUgdXNlZClcclxuICAgIHJldHVybiAoayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1NykpO1xyXG5cclxuICB9XHJcblxyXG4gIGNsaWNrQUljb25maWd1cmUodmFsdWU6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYXNzaWduQ29uZmlnID0gdmFsdWU7XHJcbiAgICB0aGlzLmNvbmZpZ3VyZVR5cGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVMaW1pdChldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlIDwgMTUgJiYgdGhpcy50eXBlID09J21vYmlsZXVzYWdlZGV0ZWN0aW9uJykge1xyXG4gICAgICAvLyBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5lcnJvcm1zZyA9IHRydWU7XHJcbiAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsZXJ0LnVzYWdlRXhjZWVkcyA9ICcnO1xyXG4gICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09ICdzdG9yZW9wZW5hbmRjbG9zZScgJiYgIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgJiYgIXRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCdWZmZXIgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5lcnJvcm1zZyA9IGZhbHNlO1xyXG5cclxuICB9XHJcblxyXG4gIGNvdmVyYWdlOiBhbnkgPSAnc3RvcmUnO1xyXG5cclxuICBzZWxlY3RSYWRpbyhkYXRhOiBhbnksIGNoYW5nZT86IGFueSkge1xyXG4gICAgdGhpcy5jb3ZlcmFnZSA9IGRhdGE7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgdGhpcy50YWJsZUZpbHRlciA9ICcnO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID0gW107XHJcbiAgICB0aGlzLnRhYmxlQXJyYXkgPSBbXTtcclxuICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICBpZiAoZGF0YSA9PT0gJ3N0b3JlJykge1xyXG4gICAgICB0aGlzLnN0b3JlQ292ZXJhZ2UgPSB0cnVlO1xyXG4gICAgICB0aGlzLnVzZXJDb3ZlcmFnZSA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmIChkYXRhID09PSAndXNlcicpIHtcclxuICAgICAgdGhpcy51c2VyQ292ZXJhZ2UgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN0b3JlQ292ZXJhZ2UgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0SW5pdGlhbFRhYigpO1xyXG4gICAgaWYgKHRoaXMuY292ZXJhZ2UgPT09IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvdmVyYWdlKSB7XHJcbiAgICAgIHRoaXMuc2luZ2xlQXNzaWduID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2luZ2xlQXNzaWduO1xyXG4gICAgICB0aGlzLmdyb3VwQXNzaWduID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZ3JvdXBBc3NpZ247XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXNzaWduVHlwZSA/IHRoaXMudXNlckRldGFpbHMoKSA6ICcnO1xyXG4gICAgICB9LCAzMDAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2luZ2xlQXNzaWduID0gW107IHRoaXMuZ3JvdXBBc3NpZ24gPSBbXTsgdGhpcy5hc3NpZ25TaW5nbGUgPSBbXSwgdGhpcy5hc3NpZ25Hcm91cCA9IFtdOyB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7IHRoaXMuc2hvd0ltYWdlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0YXNzaWduRHJvcGRvd24oKTtcclxuICB9XHJcblxyXG4gIGV4Y2VsRGF0YTogYW55O1xyXG4gIHNob3dVc2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd1RlYW06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93U3RvcmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93Q2x1c3RlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBvbkZpbGVVcGxvYWQoZXZlbnQ6IGFueSwgcmV1cGxvYWQ/OiBhbnkpIHtcclxuICAgIHRoaXMudmFsaWRhdGVkU3RvcmUgPSBbXTtcclxuICAgIHRoaXMudmFsaWRhdGVkVXNlciA9IFtdO1xyXG4gICAgdGhpcy52YWxpZGF0ZWRDbHVzdGVyID0gW107XHJcbiAgICB0aGlzLnZhbGlkYXRlZFRlYW0gPSBbXTtcclxuICAgIHRoaXMubmV3VXNlciA9IFtdO1xyXG4gICAgdGhpcy5pbmFjdGl2ZVN0b3JlcyA9IFtdO1xyXG4gICAgdGhpcy5zaG93VXNlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93VGVhbSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93U3RvcmUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0NsdXN0ZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0luYWN0aXZlID0gZmFsc2U7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgICB0aGlzLnJldXBsb2FkID0gZmFsc2U7XHJcbiAgICB0aGlzLnVwbG9hZCA9ICd1cGxvYWQnO1xyXG4gICAgdGhpcy51c2VyRGF0YSA9IHRoaXMuZXhjZWxVc2VyRGF0YSA9IFtdO1xyXG4gICAgbGV0IGRhdGE6IGFueTtcclxuICAgIGNvbnN0IHRhcmdldDogRGF0YVRyYW5zZmVyID0gPERhdGFUcmFuc2Zlcj4oZXZlbnQudGFyZ2V0KTtcclxuICAgIGxldCBpc0V4Y2VsRmlsZSA9ICEhdGFyZ2V0LmZpbGVzWzBdLm5hbWUubWF0Y2goLygueGxzfC54bHN4KS8pO1xyXG4gICAgbGV0IGVycm9yOiBhbnkgPSBbXTtcclxuICAgIGxldCBWYWxpZGF0aW9uRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmIChpc0V4Y2VsRmlsZSkge1xyXG4gICAgICBjb25zdCByZWFkZXI6IEZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgYnN0cjogc3RyaW5nID0gZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScgfSk7XHJcbiAgICAgICAgY29uc3Qgd3NuYW1lOiBzdHJpbmcgPSB3Yi5TaGVldE5hbWVzWzBdO1xyXG4gICAgICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWVdO1xyXG4gICAgICAgIGRhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MpO1xyXG4gICAgICAgIHRoaXMuZXhjZWxEYXRhID0gZGF0YTtcclxuICAgICAgICBpZighZGF0YS5sZW5ndGggfHwgKGRhdGEuc29tZSgoaXRlbTogYW55KSA9PiAnY2x1c3Rlck5hbWUnIGluIGl0ZW0gfHwgJ3RlYW1OYW1lJyBpbiBpdGVtKSkpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIFVwbG9hZCBhIFZhbGlkIGZpbGUuJylcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkS2V5cyA9IHRoaXMuc3RvcmVDb3ZlcmFnZSA/IFsnc3RvcmVOYW1lJywndXNlck5hbWUnLCAndXNlckVtYWlsJ10gOiBbJ3VzZXJOYW1lJywgJ3VzZXJFbWFpbCddOyAvLyBNdXN0IGFsd2F5cyBiZSBwcmVzZW50XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uYWxLZXlzID0gdGhpcy5zdG9yZUNvdmVyYWdlID8gWyd1c2VyUGhvbmUnLCAnY2l0eSddIDogWyd1c2VyUGhvbmUnLCAnY2l0eSddO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSBkYXRhLnNvbWUoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGl0ZW0pO1xyXG4gICAgICAgICAgY29uc3QgaGFzUmVxdWlyZWRLZXlzID0gcmVxdWlyZWRLZXlzLmV2ZXJ5KGtleSA9PiBrZXlzLmluY2x1ZGVzKGtleSkpO1xyXG4gICAgICAgICAgY29uc3QgYWxsS2V5c0FyZUFsbG93ZWQgPSBrZXlzLmV2ZXJ5KGtleSA9PiBcclxuICAgICAgICAgICAgcmVxdWlyZWRLZXlzLmluY2x1ZGVzKGtleSkgfHwgb3B0aW9uYWxLZXlzLmluY2x1ZGVzKGtleSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXR1cm4gaGFzUmVxdWlyZWRLZXlzICYmIGFsbEtleXNBcmVBbGxvd2VkO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoIWlzVmFsaWQpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIFVwbG9hZCBhIFZhbGlkIGZpbGUuJyk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkYXRhID0gZGF0YS5maWx0ZXIoKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgICAgLy8gICByZXR1cm4gKChpdGVtPy5zdG9yZU5hbWUgJiYgaXRlbT8uc3RvcmVOYW1lLnRyaW0oKSAhPSAnJyAmJiBpdGVtPy5zdG9yZU5hbWUudHJpbSgpICE9IG51bGwpIHx8IChpdGVtPy51c2VyTmFtZSAmJiBpdGVtPy51c2VyTmFtZS50cmltKCkgIT0gJycgJiYgaXRlbT8udXNlck5hbWUudHJpbSgpICE9IG51bGwpIHx8IChpdGVtPy51c2VyRW1haWwgJiYgaXRlbT8udXNlckVtYWlsLnRyaW0oKSAhPSAnJyAmJiBpdGVtPy51c2VyRW1haWwudHJpbSgpICE9IG51bGwpKVxyXG4gICAgICAgIC8vIH0pXHJcbiAgXHJcbiAgICAgICAgZGF0YS5mb3JFYWNoKChlbGVtZW50OiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyRW1haWwpIHtcclxuICAgICAgICAgICAgZWxlbWVudC51c2VyRW1haWwgPSBlbGVtZW50Py51c2VyRW1haWwucmVwbGFjZSgvXFxzL2csJycpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc3RvcmVDb3ZlcmFnZSkge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Py5zdG9yZU5hbWU/LnRyaW0oKSA9PSAnJyB8fCBlbGVtZW50LnN0b3JlTmFtZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFN0b3JlTmFtZSAtIEEke2luZGV4KzJ9YClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQ/LnVzZXJOYW1lLnRyaW0oKSA9PSAnJyB8fCBlbGVtZW50LnVzZXJOYW1lID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgVXNlck5hbWUgLSBCJHtpbmRleCsyfWApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyRW1haWw/LnRyaW0oKSA9PSAnJyB8fCBlbGVtZW50LnVzZXJFbWFpbCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIHVzZXJFbWFpbCAtIEMke2luZGV4KzJ9YClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQ/LnVzZXJFbWFpbCAmJiAhZWxlbWVudC51c2VyRW1haWwubWF0Y2goL15bYS16QS1aMC05Ll8tXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLDZ9JC8pKSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIHVzZXJFbWFpbCAtIEMke2luZGV4KzJ9YClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuY2x1c3Rlck5hbWUpIHtcclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmNsdXN0ZXJOYW1lLnRyaW0oKSA9PSAnJyB8fCBlbGVtZW50LmNsdXN0ZXJOYW1lID09IG51bGwpIHsgZXJyb3IucHVzaChgSW52YWxpZCBjbHVzdGVyTmFtZSAtIEQke2luZGV4ICsgMn1gKSB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51c2VyQ292ZXJhZ2UgJiYgIWVsZW1lbnQ/LnN0b3JlTmFtZSkge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Py51c2VyTmFtZT8udHJpbSgpID09ICcnIHx8IGVsZW1lbnQudXNlck5hbWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgZXJyb3IucHVzaChgSW52YWxpZCBVc2VyTmFtZSAtIEEke2luZGV4KzJ9YClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQ/LnVzZXJFbWFpbD8udHJpbSgpID09ICcnIHx8IGVsZW1lbnQudXNlckVtYWlsID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgdXNlckVtYWlsIC0gQiR7aW5kZXgrMn1gKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudD8udXNlckVtYWlsICYmICFlbGVtZW50LnVzZXJFbWFpbC5tYXRjaCgvXlthLXpBLVowLTkuXy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsNn0kLykpIHtcclxuICAgICAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgdXNlckVtYWlsIC0gQiR7aW5kZXgrMn1gKVxyXG4gICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudGVhbU5hbWUpIHtcclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnRlYW1OYW1lLnRyaW0oKSA9PSAnJyB8fCBlbGVtZW50LnRlYW1OYW1lID09IG51bGwpIHsgZXJyb3IucHVzaChgSW52YWxpZCB0ZWFtTmFtZSAtIEMke2luZGV4ICsgMn1gKSB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZS4nKVxyXG4gICAgICAgICAgICBWYWxpZGF0aW9uRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc3RvcmVDb3ZlcmFnZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hc3NpZ25UeXBlID09PSAnc3RvcmUnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHN0b3JlTmFtZTogZWxlbWVudD8uc3RvcmVOYW1lPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyTmFtZTogZWxlbWVudD8udXNlck5hbWU/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogZWxlbWVudD8udXNlckVtYWlsPy50b0xvd2VyQ2FzZSgpPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyUGhvbmU6IGVsZW1lbnQ/LnVzZXJQaG9uZSxcclxuICAgICAgICAgICAgICAgIC8vIGNoZWNrRmxhZzogZWxlbWVudD8uY2hlY2sgPyBlbGVtZW50LmNoZWNrIDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjaXR5OiBlbGVtZW50Py5jaXR5LFxyXG4gICAgICAgICAgICAgICAgdHlwZTonc3RvcmUnXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgc3RvcmVOYW1lOiBlbGVtZW50Py5zdG9yZU5hbWU/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHVzZXJOYW1lOiBlbGVtZW50Py51c2VyTmFtZT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdXNlckVtYWlsOiBlbGVtZW50Py51c2VyRW1haWw/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIGNsdXN0ZXJOYW1lOiBlbGVtZW50Py5jbHVzdGVyTmFtZSxcclxuICAgICAgICAgICAgICAgIHVzZXJQaG9uZTogZWxlbWVudD8udXNlclBob25lLFxyXG4gICAgICAgICAgICAgICAgLy8gY2hlY2tGbGFnOiBlbGVtZW50Py5jaGVjayA/IGVsZW1lbnQuY2hlY2sgOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGNpdHk6IGVsZW1lbnQ/LmNpdHksXHJcbiAgICAgICAgICAgICAgICB0eXBlOidjbHVzdGVyJ1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51c2VyQ292ZXJhZ2UpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHVzZXJOYW1lOiBlbGVtZW50Py51c2VyTmFtZT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdXNlckVtYWlsOiBlbGVtZW50Py51c2VyRW1haWw/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgIHVzZXJQaG9uZTogZWxlbWVudD8udXNlclBob25lLFxyXG4gICAgICAgICAgICAgICAgLy8gY2hlY2tGbGFnOiBlbGVtZW50Py5jaGVjayA/IGVsZW1lbnQuY2hlY2sgOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHR5cGU6J3VzZXInXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgdXNlck5hbWU6IGVsZW1lbnQ/LnVzZXJOYW1lPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGVsZW1lbnQ/LnVzZXJFbWFpbD8udG9Mb3dlckNhc2UoKT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgdGVhbU5hbWU6IGVsZW1lbnQ/LnRlYW1OYW1lLFxyXG4gICAgICAgICAgICAgICAgdXNlclBob25lOiBlbGVtZW50Py51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgICAgICAvLyBjaGVja0ZsYWc6IGVsZW1lbnQ/LmNoZWNrID8gZWxlbWVudC5jaGVjayA6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RlYW1zJ1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChlcnJvci5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKTtcclxuICAgICAgICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICBpbWFnZXNyYzogIGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgICAgICB0aXRsZTogYEludmFsaWQgZGV0YWlscyFgLFxyXG4gICAgICAgICAgICBjb250ZW50OiBgUGxlYXNlIHByb3ZpZGUgY29ycmVjdCBhbmQgY29tcGxldGUgc3RvcmUgaW5mb3JtYXRpb24uYCxcclxuICAgICAgICAgICAgYnV0dG9udHlwZTogJ2Vycm9yJyxcclxuICAgICAgICAgICAgZXJyb3I6ZXJyb3JcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuYWZ0ZXJVcGxsb2FkKHBvcHVwY29udGVudClcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAhVmFsaWRhdGlvbkVycm9yID8gdGhpcy5hZnRlclVwbGxvYWQoKSA6ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgVXBsb2FkIGEgRXhjZWwgZmlsZS4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlVXNlckRldGFpbHMoZGVsPzphbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGlkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBhc3NpZ25lZFVzZXJzOiB0aGlzLnVzZXJEYXRhLFxyXG4gICAgICB1cGxvYWRVc2VyOiB0cnVlLFxyXG4gICAgICB0eXBlOiB0aGlzLm9iaj8udHlwZSAmJiBbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnc3RvcmVvcGVuYW5kY2xvc2UnXS5pbmNsdWRlcyh0aGlzLm9iai50eXBlKSA/IHRoaXMub2JqLnR5cGUgOiAnJyxcclxuICAgICAgLi4uKGRlbCkgPyB7ZGVsZXRlOmZhbHNlfSA6IHt9LFxyXG4gICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICB9XHJcbiAgICB0aGlzLlNvcFNlcnZpY2UudmFsaWRhdGVVc2VyKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGxldCB2YWxpZGF0ZTpCb29sZWFuID0gdHJ1ZTtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKCk7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgIGlmIChyZXM/LmRhdGE/LkV4aXN0c0VtYWlsPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChyZXM/LmRhdGE/LkV4aXN0c0VtYWlsLmpvaW4oJywgJykgKyAnICcgKyByZXM/LmRhdGE/Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlcz8uZGF0YT8uaWQpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLl9pZCA9IHJlcy5kYXRhLmlkO1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RJZCA9IHJlcy5kYXRhLmlkO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2VycyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy51c2VyRGV0YWlscygpO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHJlcz8uZGF0YT8uZG9tYWluLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBsZXQgZW1haWwgPSByZXM/LmRhdGE/LmRvbWFpbi5tYXAoKGl0ZW06YW55KSA9PiBpdGVtLmVtYWlsKVxyXG4gICAgICAgICAgICAvLyArJyAnKyc8YSBocmVmPVwicHJvZmlsZS9kb21haW5zXCI+QWRkIGRvbWFpbjwvYT4nXHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlbWFpbC5qb2luKCcsICcpICsgJyAnICsgJ0RvbWFpbiBpcyBub3QgRXhpc3RzLicpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmIChyZXM/LmRhdGE/LnVzZXI/Lmxlbmd0aCAmJiByZXM/LmRhdGE/LnN0b3JlPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IHBvcHVwY29udGVudDtcclxuICAgICAgICAgICAgbGV0IHN0b3JlOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgbGV0IGluYWN0aXZlU3RvcmU6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICBzdG9yZSA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSA9PSAnJztcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBpbmFjdGl2ZVN0b3JlID0gcmVzLmRhdGEuc3RvcmUuZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gaXRlbS5tZXNzYWdlID09ICdzdG9yZSBpcyBpbmFjdGl2ZSdcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBsb2NhdGlvbiA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSAhPSAnJyAmJiBpdGVtLm1lc3NhZ2UgIT0gJ3N0b3JlIGlzIGluYWN0aXZlJztcclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICBzdG9yZSA9IFsuLi5uZXcgU2V0KHN0b3JlLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnN0b3JlKSldO1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVN0b3JlID0gWy4uLiBuZXcgU2V0KGluYWN0aXZlU3RvcmUubWFwKChpdGVtOmFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgbG9jYXRpb24gPSBbLi4ubmV3IFNldChsb2NhdGlvbi5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgaWYgKHN0b3JlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIGxldCB0aXRsZSA9IGBOZXcgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWBcclxuICAgICAgICAgICAgICBpZihpbmFjdGl2ZVN0b3JlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGl0bGUgPSBgTmV3IFN0b3JlIGFuZCBJbmFjdGl2ZSBTdG9yZSBmb3VuZCBpbiB1cGxvYWRlZCBmaWxlYFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBpbWFnZXNyYzogJycsXHJcbiAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgVGhpcyBDU1YgY29udGFpbnMgYSBuZXcgc3RvcmUuIEFkZCBuZXcgc3RvcmVzIGluIHRoZSBTdG9yZSBNYW5hZ2VtZW50IHVuZGVyIE1hbmFnZSBtZW51LmAsXHJcbiAgICAgICAgICAgICAgICBidXR0b250eXBlOiAnQWRkc3RvcmUnLFxyXG4gICAgICAgICAgICAgICAgc3VidGl0bGU6IHN0b3JlLmpvaW4oJywgJyksXHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjogbG9jYXRpb24uam9pbigpLFxyXG4gICAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZXM6aW5hY3RpdmVTdG9yZS5qb2luKClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZihpbmFjdGl2ZVN0b3JlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBgSW5hY3RpdmUgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWAsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgSW5hY3RpdmUgc3RvcmVzIGZvdW5kIGluIHRoZSAuY3N2LiBQbGVhc2UgYWN0aXZhdGUgb3Igc2tpcCB0aGVtIHRvIHByb2NlZWQgdG8gYXNzaWduLmAsXHJcbiAgICAgICAgICAgICAgICBidXR0b250eXBlOiAnQWN0aXZlc3RvcmUnLFxyXG4gICAgICAgICAgICAgICAgc3VidGl0bGU6IGluYWN0aXZlU3RvcmUuam9pbignLCAnKSxcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHBvcHVwY29udGVudCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyxiYWNrZHJvcCA6ICdzdGF0aWMnXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gJ2NvbmZpcm1TdG9yZScpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzL2FkZGl0aW9uLW1ldGhvZGApXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gJ2FjdGl2ZVN0b3JlJykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYG1hbmFnZS9zdG9yZXNgKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFsaWRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAnc2tpcCcpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICB1c2VyRGF0YUNvcHkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdG9yZS5pbmNsdWRlcyhpdGVtLnN0b3JlTmFtZSkgJiYgIWluYWN0aXZlU3RvcmUuaW5jbHVkZXMoaXRlbS5zdG9yZU5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnVzZXJEYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIEVudGVyIHZhbGlkIERldGFpbHMnKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGxldCB1c2VyRGV0YWlscyA9IHRoaXMudXNlckRhdGEubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0udXNlckVtYWlsKTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHVzZXIgPSBbLi4ucmVzLmRhdGEudXNlcl07XHJcbiAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLnVzZXIgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgdXNlci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodXNlckRldGFpbHMuaW5jbHVkZXMoaXRlbS51c2VyRW1haWwpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS51c2VyLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEudXNlci5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYEludml0ZSBuZXcgdXNlcnMgYWRkZWQgaW4gQ1NWYCxcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBuZXcgdXNlcnMuIEludml0ZSB1c2VycyBieSBzZW5kaW5nIG1haWwgdG8gdGhlbWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICBidXR0b250eXBlOiAnSW52aXRlJyxcclxuICAgICAgICAgICAgICAgICAgICAgIHVzZXI6IHJlcy5kYXRhLnVzZXJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnLGJhY2tkcm9wIDogJ3N0YXRpYydcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgICAgICAgICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdD8ubWVzc2FnZSA9PSAnY29uZmlybScgfHwgcmVzdWx0ID09ICdza2lwJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09ICdza2lwJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGFDb3B5LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyRGV0YWlscy5pbmNsdWRlcyhpdGVtLnVzZXJFbWFpbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py51c2VyLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy51c2VyRGF0YS5maW5kSW5kZXgoKHVzZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXNlci51c2VyRW1haWwgPT0gaXRlbS51c2VyRW1haWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZW0uaW52aXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckRhdGEuc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaXRlbSBvZiByZXMuZGF0YS51c2VyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbT8ubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYCR7aXRlbS51c2VyRW1haWx9IC0gJHtpdGVtLm1lc3NhZ2V9YClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy51c2VyRGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYFBsZWFzZSBFbnRlciB2YWxpZCBEZXRhaWxzYClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmIChyZXM/LmRhdGE/LnVzZXI/Lmxlbmd0aCB8fCByZXM/LmRhdGE/LnN0b3JlPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdmFsaWRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IHBvcHVwY29udGVudDtcclxuICAgICAgICAgICAgbGV0IHN0b3JlOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uOiBhbnkgPSBbXTtcclxuICAgICAgICAgICAgbGV0IGluYWN0aXZlU3RvcmU6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICBpZiAocmVzPy5kYXRhPy51c2VyPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICB0aXRsZTogYEludml0ZSBuZXcgdXNlcnMgYWRkZWQgaW4gQ1NWYCxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBuZXcgdXNlcnMuIEludml0ZSB1c2VycyBieSBzZW5kaW5nIG1haWwgdG8gdGhlbWAsXHJcbiAgICAgICAgICAgICAgICBidXR0b250eXBlOiAnSW52aXRlJyxcclxuICAgICAgICAgICAgICAgIHVzZXI6IHJlcy5kYXRhLnVzZXJcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgc3RvcmUgPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSA9PSAnJztcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZSA9IHJlcy5kYXRhLnN0b3JlLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5tZXNzYWdlID09ICdzdG9yZSBpcyBpbmFjdGl2ZSdcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgLy8gbG9jYXRpb24gPSByZXMuZGF0YS5zdG9yZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIC8vICAgcmV0dXJuIGl0ZW0ubWVzc2FnZSAhPSAnJztcclxuICAgICAgICAgICAgICAvLyB9KTtcclxuXHJcbiAgICAgICAgICAgICAgc3RvcmUgPSBbLi4ubmV3IFNldChzdG9yZS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgICBpbmFjdGl2ZVN0b3JlID0gWy4uLiBuZXcgU2V0KGluYWN0aXZlU3RvcmUubWFwKChpdGVtOmFueSkgPT4gaXRlbS5zdG9yZSkpXTtcclxuICAgICAgICAgICAgICBsb2NhdGlvbiA9IFsuLi5uZXcgU2V0KGxvY2F0aW9uLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnN0b3JlKSldO1xyXG4gICAgICAgICAgICAgIGlmIChzdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IGBOZXcgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWBcclxuICAgICAgICAgICAgICAgIGlmKGluYWN0aXZlU3RvcmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlID0gYE5ldyBTdG9yZSBhbmQgSW5hY3RpdmUgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgICAgY29udGVudDogYFRoaXMgQ1NWIGNvbnRhaW5zIGEgbmV3IHN0b3JlLiBBZGQgbmV3IHN0b3JlcyBpbiB0aGUgU3RvcmUgTWFuYWdlbWVudCB1bmRlciBNYW5hZ2UgbWVudS5gLFxyXG4gICAgICAgICAgICAgICAgICBidXR0b250eXBlOiAnQWRkc3RvcmUnLFxyXG4gICAgICAgICAgICAgICAgICBzdWJ0aXRsZTogc3RvcmUuam9pbignLCAnKSxcclxuICAgICAgICAgICAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uLmpvaW4oKSxcclxuICAgICAgICAgICAgICAgICAgaW5hY3RpdmVTdG9yZXM6aW5hY3RpdmVTdG9yZS5qb2luKClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYoaW5hY3RpdmVTdG9yZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBgSW5hY3RpdmUgU3RvcmUgZm91bmQgaW4gdXBsb2FkZWQgZmlsZWAsXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBJbmFjdGl2ZSBzdG9yZXMgZm91bmQgaW4gdGhlIC5jc3YuIFBsZWFzZSBhY3RpdmF0ZSBvciBza2lwIHRoZW0gdG8gcHJvY2VlZCB0byBhc3NpZ24uYCxcclxuICAgICAgICAgICAgICAgICAgYnV0dG9udHlwZTogJ0FjdGl2ZXN0b3JlJyxcclxuICAgICAgICAgICAgICAgICAgc3VidGl0bGU6IGluYWN0aXZlU3RvcmUuam9pbignLCAnKSxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgdXNlckRhdGFDb3B5ID0gWy4uLnRoaXMudXNlckRhdGFdO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgc3RvcmVfaWQ6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICBsb2NhdGlvbi5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGV0YWlscyA9IHVzZXJEYXRhQ29weS5maW5kKChzdG9yZTogYW55KSA9PiBpdGVtID09IHN0b3JlLnN0b3JlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRldGFpbHMuY2l0eSA9PSB1bmRlZmluZWQgfHwgZGV0YWlscy5jaXR5ID09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdG9yZV9pZC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKHN0b3JlX2lkLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChgQ2l0eSBpcyByZXF1aXJlZCBvbiB0aGlzIHN0b3JlcyAke3N0b3JlX2lkLmpvaW4oKX1gKTtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEudXBsb2FkVXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRVc2VyKGRlbCk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHBvcHVwY29udGVudCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyxiYWNrZHJvcCA6ICdzdGF0aWMnXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gJ2NvbmZpcm1TdG9yZScpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGBtYW5hZ2Uvc3RvcmVzL2FkZGl0aW9uLW1ldGhvZGApXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gJ2FjdGl2ZVN0b3JlJykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYG1hbmFnZS9zdG9yZXNgKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdD8ubWVzc2FnZSA9PSAnY29uZmlybScgfHwgcmVzdWx0ID09ICdza2lwJykge1xyXG4gICAgICAgICAgICAgICAgICB2YWxpZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gJ3NraXAnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXRhQ29weSA9IFsuLi50aGlzLnVzZXJEYXRhXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcz8uZGF0YT8udXNlcj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgdXNlckRldGFpbHMgPSByZXMuZGF0YS51c2VyLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnVzZXJFbWFpbClcclxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhQ29weS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyRGV0YWlscy5pbmNsdWRlcyhpdGVtLnVzZXJFbWFpbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJEYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAobG9jYXRpb24ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RvcmVfaWQ6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzID0gdXNlckRhdGFDb3B5LmZpbmQoKHN0b3JlOiBhbnkpID0+IGl0ZW0gPT0gc3RvcmUuc3RvcmVOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRldGFpbHMuY2l0eSA9PSB1bmRlZmluZWQgfHwgZGV0YWlscy5jaXR5ID09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVfaWQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChzdG9yZV9pZC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGBDaXR5IGlzIHJlcXVpcmVkIG9uIHRoaXMgc3RvcmVzICR7c3RvcmVfaWQuam9pbigpfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LnN0b3JlPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhQ29weS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdG9yZS5pbmNsdWRlcyhpdGVtLnN0b3JlTmFtZSkgJiYgIWluYWN0aXZlU3RvcmUuaW5jbHVkZXMoaXRlbS5zdG9yZU5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQ/LnVzZXIuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnVzZXJEYXRhLmZpbmRJbmRleCgodXNlcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1c2VyLnVzZXJFbWFpbCA9PSBpdGVtLnVzZXJFbWFpbFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgIGlmICghaXRlbS5pbnZpdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyRGF0YS5zcGxpY2UoaW5kZXgsIDEpXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpdGVtIG9mIHJlcy5kYXRhLnVzZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtPy5tZXNzYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChgJHtpdGVtLnVzZXJFbWFpbH0gLSAke2l0ZW0ubWVzc2FnZX1gKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnVzZXJEYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgRW50ZXIgdmFsaWQgRGV0YWlscycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS51cGxvYWRVc2VyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFVzZXIoZGVsKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLnVwbG9hZFVzZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgICAgICB0aGlzLmZpbGVJbnB1dDEubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudXBsb2FkVXNlcihkZWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH0sKGVycm9yKSA9PiB7XHJcbiAgICAgIGlmKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycm9yLmVycm9yLmVycm9yKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZWRTdG9yZTogYW55ID0gW107XHJcbiAgdmFsaWRhdGVkVXNlcjogYW55ID0gW107XHJcbiAgdmFsaWRhdGVkQ2x1c3RlcjogYW55ID0gW107XHJcbiAgdmFsaWRhdGVkVGVhbTogYW55ID0gW107XHJcbiAgbmV3VXNlcjogYW55ID0gW107XHJcbiAgaW5hY3RpdmVTdG9yZXM6IGFueSA9IFtdO1xyXG4gIHNob3dJbmFjdGl2ZTogYW55PSBmYWxzZSA7XHJcblxyXG4gIHZhbGlkYXRlRGV0YWlscyhhZGRVc2VyPzphbnkpIHtcclxuICAgIGxldCBwYXJhbXM6YW55ID0ge1xyXG4gICAgICAgIGNoZWNrbGlzdElkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICAgIGFzc2lnbmVkVXNlcnM6IHRoaXMudXNlckRhdGEsXHJcbiAgICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2VcclxuICAgICAgfVxyXG4gICAgYWRkVXNlciA/IHBhcmFtcy5hZGRVc2VyID0gdHJ1ZSA6ICcnO1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLnZhbGlkYXRlVXNlcnYxKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIGlmICh0aGlzLnVwbG9hZCA9PT0gJ3N0b3JlJykge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkudW5zaGlmdCguLi5yZXM/LmRhdGE/LmRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSB0aGlzLnRhYmxlQXJyYXk7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gdGhpcy50YWJsZUFycmF5Lm1hcCgoZWw6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHsgaWQ6IGVsPy5faWQsIHR5cGU6IGVsPy50eXBlIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGhpcy5pZExpc3QgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNpbmdsZUFzc2lnbiA9IHRoaXMuaWRMaXN0O1xyXG4gICAgICAgICAgICB0aGlzLmFzc2lnblR5cGUgPT09ICd1c2VyJyA/IHRoaXMuZ2V0YXNzaWduRHJvcGRvd24oJ2NoYW5nZScpIDogJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVEYXRhKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkgPSByZXM/LmRhdGE/LmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuYXNzaWduU2luZ2xlID0gcmVzPy5kYXRhPy5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ24gPSB0aGlzLnRhYmxlQXJyYXk7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gcmVzPy5kYXRhPy5kYXRhLm1hcCgoZWw6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHsgaWQ6IGVsPy5faWQsIHR5cGU6IGVsPy50eXBlIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGhpcy5pZExpc3QgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNpbmdsZUFzc2lnbiA9IHRoaXMuaWRMaXN0O1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFzc2lnblR5cGUgPT09ICd1c2VyJyA/IHRoaXMuZ2V0YXNzaWduRHJvcGRvd24oJ2NoYW5nZScpIDogJyc7IFxyXG4gICAgICAgICAgICB0aGlzLmdldFRhYmxlRGF0YSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpOyBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZXJyPy5lcnJvcj8uZXJyb3IgJiYgZXJyPy5lcnJvcj8uY29kZSA9PSA0MDApIHtcclxuICAgICAgICAgIGxldCBlcnJvckRhdGEgPSBlcnI/LmVycm9yPy5lcnJvcjtcclxuICAgICAgICAgIHRoaXMuZXhjZWxEYXRhID0gZXJyb3JEYXRhPy5kYXRhO1xyXG4gICAgICAgICAgdGhpcy51c2VyRGF0YSA9IGVycm9yRGF0YT8uZGF0YTtcclxuICAgICAgICAgIGlmIChlcnJvckRhdGEuZXhpc3RFbWFpbD8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChgQWxyZWFkeSAke2Vycm9yRGF0YS5leGlzdEVtYWlsLnRvU3RyaW5nKCl9IGFzc2lnbmVkIHRvIGFub3RoZXIgY2xpZW50YClcclxuICAgICAgICAgIH1lbHNlIGlmIChlcnJvckRhdGEuc3RvcmU/Lmxlbmd0aCAmJiAhZXJyb3JEYXRhLmV4aXN0RW1haWw/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlZFN0b3JlID0gZXJyb3JEYXRhPy5zdG9yZTtcclxuICAgICAgICAgICAgdGhpcy5zaG93U3RvcmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmFmdGVyVXBsbG9hZCgpO1xyXG4gICAgICAgICAgfWVsc2UgaWYgKGVycm9yRGF0YS5zdG9yZT8ubGVuZ3RoICYmIGVycm9yRGF0YS5leGlzdEVtYWlsPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgIWVycm9yRGF0YT8uaW5BY3RpdmVTdG9yZXM/Lmxlbmd0aCA/IHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKSA6ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYEFscmVhZHkgJHtlcnJvckRhdGEuc3RvcmUudG9TdHJpbmcoKX0gYXNzaWduZWQgdG8gYW5vdGhlciBjbGllbnRgKVxyXG4gICAgICAgICAgfWVsc2UgaWYgKGVycm9yRGF0YT8uaW5BY3RpdmVTdG9yZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmluYWN0aXZlU3RvcmVzID0gZXJyb3JEYXRhPy5pbkFjdGl2ZVN0b3JlcztcclxuICAgICAgICAgICAgdGhpcy5zaG93SW5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmFmdGVyVXBsbG9hZCgpO1xyXG4gICAgICAgICAgfWVsc2UgaWYgKGVycm9yRGF0YT8udXNlcj8ubGVuZ3RoICYmICFlcnJvckRhdGE/LmV4aXN0RW1haWw/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlZFVzZXIgPSBlcnJvckRhdGEudXNlcjtcclxuICAgICAgICAgICAgdGhpcy5zaG93VXNlciA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnVwbG9hZCA9PT0gJ3N0b3JlJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlybVVzZXJwb3B1cCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWZ0ZXJVcGxsb2FkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1lbHNlIGlmIChlcnJvckRhdGE/LnVzZXI/Lmxlbmd0aCAmJiBlcnJvckRhdGE/LmV4aXN0RW1haWw/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZy5kaXNtaXNzQWxsKCk7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChgQWxyZWFkeSAke2Vycm9yRGF0YT8udXNlci50b1N0cmluZygpfSBhc3NpZ25lZCB0byBhbm90aGVyIGNsaWVudGApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZXJyb3JEYXRhPy5kdXBsaWNhdGVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpO1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYCR7ZXJyb3JEYXRhPy5kdXBsaWNhdGVzPy50b1N0cmluZygpfSAtICR7ZXJyb3JEYXRhPy5tZXNzYWdlfWApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuXHJcbiAgfSBcclxuXHJcbiAgY2hlY2tCdWZmZXI6IGFueTtcclxuICBjaGFuZ2VCdWZmZXJUaW1lKGV2ZW50OmFueSkge1xyXG4gICAgdGhpcy5jaGVja0J1ZmZlciA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgaWYgKHRoaXMuY2hlY2tCdWZmZXIpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5vcGVuVGltZSA9IDE7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIuY2xvc2VUaW1lID0gMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgPSAwO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLmNsb3NlVGltZSA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZFRhYih2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnRhYmxlQXJyYXkgPSBbXTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nMSA9IHRydWU7XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5hc3NpZ25UeXBlID0gdmFsdWU7XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgdGhpcy50YWJsZUZpbHRlciA9ICcnO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID0gW107XHJcbiAgICB0aGlzLmdldGFzc2lnbkRyb3Bkb3duKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZWFjdGl2ZXBvcHVwKCkge1xyXG4gICAgdGhpcy5kaWFsb2cuZGlzbWlzc0FsbCgpO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkVXNlcihkZWw/OmFueSkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGlkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBhc3NpZ25lZFVzZXJzOiB0aGlzLnVzZXJEYXRhLFxyXG4gICAgICB1cGxvYWRVc2VyOiB0cnVlLFxyXG4gICAgICBhZGRVc2VyOiB0cnVlLFxyXG4gICAgICB0eXBlOiB0aGlzLm9iaj8udHlwZSAmJiBbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywgJ3N0b3Jlb3BlbmFuZGNsb3NlJ10uaW5jbHVkZXModGhpcy5vYmoudHlwZSkgPyB0aGlzLm9iai50eXBlIDogJycsXHJcbiAgICAgIC4uLihkZWwpID8ge2RlbGV0ZTpmYWxzZX0gOiB7fSxcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgfVxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLnZhbGlkYXRlVXNlcihkYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5faWQgPSByZXNwb25zZS5kYXRhLmlkO1xyXG4gICAgICAgIHRoaXMuY2hlY2tsaXN0SWQgPSByZXNwb25zZS5kYXRhLmlkO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSBbXTtcclxuICAgICAgICB0aGlzLnVzZXJEZXRhaWxzKCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0b3JlTGlzdDogYW55ID0gW107XHJcbiAgc2VhcmNoS2V5OiBhbnkgPSBbXTtcclxuXHJcbiAgZ2V0YXNzaWduRHJvcGRvd24oY2hhbmdlPzphbnkpIHtcclxuICAgIFxyXG4gICAgbGV0IGRhdGEgPSB7ICBcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBcImNvdmVyYWdlXCI6IHRoaXMuY292ZXJhZ2UsXHJcbiAgICAgIFwiYXNzaWduVHlwZVwiOiB0aGlzLmFzc2lnblR5cGVcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgICB0aGlzLlNvcFNlcnZpY2UuZ2V0YXNzaWduRHJvcGRvd24oZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5kYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcz8uZGF0YT8uZGF0YTtcclxuICAgICAgICAgaWYgKGRhdGE/LmNvdmVyYWdlID09PSAnc3RvcmUnKSB7XHJcbiAgICAgICAgICAgdGhpcy5zZWFyY2hLZXkgPSBbJ3N0b3JlTmFtZScsJ2NsdXN0ZXJOYW1lJ11cclxuICAgICAgICAgfSBlbHNlIGlmIChkYXRhPy5jb3ZlcmFnZSA9PT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaEtleSA9IFsndXNlck5hbWUnLCd0ZWFtTmFtZSddXHJcbiAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICFjaGFuZ2UgPyB0aGlzLmdldEluaXRpYWxEYXRhKCh0aGlzLmFzc2lnblR5cGUgPT09ICdzdG9yZScgfHwgdGhpcy5hc3NpZ25UeXBlID09PSAndXNlcicpID8gdGhpcy5zaW5nbGVBc3NpZ24gOiB0aGlzLmdyb3VwQXNzaWduLCBjaGFuZ2UgPyBjaGFuZ2UgOiAnJykgOiAnJztcclxuICAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gW107XHJcbiAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSBmYWxzZTtcclxuICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVDb3VudHMoZGF0YTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5zdG9yZUNvdmVyYWdlKSB7XHJcbiAgICAgIGNvbnN0IHVuaXF1ZVN0b3JlTmFtZXMgPSBuZXcgU2V0KGRhdGE/Lm1hcCgoaXRlbTphbnkpID0+IGl0ZW0uc3RvcmVOYW1lKSk7XHJcbiAgICAgIHJldHVybiB1bmlxdWVTdG9yZU5hbWVzLnNpemU7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudXNlckNvdmVyYWdlKSB7XHJcbiAgICAgIGNvbnN0IHVuaXF1ZVVzZXJOYW1lcyA9IG5ldyBTZXQoZGF0YT8ubWFwKChpdGVtOmFueSkgPT4gaXRlbS51c2VyTmFtZSkpO1xyXG4gICAgICByZXR1cm4gdW5pcXVlVXNlck5hbWVzLnNpemU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1c2VyRGV0YWlscygpIHtcclxuICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBpZDogdGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRVc2VyRGV0YWlsc1YxKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgIGlmIChyZXMgPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd0ltYWdlID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy50YWJsZUZpbHRlci5sZW5ndGgpXHJcbiAgICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVMb2FkaW5nMSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVCdG4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmVDb3ZlcmFnZSkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gcmVzLmRhdGEudXNlckRldGFpbHMuZmlsdGVyKChlbDogYW55KSA9PiBlbD8uY2x1c3Rlck5hbWUgPT0gJycgJiYgZWw/LnN0b3JlSWQgIT0gJycpO1xyXG4gICAgICAgICAgdGhpcy5hc3NpZ25Hcm91cCA9IHJlcy5kYXRhLnVzZXJEZXRhaWxzLmZpbHRlcigoZWw6IGFueSkgPT4gZWw/LmNsdXN0ZXJOYW1lICE9PSAnJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVzZXJDb3ZlcmFnZSkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gcmVzLmRhdGEudXNlckRldGFpbHMuZmlsdGVyKChlbDogYW55KSA9PiBlbD8udGVhbU5hbWUgPT0gJycgJiYgZWw/LnVzZXJOYW1lICE9ICcnKTtcclxuICAgICAgICAgIHRoaXMuYXNzaWduR3JvdXAgPSByZXMuZGF0YS51c2VyRGV0YWlscy5maWx0ZXIoKGVsOiBhbnkpID0+IGVsPy50ZWFtTmFtZSAhPT0gJycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmFzc2lnblNpbmdsZSA9IHRoaXMudGFibGVBcnJheTtcclxuICAgICAgICB0aGlzLnJlY29yZHNUb3RhbCA9IHRoaXMudGFibGVBcnJheS5sZW5ndGg7XHJcbiAgICAgICAgLy8gdGhpcy5yZWNvcmRzVG90YWwgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICBpZih0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgICAgdGhpcy5zaXplID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFs1LDEwLDE1LDIwXTtcclxuICAgICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZUFycmF5LnNsaWNlKCh0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSkgLSB0aGlzLnNpemUsIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplKTtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA/IHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2UgOiB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIHRoaXMuZ2V0SW5pdGlhbERhdGEoKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGRvd25sb2FkVGVtcGxhdGVWMigpIHtcclxuICAgIGxldCBleGNlbERhdGE6IGFueSA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5zdG9yZUNvdmVyYWdlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVBcnJheSA9PSBudWxsIHx8ICF0aGlzLnRhYmxlQXJyYXk/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gJ3N0b3JlJykge1xyXG4gICAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgc3RvcmVOYW1lOiAnJyxcclxuICAgICAgICAgICAgICB1c2VyTmFtZTogJycsXHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiAnJyxcclxuICAgICAgICAgICAgICB1c2VyUGhvbmU6ICcnLFxyXG4gICAgICAgICAgICAgIGNpdHk6JydcclxuICAgICAgICAgICAgfSkgXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgc3RvcmVOYW1lOiAnJyxcclxuICAgICAgICAgICAgICB1c2VyTmFtZTogJycsXHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiAnJyxcclxuICAgICAgICAgICAgICBjbHVzdGVyTmFtZTogJycsXHJcbiAgICAgICAgICAgICAgdXNlclBob25lOiAnJyxcclxuICAgICAgICAgICAgICBjaXR5OicnXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlQXJyYXkgJiYgdGhpcy50YWJsZUFycmF5Py5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMudGFibGVBcnJheS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gJ3N0b3JlJykge1xyXG4gICAgICAgICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHN0b3JlTmFtZTogaXRlbS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgICB1c2VyTmFtZTogaXRlbS51c2VyTmFtZSxcclxuICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwsXHJcbiAgICAgICAgICAgICAgICB1c2VyUGhvbmU6IGl0ZW0udXNlclBob25lLFxyXG4gICAgICAgICAgICAgICAgY2l0eTppdGVtLmNpdHlcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHN0b3JlTmFtZTogaXRlbS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgICB1c2VyTmFtZTogaXRlbS51c2VyTmFtZSxcclxuICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwsXHJcbiAgICAgICAgICAgICAgICBjbHVzdGVyTmFtZTogaXRlbS5jbHVzdGVyTmFtZSxcclxuICAgICAgICAgICAgICAgIHVzZXJQaG9uZTogaXRlbS51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgICAgICBjaXR5Oml0ZW0uY2l0eVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudXNlckNvdmVyYWdlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVBcnJheSA9PSBudWxsIHx8ICF0aGlzLnRhYmxlQXJyYXk/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXNzaWduVHlwZSA9PT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICB1c2VyTmFtZTogJycsXHJcbiAgICAgICAgICAgICAgdXNlckVtYWlsOiAnJyxcclxuICAgICAgICAgICAgICB1c2VyUGhvbmU6ICcnLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZXhjZWxEYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgIHVzZXJOYW1lOiAnJyxcclxuICAgICAgICAgICAgICB1c2VyRW1haWw6ICcnLFxyXG4gICAgICAgICAgICAgIHRlYW1OYW1lOiAnJyxcclxuICAgICAgICAgICAgICB1c2VyUGhvbmU6ICcnLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy50YWJsZUFycmF5ICYmIHRoaXMudGFibGVBcnJheT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlQXJyYXkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFzc2lnblR5cGUgPT09ICd1c2VyJykge1xyXG4gICAgICAgICAgICAgIGV4Y2VsRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHVzZXJOYW1lOiBpdGVtLnVzZXJOYW1lLFxyXG4gICAgICAgICAgICAgICAgdXNlckVtYWlsOiBpdGVtLnVzZXJFbWFpbCxcclxuICAgICAgICAgICAgICAgIHVzZXJQaG9uZTogaXRlbS51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBleGNlbERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICB1c2VyTmFtZTogaXRlbS51c2VyTmFtZSxcclxuICAgICAgICAgICAgICAgIHVzZXJFbWFpbDogaXRlbS51c2VyRW1haWwsXHJcbiAgICAgICAgICAgICAgICB0ZWFtTmFtZTogaXRlbS50ZWFtTmFtZSxcclxuICAgICAgICAgICAgICAgIHVzZXJQaG9uZTogaXRlbS51c2VyUGhvbmUsXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5Tb3BTZXJ2aWNlLmV4cG9ydEFzRXhjZWxGaWxlKGV4Y2VsRGF0YSwgYENoZWNrTGlzdF8ke3RoaXMuYXNzaWduVHlwZX1fYCk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gZXZlbnQ7XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVGaWx0ZXIpIHtcclxuICAgICAgLy8gdGhpcy5zZWFyY2hUYWJsZURhdGEoKTtcclxuICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSB0aGlzLnNlYXJjaFRhYmxlLmxlbmd0aDtcclxuICAgICAgaWYodGhpcy5yZWNvcmRzVG90YWwgPCA1KSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFt0aGlzLnJlY29yZHNUb3RhbF07XHJcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFs1LDEwLDE1LDIwXTtcclxuICAgICAgICB0aGlzLnNpemUgPSA1O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5zZWFyY2hUYWJsZS5zbGljZSgodGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpIC0gdGhpcy5zaXplLCB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSk7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID8gdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZSA6IHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZUFycmF5LnNsaWNlKCh0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSkgLSB0aGlzLnNpemUsIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplKTtcclxuICAgIHRoaXMudGFibGVEYXRhID8gdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZSA6IHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNpemUgPSBldmVudDtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVGaWx0ZXIpIHtcclxuICAgICAgdGhpcy5yZWNvcmRzVG90YWwgPSB0aGlzLnNlYXJjaFRhYmxlLmxlbmd0aDtcclxuICAgICAgaWYgKHRoaXMucmVjb3Jkc1RvdGFsIDwgNSkge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbdGhpcy5yZWNvcmRzVG90YWxdO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwgMTAsIDE1LCAyMF07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnNlYXJjaFRhYmxlLnNsaWNlKCh0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSkgLSB0aGlzLnNpemUsIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplKTtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPyB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlIDogdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVBcnJheS5zbGljZSgodGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpIC0gdGhpcy5zaXplLCB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSk7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID8gdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZSA6IHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb3BlbkRyb3Bkb3duKGV2ZW50OmFueSkge1xyXG4gICAgdGhpcy5kcm9wRG93biA9ICF0aGlzLmRyb3BEb3duO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoVGFibGU6IGFueTtcclxuICBzZWFyY2hUYWJsZURhdGEoKSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5zaXplID0gNTtcclxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBzZWFyY2hGaWVsZDogYW55ID0gWydzdG9yZU5hbWUnLCAndXNlck5hbWUnLCAndXNlckVtYWlsJywgJ2NsdXN0ZXJOYW1lJywgJ3RlYW1OYW1lJ107XHJcblxyXG4gICAgaWYgKCF0aGlzLnRhYmxlRmlsdGVyKSB7XHJcbiAgICAgICh0aGlzLmFzc2lnblR5cGUgPT09J3N0b3JlJyB8fCB0aGlzLmFzc2lnblR5cGUgPT09ICd1c2VyJykgPyB0aGlzLmdldFRhYmxlRGF0YSgpIDogdGhpcy51c2VyRGV0YWlsc1YyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBzZWFyY2hEYXRhID0gdGhpcy50YWJsZUZpbHRlci50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBjb25zdCBzZWFyY2hUZXJtID0gc2VhcmNoRGF0YS5zcGxpdCgnLCcpLm1hcCgoZWw6IGFueSkgPT4gZWwudHJpbSgpKTtcclxuICAgICAgdGhpcy5zZWFyY2hUYWJsZSA9IHRoaXMudGFibGVBcnJheT8uZmlsdGVyKChpdGVtOiBhbnkpID0+IFxyXG4gICAgICAgIHNlYXJjaEZpZWxkLnNvbWUoKGZpZWxkOiBhbnkpID0+IHNlYXJjaFRlcm0uc29tZSgodGVybTogYW55KSA9PiBpdGVtW2ZpZWxkXT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSkpKTtcclxuICAgICAgICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gdGhpcy5zZWFyY2hUYWJsZS5sZW5ndGg7XHJcbiAgICAgICAgICBpZih0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFt0aGlzLnJlY29yZHNUb3RhbF07XHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwxMCwxNSwyMF07XHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnNlYXJjaFRhYmxlLnNsaWNlKCh0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSkgLSB0aGlzLnNpemUsIHRoaXMuY3VycmVudFZhbHVlICogdGhpcy5zaXplKTtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVEYXRhID8gdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZSA6IHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNvcnREYXRhKHZhbHVlOmFueSkge1xyXG4gICAgdGhpcy5zb3J0Q29sdW1uID0gdmFsdWU7XHJcbiAgICB0aGlzLnNvcnRCeSAqPSAtMTtcclxuICAgICAgY29uc3Qgc29ydEJ5ID0gcGFyc2VJbnQoIHRoaXMuc29ydEJ5LCAxMCApID09PSAtMSA/IC0xIDogMTtcclxuICAgICAgICB0aGlzLnRhYmxlQXJyYXkuc29ydCggKCBhOmFueSwgYjphbnkgKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBzb3J0QnkgKiAoYVt0aGlzLnNvcnRDb2x1bW5dIHx8ICcnKS5sb2NhbGVDb21wYXJlKGJbdGhpcy5zb3J0Q29sdW1uXSB8fCAnJyk7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVBcnJheS5zbGljZSgodGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpIC0gdGhpcy5zaXplLCB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGbGFnKGV2ZW50OiBhbnksIGluZGV4OiBhbnksIGVsZW1lbnQ6IGFueSkge1xyXG4gICAgICAgIFxyXG4gICAgZWxlbWVudC5jaGVja0ZsYWcgPSBldmVudC50YXJnZXQuY2hlY2tlZFxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMucmVtb3ZlVXNlcnMuZmluZEluZGV4KChpdGVtOiBhbnkpID0+IGl0ZW0gPT0gZWxlbWVudC5pZCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlVXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5wdXNoKGVsZW1lbnQuaWQpXHJcbiAgICB9XHJcbiAgICBpZiAoIWV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlVXNlcnMucHVzaChlbGVtZW50LmlkKTtcclxuICAgICAgbGV0IGluZGV4ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5maW5kSW5kZXgoKGl0ZW06IGFueSkgPT4gaXRlbSA9PSBlbGVtZW50LmlkKTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZURhdGFbaW5kZXhdLmNoZWNrRmxhZyA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmxlbmd0aCAhPSB0aGlzLnJlY29yZHNUb3RhbCkge1xyXG4gICAgICB0aGlzLnNlbGVjdEFsbCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgY2hlY2tBbGwoZXZlbnQ6IGFueSkge1xyXG4gICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2VycyA9IFtdO1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tGbGFnID0gdHJ1ZVxyXG4gICAgICAgIGxldCBpbmRleCA9IHRoaXMucmVtb3ZlVXNlcnMuZmluZEluZGV4KChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gaXRlbS5pZCk7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVVc2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIGlmKCF0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzLmluY2x1ZGVzKGl0ZW0uaWQpKVxyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2Vycy5wdXNoKGl0ZW0uaWQpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVVc2Vycy5wdXNoKGl0ZW0uaWQpXHJcbiAgICAgICAgbGV0IGluZGV4ID0gIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuZmluZEluZGV4KChpZDphbnkpID0+IGlkID09IGl0ZW0uaWQpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMuc3BsaWNlKGluZGV4LDEpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGRhdGVTcGVjaWZpYyhldmVudDphbnkpIHtcclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PSAncmFuZ2UnICYmIGV2ZW50Py5zZWxlY3RlZExpc3QpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gZXZlbnQuc2VsZWN0ZWRMaXN0O1xyXG4gICAgfVxyXG4gIH1cclxuICBkYXRlUmFuZ2VTdGFydChldmVudCA6YW55KSB7XHJcbiAgICBpZihldmVudCAmJiBldmVudC5zdGFydERhdGUpIHtcclxuICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09ICdvbmV0aW1lJylcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJylcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXHJcbiAgICAgIH1cclxuICAgIH0gICBcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ29uZXRpbWUnKVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlO1xyXG4gICAgICB9XHJcbiAgICB9IFxyXG4gICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyl9O1xyXG4gICAgdGhpcy5taW5TdGFydERhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmRheWpzKCkuZm9ybWF0KCk7XHJcbiAgICB0aGlzLm1pbkVuZERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSBcIlwiO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAncmFuZ2UnKSB7XHJcbiAgICAgIGlmKGV2ZW50Py5zdGFydERhdGUgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlICE9IGV2ZW50LnN0YXJ0RGF0ZSkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSB0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSkuYWRkKDEsJ2RheScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZihldmVudD8uc3RhcnREYXRlICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSAhPSBldmVudC5zdGFydERhdGUpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gXCJcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy52YWxpZGF0ZVRpbWUoKTtcclxuICB9XHJcbiAgXHJcbiAgZGF0ZVJhbmdlRW5kKGV2ZW50OmFueSkge1xyXG4gICAgaWYoZXZlbnQgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSBbXTtcclxuICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID4gdGhpcy5kYXlqcyhldmVudC5lbmREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKSkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJylcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgIHRoaXMubWluRW5kRGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCk7XHJcbiAgICAgIHRoaXMudmFsaWRhdGVUaW1lKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gZGF0ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xyXG4gIC8vICAgdGhpcy5kYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydCk7XHJcbiAgLy8gICB0aGlzLm1vbnRoRGF0ZSA9IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpID09IDEgPyBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSArICdzdCcgOiBwYXJzZUludCh0aGlzLmRhdGUuZm9ybWF0KCdERCcpKSA9PSAyID8gcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgKyAnbmQnIDogcGFyc2VJbnQodGhpcy5kYXRlLmZvcm1hdCgnREQnKSkgPT0gMyA/IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpICsgJ3JkJyA6IHBhcnNlSW50KHRoaXMuZGF0ZS5mb3JtYXQoJ0REJykpICsgJ3RoJztcclxuICAvLyAgIHRoaXMubW9udGhEYXkgPSB0aGlzLmRhdGUuZm9ybWF0KCdkZGRkJyk7XHJcbiAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0KS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuXHJcbiAgLy8gICBsZXQgd2Vla051bWJlciA9IGdldFdlZWtOdW1iZXIodGhpcy5kYXRlKTtcclxuICAvLyAgIHRoaXMuTW9udGh3ZWVrTnVtYmVyID0gd2Vla051bWJlciA9PSAxID8gd2Vla051bWJlciArICdzdCcgOiB3ZWVrTnVtYmVyID09IDIgPyB3ZWVrTnVtYmVyICsgJ25kJyA6IHdlZWtOdW1iZXIgPT0gMyA/IHdlZWtOdW1iZXIgKyAncmQnIDogd2Vla051bWJlciArICd0aCc7XHJcbiAgLy8gICB0aGlzLnNldE1vbnRoRGF0ZSh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCk7XHJcbiAgLy8gfVxyXG4gIC8vIHNldERheShkYXk6IGFueSkge1xyXG4gIC8vICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9IGRheTtcclxuICAvLyB9XHJcbiAgc2V0RGF5KGRheTpzdHJpbmcpe1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXlzLmluY2x1ZGVzKGRheSkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSB0aGlzLnNlbGVjdGVkRGF5cy5maWx0ZXIoc2VsZWN0ZWREYXkgPT4gc2VsZWN0ZWREYXkgIT09IGRheSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF5cy5wdXNoKGRheSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHNldE1vbnRoRGF0ZShkYXRhOiBhbnkpIHtcclxuICAvLyAgIGlmIChkYXRhID09ICdkYXRlJykge1xyXG4gIC8vICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5ID0gW3RoaXMubW9udGhEYXRlXTtcclxuICAvLyAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbdGhpcy5tb250aERhdGVdOyBcclxuICAvLyAgIH1cclxuICAvLyAgIGVsc2Uge1xyXG4gIC8vICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5ID0gW3RoaXMubW9udGhEYXldO1xyXG4gIC8vICAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IFt0aGlzLm1vbnRoRGF5XTsgXHJcbiAgLy8gICAgIGxldCB3ZWVrTnVtYmVyID0gZ2V0V2Vla051bWJlcih0aGlzLmRhdGUpO1xyXG4gIC8vICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gd2Vla051bWJlciA9PSAxID8gd2Vla051bWJlciArICdzdCcgOiB3ZWVrTnVtYmVyID09IDIgPyB3ZWVrTnVtYmVyICsgJ25kJyA6IHdlZWtOdW1iZXIgPT0gMyA/IHdlZWtOdW1iZXIgKyAncmQnIDogd2Vla051bWJlciArICd0aCc7XHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9IGRhdGE7XHJcblxyXG4gIC8vIH1cclxuICAvLyBzZXREYXRlKGV2ZW50OiBhbnkpIHtcclxuICAvLyAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9IGV2ZW50LnN0YXJ0O1xyXG4gIC8vIH1cclxuICBcclxuICBwdWJsaXNoKHNob3dQb3B1cDpib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgaWYoWyd3ZWVrbHknLCd3ZWVrZGF5J10uaW5jbHVkZXModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUpICYmIHRoaXMuc2VsZWN0ZWREYXlzLmxlbmd0aCA9PSAwKXtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2Ugc2VsZWN0IGF0bGVhc3QgMSBkYXkgdG8gcHJvY2VlZCcpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy52YWxpZFRpbWUpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBUaW1lJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKCF0aGlzLnNob3dSYW5nZVZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9Jyc7IFxyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0nJzsgXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPSAnb25ldGltZScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0nJzsgXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAnbW9udGhseScgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ2RhdGUnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSB0aGlzLm1vbnRoRGF0ZSArJyAnK3RoaXMubW9udGhEYXk7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAnbW9udGhseScgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ3NwZWNpZmljJykge1xyXG4gICAgICBpZih0aGlzLnN1Ym1pdHRlZERhdGVzLmxlbmd0aClcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnN1Ym1pdHRlZERhdGVzO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBzZWxlY3QgYXRsZWFzdCAxIGRhdGUgdG8gcHJvY2VlZCcpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ3JhbmdlJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZUxpc3Q7XHJcbiAgICB9XHJcbiAgICBpZihzaG93UG9wdXApIHtcclxuICAgICAgbGV0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMzggMjcuMDgxOFYyOC4wMDE4QzM3Ljk5ODggMzAuMTU4MiAzNy4zMDA1IDMyLjI1NjUgMzYuMDA5MyAzMy45ODM2QzM0LjcxODIgMzUuNzEwOCAzMi45MDMzIDM2Ljk3NDMgMzAuODM1NCAzNy41ODU3QzI4Ljc2NzQgMzguMTk3MSAyNi41NTczIDM4LjEyMzcgMjQuNTM0NSAzNy4zNzY0QzIyLjUxMTcgMzYuNjI5MSAyMC43ODQ3IDM1LjI0NzkgMTkuNjExIDMzLjQzODlDMTguNDM3MyAzMS42Mjk5IDE3Ljg3OTggMjkuNDg5OSAxOC4wMjE3IDI3LjMzODFDMTguMTYzNiAyNS4xODY0IDE4Ljk5NzIgMjMuMTM4MSAyMC4zOTgzIDIxLjQ5ODlDMjEuNzk5NCAxOS44NTk2IDIzLjY5MjggMTguNzE3MiAyNS43OTYyIDE4LjI0MkMyNy44OTk2IDE3Ljc2NjcgMzAuMTAwMyAxNy45ODQyIDMyLjA3IDE4Ljg2MThNMzggMjAuMDAxOEwyOCAzMC4wMTE4TDI1IDI3LjAxMThcIiBzdHJva2U9XCIjMDM5ODU1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQ0ZERjNcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHVibGlzaCAke3RoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNoZWNrTGlzdE5hbWV9IGNoZWNrbGlzdD9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBQdWJsaXNoaW5nIHdpbGwgbWFrZSB0aGlzIGNoZWNrbGlzdCBsaXZlLCBhbmQgY2hhbmdlcyB3aWxsIHRha2UgZWZmZWN0IGltbWVkaWF0ZWx5LmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2NvbmZpcm0nXHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJyxiYWNrZHJvcCA6ICdzdGF0aWMnfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgICB0aGlzLmRldGFzc2lnblVwZGF0ZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVB1Ymxpc2goKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmRldGFzc2lnblVwZGF0ZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVQdWJsaXNoKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGlzaEFJKHNob3dQb3B1cDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIFxyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ0RhdGEuY2xpZW50SWQpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLnR5cGUgPSB0aGlzLnR5cGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmlkID0gdGhpcy5jaGVja2xpc3RJZDtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlnRGF0YS5wdWJsaXNoID0gdHJ1ZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyAhPT0gJ3N0b3JlJyA/IHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHMgOiB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuZXZlbnRzID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nICYmICF0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLnVzYWdlRXhjZWVkKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIEVudGVyIHRoZSBVc2FnZSBFeGNlZWQgRHVyYXRpb24nKTtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9ZWxzZSBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgJiYgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCA8IDE1KSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5tb2JpbGVEZXRlY3Rpb24udXNhZ2VFeGNlZWQgPSAwO1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBFbnRlciB0aGUgVXNhZ2UgRXhjZWVkIER1cmF0aW9uIDE1IHRvIDk5OScpO1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBpZihzaG93UG9wdXApIHtcclxuICAgICAgbGV0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMzggMjcuMDgxOFYyOC4wMDE4QzM3Ljk5ODggMzAuMTU4MiAzNy4zMDA1IDMyLjI1NjUgMzYuMDA5MyAzMy45ODM2QzM0LjcxODIgMzUuNzEwOCAzMi45MDMzIDM2Ljk3NDMgMzAuODM1NCAzNy41ODU3QzI4Ljc2NzQgMzguMTk3MSAyNi41NTczIDM4LjEyMzcgMjQuNTM0NSAzNy4zNzY0QzIyLjUxMTcgMzYuNjI5MSAyMC43ODQ3IDM1LjI0NzkgMTkuNjExIDMzLjQzODlDMTguNDM3MyAzMS42Mjk5IDE3Ljg3OTggMjkuNDg5OSAxOC4wMjE3IDI3LjMzODFDMTguMTYzNiAyNS4xODY0IDE4Ljk5NzIgMjMuMTM4MSAyMC4zOTgzIDIxLjQ5ODlDMjEuNzk5NCAxOS44NTk2IDIzLjY5MjggMTguNzE3MiAyNS43OTYyIDE4LjI0MkMyNy44OTk2IDE3Ljc2NjcgMzAuMTAwMyAxNy45ODQyIDMyLjA3IDE4Ljg2MThNMzggMjAuMDAxOEwyOCAzMC4wMTE4TDI1IDI3LjAxMThcIiBzdHJva2U9XCIjMDM5ODU1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQ0ZERjNcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHVibGlzaCAke3RoaXMuY29uZmlnRGF0YS5jaGVja0xpc3ROYW1lfSBjaGVja2xpc3Q/YCxcclxuICAgICAgICBjb250ZW50OiBgUHVibGlzaGluZyB3aWxsIG1ha2UgdGhpcyBjaGVja2xpc3QgbGl2ZSwgYW5kIGNoYW5nZXMgd2lsbCB0YWtlIGVmZmVjdCBpbW1lZGlhdGVseS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdjb25maXJtJ1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcsYmFja2Ryb3AgOiAnc3RhdGljJ30pO1xyXG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgICAgICAgIHRoaXMuU29wU2VydmljZS51cGRhdGVBaUNvbmZpZ3VyZSh0aGlzLmNvbmZpZ0RhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChyZXM/Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJheC9jaGVja2xpc3QnXSk7XHJcbiAgICAgICAgICAgICAgfSAgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBsZXQgZXJyb3IgPSBlcnI/LmVycm9yPy5lcnJvciB8fCAnc29tZXRoaW5nIHdlbnQgd3JvbmcnO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnJvcilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2F2ZURyYWZ0QUkoKSB7XHJcbiAgICBpZiAodGhpcy5jb25maWdEYXRhLmNsaWVudElkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5pZCA9IHRoaXMuY2hlY2tsaXN0SWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEudHlwZSA9IHRoaXMudHlwZTsgXHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEucHVibGlzaCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnICE9PSAnc3RvcmUnID8gdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLmV2ZW50cyA6IHRoaXMuY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHMgPSBbXTtcclxuICAgIGlmICh0aGlzLnR5cGUgPT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJyAmJiAhdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1BsZWFzZSBFbnRlciB0aGUgVXNhZ2UgRXhjZWVkIER1cmF0aW9uJyk7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJyAmJiB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLnVzYWdlRXhjZWVkIDwgMTUpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZCA9IDA7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIEVudGVyIHRoZSBVc2FnZSBFeGNlZWQgRHVyYXRpb24gMTUgdG8gOTk5Jyk7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgIHRpdGxlOiBgVW5zYXZlZCBjaGFuZ2VzYCxcclxuICAgICAgY29udGVudDogYERvIHlvdSB3YW50IHRvIHNhdmUgYXMgZHJhZnQ/YCxcclxuICAgICAgYnV0dG9udHlwZTogJ2RyYWZ0J1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcsIGJhY2tkcm9wOiAnc3RhdGljJ1xyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuXHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAoIXJlcykge1xyXG4gICAgICAgIHRoaXMucG9wdXBDb3VudCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2xpZW50SWQgPSB0aGlzLmNsaWVudElkO1xyXG4gICAgICAgICAgICB0aGlzLlNvcFNlcnZpY2UudXBkYXRlQWlDb25maWd1cmUodGhpcy5jb25maWdEYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ0RyYWZ0IGhhcyBiZWVuIHNhdmVkIHN1Y2Nlc3NmdWxseS4nKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvY2hlY2tsaXN0J10pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICB9LChlcnJvcjphbnkpID0+IHtcclxuICAgICAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yIHx8ICdzb21ldGhpbmcgd2VudCB3cm9uZyc7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwbG9hZERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB1cGxvYWRBSWZpbGVzKCkge1xyXG4gICAgdGhpcy51cGxvYWREYXRhID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGhhbmRsZURhdGFGcm9tQ2hpbGQoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLnVwbG9hZERhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHVibGlzaCgpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJyB8fCB0aGlzLnR5cGUgPT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJykge1xyXG4gICAgICAgICAgLy8gaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nKSB7XHJcbiAgICAgICAgICAvLyAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmRldGVjdGlvbkFyZWEgPSB0aGlzLnpvbmVzO1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID0gdGhpcy5jb25maWdEYXRhLm9wZW5UaW1lO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEuY2xvc2VUaW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYWxlcnQuYWxlcnRzVG8gPSB0aGlzLmVtYWlsTGlzdDtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnB1Ymxpc2ggPSB0cnVlO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY292ZXJhZ2UgPSB0aGlzLmNvdmVyYWdlO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLnN1Ym1pdFR5cGUgPSAncHVibGlzaCc7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEucmVtb3ZlZFVzZXJzID0gdGhpcy5yZW1vdmVVc2VycztcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlV2Vla0RheXMgPSB0aGlzLnNlbGVjdGVkRGF5cztcclxuICAgIHRoaXMuY29uZmlnRGF0YS51cGRhdGVDb25maWd1cmUgPSB0aGlzLmRpc2FibGVkUXVlc3Rpb24gPyAgdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5zaG93RWRpdCA9IHRoaXMuc2hvd0VkaXQ7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzID0gWy4uLnRoaXMuc2luZ2xlQXNzaWduLCAuLi50aGlzLmdyb3VwQXNzaWduXTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnN0b3JlQ291bnQgPSB0aGlzLmFzc2lnblNpbmdsZT8ubGVuZ3RoICsgdGhpcy5ncm91cEFzc2lnbj8ubGVuZ3RoO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZW5hYmxlTmV3RGVwbG95ZWRTdG9yZSA9IHRoaXMuc3RvcmVDb3ZlcmFnZSA/IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmVuYWJsZU5ld0RlcGxveWVkU3RvcmUgOiBmYWxzZTtcclxuICAgIGNvbnN0IHRpbWVab25lID0gZGF5anMudHouZ3Vlc3MoKTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS50aW1lWm9uZSA9IHRpbWVab25lO1xyXG5cclxuICAgIHRoaXMuU29wU2VydmljZS5jb25maWdVcGRhdGUodGhpcy5jb25maWdEYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChgJHt0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jaGVja0xpc3ROYW1lfSBjaGVja2xpc3QgcHVibGlzaGVkLmApO1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJheC9jaGVja2xpc3QnXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIEFzc2lnbiBhIFVzZXIhJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIEFzc2lnbiBhIFVzZXIhJyk7XHJcbiAgICAgIH1cclxuICAgIH0sIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yIHx8ICdzb21ldGhpbmcgd2VudCB3cm9uZyc7XHJcbiAgICAgIGlmKGVyciA9PSAnQ2hlY2tsaXN0IGdvdCBzdWJtaXR0ZWQnKSB7XHJcbiAgICAgICAgbGV0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIj48L3JlY3Q+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCI+PC9yZWN0Pjwvc3ZnPmAsXHJcbiAgICAgICAgICAgIHRpdGxlOiBgQ2hlY2tsaXN0IFVwZGF0ZSFgLFxyXG4gICAgICAgICAgICBjb250ZW50OiBgTXVsdGlwbGUgc3RvcmVzIGhhdmUgYWxyZWFkeSBzdWJtaXR0ZWQgdGhpcyBjaGVja2xpc3QuIERvIHlvdSB3YW50IHRvIHJlLWFzc2lnbiBpdCB0byB0aGVtP2AsXHJcbiAgICAgICAgICAgIGJ1dHRvbnR5cGU6ICdyZUFzc2lnbidcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcsYmFja2Ryb3AgOiAnc3RhdGljJ30pO1xyXG4gICAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZihyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmVkaXRTdWJtaXQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5lZGl0U3VibWl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5wdWJsaXNoKGZhbHNlKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIGRldGFzc2lnblVwZGF0ZShjYWxsYmFjazogKHJlc3VsdDogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgXCJjaGVja0xpc3RJZFwiOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBcImFzc2lnbmVkTGlzdFwiOiB0aGlzLmFzc2lnblNpbmdsZSB8fCBbXSxcclxuICAgICAgXCJhc3NpZ25lZEdyb3VwXCI6IHRoaXMuYXNzaWduR3JvdXAgfHwgW10sXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5jbGllbnRJZCxcclxuICAgICAgXCJjb3ZlcmFnZVwiOiB0aGlzLmNvdmVyYWdlXHJcbiAgICB9O1xyXG4gIFxyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmFzc2lnblVwZGF0ZShwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuYWRkZWQgPSByZXM/LmRhdGE/LmFkZGVkO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdEYXRhLnJlbW92ZWQgPSByZXM/LmRhdGE/LnJlbW92ZWQ7XHJcbiAgICAgICAgICBjYWxsYmFjayh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY2FsbGJhY2soZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgIGNhbGxiYWNrKGZhbHNlKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICAvLyBzZWxlY3RzdG9yZShlbGVtZW50OiBhbnkpIHtcclxuICAvLyAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheFN0b3JlQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAvLyAgIH0pO1xyXG5cclxuICAvLyAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gZWxlbWVudDtcclxuXHJcbiAgLy8gICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gIC8vICAgICBpZiAoZGF0YSAmJiBkYXRhLm1zZyA9PSAnY29uZmlybScpIHtcclxuICAvLyAgICAgICBpZiAoZGF0YS5zdG9yZXMubGVuZ3RoKSB7XHJcbiAgLy8gICAgICAgICBsZXQgc29wID0gZGF0YS5zdG9yZXM7XHJcbiAgLy8gICAgICAgICBsZXQgaWQgPSBlbGVtZW50LmlkO1xyXG4gIC8vICAgICAgICAgLy8gdGhpcy5Tb3BTZXJ2aWNlLmFzc2lnblNvcFN0b3JlKHNvcCwgaWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAvLyAgICAgICAgIC8vICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAvLyAgICAgICAgIC8vICAgICBlbGVtZW50LnNvcF9zdG9yZXMgPSBkYXRhLnN0b3JlcztcclxuICAvLyAgICAgICAgIC8vICAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgICAgICAgIC8vICAgfVxyXG4gIC8vICAgICAgICAgLy8gfSwgKGVycm9yOiBhbnkpID0+IHtcclxuXHJcbiAgLy8gICAgICAgICAvLyB9KVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSlcclxuICAvLyB9XHJcbiAgbmV3c3RvcmUoKSB7XHJcbiAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFtcIi9tYW5hZ2Uvc3RvcmVzXCJdLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoZWNrbGlzdGlkOiBKU09OLnN0cmluZ2lmeSh0aGlzLm9iaikgfSB9KTtcclxuICB9XHJcblxyXG4gIGludml0ZXVzZXIoKSB7XHJcbiAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFtcIi9jb250cm9sLXBhbmVsL2Fzc2lnbi1yb2xlXCJdLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoZWNrbGlzdGlkOiBKU09OLnN0cmluZ2lmeSh0aGlzLm9iaikgfSB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZURheSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnZGF5JyA/IHRoaXMuZGF5anMoKS5mb3JtYXQoJ0REJykgOiAnJztcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGV2ZW50OmFueSkge1xyXG4gICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSBldmVudC50YXJnZXQudmFsdWUgPCA5ICA/ICcwJytldmVudC50YXJnZXQudmFsdWUgOiBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ0REJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGV2ZW50OmFueSkgeyAgICBcclxuICAgIGlmKCFpc05hTihldmVudC50YXJnZXQudmFsdWUpKSB7XHJcbiAgICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZVswXSA9PSAzICYmIGV2ZW50LnRhcmdldC52YWx1ZVsxXSA+IDEpIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAzO1xyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSAzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZVswXSA+IDMgJiYgZXZlbnQudGFyZ2V0LnZhbHVlWzFdID49IDApIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBldmVudC50YXJnZXQudmFsdWVbMF07XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IGV2ZW50LnRhcmdldC52YWx1ZVswXTtcclxuICAgICAgfVxyXG4gICAgICBpZihldmVudC50YXJnZXQudmFsdWVbMF0gPCAxKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9ICcnO1xyXG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBzYXZlZHJhZnQoKSB7XHJcbiAgICBpZighdGhpcy52YWxpZFRpbWUpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBUaW1lJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGxldCBzdGFydERhdGVXaXRoVGltZSwgZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgaWYoIXRoaXMuc2hvd1JhbmdlVmFsdWUpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0nJzsgXHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPScnOyBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlICE9ICdvbmV0aW1lJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZURhdGUgPScnOyBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdtb250aGx5JyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnZGF0ZScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2VlayA9IHRoaXMubW9udGhEYXRlICsnICcrdGhpcy5tb250aERheTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdtb250aGx5JyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PSAnc3BlY2lmaWMnKSB7XHJcbiAgICAgIGlmKHRoaXMuc3VibWl0dGVkRGF0ZXMubGVuZ3RoKVxyXG4gICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNwZWNpZmljRGF0ZSA9IHRoaXMuc3VibWl0dGVkRGF0ZXM7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdyYW5nZScpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0O1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRUeXBlID09ICdyYW5nZScpIHtcclxuICAgIC8vICAgbGV0IHN0YXJ0ID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUuc3BsaXQoJyAnKTtcclxuICAgIC8vICAgbGV0IGVuZCA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZS5zcGxpdCgnICcpO1xyXG4gICAgLy8gICBzdGFydERhdGVXaXRoVGltZSA9IHN0YXJ0Lmxlbmd0aCA+IDIgPyBzdGFydFsxXSArICcgJyArIHN0YXJ0WzJdIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWU7XHJcbiAgICAvLyAgIGVuZERhdGVXaXRoVGltZSA9IGVuZC5sZW5ndGggPiAyID8gZW5kWzFdICsgJyAnICsgZW5kWzJdIDogdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lO1xyXG4gICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHRoaXMuZGF5anModGhpcy5yYW5nZVN0YXJ0KS5mb3JtYXQoJ1lZWVktTU0tREQnKSArICcgJyArIHN0YXJ0RGF0ZVdpdGhUaW1lO1xyXG4gICAgLy8gICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSB0aGlzLmRheWpzKHRoaXMucmFuZ2VFbmQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpICsgJyAnICsgZW5kRGF0ZVdpdGhUaW1lO1xyXG4gICAgICBcclxuICAgIC8vICAgaWYgKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lID4gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lKSB7XHJcbiAgICAvLyAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSBzdGFydERhdGVXaXRoVGltZTtcclxuICAgIC8vICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZUVuZFRpbWUgPSBlbmREYXRlV2l0aFRpbWU7XHJcbiAgICAvLyAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdFbmQgdGltZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCB0aW1lJyk7XHJcbiAgICAvLyAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgICBcclxuICAgIHRoaXMucG9wdXBDb3VudCA9IHRoaXMucG9wdXBDb3VudCArIDE7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuc3VibWl0VHlwZSA9ICdzYXZlJztcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnB1Ymxpc2ggPSBmYWxzZTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5yZW1vdmVkVXNlcnMgPSB0aGlzLnJlbW92ZVVzZXJzO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVXZWVrRGF5cyA9IHRoaXMuc2VsZWN0ZWREYXlzO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY292ZXJhZ2UgPSB0aGlzLmNvdmVyYWdlO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduZWRVc2VycyA9IFsuLi50aGlzLnNpbmdsZUFzc2lnbiwgLi4udGhpcy5ncm91cEFzc2lnbl07XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zdG9yZUNvdW50ID0gdGhpcy5hc3NpZ25TaW5nbGU/Lmxlbmd0aCArIHRoaXMuZ3JvdXBBc3NpZ24/Lmxlbmd0aDtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmVuYWJsZU5ld0RlcGxveWVkU3RvcmUgPSB0aGlzLnN0b3JlQ292ZXJhZ2UgPyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5lbmFibGVOZXdEZXBsb3llZFN0b3JlIDogZmFsc2U7XHJcbiAgICBjb25zdCB0aW1lWm9uZSA9IGRheWpzLnR6Lmd1ZXNzKCk7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEudGltZVpvbmUgPSB0aW1lWm9uZTtcclxuICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgIHRpdGxlOiBgVW5zYXZlZCBjaGFuZ2VzYCxcclxuICAgICAgY29udGVudDogYERvIHlvdSB3YW50IHRvIHNhdmUgYXMgZHJhZnQ/YCxcclxuICAgICAgYnV0dG9udHlwZTogJ2RyYWZ0J1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyxiYWNrZHJvcCA6ICdzdGF0aWMnXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nIHx8IHRoaXMudHlwZSA9PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nKSB7XHJcbiAgICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5kZXRlY3Rpb25BcmVhID0gdGhpcy56b25lcztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHRoaXMuY29uZmlnRGF0YS5vcGVuVGltZTtcclxuICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZSA9IHRoaXMuY29uZmlnRGF0YS5jbG9zZVRpbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgPSB0aGlzLnNvcFN0b3JlcztcclxuICAgICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUbyA9IHRoaXMuZW1haWxMaXN0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXJlcykge1xyXG4gICAgICAgIHRoaXMucG9wdXBDb3VudCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAgICAgICB0aGlzLmRldGFzc2lnblVwZGF0ZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGF0YS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICAgICAgICB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ0RyYWZ0IGhhcyBiZWVuIHNhdmVkIHN1Y2Nlc3NmdWxseS4nKTtcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL21hbmFnZS90cmF4L2NoZWNrbGlzdCddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwoZXJyb3I6YW55KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yIHx8ICdzb21ldGhpbmcgd2VudCB3cm9uZyc7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpXHJcbiAgICAgICAgICB9KSAgIFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBSZXVwbG9hZCgpIHtcclxuICAgIC8vIHRoaXMuZGlhbG9nLmRpc21pc3NBbGwoKTtcclxuICAgIHRoaXMudmFsaWRhdGVkU3RvcmUgPSBbXTtcclxuICAgIHRoaXMudmFsaWRhdGVkVXNlciA9IFtdO1xyXG4gICAgdGhpcy52YWxpZGF0ZWRDbHVzdGVyID0gW107XHJcbiAgICB0aGlzLnZhbGlkYXRlZFRlYW0gPSBbXTtcclxuICAgIHRoaXMubmV3VXNlciA9IFtdO1xyXG4gICAgdGhpcy5pbmFjdGl2ZVN0b3JlcyA9IFtdO1xyXG4gICAgdGhpcy5zaG93VXNlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93VGVhbSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93U3RvcmUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0NsdXN0ZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0luYWN0aXZlID0gZmFsc2U7XHJcbiAgICBpZih0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIGxldCBlbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzInKTtcclxuICAgIGVsZT8uY2xpY2soKTtcclxuICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgUmV1cGxvYWQxKCkge1xyXG4gICAgaWYodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcHVwQ291bnQgPSB0aGlzLnBvcHVwQ291bnQgKyAxO1xyXG4gICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgdGl0bGU6IGBSZXVwbG9hZCBDU1ZgLFxyXG4gICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlcGxhY2UgZXhpc3RpbmcgZGF0YSBieSB1cGxvYWRpbmcgbmV3IGZpbGU/IFlvdXIgZXhpc3RpbmcgZGF0YSB3aWxsIGdldCByZXBsYWNlZCB3aXRoIHRoZSBuZXcgb25lLmAsXHJcbiAgICAgIGJ1dHRvbnR5cGU6ICdSZXVwbG9hZCdcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnLGJhY2tkcm9wIDogJ3N0YXRpYydcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnRcclxuICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgdGhpcy5yZXVwbG9hZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgbGV0IGVsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMicpO1xyXG4gICAgICAgIGVsZT8uY2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG4gIC8vIGludml0ZW5ld3VzZXIoKSB7XHJcbiAgLy8gICB0aGlzLnBvcHVwQ291bnQgPSB0aGlzLnBvcHVwQ291bnQgKyAxO1xyXG4gIC8vICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gIC8vICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgLy8gICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAvLyAgICAgdGl0bGU6IGBJbnZpdGUgbmV3IHVzZXJzIGFkZGVkIGluIENTVmAsXHJcbiAgLy8gICAgIGNvbnRlbnQ6IGBUaGlzIENTViBjb250YWlucyBuZXcgdXNlcnMuIEludml0ZSB1c2VycyBieSBzZW5kaW5nIG1haWwgdG8gdGhlbS4gPGJyPmAsXHJcbiAgLy8gICAgIGJ1dHRvbnR5cGU6ICdJbnZpdGUnXHJcbiAgLy8gICB9XHJcbiAgLy8gICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gIC8vICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAvLyAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcblxyXG4gIC8vICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gIC8vICAgICAgIC8vIHRoaXMuU29wU2VydmljZS5jb25maWdVcGRhdGUodGhpcy5jb25maWdEYXRhKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgLy8gICAvLyBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG5cclxuICAvLyAgICAgICAvLyAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgLy8gICAgIFN3YWwuZmlyZSh7XHJcbiAgLy8gICAgICAgLy8gICAgICAgdG9hc3Q6IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgaWNvbkh0bWw6ICc8aW1nICBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvSWNvbnMvY2hlY2tsaXN0LXVucHVibGlzaGVkLWljb24uc3ZnXCI+JyxcclxuICAvLyAgICAgICAvLyAgICAgICAvLyB0aXRsZVRleHQ6IGBFbWFpbCBzZW50IHN1Y2Nlc2Z1bGx5YCxcclxuICAvLyAgICAgICAvLyAgICAgICBodG1sOiBgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gIC8vICAgICAgIC8vICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtMlwiPlxyXG4gIC8vICAgICAgIC8vICAgICAgIDxoND5DU1YgaGFzIGJlZW4gUmV1cGxvYWRlZCBzdWNjZXNzZnVsbHkuPC9oND5cclxuICAvLyAgICAgICAvLyAgICAgICA8L2Rpdj5cclxuICAvLyAgICAgICAvLyAgICAgICA8L2Rpdj5gLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAvLyAgICAgICAvLyAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXHJcbiAgLy8gICAgICAgLy8gICAgICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHRpbWVyOiA2MDAwLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHRpbWVyUHJvZ3Jlc3NCYXI6IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgZGlkT3BlbjogKHRvYXN0KSA9PiB7XHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgU3dhbC5zdG9wVGltZXIpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgU3dhbC5yZXN1bWVUaW1lcilcclxuICAvLyAgICAgICAvLyAgICAgICAgICQoXCIja3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIikudmFsKCcnKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgLy8gICAgICAgLy8gICAgICAgfVxyXG5cclxuICAvLyAgICAgICAvLyAgICAgfSlcclxuXHJcbiAgLy8gICAgICAgLy8gICAgIC8vIHRoaXMucm91dGUubmF2aWdhdGUoWycvc29wL0NoZWNrbGlzdHMnXSk7XHJcblxyXG4gIC8vICAgICAgIC8vICAgfVxyXG4gIC8vICAgICAgIC8vIH0pXHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0pXHJcblxyXG4gIC8vIH1cclxuICAvLyBBZGRzdG9yZSgpIHtcclxuICAvLyAgIHRoaXMucG9wdXBDb3VudCA9IHRoaXMucG9wdXBDb3VudCArIDE7XHJcbiAgLy8gICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgLy8gICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAvLyAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gIC8vICAgICB0aXRsZTogYEludml0ZSBuZXcgdXNlcnMgYWRkZWQgaW4gQ1NWYCxcclxuICAvLyAgICAgY29udGVudDogYFRoaXMgQ1NWIGNvbnRhaW5zIG5ldyB1c2Vycy4gSW52aXRlIHVzZXJzIGJ5IHNlbmRpbmcgbWFpbCB0byB0aGVtLiA8YnI+YCxcclxuICAvLyAgICAgc3VidGl0bGU6ICdMS1NUMDA5LCBTVDMwNDUnLFxyXG4gIC8vICAgICBidXR0b250eXBlOiAnQWRkc3RvcmUnXHJcbiAgLy8gICB9XHJcbiAgLy8gICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gIC8vICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAvLyAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcblxyXG4gIC8vICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gIC8vICAgICAgIC8vIHRoaXMuU29wU2VydmljZS5jb25maWdVcGRhdGUodGhpcy5jb25maWdEYXRhKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgLy8gICAvLyBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG5cclxuICAvLyAgICAgICAvLyAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgLy8gICAgIFN3YWwuZmlyZSh7XHJcbiAgLy8gICAgICAgLy8gICAgICAgdG9hc3Q6IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgaWNvbkh0bWw6ICc8aW1nICBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvSWNvbnMvY2hlY2tsaXN0LXVucHVibGlzaGVkLWljb24uc3ZnXCI+JyxcclxuICAvLyAgICAgICAvLyAgICAgICAvLyB0aXRsZVRleHQ6IGBFbWFpbCBzZW50IHN1Y2Nlc2Z1bGx5YCxcclxuICAvLyAgICAgICAvLyAgICAgICBodG1sOiBgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gIC8vICAgICAgIC8vICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtMlwiPlxyXG4gIC8vICAgICAgIC8vICAgICAgIDxoND5DU1YgaGFzIGJlZW4gUmV1cGxvYWRlZCBzdWNjZXNzZnVsbHkuPC9oND5cclxuICAvLyAgICAgICAvLyAgICAgICA8L2Rpdj5cclxuICAvLyAgICAgICAvLyAgICAgICA8L2Rpdj5gLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAvLyAgICAgICAvLyAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXHJcbiAgLy8gICAgICAgLy8gICAgICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHRpbWVyOiA2MDAwLFxyXG4gIC8vICAgICAgIC8vICAgICAgIHRpbWVyUHJvZ3Jlc3NCYXI6IHRydWUsXHJcbiAgLy8gICAgICAgLy8gICAgICAgZGlkT3BlbjogKHRvYXN0KSA9PiB7XHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgU3dhbC5zdG9wVGltZXIpXHJcbiAgLy8gICAgICAgLy8gICAgICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgU3dhbC5yZXN1bWVUaW1lcilcclxuICAvLyAgICAgICAvLyAgICAgICAgICQoXCIja3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIikudmFsKCcnKVxyXG4gIC8vICAgICAgIC8vICAgICAgICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgLy8gICAgICAgLy8gICAgICAgfVxyXG5cclxuICAvLyAgICAgICAvLyAgICAgfSlcclxuXHJcbiAgLy8gICAgICAgLy8gICAgIC8vIHRoaXMucm91dGUubmF2aWdhdGUoWycvc29wL0NoZWNrbGlzdHMnXSk7XHJcblxyXG4gIC8vICAgICAgIC8vICAgfVxyXG4gIC8vICAgICAgIC8vIH0pXHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0pXHJcblxyXG4gIC8vIH1cclxuICAvLyBhZGRVc2VyKCkge1xyXG4gIC8vICAgdGhpcy5hZGRVc2VyRm9ybSA9ICF0aGlzLmFkZFVzZXJGb3JtO1xyXG4gIC8vIH1cclxuXHJcblxyXG4gIC8vIGNyZWF0ZXVzZXJQb3B1cCh0eXBlOiBzdHJpbmcsIHJlY29yZDogYW55ID0gbnVsbCk6IHZvaWQge1xyXG4gIC8vICAgICBpZiAodHlwZSA9PSAndmlldycpIHtcclxuICAvLyAgICAgICB0aGlzLnBvcFVwVGl0bGUgPSBcIlZpZXcgVXNlciBEZXRhaWxzXCI7XHJcbiAgLy8gICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnZWRpdCcpIHtcclxuICAvLyAgICAgICB0aGlzLnBvcFVwVGl0bGUgPSBcIkVkaXQgVXNlciBEZXRhaWxzXCI7XHJcbiAgLy8gICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgdGhpcy5wb3BVcFRpdGxlID0gXCJFbnRlciBOZXcgVXNlciBEZXRhaWxzXCI7XHJcbiAgLy8gICAgICAgLy8gdGhpcy5wb3BVcFRpdGxlID0gXCJFbnRlciBOZXcgVXNlciBEZXRhaWxzXCI7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgICAgbGV0IGRhdGEgPSB7XHJcbiAgLy8gICAgICAgcmVjb3JkOiByZWNvcmQsXHJcbiAgLy8gICAgICAgdHlwZTogdHlwZSxcclxuICAvLyAgICAgICB0aXRsZTogdGhpcy5wb3BVcFRpdGxlXHJcbiAgLy8gICAgIH1cclxuXHJcbiAgLy8gICAgIGNvbnN0IGRpYWxvZ1JlZl9jcmVhdGVVc2VyID0gdGhpcy5kaWFsb2cub3BlbihVcGxvYWRTaW5nbGVVc2VyQ29tcG9uZW50LCB7XHJcbiAgLy8gICAgICAgcGFuZWxDbGFzczogJ2N1c3RvbS1tb2RhbGJveCcsXHJcbiAgLy8gICAgICAgZGF0YTogZGF0YVxyXG4gIC8vICAgICB9KTtcclxuXHJcbiAgLy8gICAgIGRpYWxvZ1JlZl9jcmVhdGVVc2VyLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgIHRoaXMuc2hvd0ludHJvID0gZmFsc2U7XHJcbiAgLy8gICAgICAgaWYgKCFyZWNvcmQgJiYgcmVzICYmIHJlcy5kYXRhLmNvZGUgPT0gMjAwKSB7XHJcbiAgLy8gICAgICAgICBTd2FsLmZpcmUoe1xyXG4gIC8vICAgICAgICAgICBpY29uOiAnc3VjY2VzcycsXHJcbiAgLy8gICAgICAgICAgIHRleHQ6ICdUaGUgdXNlciBpbnZpdGUgaGFzIGJlZW4gc2VudCBzdWNjZXNzZnVsbHkgdG8gdGhlIHVzZXIgYW5kIGFkZGVkIHRvIHRoZSBwbGF0Zm9ybSEnLFxyXG4gIC8vICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ09LJyxcclxuICAvLyAgICAgICAgICAgYWxsb3dPdXRzaWRlQ2xpY2s6IGZhbHNlLFxyXG4gIC8vICAgICAgICAgICBoZWlnaHRBdXRvOiBmYWxzZVxyXG4gIC8vICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgLy8gICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAvLyAgICAgICAgICAgICB0aGlzLnNlYXJjaFVzZXIgPSAnJ1xyXG4gIC8vICAgICAgICAgICAgIHRoaXMuYWRkVXNlckZvcm0gPSBmYWxzZTtcclxuICAvLyAgICAgICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IDE7XHJcbiAgLy8gICAgICAgICAgICAgLy8gdGhpcy5sb2FkUmVjb3JkcygwLCB0aGlzLnNpemUpXHJcbiAgLy8gICAgICAgICAgIH1cclxuICAvLyAgICAgICAgIH0pXHJcbiAgLy8gICAgICAgfSBlbHNlIGlmIChyZXMgJiYgcmVzLmRhdGEuY29kZSA9PSAyMDApIHtcclxuICAvLyAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgLy8gICAgICAgICAgIGljb246ICdzdWNjZXNzJyxcclxuICAvLyAgICAgICAgICAgdGV4dDogJ1VzZXIgVXBkYXRlZCBTdWNjZXNzZnVsbHkhJyxcclxuICAvLyAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2VcclxuICAvLyAgICAgICAgIH0pO1xyXG4gIC8vICAgICAgICAgdGhpcy5zZWFyY2hVc2VyID0gJydcclxuICAvLyAgICAgICAgIHRoaXMuYWRkVXNlckZvcm0gPSBmYWxzZTtcclxuICAvLyAgICAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gMTtcclxuICAvLyAgICAgICAgIC8vIHRoaXMubG9hZFJlY29yZHMoMCwgdGhpcy5zaXplKVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfSlcclxuICAvLyAgIH0gXHJcblxyXG5cclxuICAvLyBjcmVhdGV1c2VyUG9wdXAoKSB7XHJcbiAgLy8gICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFVwbG9hZFNpbmdsZVVzZXJDb21wb25lbnQsIHtcclxuICAvLyAgICAgcGFuZWxDbGFzczogJ2N1c3RvbS1tb2RhbGJveCdcclxuXHJcbiAgLy8gICB9KTtcclxuICAvLyAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpXHJcbiAgLy8gICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcblxyXG4gIC8vICAgICB9KVxyXG4gIC8vIH1cclxuXHJcbiAgLy8gdHJhbnNmZXJGb3JtRGF0YSgpIHtcclxuICAvLyAgIHRoaXMuU29wU2VydmljZS5zb3BEYXRhLmFzT2JzZXJ2YWJsZSgpXHJcbiAgLy8gfVxyXG4gIHNhdmVhbmRyZWRpcmVjdChpZDogYW55KSB7XHJcbiAgICBpZiAodGhpcy50eXBlID09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgfHwgdGhpcy50eXBlID09ICdzdG9yZW9wZW5hbmRjbG9zZScpIHtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PSAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nKSB7XHJcbiAgICAgICAgLy8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuZGV0ZWN0aW9uQXJlYSA9IHRoaXMuem9uZXM7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudHlwZSA9PSAnc3RvcmVvcGVuYW5kY2xvc2UnKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVTdGFydFRpbWUgPSB0aGlzLmNvbmZpZ0RhdGEub3BlblRpbWU7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lID0gdGhpcy5jb25maWdEYXRhLmNsb3NlVGltZTtcclxuICAgICAgfVxyXG4gICAgICAvLyB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGVydC5hbGVydHNUbyA9IHRoaXMuZW1haWxMaXN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLnN1Ym1pdFR5cGUgPSAnc2F2ZSc7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEucmVtb3ZlZFVzZXJzID0gdGhpcy5yZW1vdmVVc2VycztcclxuICAgIFxyXG4gICAgbGV0IHN0YXJ0RGF0ZVdpdGhUaW1lLCBlbmREYXRlV2l0aFRpbWU7XHJcbiAgICBpZighdGhpcy5zaG93UmFuZ2VWYWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPScnOyBcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9Jyc7IFxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgIT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRGF0ZSA9Jyc7IFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSA9PSAnbW9udGhseScgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgPT0gJ2RhdGUnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSB0aGlzLm1vbnRoRGF0ZSArJyAnKyB0aGlzLm1vbnRoRGF5O1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT0gJ21vbnRobHknICYmIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdzcGVjaWZpYycpIHtcclxuICAgICAgaWYodGhpcy5zdWJtaXR0ZWREYXRlcy5sZW5ndGgpXHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc3BlY2lmaWNEYXRlID0gdGhpcy5zdWJtaXR0ZWREYXRlcztcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09ICdyYW5nZScgJiYgdGhpcy5zZWxlY3RlZERhdGVMaXN0Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maWdEYXRhLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuXHJcbiAgICB0aGlzLlNvcFNlcnZpY2UuY29uZmlnVXBkYXRlKHRoaXMuY29uZmlnRGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbXCIvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0XCJdLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoZWNrbGlzdElkOiBpZCB9IH0pO1xyXG4gICAgICB9XHJcbiAgICB9LChlcnJvcjphbnkpID0+IHtcclxuICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3IgfHwgJ3NvbWV0aGluZyB3ZW50IHdyb25nJztcclxuICAgICAgcmV0dXJuIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpXHJcbiAgICB9KVxyXG4gIH1cclxuICB2YWxpZGF0ZVRpbWUoKSB7XHJcbiAgICBsZXQgc3RhcnRUaW1lID0gdGhpcy5kYXlqcyh0aGlzLnN0YXJ0VGltZSwgJ0hIOm1tJylcclxuICAgIGxldCBlbmRUaW1lID0gdGhpcy5kYXlqcyh0aGlzLmVuZFRpbWUsICdISDptbScpXHJcbiAgICBpZiAoIHRoaXMuc2hvd1JhbmdlVmFsdWUpIHtcclxuICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSAhPSAnJyAmJiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlICE9IG51bGwgJiYgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT0gJycgJiYgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYodGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSA9PSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkge1xyXG4gICAgICAgICAgaWYgKHN0YXJ0VGltZSA+IGVuZFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZFRpbWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIFNjaGVkdWxlIEVuZCBUaW1lJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkVGltZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA+IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUpIHtcclxuICAgICAgICAgIHRoaXMudmFsaWRUaW1lID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ludmFsaWQgU2NoZWR1bGUgRW5kIERhdGUnKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkVGltZSA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWxpZFRpbWUgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICggc3RhcnRUaW1lID4gZW5kVGltZSkge1xyXG4gICAgICB0aGlzLnZhbGlkVGltZSA9IGZhbHNlO1xyXG4gICAgICAvLyB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ludmFsaWQgU2NoZWR1bGUgRW5kIFRpbWUnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsaWRUaW1lID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVwZGF0ZVRpbWUoZGF0YTogYW55KSB7XHJcbiAgICBpZih0aGlzLnZhbGlkYXRlVGltZSgpKSB7XHJcbiAgICAgIGlmIChkYXRhID09ICdzdGFydCcpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVN0YXJ0VGltZSA9IHRoaXMuZGF5anModGhpcy5zdGFydFRpbWUsICdISDptbScpLmZvcm1hdCgnaGg6bW0gQScpXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVFbmRUaW1lID0gdGhpcy5kYXlqcyh0aGlzLmVuZFRpbWUsICdISDptbScpLmZvcm1hdCgnaGg6bW0gQScpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZWRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIFxyXG4gIH1cclxuICB1cGRhdGVTY2hlZHVsZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID0gJyc7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5ID0gJzAxJztcclxuICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gW107XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICB0aGlzLnNwZWNpZmljID0gZmFsc2U7XHJcbiAgICB0aGlzLm1vbnRoRGF0ZSA9ICcnO1xyXG4gICAgdGhpcy5tb250aERheSA9ICcnO1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1JhbmdlVmFsdWUgPSBldmVudC50YXJnZXQudmFsdWUgPT0gJ3JhbmdlJyA/IHRydWUgOiBmYWxzZTtcclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAncmFuZ2UnKSB7XHJcbiAgICAgIC8vIHRoaXMucmVmcmVzaFBpY2tlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNwZWNpZmljID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSBbXTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSB8fCB0aGlzLmRheWpzKCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSB8fCB0aGlzLmRheWpzKCkuYWRkKDEsJ2RheScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9IHtzdGFydERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgIHRoaXMubWluRW5kRGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpLmZvcm1hdCgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkU3RhcnREYXRlID0ge3N0YXJ0RGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLGVuZERhdGU6dGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdGFydERhdGUgPSAnJztcclxuICAgICAgdGhpcy5taW5TdGFydERhdGUgPSAnJztcclxuICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSAnJztcclxuICAgICAgdGhpcy5taW5FbmREYXRlID0gJyc7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgPSB0aGlzLmRheWpzKCkuYWRkKDEsJ2RheScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICAvLyB0aGlzLnJlZnJlc2hQaWNrZXIgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnd2Vla2RheScpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknXTtcclxuICAgIH1cclxuICAgIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnd2Vla2x5Jykge1xyXG4gICAgICBsZXQgdG9kYXlEYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgnZGRkZCcpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IFt0b2RheURhdGVdO1xyXG4gICAgfVxyXG4gICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdtb250aGx5Jykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9ICdkYXknO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gdGhpcy5kYXlqcygpLmZvcm1hdCgnREQnKTtcclxuICAgIH1cclxuICAgIGlmKFsnZGFpbHknLCdvbmV0aW1lJ10uaW5jbHVkZXMoZXZlbnQudGFyZ2V0LnZhbHVlKSB8fCAoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdtb250aGx5JyAmJiBbJ2RheScsJ2RhdGUnXS5pbmNsdWRlcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCkpICkge1xyXG4gICAgICBpZihldmVudC50YXJnZXQudmFsdWUgPT0gJ29uZXRpbWUnKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlID8gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlIDogZGF5anMoKS5mb3JtYXQoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxlbmREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVEYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKX07XHJcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5kYXlqcygpLmZvcm1hdCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93T25jZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXBlYXRUeXBlID0gdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09ICdkYWlseScgPyAnRGF5JyA6IFsnd2Vla2x5Jywnd2Vla2RheSddLmluY2x1ZGVzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSkgPyAnV2VlaycgOiB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT0gJ21vbnRobHknID8gJ01vbnRoJyA6ICcnO1xyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLnZhbGlkYXRlVGltZSgpO1xyXG4gIH1cclxuICBcclxuICBuYXZpZ2F0ZVRvQ29udHJvbENlbnRlcigpIHtcclxuICAgIHRoaXMucm91dGUubmF2aWdhdGUoWycvY29udHJvbGNlbnRlci90ZW1wbGF0ZXZpZXcnXSx7IHF1ZXJ5UGFyYW1zOiB7IHNvdXJjZTogJ2NjJyB9IH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkOiBhbnkgO1xyXG5cclxuICBhZGRTdG9yZUNvbXBvbmVudCgpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheFN0b3JlQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnLGJhY2tkcm9wIDogJ3N0YXRpYydcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgIGNoZWNrbGlzdElkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBvYmo6IHRoaXMub2JqLFxyXG4gICAgICBjb3ZlcmFnZTogdGhpcy5jb3ZlcmFnZSxcclxuICAgIH07XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy51c2VyRGF0YSA9IHJlcztcclxuICAgICAgICB0aGlzLnVwbG9hZCA9ICdzdG9yZSc7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZURldGFpbHMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvZ2dsZURyb3BEb3duKCkge1xyXG4gICAgdGhpcy5zaG93RHJvcERvd24gPSAhdGhpcy5zaG93RHJvcERvd247XHJcbiAgfVxyXG4gIHNlbGVjdERhdGUoZGF0ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUuaW5jbHVkZXMoZGF0ZSkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZS5maWx0ZXIoKGRheTphbnkpID0+IGRheSAhPT0gZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZighdGhpcy5zZWxlY3RlZERhdGUuaW5jbHVkZXMoZGF0ZSkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5wdXNoKGRhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHN1Ym1pdERhdGUoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZERhdGVzID0gWy4uLnRoaXMuc2VsZWN0ZWREYXRlXTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUJhZGdlKGRhdGU6IG51bWJlcikge1xyXG4gICAgdGhpcy5zdWJtaXR0ZWREYXRlcyA9IHRoaXMuc3VibWl0dGVkRGF0ZXMuZmlsdGVyKGQgPT4gZCAhPT0gZGF0ZSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlLmZpbHRlcigoZDphbnkpID0+IGQgIT09IGRhdGUpO1xyXG4gIH1cclxuICBnZXREYXRlV2l0aFN1ZmZpeChkYXRlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGRhdGUgPT0gMSB8fCBkYXRlID09IDMxIHx8IGRhdGUgPT0gMjEpIHtcclxuICAgICAgcmV0dXJuIGRhdGUgKyAnc3QnO1xyXG4gICAgfSBlbHNlIGlmIChkYXRlID09IDIgfHwgZGF0ZSA9PSAyMikge1xyXG4gICAgICByZXR1cm4gZGF0ZSArICduZCc7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGUgPT0gMyB8fCBkYXRlID09IDIzKSB7XHJcbiAgICAgIHJldHVybiBkYXRlICsgJ3JkJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkYXRlICsgJ3RoJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlRHJvcERvd24oKSB7XHJcbiAgICB0aGlzLnNob3dEcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTW9udGgodHlwZTphbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWsgPSAnJztcclxuICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gW107XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zcGVjaWZpY0RhdGUgPSBbXTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID0gdHlwZTtcclxuICAgIHRoaXMubW9udGhEYXRlID0gJydcclxuICAgIHRoaXMubW9udGhEYXkgPSAnJ1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gW107XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd09uY2UgPSBmYWxzZTtcclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXRlJykge1xyXG4gICAgICBsZXQgZGF0ZVdlZWsgPSBnZXRXZWVrTnVtYmVyKHRoaXMuZGF5anMoKSk7XHJcbiAgICAgIHRoaXMubW9udGhEYXRlID0gZGF0ZVdlZWsudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5tb250aERheSA9IHRoaXMuZGF5anMoKS5mb3JtYXQoJ2RkZGQnKTsgICAgICBcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09ICdkYXknKSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhXZWVrID0gdGhpcy5kYXlqcygpLmZvcm1hdCgnREQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVJlcGVhdERheSgpIHtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXk7XHJcbiAgICBpZihpc05hTih2YWx1ZSkpIHtcclxuICAgICAgdmFsdWUgPSAnMDEnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZERheSA9IHZhbHVlID09IFwiMDBcIiB8fCB2YWx1ZSA9PSAnMCcgfHwgIHZhbHVlID09ICcnID8gJzAxJyA6IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTW9udGhWYWx1ZSgpIHtcclxuICAgIGxldCBkYXRlVmFsdWUgPSAnJ1xyXG4gICAgaWYodGhpcy5tb250aERhdGUgPT0gJzEnKSB7XHJcbiAgICAgIGRhdGVWYWx1ZSA9ICdGaXJzdCdcclxuICAgIH1cclxuICAgIGlmKHRoaXMubW9udGhEYXRlID09ICcyJykge1xyXG4gICAgICBkYXRlVmFsdWUgPSAnU2Vjb25kJ1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5tb250aERhdGUgPT0gJzMnKSB7XHJcbiAgICAgIGRhdGVWYWx1ZSA9ICdUaGlyZCdcclxuICAgIH1cclxuICAgIGlmKHRoaXMubW9udGhEYXRlID09ICc0Jykge1xyXG4gICAgICBkYXRlVmFsdWUgPSAnRm91cnRoJ1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5tb250aERhdGUgPT0gJzUnKSB7XHJcbiAgICAgIGRhdGVWYWx1ZSA9ICdMYXN0J1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICgnb24gdGhlICcgKyBkYXRlVmFsdWUgKycgJyt0aGlzLm1vbnRoRGF5KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3BlY2lmaWNWYWx1ZSgpIHtcclxuICAgIGxldCB2YWx1ZTphbnkgPSBbXTtcclxuICAgIHRoaXMuc3VibWl0dGVkRGF0ZXMuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcclxuICAgICAgaXRlbSA9IChpdGVtID09IDEgfHwgaXRlbSA9PSAzMSB8fCBpdGVtID09IDIxKSA/IGl0ZW0gKycgc3QnIDogKGl0ZW0gPT0gMiB8fCBpdGVtID09IDIyKSA/IGl0ZW0gKycgbmQnIDogKGl0ZW0gPT0gMyB8fCBpdGVtID09IDIzICk/IGl0ZW0gKyAncmQnIDogaXRlbSArJyB0aCc7XHJcbiAgICAgIHZhbHVlLnB1c2goaXRlbSApXHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRGF0ZShkYXRlOmFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVMaXN0ID0gdGhpcy5zZWxlY3RlZERhdGVMaXN0LmZpbHRlcigoZWxlOmFueSkgPT4gZWxlICE9IGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2NlZHVsZURhdGUoKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygndGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlJyx0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUpXHJcbiAgICBpZih0aGlzLmNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGUgIT0gJycgJiYgdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVEYXRlVmFsdWUoZXZlbnQ6YW55KSB7XHJcbiAgICBpZihldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdTdGFydERhdGUgPSB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlIHx8IHRoaXMuZGF5anMoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZSA9ICcnO1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlID0gJyc7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkRW5kRGF0ZSA9ICcnO1xyXG4gICAgdGhpcy5taW5EYXRlPScnO1xyXG4gICAgLy8gdGhpcy5zZWxlY3RlZERhdGUgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdGFydERhdGUgPSB7c3RhcnREYXRlOnRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksZW5kRGF0ZTp0aGlzLmRheWpzKHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpfTtcclxuICAgIHRoaXMubWluU3RhcnREYXRlID0gdGhpcy5kYXlqcyh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNwZWNpZmljKGV2ZW50OmFueSkge1xyXG4gICAgaWYoIWV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlTGlzdCA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25EYXRlcGlja2VyUmVmcmVzaCgpe1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnRW5kRGF0ZSA9ICcnO1xyXG4gICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSAnJztcclxuICAgIHRoaXMubWluRW5kRGF0ZSA9IHRoaXMuZGF5anModGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuY29uZmlnU3RhcnREYXRlKS5mb3JtYXQoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFNwZWNpZmljRGF0ZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuc2hvd0Ryb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUxpc3QgPSBldmVudDtcclxuICB9XHJcblxyXG4gICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6Y2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIGNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoXCIuZHJvcGRvd24tY2xvc2VcIik7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhjbGlja2VkSW5zaWRlKTtcclxuICAgIFxyXG4gICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VEcm9wRG93bigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2xpZW50VXNlcigpIHtcclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRDbGllbnRVc2VyKHRoaXMuY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRVc2VycyA9IHJlcy5kYXRhLm1hcCgoaXRlbTphbnkpID0+IHtyZXR1cm4ge25hbWU6aXRlbS51c2VyTmFtZSx2YWx1ZTppdGVtLmVtYWlsLHJvbGU6aXRlbS5yb2xlfX0pO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuY29uZmlnRGF0YSlcclxuICAgICAgICBpZighdGhpcy5jb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5hcHByb3Zlcj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmFwcHJvdmUgPSB0cnVlO1xyXG4gICAgICAgICAgbGV0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgJ3t9JylcclxuICAgICAgICAgIGlmKHVzZXJJbmZvPy51c2VyVHlwZSA9PSAndGFuZ28nIHx8ICh1c2VySW5mbz8udXNlclR5cGUgPT0gJ2NsaWVudCcgJiYgdXNlckluZm8/LnJvbGUgPT0gJ3VzZXInKSkge1xyXG4gICAgICAgICAgICBsZXQgdXNlckxpc3QgPSB0aGlzLmFsZXJ0VXNlcnMuZmluZCgoZWxlOmFueSkgPT4gZWxlLnJvbGUgPT0gJ3N1cGVyYWRtaW4nKTtcclxuICAgICAgICAgICAgaWYodXNlckxpc3QgJiYgdGhpcy50eXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBbe25hbWU6dXNlckxpc3QubmFtZSx2YWx1ZTp1c2VyTGlzdC52YWx1ZX1dXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFt0aGlzLmFsZXJ0VXNlcnMuZmluZCgoZWxlOmFueSkgPT4gZWxlLnZhbHVlID09IHVzZXJJbmZvLmVtYWlsKV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYWxlcnRVc2VycyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFpvbmVMaXN0KCkge1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLmdldFpvbmVMaXN0KHRoaXMuY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy56b25lTGlzdCA9IHJlcy5kYXRhLm1hcCgoaXRlbTphbnkpID0+IHtyZXR1cm4ge25hbWU6aXRlbS56b25lLHZhbHVlOml0ZW0uem9uZX19ICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy56b25lTGlzdCA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFsZXJ0KGV2ZW50OiBhbnksdHlwZTphbnkpIHtcclxuICAgIGlmICh0eXBlID09ICd1c2VyJykge1xyXG4gICAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRzLnVzZXJzID0gZXZlbnQ7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2FwcHJvdmUnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5hcHByb3ZlciA9IGV2ZW50OyBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVpvbmUoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuYWlDb25maWcubW9iaWxlRGV0ZWN0aW9uLmRldGVjdGlvbkFyZWEgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUxvb3AoKSB7XHJcbiAgICBsZXQgZGF0YSA9IHRoaXMubWludXRlcy5maWx0ZXIoaXRlbSA9PiAhdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyLmluY2x1ZGVzKGl0ZW0pKTtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5wdXNoKGRhdGFbMF0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVtYWluZGVyKGV2ZW50OmFueSxpbmRleDphbnkpIHtcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlcltpbmRleF0gPSBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQXBwcm92ZXIoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlT3duZXIoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5vd25lciA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQXNzaWduKGV2ZW50OiBhbnkpIHsgXHJcbiAgICB0aGlzLnVwbG9hZCA9ICcnO1xyXG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSAxO1xyXG4gICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXNzaWduID0gZXZlbnQ7XHJcbiAgICAvLyB0aGlzLnRhYmxlQXJyYXkgPSBldmVudDtcclxuICAgIGxldCBkYXRhID0gZXZlbnQubWFwKChlbDphbnkpID0+IHtcclxuICAgICAgcmV0dXJuIHsgaWQ6IGVsPy5faWQsIHR5cGU6IGVsPy50eXBlIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLmlkTGlzdCA9IGRhdGE7XHJcbiAgICB0aGlzLnRhYmxlRmlsdGVyID0gJyc7XHJcbiAgICAodGhpcy5hc3NpZ25UeXBlID09PSAnc3RvcmUnIHx8IHRoaXMuYXNzaWduVHlwZSA9PT0gJ3VzZXInKSA/ICh0aGlzLnNpbmdsZUFzc2lnbiA9IHRoaXMuaWRMaXN0LHRoaXMuZ2V0VGFibGVEYXRhKCkpIDogKHRoaXMuZ3JvdXBBc3NpZ24gPSB0aGlzLmlkTGlzdCx0aGlzLnVzZXJEZXRhaWxzVjIoZXZlbnQpKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZWRDaGlwKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVBcnJheSA9IHRoaXMudGFibGVBcnJheT8uZmlsdGVyKChpdGVtOmFueSkgPT4gIWV2ZW50LmluY2x1ZGVzKGl0ZW0uX2lkKSlcclxuICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbiA9IHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbj8uZmlsdGVyKChpdGVtOiBhbnkpID0+ICFldmVudC5pbmNsdWRlcyhpdGVtLl9pZCkpXHJcbiAgICAvLyAodGhpcy5hc3NpZ25UeXBlID09PSAnc3RvcmUnIHx8IHRoaXMuYXNzaWduVHlwZSA9PT0gJ3VzZXInKSA/IHRoaXMuZ2V0VGFibGVEYXRhKCkgOnRoaXMudXNlckRldGFpbHNWMigpO1xyXG4gIH1cclxuXHJcbiAgdGFibGVBcnJheTogYW55ID0gW107XHJcbiAgdGFibGVMb2FkaW5nMTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHVzZXJEZXRhaWxzVjIoZGF0YT86YW55KSB7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBcImNoZWNrbGlzdElkXCI6dGhpcy5jaGVja2xpc3RJZCxcclxuICAgICAgXCJpZExpc3RcIjogdGhpcy5pZExpc3QsXHJcbiAgICAgIFwiY292ZXJhZ2VcIjogdGhpcy5jb3ZlcmFnZSwgLy9bXCJjbHVzdGVyXCIsXCJzdG9yZVwiLFwidXNlclwiLFwidGVhbXNcIl1cclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBcInNlYXJjaFwiOiB0aGlzLnRhYmxlRmlsdGVyXHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgdGhpcy50YWJsZUFycmF5ID0gW107XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5Tb3BTZXJ2aWNlLnNlbGVjdENoaXBzKHBheWxvYWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlTG9hZGluZzEgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGFibGVBcnJheSA9IHJlcz8uZGF0YT8udW5pcXVlQXJyO1xyXG4gICAgICAgICAgdGhpcy5hc3NpZ25Hcm91cCA9IHRoaXMudGFibGVBcnJheTtcclxuICAgICAgICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gcmVzLmRhdGEuY291bnQ7XHJcbiAgICAgICAgICB0aGlzLnJlY29yZHNDb3VudCA9IHRoaXMudGFibGVEYXRhLmxlbmd0aDsgXHJcbiAgICAgICAgICB0aGlzLnRhYmxlQXJyYXk/Lmxlbmd0aCA/IHRoaXMuc2hvd0ltYWdlID0gZmFsc2UgOiB0aGlzLnNob3dJbWFnZSA9IHRydWU7XHJcbiAgICAgICAgICBpZih0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFt0aGlzLnJlY29yZHNUb3RhbF07XHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwxMCwxNSwyMF07XHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVBcnJheS5zbGljZSgodGhpcy5jdXJyZW50VmFsdWUgKiB0aGlzLnNpemUpIC0gdGhpcy5zaXplLCB0aGlzLmN1cnJlbnRWYWx1ZSAqIHRoaXMuc2l6ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gW107XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5zaG93SW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLnN0b3JlQ292ZXJhZ2UgPyB0aGlzLmdldEluaXRpYWxEYXRhKHJlcz8uZGF0YT8uc3RvcmVMaXN0KSA6IHRoaXMuZ2V0SW5pdGlhbERhdGEocmVzPy5kYXRhPy51c2VyTGlzdCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVMb2FkaW5nMSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyPy5tZXNzYWdlKVxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNvcnRDb2x1bW46IGFueSA9ICcnO1xyXG4gIHNvcnRCeTogYW55ID0gLTE7XHJcblxyXG4gIGdldHRhYmxlRGF0YSgpIHtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNoZWNrbGlzdElkOiB0aGlzLmNoZWNrbGlzdElkLFxyXG4gICAgICBsaW1pdDogdGhpcy5zaXplLFxyXG4gICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgIHNlYXJjaDogdGhpcy50YWJsZUZpbHRlcixcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydENvbHVtbixcclxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnRCeSxcclxuICAgICAgY292ZXJhZ2U6IHRoaXMuY292ZXJhZ2VcclxuICAgIH0gIFxyXG4gICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgIHRoaXMuU29wU2VydmljZS5nZXRVc2VyRGV0YWlsc1YyKHBheWxvYWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OihyZXM6YW55KT0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gcmVzPy5kYXRhPy51c2VycztcclxuICAgICAgICAgIHRoaXMucmVjb3Jkc0NvdW50ID0gdGhpcy50YWJsZURhdGEubGVuZ3RoOyBcclxuICAgICAgICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gcmVzLmRhdGEuY291bnQ7XHJcbiAgICAgICAgICBpZih0aGlzLnJlY29yZHNUb3RhbCA8IDUpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZSA9IFt0aGlzLnJlY29yZHNUb3RhbF07XHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemUgPSBbNSwxMCwxNSwyMF07XHJcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IDU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zdG9yZUNvdmVyYWdlID8gdGhpcy5nZXRJbml0aWFsRGF0YShyZXM/LmRhdGE/LnN0b3JlTGlzdCkgOiB0aGlzLmdldEluaXRpYWxEYXRhKHJlcz8uZGF0YT8udXNlckxpc3QpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6KGVycjphbnkpPT4ge1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycj8ubWVzc2FnZSkgXHJcbiAgICAgICAgfSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVIdWRkbGV0aW1lKGV2ZW50OiBFdmVudCwga2V5OiBhbnkpIHtcclxuICAgIC8vIGxldCBzYW1wbGVPYmplY3Q6YW55O1xyXG4gICAgLy8gaWYgKGtleSA9PT0gJ3RpbWUnKSB7XHJcbiAgICAvLyAgIGNvbnN0IHNlbGVjdGVkVGltZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICAvLyAgIHNhbXBsZU9iamVjdC5zdGFydFRpbWUgPSBzZWxlY3RlZFRpbWU7IFxyXG4gICAgLy8gfSBlbHNlIGlmIChrZXkgPT09ICdkdXJhdGlvbicpIHtcclxuICAgIC8vIH1cclxuICAgIC8vIGNvbnNvbGUubG9nKCdkdXJhdGlvbicsdGhpcy5odWRkbGVhdHRpbWVBcnJheSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZUh1ZGRsZShpOmFueSkge1xyXG4gICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzLnNwbGljZShpLCAxKVxyXG4gIH1cclxuXHJcbiAgQWRkSHVkZGxlRWVudCgpIHtcclxuICAgIGxldCBzYW1wbGVPYmplY3QgPSB7dGltZTp0aGlzLmRheWpzKCkuZm9ybWF0KCdISDptbScpLGR1cmF0aW9uOicxNSd9O1xyXG4gICAgdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzPy5sZW5ndGggPCAzID8gdGhpcy5jb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzLnB1c2goc2FtcGxlT2JqZWN0KSA6ICcnXHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb25maWdSZW1haW5kZXIoZXZlbnQ6YW55KSB7XHJcbiAgICBpZighZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyID0gW107XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyID0gW3RoaXMubWludXRlc1swXV07XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVwZGF0ZUNvbmZpZ0FwcHJvdmVyKGV2ZW50OmFueSkge1xyXG4gICAgaWYoIWV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyID0gW107XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsZXQgdXNlckluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKSB8fCAne30nKVxyXG4gICAgICBpZih1c2VySW5mbz8udXNlclR5cGUgPT0gJ3RhbmdvJyB8fCAodXNlckluZm8/LnVzZXJUeXBlID09ICdjbGllbnQnICYmIHVzZXJJbmZvPy5yb2xlID09ICd1c2VyJykpIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hcHByb3ZlciA9IFt0aGlzLmFsZXJ0VXNlcnMuZmluZCgoZWxlOmFueSkgPT4gZWxlLnJvbGUgPT0gJ3N1cGVyYWRtaW4nKV07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuYXBwcm92ZXIgPSBbdGhpcy5hbGVydFVzZXJzLmZpbmQoKGVsZTphbnkpID0+IGVsZS52YWx1ZSA9PSB1c2VySW5mby5lbWFpbCldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUaW1lTG9vcChpbmRleDphbnkpIHtcclxuICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIpKTtcclxuICAgIGlmKGRhdGEubGVuZ3RoKSB7XHJcbiAgICAgIGRhdGEuc3BsaWNlKGluZGV4LDEpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5taW51dGVzLmZpbHRlcigoaXRlbTphbnkpID0+IGRhdGEubGVuZ3RoID8gIWRhdGE/LmluY2x1ZGVzKGl0ZW0pIDogaXRlbSk7XHJcbiAgfVxyXG5cclxuICBidWxrdXBsb2FkTW9kZWwoKSB7XHJcbiAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKHRoaXMuYnVsa3VwbG9hZCwge1xyXG4gICAgICBjZW50ZXJlZDp0cnVlLGJhY2tkcm9wIDogJ3N0YXRpYydcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBleGNlbEVycm9yOiBhbnk7XHJcblxyXG4gIGFmdGVyVXBsbG9hZChkYXRhPzogYW55KSB7XHJcbiAgICB0aGlzLmV4Y2VsRXJyb3IgPSBkYXRhO1xyXG4gICAgdGhpcy5kaWFsb2cub3Blbih0aGlzLmFmdGVyVmFsaWRhdGlvbix7Y2VudGVyZWQ6dHJ1ZSxiYWNrZHJvcCA6ICdzdGF0aWMnfSlcclxuICB9XHJcblxyXG4gIGdldEluaXRpYWxzKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIW5hbWUpIHJldHVybiAnJzsgLy8gSGFuZGxlIGVtcHR5IGNhc2VcclxuICAgIGNvbnN0IFtmaXJzdE5hbWUsIGxhc3ROYW1lXSA9IG5hbWUuc3BsaXQoJyAnKTtcclxuICAgIGlmICghbGFzdE5hbWUpIHtcclxuICAgICAgY29uc3QgaW5pdGlhbHMgPSAoZmlyc3ROYW1lPy5bMF0gfHwgJycpICsgKGZpcnN0TmFtZT8uWzFdIHx8ICcnKTsgXHJcbiAgICAgIHJldHVybiBpbml0aWFscy50b1VwcGVyQ2FzZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgaW5pdGlhbHMgPSAoZmlyc3ROYW1lPy5bMF0gfHwgJycpICsgKGxhc3ROYW1lPy5bMF0gfHwgJycpOyBcclxuICAgICAgcmV0dXJuIGluaXRpYWxzLnRvVXBwZXJDYXNlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25maXJtVXNlcnBvcHVwKCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3Blbih0aGlzLmNvbmZpcm1Vc2VyLCB7IGNlbnRlcmVkOiB0cnVlLCBiYWNrZHJvcDogJ3N0YXRpYycgfSlcclxuICAgIGRpYWxvZ1JlZi5jbG9zZWQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzID09PSAnY29uZmlybScpIHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlRGV0YWlscygnYWRkVXNlcicpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZy1vdmVyJyk7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIC8vIEFkZCBhIHZpc3VhbCBlZmZlY3QgdG8gaW5kaWNhdGUgZHJhZyBpcyBvdmVyIHRoZSBhcmVhXHJcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbGFzc0xpc3QuYWRkKCdkcmFnLW92ZXInKTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZy1vdmVyJyk7XHJcblxyXG4gICAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF07XHJcbiAgICAgIGNvbnN0IGZpbGVJbnB1dEVsZW1lbnQgPSB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgLy8gTWFudWFsbHkgc2V0IHRoZSBmaWxlIHRvIHRoZSBpbnB1dFxyXG4gICAgICBjb25zdCBkYXRhVHJhbnNmZXIgPSBuZXcgRGF0YVRyYW5zZmVyKCk7XHJcbiAgICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XHJcbiAgICAgIGZpbGVJbnB1dEVsZW1lbnQuZmlsZXMgPSBkYXRhVHJhbnNmZXIuZmlsZXM7XHJcblxyXG4gICAgICAvLyBUcmlnZ2VyIHRoZSBjaGFuZ2UgZXZlbnQgbWFudWFsbHlcclxuICAgICAgZmlsZUlucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQWxwaGFwZXQoZXZlbnQ6YW55KSB7XHJcbiAgICBpZihpc05hTihldmVudC50YXJnZXQudmFsdWUpKSB7XHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZT1cIjAxXCI7XHJcbiAgICAgIHRoaXMuY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWREYXkgPSAnMDEnXHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0V2Vla051bWJlcihkYXRlOiBhbnkpIHtcclxuICBsZXQgZGF5cyA9IFtdO1xyXG4gIGxldCBkYXRlRGF0ID0gZGF5anMoIGRhdGUgKS5zdGFydE9mKCAnbW9udGgnICk7XHJcblxyXG4gIHdoaWxlICggZGF0ZURhdC5tb250aCgpID09PSBkYXRlLm1vbnRoKCkgKSB7XHJcbiAgICBpZiAoIGRhdGVEYXQuZm9ybWF0KCAnZGRkZCcgKSA9PT0gIGRhdGUuZm9ybWF0KCAnZGRkZCcgKSkge1xyXG4gICAgICBkYXlzLnB1c2goIGRhdGVEYXQuZm9ybWF0KCAnWVlZWS1NTS1ERCcgKSApO1xyXG4gICAgfVxyXG4gICAgZGF0ZURhdCA9IGRhdGVEYXQuYWRkKCAxLCAnZGF5JyApO1xyXG4gIH1cclxuXHJcbiAgbGV0IGZpbmRJbmRleCA9IGRheXMuZmluZEluZGV4KChpdGVtOmFueSkgPT4gaXRlbSA9PSBkYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpKVxyXG4gIHJldHVybiAoZmluZEluZGV4ICsgMSk7XHJcblxyXG59IiwiPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImNhcmQgcm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIiFsb2FkaW5nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC0zIHBiLTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZGlzYWJsZWRRdWVzdGlvbiYmdHlwZSA9PT0gJ2N1c3RvbSdcIiBbcm91dGVyTGlua109XCInL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdCdcIiBbcXVlcnlQYXJhbXNdPVwie2NoZWNrbGlzdElkOiBjaGVja2xpc3RJZH1cIiAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lIG1lLTUgcHgtMyBweS0zXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS44MzMyIDEwLjAwMDNINC4xNjY1TTQuMTY2NSAxMC4wMDAzTDkuOTk5ODQgMTUuODMzN000LjE2NjUgMTAuMDAwM0w5Ljk5OTg0IDQuMTY2OTlcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAnY3VzdG9tJ1wiIGNsYXNzPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50IG1iLTQgdy0xMDBcIj48aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImNoZWNrbGlzdCBwbGFpbi1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIENoZWNrbGlzdCBOYW1lXCIgW3ZhbHVlXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNoZWNrTGlzdE5hbWVcIiByZWFkb25seT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50IHctMTAwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFpbi1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY2hlY2tsaXN0RGVzY3JpcHRpb24gcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNoZWNrTGlzdERlc2NyaXB0aW9uXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlICE9PSAnY3VzdG9tJ1wiIGNsYXNzPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50IG1iLTQgdy0xMDBcIj48aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImNoZWNrbGlzdCBwbGFpbi1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIENoZWNrbGlzdCBOYW1lXCIgW3ZhbHVlXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdE5hbWVcIiByZWFkb25seT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50IHctMTAwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFpbi1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY2hlY2tsaXN0RGVzY3JpcHRpb24gcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERlc2NyaXB0aW9uXCIgcmVhZG9ubHk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBteS02IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLW1kIHB5LTQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInR5cGUgPT09ICdjdXN0b20nID8gcHVibGlzaCgpIDogcHVibGlzaEFJKClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRQdWJsaXNoIHx8IGRpc2FibGVCdG5cIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5QdWJsaXNoPC9zcGFuPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidHlwZSA9PT0nY3VzdG9tJyA/IHNhdmVkcmFmdCgpIDogc2F2ZURyYWZ0QUkoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlQnRuXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+U2F2ZSBhcyBEcmFmdDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgY2hlY2tjb25maWdjb250IG10LTJcIiAqbmdJZj1cImNvbmZpZ0RhdGFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTMgbGVmdGNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcHgtNyBweS03XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZzFcIj57e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmNoZWNrTGlzdE5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5jaGVja0xpc3RJZFwiIGNsYXNzPVwic2VjdGlvbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWN0aW9uczsgbGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy00IGZ3LWJvbGQgc2VjdGlvblwiPnt7c2VjdGlvbi5uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cImFjY29yZGlhbihpKVwiIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3cgIT09IGl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3c9PT1pXCIgY2xhc3M9XCJxdWVzdGlvbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERhdGFdPVwic2VjdGlvbi5xdWVzdGlvbnNcIj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIHNlY3Rpb24ucXVlc3Rpb25zO2xldCBqPWluZGV4O1wiIGNsYXNzPVwibXktMiBxLWJ0blwiIGNka0RyYWc+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRhYmxlY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3txdWVzdGlvbi5xbmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTZcIj5TY2hlZHVsZTwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJyB8fCB0eXBlID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnXCIgY2xhc3M9XCJtdC00IG14LTIgc3ViXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIG14LTRcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgNlYxMkwxNiAxNE0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMlwiPnt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlU3RhcnRUaW1lfX0gdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlRW5kVGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IG14LTIgc3ViXCI+PHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMyAyM1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguNDE0NDggNC41MjMwM0M4LjY5NTE4IDQuODAzNzEgOC42OTUxOCA1LjI1ODggOC40MTQ0OCA1LjUzOTQ4TDUuNTM5NDggOC40MTQ0OEM1LjI1ODggOC42OTUxOCA0LjgwMzcxIDguNjk1MTggNC41MjMwMyA4LjQxNDQ4TDMuMDg1NTMgNi45NzY5OEMyLjgwNDgyIDYuNjk2MyAyLjgwNDgyIDYuMjQxMjEgMy4wODU1MyA1Ljk2MDUzQzMuMzY2MjEgNS42Nzk4MiAzLjgyMTMgNS42Nzk4MiA0LjEwMTk4IDUuOTYwNTNMNS4wMzEyNSA2Ljg4OTc4TDcuMzk4MDMgNC41MjMwM0M3LjY3ODcxIDQuMjQyMzIgOC4xMzM4IDQuMjQyMzIgOC40MTQ0OCA0LjUyMzAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguNDE0NDggMTEuNzEwNUM4LjY5NTE4IDExLjk5MTIgOC42OTUxOCAxMi40NDYzIDguNDE0NDggMTIuNzI3TDUuNTM5NDggMTUuNjAyQzUuMjU4OCAxNS44ODI2IDQuODAzNzEgMTUuODgyNiA0LjUyMzAzIDE1LjYwMkwzLjA4NTUzIDE0LjE2NDVDMi44MDQ4MiAxMy44ODM4IDIuODA0ODIgMTMuNDI4NyAzLjA4NTUzIDEzLjE0NzlDMy4zNjYyMSAxMi44NjczIDMuODIxMyAxMi44NjczIDQuMTAxOTggMTMuMTQ3OUw1LjAzMTI1IDE0LjA3NzNMNy4zOTgwMyAxMS43MTA1QzcuNjc4NzEgMTEuNDI5OSA4LjEzMzggMTEuNDI5OSA4LjQxNDQ4IDExLjcxMDVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAuMDYyNSA2LjQ2ODc1QzEwLjA2MjUgNi4wNzE4IDEwLjM4NDQgNS43NSAxMC43ODEyIDUuNzVIMTUuMDkzOEMxNS40OTA2IDUuNzUgMTUuODEyNSA2LjA3MTggMTUuODEyNSA2LjQ2ODc1QzE1LjgxMjUgNi44NjU3IDE1LjQ5MDYgNy4xODc1IDE1LjA5MzggNy4xODc1SDEwLjc4MTJDMTAuMzg0NCA3LjE4NzUgMTAuMDYyNSA2Ljg2NTcgMTAuMDYyNSA2LjQ2ODc1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTMuNTkzNzUgMEMxLjYwODk4IDAgMCAxLjYwODk4IDAgMy41OTM3NVYxNi41MzEyQzAgMTguNTE2IDEuNjA4OTggMjAuMTI1IDMuNTkzNzUgMjAuMTI1SDkuNDg3MDhDOS4yNTQyOSAxOS42Njk2IDkuMDY0MzYgMTkuMTg4NiA4LjkyMjYxIDE4LjY4NzVIMy41OTM3NUMyLjQwMjg4IDE4LjY4NzUgMS40Mzc1IDE3LjcyMjEgMS40Mzc1IDE2LjUzMTJWMy41OTM3NUMxLjQzNzUgMi40MDI4OCAyLjQwMjg4IDEuNDM3NSAzLjU5Mzc1IDEuNDM3NUgxNi41MzEyQzE3LjcyMjEgMS40Mzc1IDE4LjY4NzUgMi40MDI4OCAxOC42ODc1IDMuNTkzNzVWOC45MjI2MUMxOS4xODg2IDkuMDY0MzYgMTkuNjY5NiA5LjI1NDI5IDIwLjEyNSA5LjQ4NzA4VjMuNTkzNzVDMjAuMTI1IDEuNjA4OTggMTguNTE2IDAgMTYuNTMxMiAwSDMuNTkzNzVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTYuNTMxMyAyM0MyMC4xMDM5IDIzIDIzIDIwLjEwMzkgMjMgMTYuNTMxM0MyMyAxMi45NTg2IDIwLjEwMzkgMTAuMDYyNSAxNi41MzEzIDEwLjA2MjVDMTIuOTU4NiAxMC4wNjI1IDEwLjA2MjUgMTIuOTU4NiAxMC4wNjI1IDE2LjUzMTNDMTAuMDYyNSAyMC4xMDM5IDEyLjk1ODYgMjMgMTYuNTMxMyAyM1pNMTYuNTMxMyAxMi45Mzc1QzE2LjkyODEgMTIuOTM3NSAxNy4yNSAxMy4yNTk0IDE3LjI1IDEzLjY1NjNWMTUuODEyNUgxOS40MDYzQzE5LjgwMzEgMTUuODEyNSAyMC4xMjUgMTYuMTM0NCAyMC4xMjUgMTYuNTMxM0MyMC4xMjUgMTYuOTI4MSAxOS44MDMxIDE3LjI1IDE5LjQwNjMgMTcuMjVIMTcuMjVWMTkuNDA2M0MxNy4yNSAxOS44MDMxIDE2LjkyODEgMjAuMTI1IDE2LjUzMTMgMjAuMTI1QzE2LjEzNDQgMjAuMTI1IDE1LjgxMjUgMTkuODAzMSAxNS44MTI1IDE5LjQwNjNWMTcuMjVIMTMuNjU2M0MxMy4yNTk0IDE3LjI1IDEyLjkzNzUgMTYuOTI4MSAxMi45Mzc1IDE2LjUzMTNDMTIuOTM3NSAxNi4xMzQ0IDEzLjI1OTQgMTUuODEyNSAxMy42NTYzIDE1LjgxMjVIMTUuODEyNVYxMy42NTYzQzE1LjgxMjUgMTMuMjU5NCAxNi4xMzQ0IDEyLjkzNzUgMTYuNTMxMyAxMi45Mzc1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9XCJtdC0yIG1zLTJcIj57e2NvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnb25ldGltZScgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdPbmUtdGltZScgOiAoY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgfCB0aXRsZWNhc2UpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiA2VjEyTDE2IDE0TTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVTdGFydFRpbWUgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlU3RhcnRUaW1lLnN1YnN0cigtOCkgOiBjb25maWdEYXRhPy5vcGVuVGltZX19IHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZUVuZFRpbWUgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRW5kVGltZS5zdWJzdHIoLTgpIDogY29uZmlnRGF0YT8uY2xvc2VUaW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IG14LTIgc3ViXCIgKm5nSWY9XCJzaG93UmFuZ2VWYWx1ZVwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNiAyVjZNOCAyVjZNMyAxMEgyMU01IDRIMTlDMjAuMTA0NiA0IDIxIDQuODk1NDMgMjEgNlYyMEMyMSAyMS4xMDQ2IDIwLjEwNDYgMjIgMTkgMjJINUMzLjg5NTQzIDIyIDMgMjEuMTA0NiAzIDIwVjZDMyA0Ljg5NTQzIDMuODk1NDMgNCA1IDRaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTIgbXMtMlwiPjxzcGFuPnt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnU3RhcnREYXRlfX08L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9PSAnJyAmJiBjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlICE9PSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHt7Y29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZX19PC9zcGFuPjwvc3Bhbj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTZcIj5Bc3NpZ248L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTYgNEgxOEMxOC41MzA0IDQgMTkuMDM5MSA0LjIxMDcxIDE5LjQxNDIgNC41ODU3OUMxOS43ODkzIDQuOTYwODYgMjAgNS40Njk1NyAyMCA2VjIwQzIwIDIwLjUzMDQgMTkuNzg5MyAyMS4wMzkxIDE5LjQxNDIgMjEuNDE0MkMxOS4wMzkxIDIxLjc4OTMgMTguNTMwNCAyMiAxOCAyMkg2QzUuNDY5NTcgMjIgNC45NjA4NiAyMS43ODkzIDQuNTg1NzkgMjEuNDE0MkM0LjIxMDcxIDIxLjAzOTEgNCAyMC41MzA0IDQgMjBWNkM0IDUuNDY5NTcgNC4yMTA3MSA0Ljk2MDg2IDQuNTg1NzkgNC41ODU3OUM0Ljk2MDg2IDQuMjEwNzEgNS40Njk1NyA0IDYgNEg4TTkgMkgxNUMxNS41NTIzIDIgMTYgMi40NDc3MiAxNiAzVjVDMTYgNS41NTIyOCAxNS41NTIzIDYgMTUgNkg5QzguNDQ3NzIgNiA4IDUuNTUyMjggOCA1VjNDOCAyLjQ0NzcyIDguNDQ3NzIgMiA5IDJaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+IHt7Y292ZXJhZ2UgfCB0aXRsZWNhc2V9fXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMy4wODk5NSA2Ljg4MzMyTDMuMDI0MDEgNi45ODYzMkMyLjMwMzU4IDguMjU1MjEgMy4wNjEwMSA5Ljg3OTA4IDQuNDY0NjQgMTAuMDY1OUM0LjU4NjI3IDEwLjA4MDggNC43MDExMiAxMC4wODg5IDQuODE0NSAxMC4wODg5QzUuNTUyNTUgMTAuMDg4OSA2LjIwNTIzIDkuNzcxOTIgNi42NTk1MyA5LjI3ODhMNy4yMTI4NiA4LjY3ODE4TDcuNzY0MzIgOS4yODA1MkM4LjIxMzY3IDkuNzcxMzUgOC44NjUyIDEwLjA4ODkgOS42MDc3NiAxMC4wODg5QzEwLjM0NzEgMTAuMDg4OSAxMS4wMDIyIDkuNzcxIDExLjQ1MTIgOS4yODA1MkwxMi4wMDQ0IDguNjc2MjlMMTIuNTU3NiA5LjI4MDUyQzEzLjAwNjYgOS43NzEgMTMuNjYxNyAxMC4wODg5IDE0LjQwMSAxMC4wODg5QzE1LjE0MDQgMTAuMDg4OSAxNS43OTU0IDkuNzcxIDE2LjI0NDUgOS4yODA1MkwxNi43OTc3IDguNjc2MjlMMTcuMzUwOCA5LjI4MDUyQzE3Ljc5OTkgOS43NzEgMTguNDU0OSAxMC4wODg5IDE5LjE5NDMgMTAuMDg4OUMxOS4zMDQxIDEwLjA4ODkgMTkuNDIyMyAxMC4wODA4IDE5LjU0MzMgMTAuMDY2QzIwLjk3NzIgOS44NzEzMSAyMS43MzU1IDguMTYzNTEgMjAuOTE1NSA2Ljg4MzgyQzIwLjkxNTQgNi44ODM3NiAyMC45MTU0IDYuODgzNzEgMjAuOTE1NCA2Ljg4MzY1TDE4LjgwNTYgMy41OTM5MkwxOC44MDU2IDMuNTkzOTJMMTguODA0NiAzLjU5MjQ2QzE4Ljc1ODIgMy41MTk2NiAxOC42NjQ5IDMuNDYzODcgMTguNTU4NCAzLjQ2Mzg3SDUuNDQzMDdDNS4zMzY1IDMuNDYzODcgNS4yNDMyNiAzLjUxOTY2IDUuMTk2ODEgMy41OTI0Nkw1LjE5NjE5IDMuNTkzNDJMMy4wODk5NSA2Ljg4MzMyWk00LjgxODE4IDEyLjc0OTZDNC43MTY0NCAxMi43NDk2IDQuNjE2IDEyLjc0NjUgNC41MTY5IDEyLjc0MDZWMTYuNjQyNFYxOC45NjM5QzQuNTE2OSAxOS44MjA3IDUuMjI2NjMgMjAuNTM1MyA2LjExOTQyIDIwLjUzNTNIMTcuODgyQzE4Ljc3NDggMjAuNTM1MyAxOS40ODQ1IDE5LjgyMDcgMTkuNDg0NSAxOC45NjM5VjE2LjY0MjRWMTIuNzQxMUMxOS4zODc0IDEyLjc0NjYgMTkuMjg5MyAxMi43NDk2IDE5LjE5MDYgMTIuNzQ5NkMxOS4wMDIyIDEyLjc0OTYgMTguODE1NyAxMi43Mzk1IDE4LjYzMiAxMi43MTk4VjE2LjY0MjRWMTcuMzkyNEgxNy44ODJINi4xMTk0Mkg1LjM2OTQyVjE2LjY0MjRWMTIuNzIwNkM1LjE4ODY2IDEyLjczOTcgNS4wMDQ3MiAxMi43NDk2IDQuODE4MTggMTIuNzQ5NlpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm10LTIgbXMtMlwiPnt7YXNzaWduU2luZ2xlPy5sZW5ndGggKyBncm91cEFzc2lnbj8ubGVuZ3RofX0ge3tjb3ZlcmFnZX19e3soYXNzaWduU2luZ2xlPy5sZW5ndGggKyBncm91cEFzc2lnbj8ubGVuZ3RoKSA+IDEgPyAncyc6Jyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEwIGVkaXRxdWVzXCIgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpICYmICFkaXNhYmxlZFF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2F2ZWFuZHJlZGlyZWN0KG9iai5jaGVja0xpc3RJZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGFzaGVkIGJ0biBidG4tbGlnaHQgdXBsb2FkXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjY2NjYgMi41MDA5QzE0Ljg4NTUgMi4yODIwMyAxNS4xNDUzIDIuMTA4NDIgMTUuNDMxMyAxLjk4OTk2QzE1LjcxNzMgMS44NzE1MSAxNi4wMjM4IDEuODEwNTUgMTYuMzMzMyAxLjgxMDU1QzE2LjY0MjggMS44MTA1NSAxNi45NDkzIDEuODcxNTEgMTcuMjM1MyAxLjk4OTk2QzE3LjUyMTMgMi4xMDg0MiAxNy43ODExIDIuMjgyMDMgMTggMi41MDA5QzE4LjIxODggMi43MTk3NyAxOC4zOTI0IDIuOTc5NjEgMTguNTEwOSAzLjI2NTU4QzE4LjYyOTQgMy41NTE1NCAxOC42OTAzIDMuODU4MDQgMTguNjkwMyA0LjE2NzU3QzE4LjY5MDMgNC40NzcxIDE4LjYyOTQgNC43ODM2IDE4LjUxMDkgNS4wNjk1NkMxOC4zOTI0IDUuMzU1NTMgMTguMjE4OCA1LjYxNTM3IDE4IDUuODM0MjRMNi43NDk5NiAxNy4wODQyTDIuMTY2NjMgMTguMzM0MkwzLjQxNjYzIDEzLjc1MDlMMTQuNjY2NiAyLjUwMDlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJ1cGxvYWR0ZXh0XCI+RWRpdCBRdWVzdGlvbnM8L3NwYW4+PC9hPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cIlsndW5pZm9ybWRldGVjdGlvbicsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBzZWN0aW9uLWxlZnRoZWFkaW5nMVwiPkFsZXJ0czwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC02IG14LTQgc3ViXCI+RW1haWw8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cIlsndW5pZm9ybWRldGVjdGlvbicsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cIm14LTQgbXQtNCBzdWJcIj5pZiB1c2FnZSBleGNlZWRzXHJcbiAgICAgICAgICAgICAgICAgICAge3tjb25maWdEYXRhPy5haUNvbmZpZz8ubW9iaWxlRGV0ZWN0aW9uPy51c2FnZUV4Y2VlZH19XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRzXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAnc3RvcmVvcGVuYW5kY2xvc2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzFcIj5BbGVydHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC00IHN1YlwiPlNlbmQgZW1haWwgZXZlcnlkYXkgdG88L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKSAmJiBjb25maWdEYXRhLmFpQ29uZmlnLmV2ZW50cz8ubGVuZ3RoXCIgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9PT0nZ2xvYmFsJ1wiIGNsYXNzPVwic2NlZHVsZS10ZXh0XCI+RXZlcnlkYXkgYXQge3sgZGF5anMoY29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHNbMF0/LnRpbWUsJ0hIOk1NJykuZm9ybWF0KCdoaDptbSBBJykgfX0gZm9yIHt7Y29uZmlnRGF0YS5haUNvbmZpZy5ldmVudHNbMF0/LmR1cmF0aW9ufX0gbWluczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9PT0nc3RvcmUnXCIgY2xhc3M9XCJzY2VkdWxlLXRleHRcIj5NdWx0aXBsZSB0aW1lcyBhcmUgYWxsb2NhdGVkIGZvciBtdWx0aXBsZSBzdG9yZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKSAmJiBjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0cy51c2Vycz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzEgbXQtNFwiPkFsZXJ0cyBUbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBhbGVydCBvZiBjb25maWdEYXRhLmFpQ29uZmlnLmFsZXJ0cy51c2Vyc1wiIGNsYXNzPVwibXQtMiBtcy0yIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgaC0yNXB4XCI+PHNwYW4gY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSByb3VuZGVkLTUgbWUtMVwiPnt7Z2V0SW5pdGlhbHMoYWxlcnQ/Lm5hbWUpfX08L3NwYW4+IHt7YWxlcnQ/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGgzICpuZ0lmPVwiWyd1bmlmb3JtZGV0ZWN0aW9uJywnbW9iaWxldXNhZ2VkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKSAmJiBjb25maWdEYXRhPy5haUNvbmZpZz8ubW9iaWxlRGV0ZWN0aW9uPy5kZXRlY3Rpb25BcmVhPy5sZW5ndGhcIiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW4gXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzEgbXQtNFwiPkRldGVjdGlvbiBBcmVhczwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgc3ViXCI+PHNwYW4gKm5nRm9yPVwibGV0IHpvbmUgb2YgY29uZmlnRGF0YT8uYWlDb25maWc/Lm1vYmlsZURldGVjdGlvbj8uZGV0ZWN0aW9uQXJlYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIG14LTIgbXQtNCBiYWRnZS1saWdodCBjaGVja2xpc3RsYWJlbCBoLTI1cHggZnMtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSByb3VuZGVkLTUgbWUtMVwiPnt7Z2V0SW5pdGlhbHMoem9uZT8ubmFtZSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwia2ktZHVvdG9uZSBraS1hcnJvdy11cCBjaGVja2xpc3R0ZXh0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t6b25lPy5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgc2VjdGlvbi1sZWZ0aGVhZGluZzEgbXQtNFwiPkFzc2lnbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IG14LTIgc3ViXCI+PHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTYgNEgxOEMxOC41MzA0IDQgMTkuMDM5MSA0LjIxMDcxIDE5LjQxNDIgNC41ODU3OUMxOS43ODkzIDQuOTYwODYgMjAgNS40Njk1NyAyMCA2VjIwQzIwIDIwLjUzMDQgMTkuNzg5MyAyMS4wMzkxIDE5LjQxNDIgMjEuNDE0MkMxOS4wMzkxIDIxLjc4OTMgMTguNTMwNCAyMiAxOCAyMkg2QzUuNDY5NTcgMjIgNC45NjA4NiAyMS43ODkzIDQuNTg1NzkgMjEuNDE0MkM0LjIxMDcxIDIxLjAzOTEgNCAyMC41MzA0IDQgMjBWNkM0IDUuNDY5NTcgNC4yMTA3MSA0Ljk2MDg2IDQuNTg1NzkgNC41ODU3OUM0Ljk2MDg2IDQuMjEwNzEgNS40Njk1NyA0IDYgNEg4TTkgMkgxNUMxNS41NTIzIDIgMTYgMi40NDc3MiAxNiAzVjVDMTYgNS41NTIyOCAxNS41NTIzIDYgMTUgNkg5QzguNDQ3NzIgNiA4IDUuNTUyMjggOCA1VjNDOCAyLjQ0NzcyIDguNDQ3NzIgMiA5IDJaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9XCJtdC0yIG1zLTJcIj4gU3RvcmVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBteC0yIHN1YlwiPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMuMDg5OTUgNi44ODMzMkwzLjAyNDAxIDYuOTg2MzJDMi4zMDM1OCA4LjI1NTIxIDMuMDYxMDEgOS44NzkwOCA0LjQ2NDY0IDEwLjA2NTlDNC41ODYyNyAxMC4wODA4IDQuNzAxMTIgMTAuMDg4OSA0LjgxNDUgMTAuMDg4OUM1LjU1MjU1IDEwLjA4ODkgNi4yMDUyMyA5Ljc3MTkyIDYuNjU5NTMgOS4yNzg4TDcuMjEyODYgOC42NzgxOEw3Ljc2NDMyIDkuMjgwNTJDOC4yMTM2NyA5Ljc3MTM1IDguODY1MiAxMC4wODg5IDkuNjA3NzYgMTAuMDg4OUMxMC4zNDcxIDEwLjA4ODkgMTEuMDAyMiA5Ljc3MSAxMS40NTEyIDkuMjgwNTJMMTIuMDA0NCA4LjY3NjI5TDEyLjU1NzYgOS4yODA1MkMxMy4wMDY2IDkuNzcxIDEzLjY2MTcgMTAuMDg4OSAxNC40MDEgMTAuMDg4OUMxNS4xNDA0IDEwLjA4ODkgMTUuNzk1NCA5Ljc3MSAxNi4yNDQ1IDkuMjgwNTJMMTYuNzk3NyA4LjY3NjI5TDE3LjM1MDggOS4yODA1MkMxNy43OTk5IDkuNzcxIDE4LjQ1NDkgMTAuMDg4OSAxOS4xOTQzIDEwLjA4ODlDMTkuMzA0MSAxMC4wODg5IDE5LjQyMjMgMTAuMDgwOCAxOS41NDMzIDEwLjA2NkMyMC45NzcyIDkuODcxMzEgMjEuNzM1NSA4LjE2MzUxIDIwLjkxNTUgNi44ODM4MkMyMC45MTU0IDYuODgzNzYgMjAuOTE1NCA2Ljg4MzcxIDIwLjkxNTQgNi44ODM2NUwxOC44MDU2IDMuNTkzOTJMMTguODA1NiAzLjU5MzkyTDE4LjgwNDYgMy41OTI0NkMxOC43NTgyIDMuNTE5NjYgMTguNjY0OSAzLjQ2Mzg3IDE4LjU1ODQgMy40NjM4N0g1LjQ0MzA3QzUuMzM2NSAzLjQ2Mzg3IDUuMjQzMjYgMy41MTk2NiA1LjE5NjgxIDMuNTkyNDZMNS4xOTYxOSAzLjU5MzQyTDMuMDg5OTUgNi44ODMzMlpNNC44MTgxOCAxMi43NDk2QzQuNzE2NDQgMTIuNzQ5NiA0LjYxNiAxMi43NDY1IDQuNTE2OSAxMi43NDA2VjE2LjY0MjRWMTguOTYzOUM0LjUxNjkgMTkuODIwNyA1LjIyNjYzIDIwLjUzNTMgNi4xMTk0MiAyMC41MzUzSDE3Ljg4MkMxOC43NzQ4IDIwLjUzNTMgMTkuNDg0NSAxOS44MjA3IDE5LjQ4NDUgMTguOTYzOVYxNi42NDI0VjEyLjc0MTFDMTkuMzg3NCAxMi43NDY2IDE5LjI4OTMgMTIuNzQ5NiAxOS4xOTA2IDEyLjc0OTZDMTkuMDAyMiAxMi43NDk2IDE4LjgxNTcgMTIuNzM5NSAxOC42MzIgMTIuNzE5OFYxNi42NDI0VjE3LjM5MjRIMTcuODgySDYuMTE5NDJINS4zNjk0MlYxNi42NDI0VjEyLjcyMDZDNS4xODg2NiAxMi43Mzk3IDUuMDA0NzIgMTIuNzQ5NiA0LjgxODE4IDEyLjc0OTZaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwibXQtMiBtcy0yXCI+e3t0aGlzLmNvbmZpZ0RhdGE/LnN0b3JlTGlzdD8ubGVuZ3RofX0gU3RvcmV7e3RoaXMuY29uZmlnRGF0YT8uc3RvcmVMaXN0Py5sZW5ndGggPiAxID8gJ3MnOicnfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKSAmJiBjb25maWdEYXRhLmFwcHJvdmVyPy5sZW5ndGggJiYgY2xpZW50SWQhPT0nNDUyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIHNlY3Rpb24tbGVmdGhlYWRpbmcxIG10LTRcIj5BdXRvbWF0aWMgVGFzazwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBhcHByb3ZlIG9mIGNvbmZpZ0RhdGEuYXBwcm92ZXJcIiBjbGFzcz1cIm10LTIgbXMtMiBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0IGgtMjVweFwiPjxzcGFuIGNsYXNzPVwiYmctbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnkgcm91bmRlZC01IG1lLTFcIj57e2dldEluaXRpYWxzKGFwcHJvdmU/Lm5hbWUpfX08L3NwYW4+e3thcHByb3ZlPy5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC05XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGJnLXRyYW5zcGFyZW50IGJvcmRlci0wIG91dGxpbmUtMCBjYXJkLWZsdXNoIGgteGwtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGJnLXdoaXRlIHJvdW5kZWQtNCBweC03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nXCI+U2NoZWR1bGU8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm14LTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NzRfNjYxOTUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtMiBteC00XCI+RnJvbTwvc3Bhbj4mbmJzcDsmbmJzcDsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMjAwcHggbXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ3N0YXJ0JylcIiBbKG5nTW9kZWwpXT1cInN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNldCBzdG9yZSBvcGVuIHRpbWVcIiBuYW1lPVwiZHVlX2RhdGVcIiB0eXBlPVwidGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWIgbXQtMyBteC00XCI+VG88L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMjAwcHggbXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ2VuZCcpXCIgWyhuZ01vZGVsKV09XCJlbmRUaW1lXCIgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkdWVfZGF0ZVwiIHR5cGU9XCJ0aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnbW9iaWxldXNhZ2VkZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTUgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vYmlsZSBkZXRlY3Rpb25zIGFyZSBwcmUtc2NoZWR1bGVkLCBvcGVyYXRlIGR1cmluZyB0aGUgc3RvcmUncyBvcGVuIGhvdXJzIGJhc2VkIG9uIGl0cyBvcGVuaW5nIGFuZCBjbG9zaW5nIHRpbWVzLCBhbmQgY2Fubm90IGJlIGVkaXRlZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3N0b3Jlb3BlbmFuZGNsb3NlJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC01IGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIG9wZW4gYW5kIGNsb3NlIGRldGVjdGlvbnMgb3BlcmF0ZSBiYXNlZCBvbiB0aGUgY3VycmVudCBzdG9yZSdzIG9wZW5pbmcgYW5kIGNsb3NpbmcgdGltZXMuIFlvdSBjYW4gdmlldy9lZGl0IHN0b3Jl4oCZcyBvcGVuIGFuZCBjbG9zZSB0aW1pbmdzIGluIHRoZSAnQXNzaWduIFN0b3JlcyBhbmQgQ2x1c3Rlcicgc2VjdGlvbiBiZWxvd1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnc2NydW0nXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTUgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHN0b3JlJ3Mgb3BlbiBhbmQgY2xvc2UgdGltZXMgYXJlIHNldCBpbiB0aGUgPHNwYW4gY2xhc3M9XCJmdy1ib2xkZXJcIj5zdG9yZSBjb25maWd1cmF0aW9ucy48L3NwYW4+IFRvIG1ha2UgY2hhbmdlcywgcGxlYXNlIHVwZGF0ZSA8c3BhbiByb3V0ZXJMaW5rPVwiL21hbmFnZS9zZXR0aW5ncy9jb25maWd1cmF0aW9uXCIgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCI+Y2xpY2sgaGVyZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NsZWFuaW5nJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcC01IGFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMiAxNlYxMk0xMiA4SDEyLjAxTTIyIDEyQzIyIDE3LjUyMjggMTcuNTIyOCAyMiAxMiAyMkM2LjQ3NzE1IDIyIDIgMTcuNTIyOCAyIDEyQzIgNi40NzcxNSA2LjQ3NzE1IDIgMTIgMkMxNy41MjI4IDIgMjIgNi40NzcxNSAyMiAxMlpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0IG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBzdG9yZSdzIG9wZW4gYW5kIGNsb3NlIHRpbWVzIGFyZSBzZXQgaW4gdGhlIDxzcGFuIGNsYXNzPVwiZnctYm9sZGVyXCI+c3RvcmUgY29uZmlndXJhdGlvbnMuPC9zcGFuPiBUbyBtYWtlIGNoYW5nZXMsIHBsZWFzZSB1cGRhdGUgPHNwYW4gcm91dGVyTGluaz1cIi9tYW5hZ2Uvc2V0dGluZ3MvY29uZmlndXJhdGlvblwiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiPmNsaWNrIGhlcmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydzdGFmZmxlZnRpbnRoZW1pZGRsZSddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtNSBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIEFJIGNoZWNrbGlzdCB3aWxsIGluaXRpYXRlIGRldGVjdGlvbnMgYmFzZWQgb24gdGhlIHN0b3JlJ3Mgb3BlcmF0aW9uYWwgaG91cnMsIHN0YXJ0aW5nIHdoZW4gdGhlIHN0b3JlIG9wZW5zIGFuZCBzdG9wcGluZyB3aGVuIGl0IGNsb3Nlcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2N1c3RvbWVydW5hdHRlbmRlZCddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHAtNSBhbGVydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgMTZWMTJNMTIgOEgxMi4wMU0yMiAxMkMyMiAxNy41MjI4IDE3LjUyMjggMjIgMTIgMjJDNi40NzcxNSAyMiAyIDE3LjUyMjggMiAxMkMyIDYuNDc3MTUgNi40NzcxNSAyIDEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIEFJIGNoZWNrbGlzdCB3aWxsIGluaXRpYXRlIGRldGVjdGlvbnMgYmFzZWQgb24gdGhlIHN0b3JlJ3Mgb3BlcmF0aW9uYWwgaG91cnMsIHN0YXJ0aW5nIHdoZW4gdGhlIHN0b3JlIG9wZW5zIGFuZCBzdG9wcGluZyB3aGVuIGl0IGNsb3Nlcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3VuaWZvcm1kZXRlY3Rpb24nXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTUgYWxlcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyIDE2VjEyTTEyIDhIMTIuMDFNMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyQzE3LjUyMjggMiAyMiA2LjQ3NzE1IDIyIDEyWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pZm9ybSBkZXRlY3Rpb25zIGFyZSBhdXRvbWF0aWNhbGx5IHNjaGVkdWxlZCBiYXNlZCBvbiB0aGUgc3RvcmUncyBvcGVyYXRpbmcgaG91cnMgYW5kIHJ1biBkdXJpbmcgb3BlbiBob3Vycy4gVGhlc2Ugc2NoZWR1bGVzIGNhbm5vdCBiZSBtb2RpZmllZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NsZWFuaW5nJywnc2NydW0nXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNiBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiY2xpY2tBSWNvbmZpZ3VyZSgnZ2xvYmFsJylcIiBbbmdDbGFzc109XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnZ2xvYmFsJz8gJ2NvbmZpZ3VyZUFjaXRlJyA6ICdib3JkZXIgYm9yZGVyLTEnXCIgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBoLTcwcHggcm91bmRlZC0zIHAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIFthdHRyLmZpbGxdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAnI0VBRjhGRicgOiAnI0YyRjRGNydcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIFthdHRyLnN0cm9rZV09XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnZ2xvYmFsJyA/ICcjREFGMUZGJyA6JyNGOUZBRkInXCIgc3Ryb2tlLXdpZHRoPVwiNFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTAxNzlfNDY4NjcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjc1IDI2QzExLjI4NTkgMjYgMTAuODQwOCAyNS44MTU2IDEwLjUxMjYgMjUuNDg3NEMxMC4xODQ0IDI1LjE1OTIgMTAgMjQuNzE0MSAxMCAyNC4yNVYxMS43NUMxMCAxMC43ODQgMTAuNzg0IDEwIDExLjc1IDEwSDIwLjI1QzIxLjIxNiAxMCAyMiAxMC43ODQgMjIgMTEuNzVWMjQuMjVDMjIgMjQuMzM1IDIxLjk5NCAyNC40MTggMjEuOTgyIDI0LjVIMjQuMjVDMjQuMzE2MyAyNC41IDI0LjM3OTkgMjQuNDczNyAyNC40MjY4IDI0LjQyNjhDMjQuNDczNyAyNC4zNzk5IDI0LjUgMjQuMzE2MyAyNC41IDI0LjI1VjE4LjI4NUMyNC41IDE4LjI0MzkgMjQuNDg5OSAxOC4yMDM0IDI0LjQ3MDYgMTguMTY3MUMyNC40NTEyIDE4LjEzMDggMjQuNDIzMiAxOC4wOTk5IDI0LjM4OSAxOC4wNzdMMjMuMzM0IDE3LjM3NEMyMy4yNTIxIDE3LjMxOTQgMjMuMTgxNyAxNy4yNDkxIDIzLjEyNjkgMTcuMTY3M0MyMy4wNzIxIDE3LjA4NTUgMjMuMDMzOSAxNi45OTM3IDIzLjAxNDYgMTYuODk3MUMyMi45OTUzIDE2LjgwMDUgMjIuOTk1MiAxNi43MDExIDIzLjAxNDMgMTYuNjA0NUMyMy4wMzM0IDE2LjUwNzggMjMuMDcxNCAxNi40MTU5IDIzLjEyNiAxNi4zMzRDMjMuMTgwNiAxNi4yNTIxIDIzLjI1MDkgMTYuMTgxNyAyMy4zMzI3IDE2LjEyNjlDMjMuNDE0NSAxNi4wNzIxIDIzLjUwNjMgMTYuMDMzOSAyMy42MDI5IDE2LjAxNDZDMjMuNjk5NSAxNS45OTUzIDIzLjc5ODkgMTUuOTk1MiAyMy44OTU1IDE2LjAxNDNDMjMuOTkyMiAxNi4wMzM0IDI0LjA4NDEgMTYuMDcxNCAyNC4xNjYgMTYuMTI2TDI1LjIyMSAxNi44MjlDMjUuNzA4IDE3LjE1NCAyNiAxNy43IDI2IDE4LjI4NVYyNC4yNUMyNiAyNC43MTQxIDI1LjgxNTYgMjUuMTU5MiAyNS40ODc0IDI1LjQ4NzRDMjUuMTU5MiAyNS44MTU2IDI0LjcxNDEgMjYgMjQuMjUgMjZIMjAuNzVDMjAuNjgzNSAyNS45OTk5IDIwLjYxNzMgMjUuOTkxMiAyMC41NTMgMjUuOTc0QzIwLjQ1NCAyNS45OTEgMjAuMzUzIDI2IDIwLjI1IDI2SDE3LjI1QzE3LjA1MTEgMjYgMTYuODYwMyAyNS45MjEgMTYuNzE5NyAyNS43ODAzQzE2LjU3OSAyNS42Mzk3IDE2LjUgMjUuNDQ4OSAxNi41IDI1LjI1VjI0SDE1LjVWMjUuMjVDMTUuNSAyNS40NDg5IDE1LjQyMSAyNS42Mzk3IDE1LjI4MDMgMjUuNzgwM0MxNS4xMzk3IDI1LjkyMSAxNC45NDg5IDI2IDE0Ljc1IDI2SDExLjc1Wk0xMS41IDI0LjI1QzExLjUgMjQuMzg4IDExLjYxMiAyNC41IDExLjc1IDI0LjVIMTRWMjMuMjVDMTQgMjMuMDUxMSAxNC4wNzkgMjIuODYwMyAxNC4yMTk3IDIyLjcxOTdDMTQuMzYwMyAyMi41NzkgMTQuNTUxMSAyMi41IDE0Ljc1IDIyLjVIMTcuMjVDMTcuNDQ4OSAyMi41IDE3LjYzOTcgMjIuNTc5IDE3Ljc4MDMgMjIuNzE5N0MxNy45MjEgMjIuODYwMyAxOCAyMy4wNTExIDE4IDIzLjI1VjI0LjVIMjAuMjVDMjAuMzE2MyAyNC41IDIwLjM3OTkgMjQuNDczNyAyMC40MjY4IDI0LjQyNjhDMjAuNDczNyAyNC4zNzk5IDIwLjUgMjQuMzE2MyAyMC41IDI0LjI1VjExLjc1QzIwLjUgMTEuNjgzNyAyMC40NzM3IDExLjYyMDEgMjAuNDI2OCAxMS41NzMyQzIwLjM3OTkgMTEuNTI2MyAyMC4zMTYzIDExLjUgMjAuMjUgMTEuNUgxMS43NUMxMS42ODM3IDExLjUgMTEuNjIwMSAxMS41MjYzIDExLjU3MzIgMTEuNTczMkMxMS41MjYzIDExLjYyMDEgMTEuNSAxMS42ODM3IDExLjUgMTEuNzVWMjQuMjVaTTEzLjc1IDE2SDE0LjI1QzE0LjQ0ODkgMTYgMTQuNjM5NyAxNi4wNzkgMTQuNzgwMyAxNi4yMTk3QzE0LjkyMSAxNi4zNjAzIDE1IDE2LjU1MTEgMTUgMTYuNzVDMTUgMTYuOTQ4OSAxNC45MjEgMTcuMTM5NyAxNC43ODAzIDE3LjI4MDNDMTQuNjM5NyAxNy40MjEgMTQuNDQ4OSAxNy41IDE0LjI1IDE3LjVIMTMuNzVDMTMuNTUxMSAxNy41IDEzLjM2MDMgMTcuNDIxIDEzLjIxOTcgMTcuMjgwM0MxMy4wNzkgMTcuMTM5NyAxMyAxNi45NDg5IDEzIDE2Ljc1QzEzIDE2LjU1MTEgMTMuMDc5IDE2LjM2MDMgMTMuMjE5NyAxNi4yMTk3QzEzLjM2MDMgMTYuMDc5IDEzLjU1MTEgMTYgMTMuNzUgMTZaTTEzIDEzLjc1QzEzIDEzLjU1MTEgMTMuMDc5IDEzLjM2MDMgMTMuMjE5NyAxMy4yMTk3QzEzLjM2MDMgMTMuMDc5IDEzLjU1MTEgMTMgMTMuNzUgMTNIMTQuMjVDMTQuNDQ4OSAxMyAxNC42Mzk3IDEzLjA3OSAxNC43ODAzIDEzLjIxOTdDMTQuOTIxIDEzLjM2MDMgMTUgMTMuNTUxMSAxNSAxMy43NUMxNSAxMy45NDg5IDE0LjkyMSAxNC4xMzk3IDE0Ljc4MDMgMTQuMjgwM0MxNC42Mzk3IDE0LjQyMSAxNC40NDg5IDE0LjUgMTQuMjUgMTQuNUgxMy43NUMxMy41NTExIDE0LjUgMTMuMzYwMyAxNC40MjEgMTMuMjE5NyAxNC4yODAzQzEzLjA3OSAxNC4xMzk3IDEzIDEzLjk0ODkgMTMgMTMuNzVaTTE3IDE2Ljc1QzE3IDE2LjU1MTEgMTcuMDc5IDE2LjM2MDMgMTcuMjE5NyAxNi4yMTk3QzE3LjM2MDMgMTYuMDc5IDE3LjU1MTEgMTYgMTcuNzUgMTZIMTguMjVDMTguNDQ4OSAxNiAxOC42Mzk3IDE2LjA3OSAxOC43ODAzIDE2LjIxOTdDMTguOTIxIDE2LjM2MDMgMTkgMTYuNTUxMSAxOSAxNi43NUMxOSAxNi45NDg5IDE4LjkyMSAxNy4xMzk3IDE4Ljc4MDMgMTcuMjgwM0MxOC42Mzk3IDE3LjQyMSAxOC40NDg5IDE3LjUgMTguMjUgMTcuNUgxNy43NUMxNy41NTExIDE3LjUgMTcuMzYwMyAxNy40MjEgMTcuMjE5NyAxNy4yODAzQzE3LjA3OSAxNy4xMzk3IDE3IDE2Ljk0ODkgMTcgMTYuNzVaTTE3Ljc1IDEzSDE4LjI1QzE4LjQ0ODkgMTMgMTguNjM5NyAxMy4wNzkgMTguNzgwMyAxMy4yMTk3QzE4LjkyMSAxMy4zNjAzIDE5IDEzLjU1MTEgMTkgMTMuNzVDMTkgMTMuOTQ4OSAxOC45MjEgMTQuMTM5NyAxOC43ODAzIDE0LjI4MDNDMTguNjM5NyAxNC40MjEgMTguNDQ4OSAxNC41IDE4LjI1IDE0LjVIMTcuNzVDMTcuNTUxMSAxNC41IDE3LjM2MDMgMTQuNDIxIDE3LjIxOTcgMTQuMjgwM0MxNy4wNzkgMTQuMTM5NyAxNyAxMy45NDg5IDE3IDEzLjc1QzE3IDEzLjU1MTEgMTcuMDc5IDEzLjM2MDMgMTcuMjE5NyAxMy4yMTk3QzE3LjM2MDMgMTMuMDc5IDE3LjU1MTEgMTMgMTcuNzUgMTNaTTEzIDE5Ljc1QzEzIDE5LjU1MTEgMTMuMDc5IDE5LjM2MDMgMTMuMjE5NyAxOS4yMTk3QzEzLjM2MDMgMTkuMDc5IDEzLjU1MTEgMTkgMTMuNzUgMTlIMTQuMjVDMTQuNDQ4OSAxOSAxNC42Mzk3IDE5LjA3OSAxNC43ODAzIDE5LjIxOTdDMTQuOTIxIDE5LjM2MDMgMTUgMTkuNTUxMSAxNSAxOS43NUMxNSAxOS45NDg5IDE0LjkyMSAyMC4xMzk3IDE0Ljc4MDMgMjAuMjgwM0MxNC42Mzk3IDIwLjQyMSAxNC40NDg5IDIwLjUgMTQuMjUgMjAuNUgxMy43NUMxMy41NTExIDIwLjUgMTMuMzYwMyAyMC40MjEgMTMuMjE5NyAyMC4yODAzQzEzLjA3OSAyMC4xMzk3IDEzIDE5Ljk0ODkgMTMgMTkuNzVaTTE3Ljc1IDE5SDE4LjI1QzE4LjQ0ODkgMTkgMTguNjM5NyAxOS4wNzkgMTguNzgwMyAxOS4yMTk3QzE4LjkyMSAxOS4zNjAzIDE5IDE5LjU1MTEgMTkgMTkuNzVDMTkgMTkuOTQ4OSAxOC45MjEgMjAuMTM5NyAxOC43ODAzIDIwLjI4MDNDMTguNjM5NyAyMC40MjEgMTguNDQ4OSAyMC41IDE4LjI1IDIwLjVIMTcuNzVDMTcuNTUxMSAyMC41IDE3LjM2MDMgMjAuNDIxIDE3LjIxOTcgMjAuMjgwM0MxNy4wNzkgMjAuMTM5NyAxNyAxOS45NDg5IDE3IDE5Ljc1QzE3IDE5LjU1MTEgMTcuMDc5IDE5LjM2MDMgMTcuMjE5NyAxOS4yMTk3QzE3LjM2MDMgMTkuMDc5IDE3LjU1MTEgMTkgMTcuNzUgMTlaXCIgW2F0dHIuZmlsbF09XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnZ2xvYmFsJyA/ICcjMDBBM0ZGJyA6ICdibGFjaydcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzEwMTc5XzQ2ODY3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTAgMTApXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTMgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnZ2xvYmFsJyA/ICd0ZXh0LXByaW1hcnknIDogJydcIiBjbGFzcz1cInVzZXIgZnctYm9sZFwiPkdsb2JhbCBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ2dsb2JhbCcgPyAnYWxlcnR0ZXh0JyA6ICdoZWFkZXJhbGlnbidcIj5Db25maWd1cmUgaHVkZGxlIHRpbWUgaW4gYSBzdG9yZSBsZXZlbCBmb3IgYWxsIHN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgdy0xNXB4IGgtMTVweCBtdC0xIHJvdW5kZWQtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdnbG9iYWwnXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJvbmVUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTYgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImNsaWNrQUljb25maWd1cmUoJ3N0b3JlJylcIiBbbmdDbGFzc109XCJjb25maWdEYXRhPy5haUNvbmZpZz8uYXNzaWduQ29uZmlnID09PSAnc3RvcmUnID8gJ2NvbmZpZ3VyZUFjaXRlJyA6ICdib3JkZXIgYm9yZGVyLTEnXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGgtNzBweCByb3VuZGVkLTMgcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgW2F0dHIuZmlsbF09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9PT0gJ3N0b3JlJyA/ICcjRUFGOEZGJzonI0YyRjRGNydcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIFthdHRyLnN0cm9rZV09XCJjb25maWdEYXRhLmFpQ29uZmlnLmFzc2lnbkNvbmZpZyA9PT0gJ3N0b3JlJyA/ICcjREFGMUZGJyA6ICcjRjlGQUZCJ1wiIHN0cm9rZS13aWR0aD1cIjRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjA1NzQgMTQuNTg4MkwxMi4wMTM0IDE0LjY1NjlDMTEuNTMzMSAxNS41MDI4IDEyLjAzODEgMTYuNTg1NCAxMi45NzM4IDE2LjcwOTlDMTMuMDU0OSAxNi43MTk5IDEzLjEzMTUgMTYuNzI1MyAxMy4yMDcxIDE2LjcyNTNDMTMuNjk5MSAxNi43MjUzIDE0LjEzNDIgMTYuNTE0IDE0LjQzNzEgMTYuMTg1MkwxNC44MDYgMTUuNzg0OEwxNS4xNzM2IDE2LjE4NjRDMTUuNDczMiAxNi41MTM2IDE1LjkwNzUgMTYuNzI1MyAxNi40MDI2IDE2LjcyNTNDMTYuODk1NSAxNi43MjUzIDE3LjMzMjIgMTYuNTEzMyAxNy42MzE1IDE2LjE4NjRMMTguMDAwMyAxNS43ODM1TDE4LjM2OTEgMTYuMTg2NEMxOC42Njg1IDE2LjUxMzMgMTkuMTA1MiAxNi43MjUzIDE5LjU5ODEgMTYuNzI1M0MyMC4wOTEgMTYuNzI1MyAyMC41Mjc3IDE2LjUxMzMgMjAuODI3IDE2LjE4NjRMMjEuMTk1OCAxNS43ODM1TDIxLjU2NDYgMTYuMTg2NEMyMS44NjQgMTYuNTEzMyAyMi4zMDA3IDE2LjcyNTMgMjIuNzkzNiAxNi43MjUzQzIyLjg2NjggMTYuNzI1MyAyMi45NDU2IDE2LjcxOTkgMjMuMDI2MiAxNi43MUMyMy45ODIyIDE2LjU4MDIgMjQuNDg3OCAxNS40NDE3IDIzLjk0MTEgMTQuNTg4NkMyMy45NDEgMTQuNTg4NSAyMy45NDEgMTQuNTg4NSAyMy45NDEgMTQuNTg4NEwyMi41MzQ0IDEyLjM5NTNMMjIuNTMzOCAxMi4zOTQzQzIyLjUwMjggMTIuMzQ1OCAyMi40NDA3IDEyLjMwODYgMjIuMzY5NiAxMi4zMDg2SDEzLjYyNjFDMTMuNTU1MSAxMi4zMDg2IDEzLjQ5MjkgMTIuMzQ1OCAxMy40NjE5IDEyLjM5NDNMMTMuNDYxNSAxMi4zOTVMMTIuMDU3NCAxNC41ODgyWk0xMS42MzYzIDE0LjMxODZMMTMuMDQwNCAxMi4xMjU0TDExLjYzNjMgMTQuMzE4NlpNMTMuMjA5NSAxOC40OTkxQzEzLjE0MTcgMTguNDk5MSAxMy4wNzQ3IDE4LjQ5NyAxMy4wMDg3IDE4LjQ5MzFWMjEuMDk0M1YyMi42NDE5QzEzLjAwODcgMjMuMjEzMSAxMy40ODE4IDIzLjY4OTUgMTQuMDc3IDIzLjY4OTVIMjEuOTE4N0MyMi41MTM5IDIzLjY4OTUgMjIuOTg3MSAyMy4yMTMxIDIyLjk4NzEgMjIuNjQxOVYyMS4wOTQzVjE4LjQ5MzRDMjIuOTIyNCAxOC40OTcxIDIyLjg1NjkgMTguNDk5MSAyMi43OTExIDE4LjQ5OTFDMjIuNjY1NSAxOC40OTkxIDIyLjU0MTIgMTguNDkyMyAyMi40MTg3IDE4LjQ3OTJWMjEuMDk0M1YyMS41OTQzSDIxLjkxODdIMTQuMDc3SDEzLjU3N1YyMS4wOTQzVjE4LjQ3OThDMTMuNDU2NSAxOC40OTI1IDEzLjMzMzkgMTguNDk5MSAxMy4yMDk1IDE4LjQ5OTFaXCIgW2F0dHIuc3Ryb2tlXT1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdzdG9yZScgPyAnIzAwQTNGRicgOiAnIzEwMTgyOCdcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy0zIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ3N0b3JlJyA/ICd0ZXh0LXByaW1hcnknIDogJydcImNsYXNzPVwidXNlciBmdy1ib2xkXCI+U3RvcmUgV2lzZSBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ3N0b3JlJyA/ICdhbGVydHRleHQnIDogJ2hlYWRlcmFsaWduJ1wiPkNvbmZpZ3VyZSBodWRkbGUgdGltZSBpbiBhIHN0b3JlIGxldmVsIGZvciBhbGwgc3RvcmVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCB3LTE1cHggaC0xNXB4IG10LTEgcm91bmRlZC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyA9PT0gJ3N0b3JlJ1wiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwib25lVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5hc3NpZ25Db25maWcgPT09ICdzdG9yZSdcIiBjbGFzcz1cImNvbC1zbS0xMiBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJ1cGxvYWRBSWZpbGVzKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEwOFwiIGhlaWdodD1cIjg4XCIgdmlld0JveD1cIjAgMCAxMDggODhcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMzAuODQ2OVwiIGN5PVwiMzAuODQ2OVwiIHI9XCIzMC44NDY5XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDg0Ljg1MTYgMClcIiBmaWxsPVwiI0VBRUNGMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RkXzk1NDhfOTk2MTMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNTMuMDQ5OSA5LjQ5MjE5QzU5LjQ0MDQgOS40OTIxOSA2NS4wOTMzIDEyLjY1IDY4LjUzMzQgMTcuNDkwNEM2OS42NTY4IDE3LjIyNTUgNzAuODI4MyAxNy4wODUzIDcyLjAzMjYgMTcuMDg1M0M4MC40MTk3IDE3LjA4NTMgODcuMjE4OCAyMy44ODQ0IDg3LjIxODggMzIuMjcxNUM4Ny4yMTg4IDQwLjY1ODUgODAuNDE5NyA0Ny40NTc2IDcyLjAzMjYgNDcuNDU3NkwzNC4wNjcxIDQ3LjQ1NzZDMjYuNzI4NCA0Ny40NTc2IDIwLjc3OTMgNDEuNTA4NCAyMC43NzkzIDM0LjE2OTdDMjAuNzc5MyAyNi44MzEgMjYuNzI4NCAyMC44ODE4IDM0LjA2NzIgMjAuODgxOEMzNC41ODg0IDIwLjg4MTggMzUuMTAyNyAyMC45MTE4IDM1LjYwODMgMjAuOTcwMkMzOC41MTcyIDE0LjIxODcgNDUuMjMxNiA5LjQ5MjE5IDUzLjA0OTkgOS40OTIxOVpcIiBmaWxsPVwiI0Y5RkFGQlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVsbGlwc2UgY3g9XCIxNS4xODYyXCIgY3k9XCIxNS4xODYyXCIgcng9XCIxNS4xODYyXCIgcnk9XCIxNS4xODYyXCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDg3LjIxODggMTcuMDg1OSlcIiBmaWxsPVwidXJsKCNwYWludDBfbGluZWFyXzk1NDhfOTk2MTMpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTguOTgyN1wiIGN5PVwiMTguOTgyN1wiIHI9XCIxOC45ODI3XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDcyLjAzMTIgOS40OTIxOSlcIiBmaWxsPVwidXJsKCNwYWludDFfbGluZWFyXzk1NDhfOTk2MTMpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZWxsaXBzZSBjeD1cIjEzLjI4NzlcIiBjeT1cIjEzLjI4NzlcIiByeD1cIjEzLjI4NzlcIiByeT1cIjEzLjI4NzlcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgNDcuMzU5NCAyMC44Nzg5KVwiIGZpbGw9XCJ1cmwoI3BhaW50Ml9saW5lYXJfOTU0OF85OTYxMylcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjIuOTY2MDVcIiBjeT1cIjIuOTY2MDVcIiByPVwiMi45NjYwNVwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA4OS41OTM4IDguMzA0NjkpXCIgZmlsbD1cIiNGMkY0RjdcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI0LjE1MjQ3XCIgY3k9XCI0LjE1MjQ3XCIgcj1cIjQuMTUyNDdcIiB0cmFuc2Zvcm09XCJtYXRyaXgoLTEgMCAwIDEgOTIuNTYyNSA2MC41MDc4KVwiIGZpbGw9XCIjRjJGNEY3XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNC4xNTI0N1wiIGN5PVwiNC4xNTI0N1wiIHI9XCI0LjE1MjQ3XCIgdHJhbnNmb3JtPVwibWF0cml4KC0xIDAgMCAxIDE3LjIyNjYgMTYuNjA5NClcIiBmaWxsPVwiI0YyRjRGN1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjIuMzcyODRcIiBjeT1cIjIuMzcyODRcIiByPVwiMi4zNzI4NFwiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSAyMS45Njg4IDIuMzcxMDkpXCIgZmlsbD1cIiNGMkY0RjdcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjguNDc0MVwiIGhlaWdodD1cIjI4LjQ3NDFcIiByeD1cIjE0LjIzN1wiIHRyYW5zZm9ybT1cIm1hdHJpeCgtMSAwIDAgMSA2OC4yNDIyIDM2Ljc3NzMpXCIgZmlsbD1cIiMzNDQwNTRcIiBmaWxsLW9wYWNpdHk9XCIwLjRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNDguNjY2IDUyLjc5NDNWNTUuMTY3MUM0OC42NjYgNTUuNDgxOCA0OC43OTEgNTUuNzgzNiA0OS4wMTM1IDU2LjAwNjFDNDkuMjM2IDU2LjIyODYgNDkuNTM3NyA1Ni4zNTM2IDQ5Ljg1MjQgNTYuMzUzNkg1OC4xNTczQzU4LjQ3MiA1Ni4zNTM2IDU4Ljc3MzggNTYuMjI4NiA1OC45OTYzIDU2LjAwNjFDNTkuMjE4OCA1NS43ODM2IDU5LjM0MzggNTUuNDgxOCA1OS4zNDM4IDU1LjE2NzFWNTIuNzk0M001MS4wMzg4IDQ4LjY0MThMNTQuMDA0OSA0NS42NzU4TTU0LjAwNDkgNDUuNjc1OEw1Ni45NzA5IDQ4LjY0MThNNTQuMDA0OSA0NS42NzU4VjUyLjc5NDNcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuMTg2NDJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kZF85NTQ4Xzk5NjEzXCIgeD1cIjAuNzgxMjVcIiB5PVwiOS40OTIxOVwiIHdpZHRoPVwiMTA2LjQzOFwiIGhlaWdodD1cIjc3Ljk2NDhcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlTW9ycGhvbG9neSByYWRpdXM9XCI0XCIgb3BlcmF0b3I9XCJlcm9kZVwiIGluPVwiU291cmNlQWxwaGFcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfOTU0OF85OTYxM1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiOFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDMgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd185NTQ4Xzk5NjEzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVNb3JwaG9sb2d5IHJhZGl1cz1cIjRcIiBvcGVyYXRvcj1cImVyb2RlXCIgaW49XCJTb3VyY2VBbHBoYVwiIHJlc3VsdD1cImVmZmVjdDJfZHJvcFNoYWRvd185NTQ4Xzk5NjEzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIyMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjEyXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA4IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfOTU0OF85OTYxM1wiIHJlc3VsdD1cImVmZmVjdDJfZHJvcFNoYWRvd185NTQ4Xzk5NjEzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0Ml9kcm9wU2hhZG93Xzk1NDhfOTk2MTNcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50MF9saW5lYXJfOTU0OF85OTYxM1wiIHgxPVwiMy41MjUzNlwiIHkxPVwiNS4xNTI0NVwiIHgyPVwiMzAuMzcyNFwiIHkyPVwiMzAuMzcyM1wiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC4zNTA3MTVcIiBzdG9wLWNvbG9yPVwid2hpdGVcIiBzdG9wLW9wYWNpdHk9XCIwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDFfbGluZWFyXzk1NDhfOTk2MTNcIiB4MT1cIjQuNDA2N1wiIHkxPVwiNi40NDA1NlwiIHgyPVwiMzcuOTY1NFwiIHkyPVwiMzcuOTY1NFwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC4zNTA3MTVcIiBzdG9wLWNvbG9yPVwid2hpdGVcIiBzdG9wLW9wYWNpdHk9XCIwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDJfbGluZWFyXzk1NDhfOTk2MTNcIiB4MT1cIjMuMDg0NjlcIiB5MT1cIjQuNTA4MzlcIiB4Mj1cIjI2LjU3NThcIiB5Mj1cIjI2LjU3NThcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjAuMzUwNzE1XCIgc3RvcC1jb2xvcj1cIndoaXRlXCIgc3RvcC1vcGFjaXR5PVwiMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTQwMHB4IHN1YnRpdGxlIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG93bmxvYWQgdGhlIHRlbXBsYXRlIGJlbG93IGluIHRoZSA8c3BhbiBjbGFzcz1cImZ3LWJvbGRlclwiPuKAmEFzc2lnbiBTdG9yZXPigJk8L3NwYW4+IHNlY3Rpb24gYW5kIHVwbG9hZCB0byBjb25maWd1cmUgc3RvcmUtd2lzZSB0aW1lIHRvIHRoZSBjaGVja2xpc3QgYWNjb3JkaW5nbHkuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmFzc2lnbkNvbmZpZyAhPT0gJ3N0b3JlJ1wiIGNsYXNzPVwiY29sLXNtLTEyIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFycmF5IG9mIGNvbmZpZ0RhdGE/LmFpQ29uZmlnPy5ldmVudHM7IGxldCBpPSBpbmRleFwiIGNsYXNzPVwiZC1mbGV4IG1iLTUgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0zXCI+U3RhcnQgaHVkZGxlIGF0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctYXV0byBtYXJnaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZUh1ZGRsZXRpbWUoJGV2ZW50LCd0aW1lJylcIiBbKG5nTW9kZWwpXT1cImFycmF5LnRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNldCBzdG9yZSBvcGVuIHRpbWVcIiBuYW1lPVwic3RhcnRfZGF0ZV97e2l9fVwiIHR5cGU9XCJ0aW1lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtM1wiPmZvciBhIGR1cmF0aW9uIG9mPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xNTBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFycmF5LmR1cmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlSHVkZGxldGltZSgkZXZlbnQsJ2R1cmF0aW9uJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxNVwiPjE1IG1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzMFwiPjMwIG1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0NVwiPjQ1IG1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI2MFwiPjYwIG1pbnM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29uZmlnRGF0YT8uYWlDb25maWc/LmV2ZW50cz8ubGVuZ3RoID4gMVwiPjxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtMyBtcy0zXCIgKGNsaWNrKT1cImRlbGV0ZUh1ZGRsZShpKVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuNSA1LjAwMTNINC4xNjY2N000LjE2NjY3IDUuMDAxM0gxNy41TTQuMTY2NjcgNS4wMDEzVjE2LjY2OEM0LjE2NjY3IDE3LjExIDQuMzQyMjYgMTcuNTMzOSA0LjY1NDgyIDE3Ljg0NjVDNC45NjczOCAxOC4xNTkgNS4zOTEzMSAxOC4zMzQ2IDUuODMzMzMgMTguMzM0NkgxNC4xNjY3QzE0LjYwODcgMTguMzM0NiAxNS4wMzI2IDE4LjE1OSAxNS4zNDUyIDE3Ljg0NjVDMTUuNjU3NyAxNy41MzM5IDE1LjgzMzMgMTcuMTEgMTUuODMzMyAxNi42NjhWNS4wMDEzSDQuMTY2NjdaTTYuNjY2NjcgNS4wMDEzVjMuMzM0NjRDNi42NjY2NyAyLjg5MjYxIDYuODQyMjYgMi40Njg2OCA3LjE1NDgyIDIuMTU2MTJDNy40NjczOCAxLjg0MzU2IDcuODkxMzEgMS42Njc5NyA4LjMzMzMzIDEuNjY3OTdIMTEuNjY2N0MxMi4xMDg3IDEuNjY3OTcgMTIuNTMyNiAxLjg0MzU2IDEyLjg0NTIgMi4xNTYxMkMxMy4xNTc3IDIuNDY4NjggMTMuMzMzMyAyLjg5MjYxIDEzLjMzMzMgMy4zMzQ2NFY1LjAwMTNNOC4zMzMzMyA5LjE2Nzk3VjE0LjE2OE0xMS42NjY3IDkuMTY3OTdWMTQuMTY4XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2J1dHRvbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5haUNvbmZpZz8uZXZlbnRzPy5sZW5ndGggPCAzXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmVcIiAoY2xpY2spPVwiQWRkSHVkZGxlRWVudCgpXCI+IDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTc0IDQuMTY3OTdWMTUuODM0Nk00LjE2NDA2IDEwLjAwMTNIMTUuODMwN1wiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+IDxzcGFuIGNsYXNzPVwibXMtM1wiPkFkZCBFdmVudDwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXQtNiBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC02IHN1YlwiPkZvcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIGRyb3Bkb3duXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVTY2hlZHVsZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJvbmV0aW1lXCI+RG9lcyBOb3QgUmVwZWF0PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ3ZWVrZGF5XCI+IEV2ZXJ5IFdlZWtkYXkgKE1vbiAtIEZyaSk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImRhaWx5XCI+RGFpbHk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIndlZWtseVwiPldlZWtseTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibW9udGhseVwiPk1vbnRobHk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJhbmdlXCI+Q3VzdG9tIFJhbmdlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YiBtdC0zIG14LTJcIj5BdDwvc3Bhbj4mbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTIwMHB4IG1hcmdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVGltZSgnc3RhcnQnKVwiIFsobmdNb2RlbCldPVwic3RhcnRUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCIgbmFtZT1cImR1ZV9kYXRlXCIgdHlwZT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTMgbXMtNVwiPkVuZHM8L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCBmbGF0cGlja3ItaW5wdXQgdy0yMDBweCBtYXJnaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVRpbWUoJ2VuZCcpXCIgWyhuZ01vZGVsKV09XCJlbmRUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgc3RvcmUgb3BlbiB0aW1lXCIgbmFtZT1cImR1ZV9kYXRlXCIgdHlwZT1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctaGVhZGluZ1wiPkNoZWNrbGlzdCBDb25maWd1cmF0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdvbmV0aW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2wtbGctMTIgZC1mbGV4IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViIG10LTNcIj5PbmNlIE9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBweC00IHBlLTNcIiBpZD1cImRhdGVjbGFzc1wiIGRhdGEta3QtZGF0ZXJhbmdlcGlja2VyPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEta3QtZGF0ZXJhbmdlcGlja2VyLW9wZW5zPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZXNcIiBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVSYW5nZVN0YXJ0KCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPT0gJ29uZXRpbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwicmFuZ2VEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG5nLXZhbGlkIG5nLWRpcnR5IG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNob3dSYW5nZVZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdyYW5nZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZURhdGVWYWx1ZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJhbmdlRGF0ZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjaGVja2xpc3R0ZXh0IG1zLTJcIj5TZXQgZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlIHJhbmdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2wtbGctMTIgZC1mbGV4IG10LTVcIiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YiBtdC0zXCI+U3RhcnRzIGZyb208L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgW25nQ2xhc3NdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAncmFuZ2UnID8gJ3BzLTEwJyA6ICdweC00IHBlLTMnXCIgaWQ9XCJkYXRlY2xhc3NcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlci1vcGVucz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiIFttaW5EYXRlXT1cIm1pblN0YXJ0RGF0ZVwiIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFN0YXJ0RGF0ZVwiIFthdXRvQXBwbHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZVJhbmdlU3RhcnQoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG10LTggbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPT0gJ3JhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJcIj5SZXBlYXRzIGV2ZXJ5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgdy0xMDBweCBuZy1wcmlzdGluZSBuZy1pbnZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkRGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMlwiIG1pbj1cIjFcIiAoY2hhbmdlKT1cInVwZGF0ZVJlcGVhdERheSgpXCIgKGlucHV0KT1cInJlbW92ZUFscGhhcGV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IG1iLTUgbXgtMiBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTEwMHB4IG5nLXByaXN0aW5lIG5nLWludmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVwZWF0VHlwZVwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdtb250aGx5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvbnRTaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cImRheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09PSAnZGF5J1wiIChjaGFuZ2UpPVwidXBkYXRlTW9udGgoJ2RheScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+T24gRGF5PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHctMTAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0gJ2RheScgPyAnZGlzYWJsZWQnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoV2Vla1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09ICdkYXknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aD1cIjJcIiAoaW5wdXQpPVwidmFsaWRhdGUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvbnRTaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cImRheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09PSAnZGF0ZSdcIiAoY2hhbmdlKT1cInVwZGF0ZU1vbnRoKCdkYXRlJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJpbmxpbmVSYWRpbzFcIj5PbiB0aGU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1zZWxlY3QtbGcgc2VsZWN0Mi1oaWRkZW4tYWNjZXNzaWJsZSBuZy1wcmlzdGluZSBuZy12YWxpZCBuZy10b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9udGhEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwICE9PSAnZGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+IEZpcnN0IDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj4gU2Vjb25kIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjNcIj4gVGhpcmQ8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+IEZvdXJ0aDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj4gTGFzdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IG1iLTUgbXgtMiBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LWxnIHNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgbmctcHJpc3RpbmUgbmctdmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vbnRoRGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwICE9PSAnZGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTdW5kYXlcIj4gU3VuZGF5IDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIk1vbmRheVwiPiBNb25kYXkgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiVHVlc2RheVwiPiBUdWVzZGF5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiV2VkbmVzZGF5XCI+IFdlZG5lc2RheTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlRodXJzZGF5XCI+IFRodXJzZGF5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiRnJpZGF5XCI+RnJpZGF5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiU2F0dXJkYXlcIj4gU2F0dXJkYXk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbmctc3Rhci1pbnNlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb250U2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJkYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PT0gJ3NwZWNpZmljJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZU1vbnRoKCdzcGVjaWZpYycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+T24gU3BlY2lmaWMgRGF0ZXM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZURyb3BEb3duKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNsb3NlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGRyb3Bkb3duLWlucHV0IHBzLTE0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wRG93bigpXCIgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwICE9PSAnc3BlY2lmaWMnXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUgY3VzdG9tLWRyb3Bkb3duLW1lbnUgdy0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0Ryb3BEb3duXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0yIG1iLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRlIG9mIGRhdGVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gbWUtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZShkYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rIGJ0biB3ZWVrc3R5bGVkYXRlIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWNlbnRlciByb3VuZGVkLXBpbGwgbWluLXctMzVweCBweS0yIHB4LTMgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkRGF0ZS5pbmNsdWRlcyhkYXRlKSA/ICdhY3RpdmUgYnRuLWFjdGl2ZS1wcmltYXJ5JyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYnMtdG9nZ2xlPVwidGFiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaWxsc3R5bGVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXREYXRlKCk7c2hvd0Ryb3BEb3duPSBmYWxzZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJtaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgcHktMyBiYWRnZS1zcGVjaWZpY2RhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTMgZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBkYXRlIG9mIHN1Ym1pdHRlZERhdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1saWdodCBjaGVja2xpc3R0ZXh0IG1lLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldERhdGVXaXRoU3VmZml4KGRhdGUpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwicmVtb3ZlQmFkZ2UoZGF0ZSlcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSAzTDMgOU0zIDNMOSA5XCIgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ3dlZWtkYXknLCd3ZWVrbHknXS5pbmNsdWRlcyhjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXBpbGxzIGQtZmxleCBmbGV4LW5vd3JhcCBtYi0zXCIgcm9sZT1cInRhYmxpc3RcIj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiBbJ1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5JywgJ1NhdHVyZGF5J11cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gbWUtMVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIihjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICd3ZWVrbHknIHx8IChjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICd3ZWVrZGF5JyAmJiAhWydTdW5kYXknLCdTYXR1cmRheSddLmluY2x1ZGVzKGRheSkpKSA/IHNldERheShkYXkpIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgYnRuIHdlZWtzdHlsZSBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgcm91bmRlZC1waWxsIG1pbi13LTQ1cHggbWUtMiBweS00IHB4LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICd3ZWVrZGF5JyAmJiBbJ1N1bmRheScsJ1NhdHVyZGF5J10uaW5jbHVkZXMoZGF5KSkgPyAnY3Vyc29yLWRlZmF1bHQnIDogc2VsZWN0ZWREYXlzLmluY2x1ZGVzKGRheSkgPyAnc2VsZWN0RGF5JyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cInRhYlwiIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBpbGxzdHlsZVwiPnt7IGRheVswXSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAncmFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbmctdmFsaWQgbmctZGlydHkgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic3BlY2lmaWNcIiAoY2hhbmdlKT1cInVwZGF0ZVNwZWNpZmljKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjaGVja2xpc3R0ZXh0IG1zLTJcIj5PbiBTcGVjaWZpY1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC00IHBlLTMgcG9zaXRpb24tcmVsYXRpdmVcIiAoY2xpY2tPdXRzaWRlKT1cImNsb3NlRHJvcERvd24oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jbG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIHctMzAwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZHJvcGRvd24taW5wdXQgcHMtMTRcIiAoY2xpY2spPVwidG9nZ2xlRHJvcERvd24oKVwiIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzcGVjaWZpY1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUgY3VzdG9tLWRyb3Bkb3duLW1lbnUgdy0xMDBcIiAqbmdJZj1cInNob3dEcm9wRG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLW11bHRpLWRhdGUtZGF0ZXBpY2tlciAoc2VsZWN0ZWREYXRlcyk9XCJzZWxlY3RTcGVjaWZpY0RhdGUoJGV2ZW50KVwiIFtwcmVkZWZpbmVkRGF0ZXNdPVwic2VsZWN0ZWREYXRlTGlzdFwiIFtzdGFydERhdGVdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZVwiIFtlbmREYXRlXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlXCI+PC9saWItbXVsdGktZGF0ZS1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBweS0zIGJhZGdlLXNwZWNpZmljZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTMgbXMtNSBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBkYXRlIG9mIHNlbGVjdGVkRGF0ZUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1saWdodCBjaGVja2xpc3R0ZXh0IG1lLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInJlbW92ZURhdGUoZGF0ZSlcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSAzTDMgOU0zIDNMOSA5XCIgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG5nLXN0YXItaW5zZXJ0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIhc2hvd1JhbmdlVmFsdWUgfHwgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnb25ldGltZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIiBbbmdDbGFzc109XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdyYW5nZScgPyAnbXQtNCcgOiAnbXQtMidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJcIj5FbmRzIE9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiIGlkPVwiZGF0ZWNsYXNzXCIgW25nQ2xhc3NdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAncmFuZ2UnID8gJ3BzLTknIDogJ3B4LTQgcGUtMydcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlcj1cInRydWVcIiBkYXRhLWt0LWRhdGVyYW5nZXBpY2tlci1vcGVucz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiIFttaW5EYXRlXT1cIm1pbkVuZERhdGVcIiBbZHJvcHNdPVwiJ2Rvd24nXCIgW29wZW5zXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEVuZERhdGVcIiBbYXV0b0FwcGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZVJhbmdlRW5kKCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSByZW1vdmUgY3Vyc29yLXBvaW50ZXIgbXMtNFwiIChjbGljayk9XCJvbkRhdGVwaWNrZXJSZWZyZXNoKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGUgIT09ICcnICYmIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlICE9PSBudWxsICYmIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSAhPT0ncmFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3ZlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgdXNlclwiICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSA9PT0gJ29uZXRpbWUnXCI+T2NjdXJzIG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBkYXkge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlRGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTMgdXNlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWyd3ZWVrZGF5Jywnd2Vla2x5J10uaW5jbHVkZXMoY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZSlcIj5PY2N1cnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlcnkge3soY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5Py5sZW5ndGggJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5ICE9PScwMScpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5IDogJyd9fSB3ZWVrPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5ICE9PSAwMVwiPnM8L3NwYW4+IG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWREYXlzLnRvU3RyaW5nKCl9fTxzcGFuICpuZ0lmPVwic2hvd1JhbmdlVmFsdWVcIj4gc3RhcnRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdTdGFydERhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSd9fSA8c3BhbiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZVwiPnVudGlsIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zIHVzZXJcIiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGUgPT09ICdkYWlseSdcIj5PY2N1cnMgZXZlcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3soY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5Py5sZW5ndGggJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5ICE9PSAnMDEnKSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSA6ICcnfX0gZGF5PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5ICE9PSAwMVwiPnM8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1JhbmdlVmFsdWVcIj4gc3RhcnRpbmcge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlOidkZCBNTU0gWVlZWSd9fSA8c3BhbiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSBcIj51bnRpbCB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319PC9zcGFuPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAnbW9udGhseSdcIj5PY2N1cnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlcnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3soY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5Py5sZW5ndGggJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkRGF5ICE9PSAnMDEnKSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSA6ICcnfX0gbW9udGg8c3BhbiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uc2NoZWR1bGVSZXBlYXRlZERheSAhPT0gMDFcIj5zIDwvc3Bhbj57eyhjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlUmVwZWF0ZWRNb250aFNldHVwID09PSAnZGF5JykgPyAoJ29uIGRheSAnICsgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlUmVwZWF0ZWRNb250aFdlZWspIDogY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCA9PT0gJ2RhdGUnID8gdXBkYXRlTW9udGhWYWx1ZSgpOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVTcGVjaWZpY1ZhbHVlKCl9fTxzcGFuICpuZ0lmPVwic2hvd1JhbmdlVmFsdWVcIj4gc3RhcnRpbmcge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ0VuZERhdGVcIj51bnRpbCB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZSB8IGRhdGU6J2RkIE1NTSBZWVlZJ319PC9zcGFuPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMyB1c2VyXCIgKm5nSWY9XCJjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LnNjaGVkdWxlID09PSAncmFuZ2UnXCI+T2NjdXJzIGV2ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5zY2hlZHVsZVdlZWtEYXlzPy50b1N0cmluZygpfX0gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1JhbmdlVmFsdWVcIj4gc3RhcnRpbmcge3tjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHM/LmNvbmZpZ1N0YXJ0RGF0ZSB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlOidkZCBNTU0gWVlZWSd9fSA8c3BhbiAqbmdJZj1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscz8uY29uZmlnRW5kRGF0ZVwiPnVudGlsIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5jb25maWdFbmREYXRlIHwgZGF0ZTonZGQgTU1NIFlZWVknfX08L3NwYW4+PC9zcGFuPjwvZGl2PlxyXG4gICAgXHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1sZWZ0XCIgKm5nSWY9XCJbJ2N1c3RvbSddLmluY2x1ZGVzKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1oZWFkaW5nXCI+UmVzcG9uc2UgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwibXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNvbmZpZ2FjY29yZGlhbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3JvdGF0ZScgOiBzaG93Y29uZmlnfVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Y29uZmlnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2RrRHJhZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ29uZXRpbWUnLCdkYWlseSddLmluY2x1ZGVzKGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUpIHx8IChjb25maWdEYXRhPy5jaGVja0xpc3REZXRhaWxzLnNjaGVkdWxlID09PSAnbW9udGhseScgJiYgIGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGVSZXBlYXRlZE1vbnRoU2V0dXAgIT09J3NwZWNpZmljJykgPyAnYmctY29sb3ItZGlzYWJsZWQnIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBjaGVja2xpc3R0dXJub2ZmIG10LTQgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFsbG93T25jZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd09uY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm9uZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlsnb25ldGltZScsJ2RhaWx5J10uaW5jbHVkZXMoY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZSkgfHwgKGNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHMuc2NoZWR1bGUgPT09ICdtb250aGx5JyAmJiAgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5zY2hlZHVsZVJlcGVhdGVkTW9udGhTZXR1cCAhPT0nc3BlY2lmaWMnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YiBtcy0yXCIgZm9yPVwib25lVGltZVwiPk9ubHkgb25lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHQgbXMtMlwiIGZvcj1cIm9uZVRpbWVcIj5CeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxpbmcgdGhpcywgdGhlIHJlc3BvbnNlIGNhbiBiZSBjYXB0dXJlZCBvbmx5IG9uY2UgZm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIGNoZWNrbGlzdCA8c3BhbiAqbmdJZj1cInNob3dSYW5nZVZhbHVlXCI+ZnJvbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ1N0YXJ0RGF0ZX19IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmNvbmZpZ0VuZERhdGVcIj50b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5jb25maWdFbmREYXRlfX0uPC9zcGFuPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCIgY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxsb3dlZE92ZXJUaW1lID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hbGxvd2VkT3ZlclRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZmlsbFJlc3BvbnNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YiBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmaWxsUmVzcG9uc2VcIj5GaWxsIHJlc3BvbnNlIGFmdGVyIGNvbmZpZ3VyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUuPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHQgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmlsbFJlc3BvbnNlXCI+QnkgZW5hYmxpbmcsIHRoZSB1c2VyIGNhbiBmaWxsIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrbGlzdCBldmVuIGFmdGVyIHRoZSBhYm92ZSBjb25maWd1cmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kLXRpbWUuPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ2LXJvdyBjaGVja2xpc3R0dXJub2ZmIG10LTQgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFsbG93ZWRTdG9yZUxvY2F0aW9uID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93ZWRTdG9yZUxvY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJnZW9GZW5jaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3ViIG1zLTJcIiBmb3I9XCJnZW9GZW5jaW5nXCI+R2VvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZW5jaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHQgbXMtMlwiIGZvcj1cImdlb0ZlbmNpbmdcIj5CeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxpbmcsIHRoZSBjaGVja2xpc3QgY2FuIGJlIGZpbGxlZCBieSB0aGUgdXNlciBvbmx5IHdoZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2lkZSB0aGUgc3RvcmUuPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnYtcm93IGNoZWNrbGlzdHR1cm5vZmYgbXQtNCBmdi1wbHVnaW5zLWljb24tY29udGFpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYWxsb3dlZE11bHRpU3VibWl0ID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFsbG93ZWRNdWx0aVN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWxsb3dlZE11bHRpU3VibWl0U3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3ViIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiYWxsb3dlZE11bHRpU3VibWl0U3dpdGNoXCI+QWxsb3cgbXVsdGlwbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlczwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHN1YnRleHQgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJhbGxvd2VkTXVsdGlTdWJtaXRTd2l0Y2hcIj5CeSBlbmFibGluZywgdGhlIGNoZWNrbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuIGJlIGZpbGxlZCBtdWx0aXBsZSB0aW1lcyBpbiBhIGRheTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgY2hlY2tsaXN0dHVybm9mZiBtdC00IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiIFtjaGVja2VkXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LnJlc3RyaWN0QXR0ZW5kYW5jZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZXN0cmljdEF0dGVuZGFuY2VcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGlkPVwicmVzdHJpY3RBdHRlbmRhbmNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3ViIG1zLTJcIiBmb3I9XCJyZXN0cmljdEF0dGVuZGFuY2VcIj5SZXN0cmljdCBhdHRlbmRhbmNlPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dCBtcy0yXCIgZm9yPVwicmVzdHJpY3RBdHRlbmRhbmNlXCI+QnkgZW5hYmxpbmcsIHVzZXIgY2FuJ3QgYmUgYWJsZSB0byBjbG9ja291dCB3aXRob3V0IGNvbXBsZXRpbmcgdGhlIHRhc2suPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdFwiICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctaGVhZGluZ1wiPkFkdmFuY2UgQ29uZmlndXJhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwibXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImFkdmFuY2VhY2NvcmRpYW4oKVwiIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3dhZHZhbmNlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93YWR2YW5jZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0RyYWc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmb3JtLWNoZWNrLWxhYmVsIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Q2hlY2tsaXN0IE93bmVyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE93bmVycyBnZXQgYWNjZXNzIHRvIG1hbmFnZSB0aGUgY2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViXCI+Q2FuIGJlIG1hbmFnZWQgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTgwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8ub3duZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExpc3QpPVwidXBkYXRlT3duZXIoJGV2ZW50KVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZm9ybS1jaGVjay1sYWJlbCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFwcHJvdmVyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zXCIgW2NoZWNrZWRdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXBwcm92ZXI/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZVwiIFsobmdNb2RlbCldPVwiYXBwcm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJhcHByb3ZlclwiIChjaGFuZ2UpPVwidXBkYXRlQ29uZmlnQXBwcm92ZXIoJGV2ZW50KVwiIGRpc2FibGVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgc3VidGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5IGVuYWJsaW5nLCB0aGUgdXNlcnMgd2lsbCBiZSBhYmxlIHRvIGFwcHJvdmUgdGhlIGNoZWNrbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG10LTNcIiAqbmdJZj1cImFwcHJvdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTUgdy0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YlwiPlRvIGJlIGFwcHJvdmVkIGJ5IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy04MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscz8uYXBwcm92ZXJcIiAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZUFwcHJvdmVyKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZvcm0tY2hlY2stbGFiZWwgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5SZW1pbmRlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtM1wiIFsobmdNb2RlbCldPVwicmVtYWluZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBpZD1cIm9uZVRpbWVcIiAoY2hhbmdlKT1cInVwZGF0ZUNvbmZpZ1JlbWFpbmRlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBzdWJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnkgZW5hYmxpbmcsIHRoZSB1c2VycyB3aWxsIGJlIHJlbWluZGVkIGluIHRoZSBzZWxlY3RlZCBpbnRlcnZhbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG10LTNcIiAqbmdJZj1cInJlbWFpbmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXktNSB3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViXCI+Tm90aWZ5IHVzZXIgYmVmb3JlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTgwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgdy0yMDBweCAsXCIgKm5nRm9yPVwibGV0IGxvb3Agb2YgY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzPy5yZW1haW5kZXI7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdGb3I9XCJsZXQgbG9vcCBvZiB0aW1lTG9vcFwiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTQ4N180NzYzNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wMDEzIDUuMDAwMzNWMTAuMDAwM0wxMy4zMzQ2IDExLjY2N00xOC4zMzQ2IDEwLjAwMDNDMTguMzM0NiAxNC42MDI3IDE0LjYwMzcgMTguMzMzNyAxMC4wMDEzIDE4LjMzMzdDNS4zOTg5MyAxOC4zMzM3IDEuNjY3OTcgMTQuNjAyNyAxLjY2Nzk3IDEwLjAwMDNDMS42Njc5NyA1LjM5Nzk1IDUuMzk4OTMgMS42NjY5OSAxMC4wMDEzIDEuNjY2OTlDMTQuNjAzNyAxLjY2Njk5IDE4LjMzNDYgNS4zOTc5NSAxOC4zMzQ2IDEwLjAwMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xNDg3XzQ3NjM2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBwcy0xNCBtZS01XCIgKGNoYW5nZSk9XCJ1cGRhdGVSZW1haW5kZXIoJGV2ZW50LGkpXCIgIFtpZF09XCIncmVtYWluZGVyJysgaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRpbWUgb2YgdXBkYXRlVGltZUxvb3AoaSlcIiBjbGFzcz1cImgtMjAwcHhcIiBbc2VsZWN0ZWRdPVwibG9vcCA9PT0gdGltZVwiIFt2YWx1ZV09XCJ0aW1lXCI+e3t0aW1lfX0gbWluczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLnJlbWFpbmRlci5sZW5ndGggPCAzXCIgY2xhc3M9XCJtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cInVwZGF0ZUxvb3AoKVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAxMyA0LjE2Njk5VjE1LjgzMzdNNC4xNjc5NyAxMC4wMDAzSDE1LjgzNDZcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZW1haW5kZXJcIiBjbGFzcz1cIm10LTIgdXNlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXJ0cyBhdCBldmVyeSA8c3BhbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyO2xldCBpPWluZGV4XCI+PHNwYW4gKm5nSWY9XCJpICE9PSBjb25maWdEYXRhLmNoZWNrTGlzdERldGFpbHMucmVtYWluZGVyLmxlbmd0aC0xICYmIGkgIT09IDBcIj4gLDwvc3Bhbj48c3BhbiAqbmdJZj1cImkgPT09IGNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5yZW1haW5kZXIubGVuZ3RoLTEgJiYgaSAhPT0gMFwiPiBhbmQ8L3NwYW4+IHt7aXRlbX19IE1pbnMgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnZXlldGVzdCddLmluY2x1ZGVzKHR5cGUpXCIgY2xhc3M9XCJtdC02IG14LTQgc3ViXCI+U3RvcmUgb3BlbnMgYXQgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdy02MDBcIj48dT57e2NvbmZpZ0RhdGE/Lm9wZW5UaW1lfX08L3U+PC9zcGFuPiBhbmQgY2xvc2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgPHNwYW4gY2xhc3M9XCJmdy02MDBcIj48dT57e2NvbmZpZ0RhdGE/LmNsb3NlVGltZX19PC91Pjwvc3Bhbj4sIGV2ZXJ5ZGF5LiA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09ICd1bmF0dGVuZGVkJ1wiIGNsYXNzPVwibXQtNiBteC00IHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWUgdGFrZW4gdG8gYXNzaXN0IGJ5IHN0YWZmICZsdDs9IDEgbWlucyB8IFN0YWZmIHRvIGN1c3RvbWVyIHRpbWUgc3BlbnQgJmx0Oz0xIG1pbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFN0b3JlIG9wZW5zIGF0IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctNjAwXCI+PHU+e3tjb25maWdEYXRhPy5vcGVuVGltZX19PC91Pjwvc3Bhbj4gYW5kIGNsb3Nlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IDxzcGFuIGNsYXNzPVwiZnctNjAwXCI+PHU+e3tjb25maWdEYXRhPy5jbG9zZVRpbWV9fTwvdT48L3NwYW4+LCBldmVyeWRheS4gPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0nY3VzdG9tJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhWydleWV0ZXN0J10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmcgbXQtOFwiPk5vdGlmeSBBbGVydHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NzRfNjYxOTUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAxMC42NjczVjguMDAwNjVNOC4wMDAxNiA1LjMzMzk4SDguMDA2ODNNMTQuNjY2OCA4LjAwMDY1QzE0LjY2NjggMTEuNjgyNiAxMS42ODIxIDE0LjY2NzMgOC4wMDAxNiAxNC42NjczQzQuMzE4MjYgMTQuNjY3MyAxLjMzMzUgMTEuNjgyNiAxLjMzMzUgOC4wMDA2NUMxLjMzMzUgNC4zMTg3NSA0LjMxODI2IDEuMzMzOTggOC4wMDAxNiAxLjMzMzk4QzExLjY4MjEgMS4zMzM5OCAxNC42NjY4IDQuMzE4NzUgMTQuNjY2OCA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODc0XzY2MTk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIiBjbGFzcz1cImNvbC1tZC0xMiBtdC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgbXQtMiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC00IHN1YlwiPklmIHVzYWdlIGV4Y2VlZHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItNSBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyIGZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHRleHQtY2VudGVyIHctNTVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLm1vYmlsZURldGVjdGlvbi51c2FnZUV4Y2VlZFwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoPVwiMlwiIG1heGxlbmd0aD1cIjNcIiAoaW5wdXQpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlciB1c2FnZWVycm9yXCIgKm5nSWY9XCJlcnJvcm1zZ1wiPlBsZWFzZSBlbnRlciBldmVudCBjb3VudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJldHdlZW4gMTUgdG8gOTk5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YlwiPmRldGVjdGlvbnMgcGVyIGRheTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsndW5pZm9ybWRldGVjdGlvbicsJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJywnc2NydW0nLCdjbGVhbmluZycsJ3N0b3Jlb3BlbmFuZGNsb3NlJywndW5hdHRlbmRlZCcsJ3BhY2thZ2VDb25maWd1cmF0aW9uJywnc3RhZmZsZWZ0aW50aGVtaWRkbGUnLCdjdXN0b21lcnVuYXR0ZW5kZWQnXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+U2VuZCBBbGVydCB0byA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIiBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuYWxlcnRzLnVzZXJzXCIgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVBbGVydCgkZXZlbnQsJ3VzZXInKVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpYi1jaGlwLWRyb3Bkb3duIFtkYXRhXT1cImFsZXJ0VXNlcnNcIiBbc2VsZWN0ZWREYXRhXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/Lm93bmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRMaXN0KT1cInVwZGF0ZU93bmVyKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtdC04XCI+RGV0ZWN0aW9uIEFyZWFzPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm14LTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODc0XzY2MTk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMTAuNjY3M1Y4LjAwMDY1TTguMDAwMTYgNS4zMzM5OEg4LjAwNjgzTTE0LjY2NjggOC4wMDA2NUMxNC42NjY4IDExLjY4MjYgMTEuNjgyMSAxNC42NjczIDguMDAwMTYgMTQuNjY3M0M0LjMxODI2IDE0LjY2NzMgMS4zMzM1IDExLjY4MjYgMS4zMzM1IDguMDAwNjVDMS4zMzM1IDQuMzE4NzUgNC4zMTgyNiAxLjMzMzk4IDguMDAwMTYgMS4zMzM5OEMxMS42ODIxIDEuMzMzOTggMTQuNjY2OCA0LjMxODc1IDE0LjY2NjggOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg3NF82NjE5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjwvaDI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiIGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+IERldGVjdCBtb2JpbGUgdXNhZ2UgZXhjZXB0IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZ0RhdGE/LnByb2R1Y3QuaW5jbHVkZXMoJ3RhbmdvWm9uZScpXCIgY2xhc3M9XCJjb2wtbGctOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJ6b25lTGlzdFwiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5haUNvbmZpZz8ubW9iaWxlRGV0ZWN0aW9uPy5kZXRlY3Rpb25BcmVhXCIgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVab25lKCRldmVudClcIj48L2xpYi1jaGlwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWNvbmZpZ0RhdGE/LnByb2R1Y3QuaW5jbHVkZXMoJ3RhbmdvWm9uZScpXCIgIGNsYXNzPVwicm93IG5nLXN0YXItaW5zZXJ0ZWQgbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFjb25maWdEYXRhPy5wcm9kdWN0LmluY2x1ZGVzKCd0YW5nb1pvbmUnKVwiIGNsYXNzPVwiY2FyZCBtdC0zIHAtMyBib3JkZXIgYm9yZGVyLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNzBcIiBoZWlnaHQ9XCI3MFwiIHZpZXdCb3g9XCIwIDAgOTAgOTBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjc1LjY2NjZcIiBoZWlnaHQ9XCI3NS42NjY2XCIgcng9XCIzNy44MzMzXCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjdcIiB5PVwiN1wiIHdpZHRoPVwiNzUuNjY2NlwiIGhlaWdodD1cIjc1LjY2NjZcIiByeD1cIjM3LjgzMzNcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiMTMuNTExOVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTQ1LjQyODcgMzcuOTE1N0w0NC44NjgzIDM4LjI0MTZMNDUuMTcwOSAzOC44MTVMNDcuNzI0OCA0My42NTM5QzQ4LjMzMzMgNDQuODA2OCA0OS44Njk3IDQ1LjEwNTggNTAuODk2MSA0NC4zMjkxTDUwLjg5NjUgNDQuMzI4OEw1NC44Njc4IDQxLjMxODFMNTUuMjQ4NSA0MS4wMjk1TDU1LjE5MTIgNDEuMzI4TDUzLjE1NDYgNTEuOTQyMUM1Mi45NzExIDUyLjg4ODkgNTIuMDg3OSA1My42MTYxIDUxLjAwOTkgNTMuNjE2MUgzOC42NTQ5QzM3LjU3MjIgNTMuNjE2MSAzNi42OTAzIDUyLjg4NDggMzYuNTEwNiA1MS45NDM5TDM2LjUxMDUgNTEuOTQzM0wzNC40NzM2IDQxLjMyOEwzNC40MTYzIDQxLjAyOTVMMzQuNzk3IDQxLjMxODFMMzguNzY4MyA0NC4zMjg4TDM4Ljc2ODcgNDQuMzI5MUMzOS43OTUxIDQ1LjEwNTggNDEuMzMxNSA0NC44MDY4IDQxLjk0IDQzLjY1MzlMNDQuNDkzOSAzOC44MTVMNDQuNzk2NSAzOC4yNDE2TDQ0LjIzNjEgMzcuOTE1N0M0My45MTc0IDM3LjczMDIgNDMuNzI1MiAzNy40MTA3IDQzLjcyNTIgMzcuMDY0QzQzLjcyNTIgMzYuNTM3OSA0NC4xODU2IDM2LjA1MDYgNDQuODMyNCAzNi4wNTA2QzQ1LjQ3OTIgMzYuMDUwNiA0NS45Mzk2IDM2LjUzNzkgNDUuOTM5NiAzNy4wNjRDNDUuOTM5NiAzNy40MDc0IDQ1Ljc0NjUgMzcuNzMwOCA0NS40Mjg3IDM3LjkxNTdaTTU1Ljg1NDcgNDAuNzc5OEg1NS4zMTk3TDU0Ljk5MDMgNDAuMzYxN0M1NC44NTQ0IDQwLjE4OTIgNTQuNzc4NyAzOS45ODQgNTQuNzc4NyAzOS43NjY0QzU0Ljc3ODcgMzkuMjQwMyA1NS4yMzkxIDM4Ljc1MyA1NS44ODU5IDM4Ljc1M0M1Ni41MzI2IDM4Ljc1MyA1Ni45OTMxIDM5LjI0MDMgNTYuOTkzMSAzOS43NjY0QzU2Ljk5MzEgNDAuMjkyNSA1Ni41MzI2IDQwLjc3OTggNTUuODg1OSA0MC43Nzk4SDU1Ljg4NThINTUuODg1OEg1NS44ODU3SDU1Ljg4NTdINTUuODg1Nkg1NS44ODU2SDU1Ljg4NTVINTUuODg1NUg1NS44ODU0SDU1Ljg4NTRINTUuODg1M0g1NS44ODUySDU1Ljg4NTJINTUuODg1MUg1NS44ODUxSDU1Ljg4NUg1NS44ODVINTUuODg0OUg1NS44ODQ5SDU1Ljg4NDhINTUuODg0OEg1NS44ODQ3SDU1Ljg4NDdINTUuODg0Nkg1NS44ODQ1SDU1Ljg4NDVINTUuODg0NEg1NS44ODQ0SDU1Ljg4NDNINTUuODg0M0g1NS44ODQySDU1Ljg4NDJINTUuODg0MUg1NS44ODRINTUuODg0SDU1Ljg4MzlINTUuODgzOUg1NS44ODM4SDU1Ljg4MzhINTUuODgzN0g1NS44ODM3SDU1Ljg4MzZINTUuODgzNUg1NS44ODM1SDU1Ljg4MzRINTUuODgzNEg1NS44ODMzSDU1Ljg4MzNINTUuODgzMkg1NS44ODMxSDU1Ljg4MzFINTUuODgzSDU1Ljg4M0g1NS44ODI5SDU1Ljg4MjlINTUuODgyOEg1NS44ODI3SDU1Ljg4MjdINTUuODgyNkg1NS44ODI2SDU1Ljg4MjVINTUuODgyNUg1NS44ODI0SDU1Ljg4MjNINTUuODgyM0g1NS44ODIySDU1Ljg4MjJINTUuODgyMUg1NS44ODIxSDU1Ljg4Mkg1NS44ODE5SDU1Ljg4MTlINTUuODgxOEg1NS44ODE4SDU1Ljg4MTdINTUuODgxNkg1NS44ODE2SDU1Ljg4MTVINTUuODgxNUg1NS44ODE0SDU1Ljg4MTNINTUuODgxM0g1NS44ODEySDU1Ljg4MTJINTUuODgxMUg1NS44ODExSDU1Ljg4MUg1NS44ODA5SDU1Ljg4MDlINTUuODgwOEg1NS44ODA4SDU1Ljg4MDdINTUuODgwNkg1NS44ODA2SDU1Ljg4MDVINTUuODgwNUg1NS44ODA0SDU1Ljg4MDNINTUuODgwM0g1NS44ODAySDU1Ljg4MDJINTUuODgwMUg1NS44OEg1NS44OEg1NS44Nzk5SDU1Ljg3OThINTUuODc5OEg1NS44Nzk3SDU1Ljg3OTdINTUuODc5Nkg1NS44Nzk1SDU1Ljg3OTVINTUuODc5NEg1NS44Nzk0SDU1Ljg3OTNINTUuODc5Mkg1NS44NzkySDU1Ljg3OTFINTUuODc5MUg1NS44NzlINTUuODc4OUg1NS44Nzg5SDU1Ljg3ODhINTUuODc4N0g1NS44Nzg3SDU1Ljg3ODZINTUuODc4Nkg1NS44Nzg1SDU1Ljg3ODRINTUuODc4NEg1NS44NzgzSDU1Ljg3ODJINTUuODc4Mkg1NS44NzgxSDU1Ljg3ODFINTUuODc4SDU1Ljg3NzlINTUuODc3OUg1NS44Nzc4SDU1Ljg3NzdINTUuODc3N0g1NS44Nzc2SDU1Ljg3NzZINTUuODc3NUg1NS44Nzc0SDU1Ljg3NzRINTUuODc3M0g1NS44NzcySDU1Ljg3NzJINTUuODc3MUg1NS44NzcxSDU1Ljg3N0g1NS44NzY5SDU1Ljg3NjlINTUuODc2OEg1NS44NzY3SDU1Ljg3NjdINTUuODc2Nkg1NS44NzY2SDU1Ljg3NjVINTUuODc2NEg1NS44NzY0SDU1Ljg3NjNINTUuODc2Mkg1NS44NzYySDU1Ljg3NjFINTUuODc2SDU1Ljg3Nkg1NS44NzU5SDU1Ljg3NTlINTUuODc1OEg1NS44NzU3SDU1Ljg3NTdINTUuODc1Nkg1NS44NzU1SDU1Ljg3NTVINTUuODc1NEg1NS44NzUzSDU1Ljg3NTNINTUuODc1Mkg1NS44NzUxSDU1Ljg3NTFINTUuODc1SDU1Ljg3NUg1NS44NzQ5SDU1Ljg3NDhINTUuODc0OEg1NS44NzQ3SDU1Ljg3NDZINTUuODc0Nkg1NS44NzQ1SDU1Ljg3NDRINTUuODc0NEg1NS44NzQzSDU1Ljg3NDJINTUuODc0Mkg1NS44NzQxSDU1Ljg3NDFINTUuODc0SDU1Ljg3MzlINTUuODczOUg1NS44NzM4SDU1Ljg3MzdINTUuODczN0g1NS44NzM2SDU1Ljg3MzVINTUuODczNUg1NS44NzM0SDU1Ljg3MzNINTUuODczM0g1NS44NzMySDU1Ljg3MzFINTUuODczMUg1NS44NzNINTUuODczSDU1Ljg3MjlINTUuODcyOEg1NS44NzI4SDU1Ljg3MjdINTUuODcyNkg1NS44NzI2SDU1Ljg3MjVINTUuODcyNEg1NS44NzI0SDU1Ljg3MjNINTUuODcyMkg1NS44NzIySDU1Ljg3MjFINTUuODcySDU1Ljg3Mkg1NS44NzE5SDU1Ljg3MThINTUuODcxOEg1NS44NzE3SDU1Ljg3MTdINTUuODcxNkg1NS44NzE1SDU1Ljg3MTVINTUuODcxNEg1NS44NzEzSDU1Ljg3MTNINTUuODcxMkg1NS44NzExSDU1Ljg3MTFINTUuODcxSDU1Ljg3MDlINTUuODcwOUg1NS44NzA4SDU1Ljg3MDdINTUuODcwN0g1NS44NzA2SDU1Ljg3MDVINTUuODcwNUg1NS44NzA0SDU1Ljg3MDNINTUuODcwM0g1NS44NzAySDU1Ljg3MDFINTUuODcwMUg1NS44N0g1NS44N0g1NS44Njk5SDU1Ljg2OThINTUuODY5OEg1NS44Njk3SDU1Ljg2OTZINTUuODY5Nkg1NS44Njk1SDU1Ljg2OTRINTUuODY5NEg1NS44NjkzSDU1Ljg2OTJINTUuODY5Mkg1NS44NjkxSDU1Ljg2OUg1NS44NjlINTUuODY4OUg1NS44Njg4SDU1Ljg2ODhINTUuODY4N0g1NS44Njg2SDU1Ljg2ODZINTUuODY4NUg1NS44Njg1SDU1Ljg2ODRINTUuODY4M0g1NS44NjgzSDU1Ljg2ODJINTUuODY4MUg1NS44NjgxSDU1Ljg2OEg1NS44Njc5SDU1Ljg2NzlINTUuODY3OEg1NS44Njc3SDU1Ljg2NzdINTUuODY3Nkg1NS44Njc1SDU1Ljg2NzVINTUuODY3NEg1NS44NjczSDU1Ljg2NzNINTUuODY3Mkg1NS44NjcySDU1Ljg2NzFINTUuODY3SDU1Ljg2N0g1NS44NjY5SDU1Ljg2NjhINTUuODY2OEg1NS44NjY3SDU1Ljg2NjZINTUuODY2Nkg1NS44NjY1SDU1Ljg2NjRINTUuODY2NEg1NS44NjYzSDU1Ljg2NjJINTUuODY2Mkg1NS44NjYxSDU1Ljg2NjFINTUuODY2SDU1Ljg2NTlINTUuODY1OUg1NS44NjU4SDU1Ljg2NTdINTUuODY1N0g1NS44NjU2SDU1Ljg2NTVINTUuODY1NUg1NS44NjU0SDU1Ljg2NTNINTUuODY1M0g1NS44NjUySDU1Ljg2NTJINTUuODY1MUg1NS44NjVINTUuODY1SDU1Ljg2NDlINTUuODY0OEg1NS44NjQ4SDU1Ljg2NDdINTUuODY0Nkg1NS44NjQ2SDU1Ljg2NDVINTUuODY0NUg1NS44NjQ0SDU1Ljg2NDNINTUuODY0M0g1NS44NjQySDU1Ljg2NDFINTUuODY0MUg1NS44NjRINTUuODYzOUg1NS44NjM5SDU1Ljg2MzhINTUuODYzOEg1NS44NjM3SDU1Ljg2MzZINTUuODYzNkg1NS44NjM1SDU1Ljg2MzRINTUuODYzNEg1NS44NjMzSDU1Ljg2MzJINTUuODYzMkg1NS44NjMxSDU1Ljg2MzFINTUuODYzSDU1Ljg2MjlINTUuODYyOUg1NS44NjI4SDU1Ljg2MjdINTUuODYyN0g1NS44NjI2SDU1Ljg2MjZINTUuODYyNUg1NS44NjI0SDU1Ljg2MjRINTUuODYyM0g1NS44NjIySDU1Ljg2MjJINTUuODYyMUg1NS44NjIxSDU1Ljg2Mkg1NS44NjE5SDU1Ljg2MTlINTUuODYxOEg1NS44NjE4SDU1Ljg2MTdINTUuODYxNkg1NS44NjE2SDU1Ljg2MTVINTUuODYxNEg1NS44NjE0SDU1Ljg2MTNINTUuODYxM0g1NS44NjEySDU1Ljg2MTFINTUuODYxMUg1NS44NjFINTUuODYxSDU1Ljg2MDlINTUuODYwOEg1NS44NjA4SDU1Ljg2MDdINTUuODYwNkg1NS44NjA2SDU1Ljg2MDVINTUuODYwNUg1NS44NjA0SDU1Ljg2MDNINTUuODYwM0g1NS44NjAySDU1Ljg2MDJINTUuODYwMUg1NS44Nkg1NS44Nkg1NS44NTk5SDU1Ljg1OTlINTUuODU5OEg1NS44NTk3SDU1Ljg1OTdINTUuODU5Nkg1NS44NTk2SDU1Ljg1OTVINTUuODU5NEg1NS44NTk0SDU1Ljg1OTNINTUuODU5M0g1NS44NTkySDU1Ljg1OTFINTUuODU5MUg1NS44NTlINTUuODU5SDU1Ljg1ODlINTUuODU4OUg1NS44NTg4SDU1Ljg1ODdINTUuODU4N0g1NS44NTg2SDU1Ljg1ODZINTUuODU4NUg1NS44NTg0SDU1Ljg1ODRINTUuODU4M0g1NS44NTgzSDU1Ljg1ODJINTUuODU4Mkg1NS44NTgxSDU1Ljg1OEg1NS44NThINTUuODU3OUg1NS44NTc5SDU1Ljg1NzhINTUuODU3OEg1NS44NTc3SDU1Ljg1NzZINTUuODU3Nkg1NS44NTc1SDU1Ljg1NzVINTUuODU3NEg1NS44NTc0SDU1Ljg1NzNINTUuODU3Mkg1NS44NTcySDU1Ljg1NzFINTUuODU3MUg1NS44NTdINTUuODU3SDU1Ljg1NjlINTUuODU2OEg1NS44NTY4SDU1Ljg1NjdINTUuODU2N0g1NS44NTY2SDU1Ljg1NjZINTUuODU2NUg1NS44NTY1SDU1Ljg1NjRINTUuODU2M0g1NS44NTYzSDU1Ljg1NjJINTUuODU2Mkg1NS44NTYxSDU1Ljg1NjFINTUuODU2SDU1Ljg1Nkg1NS44NTU5SDU1Ljg1NTlINTUuODU1OEg1NS44NTU3SDU1Ljg1NTdINTUuODU1Nkg1NS44NTU2SDU1Ljg1NTVINTUuODU1NUg1NS44NTU0SDU1Ljg1NTRINTUuODU1M0g1NS44NTUzSDU1Ljg1NTJINTUuODU1Mkg1NS44NTUxSDU1Ljg1NUg1NS44NTVINTUuODU0OUg1NS44NTQ5SDU1Ljg1NDhINTUuODU0OEg1NS44NTQ3SDU1Ljg1NDdaTTM0LjY3NDUgNDAuMzYxN0wzNC4zNDUxIDQwLjc3OThIMzMuODEwMUgzMy44MTAxSDMzLjgxSDMzLjgxSDMzLjgwOTlIMzMuODA5OUgzMy44MDk4SDMzLjgwOTdIMzMuODA5N0gzMy44MDk2SDMzLjgwOTZIMzMuODA5NUgzMy44MDk1SDMzLjgwOTRIMzMuODA5NEgzMy44MDkzSDMzLjgwOTNIMzMuODA5MkgzMy44MDkySDMzLjgwOTFIMzMuODA5SDMzLjgwOUgzMy44MDg5SDMzLjgwODlIMzMuODA4OEgzMy44MDg4SDMzLjgwODdIMzMuODA4N0gzMy44MDg2SDMzLjgwODZIMzMuODA4NUgzMy44MDg0SDMzLjgwODRIMzMuODA4M0gzMy44MDgzSDMzLjgwODJIMzMuODA4MkgzMy44MDgxSDMzLjgwODFIMzMuODA4SDMzLjgwNzlIMzMuODA3OUgzMy44MDc4SDMzLjgwNzhIMzMuODA3N0gzMy44MDc3SDMzLjgwNzZIMzMuODA3NkgzMy44MDc1SDMzLjgwNzRIMzMuODA3NEgzMy44MDczSDMzLjgwNzNIMzMuODA3MkgzMy44MDcySDMzLjgwNzFIMzMuODA3SDMzLjgwN0gzMy44MDY5SDMzLjgwNjlIMzMuODA2OEgzMy44MDY4SDMzLjgwNjdIMzMuODA2NkgzMy44MDY2SDMzLjgwNjVIMzMuODA2NUgzMy44MDY0SDMzLjgwNjNIMzMuODA2M0gzMy44MDYySDMzLjgwNjJIMzMuODA2MUgzMy44MDYxSDMzLjgwNkgzMy44MDU5SDMzLjgwNTlIMzMuODA1OEgzMy44MDU4SDMzLjgwNTdIMzMuODA1NkgzMy44MDU2SDMzLjgwNTVIMzMuODA1NUgzMy44MDU0SDMzLjgwNTNIMzMuODA1M0gzMy44MDUySDMzLjgwNTJIMzMuODA1MUgzMy44MDVIMzMuODA1SDMzLjgwNDlIMzMuODA0OUgzMy44MDQ4SDMzLjgwNDdIMzMuODA0N0gzMy44MDQ2SDMzLjgwNDZIMzMuODA0NUgzMy44MDQ0SDMzLjgwNDRIMzMuODA0M0gzMy44MDQzSDMzLjgwNDJIMzMuODA0MUgzMy44MDQxSDMzLjgwNEgzMy44MDRIMzMuODAzOUgzMy44MDM4SDMzLjgwMzhIMzMuODAzN0gzMy44MDM3SDMzLjgwMzZIMzMuODAzNUgzMy44MDM1SDMzLjgwMzRIMzMuODAzM0gzMy44MDMzSDMzLjgwMzJIMzMuODAzMkgzMy44MDMxSDMzLjgwM0gzMy44MDNIMzMuODAyOUgzMy44MDI5SDMzLjgwMjhIMzMuODAyN0gzMy44MDI3SDMzLjgwMjZIMzMuODAyNUgzMy44MDI1SDMzLjgwMjRIMzMuODAyNEgzMy44MDIzSDMzLjgwMjJIMzMuODAyMkgzMy44MDIxSDMzLjgwMkgzMy44MDJIMzMuODAxOUgzMy44MDE5SDMzLjgwMThIMzMuODAxN0gzMy44MDE3SDMzLjgwMTZIMzMuODAxNUgzMy44MDE1SDMzLjgwMTRIMzMuODAxNEgzMy44MDEzSDMzLjgwMTJIMzMuODAxMkgzMy44MDExSDMzLjgwMUgzMy44MDFIMzMuODAwOUgzMy44MDA4SDMzLjgwMDhIMzMuODAwN0gzMy44MDA3SDMzLjgwMDZIMzMuODAwNUgzMy44MDA1SDMzLjgwMDRIMzMuODAwM0gzMy44MDAzSDMzLjgwMDJIMzMuODAwMUgzMy44MDAxSDMzLjhIMzMuOEgzMy43OTk5SDMzLjc5OThIMzMuNzk5OEgzMy43OTk3SDMzLjc5OTZIMzMuNzk5NkgzMy43OTk1SDMzLjc5OTRIMzMuNzk5NEgzMy43OTkzSDMzLjc5OTNIMzMuNzk5MkgzMy43OTkxSDMzLjc5OTFIMzMuNzk5SDMzLjc5ODlIMzMuNzk4OUgzMy43OTg4SDMzLjc5ODdIMzMuNzk4N0gzMy43OTg2SDMzLjc5ODVIMzMuNzk4NUgzMy43OTg0SDMzLjc5ODRIMzMuNzk4M0gzMy43OTgySDMzLjc5ODJIMzMuNzk4MUgzMy43OThIMzMuNzk4SDMzLjc5NzlIMzMuNzk3OEgzMy43OTc4SDMzLjc5NzdIMzMuNzk3NkgzMy43OTc2SDMzLjc5NzVIMzMuNzk3NEgzMy43OTc0SDMzLjc5NzNIMzMuNzk3M0gzMy43OTcySDMzLjc5NzFIMzMuNzk3MUgzMy43OTdIMzMuNzk2OUgzMy43OTY5SDMzLjc5NjhIMzMuNzk2N0gzMy43OTY3SDMzLjc5NjZIMzMuNzk2NUgzMy43OTY1SDMzLjc5NjRIMzMuNzk2M0gzMy43OTYzSDMzLjc5NjJIMzMuNzk2MUgzMy43OTYxSDMzLjc5NkgzMy43OTU5SDMzLjc5NTlIMzMuNzk1OEgzMy43OTU4SDMzLjc5NTdIMzMuNzk1NkgzMy43OTU2SDMzLjc5NTVIMzMuNzk1NEgzMy43OTU0SDMzLjc5NTNIMzMuNzk1MkgzMy43OTUySDMzLjc5NTFIMzMuNzk1SDMzLjc5NUgzMy43OTQ5SDMzLjc5NDhIMzMuNzk0OEgzMy43OTQ3SDMzLjc5NDZIMzMuNzk0NkgzMy43OTQ1SDMzLjc5NDRIMzMuNzk0NEgzMy43OTQzSDMzLjc5NDNIMzMuNzk0MkgzMy43OTQxSDMzLjc5NDFIMzMuNzk0SDMzLjc5MzlIMzMuNzkzOUgzMy43OTM4SDMzLjc5MzdIMzMuNzkzN0gzMy43OTM2SDMzLjc5MzVIMzMuNzkzNUgzMy43OTM0SDMzLjc5MzNIMzMuNzkzM0gzMy43OTMySDMzLjc5MzFIMzMuNzkzMUgzMy43OTNIMzMuNzkyOUgzMy43OTI5SDMzLjc5MjhIMzMuNzkyOEgzMy43OTI3SDMzLjc5MjZIMzMuNzkyNkgzMy43OTI1SDMzLjc5MjRIMzMuNzkyNEgzMy43OTIzSDMzLjc5MjJIMzMuNzkyMkgzMy43OTIxSDMzLjc5MkgzMy43OTJIMzMuNzkxOUgzMy43OTE4SDMzLjc5MThIMzMuNzkxN0gzMy43OTE2SDMzLjc5MTZIMzMuNzkxNUgzMy43OTE1SDMzLjc5MTRIMzMuNzkxM0gzMy43OTEzSDMzLjc5MTJIMzMuNzkxMUgzMy43OTExSDMzLjc5MUgzMy43OTA5SDMzLjc5MDlIMzMuNzkwOEgzMy43OTA3SDMzLjc5MDdIMzMuNzkwNkgzMy43OTA1SDMzLjc5MDVIMzMuNzkwNEgzMy43OTA0SDMzLjc5MDNIMzMuNzkwMkgzMy43OTAySDMzLjc5MDFIMzMuNzlIMzMuNzlIMzMuNzg5OUgzMy43ODk4SDMzLjc4OThIMzMuNzg5N0gzMy43ODk2SDMzLjc4OTZIMzMuNzg5NUgzMy43ODk1SDMzLjc4OTRIMzMuNzg5M0gzMy43ODkzSDMzLjc4OTJIMzMuNzg5MUgzMy43ODkxSDMzLjc4OUgzMy43ODg5SDMzLjc4ODlIMzMuNzg4OEgzMy43ODg3SDMzLjc4ODdIMzMuNzg4NkgzMy43ODg2SDMzLjc4ODVIMzMuNzg4NEgzMy43ODg0SDMzLjc4ODNIMzMuNzg4MkgzMy43ODgySDMzLjc4ODFIMzMuNzg4MUgzMy43ODhIMzMuNzg3OUgzMy43ODc5SDMzLjc4NzhIMzMuNzg3N0gzMy43ODc3SDMzLjc4NzZIMzMuNzg3NUgzMy43ODc1SDMzLjc4NzRIMzMuNzg3NEgzMy43ODczSDMzLjc4NzJIMzMuNzg3MkgzMy43ODcxSDMzLjc4N0gzMy43ODdIMzMuNzg2OUgzMy43ODY5SDMzLjc4NjhIMzMuNzg2N0gzMy43ODY3SDMzLjc4NjZIMzMuNzg2NUgzMy43ODY1SDMzLjc4NjRIMzMuNzg2NEgzMy43ODYzSDMzLjc4NjJIMzMuNzg2MkgzMy43ODYxSDMzLjc4NkgzMy43ODZIMzMuNzg1OUgzMy43ODU5SDMzLjc4NThIMzMuNzg1N0gzMy43ODU3SDMzLjc4NTZIMzMuNzg1NkgzMy43ODU1SDMzLjc4NTRIMzMuNzg1NEgzMy43ODUzSDMzLjc4NTJIMzMuNzg1MkgzMy43ODUxSDMzLjc4NTFIMzMuNzg1SDMzLjc4NDlIMzMuNzg0OUgzMy43ODQ4SDMzLjc4NDhIMzMuNzg0N0gzMy43ODQ2SDMzLjc4NDZIMzMuNzg0NUgzMy43ODQ1SDMzLjc4NDRIMzMuNzg0M0gzMy43ODQzSDMzLjc4NDJIMzMuNzg0MkgzMy43ODQxSDMzLjc4NEgzMy43ODRIMzMuNzgzOUgzMy43ODM5SDMzLjc4MzhIMzMuNzgzN0gzMy43ODM3SDMzLjc4MzZIMzMuNzgzNkgzMy43ODM1SDMzLjc4MzRIMzMuNzgzNEgzMy43ODMzSDMzLjc4MzNIMzMuNzgzMkgzMy43ODMxSDMzLjc4MzFIMzMuNzgzSDMzLjc4M0gzMy43ODI5SDMzLjc4MjlIMzMuNzgyOEgzMy43ODI3SDMzLjc4MjdIMzMuNzgyNkgzMy43ODI2SDMzLjc4MjVIMzMuNzgyNEgzMy43ODI0SDMzLjc4MjNIMzMuNzgyM0gzMy43ODIySDMzLjc4MjJIMzMuNzgyMUgzMy43ODJIMzMuNzgySDMzLjc4MTlIMzMuNzgxOUgzMy43ODE4SDMzLjc4MThIMzMuNzgxN0gzMy43ODE2SDMzLjc4MTZIMzMuNzgxNUgzMy43ODE1SDMzLjc4MTRIMzMuNzgxNEgzMy43ODEzSDMzLjc4MTJIMzMuNzgxMkgzMy43ODExSDMzLjc4MTFIMzMuNzgxSDMzLjc4MUgzMy43ODA5SDMzLjc4MDlIMzMuNzgwOEgzMy43ODA3SDMzLjc4MDdIMzMuNzgwNkgzMy43ODA2SDMzLjc4MDVIMzMuNzgwNUgzMy43ODA0SDMzLjc4MDRIMzMuNzgwM0gzMy43ODAzSDMzLjc4MDJIMzMuNzgwMUgzMy43ODAxSDMzLjc4SDMzLjc4SDMzLjc3OTlIMzMuNzc5OUgzMy43Nzk4SDMzLjc3OThIMzMuNzc5N0gzMy43Nzk3SDMzLjc3OTZIMzMuNzc5NUgzMy43Nzk1SDMzLjc3OTRIMzMuNzc5NEgzMy43NzkzSDMzLjc3OTNIMzMuNzc5MkgzMy43NzkySDMzLjc3OTFIMzMuNzc5MUgzMy43NzlIMzMuNzc5SDMzLjc3ODlDMzMuMTMyMSA0MC43Nzk4IDMyLjY3MTcgNDAuMjkyNSAzMi42NzE3IDM5Ljc2NjRDMzIuNjcxNyAzOS4yNDAzIDMzLjEzMjEgMzguNzUzIDMzLjc3ODkgMzguNzUzQzM0LjQyNTcgMzguNzUzIDM0Ljg4NjEgMzkuMjQwMyAzNC44ODYxIDM5Ljc2NjRDMzQuODg2MSAzOS45ODQgMzQuODEwMyA0MC4xODkyIDM0LjY3NDUgNDAuMzYxN1pcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zNTExOVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmdcIj5FeGNsdWRlIFpvbmU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInpvbmUtc3Vic2NyaXB0aW9uXCI+VG8gYWRkIGFuIEV4Y2x1ZGVkIFpvbmUgaW5zaWRlIHRoZSBzdG9yZSwgcGxlYXNlIHVwZ3JhZGUgeW91ciBwbGFuIGFuZCBzdWJzY3JpYmUgdG8gVGFuZ29FeWUuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb3V0ZXJMaW5rPVwiL21hbmFnZS9zZXR0aW5ncy9wYXltZW50LXN1YnNjcmlwdGlvblwiIGNsYXNzPVwiYnV0dG9uIGJ0biBidG4tc20gcHktMyBidG4tcHJpbWFyeSBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlVwZ3JhZGUgcGxhbjwvc3Bhbj48c3Bhbj48c3ZnIGNsYXNzPVwibXMtM1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDIxIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjM2MDcgNi4xNDQ1M0MxMS43MzY3IDUuOTI1NzggMTEuOTg3NCA1LjUyODkxIDExLjk4NzQgNS4wODIwM0MxMS45ODc0IDQuMzkxNDEgMTEuMzk3IDMuODMyMDMgMTAuNjY4IDMuODMyMDNDOS45Mzg5OCAzLjgzMjAzIDkuMzQ4NTIgNC4zOTE0MSA5LjM0ODUyIDUuMDgyMDNDOS4zNDg1MiA1LjUzMjAzIDkuNTk5MjIgNS45MjU3OCA5Ljk3NTI2IDYuMTQ0NTNMOC4wODUxNiA5LjcyNTc4QzcuNzg0OTggMTAuMjk0NSA3LjAwNjUxIDEwLjQ1NyA2LjQ4MjAzIDEwLjA2MDJMMy41NDI5NyA3LjgzMjAzQzMuNzA3OSA3LjYyMjY2IDMuODA2ODYgNy4zNjMyOCAzLjgwNjg2IDcuMDgyMDNDMy44MDY4NiA2LjM5MTQxIDMuMjE2NDEgNS44MzIwMyAyLjQ4NzQxIDUuODMyMDNDMS43NTg0MiA1LjgzMjAzIDEuMTY3OTcgNi4zOTE0MSAxLjE2Nzk3IDcuMDgyMDNDMS4xNjc5NyA3Ljc3MjY2IDEuNzU4NDIgOC4zMzIwMyAyLjQ4NzQxIDguMzMyMDNDMi40OTQwMSA4LjMzMjAzIDIuNTAzOTEgOC4zMzIwMyAyLjUxMDUgOC4zMzIwM0w0LjAxNzk3IDE2LjE4ODNDNC4xOTkzOSAxNy4xMzgzIDUuMDczNTIgMTcuODMyIDYuMDk2MDkgMTcuODMySDE1LjIzOThDMTYuMjU5MSAxNy44MzIgMTcuMTMzMiAxNy4xNDE0IDE3LjMxOCAxNi4xODgzTDE4LjgyNTQgOC4zMzIwM0MxOC44MzIgOC4zMzIwMyAxOC44NDE5IDguMzMyMDMgMTguODQ4NSA4LjMzMjAzQzE5LjU3NzUgOC4zMzIwMyAyMC4xNjggNy43NzI2NiAyMC4xNjggNy4wODIwM0MyMC4xNjggNi4zOTE0MSAxOS41Nzc1IDUuODMyMDMgMTguODQ4NSA1LjgzMjAzQzE4LjExOTUgNS44MzIwMyAxNy41MjkxIDYuMzkxNDEgMTcuNTI5MSA3LjA4MjAzQzE3LjUyOTEgNy4zNjMyOCAxNy42MjggNy42MjI2NiAxNy43OTMgNy44MzIwM0wxNC44NTM5IDEwLjA2MDJDMTQuMzI5NCAxMC40NTcgMTMuNTUxIDEwLjI5NDUgMTMuMjUwOCA5LjcyNTc4TDExLjM2MDcgNi4xNDQ1M1pcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBtdC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ3N0b3Jlb3BlbmFuZGNsb3NlJ10uaW5jbHVkZXModHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBtdC0yXCI+U2V0IEJ1ZmZlciBUaW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiIChjaGFuZ2UpPVwiY2hhbmdlQnVmZmVyVGltZSgkZXZlbnQpXCIgW2NoZWNrZWRdPVwiY29uZmlnRGF0YS5haUNvbmZpZy5zdG9yZU9wZW5DbG9zZS5idWZmZXIub3BlblRpbWUgPiAwIHx8IGNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLmNsb3NlVGltZSA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRlY3Rpb250ZXh0IG10LTJcIj5XaGVuIGVuYWJsZWQsIGFsZXJ0cyB3aWxsIGJlIHBhdXNlZCBkdXJpbmcgdGhlIGJ1ZmZlciBwZXJpb2Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjaGVja0J1ZmZlciB8fCBjb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5vcGVuVGltZSB8fCBjb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWVcIiBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uMSBtZS0zXCI+IElmIFN0b3JlIE9wZW4gdGltZSBleGNlZWRzIGJ5IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgcC0zIHRleHQtY2VudGVyIHctNDVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuYWlDb25maWcuc3RvcmVPcGVuQ2xvc2UuYnVmZmVyLm9wZW5UaW1lXCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoPVwiMlwiIG1heGxlbmd0aD1cIjNcIiAoYmx1cik9XCJ2YWxpZGF0ZUxpbWl0KCRldmVudClcIiAvPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbjEgbXMtM1wiPiBtaW51dGVzIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uMSBtZS0zXCI+IElmIFN0b3JlIENsb3NlIHRpbWUgZXhjZWVkcyBieSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIHAtMyB0ZXh0LWNlbnRlciB3LTQ1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maWdEYXRhLmFpQ29uZmlnLnN0b3JlT3BlbkNsb3NlLmJ1ZmZlci5jbG9zZVRpbWVcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9XCIyXCIgbWF4bGVuZ3RoPVwiM1wiIChibHVyKT1cInZhbGlkYXRlTGltaXQoJGV2ZW50KVwiIC8+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uMSBtcy0zXCI+IG1pbnV0ZXMgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlsnc2NydW0nLCdjbGVhbmluZyddLmluY2x1ZGVzKHR5cGUpICYmIGNsaWVudElkIT09JzQ1MidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi1sZWZ0aGVhZGluZyBtdC04XCI+QXV0b21hdGljIFRhc2tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLXN3aXRjaCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YS5haUNvbmZpZy5hdXRvVGFza1wiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0xIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBuZy1zdGFyLWluc2VydGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+IFNlbGVjdCBBcHByb3ZlciA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hpcC1kcm9wZG93biBbZGF0YV09XCJhbGVydFVzZXJzXCIgW3NlbGVjdGVkRGF0YV09XCJjb25maWdEYXRhLmFwcHJvdmVyXCIgKHNlbGVjdGVkTGlzdCk9XCJ1cGRhdGVBbGVydCgkZXZlbnQsJ2FwcHJvdmUnKVwiPjwvbGliLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3IgbXQtOFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aDIgY2xhc3M9XCJzZWN0aW9uLWxlZnRoZWFkaW5nIG10LThcIj57e3R5cGUgPT09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicgPyAnVG8gYmUgQWNrbm93bGVkZ2VkIGJ5JyA6ICdBcHByb3Zlcid9fTwvaDI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtcy0zIG10LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5CeSBlbmFibGluZywgdGhlIHVzZXJzIHdpbGwgYmUgYWJsZSB0byBhY2tub3dsZWRnZSB0aGUgY2hlY2tsaXN0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ21vYmlsZXVzYWdlZGV0ZWN0aW9uJ1wiIGNsYXNzPVwiY29sLW1kLTEyIG10LThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBtdC0yIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTQgc3ViXCI+SWYgdXNhZ2UgZXhjZWVkczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi01IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTU1cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlnRGF0YT8uY2hlY2tMaXN0RGV0YWlscy5hbGVydC51c2FnZUV4Y2VlZHNcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZCBtaW5sZW5ndGg9XCIyXCIgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwidmFsaWRhdGVMaW1pdCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXIgdXNhZ2VlcnJvclwiICpuZ0lmPVwiZXJyb3Jtc2dcIj5QbGVhc2UgZW50ZXIgZXZlbnQgY291bnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXR3ZWVuIDE1IHRvIDk5OTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbmctc3Rhci1pbnNlcnRlZCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YiBteC00XCI+VG8gYmUgYXBwcm92ZWQgYnkgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNoaXAtZHJvcGRvd24gW2RhdGFdPVwiYWxlcnRVc2Vyc1wiIFtzZWxlY3RlZERhdGFdPVwiY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFwcHJvdmVyXCI+PC9saWItY2hpcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIG10LThcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiWydjdXN0b20nXS5pbmNsdWRlcyh0eXBlKVwiIGNsYXNzPVwiY2FyZC1ib2R5IGJnLXdoaXRlIG10LTMgcm91bmRlZC00IHB4LTdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInNlY3Rpb24tbGVmdGhlYWRpbmcgXCI+QXNzaWduPHNwYW4gY2xhc3M9XCJteC0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg3NF82NjE5NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDEwLjY2NzNWOC4wMDA2NU04LjAwMDE2IDUuMzMzOThIOC4wMDY4M00xNC42NjY4IDguMDAwNjVDMTQuNjY2OCAxMS42ODI2IDExLjY4MjEgMTQuNjY3MyA4LjAwMDE2IDE0LjY2NzNDNC4zMTgyNiAxNC42NjczIDEuMzMzNSAxMS42ODI2IDEuMzMzNSA4LjAwMDY1QzEuMzMzNSA0LjMxODc1IDQuMzE4MjYgMS4zMzM5OCA4LjAwMDE2IDEuMzMzOThDMTEuNjgyMSAxLjMzMzk4IDE0LjY2NjggNC4zMTg3NSAxNC42NjY4IDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODc0XzY2MTk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTUgbXQtMyBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHNlbGVjdGVkLXJhZGlvIG1lLTMgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwic3RvcmVzXCIgW2NoZWNrZWRdPVwic3RvcmVDb3ZlcmFnZVwiIChjbGljayk9XCJzZWxlY3RSYWRpbygnc3RvcmUnLCdjaGFuZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZHRleHQgY3Vyc29yLXBvaW50ZXIgZnctc2VtaWJvbGRcIj5Bc3NpZ24gU3RvcmVzIGFuZCBDbHVzdGVyczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc2VsZWN0ZWQtcmFkaW8gbWUtMyBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJ1c2Vyc1wiIFtjaGVja2VkXT1cInVzZXJDb3ZlcmFnZVwiIChjbGljayk9XCJzZWxlY3RSYWRpbygndXNlcicsJ2NoYW5nZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidXBsb2FkdGV4dCBjdXJzb3ItcG9pbnRlciBmdy1zZW1pYm9sZFwiPkFzc2lnbiBVc2VycyBhbmQgVGVhbXM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdG9yZUNvdmVyYWdlICYmIGFzc2lnblR5cGUgPT09J3N0b3JlJ1wiIGNsYXNzPVwibXQtNSBtcy01IHN0b3JlQXNzaWduIHNvcFRhYmxlIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGgtMTRweCB3LTE0cHggbXgtMVwiIHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJmbGFnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5lbmFibGVOZXdEZXBsb3llZFN0b3JlXCI+PC9kaXY+IDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBsaW5lSGVpZ2h0XCI+QXV0byBhc3NpZ24gdG8gbmV3bHkgZGVwbG95ZWQgc3RvcmVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1zLTUgYWxpZ24taXRlbXMtZW5kIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG92ZXJmbG93LWF1dG8gaC00NXB4IHctNzUgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzIG5hdi1saW5lLXRhYnMtMnggYm9yZGVyLXRyYW5zcGFyZW50IGZzLTUgZnctYm9sZGVyIGZsZXgtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0ZWRUYWIoJ3N0b3JlJylcIiBjbGFzcz1cIm5hdi1pdGVtIGN1cnNvci1wb2ludGVyIGgtMTAwXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhc3NpZ25UeXBlID09PSdzdG9yZScgPyAnYWN0aXZlIGJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5JyA6JydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtLTAgcHgtNVwiPlN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIChjbGljayk9XCJzZWxlY3RlZFRhYignY2x1c3RlcicpXCIgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlciBoLTEwMFwiPjxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXNzaWduVHlwZSA9PT0nY2x1c3RlcicgPyAnYWN0aXZlIGJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5JyA6JydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtLTAgcHgtNVwiPkNsdXN0ZXJzPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nSWY9XCJ1c2VyQ292ZXJhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzIG5hdi1saW5lLXRhYnMtMnggYm9yZGVyLXRyYW5zcGFyZW50IGZzLTUgZnctYm9sZGVyIGZsZXgtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0ZWRUYWIoJ3VzZXInKVwiIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXIgaC0xMDBcIj48YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFzc2lnblR5cGUgPT09J3VzZXInID8gJ2FjdGl2ZSBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeScgOicnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbS0wIHB4LTVcIj5Vc2VyczwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIChjbGljayk9XCJzZWxlY3RlZFRhYigndGVhbScpXCIgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlciBoLTEwMFwiPjxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXNzaWduVHlwZSA9PT0ndGVhbScgPyAnYWN0aXZlIGJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5JyA6JydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1hY3RpdmUtcHJpbWFyeSBtLTAgcHgtNVwiPlRlYW1zPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFbJ2NsdXN0ZXInLCd0ZWFtJ10uaW5jbHVkZXMoYXNzaWduVHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIiAoY2xpY2spPVwiYWRkU3RvcmVDb21wb25lbnQoKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBweC00IG5nLXN0YXItaW5zZXJ0ZWQgbXQtOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIiB0YWJpbmRleD1cIjBcIj48c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk4NCA0LjE2Njk5VjE1LjgzMzdNNC4xNjY1IDEwLjAwMDNIMTUuODMzMlwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwiY3JlYXRlMVwiPkFzc2lnbiBTdG9yZTwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJ1c2VyQ292ZXJhZ2VcIiAoY2xpY2spPVwiYWRkU3RvcmVDb21wb25lbnQoKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBweC00IG5nLXN0YXItaW5zZXJ0ZWQgbXQtOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiIHRhYmluZGV4PVwiMFwiPjxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkuOTk5ODQgNC4xNjY5OVYxNS44MzM3TTQuMTY2NSAxMC4wMDAzSDE1LjgzMzJcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwiY3JlYXRlMVwiPkFzc2lnbiBVc2VyPC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG15LTUgdy0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViXCI+U2VsZWN0ZWQgPHNwYW4+e3thc3NpZ25UeXBlIHwgdGl0bGVjYXNlfX1zPC9zcGFuPiA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAqbmdJZj1cIiFbJ2NsdXN0ZXInLCd0ZWFtJ10uaW5jbHVkZXMoYXNzaWduVHlwZSlcIiAgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgcGUtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItbXVsdGktY2hpcC1kcm9wZG93biAqbmdJZj1cInN0b3JlTGlzdFwiIFtpdGVtc109XCJzdG9yZUxpc3RcIiBbbXVsdGldPVwidHJ1ZVwiIFtzZWFyY2hGaWVsZF09XCJbJ3N0b3JlTmFtZScsJ2NsdXN0ZXJOYW1lJywnc3RvcmVJZCcsJ3VzZXJOYW1lJywndGVhbU5hbWUnXVwiIFtzZWFyY2hLZXldPVwic2VhcmNoS2V5XCIgW2lkRmllbGRdPVwiJ19pZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwidXBkYXRlQXNzaWduKCRldmVudClcIiAocmVtb3ZlZCk9XCJyZW1vdmVkQ2hpcCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFzc2lnblwiPjwvbGliLW11bHRpLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cIlsnY2x1c3RlcicsJ3RlYW0nXS5pbmNsdWRlcyhhc3NpZ25UeXBlKVwiIGNsYXNzPVwidy0xMDAgcGUtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItbXVsdGktY2hpcC1kcm9wZG93biAqbmdJZj1cInN0b3JlTGlzdFwiIFtpdGVtc109XCJzdG9yZUxpc3RcIiBbbXVsdGldPVwidHJ1ZVwiIFtzZWFyY2hGaWVsZF09XCJbJ3N0b3JlTmFtZScsJ2NsdXN0ZXJOYW1lJywnc3RvcmVJZCcsJ3VzZXJOYW1lJywndGVhbU5hbWUnXVwiIFtzZWFyY2hLZXldPVwic2VhcmNoS2V5XCIgW2lkRmllbGRdPVwiJ19pZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwidXBkYXRlQXNzaWduKCRldmVudClcIiAocmVtb3ZlZCk9XCJyZW1vdmVkQ2hpcCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cImNvbmZpZ0RhdGE/LmNoZWNrTGlzdERldGFpbHM/LmFzc2lnblwiPjwvbGliLW11bHRpLWNoaXAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiICpuZ0lmPVwidGFibGVEYXRhLmxlbmd0aCB8fCB0YWJsZUZpbHRlci5sZW5ndGggfHwgIXNob3dJbWFnZVwiPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0YWJsZUxvYWRpbmcgJiYgdGFibGVBcnJheT8ubGVuZ3RoXCIgY2xhc3M9XCJjYXJkLWJvZHkgcHgtMCBtdC0wIHB0LTAgcGItMCBteC00IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXIgbXQtNSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtdGl0bGVcIj5TZWxlY3RlZCA8c3Bhbj57e2Fzc2lnblR5cGUgfCB0aXRsZWNhc2V9fXM8L3NwYW4+IExpc3Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGRhdGEta3Qtc3Vic2NyaXB0aW9uLXRhYmxlLWZpbHRlcj1cInNlYXJjaFwiIChjaGFuZ2UpPVwic2VhcmNoVGFibGVEYXRhKClcIiBbKG5nTW9kZWwpXT1cInRhYmxlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zb2xpZCB3LTIwMHB4IHBzLTUgbXgtMSBtZS00XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm5vbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IG5vbmVcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaC4uLlwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIVsnY2x1c3RlcicsJ3RlYW0nXS5pbmNsdWRlcyhhc3NpZ25UeXBlKVwiIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xMDAgbXQtNSBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBweS0zIGJ0bi1kZWZhdWx0IHctMTAwIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWwgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTMgY3Vyc29yLXBvaW50ZXJcIiAjdXBsb2FkIChjbGljayk9XCJmaWxlLmNsaWNrKClcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDxzcGFuIGNsYXNzPVwidGVtcGxhdGUtZHJvcGRvd24gYmctd2hpdGUgbXMtM1wiPkJ1bGtVcGxvYWQgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGlucHV0IHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiB0eXBlPVwiZmlsZVwiICNmaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMVwiIChjaGFuZ2UpPVwib25GaWxlVXBsb2FkKCRldmVudClcIiAvPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VidGl0bGUgbXgtMyBtZS0yXCI+IHwgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50KVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiA5TDEyIDE1TDE4IDlcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93blwiIGNsYXNzPVwiY2FyZCB0ZW1wbGF0ZS1kcm9wZG93biBoLTQwcHggdy0xMDAgcG9zaXRpb24tYWJzb2x1dGUgcm91bmRlZC0zIHotMSB0b3AtNTBweCBlbmQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtYi0wIHctYXV0byBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJidWxrdXBsb2FkTW9kZWwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInB4LTUgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgcHktMlwiPkRvd25sb2FkIFRlbXBsYXRlPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJbJ2NsdXN0ZXInLCd0ZWFtJ10uaW5jbHVkZXMoYXNzaWduVHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIHB5LTMgYnRuLWRlZmF1bHQgdy0xMDAgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZVYyKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMyBjdXJzb3ItcG9pbnRlclwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC4xMjUgMTMuMTI1SDE2LjM1NjJMMTQuNzQzOCAxNC43NDM4TDE1LjYyNSAxNS42MjVMMTguNzUgMTIuNUwxNS42MjUgOS4zNzVMMTQuNzQzOCAxMC4yNTYyTDE2LjM1NjIgMTEuODc1SDguMTI1VjEzLjEyNVpcIiBmaWxsPVwiYmxhY2tcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMy43NSA4Ljc1MDAxVjYuMjUwMDFDMTMuNzUwNSA2LjE2Nzc2IDEzLjczNDcgNi4wODYyMiAxMy43MDM2IDYuMDEwMDdDMTMuNjcyNSA1LjkzMzkyIDEzLjYyNjcgNS44NjQ2NiAxMy41Njg4IDUuODA2MjZMOS4xOTM3NSAxLjQzMTI2QzkuMTM1MzUgMS4zNzMzMyA5LjA2NjA5IDEuMzI3NTEgOC45ODk5NCAxLjI5NjRDOC45MTM3OSAxLjI2NTMgOC44MzIyNSAxLjI0OTUzIDguNzUgMS4yNTAwMUgyLjVDMi4xNjg0OCAxLjI1MDAxIDEuODUwNTQgMS4zODE3MSAxLjYxNjEyIDEuNjE2MTNDMS4zODE3IDEuODUwNTUgMS4yNSAyLjE2ODQ5IDEuMjUgMi41MDAwMVYxNy41QzEuMjUgMTcuODMxNSAxLjM4MTcgMTguMTQ5NSAxLjYxNjEyIDE4LjM4MzlDMS44NTA1NCAxOC42MTgzIDIuMTY4NDggMTguNzUgMi41IDE4Ljc1SDEyLjVDMTIuODMxNSAxOC43NSAxMy4xNDk1IDE4LjYxODMgMTMuMzgzOSAxOC4zODM5QzEzLjYxODMgMTguMTQ5NSAxMy43NSAxNy44MzE1IDEzLjc1IDE3LjVWMTYuMjVIMTIuNVYxNy41SDIuNVYyLjUwMDAxSDcuNVY2LjI1MDAxQzcuNSA2LjU4MTUzIDcuNjMxNyA2Ljg5OTQ3IDcuODY2MTIgNy4xMzM4OUM4LjEwMDU0IDcuMzY4MzEgOC40MTg0OCA3LjUwMDAxIDguNzUgNy41MDAwMUgxMi41VjguNzUwMDFIMTMuNzVaTTguNzUgNi4yNTAwMVYyLjc1NjI2TDEyLjI0MzggNi4yNTAwMUg4Ljc1WlwiIGZpbGw9XCJibGFja1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPHNwYW4gY2xhc3M9XCJ0ZW1wbGF0ZS1kcm9wZG93biBiZy13aGl0ZSBtcy0zXCI+RXhwb3J0IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCIgKm5nSWY9XCIhdGFibGVEYXRhPy5sZW5ndGggJiYgIXRhYmxlRmlsdGVyICYmICFzaG93SW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgbXktOCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgdGhlIDxzcGFuPnt7YXNzaWduVHlwZX19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMCBteC00XCIgKm5nSWY9XCJ0YWJsZUFycmF5Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic29wVGFibGUgdGFibGUtcmVzcG9uc2l2ZSBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YWJsZUxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCIgKm5nSWY9XCJ0YWJsZUZpbHRlciAmJiAhdGFibGVEYXRhPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IG15LTggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoZSA8c3Bhbj57e2Fzc2lnblR5cGV9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5LXNvcFwiICpuZ0lmPVwidGFibGVEYXRhLmxlbmd0aCAmJiAhdGFibGVMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIiBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNvcnREYXRhKCdzdG9yZU5hbWUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICdzdG9yZU5hbWUnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1uICE9PSAnc3RvcmVOYW1lJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3N0b3JlTmFtZScgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGV4dC1hbGlnbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJOYW1lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUE9DIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0ZXh0LWFsaWduLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgndXNlckVtYWlsJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUE9DIEVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlckVtYWlsJyAmJiBzb3J0QnkgIT09IDEgfHwgc29ydENvbHVtbiAhPT0gJ3VzZXJFbWFpbCcgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyRW1haWwnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiYXNzaWduVHlwZSA9PT0nY2x1c3RlcidcIiBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNvcnREYXRhKCdjbHVzdGVyTmFtZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2x1c3RlciBOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAnY2x1c3Rlck5hbWUnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1uICE9PSAnY2x1c3Rlck5hbWUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxLjMzMzM3VjEwLjY2NjdNNi4wMDAxNiAxMC42NjY3TDEwLjY2NjggNi4wMDAwNE02LjAwMDE2IDEwLjY2NjdMMS4zMzM1IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1uID09PSAnY2x1c3Rlck5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgdGFibGVEYXRhO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGEuc3RvcmVOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ZGF0YS51c2VyTmFtZSA/IGRhdGEudXNlck5hbWUgOiAnLS0nfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLnVzZXJFbWFpbCA/IGRhdGEudXNlckVtYWlsIDogJy0tJ319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiYXNzaWduVHlwZSA9PT0gJ2NsdXN0ZXInXCI+e3tkYXRhLmNsdXN0ZXJOYW1lID8gZGF0YS5jbHVzdGVyTmFtZSA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgKm5nSWY9XCJ1c2VyQ292ZXJhZ2VcIiBjbGFzcz1cInctMTAwIHRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj4gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGV4dC1hbGlnbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJOYW1lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bW4gIT09ICd1c2VyTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0ZXh0LWFsaWduLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgndXNlckVtYWlsJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyIEVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0Q29sdW1uID09PSAndXNlckVtYWlsJyAmJiBzb3J0QnkgIT09IDEgfHwgc29ydENvbHVtbiAhPT0gJ3VzZXJFbWFpbCcgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bW4gPT09ICd1c2VyRW1haWwnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiYXNzaWduVHlwZSA9PT0ndGVhbSdcIiBjbGFzcz1cInRleHQtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNvcnREYXRhKCd0ZWFtTmFtZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVhbXMgTmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3RlYW1OYW1lJyAmJiBzb3J0QnkgIT09IDEgfHwgc29ydENvbHVtbiAhPT0gJ3RlYW1OYW1lJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtbiA9PT0gJ3RlYW1OYW1lJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiB0YWJsZURhdGE7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIG14LTQgbGluZS1oZWlnaHRcIj57e2RhdGEudXNlck5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ZGF0YS51c2VyRW1haWwgPyBkYXRhLnVzZXJFbWFpbCA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cImFzc2lnblR5cGUgPT09J3RlYW0nXCI+e3tkYXRhLnRlYW1OYW1lID8gZGF0YS50ZWFtTmFtZSA6ICctLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cInNpemVcIiBbY3VycmVudFBhZ2VdPVwiY3VycmVudFZhbHVlXCIgW3RvdGFsSXRlbXNdPVwicmVjb3Jkc1RvdGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZVwiIFtwYWdlU2l6ZV09XCJzaXplXCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YWJsZUxvYWRpbmcxICYmIHNob3dJbWFnZVwiIGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhdGFibGVBcnJheS5sZW5ndGggJiYgIXRhYmxlTG9hZGluZzEgJiYgIXRhYmxlRmlsdGVyLmxlbmd0aCAmJiBzaG93SW1hZ2UgJiYgIWNvbmZpZ0RhdGEuY2hlY2tMaXN0RGV0YWlscy5hc3NpZ25lZFVzZXJzICYmICFbJ2NsdXN0ZXInLCd0ZWFtJ10uaW5jbHVkZXMoYXNzaWduVHlwZSlcIiBjbGFzcz1cInJvdyBtYi02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBhc3NpZ25wYWRkaW5nIG1iLTEwIG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJociB3LTEwMCBib3JkZXIgYm9yZGVyLTEgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdGVtcGxhdGUtZHJvcGRvd24gb3Jwb3NpdGlvbiBiZy13aGl0ZSB3LTEwMHB4XCI+b3I8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZHBhZGRpbmcgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJzdWJ0ZXh0IGxpc3QtdW5zdHlsZWQgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBteC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Vc2UgdGhlIHRlbXBsYXRlIHRvIHVwbG9hZCBtdWx0aXBsZSA8c3BhbiAqbmdJZj1cInN0b3JlQ292ZXJhZ2VcIj5zdG9yZXM8L3NwYW4+IDxzcGFuICpuZ0lmPVwidXNlckNvdmVyYWdlXCI+dXNlcnM8L3NwYW4+IGF0IG9uY2UuPC9saT4gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+IERvd25sb2FkIHRoZSB0ZW1wbGF0ZSBoZXJlIC0gPHNwYW4gKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGVWMigpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzcGFuIGNsYXNzPVwibWUtM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTUuODMzMzMgOC4zMzMzM0wxMCAxMi41TTEwIDEyLjVMMTQuMTY2NyA4LjMzMzMzTTEwIDEyLjVWMi41XCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIj5Eb3dubG9hZCBUZW1wbGF0ZTwvc3Bhbj48L3NwYW4+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiBBZGQgeW91ciBkYXRhIHRvIHRoZSBUZW1wbGF0ZSBGaWxlPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgYm9yZGVyIGJvcmRlci0yIHRleHQtY2VudGVyIGJvcmRlci1kYXNoZWQgcm91bmRlZC0zIGJvcmRlci1wcmltYXJ5IHAtNVwiIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsZS5jbGljaygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ2XCIgaGVpZ2h0PVwiNDZcIiB2aWV3Qm94PVwiMCAwIDQ2IDQ2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBmaWxsPVwiI0YyRjRGN1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBzdHJva2U9XCIjRjlGQUZCXCIgc3Ryb2tlLXdpZHRoPVwiNlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF83OTc5XzUyMDIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjYuMzMzNSAyNi4zMzMyTDIzLjAwMDIgMjIuOTk5OU0yMy4wMDAyIDIyLjk5OTlMMTkuNjY2OSAyNi4zMzMyTTIzLjAwMDIgMjIuOTk5OVYzMC40OTk5TTI5Ljk5MTkgMjguMzI0OUMzMC44MDQ3IDI3Ljg4MTggMzEuNDQ2NyAyNy4xODA2IDMxLjgxNjggMjYuMzMyMUMzMi4xODY4IDI1LjQ4MzUgMzIuMjYzNyAyNC41MzU5IDMyLjAzNTQgMjMuNjM4OEMzMS44MDcgMjIuNzQxNyAzMS4yODY1IDIxLjk0NjIgMzAuNTU1OCAyMS4zNzc4QzI5LjgyNTEgMjAuODA5NCAyOC45MjU5IDIwLjUwMDUgMjguMDAwMiAyMC40OTk5SDI2Ljk1MDJDMjYuNjk4IDE5LjUyNDMgMjYuMjI3OCAxOC42MTg1IDI1LjU3NTIgMTcuODUwN0MyNC45MjI1IDE3LjA4MjkgMjQuMTA0MiAxNi40NzMxIDIzLjE4MiAxNi4wNjcxQzIyLjI1OTcgMTUuNjYxIDIxLjI1NzMgMTUuNDY5NCAyMC4yNTAzIDE1LjUwNjVDMTkuMjQzMyAxNS41NDM2IDE4LjI1NzggMTUuODA4NSAxNy4zNjc5IDE2LjI4MTNDMTYuNDc3OSAxNi43NTQxIDE1LjcwNjggMTcuNDIyNSAxNS4xMTI0IDE4LjIzNjJDMTQuNTE4IDE5LjA1IDE0LjExNTggMTkuOTg3OSAxMy45MzYgMjAuOTc5NEMxMy43NTYzIDIxLjk3MDkgMTMuODAzNiAyMi45OTAzIDE0LjA3NDYgMjMuOTYxQzE0LjM0NTUgMjQuOTMxNiAxNC44MzI5IDI1LjgyODEgMTUuNTAwMiAyNi41ODMyXCIgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzc5NzlfNTIwMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTMgMTMpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmV0ZXh0IGN1cnNvci1wb2ludGVyIG1iLTIgZnctYm9sZFwiPjxzcGFuIGNsYXNzPVwidGV4dC1wcmltYXJ5IHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmVcIj5DbGljayBUbyBVcGxvYWQ8L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZHJhZyBhbmQgZHJvcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcmFsaWduIGZ3LTQwMFwiPnRoZSBkYXRhIGFkZGVkIHRlbXBsYXRlIGZpbGUgZm9yIHByb2Nlc3NpbmcuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjtcIiB0eXBlPVwiZmlsZVwiICNmaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIiAoY2hhbmdlKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF0YWJsZUFycmF5Lmxlbmd0aCAmJiAhdGFibGVMb2FkaW5nMSAmJiAhdGFibGVGaWx0ZXIubGVuZ3RoICYmIHNob3dJbWFnZSAmJiAhY29uZmlnRGF0YS5jaGVja0xpc3REZXRhaWxzLmFzc2lnbmVkVXNlcnMgJiYgWydjbHVzdGVyJywndGVhbSddLmluY2x1ZGVzKGFzc2lnblR5cGUpXCIgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgbXktOCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgdGhlIDxzcGFuPnt7YXNzaWduVHlwZX19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0gJ2N1c3RvbSdcIiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItYXNzaWduIFtjb25maWdEYXRhXT1cImNvbmZpZ0RhdGFcIiBbdXBsb2FkRGF0YV09XCJ1cGxvYWREYXRhXCIgW2NvbmZpZ3VyZVR5cGVdPVwiY29uZmlndXJlVHlwZVwiIChkYXRhVG9QYXJlbnQpPVwiaGFuZGxlRGF0YUZyb21DaGlsZCgkZXZlbnQpXCI+PC9saWItYXNzaWduPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2J1bGt1cGxvYWQgbGV0LW1vZGVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLWxpZ2h0LXByaW1hcnkgcm91bmRlZC01IHctNDBweCBoLTQwcHggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gPHNwYW4gY2xhc3M9XCJjb25maWctaGVhZGluZyBmdy1zZW1pYm9sZCBtcy01IHctYXV0b1wiPkJ1bGsgVXBsb2FkPC9zcGFuPlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwdC0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlQXNzaWduIG10LTNcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDBcIj5TdGVwIDEgLSA8YSBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZVYyKClcIj5Eb3dubG9hZCB0aGUgdGVtcGxhdGUgaGVyZTwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZUFzc2lnbiBtdC0zXCIgc3R5bGU9XCJmb250LXdlaWdodDogNDAwXCI+U3RlcDIgLSBBZGQgeW91ciBkYXRhIHRvIHRoZSBUZW1wbGF0ZSBGaWxlIHdpdGggZXhpc3RpbmcgPHNwYW4gKm5nSWY9XCJzdG9yZUNvdmVyYWdlXCI+c3RvcmU8L3NwYW4+IDxzcGFuICpuZ0lmPVwidXNlckNvdmVyYWdlXCI+dXNlcjwvc3Bhbj4gZGF0YTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlQXNzaWduIG10LTNcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDBcIj5TdGVwMyAtIFVwbG9hZCBpdCBiZWxvdyBmb3IgcHJvY2Vzc2luZzwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIHN0b3JlQXNzaWduIG10LTEwXCI+KipOb3RlIDogT24gdXBsb2FkLCBhbGwgdGhlIGV4aXN0aW5nIGRhdGEgd2lsbCBiZSByZXBsYWNlZDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTAgdGV4dC1lbmQgcHQtMFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1tZCBidG4tZGVmYXVsdCBidG4tb3V0bGluZVwiIChjbGljayk9XCJtb2RlbC5jbG9zZSgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW1kIHB5LTQgYnRuLWRlZmF1bHQgbXMtMyBidG4tcHJpbWFyeVwiIChjbGljayk9XCJmaWxlMS5jbGljaygpXCI+VXBsb2FkPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxpbnB1dCBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjtcIiAjZmlsZTEgdHlwZT1cImZpbGVcIiBpZD1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNhZnRlclZhbGlkYXRpb24gbGV0LW1vZGVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgbXQtMFwiPlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbXQtM1wiPjxzcGFuIGNsYXNzPVwiY29uZmlnLWhlYWRpbmcgZnctc2VtaWJvbGQgdy1hdXRvXCI+QXNzaWduIDxzcGFuICpuZ0lmPVwic3RvcmVDb3ZlcmFnZVwiPlN0b3Jlczwvc3Bhbj4gPHNwYW4gKm5nSWY9XCJ1c2VyQ292ZXJhZ2VcIj5Vc2Vyczwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwdC0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZyB3LTEwMFwiPnt7Z2V0U3RvcmVDb3VudHMoZXhjZWxEYXRhKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgc3VidGl0bGUgbXQtMVwiPlRvdGFsIDxzcGFuICpuZ0lmPVwic3RvcmVDb3ZlcmFnZVwiPlN0b3Jlczwvc3Bhbj4gPHNwYW4gKm5nSWY9XCJ1c2VyQ292ZXJhZ2VcIj5Vc2Vyczwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY2FyZCByb3VuZGVkLTMgcC0zIGZsZXgtY29sdW1uIGgtODBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmcgdy0xMDBcIj57e2V4Y2VsRGF0YT8ubGVuZ3RofX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIHN1YnRpdGxlIG10LTFcIj5Sb3dzIHByb2Nlc3NlZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleGNlbEVycm9yID8gJ2Vycm9yLWhlYWRpbmcnOicnXCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZyB3LTEwMFwiPnt7ZXhjZWxFcnJvcj8uZXJyb3I/Lmxlbmd0aCB8fCAwfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleGNlbEVycm9yID8gJ2V4Y2VsLWVycm9yJzonJ1wiIGNsYXNzPVwiZnctc2VtaWJvbGQgc3VidGl0bGUgbXQtMVwiPkVycm9yPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWV4Y2VsRXJyb3JcIiBjbGFzcz1cInRhYmxlLWhlYWRlciBtdC01XCIgc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFzaG93U3RvcmUmJiFzaG93VGVhbSYmIXNob3dDbHVzdGVyJiYhc2hvd1VzZXImJiFzaG93SW5hY3RpdmVcIj5Zb3UncmUgYWJvdXQgdG8gYXNzaWduIHt7Z2V0U3RvcmVDb3VudHMoZXhjZWxEYXRhKX19IDxzcGFuICpuZ0lmPVwic3RvcmVDb3ZlcmFnZVwiPnN0b3Jlczwvc3Bhbj48c3BhbiAqbmdJZj1cInVzZXJDb3ZlcmFnZVwiPnVzZXJzPC9zcGFuPiB0byB0aGUgY2hlY2tsaXN0LiBBcmUgeW91IHN1cmUgd2FudCB0byBwcm9jZWVkPzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0b3JlQ292ZXJhZ2UgJiYgc2hvd1N0b3JlXCIgY2xhc3M9XCJtdC0zXCI+U3RvcmUgPHNwYW4gKm5nRm9yPVwibGV0IHN0b3JlIG9mIHZhbGlkYXRlZFN0b3JlO2xldCBsYXN0ID0gbGFzdFwiIGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmdcIj57e3N0b3JlfX08c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj48L3NwYW4+IHRoYXQgSeKAmW0gbG9va2luZyBmb3IgaXNu4oCZdCAgYXZhaWxhYmxlLCA8YSAgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc3RvcmVzXCIgW3F1ZXJ5UGFyYW1zXT1cInt0eW9lOiAnc3RvcmVzJ31cIiBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VhY3RpdmVwb3B1cCgpXCI+T25ib2FyZCBTdG9yZXM8L2E+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlckNvdmVyYWdlICYmIHNob3dVc2VyXCIgY2xhc3M9XCJtdC0zXCI+VXNlciA8c3BhbiAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgdmFsaWRhdGVkVXNlcjtsZXQgbGFzdCA9IGxhc3RcIiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nXCI+e3tzdG9yZX19PHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPiB0aGF0IEnigJltIGxvb2tpbmcgZm9yIGlzbuKAmXQgIGF2YWlsYWJsZSwgPGEgIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKCk7Y29uZmlybVVzZXJwb3B1cCgpXCI+T25ib2FyZCBVc2VyczwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyQ292ZXJhZ2UgJiYgc2hvd1RlYW1cIiBjbGFzcz1cIm10LTNcIj5UZWFtIDxzcGFuICpuZ0Zvcj1cImxldCBzdG9yZSBvZiB2YWxpZGF0ZWRUZWFtO2xldCBsYXN0ID0gbGFzdFwiIGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmdcIj57e3N0b3JlfX08c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj48L3NwYW4+IHRoYXQgSeKAmW0gbG9va2luZyBmb3IgaXNu4oCZdCAgYXZhaWxhYmxlLCA8YSAgcm91dGVyTGluaz1cIi9tYW5hZ2UvdXNlcnMvY2xpZW50XCIgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsb3NlYWN0aXZlcG9wdXAoKVwiPkNyZWF0ZSBUZWFtPC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0b3JlQ292ZXJhZ2UgJiYgc2hvd0NsdXN0ZXJcIiBjbGFzcz1cIm10LTNcIj51c2VyIDxzcGFuICpuZ0Zvcj1cImxldCBzdG9yZSBvZiB2YWxpZGF0ZWRDbHVzdGVyO2xldCBsYXN0ID0gbGFzdFwiIGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmdcIj57e3N0b3JlfX08c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj48L3NwYW4+IHRoYXQgSeKAmW0gbG9va2luZyBmb3IgaXNu4oCZdCAgYXZhaWxhYmxlLCA8YSAgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc3RvcmVzXCIgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCIgW3F1ZXJ5UGFyYW1zXT1cInt0eW9lOiAnY2x1c3Rlcid9XCIgKGNsaWNrKT1cImNsb3NlYWN0aXZlcG9wdXAoKVwiPkNyZWF0ZSBDbHVzdGVyPC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0b3JlQ292ZXJhZ2UgJiYgc2hvd1VzZXJcIiBjbGFzcz1cIm10LTNcIj5Vc2VyIDxzcGFuICpuZ0Zvcj1cImxldCBzdG9yZSBvZiB2YWxpZGF0ZWRVc2VyO2xldCBsYXN0ID0gbGFzdFwiIGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmdcIj57e3N0b3JlfX08c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj48L3NwYW4+IHRoYXQgSeKAmW0gbG9va2luZyBmb3IgaXNu4oCZdCAgYXZhaWxhYmxlLCA8YSAgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsb3NlYWN0aXZlcG9wdXAoKTtjb25maXJtVXNlcnBvcHVwKClcIj5PbmJvYXJkIFVzZXJzPC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0b3JlQ292ZXJhZ2UgJiYgc2hvd0luYWN0aXZlXCIgY2xhc3M9XCJtdC0zXCI+U3RvcmUgPHNwYW4gKm5nRm9yPVwibGV0IHN0b3JlIG9mIGluYWN0aXZlU3RvcmVzO2xldCBsYXN0ID0gbGFzdFwiIGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmdcIj57e3N0b3JlfX08c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj48L3NwYW4+IHRoYXQgSeKAmW0gbG9va2luZyBmb3IgaXMgaW5hY3RpdmUsIDxhICByb3V0ZXJMaW5rPVwiL21hbmFnZS9zdG9yZXNcIiBbcXVlcnlQYXJhbXNdPVwie3R5b2U6ICdzdG9yZXMnfVwiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKClcIj5PbmJvYXJkIFN0b3JlczwvYT48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJleGNlbEVycm9yXCIgY2xhc3M9XCJmbGV4LWNvbHVtbiBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmcgZnctYm9sZFwiPkludmFsaWQgRGV0YWlscyAhPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgbXQtNVwiPlBsZWFzZSBwcm92aWRlIGNvcnJlY3QgYW5kIGNvbXBsZXRlIGxheW91dCBpbmZvcm1hdGlvbi48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTUgdy0xMDAgcm91bmRlZC0zIGJvcmRlci1lcnJvciBtdC01IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXhjZWxFcnJvcj8uZXJyb3I7IGxldCBpID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiIFtuZ0NsYXNzXT1cIiFsYXN0ID8gJ21iLTInIDogJydcIiBjbGFzcz1cInRleHQtZXJyb3JcIj57e2kgKyAxfX0pIHt7ZXJyb3J9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTAgdGV4dC1lbmQgcHQtMFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1tZCBidG4tZGVmYXVsdCBidG4tb3V0bGluZVwiIChjbGljayk9XCJjbG9zZWFjdGl2ZXBvcHVwKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFleGNlbEVycm9yJiYhc2hvd1N0b3JlJiYhc2hvd0NsdXN0ZXImJiFzaG93VXNlciYmIXNob3dUZWFtJiYhc2hvd0luYWN0aXZlXCIgY2xhc3M9XCJidG4gYnRuLW1kIHB5LTQgYnRuLWRlZmF1bHQgbXMtMyBidG4tcHJpbWFyeVwiIChjbGljayk9XCJ2YWxpZGF0ZURldGFpbHMoKVwiPlByb2NlZWQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImV4Y2VsRXJyb3J8fHNob3dTdG9yZXx8c2hvd0NsdXN0ZXJ8fHNob3dVc2VyfHxzaG93VGVhbSB8fCBzaG93SW5hY3RpdmVcIiBjbGFzcz1cImJ0biBweS0zIGJ0bi1tZCBidG4tZGVmYXVsdCBtcy0zIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwiUmV1cGxvYWQoKTtcIj5SZXVwbG9hZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCIgI2ZpbGUxIHR5cGU9XCJmaWxlXCIgaWQ9XCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVVcGxvYWQoJGV2ZW50LCdyZXVwbG9hZCcpXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb25maXJtVXNlciBsZXQtbW9kZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBib3JkZXItMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBtdC01XCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBkLWZsZXggZmxleC1jb2x1bW4gbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLWxpZ2h0LXByaW1hcnkgcm91bmRlZC01IHctNDBweCBoLTQwcHggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj48YnI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmcgZnctc2VtaWJvbGQgdy1hdXRvXCI+TmV3IFVzZXIgZm91bmQgaW4gdXBsb2FkZWQgZmlsZTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB0LTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmVBc3NpZ24gbXQtM1wiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMFwiPlRoaXMgQ1NWIGNvbnRhaW5zIGEgbmV3IFVzZXIuIEFkZCBuZXcgVXNlciBpbiB0aGUgVXNlciBNYW5hZ2VtZW50IHVuZGVyIE1hbmFnZSBtZW51LjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTAgdGV4dC1lbmQgcHQtMFwiPlxyXG4gICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW1kIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvdXNlcnMvY2xpZW50XCIgKGNsaWNrKT1cImNsb3NlYWN0aXZlcG9wdXAoKVwiPlNraXAgTmV3IEVudHJpZXM8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW1kIHB5LTQgYnRuLWRlZmF1bHQgbXMtMyBidG4tcHJpbWFyeVwiIChjbGljayk9XCJtb2RlbC5jbG9zZSgnY29uZmlybScpXCI+SW52aXRlIFNlbGVjdGVkPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|