tango-app-ui-analyse-traffic 3.4.0-beta.8 → 3.4.0-beta.9
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-nob/add-nob.component.mjs +4 -2
- package/esm2022/lib/components/nob-upload/nob-upload.component.mjs +31 -11
- package/esm2022/lib/components/traffic-analysis/traffic-analysis.component.mjs +3 -3
- package/fesm2022/tango-app-ui-analyse-traffic.mjs +35 -13
- package/fesm2022/tango-app-ui-analyse-traffic.mjs.map +1 -1
- package/lib/components/nob-upload/nob-upload.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -205,10 +205,12 @@ export class AddNobComponent {
|
|
|
205
205
|
nobDate: this.datePipe.transform(obj["NOBDate"], "yyyy-MM-dd"),
|
|
206
206
|
nobCount: Number(obj["NOBCount"]),
|
|
207
207
|
};
|
|
208
|
-
})
|
|
208
|
+
})
|
|
209
|
+
.filter((bill) => bill.nobDate !== null && bill.nobCount !== null),
|
|
209
210
|
clientId: this.clientId
|
|
210
211
|
};
|
|
211
212
|
this.ts.getSuccessToast(`File has been uploaded`);
|
|
213
|
+
console.log(this.convertedData);
|
|
212
214
|
// Trigger change detection
|
|
213
215
|
this.cd.detectChanges();
|
|
214
216
|
}
|
|
@@ -260,4 +262,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
260
262
|
type: ViewChild,
|
|
261
263
|
args: ["inputFile"]
|
|
262
264
|
}] } });
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1ub2IvYWRkLW5vYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1ub2IvYWRkLW5vYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBTzNDLE1BQU0sT0FBTyxlQUFlO0lBS1I7SUFBdUI7SUFBK0I7SUFBb0M7SUFBeUI7SUFBNkI7SUFKM0osSUFBSSxDQUFLO0lBRWxCLE9BQU8sQ0FBWTtJQUNGLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFlBQW9CLEVBQWMsRUFBUyxPQUFzQixFQUFTLFdBQTJCLEVBQVMsRUFBZ0IsRUFBUyxFQUFvQixFQUFTLFFBQWtCO1FBQWxLLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUFTLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUV0TCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElB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LEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUUsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUU7b0JBQzNCLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUE7b0JBQy9CLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtpQkFDM0I7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsQ0FBQztpQkFDckQ7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsQ0FBQztTQUVKLENBQUMsQ0FBQTtJQUNKLENBQUM7d0dBN09ZLGVBQWU7NEZBQWYsZUFBZSxnRUFGZixDQUFDLFFBQVEsQ0FBQyxrSUNadkIsNjBZQXdKTTs7NEZEMUlPLGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0UsYUFBYSxhQUdaLENBQUMsUUFBUSxDQUFDOzROQUdkLElBQUk7c0JBQVosS0FBSztnQkE2SWtCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyYWZmaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhZmZpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFkZC1ub2InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbm9iLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWRkLW5vYi5jb21wb25lbnQuc2NzcycsXHJcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGROb2JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuQElucHV0KCkgdHlwZTphbnk7XHJcblxyXG5ub2JGb3JtOiBGb3JtR3JvdXA7XHJcbnByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5jb25zdHJ1Y3Rvcihwcml2YXRlIGZiOkZvcm1CdWlsZGVyLHByaXZhdGUgc2VydmljZTpUcmFmZmljU2VydmljZSxwcml2YXRlIGFjdGl2ZU1vZGFsIDpOZ2JBY3RpdmVNb2RhbCxwcml2YXRlIHRzOiBUb2FzdFNlcnZpY2UscHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSl7XHJcblxyXG59XHJcbm5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbn1cclxuY2xpZW50SWQ6YW55O1xyXG5tYXhEYXRlOiBzdHJpbmcgPSAnJztcclxubmdPbkluaXQoKTogdm9pZCB7XHJcbmxldCBkYXRhOiBhbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJcIik7XHJcbnRoaXMuY2xpZW50SWQgPWRhdGEuY2xpZW50XHJcbnRoaXMuZ2V0Tm9iU3RvcmVMaXN0KGRhdGEuY2xpZW50KTtcclxudGhpcy5zZXRNYXhEYXRlKCk7XHJcbn1cclxuXHJcblxyXG5zdG9yZUxpc3Q6YW55W109W107XHJcbmdldE5vYlN0b3JlTGlzdChjbGllbnQ6YW55KXtcclxuICB0aGlzLnNlcnZpY2UuZ2V0Tk9CU3RvcmVMaXN0KGNsaWVudCk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC5zdWJzY3JpYmUoe1xyXG4gICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKXtcclxuICAgICAgICB0aGlzLnN0b3JlTGlzdCA9cmVzLmRhdGEucmVzdWx0XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICBcclxuICAgIH1cclxuICB9KVxyXG59XHJcblxyXG5zdG9yZU5hbWU6YW55O1xyXG5zdG9yZUlkOmFueTtcclxuZGF0ZVZhbHVlOmFueTtcclxuc3RvcmVDb2RlOmFueTtcclxubm9iQ291bnQ6YW55O1xyXG5vbk5PQlN0b3JlU2VsZWN0KGV2ZW50OiBhbnksIHR5cGU6ICdzdG9yZU5hbWUnIHwgJ3N0b3JlSWQnKTogdm9pZCB7XHJcbiAgaWYgKCFldmVudCkge1xyXG4gICAgY29uc29sZS5lcnJvcignRXZlbnQgaXMgdW5kZWZpbmVkIG9yIGludmFsaWQnKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgaWYgKHR5cGUgPT09ICdzdG9yZU5hbWUnKSB7XHJcbiAgICB0aGlzLnN0b3JlTmFtZSA9IGV2ZW50LnN0b3JlTmFtZTtcclxuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5zdG9yZUxpc3QuZmluZChzdG9yZSA9PiBzdG9yZS5zdG9yZU5hbWUgPT09IGV2ZW50LnN0b3JlTmFtZSk7XHJcbiAgICBpZiAoc3RvcmUpIHtcclxuICAgICAgdGhpcy5zdG9yZUlkID0gc3RvcmUuc3RvcmVJZDtcclxuICAgICAgdGhpcy5zdG9yZUNvZGUgPSBzdG9yZS5zdG9yZUNvZGU7IFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9yZUlkID0gJyc7XHJcbiAgICAgIHRoaXMuc3RvcmVDb2RlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlbHNlIGlmICh0eXBlID09PSAnc3RvcmVJZCcpIHtcclxuICAgIHRoaXMuc3RvcmVJZCA9IGV2ZW50LnN0b3JlSWQ7XHJcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMuc3RvcmVMaXN0LmZpbmQoc3RvcmUgPT4gc3RvcmUuc3RvcmVJZCA9PT0gZXZlbnQuc3RvcmVJZCk7XHJcbiAgICBpZiAoc3RvcmUpIHtcclxuICAgICAgdGhpcy5zdG9yZU5hbWUgPSBzdG9yZS5zdG9yZU5hbWU7XHJcbiAgICAgIHRoaXMuc3RvcmVDb2RlID0gc3RvcmUuc3RvcmVDb2RlOyBcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmVOYW1lID0gJyc7XHJcbiAgICAgIHRoaXMuc3RvcmVDb2RlID0gJyc7IFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgXHJcbn1cclxub21pdF9zcGVjaWFsX2NoYXIoZXZlbnQ6IGFueSkge1xyXG4gIHZhciBrO1xyXG4gIGsgPSBldmVudC5jaGFyQ29kZTsgLy8gICAgICAgICBrID0gZXZlbnQua2V5Q29kZTsgIChCb3RoIGNhbiBiZSB1c2VkKVxyXG4gIHJldHVybiBrID09IDggfHwgayA9PSAzMiB8fCAoayA+PSA0OCAmJiBrIDw9IDU3KTtcclxufVxyXG5zZXRNYXhEYXRlKCk6IHZvaWQge1xyXG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICBjb25zdCB5ZXN0ZXJkYXkgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgeWVzdGVyZGF5LnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpIC0gMSk7IC8vIFNldCB0aGUgbWF4IGRhdGUgdG8geWVzdGVyZGF5XHJcbiAgdGhpcy5kYXRlVmFsdWUgPSB5ZXN0ZXJkYXkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xyXG4gIC8vIEZvcm1hdCB0aGUgZGF0ZSBhcyB5eXl5LU1NLWRkXHJcbiAgdGhpcy5tYXhEYXRlID0geWVzdGVyZGF5LnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcclxufVxyXG5vbkRhdGVDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICBpZiAoc2VsZWN0ZWREYXRlID4gdGhpcy5tYXhEYXRlKSB7XHJcbiAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoJ0ludmFsaWQgZGF0ZSBzZWxlY3RlZCEnKTtcclxuICB9XHJcbn1cclxuY2FuY2VsKCl7XHJcbiAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnY2xvc2UnKTtcclxufVxyXG5vblN1Ym1pdCgpe1xyXG4gIGxldCBvYmogPXtcclxuICAgIGJpbGxzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICAvLyBzdG9yZUlkOiB0aGlzLnN0b3JlSWQsXHJcbiAgICAgICAgc3RvcmVDb2RlOiB0aGlzLnN0b3JlQ29kZSxcclxuICAgICAgICAvLyBzdG9yZU5hbWU6IHRoaXMuc3RvcmVOYW1lLFxyXG4gICAgICAgIG5vYkRhdGU6IHRoaXMuZGF0ZVZhbHVlLFxyXG4gICAgICAgIG5vYkNvdW50OiBOdW1iZXIodGhpcy5ub2JDb3VudClcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkXHJcbiAgfVxyXG50aGlzLnNlcnZpY2UuZ2V0Tk9CRGF0YUxpc3Qob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbi5zdWJzY3JpYmUoe1xyXG4gIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT09IDIwMCAmJiByZXMpIHtcclxuICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IHJlcy5tZXNzYWdlXHJcbiAgICAgICAgICAvLyAubWFwKChpdGVtOmFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gICBjb25zdCBzdGF0dXMgPSBpdGVtLmNvZGUgPT09IDIwMCA/ICfinIUnIDogJ+KdjCc7IFxyXG4gICAgICAgICAgLy8gICBjb25zdCBzdG9yZUluZm8gPSBpdGVtLnN0b3JlSWQgPyBgJHtpdGVtLnN0b3JlSWR9YCA6ICcnO1xyXG4gICAgICAgICAgLy8gICByZXR1cm4gYCR7c3RhdHVzfSAke3N0b3JlSW5mb306ICR7aXRlbS5tZXNzYWdlfWA7XHJcbiAgICAgICAgICAvLyB9KVxyXG4gICAgICAgICAgLy8gLmpvaW4oJzxicj4nKTsgXHJcbiAgICAgICAgdGhpcy50cy5nZXRTdWNjZXNzVG9hc3QoYWxsTWVzc2FnZXMpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ3N1Ym1pdCcpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdCgnVW5leHBlY3RlZCByZXNwb25zZSBmb3JtYXQnKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgLy8gY29uc29sZS5lcnJvcignQVBJIEVycm9yOicsIGVycik7XHJcbiAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChlcnIuZXJyb3IuZXJyb3IpO1xyXG4gICAgfSxcclxuXHJcbn0pXHJcbn1cclxuXHJcblxyXG50eXBlTk9CID0nc2luZ2xlJ1xyXG5ub2JTdG9yZSh0eXBlOmFueSl7XHJcbiAgdGhpcy50eXBlTk9CID10eXBlXHJcbn1cclxuZGF0YVRhYmxlU2hvdyA9ZmFsc2U7XHJcbmRhdGFUYWJsZVNob3cxID1mYWxzZTtcclxudGFibGVIZWFkZXJzOmFueTtcclxuY29udmVydGVkRGF0YTphbnk7XHJcbkBWaWV3Q2hpbGQoXCJpbnB1dEZpbGVcIikgaW5wdXRGaWxlOiBFbGVtZW50UmVmO1xyXG5vblVwbG9hZChldmVudDogYW55KTogdm9pZCB7XHJcbiAgY29uc3QgZmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcclxuICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICBjb25zdCBiaW5hcnlEYXRhOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB3b3JrYm9vazogWExTWC5Xb3JrQm9vayA9IFhMU1gucmVhZChiaW5hcnlEYXRhLCB7IHR5cGU6ICdiaW5hcnknIH0pO1xyXG4gICAgICBjb25zdCBzaGVldE5hbWU6IHN0cmluZyA9IHdvcmtib29rLlNoZWV0TmFtZXNbMF07XHJcblxyXG4gICAgICBpZiAoc2hlZXROYW1lICE9PSAnTk9CJykge1xyXG4gICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSB1cGxvYWQgYSB2YWxpZCBmaWxlLlwiKTtcclxuICAgICAgICB0aGlzLnJlc2V0RmlsZUlucHV0KCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBzaGVldDogWExTWC5Xb3JrU2hlZXQgPSB3b3JrYm9vay5TaGVldHNbc2hlZXROYW1lXTtcclxuICAgICAgY29uc3QganNvbkRhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24oc2hlZXQsIHsgaGVhZGVyOiAxIH0pO1xyXG4gICAgICBpZiAoanNvbkRhdGEubGVuZ3RoID4gMTAwKSB7IFxyXG4gICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChcIkZpbGUgY29udGFpbnMgdG9vIG1hbnkgcm93cy4gUGxlYXNlIGxpbWl0IHRvIDEwMCByb3dzLlwiKTtcclxuICAgICAgICB0aGlzLnJlc2V0RmlsZUlucHV0KCk7XHJcbiAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93MSA9IHRydWU7IFxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdzEgPSBmYWxzZTsgXHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaGVhZGVyczogYW55ID0ganNvbkRhdGFbMF07XHJcbiAgICAgIHRoaXMudGFibGVIZWFkZXJzID0gaGVhZGVycztcclxuICAgICAgY29uc3QgZGF0YVJvd3MgPSBqc29uRGF0YS5zbGljZSgxKTtcclxuICAgICAgdGhpcy5jb252ZXJ0ZWREYXRhID0ge1xyXG4gICAgICAgIGJpbGxzOiBkYXRhUm93cy5tYXAoKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xyXG4gICAgICAgICAgaGVhZGVycy5mb3JFYWNoKChoZWFkZXI6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY2VsbFZhbHVlID0gcm93W2luZGV4XTtcclxuICAgICAgICAgICAgaWYgKGhlYWRlciA9PT0gXCJOT0JEYXRlXCIgJiYgdHlwZW9mIGNlbGxWYWx1ZSA9PT0gXCJudW1iZXJcIikge1xyXG4gICAgICAgICAgICAgIGNlbGxWYWx1ZSA9IHRoaXMuY29udmVydEV4Y2VsRGF0ZShjZWxsVmFsdWUpOyBcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoYFBsZWFzZSB1cGxvYWQgYSB2YWxpZCBOT0IgRGF0ZSBGb3JtYXRgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaGVhZGVyID09PSBcIlN0b3JlSWRcIiAmJiBjZWxsVmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIGNlbGxWYWx1ZSA9IGNlbGxWYWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9ialtoZWFkZXJdID0gY2VsbFZhbHVlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIHN0b3JlQ29kZTogb2JqW1wiU3RvcmVJZFwiXSxcclxuICAgICAgICAgICAgICBub2JEYXRlOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShvYmpbXCJOT0JEYXRlXCJdLCBcInl5eXktTU0tZGRcIiksXHJcbiAgICAgICAgICAgICAgbm9iQ291bnQ6IE51bWJlcihvYmpbXCJOT0JDb3VudFwiXSksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMudHMuZ2V0U3VjY2Vzc1RvYXN0KGBGaWxlIGhhcyBiZWVuIHVwbG9hZGVkYCk7XHJcbiAgICAgIC8vIFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChgUGxlYXNlIHVwbG9hZCBhIHZhbGlkIGZpbGU6ICR7ZXJyb3J9YCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc2V0RmlsZUlucHV0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy8gUmVhZCB0aGUgdXBsb2FkZWQgZmlsZSBhcyBiaW5hcnkgc3RyaW5nXHJcbiAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKTtcclxufVxyXG5yZXNldEZpbGVJbnB1dCgpOiB2b2lkIHtcclxuICBpZiAodGhpcy5pbnB1dEZpbGUgJiYgdGhpcy5pbnB1dEZpbGUubmF0aXZlRWxlbWVudCkge1xyXG4gICAgdGhpcy5pbnB1dEZpbGUubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gIH1cclxufVxyXG5cclxuY29udmVydEV4Y2VsRGF0ZShleGNlbERhdGU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgY29uc3QgYmFzZURhdGUgPSBuZXcgRGF0ZSgxOTAwLCAwLCAxKTsgXHJcbiAgY29uc3QgY29ycmVjdGVkRGF0ZSA9IG5ldyBEYXRlKGJhc2VEYXRlLmdldFRpbWUoKSArIChleGNlbERhdGUgLSAxKSAqIDg2NDAwMDAwKTtcclxuICByZXR1cm4gY29ycmVjdGVkRGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXTsgXHJcbn1cclxuXHJcbnByb2NlZWQoKXtcclxuICB0aGlzLnNlcnZpY2UuZ2V0Tk9CRGF0YUxpc3QodGhpcy5jb252ZXJ0ZWREYXRhKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT09IDIwMCAmJiByZXMpIHtcclxuICAgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gcmVzLm1lc3NhZ2VcclxuICAgICAgICAgIHRoaXMudHMuZ2V0U3VjY2Vzc1RvYXN0KGFsbE1lc3NhZ2VzKTtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ3N1Ym1pdCcpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdCgnVW5leHBlY3RlZCByZXNwb25zZSBmb3JtYXQnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoZXJyLmVycm9yLmVycm9yKTtcclxuICAgICAgfSxcclxuICBcclxuICB9KVxyXG59XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgcHQtMCBwYi0zIHNjcm9sbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0wIGQtZmxleCBmbGV4LXN0YXJ0IGZsZXgtY29sdW1uIHAtOSBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXktNSBkLWZsZXhcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09J2FkZCdcIiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIGFsdD1cIlBpY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL2FkZC1zdG9yZS1pY29uLnN2Z1wiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09J3JldXBsb2FkJ1wiIGNsYXNzPVwic3ltYm9sIHN5bWJvbC03NXB4IHN5bWJvbC1jaXJjbGVcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTM3IDMxVjM1QzM3IDM1LjUzMDQgMzYuNzg5MyAzNi4wMzkxIDM2LjQxNDIgMzYuNDE0MkMzNi4wMzkxIDM2Ljc4OTMgMzUuNTMwNCAzNyAzNSAzN0gyMUMyMC40Njk2IDM3IDE5Ljk2MDkgMzYuNzg5MyAxOS41ODU4IDM2LjQxNDJDMTkuMjEwNyAzNi4wMzkxIDE5IDM1LjUzMDQgMTkgMzVWMzFNMzMgMjRMMjggMTlNMjggMTlMMjMgMjRNMjggMTlWMzFcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0nYWRkJ1wiIGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImZzLTQgdGV4dC1ncmF5LTgwMCB0ZXh0LWhvdmVyLXByaW1hcnkgZnctYm9sZCBtYi0wIHRpdGxlIGN1cnNvci1wb2ludGVyXCI+QWRkIFNpbmdsZSBOb0I8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0ncmV1cGxvYWQnXCIgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZnMtNCB0ZXh0LWdyYXktODAwIHRleHQtaG92ZXItcHJpbWFyeSBmdy1ib2xkIG1iLTAgdGl0bGUgY3Vyc29yLXBvaW50ZXJcIj5VcGxvYWQgTm9CIGZvcjwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbjxkaXYgICpuZ0lmPVwidHlwZSA9PT0ncmV1cGxvYWQnXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgdy01MCBjdXJzb3ItcG9pbnRlciBwcy01XCIgKGNsaWNrKT1cIm5vYlN0b3JlKCdzaW5nbGUnKVwiIFtuZ0NsYXNzXT1cInR5cGVOT0IgPT09J3NpbmdsZScgPyAnZm9ybS1jaGVjay1pbmxpbmUnOidmb3JtLWNoZWNrLWlubGluZS1ub25lJ1wiID5cclxuICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJ0eXBlTk9CID09PSdzaW5nbGUnXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtNXB4ICFpbXBvcnRhbnQ7XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE1XCIgcng9XCI3LjVcIiBmaWxsPVwiI0VBRjhGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiIzAwQTNGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCIzXCIgZmlsbD1cIiMwMEEzRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInR5cGVOT0IgIT09J3NpbmdsZSdcIiBzdHlsZT1cIm1hcmdpbi10b3A6IC01cHggIWltcG9ydGFudDtcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNVwiIHk9XCIwLjVcIiB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTVcIiByeD1cIjcuNVwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtcy0xMFwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJpbmxpbmVSYWRpb09wdGlvbnNcIiBpZD1cImlubGluZVJhZGlvMVwiIHZhbHVlPVwib3B0aW9uMVwiPiAtLT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBwdC0xMlwiIFtuZ0NsYXNzXT1cInR5cGVOT0IgPT09J3NpbmdsZScgPyAnZm9ybS10ZXh0LXByaW1hcnkgJzonZm9ybS1kZWZ1bHQnXCI+U2luZ2xlIFN0b3JlPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgIHctNTAgY3Vyc29yLXBvaW50ZXIgcHMtNVwiIChjbGljayk9XCJub2JTdG9yZSgnbXVsdGlwbGUnKVwiIFtuZ0NsYXNzXT1cInR5cGVOT0IgPT09J211bHRpcGxlJyA/ICdmb3JtLWNoZWNrLWlubGluZSc6J2Zvcm0tY2hlY2staW5saW5lLW5vbmUnXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwidHlwZU5PQiA9PT0nbXVsdGlwbGUnXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtNXB4ICFpbXBvcnRhbnQ7XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE1XCIgcng9XCI3LjVcIiBmaWxsPVwiI0VBRjhGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiIzAwQTNGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCIzXCIgZmlsbD1cIiMwMEEzRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInR5cGVOT0IgIT09J211bHRpcGxlJ1wiIHN0eWxlPVwibWFyZ2luLXRvcDogLTVweCAhaW1wb3J0YW50O1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHJ4PVwiNy41XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMyBwdC0xMlwiIFtuZ0NsYXNzXT1cInR5cGVOT0IgPT09J211bHRpcGxlJyA/ICdmb3JtLXRleHQtcHJpbWFyeSc6J2Zvcm0tZGVmdWx0J1wiPk11bHRpcGxlIFN0b3Jlczwvc3Bhbj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZU5PQiA9PT0nc2luZ2xlJ1wiIGNsYXNzPVwidy0xMDAgaC0wcHggc2Nyb2xsXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMCBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdG9yZU5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdG9yZSBOYW1lPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydC1yZXF1aXJlZCB0ZXh0LWRhbmdlclwiPiAqPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWN1c3RvbS1zZWxlY3QgW2l0ZW1zXT1cInN0b3JlTGlzdFwiIFttdWx0aV09XCJmYWxzZVwiIFtzZWFyY2hGaWVsZF09XCInc3RvcmVOYW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkRmllbGRdPVwiJ3N0b3JlTmFtZSdcIiAoc2VsZWN0ZWQpPVwib25OT0JTdG9yZVNlbGVjdCgkZXZlbnQsICdzdG9yZU5hbWUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVzXT1cIlt7IHN0b3JlTmFtZTogc3RvcmVOYW1lIH1dXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpYi1jdXN0b20tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdG9yZUlEXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3RvcmUgSUQgLzxzcGFuICpuZ0lmPVwidHlwZSAhPT0nYWRkJ1wiPiBTdG9yZSBDb2RlPC9zcGFuPjxzcGFuICpuZ0lmPVwidHlwZSA9PT0nYWRkJ1wiPiBSZWZlcmVuY2UgQ29kZTwvc3Bhbj4gIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWQgdGV4dC1kYW5nZXJcIj4gKjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jdXN0b20tc2VsZWN0IFtpdGVtc109XCJzdG9yZUxpc3RcIiBbbXVsdGldPVwiZmFsc2VcIiBbc2VhcmNoRmllbGRdPVwiJ3N0b3JlSWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRGaWVsZF09XCInc3RvcmVJZCdcIiAoc2VsZWN0ZWQpPVwib25OT0JTdG9yZVNlbGVjdCgkZXZlbnQsICdzdG9yZUlkJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlc109XCJbeyBzdG9yZUlkOiBzdG9yZUlkIH1dXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpYi1jdXN0b20tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJEYXRlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U2VsZWN0IERhdGUgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydC1yZXF1aXJlZCB0ZXh0LWRhbmdlclwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJteURhdGVcIiBbKG5nTW9kZWwpXT1cImRhdGVWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkRhdGVDaGFuZ2UoJGV2ZW50KVwiICBbbWF4XT1cIm1heERhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjb3VudFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPk5PQiBDb3VudCA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkIHRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cIm5vYkNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0zIG1iLTEwXCIgcm9sZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDAgbXMtM1wiIGlkPVwiYWxlcnQtdG9hc3RcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFkYXRlVmFsdWUgfHwgIW5vYkNvdW50IHx8ICFzdG9yZUlkIHx8ICFzdG9yZU5hbWVcIj48c3BhbiAqbmdJZj1cInR5cGUgIT09J2FkZCdcIj5Qcm9jZWVkPC9zcGFuPjxzcGFuICpuZ0lmPVwidHlwZSA9PT0nYWRkJ1wiPkFkZDwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZU5PQiA9PT0nbXVsdGlwbGUnXCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNTAwIG15LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ0ZXh0LWdyYXktNDAwIGZ3LWJvbGQgZnMtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ1c2VyLXRleHRcIj5Vc2UgdGhlIHRlbXBsYXRlIHRvIHVwbG9hZCBtdWx0aXBsZSBOb0LigJlzIGF0IG9uY2UuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidXNlci10ZXh0IFwiPkRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBoZXJlIC0gICA8YSBocmVmPVwiLi4vLi4vYXNzZXRzL2ZpbGVzL25vYlVwbG9hZFRlbXBsYXRlLnhsc3hcIiBkb3dubG9hZD48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDIwIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcuNSAxM1YxNi4zMzMzQzE3LjUgMTYuNzc1NCAxNy4zMjQ0IDE3LjE5OTMgMTcuMDExOCAxNy41MTE4QzE2LjY5OTMgMTcuODI0NCAxNi4yNzU0IDE4IDE1LjgzMzMgMThINC4xNjY2N0MzLjcyNDY0IDE4IDMuMzAwNzIgMTcuODI0NCAyLjk4ODE2IDE3LjUxMThDMi42NzU1OSAxNy4xOTkzIDIuNSAxNi43NzU0IDIuNSAxNi4zMzMzVjEzTTUuODMzMzMgOC44MzMzM0wxMCAxM00xMCAxM0wxNC4xNjY3IDguODMzMzNNMTAgMTNWM1wiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMiB0ZXh0LWRvd25sb2FkXCI+RG93bmxvYWQgVGVtcGxhdGU8L3NwYW4+PC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInVzZXItdGV4dCBcIj5BZGQgeW91ciBkYXRhIHRvIHRoZSBUZW1wbGF0ZSBGaWxlPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidXNlci10ZXh0XCI+VXBsb2FkIGl0IGJlbG93IGZvciBwcm9jZXNzaW5nPC9saT5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZU5PQiA9PT0nbXVsdGlwbGUnXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtMyBtcy0zIHJpZ2h0LWJhciBweS0xMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPVwiYWNjb3VudFR5cGVcIiB0eXBlPVwicmFkaW9cIiBpZD1cImt0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCJcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInBlcnNvbmFsXCIgY2xhc3M9XCJidG4tY2hlY2tcIiBuZy1yZWZsZWN0LW5hbWU9XCJhY2NvdW50VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbmctcmVmbGVjdC1mb3JtLWNvbnRyb2wtbmFtZT1cImFjY291bnRUeXBlXCIgICAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5nLXJlZmxlY3QtdmFsdWU9XCJwZXJzb25hbFwiIHR5cGU9XCJmaWxlXCIgI2lucHV0RmlsZSAvPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImt0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCIgY2xhc3M9XCIgdy01MCBwLTQgbXQtNVwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWNlbnRlciB3LTEwMCBmcy00XCI+XHJcbjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQ2XCIgaGVpZ2h0PVwiNDZcIiB2aWV3Qm94PVwiMCAwIDQ2IDQ2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBmaWxsPVwiI0YyRjRGN1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgcng9XCIyMFwiIHN0cm9rZT1cIiNGOUZBRkJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80MDQ3XzQwNTY2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMjYuMzMzMyAyNi4zMzM0TDIzIDIzTTIzIDIzTDE5LjY2NjYgMjYuMzMzNE0yMyAyM1YzMC41TTI5Ljk5MTYgMjguMzI1QzMwLjgwNDQgMjcuODgxOSAzMS40NDY1IDI3LjE4MDggMzEuODE2NSAyNi4zMzIyQzMyLjE4NjYgMjUuNDgzNyAzMi4yNjM1IDI0LjUzNjEgMzIuMDM1MSAyMy42Mzg5QzMxLjgwNjggMjIuNzQxOCAzMS4yODYyIDIxLjk0NjMgMzAuNTU1NSAyMS4zNzc5QzI5LjgyNDggMjAuODA5NSAyOC45MjU3IDIwLjUwMDYgMjggMjAuNUgyNi45NUMyNi42OTc3IDE5LjUyNDQgMjYuMjI3NiAxOC42MTg2IDI1LjU3NDkgMTcuODUwOUMyNC45MjIyIDE3LjA4MzEgMjQuMTA0IDE2LjQ3MzIgMjMuMTgxNyAxNi4wNjcyQzIyLjI1OTQgMTUuNjYxMiAyMS4yNTcxIDE1LjQ2OTUgMjAuMjUwMSAxNS41MDY2QzE5LjI0MyAxNS41NDM3IDE4LjI1NzUgMTUuODA4NiAxNy4zNjc2IDE2LjI4MTRDMTYuNDc3NyAxNi43NTQyIDE1LjcwNjYgMTcuNDIyNiAxNS4xMTIyIDE4LjIzNjNDMTQuNTE3NyAxOS4wNTAxIDE0LjExNTUgMTkuOTg4IDEzLjkzNTggMjAuOTc5NUMxMy43NTYgMjEuOTcxMSAxMy44MDM0IDIyLjk5MDUgMTQuMDc0MyAyMy45NjExQzE0LjM0NTIgMjQuOTMxNyAxNC44MzI3IDI1LjgyODIgMTUuNSAyNi41ODM0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDA0N180MDU2NlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEzIDEzKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj48c3BhbiBjbGFzcz1cImNsaWNrLXVwbG9hZCBjdXJzb3ItcG9pbnRlclwiPkNsaWNrIHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiZHJhZy1kcm9wXCI+IG9yIGRyYWcgYW5kIGRyb3AgdGhlIHRlbXBsYXRlPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJ0eXBlTk9CID09PSdtdWx0aXBsZSdcIiBjbGFzcz1cImQtZmxleCBtdC0zIG1iLTEwXCIgcm9sZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDAgbXMtM1wiIGlkPVwiYWxlcnQtdG9hc3RcIiAoY2xpY2spPVwicHJvY2VlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgPlByb2NlZWQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1ub2IvYWRkLW5vYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1ub2IvYWRkLW5vYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBTzNDLE1BQU0sT0FBTyxlQUFlO0lBS1I7SUFBdUI7SUFBK0I7SUFBb0M7SUFBeUI7SUFBNkI7SUFKM0osSUFBSSxDQUFLO0lBRWxCLE9BQU8sQ0FBWTtJQUNGLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFlBQW9CLEVBQWMsRUFBUyxPQUFzQixFQUFTLFdBQTJCLEVBQVMsRUFBZ0IsRUFBUyxFQUFvQixFQUFTLFFBQWtCO1FBQWxLLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUFTLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUV0TCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElB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YUFHWixDQUFDLFFBQVEsQ0FBQzs0TkFHZCxJQUFJO3NCQUFaLEtBQUs7Z0JBNklrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFmZmljU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYWZmaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hZGQtbm9iJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLW5vYi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FkZC1ub2IuY29tcG9uZW50LnNjc3MnLFxyXG4gIHByb3ZpZGVyczogW0RhdGVQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkTm9iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbkBJbnB1dCgpIHR5cGU6YW55O1xyXG5cclxubm9iRm9ybTogRm9ybUdyb3VwO1xyXG5wcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuY29uc3RydWN0b3IocHJpdmF0ZSBmYjpGb3JtQnVpbGRlcixwcml2YXRlIHNlcnZpY2U6VHJhZmZpY1NlcnZpY2UscHJpdmF0ZSBhY3RpdmVNb2RhbCA6TmdiQWN0aXZlTW9kYWwscHJpdmF0ZSB0czogVG9hc3RTZXJ2aWNlLHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUpe1xyXG5cclxufVxyXG5uZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG59XHJcbmNsaWVudElkOmFueTtcclxubWF4RGF0ZTogc3RyaW5nID0gJyc7XHJcbm5nT25Jbml0KCk6IHZvaWQge1xyXG5sZXQgZGF0YTogYW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwiXCIpO1xyXG50aGlzLmNsaWVudElkID1kYXRhLmNsaWVudFxyXG50aGlzLmdldE5vYlN0b3JlTGlzdChkYXRhLmNsaWVudCk7XHJcbnRoaXMuc2V0TWF4RGF0ZSgpO1xyXG59XHJcblxyXG5cclxuc3RvcmVMaXN0OmFueVtdPVtdO1xyXG5nZXROb2JTdG9yZUxpc3QoY2xpZW50OmFueSl7XHJcbiAgdGhpcy5zZXJ2aWNlLmdldE5PQlN0b3JlTGlzdChjbGllbnQpPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAuc3Vic2NyaWJlKHtcclxuICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCl7XHJcbiAgICAgICAgdGhpcy5zdG9yZUxpc3QgPXJlcy5kYXRhLnJlc3VsdFxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgXHJcbiAgICB9XHJcbiAgfSlcclxufVxyXG5cclxuc3RvcmVOYW1lOmFueTtcclxuc3RvcmVJZDphbnk7XHJcbmRhdGVWYWx1ZTphbnk7XHJcbnN0b3JlQ29kZTphbnk7XHJcbm5vYkNvdW50OmFueTtcclxub25OT0JTdG9yZVNlbGVjdChldmVudDogYW55LCB0eXBlOiAnc3RvcmVOYW1lJyB8ICdzdG9yZUlkJyk6IHZvaWQge1xyXG4gIGlmICghZXZlbnQpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoJ0V2ZW50IGlzIHVuZGVmaW5lZCBvciBpbnZhbGlkJyk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGlmICh0eXBlID09PSAnc3RvcmVOYW1lJykge1xyXG4gICAgdGhpcy5zdG9yZU5hbWUgPSBldmVudC5zdG9yZU5hbWU7XHJcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMuc3RvcmVMaXN0LmZpbmQoc3RvcmUgPT4gc3RvcmUuc3RvcmVOYW1lID09PSBldmVudC5zdG9yZU5hbWUpO1xyXG4gICAgaWYgKHN0b3JlKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVJZCA9IHN0b3JlLnN0b3JlSWQ7XHJcbiAgICAgIHRoaXMuc3RvcmVDb2RlID0gc3RvcmUuc3RvcmVDb2RlOyBcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmVJZCA9ICcnO1xyXG4gICAgICB0aGlzLnN0b3JlQ29kZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZWxzZSBpZiAodHlwZSA9PT0gJ3N0b3JlSWQnKSB7XHJcbiAgICB0aGlzLnN0b3JlSWQgPSBldmVudC5zdG9yZUlkO1xyXG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLnN0b3JlTGlzdC5maW5kKHN0b3JlID0+IHN0b3JlLnN0b3JlSWQgPT09IGV2ZW50LnN0b3JlSWQpO1xyXG4gICAgaWYgKHN0b3JlKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVOYW1lID0gc3RvcmUuc3RvcmVOYW1lO1xyXG4gICAgICB0aGlzLnN0b3JlQ29kZSA9IHN0b3JlLnN0b3JlQ29kZTsgXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3JlTmFtZSA9ICcnO1xyXG4gICAgICB0aGlzLnN0b3JlQ29kZSA9ICcnOyBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFxyXG59XHJcbm9taXRfc3BlY2lhbF9jaGFyKGV2ZW50OiBhbnkpIHtcclxuICB2YXIgaztcclxuICBrID0gZXZlbnQuY2hhckNvZGU7IC8vICAgICAgICAgayA9IGV2ZW50LmtleUNvZGU7ICAoQm90aCBjYW4gYmUgdXNlZClcclxuICByZXR1cm4gayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1Nyk7XHJcbn1cclxuc2V0TWF4RGF0ZSgpOiB2b2lkIHtcclxuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgY29uc3QgeWVzdGVyZGF5ID0gbmV3IERhdGUodG9kYXkpO1xyXG4gIHllc3RlcmRheS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSAtIDEpOyAvLyBTZXQgdGhlIG1heCBkYXRlIHRvIHllc3RlcmRheVxyXG4gIHRoaXMuZGF0ZVZhbHVlID0geWVzdGVyZGF5LnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcclxuICAvLyBGb3JtYXQgdGhlIGRhdGUgYXMgeXl5eS1NTS1kZFxyXG4gIHRoaXMubWF4RGF0ZSA9IHllc3RlcmRheS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XHJcbn1cclxub25EYXRlQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICBjb25zdCBzZWxlY3RlZERhdGUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgaWYgKHNlbGVjdGVkRGF0ZSA+IHRoaXMubWF4RGF0ZSkge1xyXG4gICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KCdJbnZhbGlkIGRhdGUgc2VsZWN0ZWQhJyk7XHJcbiAgfVxyXG59XHJcbmNhbmNlbCgpe1xyXG4gIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ2Nsb3NlJyk7XHJcbn1cclxub25TdWJtaXQoKXtcclxuICBsZXQgb2JqID17XHJcbiAgICBiaWxsczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgLy8gc3RvcmVJZDogdGhpcy5zdG9yZUlkLFxyXG4gICAgICAgIHN0b3JlQ29kZTogdGhpcy5zdG9yZUNvZGUsXHJcbiAgICAgICAgLy8gc3RvcmVOYW1lOiB0aGlzLnN0b3JlTmFtZSxcclxuICAgICAgICBub2JEYXRlOiB0aGlzLmRhdGVWYWx1ZSxcclxuICAgICAgICBub2JDb3VudDogTnVtYmVyKHRoaXMubm9iQ291bnQpXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZFxyXG4gIH1cclxudGhpcy5zZXJ2aWNlLmdldE5PQkRhdGFMaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4uc3Vic2NyaWJlKHtcclxuICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcy5jb2RlID09PSAyMDAgJiYgcmVzKSB7XHJcbiAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSByZXMubWVzc2FnZVxyXG4gICAgICAgICAgLy8gLm1hcCgoaXRlbTphbnkpID0+IHtcclxuICAgICAgICAgIC8vICAgY29uc3Qgc3RhdHVzID0gaXRlbS5jb2RlID09PSAyMDAgPyAn4pyFJyA6ICfinYwnOyBcclxuICAgICAgICAgIC8vICAgY29uc3Qgc3RvcmVJbmZvID0gaXRlbS5zdG9yZUlkID8gYCR7aXRlbS5zdG9yZUlkfWAgOiAnJztcclxuICAgICAgICAgIC8vICAgcmV0dXJuIGAke3N0YXR1c30gJHtzdG9yZUluZm99OiAke2l0ZW0ubWVzc2FnZX1gO1xyXG4gICAgICAgICAgLy8gfSlcclxuICAgICAgICAgIC8vIC5qb2luKCc8YnI+Jyk7IFxyXG4gICAgICAgIHRoaXMudHMuZ2V0U3VjY2Vzc1RvYXN0KGFsbE1lc3NhZ2VzKTtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWJtaXQnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoJ1VuZXhwZWN0ZWQgcmVzcG9uc2UgZm9ybWF0Jyk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0FQSSBFcnJvcjonLCBlcnIpO1xyXG4gICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoZXJyLmVycm9yLmVycm9yKTtcclxuICAgIH0sXHJcblxyXG59KVxyXG59XHJcblxyXG5cclxudHlwZU5PQiA9J3NpbmdsZSdcclxubm9iU3RvcmUodHlwZTphbnkpe1xyXG4gIHRoaXMudHlwZU5PQiA9dHlwZVxyXG59XHJcbmRhdGFUYWJsZVNob3cgPWZhbHNlO1xyXG5kYXRhVGFibGVTaG93MSA9ZmFsc2U7XHJcbnRhYmxlSGVhZGVyczphbnk7XHJcbmNvbnZlcnRlZERhdGE6YW55O1xyXG5AVmlld0NoaWxkKFwiaW5wdXRGaWxlXCIpIGlucHV0RmlsZTogRWxlbWVudFJlZjtcclxub25VcGxvYWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XHJcbiAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgY29uc3QgYmluYXJ5RGF0YTogc3RyaW5nID0gZS50YXJnZXQucmVzdWx0O1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYmluYXJ5RGF0YSwgeyB0eXBlOiAnYmluYXJ5JyB9KTtcclxuICAgICAgY29uc3Qgc2hlZXROYW1lOiBzdHJpbmcgPSB3b3JrYm9vay5TaGVldE5hbWVzWzBdO1xyXG5cclxuICAgICAgaWYgKHNoZWV0TmFtZSAhPT0gJ05PQicpIHtcclxuICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoXCJQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZS5cIik7XHJcbiAgICAgICAgdGhpcy5yZXNldEZpbGVJbnB1dCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgc2hlZXQ6IFhMU1guV29ya1NoZWV0ID0gd29ya2Jvb2suU2hlZXRzW3NoZWV0TmFtZV07XHJcbiAgICAgIGNvbnN0IGpzb25EYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHNoZWV0LCB7IGhlYWRlcjogMSB9KTtcclxuICAgICAgaWYgKGpzb25EYXRhLmxlbmd0aCA+IDEwMCkgeyBcclxuICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoXCJGaWxlIGNvbnRhaW5zIHRvbyBtYW55IHJvd3MuIFBsZWFzZSBsaW1pdCB0byAxMDAgcm93cy5cIik7XHJcbiAgICAgICAgdGhpcy5yZXNldEZpbGVJbnB1dCgpO1xyXG4gICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdzEgPSB0cnVlOyBcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cxID0gZmFsc2U7IFxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGhlYWRlcnM6IGFueSA9IGpzb25EYXRhWzBdO1xyXG4gICAgICB0aGlzLnRhYmxlSGVhZGVycyA9IGhlYWRlcnM7XHJcbiAgICAgIGNvbnN0IGRhdGFSb3dzID0ganNvbkRhdGEuc2xpY2UoMSk7XHJcbiAgICAgIHRoaXMuY29udmVydGVkRGF0YSA9IHtcclxuICAgICAgICBiaWxsczogZGF0YVJvd3MubWFwKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcclxuICAgICAgICAgIGhlYWRlcnMuZm9yRWFjaCgoaGVhZGVyOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNlbGxWYWx1ZSA9IHJvd1tpbmRleF07XHJcbiAgICAgICAgICAgIGlmIChoZWFkZXIgPT09IFwiTk9CRGF0ZVwiICYmIHR5cGVvZiBjZWxsVmFsdWUgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICAgICAgICBjZWxsVmFsdWUgPSB0aGlzLmNvbnZlcnRFeGNlbERhdGUoY2VsbFZhbHVlKTsgXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGBQbGVhc2UgdXBsb2FkIGEgdmFsaWQgTk9CIERhdGUgRm9ybWF0YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGhlYWRlciA9PT0gXCJTdG9yZUlkXCIgJiYgY2VsbFZhbHVlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICBjZWxsVmFsdWUgPSBjZWxsVmFsdWUudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvYmpbaGVhZGVyXSA9IGNlbGxWYWx1ZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgc3RvcmVDb2RlOiBvYmpbXCJTdG9yZUlkXCJdLFxyXG4gICAgICAgICAgICBub2JEYXRlOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShvYmpbXCJOT0JEYXRlXCJdLCBcInl5eXktTU0tZGRcIiksXHJcbiAgICAgICAgICAgIG5vYkNvdW50OiBOdW1iZXIob2JqW1wiTk9CQ291bnRcIl0pLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5maWx0ZXIoKGJpbGw6IGFueSkgPT4gYmlsbC5ub2JEYXRlICE9PSBudWxsICYmIGJpbGwubm9iQ291bnQgIT09IG51bGwpLCAvLyBGaWx0ZXIgcm93cyB3aXRoIG51bGwgdmFsdWVzXHJcbiAgICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWRcclxuICAgICAgfTtcclxuICAgICAgdGhpcy50cy5nZXRTdWNjZXNzVG9hc3QoYEZpbGUgaGFzIGJlZW4gdXBsb2FkZWRgKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jb252ZXJ0ZWREYXRhKVxyXG4gICAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoYFBsZWFzZSB1cGxvYWQgYSB2YWxpZCBmaWxlOiAke2Vycm9yfWApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXNldEZpbGVJbnB1dCgpO1xyXG4gIH07XHJcblxyXG4gIC8vIFJlYWQgdGhlIHVwbG9hZGVkIGZpbGUgYXMgYmluYXJ5IHN0cmluZ1xyXG4gIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XHJcbn1cclxucmVzZXRGaWxlSW5wdXQoKTogdm9pZCB7XHJcbiAgaWYgKHRoaXMuaW5wdXRGaWxlICYmIHRoaXMuaW5wdXRGaWxlLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgIHRoaXMuaW5wdXRGaWxlLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICB9XHJcbn1cclxuXHJcbmNvbnZlcnRFeGNlbERhdGUoZXhjZWxEYXRlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGJhc2VEYXRlID0gbmV3IERhdGUoMTkwMCwgMCwgMSk7IFxyXG4gIGNvbnN0IGNvcnJlY3RlZERhdGUgPSBuZXcgRGF0ZShiYXNlRGF0ZS5nZXRUaW1lKCkgKyAoZXhjZWxEYXRlIC0gMSkgKiA4NjQwMDAwMCk7XHJcbiAgcmV0dXJuIGNvcnJlY3RlZERhdGUudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF07IFxyXG59XHJcblxyXG5wcm9jZWVkKCl7XHJcbiAgdGhpcy5zZXJ2aWNlLmdldE5PQkRhdGFMaXN0KHRoaXMuY29udmVydGVkRGF0YSk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC5zdWJzY3JpYmUoe1xyXG4gICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5jb2RlID09PSAyMDAgJiYgcmVzKSB7XHJcbiAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IHJlcy5tZXNzYWdlXHJcbiAgICAgICAgICB0aGlzLnRzLmdldFN1Y2Nlc3NUb2FzdChhbGxNZXNzYWdlcyk7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWJtaXQnKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoJ1VuZXhwZWN0ZWQgcmVzcG9uc2UgZm9ybWF0Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGVyci5lcnJvci5lcnJvcik7XHJcbiAgICAgIH0sXHJcbiAgXHJcbiAgfSlcclxufVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHB0LTAgcGItMyBzY3JvbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMCBkLWZsZXggZmxleC1zdGFydCBmbGV4LWNvbHVtbiBwLTkgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm15LTUgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSdhZGQnXCIgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTc1cHggc3ltYm9sLWNpcmNsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJQaWNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9hZGQtc3RvcmUtaWNvbi5zdmdcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSdyZXVwbG9hZCdcIiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zNyAzMVYzNUMzNyAzNS41MzA0IDM2Ljc4OTMgMzYuMDM5MSAzNi40MTQyIDM2LjQxNDJDMzYuMDM5MSAzNi43ODkzIDM1LjUzMDQgMzcgMzUgMzdIMjFDMjAuNDY5NiAzNyAxOS45NjA5IDM2Ljc4OTMgMTkuNTg1OCAzNi40MTQyQzE5LjIxMDcgMzYuMDM5MSAxOSAzNS41MzA0IDE5IDM1VjMxTTMzIDI0TDI4IDE5TTI4IDE5TDIzIDI0TTI4IDE5VjMxXCIgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgdy0xMDBcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09J2FkZCdcIiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPkFkZCBTaW5nbGUgTm9CPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09J3JldXBsb2FkJ1wiIGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImZzLTQgdGV4dC1ncmF5LTgwMCB0ZXh0LWhvdmVyLXByaW1hcnkgZnctYm9sZCBtYi0wIHRpdGxlIGN1cnNvci1wb2ludGVyXCI+VXBsb2FkIE5vQiBmb3I8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG48ZGl2ICAqbmdJZj1cInR5cGUgPT09J3JldXBsb2FkJ1wiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIHctNTAgY3Vyc29yLXBvaW50ZXIgcHMtNVwiIChjbGljayk9XCJub2JTdG9yZSgnc2luZ2xlJylcIiBbbmdDbGFzc109XCJ0eXBlTk9CID09PSdzaW5nbGUnID8gJ2Zvcm0tY2hlY2staW5saW5lJzonZm9ybS1jaGVjay1pbmxpbmUtbm9uZSdcIiA+XHJcbiAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwidHlwZU5PQiA9PT0nc2luZ2xlJ1wiIHN0eWxlPVwibWFyZ2luLXRvcDogLTVweCAhaW1wb3J0YW50O1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHJ4PVwiNy41XCIgZmlsbD1cIiNFQUY4RkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNVwiIHk9XCIwLjVcIiB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiMwMEEzRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjhcIiByPVwiM1wiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJ0eXBlTk9CICE9PSdzaW5nbGUnXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtNXB4ICFpbXBvcnRhbnQ7XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE1XCIgcng9XCI3LjVcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNVwiIHk9XCIwLjVcIiB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXMtMTBcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwiaW5saW5lUmFkaW9PcHRpb25zXCIgaWQ9XCJpbmxpbmVSYWRpbzFcIiB2YWx1ZT1cIm9wdGlvbjFcIj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgcHQtMTJcIiBbbmdDbGFzc109XCJ0eXBlTk9CID09PSdzaW5nbGUnID8gJ2Zvcm0tdGV4dC1wcmltYXJ5ICc6J2Zvcm0tZGVmdWx0J1wiPlNpbmdsZSBTdG9yZTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrICB3LTUwIGN1cnNvci1wb2ludGVyIHBzLTVcIiAoY2xpY2spPVwibm9iU3RvcmUoJ211bHRpcGxlJylcIiBbbmdDbGFzc109XCJ0eXBlTk9CID09PSdtdWx0aXBsZScgPyAnZm9ybS1jaGVjay1pbmxpbmUnOidmb3JtLWNoZWNrLWlubGluZS1ub25lJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInR5cGVOT0IgPT09J211bHRpcGxlJ1wiIHN0eWxlPVwibWFyZ2luLXRvcDogLTVweCAhaW1wb3J0YW50O1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHJ4PVwiNy41XCIgZmlsbD1cIiNFQUY4RkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNVwiIHk9XCIwLjVcIiB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiMwMEEzRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjhcIiByPVwiM1wiIGZpbGw9XCIjMDBBM0ZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJ0eXBlTk9CICE9PSdtdWx0aXBsZSdcIiBzdHlsZT1cIm1hcmdpbi10b3A6IC01cHggIWltcG9ydGFudDtcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNVwiIHk9XCIwLjVcIiB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTVcIiByeD1cIjcuNVwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTMgcHQtMTJcIiBbbmdDbGFzc109XCJ0eXBlTk9CID09PSdtdWx0aXBsZScgPyAnZm9ybS10ZXh0LXByaW1hcnknOidmb3JtLWRlZnVsdCdcIj5NdWx0aXBsZSBTdG9yZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGVOT0IgPT09J3NpbmdsZSdcIiBjbGFzcz1cInctMTAwIGgtMHB4IHNjcm9sbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTAgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy02IGNvbC14bC02IGNvbC14eGwtNiBtYi03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RvcmVOYW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3RvcmUgTmFtZTxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWQgdGV4dC1kYW5nZXJcIj4gKjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jdXN0b20tc2VsZWN0IFtpdGVtc109XCJzdG9yZUxpc3RcIiBbbXVsdGldPVwiZmFsc2VcIiBbc2VhcmNoRmllbGRdPVwiJ3N0b3JlTmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZEZpZWxkXT1cIidzdG9yZU5hbWUnXCIgKHNlbGVjdGVkKT1cIm9uTk9CU3RvcmVTZWxlY3QoJGV2ZW50LCAnc3RvcmVOYW1lJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlc109XCJbeyBzdG9yZU5hbWU6IHN0b3JlTmFtZSB9XVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saWItY3VzdG9tLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy02IGNvbC14bC02IGNvbC14eGwtNiBtYi03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RvcmVJRFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlN0b3JlIElEIC88c3BhbiAqbmdJZj1cInR5cGUgIT09J2FkZCdcIj4gU3RvcmUgQ29kZTwvc3Bhbj48c3BhbiAqbmdJZj1cInR5cGUgPT09J2FkZCdcIj4gUmVmZXJlbmNlIENvZGU8L3NwYW4+ICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkIHRleHQtZGFuZ2VyXCI+ICo8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY3VzdG9tLXNlbGVjdCBbaXRlbXNdPVwic3RvcmVMaXN0XCIgW211bHRpXT1cImZhbHNlXCIgW3NlYXJjaEZpZWxkXT1cIidzdG9yZUlkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkRmllbGRdPVwiJ3N0b3JlSWQnXCIgKHNlbGVjdGVkKT1cIm9uTk9CU3RvcmVTZWxlY3QoJGV2ZW50LCAnc3RvcmVJZCcpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZXNdPVwiW3sgc3RvcmVJZDogc3RvcmVJZCB9XVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saWItY3VzdG9tLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy02IGNvbC14bC02IGNvbC14eGwtNiBtYi03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiRGF0ZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlNlbGVjdCBEYXRlIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWQgdGV4dC1kYW5nZXJcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwibXlEYXRlXCIgWyhuZ01vZGVsKV09XCJkYXRlVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudClcIiAgW21heF09XCJtYXhEYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy02IGNvbC14bC02IGNvbC14eGwtNiBtYi03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY291bnRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5OT0IgQ291bnQgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydC1yZXF1aXJlZCB0ZXh0LWRhbmdlclwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJub2JDb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMyBtYi0xMFwiIHJvbGU9XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIG1zLTNcIiBpZD1cImFsZXJ0LXRvYXN0XCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZGF0ZVZhbHVlIHx8ICFub2JDb3VudCB8fCAhc3RvcmVJZCB8fCAhc3RvcmVOYW1lXCI+PHNwYW4gKm5nSWY9XCJ0eXBlICE9PSdhZGQnXCI+UHJvY2VlZDwvc3Bhbj48c3BhbiAqbmdJZj1cInR5cGUgPT09J2FkZCdcIj5BZGQ8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGVOT0IgPT09J211bHRpcGxlJ1wiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1ncmF5LTUwMCBteS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidGV4dC1ncmF5LTQwMCBmdy1ib2xkIGZzLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidXNlci10ZXh0XCI+VXNlIHRoZSB0ZW1wbGF0ZSB0byB1cGxvYWQgbXVsdGlwbGUgTm9C4oCZcyBhdCBvbmNlLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInVzZXItdGV4dCBcIj5Eb3dubG9hZCB0aGUgdGVtcGxhdGUgaGVyZSAtICAgPGEgaHJlZj1cIi4uLy4uL2Fzc2V0cy9maWxlcy9ub2JVcGxvYWRUZW1wbGF0ZS54bHN4XCIgZG93bmxvYWQ+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMTNWMTYuMzMzM0MxNy41IDE2Ljc3NTQgMTcuMzI0NCAxNy4xOTkzIDE3LjAxMTggMTcuNTExOEMxNi42OTkzIDE3LjgyNDQgMTYuMjc1NCAxOCAxNS44MzMzIDE4SDQuMTY2NjdDMy43MjQ2NCAxOCAzLjMwMDcyIDE3LjgyNDQgMi45ODgxNiAxNy41MTE4QzIuNjc1NTkgMTcuMTk5MyAyLjUgMTYuNzc1NCAyLjUgMTYuMzMzM1YxM001LjgzMzMzIDguODMzMzNMMTAgMTNNMTAgMTNMMTQuMTY2NyA4LjgzMzMzTTEwIDEzVjNcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTIgdGV4dC1kb3dubG9hZFwiPkRvd25sb2FkIFRlbXBsYXRlPC9zcGFuPjwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ1c2VyLXRleHQgXCI+QWRkIHlvdXIgZGF0YSB0byB0aGUgVGVtcGxhdGUgRmlsZTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInVzZXItdGV4dFwiPlVwbG9hZCBpdCBiZWxvdyBmb3IgcHJvY2Vzc2luZzwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGVOT0IgPT09J211bHRpcGxlJ1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTMgbXMtMyByaWdodC1iYXIgcHktMTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT1cImFjY291bnRUeXBlXCIgdHlwZT1cInJhZGlvXCIgaWQ9XCJrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJwZXJzb25hbFwiIGNsYXNzPVwiYnRuLWNoZWNrXCIgbmctcmVmbGVjdC1uYW1lPVwiYWNjb3VudFR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5nLXJlZmxlY3QtZm9ybS1jb250cm9sLW5hbWU9XCJhY2NvdW50VHlwZVwiICAgKGNoYW5nZSk9XCJvblVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBuZy1yZWZsZWN0LXZhbHVlPVwicGVyc29uYWxcIiB0eXBlPVwiZmlsZVwiICNpbnB1dEZpbGUgLz5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiIGNsYXNzPVwiIHctNTAgcC00IG10LTVcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQgdGV4dC1jZW50ZXIgdy0xMDAgZnMtNFwiPlxyXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0NlwiIGhlaWdodD1cIjQ2XCIgdmlld0JveD1cIjAgMCA0NiA0NlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgZmlsbD1cIiNGMkY0RjdcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBzdHJva2U9XCIjRjlGQUZCXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCI2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNDA0N180MDU2NilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTI2LjMzMzMgMjYuMzMzNEwyMyAyM00yMyAyM0wxOS42NjY2IDI2LjMzMzRNMjMgMjNWMzAuNU0yOS45OTE2IDI4LjMyNUMzMC44MDQ0IDI3Ljg4MTkgMzEuNDQ2NSAyNy4xODA4IDMxLjgxNjUgMjYuMzMyMkMzMi4xODY2IDI1LjQ4MzcgMzIuMjYzNSAyNC41MzYxIDMyLjAzNTEgMjMuNjM4OUMzMS44MDY4IDIyLjc0MTggMzEuMjg2MiAyMS45NDYzIDMwLjU1NTUgMjEuMzc3OUMyOS44MjQ4IDIwLjgwOTUgMjguOTI1NyAyMC41MDA2IDI4IDIwLjVIMjYuOTVDMjYuNjk3NyAxOS41MjQ0IDI2LjIyNzYgMTguNjE4NiAyNS41NzQ5IDE3Ljg1MDlDMjQuOTIyMiAxNy4wODMxIDI0LjEwNCAxNi40NzMyIDIzLjE4MTcgMTYuMDY3MkMyMi4yNTk0IDE1LjY2MTIgMjEuMjU3MSAxNS40Njk1IDIwLjI1MDEgMTUuNTA2NkMxOS4yNDMgMTUuNTQzNyAxOC4yNTc1IDE1LjgwODYgMTcuMzY3NiAxNi4yODE0QzE2LjQ3NzcgMTYuNzU0MiAxNS43MDY2IDE3LjQyMjYgMTUuMTEyMiAxOC4yMzYzQzE0LjUxNzcgMTkuMDUwMSAxNC4xMTU1IDE5Ljk4OCAxMy45MzU4IDIwLjk3OTVDMTMuNzU2IDIxLjk3MTEgMTMuODAzNCAyMi45OTA1IDE0LjA3NDMgMjMuOTYxMUMxNC4zNDUyIDI0LjkzMTcgMTQuODMyNyAyNS44MjgyIDE1LjUgMjYuNTgzNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NzU0NjdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzQwNDdfNDA1NjZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxMyAxMylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlXCI+PHNwYW4gY2xhc3M9XCJjbGljay11cGxvYWQgY3Vyc29yLXBvaW50ZXJcIj5DbGljayB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZCA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImRyYWctZHJvcFwiPiBvciBkcmFnIGFuZCBkcm9wIHRoZSB0ZW1wbGF0ZTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwidHlwZU5PQiA9PT0nbXVsdGlwbGUnXCIgY2xhc3M9XCJkLWZsZXggbXQtMyBtYi0xMFwiIHJvbGU9XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIG1zLTNcIiBpZD1cImFsZXJ0LXRvYXN0XCIgKGNsaWNrKT1cInByb2NlZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgID5Qcm9jZWVkPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|