tango-app-ui-manage-tickets 3.7.0-beta.63 → 3.7.0-beta.66
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/audit-mapping-list/audit-mapping-list.component.mjs +4 -2
- package/esm2022/lib/components/start-audit/start-audit.component.mjs +5 -16
- package/esm2022/lib/components/ticket-filter-panel/ticket-filter-panel.component.mjs +4 -4
- package/esm2022/lib/components/ticket-footfall-new/ticket-footfall-new.component.mjs +72 -410
- package/esm2022/lib/services/audit.service.mjs +2 -2
- package/fesm2022/tango-app-ui-manage-tickets.mjs +82 -429
- package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -1
- package/lib/components/audit-metrics/audit-metrics.component.d.ts +1 -1
- package/lib/components/ticket-footfall-new/ticket-footfall-new.component.d.ts +7 -3
- package/package.json +1 -1
|
@@ -142,11 +142,13 @@ export class AuditMappingListComponent {
|
|
|
142
142
|
getmappingdata() {
|
|
143
143
|
var totalfile = JSON.parse(sessionStorage.getItem('totalfiles') || '{}');
|
|
144
144
|
this.filedetails = totalfile?.filedetails;
|
|
145
|
+
let tickettype = sessionStorage.getItem('ticketType');
|
|
145
146
|
var payload = {
|
|
146
147
|
storeId: totalfile?.filedetails?.storeId,
|
|
147
148
|
fileDate: totalfile?.filedetails?.Date,
|
|
148
149
|
auditId: totalfile?.auditId,
|
|
149
|
-
count: totalfile?.totalfiles
|
|
150
|
+
count: totalfile?.totalfiles,
|
|
151
|
+
tickettype: tickettype
|
|
150
152
|
};
|
|
151
153
|
this.auditService.getAuditmappinglist(payload).pipe(takeUntil(this.destroy$)).subscribe({
|
|
152
154
|
next: (res) => {
|
|
@@ -493,4 +495,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
493
495
|
type: ViewChild,
|
|
494
496
|
args: ['confirmDraft']
|
|
495
497
|
}] } });
|
|
496
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbWFwcGluZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1tYXBwaW5nLWxpc3QvYXVkaXQtbWFwcGluZy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1tYXBwaW5nLWxpc3QvYXVkaXQtbWFwcGluZy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWtFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtySCxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxrR0FBa0c7QUFDbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRXhELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7OztBQU8vRixNQUFNLE9BQU8seUJBQXlCO0lBaUNqQjtJQUFnQztJQUF3QjtJQUFvQztJQUE4QjtJQUNuSTtJQUErQjtJQWhDekMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNkLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDYixJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNiLFlBQVksR0FBUSxDQUFDLENBQUM7SUFDdEIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsU0FBUyxHQUFRLEVBQUUsQ0FBQTtJQUNuQixVQUFVLEdBQVEsRUFBRSxDQUFBO0lBQ3BCLFdBQVcsR0FBWSxJQUFJLENBQUM7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LENBQUMsV0FBVyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNoRyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDakQsQ0FBQzt3R0FyZ0JVLHlCQUF5Qjs0RkFBekIseUJBQXlCLGlNQ2hCdEMseTBvQkEwT0E7OzRGRDFOYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO2dQQW1DUCxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgQXVkaXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXVkaXQuc2VydmljZSc7XHJcbmltcG9ydCAqIGFzIExaU3RyaW5nIGZyb20gJ2x6LXN0cmluZyc7XHJcbi8vIGltcG9ydCB7IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9hdWRpdC1yZXBvcnQtcG9wdXAvYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRpbWVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpbWVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vYXVkaXQtcmVwb3J0LXBvcHVwL2F1ZGl0LXJlcG9ydC1wb3B1cC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYXVkaXQtbWFwcGluZy1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXVkaXQtbWFwcGluZy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYXVkaXQtbWFwcGluZy1saXN0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXVkaXRNYXBwaW5nTGlzdENvbXBvbmVudCB7XHJcblxyXG4gIHRvdGFsZmlsZSA9IDA7XHJcbiAgY3VzdG9tZXIgPSAwO1xyXG4gIGp1bmsgPSAwO1xyXG4gIGVtcGxveWVlID0gMDtcclxuICBjdXJyZW50VmFsdWU6IGFueSA9IDA7XHJcbiAgc2hvd3ZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmV0Z2dpbmdwYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd3ZhbHVlMTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGp1bmtpbWFnZTogYW55ID0gW11cclxuICByZXRhZ2ltYWdlOiBhbnkgPSBbXVxyXG4gIHN1Ym1pdHZhbHVlOiBib29sZWFuID0gdHJ1ZTtcclxuICBhdWRpdG1hcHBpbmdkYXRhOiBhbnk7XHJcbiAgY3VzdG9tZXJjb3VudDogYW55O1xyXG4gIGF1ZGl0TG9hZGluZyA9IHRydWU7XHJcbiAgc2VsZWN0ZWRUeXBlOiBhbnk7XHJcblxyXG4gIGp1bmtjb3VudDogYW55ID0gMDtcclxuICBlbXBsb3llZWNvdW50OiBhbnkgPSAwO1xyXG4gIGVtcGxveWVpbWFnZTogYW55ID0gW107XHJcbiAgZmlsZWRldGFpbHM6IGFueTtcclxuICBkZW1vZ3JhcGhpYzogYW55O1xyXG4gIHN1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGR1bW15bWFwcGluZzogYW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHRpbWVQYXNzZWQ6IG51bWJlciA9IDA7XHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBmb3JtYXR0ZWRUaW1lOiBzdHJpbmcgPSAnMDA6MDA6MDAnO1xyXG4gIGNvdW50OiBhbnk7XHJcbiAgY2F0ZWdvcnk6IGFueSA9IFtdXHJcbiAgQFZpZXdDaGlsZCgnY29uZmlybURyYWZ0JykgY29uZmlybURyYWZ0OiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGF1ZGl0U2VydmljZTogQXVkaXRTZXJ2aWNlLCBwcml2YXRlIHRvYXN0cjogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHRpbWVyU2VydmljZTogVGltZXJTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCd0eXBlJylcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRBdWRpdENvbmZpZygpXHJcbiAgICAvLyB0aGlzLmluaXRpYWxfZGF0YV9sb2FkaW5nKCk7XHJcbiAgICBpZiAodGhpcy5yZXRhZ2ltYWdlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zaG93dmFsdWUgPSB0cnVlXHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFRpbWVyKCk7XHJcbiAgfVxyXG4gIGdldEF1ZGl0Q29uZmlnKCkge1xyXG5cclxuICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICB0aGlzLmF1ZGl0U2VydmljZS5nZXRBdWRpdGNvbmZpZyhmaWxlZGF0YT8uZmlsZWRldGFpbHM/LmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gcmVzLmRhdGEuZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzLnRhZ2dpbmdMaW1pdGF0aW9uXHJcbiAgICAgICAgICAvLyB0aGlzLmluaXRpYWxfZGF0YV9sb2FkaW5nKClcclxuICAgICAgICAgIC8vIHRoaXMuc2F2ZURyYWZ0aW1nKCk7XHJcbiAgICAgICAgICB0aGlzLmdldG1hcHBpbmdkYXRhKClcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBzZXRUaW1lcigpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy50aW1lclNlcnZpY2UuZ2V0VGltZVBhc3NlZCgpLnN1YnNjcmliZSh0aW1lID0+IHtcclxuICAgICAgdGhpcy50aW1lUGFzc2VkID0gdGltZTtcclxuICAgICAgdGhpcy5mb3JtYXR0ZWRUaW1lID0gdGhpcy50aW1lclNlcnZpY2UuZm9ybWF0VGltZSh0aW1lKTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLnN0YXJ0VGltZXIoKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgdGhpcy50aW1lclNlcnZpY2UuY2xlYXJUaW1lcigpXHJcbiAgfVxyXG5cclxuICBoYW5kbGVHbG9iYWxNb3VzZUV2ZW50ID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy50aW1lclNlcnZpY2Uuc3RhcnRUaW1lcigpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbF9kYXRhX2xvYWRpbmcoKSB7XHJcbiAgICBpZiAoJ2F1ZGl0JyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgdmFyIGF1ZGl0ZGF0YSA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICBcclxuICAgICAgaWYgKGF1ZGl0ZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gYXVkaXRkYXRhO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tZXJjb3VudCA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5sZW5ndGhcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBbXVxyXG4gICAgICAgIHRoaXMuY3VzdG9tZXJjb3VudCA9IDBcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRlbW9ncmFwaGljID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLmRlbW9ncmFwaGljID09PSAnZCcpLmxlbmd0aDtcclxuICAgIH1cclxuICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgdmFyIGNvdW50ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGE/LnR5cGUpIHx8ICd7fScpXHJcbiAgICAgIGRhdGEuY291bnQgPSBjb3VudD8ubGVuZ3RoXHJcbiAgICB9KVxyXG4gICAgaWYgKCdyZXRhZycgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgdmFyIHJldGFnZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgncmV0YWcnKSB8fCAne30nKVxyXG4gICAgICBpZiAocmV0YWdkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnJldGFnaW1hZ2UgPSByZXRhZ2RhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZXRhZ2ltYWdlID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMucmV0YWdpbWFnZS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93dmFsdWUgPSBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCd0b3RhbGZpbGVzJyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB2YXIgZmlsZXMgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgICB0aGlzLnRvdGFsZmlsZSA9IGZpbGVzPy50b3RhbGZpbGVzXHJcbiAgICAgIHRoaXMuZmlsZWRldGFpbHMgPSBmaWxlcz8uZmlsZWRldGFpbHNcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBnZXRtYXBwaW5nZGF0YSgpIHtcclxuICAgIHZhciB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgdGhpcy5maWxlZGV0YWlscyA9IHRvdGFsZmlsZT8uZmlsZWRldGFpbHNcclxuXHJcbiAgICB2YXIgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICBzdG9yZUlkOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICBmaWxlRGF0ZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgYXVkaXRJZDogdG90YWxmaWxlPy5hdWRpdElkLFxyXG4gICAgICBjb3VudDogdG90YWxmaWxlPy50b3RhbGZpbGVzXHJcbiAgICB9XHJcbiAgICB0aGlzLmF1ZGl0U2VydmljZS5nZXRBdWRpdG1hcHBpbmdsaXN0KHBheWxvYWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuYXVkaXRMb2FkaW5nID0gZmFsc2U7XHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZmlsdGVyRGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0Py5kcmFmdGVkRGF0YT8uZmlsdGVyKCh4OiBhbnkpID0+IHgudHlwZSA9PT0gZGF0YS50eXBlKVxyXG4gICAgICAgICAgICBkYXRhLnZhbHVlID0gZmlsdGVyRGF0YVswXT8udmFsdWUgJiYgZmlsdGVyRGF0YVswXT8udmFsdWUubGVuZ3RoID4gMCA/IGZpbHRlckRhdGFbMF0/LnZhbHVlIDogW11cclxuICAgICAgICAgICAgZGF0YS5jb3VudCA9IGRhdGE/LnZhbHVlPy5sZW5ndGhcclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhPy50eXBlLCBKU09OLnN0cmluZ2lmeShkYXRhPy52YWx1ZSAmJiBkYXRhPy52YWx1ZS5sZW5ndGggPiAwID8gZGF0YT8udmFsdWUgOiBbXSkpXHJcblxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGxldCBjdXN0b21lckRhdGEgPSByZXM/LmRhdGE/LnJlc3VsdD8uZHJhZnRlZERhdGE/LmZpbHRlcigoeDogYW55KSA9PiB4LnR5cGUgPT09ICdjdXN0b21lcicpXHJcblxyXG4gICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gY3VzdG9tZXJEYXRhWzBdPy52YWx1ZVxyXG4gICAgICAgICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGN1c3RvbWVyRGF0YVswXT8udmFsdWUpO1xyXG4gICAgICAgICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcblxyXG5cclxuXHJcbiAgICAgICAgICB2YXIgcmV0YWdpYW1nZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgncmV0YWcnKSB8fCAnW10nKVxyXG4gICAgICAgICAgaWYgKHJldGFnaWFtZ2UubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICAgICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgICAgICAgIGN1c3RvbWVyID0gWy4uLmN1c3RvbWVyLCAuLi5yZXRhZ2lhbWdlXVxyXG4gICAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXIpO1xyXG4gICAgICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgncmV0YWcnKVxyXG4gICAgICAgICAgdGhpcy5yZXRhZ2ltYWdlID0gW11cclxuICAgICAgICAgIHRoaXMuaW5pdGlhbF9kYXRhX2xvYWRpbmcoKVxyXG4gICAgICAgICAgaWYgKHRoaXMucmV0YWdpbWFnZS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3d2YWx1ZSA9IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmVkaXJlYWN0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGJhY2tUb1RhZ2dpbmcoKSB7XHJcbiAgICB0aGlzLnJlZGlyZWFjdCA9IHRydWU7XHJcbiAgICB0aGlzLnNhdmVEcmFmdGltZygpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlc2RhdGEoKSB7XHJcbiAgICB2YXIgdXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8ICd7fScpXHJcbiAgICB2YXIgdG90YWxmaWxlOiBhbnkgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKTtcclxuICAgIHZhciBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgIHN0b3JlSWQ6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgIGZpbGVEYXRlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICBhdWRpdElkOiB0b3RhbGZpbGU/LmF1ZGl0SWQsXHJcbiAgICAgIGNvdW50OiB0b3RhbGZpbGU/LnRvdGFsZmlsZXNcclxuICAgIH1cclxuICAgIHRoaXMuYXVkaXRTZXJ2aWNlLmdldEF1ZGl0bWFwcGluZ2xpc3QocGF5bG9hZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5hdWRpdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3JldGFnJylcclxuICAgICAgICAgIHRoaXMucmV0YWdpbWFnZSA9IFtdXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBmaWx0ZXJEYXRhID0gcmVzPy5kYXRhPy5yZXN1bHQ/LmRyYWZ0ZWREYXRhPy5maWx0ZXIoKHg6IGFueSkgPT4geC50eXBlID09PSBkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgIGRhdGEudmFsdWUgPSBmaWx0ZXJEYXRhWzBdPy52YWx1ZSAmJiBmaWx0ZXJEYXRhWzBdPy52YWx1ZS5sZW5ndGggPiAwID8gZmlsdGVyRGF0YVswXT8udmFsdWUgOiBbXVxyXG4gICAgICAgICAgICBkYXRhLmNvdW50ID0gZGF0YT8udmFsdWU/Lmxlbmd0aFxyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGRhdGE/LnR5cGUsIEpTT04uc3RyaW5naWZ5KGRhdGE/LnZhbHVlICYmIGRhdGE/LnZhbHVlLmxlbmd0aCA+IDAgPyBkYXRhPy52YWx1ZSA6IFtdKSlcclxuXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgbGV0IGN1c3RvbWVyRGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0Py5kcmFmdGVkRGF0YT8uZmlsdGVyKCh4OiBhbnkpID0+IHgudHlwZSA9PT0gJ2N1c3RvbWVyJylcclxuXHJcbiAgICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBjdXN0b21lckRhdGFbMF0/LnZhbHVlXHJcbiAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXJEYXRhWzBdPy52YWx1ZSk7XHJcbiAgICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgICAgIGlmICh0aGlzLnJldGFnaW1hZ2UubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zaG93dmFsdWUgPSBmYWxzZVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9tYW5hZ2UvdGlja2V0cy9hdWRpdFwiXSlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2F1ZGl0bWFwcGluZ2RhdGEnXSkge1xyXG4gICAgICB0aGlzLmR1bW15bWFwcGluZyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1snYXVkaXRtYXBwaW5nZGF0YSddLmN1cnJlbnRWYWx1ZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWxsb3dEcm9wKGV2OiBhbnkpIHtcclxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBkcmFnKGV2OiBhbnkpIHtcclxuICAgIGV2LmRhdGFUcmFuc2Zlci5zZXREYXRhKFwidGV4dC9wbGFpblwiLCBldi50YXJnZXQuaWQpO1xyXG4gIH1cclxuXHJcbiAgZHJvcGZvcnJldGFnKGV2OiBhbnkpIHtcclxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCBkcmFnZ2VkSW1hZ2VJZCA9IGV2LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XHJcbiAgICBjb25zdCBkcmFnZ2VkSW1hZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkcmFnZ2VkSW1hZ2VJZCk7XHJcbiAgICB0aGlzLnNob3d2YWx1ZSA9IHRydWU7XHJcbiAgICBjb25zdCBodG1sdGFnID0gZXYuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQvaHRtbCcpO1xyXG4gICAgdmFyIE5hbWUgPSBnZXRUYWdOYW1lRnJvbUhUTUwoaHRtbHRhZyk7XHJcbiAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdE1hcHBpbmdMaXN0Q29tcG9uZW50IH4gZHJvcGZvcnJldGFnIH4gTmFtZTpcIiwgTmFtZSxkcmFnZ2VkSW1hZ2VJZClcclxuICAgIGlmIChOYW1lICE9IG51bGwgJiYgdGhpcy5jYXRlZ29yeS5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YT8udHlwZSA9PT0gTmFtZSk/Lmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgIGxldCBpbWFnZURhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oTmFtZSkgfHwgJ3t9JylcclxuICAgICAgdmFyIHNwbGljZWR2YWx1ZSA9IGltYWdlRGF0YS5zcGxpY2UoaW1hZ2VEYXRhLmZpbmRJbmRleCgoeyBpbWdfaWQgfTogeyBpbWdfaWQ6IHN0cmluZyB9KSA9PiBpbWdfaWQgPT0gZHJhZ2dlZEltYWdlSWQpLCAxKTtcclxuXHJcbiAgICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YT8udHlwZSA9PSBOYW1lKSB7XHJcbiAgICAgICAgICBkYXRhLnZhbHVlID0gaW1hZ2VEYXRhXHJcbiAgICAgICAgICBkYXRhLmNvdW50ID0gaW1hZ2VEYXRhLmxlbmd0aFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0pXHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oTmFtZSwgSlNPTi5zdHJpbmdpZnkoaW1hZ2VEYXRhKSlcclxuICAgICAgdmFyIG9sZHJldGFnID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdyZXRhZycpIHx8ICd7fScpXHJcbiAgICAgIHZhciBuZXd0YWc6IGFueSA9IFtdXHJcbiAgICAgIGlmIChOdW1iZXIob2xkcmV0YWcubGVuZ3RoKSA+IDApIHtcclxuICAgICAgICBuZXd0YWcgPSBbLi4ub2xkcmV0YWcsIC4uLnNwbGljZWR2YWx1ZV1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXd0YWcgPSBzcGxpY2VkdmFsdWVcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJldGFnaW1hZ2UgPSBuZXd0YWdcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgncmV0YWcnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnJldGFnaW1hZ2UpKVxyXG5cclxuXHJcbiAgICAgIGlmKE5hbWU9PT0nZHVwbGljYXRlJyl7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLm1hcCgobWFpbkRhdGE6YW55KT0+e1xyXG4gICAgICAgICAgaWYobWFpbkRhdGEuY291bnQ+MSl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0TWFwcGluZ0xpc3RDb21wb25lbnQgfiBkcm9wZm9ycmV0YWcgfiBtYWluRGF0YTpcIiwgbWFpbkRhdGEpXHJcbiAgICAgICAgICAgIG1haW5EYXRhLm1hcHBlZGlkID0gbWFpbkRhdGEubWFwcGVkaWQuZmlsdGVyKChkYXRhOmFueSk9PmRhdGEuaW1nX2lkIT1kcmFnZ2VkSW1hZ2VJZClcclxuICAgICAgICAgICAgbWFpbkRhdGEuY291bnQgPSBtYWluRGF0YS5tYXBwZWRpZC5sZW5ndGhcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcblxyXG5cclxuXHJcbiAgICB9IGVsc2UgaWYgKE5hbWUgIT0gbnVsbCkge1xyXG4gICAgICB2YXIgaW5zZXJ0SW5kZXggPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmluZEluZGV4KCh7IGltZ19pZCB9OiB7IGltZ19pZDogc3RyaW5nIH0pID0+IGltZ19pZCA9PSBOYW1lKVxyXG4gICAgICB2YXIgbWFpbmFycmF5ID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLnNwbGljZSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmluZEluZGV4KCh7IGltZ19pZCB9OiB7IGltZ19pZDogc3RyaW5nIH0pID0+IGltZ19pZCA9PSBOYW1lKSwgMSk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJjb3VudCA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YT8ubGVuZ3RoO1xyXG4gICAgICBpZiAobWFpbmFycmF5Py5sZW5ndGggPiAwICYmIG1haW5hcnJheVswXS5tYXBwZWRpZC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgdmFyIGNoZWNraW5kZXggPSBtYWluYXJyYXlbMF0ubWFwcGVkaWQuZmluZEluZGV4KCh7IGltZ19pZCB9OiB7IGltZ19pZDogc3RyaW5nIH0pID0+IGltZ19pZCA9PSBkcmFnZ2VkSW1hZ2VJZClcclxuXHJcbiAgICAgICAgdmFyIHN1YmFycmF5ID0gbWFpbmFycmF5WzBdLm1hcHBlZGlkLnNwbGljZShtYWluYXJyYXlbMF0ubWFwcGVkaWQuZmluZEluZGV4KCh7IGltZ19pZCB9OiB7IGltZ19pZDogc3RyaW5nIH0pID0+IGltZ19pZCA9PSBkcmFnZ2VkSW1hZ2VJZCksIDEpO1xyXG4gICAgICAgIGlmIChjaGVja2luZGV4ID09IDApIHtcclxuICAgICAgICAgIG1haW5hcnJheVswXS5pbWdfbmFtZSA9IG1haW5hcnJheVswXS5tYXBwZWRpZFswXS5pbWdfbmFtZVxyXG4gICAgICAgICAgbWFpbmFycmF5WzBdLmltZ19pZCA9IG1haW5hcnJheVswXS5tYXBwZWRpZFswXS5pbWdfaWRcclxuICAgICAgICAgIG1haW5hcnJheVswXS5pbWdfcGF0aCA9IG1haW5hcnJheVswXS5tYXBwZWRpZFswXS5pbWdfcGF0aFxyXG4gICAgICAgIH1cclxuICAgICAgICBtYWluYXJyYXlbMF0uY291bnQgPSBtYWluYXJyYXlbMF0uY291bnQgLSAxXHJcbiAgICAgICAgc3ViYXJyYXlbMF0ubWFwcGVkaWQgPSBbXVxyXG4gICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICBpbWdfbmFtZTogc3ViYXJyYXlbMF0uaW1nX25hbWUsXHJcbiAgICAgICAgICBpbWdfaWQ6IHN1YmFycmF5WzBdLmltZ19pZCxcclxuICAgICAgICAgIGltZ19wYXRoOiBzdWJhcnJheVswXS5pbWdfcGF0aFxyXG4gICAgICAgIH1cclxuICAgICAgICBzdWJhcnJheVswXS5tYXBwZWRpZC5wdXNoKG9iailcclxuICAgICAgICBzdWJhcnJheVswXS5zZWxlY3RlZCA9IGZhbHNlXHJcbiAgICAgICAgc3ViYXJyYXlbMF0uZHJvcHBlZCA9IGZhbHNlXHJcbiAgICAgICAgc3ViYXJyYXlbMF0uZGVtb2dyYXBoaWMgPSAnJ1xyXG4gICAgICAgIHN1YmFycmF5WzBdLmNvdW50ID0gMTtcclxuICAgICAgICB2YXIgb2xkcmV0YWcgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3JldGFnJykgfHwgJ3t9JylcclxuICAgICAgICB2YXIgbmV3dGFnOiBhbnkgPSBbXVxyXG4gICAgICAgIGlmIChOdW1iZXIob2xkcmV0YWcubGVuZ3RoKSA+IDApIHtcclxuICAgICAgICAgIG5ld3RhZyA9IFsuLi5vbGRyZXRhZywgLi4uc3ViYXJyYXldXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5ld3RhZyA9IHN1YmFycmF5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmV0YWdpbWFnZSA9IG5ld3RhZ1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3JldGFnJywgSlNPTi5zdHJpbmdpZnkodGhpcy5yZXRhZ2ltYWdlKSlcclxuICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuc3BsaWNlKGluc2VydEluZGV4LCAwLCAuLi5tYWluYXJyYXkpO1xyXG4gICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgdmFyIG9sZHJldGFnID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdyZXRhZycpIHx8ICd7fScpXHJcbiAgICAgICAgdmFyIG5ld3RhZzogYW55ID0gW11cclxuICAgICAgICBpZiAoTnVtYmVyKG9sZHJldGFnLmxlbmd0aCkgPiAwKSB7XHJcbiAgICAgICAgICBuZXd0YWcgPSBbLi4ub2xkcmV0YWcsIC4uLm1haW5hcnJheV1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3dGFnID0gbWFpbmFycmF5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmV0YWdpbWFnZSA9IG5ld3RhZ1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3JldGFnJywgSlNPTi5zdHJpbmdpZnkodGhpcy5yZXRhZ2ltYWdlKSlcclxuICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5hdWRpdG1hcHBpbmdkYXRhKTtcclxuICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRUYWdOYW1lRnJvbUhUTUwoaHRtbDogYW55KSB7XHJcbiAgICAgIHZhciB0ZW1wRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICB0ZW1wRWxlbWVudC5pbm5lckhUTUwgPSBodG1sO1xyXG4gICAgICB2YXIgZmlyc3RDaGlsZDogYW55ID0gdGVtcEVsZW1lbnQuZmlyc3RDaGlsZDtcclxuICAgICAgaWYgKGZpcnN0Q2hpbGQuaGFzQXR0cmlidXRlKCduYW1lJykpIHtcclxuICAgICAgICB2YXIgbmFtZVByb3BlcnR5VmFsdWUgPSBmaXJzdENoaWxkLmdldEF0dHJpYnV0ZSgnbmFtZScpO1xyXG4gICAgICAgIHJldHVybiBuYW1lUHJvcGVydHlWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3JldGFnJywgSlNPTi5zdHJpbmdpZnkodGhpcy5yZXRhZ2ltYWdlKSlcclxuXHJcbiAgICBpZiAoJ3JldGFnJyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB2YXIgcmV0YWdkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdyZXRhZycpIHx8ICd7fScpXHJcbiAgICAgIHRoaXMucmV0YWdpbWFnZSA9IHJldGFnZGF0YTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVpbWFnZShkYXRhOiBhbnkpIHtcclxuICAgIHZhciByZW1vdmVkX2ltZyA9IHRoaXMucmV0YWdpbWFnZS5maWx0ZXIoKGV2OiBhbnkpID0+IGV2LmltZ19pZCA9PSBkYXRhLmltZ19pZClcclxuICAgIHRoaXMucmV0YWdpbWFnZS5zcGxpY2UodGhpcy5yZXRhZ2ltYWdlLmZpbmRJbmRleCgoeyBpbWdfaWQgfTogeyBpbWdfaWQ6IHN0cmluZyB9KSA9PiBpbWdfaWQgPT0gZGF0YS5pbWdfaWQpLCAxKTtcclxuICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IFsuLi50aGlzLmF1ZGl0bWFwcGluZ2RhdGEsIC4uLnJlbW92ZWRfaW1nXVxyXG4gICAgdGhpcy5jdXN0b21lcmNvdW50ID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhPy5sZW5ndGg7XHJcbiAgICBpZiAoIXRoaXMucmV0YWdpbWFnZS5sZW5ndGgpIHsgdGhpcy5zaG93dmFsdWUgPSBmYWxzZSB9XHJcbiAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICBjb25zdCBjb21wbGV0ZURhdGUgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdyZXRhZycsIEpTT04uc3RyaW5naWZ5KHRoaXMucmV0YWdpbWFnZSkpXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNhdmVEcmFmdGltZygpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuXHJcbiAgICB2YXIgdG90YWxmaWxlOiBhbnkgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKTtcclxuICAgIHRoaXMudGltZVBhc3NlZCA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndGltZVNwZW50JykgfHwgJ3t9JylcclxuICAgIGlmICgncmV0YWcnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHZhciByZXRhZ2RhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3JldGFnJykgfHwgJ3t9JylcclxuICAgICAgdGhpcy5yZXRhZ2ltYWdlID0gcmV0YWdkYXRhO1xyXG4gICAgfVxyXG4gICAgbGV0IHN0b3JlZERhdGEgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiBcImN1c3RvbWVyXCIsXHJcbiAgICAgICAgdmFsdWU6IHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA/IHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA6IFtdLFxyXG4gICAgICB9XHJcbiAgICBdXHJcblxyXG4gICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgc2Vzc2lvbnZhbHVlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGEudHlwZSkgfHwgJ3t9Jyk7XHJcbiAgICAgIHN0b3JlZERhdGEucHVzaCh7XHJcbiAgICAgICAgdHlwZTogZGF0YS50eXBlLFxyXG4gICAgICAgIHZhbHVlOiBzZXNzaW9udmFsdWUgJiYgc2Vzc2lvbnZhbHVlLmxlbmd0aCA+IDAgPyBzZXNzaW9udmFsdWUgOiBbXVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICAgIHZhciBpbnNlcm9iajogYW55ID0ge1xyXG4gICAgICBzdG9yZUlkOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICBmaWxlRGF0ZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgYXVkaXRJZDogdG90YWxmaWxlPy5hdWRpdElkID8gdG90YWxmaWxlPy5hdWRpdElkIDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uYXVkaXRJZCxcclxuICAgICAgdG90YWxDb3VudDogdG90YWxmaWxlPy50b3RhbGZpbGVzID8gdG90YWxmaWxlLnRvdGFsZmlsZXMgOiAwLFxyXG4gICAgICByZXRhZ0NvdW50OiB0aGlzLnJldGFnaW1hZ2UubGVuZ3RoLFxyXG4gICAgICB0aW1lU3BlbnQ6IHRoaXMudGltZVBhc3NlZCxcclxuICAgICAgcmV0YWdJbWFnZTogdGhpcy5yZXRhZ2ltYWdlID8gdGhpcy5yZXRhZ2ltYWdlIDogW11cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmF1ZGl0U2VydmljZS5zYXZlRHJhZnQoaW5zZXJvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMucmVkaXJlYWN0KSB7XHJcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdldG1hcHBpbmdkYXRhKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoYW5nZXNkYXRhKClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICB0YWdnaW5ndmlldygpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIHZhciB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgdGhpcy5zaG93dmFsdWUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd3ZhbHVlMSA9IHRydWU7XHJcbiAgICB0aGlzLnJldGdnaW5ncGFnZSA9IHRydWU7XHJcbiAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgIGxldCBzdG9yZWREYXRhID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogXCJjdXN0b21lclwiLFxyXG4gICAgICAgIHZhbHVlOiBjdXN0b21lciA/IGN1c3RvbWVyIDogW10sXHJcbiAgICAgIH1cclxuICAgIF1cclxuXHJcbiAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGxldCBzZXNzaW9udmFsdWUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YS50eXBlKSB8fCAne30nKTtcclxuICAgICAgc3RvcmVkRGF0YS5wdXNoKHtcclxuICAgICAgICB0eXBlOiBkYXRhLnR5cGUsXHJcbiAgICAgICAgdmFsdWU6IHNlc3Npb252YWx1ZSAmJiBzZXNzaW9udmFsdWUubGVuZ3RoID4gMCA/IHNlc3Npb252YWx1ZSA6IFtdXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gICAgdmFyIGluc2Vyb2JqOiBhbnkgPSB7XHJcbiAgICAgIHN0b3JlSWQ6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlX2lkLFxyXG4gICAgICBmaWxlRGF0ZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uZmlsZV9kYXRlLFxyXG4gICAgICBhdWRpdElkOiB0b3RhbGZpbGU/LmF1ZGl0SWQgPyB0b3RhbGZpbGU/LmF1ZGl0SWQgOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzLmF1ZGl0SWQsXHJcbiAgICAgIHRvdGFsQ291bnQ6IHRvdGFsZmlsZT8udG90YWxmaWxlcyA/IHRvdGFsZmlsZS50b3RhbGZpbGVzIDogMCxcclxuICAgICAgcmV0YWdDb3VudDogdGhpcy5yZXRhZ2ltYWdlLmxlbmd0aCxcclxuICAgICAgdGltZVNwZW50OiB0aGlzLnRpbWVQYXNzZWQsXHJcbiAgICAgIHJldGFnSW1hZ2U6IHRoaXMucmV0YWdpbWFnZSA/IHRoaXMucmV0YWdpbWFnZSA6IFtdXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hdWRpdFNlcnZpY2Uuc2F2ZURyYWZ0KGluc2Vyb2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHsgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTsgfSlcclxuICAgIGlmICgncmV0YWcnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHZhciByZXRhZ2RhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3JldGFnJykgfHwgJ3t9JylcclxuICAgICAgdGhpcy5yZXRhZ2ltYWdlID0gcmV0YWdkYXRhO1xyXG5cclxuICAgIH1cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9tYW5hZ2UvdGlja2V0cy9yZXRhZy1tYXBwaW5nXCJdKVxyXG4gIH1cclxuXHJcbiAgc3VibWl0YXVkaXQoKSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCwge1xyXG4gICAgICBzaXplOiAnbGcnLFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZVxyXG4gICAgfSlcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnNlbGVjdGVkVHlwZSA9IHRoaXMuc2VsZWN0ZWRUeXBlO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBzZXRWYWx1ZShpOiBhbnkpIHtcclxuICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICBpZiAoaSA+IGluZGV4KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRWYWx1ZSA9IHRoaXMuY3VycmVudFZhbHVlICsgMTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGN1cnJlbnRHcm91cE51bWJlcjogYW55ID0gMDtcclxuXHJcbiAgZ2V0R3JvdXBOdW1iZXIob2JqOiBhbnkpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIGlmIChvYmouY291bnQgPiAxKSB7XHJcbiAgICAgIHJldHVybiArK3RoaXMuY3VycmVudEdyb3VwTnVtYmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZXNldEdyb3VwTnVtYmVyKCkge1xyXG4gICAgdGhpcy5jdXJyZW50R3JvdXBOdW1iZXIgPSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmlsdGVyZWREYXRhKGNvdW50OiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmlsdGVyKChvYmo6IGFueSkgPT4gb2JqLmNvdW50ID09PSBjb3VudCk7XHJcblxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlSW1hZ2UoaW1nX25hbWU6IGFueSkge1xyXG4gICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChkYXRhLmltZ19uYW1lID09IGltZ19uYW1lKSB7XHJcbiAgICAgICAgaWYgKGRhdGEubWFwcGVkaWQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgZGF0YS5kZW1vZ3JhcGhpYyAhPT0gJ2QnID8gZGF0YS5kZW1vZ3JhcGhpYyA9ICdkJyA6IGRhdGEuZGVtb2dyYXBoaWMgPSAnJ1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkYXRhLmRyb3BwZWQgPSAhZGF0YS5kcm9wcGVkXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy5kZW1vZ3JhcGhpYyA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5kZW1vZ3JhcGhpYyA9PT0gJ2QnKS5sZW5ndGg7XHJcbiAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5hdWRpdG1hcHBpbmdkYXRhKTtcclxuICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gIH1cclxufSIsIjxkaXYgKm5nSWY9XCIhYXVkaXRMb2FkaW5nXCIgY2xhc3M9XCJjYXJkXCIgPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCIgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBmdy1ib2xkXCI+e3tmaWxlZGV0YWlscz8ucXVldWVOYW1lfX08c3BhbiBjbGFzcz1cIm14LTMgYXJyb3ctY29kZVwiPiAtIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tmaWxlZGV0YWlscz8uc3RvcmVJZH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMyBhcnJvdy1jb2RlXCI+IC0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuID57e2ZpbGVkZXRhaWxzPy5EYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm14LTMgYXJyb3ctY29kZVwiPiAtIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiA+e3tmaWxlZGV0YWlscz8udHlwZX19PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZC0zIG1zLTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBiZy10aW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0zIHRleHQtdGltZXIgZnctc2VtaWJvbGRcIj57eyBmb3JtYXR0ZWRUaW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkuMTY2NjcgMi44NzA3MUM5LjE2NjY3IDIuNjIwMjMgOS4yNjYxNyAyLjM4MDAxIDkuNDQzMjkgMi4yMDI4OUM5LjYyMDQxIDIuMDI1NzcgOS44NjA2MyAxLjkyNjI3IDEwLjExMTEgMS45MjYyN0gxMy44ODg5QzE0LjEzOTQgMS45MjYyNyAxNC4zNzk2IDIuMDI1NzcgMTQuNTU2NyAyLjIwMjg5QzE0LjczMzggMi4zODAwMSAxNC44MzMzIDIuNjIwMjMgMTQuODMzMyAyLjg3MDcxQzE0LjgzMzMgMy4xMjEyIDE0LjczMzggMy4zNjE0MiAxNC41NTY3IDMuNTM4NTRDMTQuMzc5NiAzLjcxNTY1IDE0LjEzOTQgMy44MTUxNiAxMy44ODg5IDMuODE1MTZIMTIuOTQ0NFY1LjA3NDQyTDEyLjk0MzIgNS4xMjYwNUMxNC41Mzk2IDUuMzAwOTcgMTYuMDUyOCA1LjkyNzg3IDE3LjMwNTMgNi45MzMwOEwxNy4zMTQxIDYuOTI1NTNMMTguMjU4NSA1Ljk4MTA4QzE4LjM3NCA1Ljg1Njc2IDE4LjUyMDggNS43NjU4OCAxOC42ODM1IDUuNzE4MDFDMTguODQ2MyA1LjY3MDE0IDE5LjAxOSA1LjY2NzA2IDE5LjE4MzMgNS43MDkwOEMxOS4zNDc3IDUuNzUxMTEgMTkuNDk3NyA1LjgzNjY5IDE5LjYxNzUgNS45NTY4QzE5LjczNzMgNi4wNzY5MiAxOS44MjI1IDYuMjI3MTMgMTkuODY0MSA2LjM5MTZDMTkuOTA2IDYuNTU1NzggMTkuOTAzIDYuNzI4MjMgMTkuODU1NCA2Ljg5MDg1QzE5LjgwNzcgNy4wNTM0OCAxOS43MTcyIDcuMjAwMjkgMTkuNTkzMyA3LjMxNTlMMTguNjQ4OSA4LjI2MDM0TDE4LjY0MTMgOC4yNjkxNUMxOS42NDAzIDkuNTE5NzQgMjAuMjY1OCAxMS4wMjcgMjAuNDQ2IDEyLjYxNzRDMjAuNjI2MSAxNC4yMDc4IDIwLjM1MzYgMTUuODE2NyAxOS42NTk3IDE3LjI1OTFDMTguOTY1OCAxOC43MDE0IDE3Ljg3ODggMTkuOTE4NSAxNi41MjM3IDIwLjc3MDRDMTUuMTY4NiAyMS42MjIyIDEzLjYwMDYgMjIuMDc0MSAxMiAyMi4wNzQxQzEwLjM5OTQgMjIuMDc0MSA4LjgzMTM3IDIxLjYyMjIgNy40NzYyOSAyMC43NzA0QzYuMTIxMjIgMTkuOTE4NSA1LjAzNDE5IDE4LjcwMTQgNC4zNDAzIDE3LjI1OTFDMy42NDY0MSAxNS44MTY3IDMuMzczODYgMTQuMjA3OCAzLjU1NDAyIDEyLjYxNzRDMy43MzQxOCAxMS4wMjcgNC4zNTk3MyA5LjUxOTc0IDUuMzU4NjcgOC4yNjkxNUw1LjM1MTExIDguMjYwMzRMNC40MDY2NyA3LjMxNTlDNC4yMzk2NCA3LjEzNjkgNC4xNDg2NSA2LjkwMDAzIDQuMTUyODcgNi42NTUyNEM0LjE1NzEgNi40MTA0NSA0LjI1NjIyIDYuMTc2ODcgNC40MjkzNCA2LjAwMzc1QzQuNjAyNDYgNS44MzA2MyA0LjgzNjA0IDUuNzMxNTEgNS4wODA4MyA1LjcyNzI4QzUuMzI1NjIgNS43MjMwNiA1LjU2MjQ5IDUuODE0MDUgNS43NDE0OSA1Ljk4MTA4TDYuNjg1OTMgNi45MjU1M0w2LjY5NDc0IDYuOTMzMDhDNy45NDY4MSA1LjkyODA5IDkuNDU5NjMgNS4zMDEyIDExLjA1NTYgNS4xMjYwNVYzLjgxNTE2SDEwLjExMTFDOS44NjA2MyAzLjgxNTE2IDkuNjIwNDEgMy43MTU2NSA5LjQ0MzI5IDMuNTM4NTRDOS4yNjYxNyAzLjM2MTQyIDkuMTY2NjcgMy4xMjEyIDkuMTY2NjcgMi44NzA3MVpNMTIgMjAuMTg1NUMxMy43NTM1IDIwLjE4NTQgMTUuNDM1MiAxOS40ODg2IDE2LjY3NSAxOC4yNDg1QzE3LjkxNDggMTcuMDA4NSAxOC42MTEzIDE1LjMyNjcgMTguNjExMSAxMy41NzMyQzE4LjYxMDkgMTEuODE5NiAxNy45MTQyIDEwLjEzOCAxNi42NzQxIDguODk4MTNDMTUuNDM0MSA3LjY1ODMxIDEzLjc1MjMgNi45NjE4OCAxMS45OTg3IDYuOTYyMDRDMTAuMjQ1MiA2Ljk2MjIxIDguNTYzNTQgNy42NTg5NiA3LjMyMzcyIDguODk5MDJDNi4wODM5IDEwLjEzOTEgNS4zODc0NyAxMS44MjA5IDUuMzg3NjMgMTMuNTc0NEM1LjM4NzggMTUuMzI4IDYuMDg0NTUgMTcuMDA5NiA3LjMyNDYxIDE4LjI0OTRDOC41NjQ2NyAxOS40ODkzIDEwLjI0NjUgMjAuMTg1NyAxMiAyMC4xODU1Wk0xMi40ODk5IDExLjc0ODVMMTQuMTY0NyAxMC4wNzM3QzE0LjI1MTcgOS45ODM0MyAxNC4zNTU5IDkuOTExNDMgMTQuNDcxMSA5Ljg2MTg4QzE0LjU4NjMgOS44MTIzMyAxNC43MTAyIDkuNzg2MjIgMTQuODM1NiA5Ljc4NTA3QzE0Ljk2MTEgOS43ODM5MiAxNS4wODU0IDkuODA3NzYgMTUuMjAxNSA5Ljg1NTE5QzE1LjMxNzYgOS45MDI2MiAxNS40MjMxIDkuOTcyNyAxNS41MTE4IDEwLjA2MTNDMTUuNjAwNSAxMC4xNSAxNS42NzA3IDEwLjI1NTQgMTUuNzE4MiAxMC4zNzE0QzE1Ljc2NTggMTAuNDg3NSAxNS43ODk3IDEwLjYxMTggMTUuNzg4NyAxMC43MzcyQzE1Ljc4NzcgMTAuODYyNiAxNS43NjE3IDEwLjk4NjYgMTUuNzEyMiAxMS4xMDE4QzE1LjY2MjggMTEuMjE3MSAxNS41OTA5IDExLjMyMTMgMTUuNTAwNyAxMS40MDg1TDEzLjgyNTkgMTMuMDg0NkMxMy45MDAzIDEzLjM2NDUgMTMuOTA5NSAxMy42NTc5IDEzLjg1MjYgMTMuOTQyQzEzLjc5NTggMTQuMjI2IDEzLjY3NDUgMTQuNDkzMyAxMy40OTgxIDE0LjcyMzFDMTMuMzIxNyAxNC45NTI5IDEzLjA5NDkgMTUuMTM5MSAxMi44MzUyIDE1LjI2NzVDMTIuNTc1NCAxNS4zOTU4IDEyLjI4OTcgMTUuNDYyOCAxMiAxNS40NjMzQzExLjczMjcgMTUuNDYxIDExLjQ2ODggMTUuNDAxOSAxMS4yMjYgMTUuMjlDMTAuOTgzMiAxNS4xNzgxIDEwLjc2NyAxNS4wMTU5IDEwLjU5MTYgMTQuODE0MUMxMC40MTYyIDE0LjYxMjMgMTAuMjg1NyAxNC4zNzU1IDEwLjIwODcgMTQuMTE5NUMxMC4xMzE2IDEzLjg2MzUgMTAuMTA5OSAxMy41OTQgMTAuMTQ0OCAxMy4zMjlDMTAuMTc5OCAxMy4wNjM5IDEwLjI3MDYgMTIuODA5MyAxMC40MTE0IDEyLjU4MkMxMC41NTIyIDEyLjM1NDcgMTAuNzM5NiAxMi4xNTk5IDEwLjk2MTMgMTIuMDEwNEMxMS4xODMgMTEuODYxIDExLjQzMzkgMTEuNzYwNCAxMS42OTc0IDExLjcxNTJDMTEuOTYwOSAxMS42NzAxIDEyLjIzMSAxMS42ODE0IDEyLjQ4OTkgMTEuNzQ4NVpcIiBmaWxsPVwiYmxhY2tcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwiZGVtb2dyYXBoaWNcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3MgbXMtM1wiPnt7ZGVtb2dyYXBoaWN9fSB7e2RlbW9ncmFwaGljID4gMSA/ICdEZW1vZ3JhcGhpY3MnIDogJ0RlbW9ncmFwaGljJ319PC9zcGFuPiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhciBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiIXNob3d2YWx1ZTFcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgcHktMiBteC0yXCIgKGNsaWNrKT1cImNoYW5nZXNkYXRhKClcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5IHN2Zy1pY29uLTJ4XCIgPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODMzNyAxMC4wMDAxSDQuMTY2OTlNNC4xNjY5OSAxMC4wMDAxTDEwLjAwMDMgMTUuODMzNE00LjE2Njk5IDEwLjAwMDFMMTAuMDAwMyA0LjE2Njc1XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPVwibXMtM1wiPkJhY2sgdG8gVGFnZ2luZzwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIXNob3d2YWx1ZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeSBweS0yIG14LTJcIiAoY2xpY2spPVwic3VibWl0YXVkaXQoKVwiICA+U3VibWl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNC4xNjY5OSA5Ljk5OTg0SDE1LjgzMzdNMTUuODMzNyA5Ljk5OTg0TDEwLjAwMDMgNC4xNjY1TTE1LjgzMzcgOS45OTk4NEwxMC4wMDAzIDE1LjgzMzJcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd3ZhbHVlXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIHB5LTIgbXgtMlwiIFtkaXNhYmxlZF09XCJzdWJtaXR0ZWRcIiAoY2xpY2spPVwidGFnZ2luZ3ZpZXcoKVwiPlJldGFnIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByaW1hcnkgc3ZnLWljb24tMnhcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTQuMTY2NjYgOS45OTk5NkgxNS44MzMzTTE1LjgzMzMgOS45OTk5Nkw5Ljk5OTk5IDQuMTY2NjNNMTUuODMzMyA5Ljk5OTk2TDkuOTk5OTkgMTUuODMzM1wiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIFxyXG48L2Rpdj5cclxuXHJcblxyXG48ZGl2IGNsYXNzPVwicm93XCI+IFxyXG4gICAgPGRpdiAqbmdJZj1cImF1ZGl0TG9hZGluZ1wiIGNsYXNzPVwiY2FyZCBtdC01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSA8aDUgY2xhc3M9XCJ0ZXh0LWRhcmstNjAwIGZzLTMgZnctYm9sZCB0ZXh0LWNlbnRlciBcIj5Mb2FkaW5nIEF1ZGl0IGZpbGUuLi4uLi48L2g1PiAtLT5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWF1ZGl0TG9hZGluZ1wiIGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMDBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2F0ZWdvcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbT8uY291bnQgIT09MFwiIGNsYXNzPVwibXQtNlwiIG5nYkFjY29yZGlvbkl0ZW0gW2NvbGxhcHNlZF09XCIhaXRlbT8uY291bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtPy5uYW1lfX0gPHNwYW4gY2xhc3M9XCJzdWItdGV4dCBtdC0yIG1zLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCI+PHN2ZyBjbGFzcz1cIm1lLTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE0NTA4XzE4NTgzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjUgMTAuNUg5LjVDMTAuMDUyMyAxMC41IDEwLjUgMTAuMDUyMyAxMC41IDkuNVYyLjVDMTAuNSAxLjk0NzcyIDEwLjA1MjMgMS41IDkuNSAxLjVIMi41QzEuOTQ3NzIgMS41IDEuNSAxLjk0NzcyIDEuNSAyLjVWOS41QzEuNSAxMC4wNTIzIDEuOTQ3NzIgMTAuNSAyLjUgMTAuNVpNMi41IDEwLjVMOCA1TDEwLjUgNy41TTUgNC4yNUM1IDQuNjY0MjEgNC42NjQyMSA1IDQuMjUgNUMzLjgzNTc5IDUgMy41IDQuNjY0MjEgMy41IDQuMjVDMy41IDMuODM1NzkgMy44MzU3OSAzLjUgNC4yNSAzLjVDNC42NjQyMSAzLjUgNSAzLjgzNTc5IDUgNC4yNVpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4xXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xNDUwOF8xODU4M1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPnt7aXRlbT8uY291bnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHkgY2xhc3M9XCJweS0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC1hdXRvXCIgKGRyYWdvdmVyKT1cImFsbG93RHJvcCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGl0ZW1cIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgb2JqIG9mIGl0ZW0/LnZhbHVlXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBkcmFnZ2FibGU9XCJ0cnVlXCIgKGRyYWdzdGFydCk9XCJkcmFnKCRldmVudClcIiBpZD1cInt7b2JqLmltZ19pZH19XCIgbmFtZT1cInt7aXRlbS50eXBlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm15LTMgbXgtMiBpbWdcIiBbc3JjXT1cIm9iai5pbWdfcGF0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtLTAgZnMtNyBmdy1ib2xkXCI+e3tvYmouaW1nX25hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC02XCIgbmdiQWNjb3JkaW9uSXRlbSBbY29sbGFwc2VkXT1cIiEoIWp1bmtjb3VudCAmJiAhZW1wbG95ZWVjb3VudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pcXVlIEN1c3RvbWVyICA8c3BhbiBjbGFzcz1cInN1Yi10ZXh0IG10LTIgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIj48c3ZnIGNsYXNzPVwibWUtMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTU4MDBfMzkxMSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC41IDEwLjVWOS41QzguNSA4Ljk2OTU3IDguMjg5MjkgOC40NjA4NiA3LjkxNDIxIDguMDg1NzlDNy41MzkxNCA3LjcxMDcxIDcuMDMwNDMgNy41IDYuNSA3LjVIMi41QzEuOTY5NTcgNy41IDEuNDYwODYgNy43MTA3MSAxLjA4NTc5IDguMDg1NzlDMC43MTA3MTQgOC40NjA4NiAwLjUgOC45Njk1NyAwLjUgOS41VjEwLjVNMTEuNSAxMC41VjkuNUMxMS40OTk3IDkuMDU2ODYgMTEuMzUyMiA4LjYyNjM5IDExLjA4MDcgOC4yNzYxNkMxMC44MDkyIDcuOTI1OTMgMTAuNDI5MSA3LjY3NTc4IDEwIDcuNTY1TTggMS41NjVDOC40MzAyMSAxLjY3NTE1IDguODExNTIgMS45MjUzNSA5LjA4MzgyIDIuMjc2MTZDOS4zNTYxMiAyLjYyNjk2IDkuNTAzOTIgMy4wNTg0MSA5LjUwMzkyIDMuNTAyNUM5LjUwMzkyIDMuOTQ2NTkgOS4zNTYxMiA0LjM3ODA0IDkuMDgzODIgNC43Mjg4NEM4LjgxMTUyIDUuMDc5NjUgOC40MzAyMSA1LjMyOTg1IDggNS40NE02LjUgMy41QzYuNSA0LjYwNDU3IDUuNjA0NTcgNS41IDQuNSA1LjVDMy4zOTU0MyA1LjUgMi41IDQuNjA0NTcgMi41IDMuNUMyLjUgMi4zOTU0MyAzLjM5NTQzIDEuNSA0LjUgMS41QzUuNjA0NTcgMS41IDYuNSAyLjM5NTQzIDYuNSAzLjVaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTU4MDBfMzkxMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiB7e2N1c3RvbWVyY291bnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHkgY2xhc3M9XCJweS0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtNTAwXCIgKGRyYWdvdmVyKT1cImFsbG93RHJvcCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc2V0R3JvdXBOdW1iZXIoKSA9PT0gbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9iaiBvZiBhdWRpdG1hcHBpbmdkYXRhO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmo/LmNvdW50ID09PSAxXCIgY2xhc3M9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGltZyBvZiBvYmo/Lm1hcHBlZGlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgZHJhZ2dhYmxlPVwidHJ1ZVwiIG5hbWU9XCJ7e29iai5pbWdfaWR9fVwiIChkcmFnc3RhcnQpPVwiZHJhZygkZXZlbnQpXCIgKGNsaWNrKT1cInRvZ2dsZUltYWdlKGltZz8uaW1nX25hbWUgKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3tpbWcuaW1nX2lkfX1cIiBjbGFzcz1cIm15LTMgbXgtMiBpbWdcIiBbc3JjXT1cImltZy5pbWdfcGF0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbS0wIGZzLTcgZnctYm9sZFwiPnt7aW1nLmltZ19uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cIm9iaj8uZGVtb2dyYXBoaWMgIT09ICdkJ1wiIGNsYXNzPVwibm90aWZ5LWJhZGdlMiB3LTI1cHggaC0yNXB4IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInRvZ2dsZUltYWdlKGltZz8uaW1nX25hbWUgKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5kZW1vZ3JhcGhpYyA9PT0gJ2QnXCIgY2xhc3M9XCJub3RpZnktYmFkZ2VcIiAoY2xpY2spPVwidG9nZ2xlSW1hZ2UoaW1nPy5pbWdfbmFtZSApXCI+PGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZToxNXB4O2NvbG9yOiMwMEEzRkZcIj48L2k+PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwibXQtNVwiICpuZ0Zvcj1cImxldCBvYmogb2YgYXVkaXRtYXBwaW5nZGF0YTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqPy5jb3VudCA+IDFcIiBjbGFzcz1cImNhcmQtbGFiZWwgbXQtM1wiPkdyb3VwIHt7IGdldEdyb3VwTnVtYmVyKG9iaikgfX0gPHNwYW4gY2xhc3M9XCJzdWItdGV4dCBtdC0zIG1zLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiPjxzdmcgY2xhc3M9XCJtZS0yXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTQ1MDhfMTg1ODMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yLjUgMTAuNUg5LjVDMTAuMDUyMyAxMC41IDEwLjUgMTAuMDUyMyAxMC41IDkuNVYyLjVDMTAuNSAxLjk0NzcyIDEwLjA1MjMgMS41IDkuNSAxLjVIMi41QzEuOTQ3NzIgMS41IDEuNSAxLjk0NzcyIDEuNSAyLjVWOS41QzEuNSAxMC4wNTIzIDEuOTQ3NzIgMTAuNSAyLjUgMTAuNVpNMi41IDEwLjVMOCA1TDEwLjUgNy41TTUgNC4yNUM1IDQuNjY0MjEgNC42NjQyMSA1IDQuMjUgNUMzLjgzNTc5IDUgMy41IDQuNjY0MjEgMy41IDQuMjVDMy41IDMuODM1NzkgMy44MzU3OSAzLjUgNC4yNSAzLjVDNC42NjQyMSAzLjUgNSAzLjgzNTc5IDUgNC4yNVpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4xXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xNDUwOF8xODU4M1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz57e29iai5jb3VudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJvYmo/LmRlbW9ncmFwaGljICE9PSAnZCdcIiBjbGFzcz1cImtpZC1iYWRnZSBjdXJzb3ItcG9pbnRlciBtcy0zIG1lLTNcIiBzdHlsZT1cInBhZGRpbmc6MnB4IDEwLjVweCAhaW1wb3J0YW50XCIgKGNsaWNrKT1cInRvZ2dsZUltYWdlKG9iaj8uaW1nX25hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8uZGVtb2dyYXBoaWMgPT09ICdkJ1wiIGNsYXNzPVwia2lkLWJhZGdlIGN1cnNvci1wb2ludGVyIG1zLTMgbWUtM1wiIChjbGljayk9XCJ0b2dnbGVJbWFnZShvYmo/LmltZ19uYW1lKVwiPjxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOjE1cHg7Y29sb3I6IzAwQTNGRlwiPjwvaT48L3NwYW4+IE1hcmsgYXMgZGVtb2dyYXBoaWMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmNvdW50ID4gMVwiIGNsYXNzPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpbWcgb2Ygb2JqPy5tYXBwZWRpZFwiIGNsYXNzPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGRyYWdnYWJsZT1cInRydWVcIiBuYW1lPVwie3tvYmouaW1nX2lkfX1cIiAoZHJhZ3N0YXJ0KT1cImRyYWcoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3tpbWcuaW1nX2lkfX1cIiBjbGFzcz1cIm15LTMgbXgtMiBpbWdcIiBbc3JjXT1cImltZy5pbWdfcGF0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbS0wIGZzLTcgZnctYm9sZFwiPnt7aW1nLmltZ19uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIiFhdWRpdExvYWRpbmdcIiBjbGFzcz1cImNvbC1tZC01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbXQtNVwiPlxyXG4gICAgICAgICAgICA8IS0tIChjaGFuZ2UpPVwiaW1hZ2VhcnJheSgpXCIgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgaC0xMDAwcHhcIiAoZHJvcCk9XCJkcm9wZm9ycmV0YWcoJGV2ZW50KVwiIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50KVwiID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIGZ3LWJvbGQgdGV4dC1kYXJrIG1iLTVcIj5JbWFnZXMgZm9yIFJldGFnZ2luZzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBpdGVtXCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXRhZ2ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nICBbc3JjXT1cIml0ZW0uaW1nX3BhdGhcIiBjbGFzcz1cIm15LTIgbXgtNCBpbWctcmV0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICBjbGFzcz1cInRleHQtY2VudGVyIG0tMCBmcy03IGZ3LWJvbGRcIj57e2l0ZW0uaW1nX25hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub3RpZnktYmFkZ2UxIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlbW92ZWltYWdlKGl0ZW0pXCI+PGkgY2xhc3M9XCJmYSBmYS1jbG9zZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6MTVweDtjb2xvcjojMDBBM0ZGXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb25maXJtRHJhZnQgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgaC1hdXRvIHAtMTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZC1ncmlkIHAtMCBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICA8c3Bhbj48aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9TdWNjZXNzdG9hc3QucG5nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwiZ2V0QmFja1wiPjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vY3VzdG9tcG9wdXAtSWNvbnMvZGFuZ2VyLWljb24uc3ZnXCI+PC9zcGFuPiAgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIG10LTVcIj5EbyB5b3Ugd2FudCB0byBzdWJtaXQgeW91ciBjaGFuZ2VzIHdpdGhvdXQgZGVtb2dyYXBoaWM/PC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImdldEJhY2tcIiBjbGFzcz1cImNhcmQtbGFiZWwgbXQtNVwiPlVuc2F2ZWQgQ2hhbmdlczwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctNTAgbWUtMiBmdy1ib2xkXCIgKGNsaWNrKT1cIm1vZGFsLmNsb3NlKCdpc0RlbmllZCcpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHNhdmVidG4gdy01MCBtcy0yXCIgKGNsaWNrKT1cIm1vZGFsLmNsb3NlKCdpc0NvbmZpcm1lZCcpXCI+T2s8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
498
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbWFwcGluZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1tYXBwaW5nLWxpc3QvYXVkaXQtbWFwcGluZy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1tYXBwaW5nLWxpc3QvYXVkaXQtbWFwcGluZy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWtFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtySCxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxrR0FBa0c7QUFDbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRXhELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7OztBQU8vRixNQUFNLE9BQU8seUJBQXlCO0lBaUNqQjtJQUFnQztJQUF3QjtJQUFvQztJQUE4QjtJQUNuSTtJQUErQjtJQWhDekMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNkLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDYixJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNiLFlBQVksR0FBUSxDQUFDLENBQUM7SUFDdEIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsU0FBUyxHQUFRLEVBQUUsQ0FBQTtJQUNuQixVQUFVLEdBQVEsRUFBRSxDQUFBO0lBQ3BCLFdBQVcsR0FBWSxJQUFJLENBQUM7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LENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2hHLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRCxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNqRCxDQUFDO3dHQXRnQlUseUJBQXlCOzRGQUF6Qix5QkFBeUIsaU1DaEJ0Qyx5MG9CQTBPQTs7NEZEMU5hLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0I7Z1BBbUNQLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE9uRGVzdHJveSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBBdWRpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcclxuaW1wb3J0ICogYXMgTFpTdHJpbmcgZnJvbSAnbHotc3RyaW5nJztcclxuLy8gaW1wb3J0IHsgQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL2F1ZGl0LXJlcG9ydC1wb3B1cC9hdWRpdC1yZXBvcnQtcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGltZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGltZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9hdWRpdC1yZXBvcnQtcG9wdXAvYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hdWRpdC1tYXBwaW5nLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdWRpdC1tYXBwaW5nLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hdWRpdC1tYXBwaW5nLWxpc3QuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdWRpdE1hcHBpbmdMaXN0Q29tcG9uZW50IHtcclxuXHJcbiAgdG90YWxmaWxlID0gMDtcclxuICBjdXN0b21lciA9IDA7XHJcbiAganVuayA9IDA7XHJcbiAgZW1wbG95ZWUgPSAwO1xyXG4gIGN1cnJlbnRWYWx1ZTogYW55ID0gMDtcclxuICBzaG93dmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZXRnZ2luZ3BhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93dmFsdWUxOiBib29sZWFuID0gZmFsc2U7XHJcbiAganVua2ltYWdlOiBhbnkgPSBbXVxyXG4gIHJldGFnaW1hZ2U6IGFueSA9IFtdXHJcbiAgc3VibWl0dmFsdWU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGF1ZGl0bWFwcGluZ2RhdGE6IGFueTtcclxuICBjdXN0b21lcmNvdW50OiBhbnk7XHJcbiAgYXVkaXRMb2FkaW5nID0gdHJ1ZTtcclxuICBzZWxlY3RlZFR5cGU6IGFueTtcclxuXHJcbiAganVua2NvdW50OiBhbnkgPSAwO1xyXG4gIGVtcGxveWVlY291bnQ6IGFueSA9IDA7XHJcbiAgZW1wbG95ZWltYWdlOiBhbnkgPSBbXTtcclxuICBmaWxlZGV0YWlsczogYW55O1xyXG4gIGRlbW9ncmFwaGljOiBhbnk7XHJcbiAgc3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHVtbXltYXBwaW5nOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgdGltZVBhc3NlZDogbnVtYmVyID0gMDtcclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIGZvcm1hdHRlZFRpbWU6IHN0cmluZyA9ICcwMDowMDowMCc7XHJcbiAgY291bnQ6IGFueTtcclxuICBjYXRlZ29yeTogYW55ID0gW11cclxuICBAVmlld0NoaWxkKCdjb25maXJtRHJhZnQnKSBjb25maXJtRHJhZnQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgYXVkaXRTZXJ2aWNlOiBBdWRpdFNlcnZpY2UsIHByaXZhdGUgdG9hc3RyOiBUb2FzdFNlcnZpY2UsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdGltZXJTZXJ2aWNlOiBUaW1lclNlcnZpY2UpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3R5cGUnKVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEF1ZGl0Q29uZmlnKClcclxuICAgIC8vIHRoaXMuaW5pdGlhbF9kYXRhX2xvYWRpbmcoKTtcclxuICAgIGlmICh0aGlzLnJldGFnaW1hZ2UubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnNob3d2YWx1ZSA9IHRydWVcclxuICAgIH1cclxuICAgIHRoaXMuc2V0VGltZXIoKTtcclxuICB9XHJcbiAgZ2V0QXVkaXRDb25maWcoKSB7XHJcblxyXG4gICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgIHRoaXMuYXVkaXRTZXJ2aWNlLmdldEF1ZGl0Y29uZmlnKGZpbGVkYXRhPy5maWxlZGV0YWlscz8uY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2F0ZWdvcnkgPSByZXMuZGF0YS5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3MudGFnZ2luZ0xpbWl0YXRpb25cclxuICAgICAgICAgIC8vIHRoaXMuaW5pdGlhbF9kYXRhX2xvYWRpbmcoKVxyXG4gICAgICAgICAgLy8gdGhpcy5zYXZlRHJhZnRpbWcoKTtcclxuICAgICAgICAgIHRoaXMuZ2V0bWFwcGluZ2RhdGEoKVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHNldFRpbWVyKCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRpbWVyU2VydmljZS5nZXRUaW1lUGFzc2VkKCkuc3Vic2NyaWJlKHRpbWUgPT4ge1xyXG4gICAgICB0aGlzLnRpbWVQYXNzZWQgPSB0aW1lO1xyXG4gICAgICB0aGlzLmZvcm1hdHRlZFRpbWUgPSB0aGlzLnRpbWVyU2VydmljZS5mb3JtYXRUaW1lKHRpbWUpO1xyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50aW1lclNlcnZpY2Uuc3RhcnRUaW1lcigpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICB0aGlzLnRpbWVyU2VydmljZS5jbGVhclRpbWVyKClcclxuICB9XHJcblxyXG4gIGhhbmRsZUdsb2JhbE1vdXNlRXZlbnQgPSAoKTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLnRpbWVyU2VydmljZS5zdGFydFRpbWVyKCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsX2RhdGFfbG9hZGluZygpIHtcclxuICAgIGlmICgnYXVkaXQnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICB2YXIgYXVkaXRkYXRhID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgIFxyXG4gICAgICBpZiAoYXVkaXRkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBhdWRpdGRhdGE7XHJcbiAgICAgICAgdGhpcy5jdXN0b21lcmNvdW50ID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmxlbmd0aFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IFtdXHJcbiAgICAgICAgdGhpcy5jdXN0b21lcmNvdW50ID0gMFxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGVtb2dyYXBoaWMgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuZGVtb2dyYXBoaWMgPT09ICdkJykubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB2YXIgY291bnQgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YT8udHlwZSkgfHwgJ3t9JylcclxuICAgICAgZGF0YS5jb3VudCA9IGNvdW50Py5sZW5ndGhcclxuICAgIH0pXHJcbiAgICBpZiAoJ3JldGFnJyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB2YXIgcmV0YWdkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdyZXRhZycpIHx8ICd7fScpXHJcbiAgICAgIGlmIChyZXRhZ2RhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMucmV0YWdpbWFnZSA9IHJldGFnZGF0YTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJldGFnaW1hZ2UgPSBbXTtcclxuICAgICAgICBpZiAodGhpcy5yZXRhZ2ltYWdlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3d2YWx1ZSA9IGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoJ3RvdGFsZmlsZXMnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHZhciBmaWxlcyA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICAgIHRoaXMudG90YWxmaWxlID0gZmlsZXM/LnRvdGFsZmlsZXNcclxuICAgICAgdGhpcy5maWxlZGV0YWlscyA9IGZpbGVzPy5maWxlZGV0YWlsc1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdldG1hcHBpbmdkYXRhKCkge1xyXG4gICAgdmFyIHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcbiAgICB0aGlzLmZpbGVkZXRhaWxzID0gdG90YWxmaWxlPy5maWxlZGV0YWlsc1xyXG4gbGV0IHRpY2tldHR5cGUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0aWNrZXRUeXBlJylcclxuICAgIHZhciBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgIHN0b3JlSWQ6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgIGZpbGVEYXRlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICBhdWRpdElkOiB0b3RhbGZpbGU/LmF1ZGl0SWQsXHJcbiAgICAgIGNvdW50OiB0b3RhbGZpbGU/LnRvdGFsZmlsZXMsXHJcbiAgICAgICB0aWNrZXR0eXBlOnRpY2tldHR5cGVcclxuICAgIH1cclxuICAgIHRoaXMuYXVkaXRTZXJ2aWNlLmdldEF1ZGl0bWFwcGluZ2xpc3QocGF5bG9hZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5hdWRpdExvYWRpbmcgPSBmYWxzZTtcclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBmaWx0ZXJEYXRhID0gcmVzPy5kYXRhPy5yZXN1bHQ/LmRyYWZ0ZWREYXRhPy5maWx0ZXIoKHg6IGFueSkgPT4geC50eXBlID09PSBkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgIGRhdGEudmFsdWUgPSBmaWx0ZXJEYXRhWzBdPy52YWx1ZSAmJiBmaWx0ZXJEYXRhWzBdPy52YWx1ZS5sZW5ndGggPiAwID8gZmlsdGVyRGF0YVswXT8udmFsdWUgOiBbXVxyXG4gICAgICAgICAgICBkYXRhLmNvdW50ID0gZGF0YT8udmFsdWU/Lmxlbmd0aFxyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGRhdGE/LnR5cGUsIEpTT04uc3RyaW5naWZ5KGRhdGE/LnZhbHVlICYmIGRhdGE/LnZhbHVlLmxlbmd0aCA+IDAgPyBkYXRhPy52YWx1ZSA6IFtdKSlcclxuXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgbGV0IGN1c3RvbWVyRGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0Py5kcmFmdGVkRGF0YT8uZmlsdGVyKCh4OiBhbnkpID0+IHgudHlwZSA9PT0gJ2N1c3RvbWVyJylcclxuXHJcbiAgICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBjdXN0b21lckRhdGFbMF0/LnZhbHVlXHJcbiAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXJEYXRhWzBdPy52YWx1ZSk7XHJcbiAgICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuXHJcblxyXG5cclxuICAgICAgICAgIHZhciByZXRhZ2lhbWdlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdyZXRhZycpIHx8ICdbXScpXHJcbiAgICAgICAgICBpZiAocmV0YWdpYW1nZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgICAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICAgICAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgICAgICAgY3VzdG9tZXIgPSBbLi4uY3VzdG9tZXIsIC4uLnJldGFnaWFtZ2VdXHJcbiAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjdXN0b21lcik7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdyZXRhZycpXHJcbiAgICAgICAgICB0aGlzLnJldGFnaW1hZ2UgPSBbXVxyXG4gICAgICAgICAgdGhpcy5pbml0aWFsX2RhdGFfbG9hZGluZygpXHJcbiAgICAgICAgICBpZiAodGhpcy5yZXRhZ2ltYWdlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd3ZhbHVlID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICByZWRpcmVhY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgYmFja1RvVGFnZ2luZygpIHtcclxuICAgIHRoaXMucmVkaXJlYWN0ID0gdHJ1ZTtcclxuICAgIHRoaXMuc2F2ZURyYWZ0aW1nKCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VzZGF0YSgpIHtcclxuICAgIHZhciB1c2VyID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgJ3t9JylcclxuICAgIHZhciB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgdmFyIHBheWxvYWQ6IGFueSA9IHtcclxuICAgICAgc3RvcmVJZDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgZmlsZURhdGU6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgIGF1ZGl0SWQ6IHRvdGFsZmlsZT8uYXVkaXRJZCxcclxuICAgICAgY291bnQ6IHRvdGFsZmlsZT8udG90YWxmaWxlc1xyXG4gICAgfVxyXG4gICAgdGhpcy5hdWRpdFNlcnZpY2UuZ2V0QXVkaXRtYXBwaW5nbGlzdChwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgncmV0YWcnKVxyXG4gICAgICAgICAgdGhpcy5yZXRhZ2ltYWdlID0gW11cclxuICAgICAgICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgbGV0IGZpbHRlckRhdGEgPSByZXM/LmRhdGE/LnJlc3VsdD8uZHJhZnRlZERhdGE/LmZpbHRlcigoeDogYW55KSA9PiB4LnR5cGUgPT09IGRhdGEudHlwZSlcclxuICAgICAgICAgICAgZGF0YS52YWx1ZSA9IGZpbHRlckRhdGFbMF0/LnZhbHVlICYmIGZpbHRlckRhdGFbMF0/LnZhbHVlLmxlbmd0aCA+IDAgPyBmaWx0ZXJEYXRhWzBdPy52YWx1ZSA6IFtdXHJcbiAgICAgICAgICAgIGRhdGEuY291bnQgPSBkYXRhPy52YWx1ZT8ubGVuZ3RoXHJcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZGF0YT8udHlwZSwgSlNPTi5zdHJpbmdpZnkoZGF0YT8udmFsdWUgJiYgZGF0YT8udmFsdWUubGVuZ3RoID4gMCA/IGRhdGE/LnZhbHVlIDogW10pKVxyXG5cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBsZXQgY3VzdG9tZXJEYXRhID0gcmVzPy5kYXRhPy5yZXN1bHQ/LmRyYWZ0ZWREYXRhPy5maWx0ZXIoKHg6IGFueSkgPT4geC50eXBlID09PSAnY3VzdG9tZXInKVxyXG5cclxuICAgICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IGN1c3RvbWVyRGF0YVswXT8udmFsdWVcclxuICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjdXN0b21lckRhdGFbMF0/LnZhbHVlKTtcclxuICAgICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gICAgICAgICAgaWYgKHRoaXMucmV0YWdpbWFnZS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3d2YWx1ZSA9IGZhbHNlXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL21hbmFnZS90aWNrZXRzL2F1ZGl0XCJdKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snYXVkaXRtYXBwaW5nZGF0YSddKSB7XHJcbiAgICAgIHRoaXMuZHVtbXltYXBwaW5nID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydhdWRpdG1hcHBpbmdkYXRhJ10uY3VycmVudFZhbHVlKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhbGxvd0Ryb3AoZXY6IGFueSkge1xyXG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIGRyYWcoZXY6IGFueSkge1xyXG4gICAgZXYuZGF0YVRyYW5zZmVyLnNldERhdGEoXCJ0ZXh0L3BsYWluXCIsIGV2LnRhcmdldC5pZCk7XHJcbiAgfVxyXG5cclxuICBkcm9wZm9ycmV0YWcoZXY6IGFueSkge1xyXG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGRyYWdnZWRJbWFnZUlkID0gZXYuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcclxuICAgIGNvbnN0IGRyYWdnZWRJbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRyYWdnZWRJbWFnZUlkKTtcclxuICAgIHRoaXMuc2hvd3ZhbHVlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGh0bWx0YWcgPSBldi5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgndGV4dC9odG1sJyk7XHJcbiAgICB2YXIgTmFtZSA9IGdldFRhZ05hbWVGcm9tSFRNTChodG1sdGFnKTtcclxuICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0TWFwcGluZ0xpc3RDb21wb25lbnQgfiBkcm9wZm9ycmV0YWcgfiBOYW1lOlwiLCBOYW1lLGRyYWdnZWRJbWFnZUlkKVxyXG4gICAgaWYgKE5hbWUgIT0gbnVsbCAmJiB0aGlzLmNhdGVnb3J5LmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhPy50eXBlID09PSBOYW1lKT8ubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgbGV0IGltYWdlRGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShOYW1lKSB8fCAne30nKVxyXG4gICAgICB2YXIgc3BsaWNlZHZhbHVlID0gaW1hZ2VEYXRhLnNwbGljZShpbWFnZURhdGEuZmluZEluZGV4KCh7IGltZ19pZCB9OiB7IGltZ19pZDogc3RyaW5nIH0pID0+IGltZ19pZCA9PSBkcmFnZ2VkSW1hZ2VJZCksIDEpO1xyXG5cclxuICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhPy50eXBlID09IE5hbWUpIHtcclxuICAgICAgICAgIGRhdGEudmFsdWUgPSBpbWFnZURhdGFcclxuICAgICAgICAgIGRhdGEuY291bnQgPSBpbWFnZURhdGEubGVuZ3RoXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSlcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShOYW1lLCBKU09OLnN0cmluZ2lmeShpbWFnZURhdGEpKVxyXG4gICAgICB2YXIgb2xkcmV0YWcgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3JldGFnJykgfHwgJ3t9JylcclxuICAgICAgdmFyIG5ld3RhZzogYW55ID0gW11cclxuICAgICAgaWYgKE51bWJlcihvbGRyZXRhZy5sZW5ndGgpID4gMCkge1xyXG4gICAgICAgIG5ld3RhZyA9IFsuLi5vbGRyZXRhZywgLi4uc3BsaWNlZHZhbHVlXVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld3RhZyA9IHNwbGljZWR2YWx1ZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmV0YWdpbWFnZSA9IG5ld3RhZ1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdyZXRhZycsIEpTT04uc3RyaW5naWZ5KHRoaXMucmV0YWdpbWFnZSkpXHJcblxyXG5cclxuICAgICAgaWYoTmFtZT09PSdkdXBsaWNhdGUnKXtcclxuICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubWFwKChtYWluRGF0YTphbnkpPT57XHJcbiAgICAgICAgICBpZihtYWluRGF0YS5jb3VudD4xKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRNYXBwaW5nTGlzdENvbXBvbmVudCB+IGRyb3Bmb3JyZXRhZyB+IG1haW5EYXRhOlwiLCBtYWluRGF0YSlcclxuICAgICAgICAgICAgbWFpbkRhdGEubWFwcGVkaWQgPSBtYWluRGF0YS5tYXBwZWRpZC5maWx0ZXIoKGRhdGE6YW55KT0+ZGF0YS5pbWdfaWQhPWRyYWdnZWRJbWFnZUlkKVxyXG4gICAgICAgICAgICBtYWluRGF0YS5jb3VudCA9IG1haW5EYXRhLm1hcHBlZGlkLmxlbmd0aFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH0gZWxzZSBpZiAoTmFtZSAhPSBudWxsKSB7XHJcbiAgICAgIHZhciBpbnNlcnRJbmRleCA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maW5kSW5kZXgoKHsgaW1nX2lkIH06IHsgaW1nX2lkOiBzdHJpbmcgfSkgPT4gaW1nX2lkID09IE5hbWUpXHJcbiAgICAgIHZhciBtYWluYXJyYXkgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuc3BsaWNlKHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maW5kSW5kZXgoKHsgaW1nX2lkIH06IHsgaW1nX2lkOiBzdHJpbmcgfSkgPT4gaW1nX2lkID09IE5hbWUpLCAxKTtcclxuICAgICAgdGhpcy5jdXN0b21lcmNvdW50ID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhPy5sZW5ndGg7XHJcbiAgICAgIGlmIChtYWluYXJyYXk/Lmxlbmd0aCA+IDAgJiYgbWFpbmFycmF5WzBdLm1hcHBlZGlkLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICB2YXIgY2hlY2tpbmRleCA9IG1haW5hcnJheVswXS5tYXBwZWRpZC5maW5kSW5kZXgoKHsgaW1nX2lkIH06IHsgaW1nX2lkOiBzdHJpbmcgfSkgPT4gaW1nX2lkID09IGRyYWdnZWRJbWFnZUlkKVxyXG5cclxuICAgICAgICB2YXIgc3ViYXJyYXkgPSBtYWluYXJyYXlbMF0ubWFwcGVkaWQuc3BsaWNlKG1haW5hcnJheVswXS5tYXBwZWRpZC5maW5kSW5kZXgoKHsgaW1nX2lkIH06IHsgaW1nX2lkOiBzdHJpbmcgfSkgPT4gaW1nX2lkID09IGRyYWdnZWRJbWFnZUlkKSwgMSk7XHJcbiAgICAgICAgaWYgKGNoZWNraW5kZXggPT0gMCkge1xyXG4gICAgICAgICAgbWFpbmFycmF5WzBdLmltZ19uYW1lID0gbWFpbmFycmF5WzBdLm1hcHBlZGlkWzBdLmltZ19uYW1lXHJcbiAgICAgICAgICBtYWluYXJyYXlbMF0uaW1nX2lkID0gbWFpbmFycmF5WzBdLm1hcHBlZGlkWzBdLmltZ19pZFxyXG4gICAgICAgICAgbWFpbmFycmF5WzBdLmltZ19wYXRoID0gbWFpbmFycmF5WzBdLm1hcHBlZGlkWzBdLmltZ19wYXRoXHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1haW5hcnJheVswXS5jb3VudCA9IG1haW5hcnJheVswXS5jb3VudCAtIDFcclxuICAgICAgICBzdWJhcnJheVswXS5tYXBwZWRpZCA9IFtdXHJcbiAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgIGltZ19uYW1lOiBzdWJhcnJheVswXS5pbWdfbmFtZSxcclxuICAgICAgICAgIGltZ19pZDogc3ViYXJyYXlbMF0uaW1nX2lkLFxyXG4gICAgICAgICAgaW1nX3BhdGg6IHN1YmFycmF5WzBdLmltZ19wYXRoXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN1YmFycmF5WzBdLm1hcHBlZGlkLnB1c2gob2JqKVxyXG4gICAgICAgIHN1YmFycmF5WzBdLnNlbGVjdGVkID0gZmFsc2VcclxuICAgICAgICBzdWJhcnJheVswXS5kcm9wcGVkID0gZmFsc2VcclxuICAgICAgICBzdWJhcnJheVswXS5kZW1vZ3JhcGhpYyA9ICcnXHJcbiAgICAgICAgc3ViYXJyYXlbMF0uY291bnQgPSAxO1xyXG4gICAgICAgIHZhciBvbGRyZXRhZyA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgncmV0YWcnKSB8fCAne30nKVxyXG4gICAgICAgIHZhciBuZXd0YWc6IGFueSA9IFtdXHJcbiAgICAgICAgaWYgKE51bWJlcihvbGRyZXRhZy5sZW5ndGgpID4gMCkge1xyXG4gICAgICAgICAgbmV3dGFnID0gWy4uLm9sZHJldGFnLCAuLi5zdWJhcnJheV1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3dGFnID0gc3ViYXJyYXlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZXRhZ2ltYWdlID0gbmV3dGFnXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgncmV0YWcnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnJldGFnaW1hZ2UpKVxyXG4gICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIC4uLm1haW5hcnJheSk7XHJcbiAgICAgICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuYXVkaXRtYXBwaW5nZGF0YSk7XHJcbiAgICAgICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICB2YXIgb2xkcmV0YWcgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3JldGFnJykgfHwgJ3t9JylcclxuICAgICAgICB2YXIgbmV3dGFnOiBhbnkgPSBbXVxyXG4gICAgICAgIGlmIChOdW1iZXIob2xkcmV0YWcubGVuZ3RoKSA+IDApIHtcclxuICAgICAgICAgIG5ld3RhZyA9IFsuLi5vbGRyZXRhZywgLi4ubWFpbmFycmF5XVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXd0YWcgPSBtYWluYXJyYXlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZXRhZ2ltYWdlID0gbmV3dGFnXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgncmV0YWcnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnJldGFnaW1hZ2UpKVxyXG4gICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFRhZ05hbWVGcm9tSFRNTChodG1sOiBhbnkpIHtcclxuICAgICAgdmFyIHRlbXBFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIHRlbXBFbGVtZW50LmlubmVySFRNTCA9IGh0bWw7XHJcbiAgICAgIHZhciBmaXJzdENoaWxkOiBhbnkgPSB0ZW1wRWxlbWVudC5maXJzdENoaWxkO1xyXG4gICAgICBpZiAoZmlyc3RDaGlsZC5oYXNBdHRyaWJ1dGUoJ25hbWUnKSkge1xyXG4gICAgICAgIHZhciBuYW1lUHJvcGVydHlWYWx1ZSA9IGZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCduYW1lJyk7XHJcbiAgICAgICAgcmV0dXJuIG5hbWVQcm9wZXJ0eVZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgncmV0YWcnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnJldGFnaW1hZ2UpKVxyXG5cclxuICAgIGlmICgncmV0YWcnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHZhciByZXRhZ2RhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3JldGFnJykgfHwgJ3t9JylcclxuICAgICAgdGhpcy5yZXRhZ2ltYWdlID0gcmV0YWdkYXRhO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZWltYWdlKGRhdGE6IGFueSkge1xyXG4gICAgdmFyIHJlbW92ZWRfaW1nID0gdGhpcy5yZXRhZ2ltYWdlLmZpbHRlcigoZXY6IGFueSkgPT4gZXYuaW1nX2lkID09IGRhdGEuaW1nX2lkKVxyXG4gICAgdGhpcy5yZXRhZ2ltYWdlLnNwbGljZSh0aGlzLnJldGFnaW1hZ2UuZmluZEluZGV4KCh7IGltZ19pZCB9OiB7IGltZ19pZDogc3RyaW5nIH0pID0+IGltZ19pZCA9PSBkYXRhLmltZ19pZCksIDEpO1xyXG4gICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gWy4uLnRoaXMuYXVkaXRtYXBwaW5nZGF0YSwgLi4ucmVtb3ZlZF9pbWddXHJcbiAgICB0aGlzLmN1c3RvbWVyY291bnQgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGE/Lmxlbmd0aDtcclxuICAgIGlmICghdGhpcy5yZXRhZ2ltYWdlLmxlbmd0aCkgeyB0aGlzLnNob3d2YWx1ZSA9IGZhbHNlIH1cclxuICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgIGNvbnN0IGNvbXBsZXRlRGF0ZSA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuYXVkaXRtYXBwaW5nZGF0YSk7XHJcbiAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3JldGFnJywgSlNPTi5zdHJpbmdpZnkodGhpcy5yZXRhZ2ltYWdlKSlcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZURyYWZ0aW1nKCkge1xyXG4gICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG5cclxuICAgIHZhciB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgdGhpcy50aW1lUGFzc2VkID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0aW1lU3BlbnQnKSB8fCAne30nKVxyXG4gICAgaWYgKCdyZXRhZycgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgdmFyIHJldGFnZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgncmV0YWcnKSB8fCAne30nKVxyXG4gICAgICB0aGlzLnJldGFnaW1hZ2UgPSByZXRhZ2RhdGE7XHJcbiAgICB9XHJcbiAgICBsZXQgc3RvcmVkRGF0YSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6IFwiY3VzdG9tZXJcIixcclxuICAgICAgICB2YWx1ZTogdGhpcy5hdWRpdG1hcHBpbmdkYXRhID8gdGhpcy5hdWRpdG1hcHBpbmdkYXRhIDogW10sXHJcbiAgICAgIH1cclxuICAgIF1cclxuXHJcbiAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGxldCBzZXNzaW9udmFsdWUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YS50eXBlKSB8fCAne30nKTtcclxuICAgICAgc3RvcmVkRGF0YS5wdXNoKHtcclxuICAgICAgICB0eXBlOiBkYXRhLnR5cGUsXHJcbiAgICAgICAgdmFsdWU6IHNlc3Npb252YWx1ZSAmJiBzZXNzaW9udmFsdWUubGVuZ3RoID4gMCA/IHNlc3Npb252YWx1ZSA6IFtdXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gICAgdmFyIGluc2Vyb2JqOiBhbnkgPSB7XHJcbiAgICAgIHN0b3JlSWQ6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgIGZpbGVEYXRlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICBhdWRpdElkOiB0b3RhbGZpbGU/LmF1ZGl0SWQgPyB0b3RhbGZpbGU/LmF1ZGl0SWQgOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5hdWRpdElkLFxyXG4gICAgICB0b3RhbENvdW50OiB0b3RhbGZpbGU/LnRvdGFsZmlsZXMgPyB0b3RhbGZpbGUudG90YWxmaWxlcyA6IDAsXHJcbiAgICAgIHJldGFnQ291bnQ6IHRoaXMucmV0YWdpbWFnZS5sZW5ndGgsXHJcbiAgICAgIHRpbWVTcGVudDogdGhpcy50aW1lUGFzc2VkLFxyXG4gICAgICByZXRhZ0ltYWdlOiB0aGlzLnJldGFnaW1hZ2UgPyB0aGlzLnJldGFnaW1hZ2UgOiBbXVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXVkaXRTZXJ2aWNlLnNhdmVEcmFmdChpbnNlcm9iaikucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5yZWRpcmVhY3QpIHtcclxuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0bWFwcGluZ2RhdGEoKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlc2RhdGEoKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIHRhZ2dpbmd2aWV3KCkge1xyXG4gICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgdmFyIHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcbiAgICB0aGlzLnNob3d2YWx1ZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93dmFsdWUxID0gdHJ1ZTtcclxuICAgIHRoaXMucmV0Z2dpbmdwYWdlID0gdHJ1ZTtcclxuICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgIHZhciBjdXN0b21lciA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgbGV0IHN0b3JlZERhdGEgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiBcImN1c3RvbWVyXCIsXHJcbiAgICAgICAgdmFsdWU6IGN1c3RvbWVyID8gY3VzdG9tZXIgOiBbXSxcclxuICAgICAgfVxyXG4gICAgXVxyXG5cclxuICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHNlc3Npb252YWx1ZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhLnR5cGUpIHx8ICd7fScpO1xyXG4gICAgICBzdG9yZWREYXRhLnB1c2goe1xyXG4gICAgICAgIHR5cGU6IGRhdGEudHlwZSxcclxuICAgICAgICB2YWx1ZTogc2Vzc2lvbnZhbHVlICYmIHNlc3Npb252YWx1ZS5sZW5ndGggPiAwID8gc2Vzc2lvbnZhbHVlIDogW11cclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgICB2YXIgaW5zZXJvYmo6IGFueSA9IHtcclxuICAgICAgc3RvcmVJZDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVfaWQsXHJcbiAgICAgIGZpbGVEYXRlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5maWxlX2RhdGUsXHJcbiAgICAgIGF1ZGl0SWQ6IHRvdGFsZmlsZT8uYXVkaXRJZCA/IHRvdGFsZmlsZT8uYXVkaXRJZCA6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHMuYXVkaXRJZCxcclxuICAgICAgdG90YWxDb3VudDogdG90YWxmaWxlPy50b3RhbGZpbGVzID8gdG90YWxmaWxlLnRvdGFsZmlsZXMgOiAwLFxyXG4gICAgICByZXRhZ0NvdW50OiB0aGlzLnJldGFnaW1hZ2UubGVuZ3RoLFxyXG4gICAgICB0aW1lU3BlbnQ6IHRoaXMudGltZVBhc3NlZCxcclxuICAgICAgcmV0YWdJbWFnZTogdGhpcy5yZXRhZ2ltYWdlID8gdGhpcy5yZXRhZ2ltYWdlIDogW11cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmF1ZGl0U2VydmljZS5zYXZlRHJhZnQoaW5zZXJvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4geyB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlOyB9KVxyXG4gICAgaWYgKCdyZXRhZycgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgdmFyIHJldGFnZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgncmV0YWcnKSB8fCAne30nKVxyXG4gICAgICB0aGlzLnJldGFnaW1hZ2UgPSByZXRhZ2RhdGE7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL21hbmFnZS90aWNrZXRzL3JldGFnLW1hcHBpbmdcIl0pXHJcbiAgfVxyXG5cclxuICBzdWJtaXRhdWRpdCgpIHtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIHNpemU6ICdsZycsXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlXHJcbiAgICB9KVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2Uuc2VsZWN0ZWRUeXBlID0gdGhpcy5zZWxlY3RlZFR5cGU7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHNldFZhbHVlKGk6IGFueSkge1xyXG4gICAgbGV0IGluZGV4ID0gMDtcclxuICAgIGlmIChpID4gaW5kZXgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFZhbHVlID0gdGhpcy5jdXJyZW50VmFsdWUgKyAxO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgY3VycmVudEdyb3VwTnVtYmVyOiBhbnkgPSAwO1xyXG5cclxuICBnZXRHcm91cE51bWJlcihvYmo6IGFueSk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKG9iai5jb3VudCA+IDEpIHtcclxuICAgICAgcmV0dXJuICsrdGhpcy5jdXJyZW50R3JvdXBOdW1iZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHJlc2V0R3JvdXBOdW1iZXIoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRHcm91cE51bWJlciA9IDA7XHJcbiAgfVxyXG5cclxuICBnZXRGaWx0ZXJlZERhdGEoY291bnQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maWx0ZXIoKG9iajogYW55KSA9PiBvYmouY291bnQgPT09IGNvdW50KTtcclxuXHJcbiAgfVxyXG5cclxuICB0b2dnbGVJbWFnZShpbWdfbmFtZTogYW55KSB7XHJcbiAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGRhdGEuaW1nX25hbWUgPT0gaW1nX25hbWUpIHtcclxuICAgICAgICBpZiAoZGF0YS5tYXBwZWRpZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBkYXRhLmRlbW9ncmFwaGljICE9PSAnZCcgPyBkYXRhLmRlbW9ncmFwaGljID0gJ2QnIDogZGF0YS5kZW1vZ3JhcGhpYyA9ICcnXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGRhdGEuZHJvcHBlZCA9ICFkYXRhLmRyb3BwZWRcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLmRlbW9ncmFwaGljID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLmRlbW9ncmFwaGljID09PSAnZCcpLmxlbmd0aDtcclxuICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgfVxyXG59IiwiPGRpdiAqbmdJZj1cIiFhdWRpdExvYWRpbmdcIiBjbGFzcz1cImNhcmRcIiA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIiA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJjYXJkLWxhYmVsIGZ3LWJvbGRcIj57e2ZpbGVkZXRhaWxzPy5xdWV1ZU5hbWV9fTxzcGFuIGNsYXNzPVwibXgtMyBhcnJvdy1jb2RlXCI+IC0gPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2ZpbGVkZXRhaWxzPy5zdG9yZUlkfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0zIGFycm93LWNvZGVcIj4gLSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gPnt7ZmlsZWRldGFpbHM/LkRhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwibXgtMyBhcnJvdy1jb2RlXCI+IC0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuID57e2ZpbGVkZXRhaWxzPy50eXBlfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2gzPlxyXG4gICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLTMgbXMtMyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGJnLXRpbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTMgdGV4dC10aW1lciBmdy1zZW1pYm9sZFwiPnt7IGZvcm1hdHRlZFRpbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS4xNjY2NyAyLjg3MDcxQzkuMTY2NjcgMi42MjAyMyA5LjI2NjE3IDIuMzgwMDEgOS40NDMyOSAyLjIwMjg5QzkuNjIwNDEgMi4wMjU3NyA5Ljg2MDYzIDEuOTI2MjcgMTAuMTExMSAxLjkyNjI3SDEzLjg4ODlDMTQuMTM5NCAxLjkyNjI3IDE0LjM3OTYgMi4wMjU3NyAxNC41NTY3IDIuMjAyODlDMTQuNzMzOCAyLjM4MDAxIDE0LjgzMzMgMi42MjAyMyAxNC44MzMzIDIuODcwNzFDMTQuODMzMyAzLjEyMTIgMTQuNzMzOCAzLjM2MTQyIDE0LjU1NjcgMy41Mzg1NEMxNC4zNzk2IDMuNzE1NjUgMTQuMTM5NCAzLjgxNTE2IDEzLjg4ODkgMy44MTUxNkgxMi45NDQ0VjUuMDc0NDJMMTIuOTQzMiA1LjEyNjA1QzE0LjUzOTYgNS4zMDA5NyAxNi4wNTI4IDUuOTI3ODcgMTcuMzA1MyA2LjkzMzA4TDE3LjMxNDEgNi45MjU1M0wxOC4yNTg1IDUuOTgxMDhDMTguMzc0IDUuODU2NzYgMTguNTIwOCA1Ljc2NTg4IDE4LjY4MzUgNS43MTgwMUMxOC44NDYzIDUuNjcwMTQgMTkuMDE5IDUuNjY3MDYgMTkuMTgzMyA1LjcwOTA4QzE5LjM0NzcgNS43NTExMSAxOS40OTc3IDUuODM2NjkgMTkuNjE3NSA1Ljk1NjhDMTkuNzM3MyA2LjA3NjkyIDE5LjgyMjUgNi4yMjcxMyAxOS44NjQxIDYuMzkxNkMxOS45MDYgNi41NTU3OCAxOS45MDMgNi43MjgyMyAxOS44NTU0IDYuODkwODVDMTkuODA3NyA3LjA1MzQ4IDE5LjcxNzIgNy4yMDAyOSAxOS41OTMzIDcuMzE1OUwxOC42NDg5IDguMjYwMzRMMTguNjQxMyA4LjI2OTE1QzE5LjY0MDMgOS41MTk3NCAyMC4yNjU4IDExLjAyNyAyMC40NDYgMTIuNjE3NEMyMC42MjYxIDE0LjIwNzggMjAuMzUzNiAxNS44MTY3IDE5LjY1OTcgMTcuMjU5MUMxOC45NjU4IDE4LjcwMTQgMTcuODc4OCAxOS45MTg1IDE2LjUyMzcgMjAuNzcwNEMxNS4xNjg2IDIxLjYyMjIgMTMuNjAwNiAyMi4wNzQxIDEyIDIyLjA3NDFDMTAuMzk5NCAyMi4wNzQxIDguODMxMzcgMjEuNjIyMiA3LjQ3NjI5IDIwLjc3MDRDNi4xMjEyMiAxOS45MTg1IDUuMDM0MTkgMTguNzAxNCA0LjM0MDMgMTcuMjU5MUMzLjY0NjQxIDE1LjgxNjcgMy4zNzM4NiAxNC4yMDc4IDMuNTU0MDIgMTIuNjE3NEMzLjczNDE4IDExLjAyNyA0LjM1OTczIDkuNTE5NzQgNS4zNTg2NyA4LjI2OTE1TDUuMzUxMTEgOC4yNjAzNEw0LjQwNjY3IDcuMzE1OUM0LjIzOTY0IDcuMTM2OSA0LjE0ODY1IDYuOTAwMDMgNC4xNTI4NyA2LjY1NTI0QzQuMTU3MSA2LjQxMDQ1IDQuMjU2MjIgNi4xNzY4NyA0LjQyOTM0IDYuMDAzNzVDNC42MDI0NiA1LjgzMDYzIDQuODM2MDQgNS43MzE1MSA1LjA4MDgzIDUuNzI3MjhDNS4zMjU2MiA1LjcyMzA2IDUuNTYyNDkgNS44MTQwNSA1Ljc0MTQ5IDUuOTgxMDhMNi42ODU5MyA2LjkyNTUzTDYuNjk0NzQgNi45MzMwOEM3Ljk0NjgxIDUuOTI4MDkgOS40NTk2MyA1LjMwMTIgMTEuMDU1NiA1LjEyNjA1VjMuODE1MTZIMTAuMTExMUM5Ljg2MDYzIDMuODE1MTYgOS42MjA0MSAzLjcxNTY1IDkuNDQzMjkgMy41Mzg1NEM5LjI2NjE3IDMuMzYxNDIgOS4xNjY2NyAzLjEyMTIgOS4xNjY2NyAyLjg3MDcxWk0xMiAyMC4xODU1QzEzLjc1MzUgMjAuMTg1NCAxNS40MzUyIDE5LjQ4ODYgMTYuNjc1IDE4LjI0ODVDMTcuOTE0OCAxNy4wMDg1IDE4LjYxMTMgMTUuMzI2NyAxOC42MTExIDEzLjU3MzJDMTguNjEwOSAxMS44MTk2IDE3LjkxNDIgMTAuMTM4IDE2LjY3NDEgOC44OTgxM0MxNS40MzQxIDcuNjU4MzEgMTMuNzUyMyA2Ljk2MTg4IDExLjk5ODcgNi45NjIwNEMxMC4yNDUyIDYuOTYyMjEgOC41NjM1NCA3LjY1ODk2IDcuMzIzNzIgOC44OTkwMkM2LjA4MzkgMTAuMTM5MSA1LjM4NzQ3IDExLjgyMDkgNS4zODc2MyAxMy41NzQ0QzUuMzg3OCAxNS4zMjggNi4wODQ1NSAxNy4wMDk2IDcuMzI0NjEgMTguMjQ5NEM4LjU2NDY3IDE5LjQ4OTMgMTAuMjQ2NSAyMC4xODU3IDEyIDIwLjE4NTVaTTEyLjQ4OTkgMTEuNzQ4NUwxNC4xNjQ3IDEwLjA3MzdDMTQuMjUxNyA5Ljk4MzQzIDE0LjM1NTkgOS45MTE0MyAxNC40NzExIDkuODYxODhDMTQuNTg2MyA5LjgxMjMzIDE0LjcxMDIgOS43ODYyMiAxNC44MzU2IDkuNzg1MDdDMTQuOTYxMSA5Ljc4MzkyIDE1LjA4NTQgOS44MDc3NiAxNS4yMDE1IDkuODU1MTlDMTUuMzE3NiA5LjkwMjYyIDE1LjQyMzEgOS45NzI3IDE1LjUxMTggMTAuMDYxM0MxNS42MDA1IDEwLjE1IDE1LjY3MDcgMTAuMjU1NCAxNS43MTgyIDEwLjM3MTRDMTUuNzY1OCAxMC40ODc1IDE1Ljc4OTcgMTAuNjExOCAxNS43ODg3IDEwLjczNzJDMTUuNzg3NyAxMC44NjI2IDE1Ljc2MTcgMTAuOTg2NiAxNS43MTIyIDExLjEwMThDMTUuNjYyOCAxMS4yMTcxIDE1LjU5MDkgMTEuMzIxMyAxNS41MDA3IDExLjQwODVMMTMuODI1OSAxMy4wODQ2QzEzLjkwMDMgMTMuMzY0NSAxMy45MDk1IDEzLjY1NzkgMTMuODUyNiAxMy45NDJDMTMuNzk1OCAxNC4yMjYgMTMuNjc0NSAxNC40OTMzIDEzLjQ5ODEgMTQuNzIzMUMxMy4zMjE3IDE0Ljk1MjkgMTMuMDk0OSAxNS4xMzkxIDEyLjgzNTIgMTUuMjY3NUMxMi41NzU0IDE1LjM5NTggMTIuMjg5NyAxNS40NjI4IDEyIDE1LjQ2MzNDMTEuNzMyNyAxNS40NjEgMTEuNDY4OCAxNS40MDE5IDExLjIyNiAxNS4yOUMxMC45ODMyIDE1LjE3ODEgMTAuNzY3IDE1LjAxNTkgMTAuNTkxNiAxNC44MTQxQzEwLjQxNjIgMTQuNjEyMyAxMC4yODU3IDE0LjM3NTUgMTAuMjA4NyAxNC4xMTk1QzEwLjEzMTYgMTMuODYzNSAxMC4xMDk5IDEzLjU5NCAxMC4xNDQ4IDEzLjMyOUMxMC4xNzk4IDEzLjA2MzkgMTAuMjcwNiAxMi44MDkzIDEwLjQxMTQgMTIuNTgyQzEwLjU1MjIgMTIuMzU0NyAxMC43Mzk2IDEyLjE1OTkgMTAuOTYxMyAxMi4wMTA0QzExLjE4MyAxMS44NjEgMTEuNDMzOSAxMS43NjA0IDExLjY5NzQgMTEuNzE1MkMxMS45NjA5IDExLjY3MDEgMTIuMjMxIDExLjY4MTQgMTIuNDg5OSAxMS43NDg1WlwiIGZpbGw9XCJibGFja1wiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJkZW1vZ3JhcGhpY1wiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBtcy0zXCI+e3tkZW1vZ3JhcGhpY319IHt7ZGVtb2dyYXBoaWMgPiAxID8gJ0RlbW9ncmFwaGljcycgOiAnRGVtb2dyYXBoaWMnfX08L3NwYW4+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyIFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCIhc2hvd3ZhbHVlMVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGVmYXVsdCBidG4tb3V0bGluZSBweS0yIG14LTJcIiAoY2xpY2spPVwiY2hhbmdlc2RhdGEoKVwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByaW1hcnkgc3ZnLWljb24tMnhcIiA+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS44MzM3IDEwLjAwMDFINC4xNjY5OU00LjE2Njk5IDEwLjAwMDFMMTAuMDAwMyAxNS44MzM0TTQuMTY2OTkgMTAuMDAwMUwxMC4wMDAzIDQuMTY2NzVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9XCJtcy0zXCI+QmFjayB0byBUYWdnaW5nPC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhc2hvd3ZhbHVlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IHB5LTIgbXgtMlwiIChjbGljayk9XCJzdWJtaXRhdWRpdCgpXCIgID5TdWJtaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk00LjE2Njk5IDkuOTk5ODRIMTUuODMzN00xNS44MzM3IDkuOTk5ODRMMTAuMDAwMyA0LjE2NjVNMTUuODMzNyA5Ljk5OTg0TDEwLjAwMDMgMTUuODMzMlwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93dmFsdWVcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gcHktMiBteC0yXCIgW2Rpc2FibGVkXT1cInN1Ym1pdHRlZFwiIChjbGljayk9XCJ0YWdnaW5ndmlldygpXCI+UmV0YWcgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBzdmctaWNvbi0yeFwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNC4xNjY2NiA5Ljk5OTk2SDE1LjgzMzNNMTUuODMzMyA5Ljk5OTk2TDkuOTk5OTkgNC4xNjY2M00xNS44MzMzIDkuOTk5OTZMOS45OTk5OSAxNS44MzMzXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgXHJcbjwvZGl2PlxyXG5cclxuXHJcbjxkaXYgY2xhc3M9XCJyb3dcIj4gXHJcbiAgICA8ZGl2ICpuZ0lmPVwiYXVkaXRMb2FkaW5nXCIgY2xhc3M9XCJjYXJkIG10LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxoNSBjbGFzcz1cInRleHQtZGFyay02MDAgZnMtMyBmdy1ib2xkIHRleHQtY2VudGVyIFwiPkxvYWRpbmcgQXVkaXQgZmlsZS4uLi4uLjwvaDU+IC0tPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIhYXVkaXRMb2FkaW5nXCIgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG10LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMTAwMHB4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYXRlZ29yeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtPy5jb3VudCAhPT0wXCIgY2xhc3M9XCJtdC02XCIgbmdiQWNjb3JkaW9uSXRlbSBbY29sbGFwc2VkXT1cIiFpdGVtPy5jb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZ1wiIG5nYkFjY29yZGlvbkJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0/Lm5hbWV9fSA8c3BhbiBjbGFzcz1cInN1Yi10ZXh0IG10LTIgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHRcIj48c3ZnIGNsYXNzPVwibWUtMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTQ1MDhfMTg1ODMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuNSAxMC41SDkuNUMxMC4wNTIzIDEwLjUgMTAuNSAxMC4wNTIzIDEwLjUgOS41VjIuNUMxMC41IDEuOTQ3NzIgMTAuMDUyMyAxLjUgOS41IDEuNUgyLjVDMS45NDc3MiAxLjUgMS41IDEuOTQ3NzIgMS41IDIuNVY5LjVDMS41IDEwLjA1MjMgMS45NDc3MiAxMC41IDIuNSAxMC41Wk0yLjUgMTAuNUw4IDVMMTAuNSA3LjVNNSA0LjI1QzUgNC42NjQyMSA0LjY2NDIxIDUgNC4yNSA1QzMuODM1NzkgNSAzLjUgNC42NjQyMSAzLjUgNC4yNUMzLjUgMy44MzU3OSAzLjgzNTc5IDMuNSA0LjI1IDMuNUM0LjY2NDIxIDMuNSA1IDMuODM1NzkgNSA0LjI1WlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE0NTA4XzE4NTgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+e3tpdGVtPy5jb3VudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keSBjbGFzcz1cInB5LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLWF1dG9cIiAoZHJhZ292ZXIpPVwiYWxsb3dEcm9wKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgaXRlbVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpuZ0Zvcj1cImxldCBvYmogb2YgaXRlbT8udmFsdWVcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGRyYWdnYWJsZT1cInRydWVcIiAoZHJhZ3N0YXJ0KT1cImRyYWcoJGV2ZW50KVwiIGlkPVwie3tvYmouaW1nX2lkfX1cIiBuYW1lPVwie3tpdGVtLnR5cGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXktMyBteC0yIGltZ1wiIFtzcmNdPVwib2JqLmltZ19wYXRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG0tMCBmcy03IGZ3LWJvbGRcIj57e29iai5pbWdfbmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTZcIiBuZ2JBY2NvcmRpb25JdGVtIFtjb2xsYXBzZWRdPVwiISghanVua2NvdW50ICYmICFlbXBsb3llZWNvdW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZ1wiIG5nYkFjY29yZGlvbkJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmlxdWUgQ3VzdG9tZXIgIDxzcGFuIGNsYXNzPVwic3ViLXRleHQgbXQtMiBtcy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiPjxzdmcgY2xhc3M9XCJtZS0yXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xNTgwMF8zOTExKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjUgMTAuNVY5LjVDOC41IDguOTY5NTcgOC4yODkyOSA4LjQ2MDg2IDcuOTE0MjEgOC4wODU3OUM3LjUzOTE0IDcuNzEwNzEgNy4wMzA0MyA3LjUgNi41IDcuNUgyLjVDMS45Njk1NyA3LjUgMS40NjA4NiA3LjcxMDcxIDEuMDg1NzkgOC4wODU3OUMwLjcxMDcxNCA4LjQ2MDg2IDAuNSA4Ljk2OTU3IDAuNSA5LjVWMTAuNU0xMS41IDEwLjVWOS41QzExLjQ5OTcgOS4wNTY4NiAxMS4zNTIyIDguNjI2MzkgMTEuMDgwNyA4LjI3NjE2QzEwLjgwOTIgNy45MjU5MyAxMC40MjkxIDcuNjc1NzggMTAgNy41NjVNOCAxLjU2NUM4LjQzMDIxIDEuNjc1MTUgOC44MTE1MiAxLjkyNTM1IDkuMDgzODIgMi4yNzYxNkM5LjM1NjEyIDIuNjI2OTYgOS41MDM5MiAzLjA1ODQxIDkuNTAzOTIgMy41MDI1QzkuNTAzOTIgMy45NDY1OSA5LjM1NjEyIDQuMzc4MDQgOS4wODM4MiA0LjcyODg0QzguODExNTIgNS4wNzk2NSA4LjQzMDIxIDUuMzI5ODUgOCA1LjQ0TTYuNSAzLjVDNi41IDQuNjA0NTcgNS42MDQ1NyA1LjUgNC41IDUuNUMzLjM5NTQzIDUuNSAyLjUgNC42MDQ1NyAyLjUgMy41QzIuNSAyLjM5NTQzIDMuMzk1NDMgMS41IDQuNSAxLjVDNS42MDQ1NyAxLjUgNi41IDIuMzk1NDMgNi41IDMuNVpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4xXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xNTgwMF8zOTExXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IHt7Y3VzdG9tZXJjb3VudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keSBjbGFzcz1cInB5LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC01MDBcIiAoZHJhZ292ZXIpPVwiYWxsb3dEcm9wKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzZXRHcm91cE51bWJlcigpID09PSBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb2JqIG9mIGF1ZGl0bWFwcGluZ2RhdGE7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iaj8uY291bnQgPT09IDFcIiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaW1nIG9mIG9iaj8ubWFwcGVkaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBkcmFnZ2FibGU9XCJ0cnVlXCIgbmFtZT1cInt7b2JqLmltZ19pZH19XCIgKGRyYWdzdGFydCk9XCJkcmFnKCRldmVudClcIiAoY2xpY2spPVwidG9nZ2xlSW1hZ2UoaW1nPy5pbWdfbmFtZSApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7e2ltZy5pbWdfaWR9fVwiIGNsYXNzPVwibXktMyBteC0yIGltZ1wiIFtzcmNdPVwiaW1nLmltZ19wYXRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtLTAgZnMtNyBmdy1ib2xkXCI+e3tpbWcuaW1nX25hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwib2JqPy5kZW1vZ3JhcGhpYyAhPT0gJ2QnXCIgY2xhc3M9XCJub3RpZnktYmFkZ2UyIHctMjVweCBoLTI1cHggY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwidG9nZ2xlSW1hZ2UoaW1nPy5pbWdfbmFtZSApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJvYmo/LmRlbW9ncmFwaGljID09PSAnZCdcIiBjbGFzcz1cIm5vdGlmeS1iYWRnZVwiIChjbGljayk9XCJ0b2dnbGVJbWFnZShpbWc/LmltZ19uYW1lIClcIj48aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOjE1cHg7Y29sb3I6IzAwQTNGRlwiPjwvaT48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJtdC01XCIgKm5nRm9yPVwibGV0IG9iaiBvZiBhdWRpdG1hcHBpbmdkYXRhO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmo/LmNvdW50ID4gMVwiIGNsYXNzPVwiY2FyZC1sYWJlbCBtdC0zXCI+R3JvdXAge3sgZ2V0R3JvdXBOdW1iZXIob2JqKSB9fSA8c3BhbiBjbGFzcz1cInN1Yi10ZXh0IG10LTMgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCI+PHN2ZyBjbGFzcz1cIm1lLTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xNDUwOF8xODU4MylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuNSAxMC41SDkuNUMxMC4wNTIzIDEwLjUgMTAuNSAxMC4wNTIzIDEwLjUgOS41VjIuNUMxMC41IDEuOTQ3NzIgMTAuMDUyMyAxLjUgOS41IDEuNUgyLjVDMS45NDc3MiAxLjUgMS41IDEuOTQ3NzIgMS41IDIuNVY5LjVDMS41IDEwLjA1MjMgMS45NDc3MiAxMC41IDIuNSAxMC41Wk0yLjUgMTAuNUw4IDVMMTAuNSA3LjVNNSA0LjI1QzUgNC42NjQyMSA0LjY2NDIxIDUgNC4yNSA1QzMuODM1NzkgNSAzLjUgNC42NjQyMSAzLjUgNC4yNUMzLjUgMy44MzU3OSAzLjgzNTc5IDMuNSA0LjI1IDMuNUM0LjY2NDIxIDMuNSA1IDMuODM1NzkgNSA0LjI1WlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE0NTA4XzE4NTgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPnt7b2JqLmNvdW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cIm9iaj8uZGVtb2dyYXBoaWMgIT09ICdkJ1wiIGNsYXNzPVwia2lkLWJhZGdlIGN1cnNvci1wb2ludGVyIG1zLTMgbWUtM1wiIHN0eWxlPVwicGFkZGluZzoycHggMTAuNXB4ICFpbXBvcnRhbnRcIiAoY2xpY2spPVwidG9nZ2xlSW1hZ2Uob2JqPy5pbWdfbmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5kZW1vZ3JhcGhpYyA9PT0gJ2QnXCIgY2xhc3M9XCJraWQtYmFkZ2UgY3Vyc29yLXBvaW50ZXIgbXMtMyBtZS0zXCIgKGNsaWNrKT1cInRvZ2dsZUltYWdlKG9iaj8uaW1nX25hbWUpXCI+PGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6MTVweDtjb2xvcjojMDBBM0ZGXCI+PC9pPjwvc3Bhbj4gTWFyayBhcyBkZW1vZ3JhcGhpYyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouY291bnQgPiAxXCIgY2xhc3M9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGltZyBvZiBvYmo/Lm1hcHBlZGlkXCIgY2xhc3M9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgZHJhZ2dhYmxlPVwidHJ1ZVwiIG5hbWU9XCJ7e29iai5pbWdfaWR9fVwiIChkcmFnc3RhcnQpPVwiZHJhZygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7e2ltZy5pbWdfaWR9fVwiIGNsYXNzPVwibXktMyBteC0yIGltZ1wiIFtzcmNdPVwiaW1nLmltZ19wYXRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtLTAgZnMtNyBmdy1ib2xkXCI+e3tpbWcuaW1nX25hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWF1ZGl0TG9hZGluZ1wiIGNsYXNzPVwiY29sLW1kLTVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC01XCI+XHJcbiAgICAgICAgICAgIDwhLS0gKGNoYW5nZSk9XCJpbWFnZWFycmF5KClcIiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBoLTEwMDBweFwiIChkcm9wKT1cImRyb3Bmb3JyZXRhZygkZXZlbnQpXCIgKGRyYWdvdmVyKT1cImFsbG93RHJvcCgkZXZlbnQpXCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgZnctYm9sZCB0ZXh0LWRhcmsgbWItNVwiPkltYWdlcyBmb3IgUmV0YWdnaW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGl0ZW1cIiA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJldGFnaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgIFtzcmNdPVwiaXRlbS5pbWdfcGF0aFwiIGNsYXNzPVwibXktMiBteC00IGltZy1yZXRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgIGNsYXNzPVwidGV4dC1jZW50ZXIgbS0wIGZzLTcgZnctYm9sZFwiPnt7aXRlbS5pbWdfbmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmeS1iYWRnZTEgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVtb3ZlaW1hZ2UoaXRlbSlcIj48aSBjbGFzcz1cImZhIGZhLWNsb3NlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZToxNXB4O2NvbG9yOiMwMEEzRkZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1EcmFmdCBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBoLWF1dG8gcC0xMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBkLWdyaWQgcC0wIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL1N1Y2Nlc3N0b2FzdC5wbmdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJnZXRCYWNrXCI+PGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy9kYW5nZXItaWNvbi5zdmdcIj48L3NwYW4+ICAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWwgbXQtNVwiPkRvIHlvdSB3YW50IHRvIHN1Ym1pdCB5b3VyIGNoYW5nZXMgd2l0aG91dCBkZW1vZ3JhcGhpYz88L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZ2V0QmFja1wiIGNsYXNzPVwiY2FyZC1sYWJlbCBtdC01XCI+VW5zYXZlZCBDaGFuZ2VzPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy01MCBtZS0yIGZ3LWJvbGRcIiAoY2xpY2spPVwibW9kYWwuY2xvc2UoJ2lzRGVuaWVkJylcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgc2F2ZWJ0biB3LTUwIG1zLTJcIiAoY2xpY2spPVwibW9kYWwuY2xvc2UoJ2lzQ29uZmlybWVkJylcIj5PazwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|