vcomply-workflow-engine 3.4.37 → 3.4.39
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/esm2020/lib/log-an-issue/log-an-issue.component.mjs +5 -3
- package/esm2020/lib/workflow-services/log-issue.service.mjs +5 -3
- package/fesm2015/vcomply-workflow-engine.mjs +5 -3
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +7 -3
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -844,7 +844,9 @@ export class LogAnIssueComponent {
|
|
|
844
844
|
this.dataForEdit = issueData;
|
|
845
845
|
this.loader = false;
|
|
846
846
|
this.uiKitService.isLoader = false;
|
|
847
|
-
const issueDueDate = issueData
|
|
847
|
+
const issueDueDate = issueData?.frequency_details?.frequency_date
|
|
848
|
+
.split('-')
|
|
849
|
+
.map(Number);
|
|
848
850
|
this.logIssueForm = {
|
|
849
851
|
issueName: issueData.title ?? '',
|
|
850
852
|
evidenceRequired: issueData?.evidence?.evidence_flag ?? 0,
|
|
@@ -900,6 +902,7 @@ export class LogAnIssueComponent {
|
|
|
900
902
|
? (this.isRCPreSelected = false)
|
|
901
903
|
: (this.isRCPreSelected = true);
|
|
902
904
|
}
|
|
905
|
+
console.log('this issue field', this.logIssueForm);
|
|
903
906
|
this.setOptionalField(issueData);
|
|
904
907
|
}
|
|
905
908
|
/**
|
|
@@ -1008,7 +1011,6 @@ export class LogAnIssueComponent {
|
|
|
1008
1011
|
}
|
|
1009
1012
|
get getDateValidationMessage() {
|
|
1010
1013
|
return 'Please set a future date.';
|
|
1011
|
-
this.snackBar.show('Please set a future date.', 'alert');
|
|
1012
1014
|
}
|
|
1013
1015
|
}
|
|
1014
1016
|
LogAnIssueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LogAnIssueComponent, deps: [{ token: i1.LogIssueService }, { token: i2.AuthService }, { token: i3.UiKitService }, { token: i4.SnackBarService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -1044,4 +1046,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
1044
1046
|
type: ViewChild,
|
|
1045
1047
|
args: ['datePicker']
|
|
1046
1048
|
}] } });
|
|
1047
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuLWlzc3VlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2xvZy1hbi1pc3N1ZS9sb2ctYW4taXNzdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR25DLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUVuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU0zRCxNQUFNLE9BQU8sbUJBQW1CO0lBOEw5QixZQUNVLFVBQTJCLEVBQzNCLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLFFBQXlCLEVBQ3pCLGtCQUFxQztRQUpyQyxlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBaE10QyxzQkFBaUIsR0FBRztZQUMzQiw0QkFBNEI7WUFDNUIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLElBQUksRUFBRSxJQUFJO1lBQ1Ysc0JBQXNCLEVBQUUsRUFBRTtTQUMzQixDQUFDO1FBQ08saUJBQVksR0FBRztZQUN0QixXQUFXLEVBQUUs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QUNGO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSx3QkFBd0I7UUFDMUIsT0FBTywyQkFBMkIsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDOztnSEFycUNVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHNqQkMxQmhDLDZrckRBdTlDQTsyRkQ3N0NhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxrQkFBa0I7eU5BS25CLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUVrQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ0lzc3VlU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2xvZy1pc3N1ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb25maWcgfSBmcm9tICd2Y29tcGx5LWVkaXRvcic7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5pbXBvcnQgeyBJc3N1ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lzc3VlLWRhdGEnO1xyXG5pbXBvcnQgeyBERUZBVUxUX1RJTUUgfSBmcm9tICcuLi9jb25zdGFudHMvdGltZS5jb25zdGFudHMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1sb2ctYW4taXNzdWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2ctYW4taXNzdWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQubGVzcycsICcuLi9mb3Jtcy5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dBbklzc3VlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIG9wZW5lZEZyb20hOiBhbnk7XHJcbiAgQElucHV0KCkgaXNzdWVJZCE6IGFueTtcclxuICBASW5wdXQoKSByZXBvbnNpYmlsaXR5RGF0YSA9IHtcclxuICAgIC8vIG9ubHkgdXNlZCBieSBsb2cgYW4gaXNzdWVcclxuICAgIHJlc3BvbnNpYmlsaXR5SWQ6IG51bGwsXHJcbiAgICByZXNwb25zaWJpbGl0eU5hbWU6ICcnLFxyXG4gICAgcmNJZDogbnVsbCxcclxuICAgIHJlc3BvbnNpYmlsaXR5T2JqZWN0SWQ6ICcnLFxyXG4gIH07XHJcbiAgQElucHV0KCkgaXNzdWVEZXRhaWxzID0ge1xyXG4gICAgYXVkaXRQbGFuSWQ6IG51bGwsXHJcbiAgICBhdWRpdFBsYW5OYW1lOiAnJyxcclxuICAgIHJjSWQ6IG51bGwsXHJcbiAgICBhdWRpdE9iaklkOiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KCkgbW9kZSA9ICdDUkVBVEUnO1xyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IElzc3VlQ29uZmlndXJhdGlvbjtcclxuICBASW5wdXQoKSByZXNwb25zaWJpbGl0aWVzRGF0YTogYW55O1xyXG4gIEBPdXRwdXQoKSBwaWNrZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwb3B1bGF0ZU9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbW9kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY3VycmVudFVzZXIhOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIHNjcm9sbFRvQm90dG9tID0gZmFsc2U7XHJcbiAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWREYXRlOiBhbnk7XHJcbiAgc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gIGxvYWRlciA9IGZhbHNlO1xyXG4gIHNtaWxleU1lc3NhZ2UgPSBgVGhlIGlzc3VlIGhhcyBiZWVuIHJlcG9ydGVkLmA7XHJcbiAgaXNzdWVEYXRhITogYW55O1xyXG4gIGlzUmlza0NvbnRyb2xMb2FkaW5nID0gZmFsc2U7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ1JlcG9ydCBNb3JlIElzc3VlcycsIGNsYXNzOiAnd2hpdGUtYnRuJywgaWQ6ICdhZGRNb3JlJyB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBJc3N1ZScsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogJ3ZpZXdJc3N1ZScgfSxcclxuICBdO1xyXG4gIGNyZWF0ZWREYXRhITogYW55O1xyXG4gIGRlc2NyaXB0aW9uOiBFZGl0b3JDb25maWcgPSB7XHJcbiAgICAvLyBtb2RlOiAncHJpbWUnLFxyXG4gICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgbGluazogdHJ1ZSxcclxuICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpcHRpb24nLFxyXG4gIH07XHJcblxyXG4gIGRhdGVDb25maWcgPSB7XHJcbiAgICBkaXNhYmxlS2V5cHJlc3M6IHRydWUsXHJcbiAgICBmb3JtYXQ6ICdERCBNTU0gWVlZWScsXHJcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWUsXHJcbiAgICBvcGVuT25DbGljazogZmFsc2UsXHJcbiAgICBvcGVuT25Gb2N1czogZmFsc2UsXHJcbiAgICBtaW46IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXHJcbiAgfTtcclxuICBsaXN0RGF0YTogYW55ID0ge1xyXG4gICAgaXNzdWVUeXBlTGlzdDogW10sXHJcbiAgICB1c2VyTGlzdDogW10sXHJcbiAgICBjYXRlZ29yeUxpc3Q6IFtdLFxyXG4gICAgcmNMaXN0OiBbXSxcclxuICAgIGxpbmthZ2VMaXN0OiBbXSxcclxuICB9O1xyXG4gIERFRkFVTFRfVElNRSA9IERFRkFVTFRfVElNRTtcclxuXHJcbiAgZ2V0IG1lc3NhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnRURJVCdcclxuICAgICAgPyAnIFRoZSBJc3N1ZSBoYXMgYmVlbiB1cGRhdGVkLidcclxuICAgICAgOiB0aGlzLnNtaWxleU1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICBsb2dJc3N1ZUZvcm06IGFueSA9IHtcclxuICAgIGlzc3VlTmFtZTogJycsXHJcbiAgICBldmlkZW5jZVJlcXVpcmVkOiAwLFxyXG4gICAgaXNzdWVEZXNjcmlwdGlvbjogJycsXHJcbiAgICBpc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOiBbXSxcclxuICAgIGlzc3VlQ2F0ZWdvcnk6IFtdLFxyXG4gICAgaXNzdWVDdXN0b21UYWc6IFtdLFxyXG4gICAgaXNzdWVSQzogW10sXHJcbiAgICBpc3N1ZVR5cGU6ICdpc3N1ZScsXHJcbiAgICBpc0Fzc2lnblRvTXlzZWxmOiBmYWxzZSxcclxuICAgIGVudHJ1c3RUbzogW10sXHJcbiAgICBpc3N1ZUR1ZURhdGU6ICcnLFxyXG4gICAgaXNzdWVEdWVUaW1lOiBERUZBVUxUX1RJTUUsXHJcbiAgICBleGNlcHRpb25UeXBlOiAxLFxyXG4gICAgaXNzdWVSaXNrUmF0aW5nOiAxLFxyXG4gICAgaXNzdWVQcmlvcml0eTogMSxcclxuICAgIGlzc3VlUmVjb21tZW5kYXRpb246ICcnLFxyXG4gICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IFtdLFxyXG4gICAgaXNzdWVBc3NvY2lhdGVkUmlzazogJycsXHJcbiAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICBpc3N1ZUNDVXNlcnM6IFtdLFxyXG4gICAgZmFpbHVyZUNDVXNlcnM6IFtdLFxyXG4gICAgbGlua2VkQ29udHJvbFJpc2s6IFtdLFxyXG4gICAgbGlua2FnZVR5cGU6ICdSSVNLJyxcclxuICB9O1xyXG4gIEF0dGFjaG1lbnRUcmFjazogYW55ID0gW1tdLCBbXSwgW11dO1xyXG4gIGFkZGl0aW9uYWxPcHRpb25TdGF0dXM6IGFueSA9IHtcclxuICAgIEVYQ0VQVElPTl9UWVBFOiBmYWxzZSxcclxuICAgIEVWSURFTkNFOiBmYWxzZSxcclxuICAgIFBSSU9SSVRZOiBmYWxzZSxcclxuICAgIElTU1VFX1RZUEU6IGZhbHNlLFxyXG4gICAgQVNTT0NJQVRFRF9SSVNLUzogZmFsc2UsXHJcbiAgICBPVkVSU0lHSFQ6IGZhbHNlLFxyXG4gIH07XHJcbiAgcmlza0NsYXNzaWZpY2F0aW9uID0gW1xyXG4gICAgeyBuYW1lOiAnTE9XJywgdmFsdWU6IDEsIGNsYXNzOiAnbG93JyB9LFxyXG4gICAgeyBuYW1lOiAnTE9XLU1lZGl1bScsIHZhbHVlOiAyLCBjbGFzczogJ2xvdy1tZWQnIH0sXHJcbiAgICB7IG5hbWU6ICdNZWRpdW0tSGlnaCcsIHZhbHVlOiAzLCBjbGFzczogJ21lZC1oaWdoJyB9LFxyXG4gICAgeyBuYW1lOiAnSGlnaCcsIHZhbHVlOiA0LCBjbGFzczogJ2hpZ2gnIH0sXHJcbiAgXTtcclxuICByaXNrUHJvcml0eSA9IFtcclxuICAgIHsgbmFtZTogJ0xPVycsIHZhbHVlOiAxLCBjbGFzczogJ2xvdycgfSxcclxuICAgIHsgbmFtZTogJ01FRElVTScsIHZhbHVlOiAyLCBjbGFzczogJ2xvdy1tZWQnIH0sXHJcbiAgICB7IG5hbWU6ICdISUdIJywgdmFsdWU6IDMsIGNsYXNzOiAnaGlnaCcgfSxcclxuICBdO1xyXG5cclxuICBzaWRlU2VsZWN0b3JFbGVtZW50czogYW55ID0gW1xyXG4gICAgJ0lTU1VFX0NBVEVHT1JZJyxcclxuICAgICdJU1NVRV9SQycsXHJcbiAgICAnSVNTVUVfV0hPJyxcclxuICAgICdJU1NVRV9UWVBFJyxcclxuICAgICdJU1NVRV9DQycsXHJcbiAgICAnSVNTVUVfRkNDJyxcclxuICAgICdJU1NVRV9DT05UUk9MX1JJU0snLFxyXG4gIF07XHJcbiAgc2VsZWN0b3JDb25maWcgPSB7XHJcbiAgICBJU1NVRV9DQVRHT1JZOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgSXNzdWUgQ2F0ZWdvcnknLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ0NhdGVnb3J5IHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggSXNzdWUgQ2F0ZWdvcnknLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gQ2F0ZWdvcmllcyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfUkM6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1Jlc3BvbnNpYmlsaXR5IGNlbnRlciBzZWxlY3RlZCcsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFBsdXJhbDogJ1Jlc3BvbnNpYmlsaXR5IGNlbnRlcnMgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gUmVzcG9uc2liaWxpdHkgQ2VudGVycyBGb3VuZCcsXHJcbiAgICAgIHNlbGVjdEFsbEVuYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfV0hPOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgVXNlcicsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnVXNlciBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFVzZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gVXNlcnMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX1RZUEU6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBJc3N1ZSBUeXBlJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdJc3N1ZSBUeXBlIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggSXNzdWUgVHlwZScsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBJc3N1ZSBUeXBlcyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfQ0M6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCB1c2VyKHMpJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdVc2VyIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggVXNlcicsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIHNlbGVjdEFsbEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBVc2VycyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfRkNDOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgdXNlcihzKScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnVXNlciBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFVzZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBzZWxlY3RBbGxFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gVXNlcnMgRm91bmQnLFxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBmaWVsZHNXaXRoRXJyb3I6IGFueSA9IFtdO1xyXG4gIC8vIGhpZGRlbkxpc3Q6IGFueVtdID0gW107XHJcblxyXG4gIGFjdGl2ZUZpZWxkID0gJyc7XHJcbiAgYWN0aXZlU2VsZWN0b3IgPSAnJztcclxuICBsaXN0TG9hZGluZ1N0YXR1czogYW55ID0gW107XHJcbiAgY3VycmVudFRpbWUgPSAnJztcclxuICAvKipcclxuICAgKiBpc1JDUHJlU2VsZWN0ZWQsaXNSQ1Zpc2libGUgYXJlIHZhcmlhYmxlIHVzZWQgdG8gc2V0IHRoZSB2aXNpYmlsaXR5IG9mIHJjIGZpZWxkIGFuZCBlZGl0IGJ1dHRvbiBpbiBjZXJ0YWluIGNvbmRpdGlvbnNcclxuICAgKi9cclxuICBpc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBpc1JDVmlzaWJsZSA9IHRydWU7XHJcbiAgaXNSQ01hbmRhdG9yeSA9IGZhbHNlO1xyXG4gIGRhdGFGb3JFZGl0ITogYW55O1xyXG4gIGlzUmlza0NvbnRyb2xWaXNpYmxlID0gZmFsc2U7XHJcbiAgaXNGdXR1cmVEYXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbG9nU2VydmljZTogTG9nSXNzdWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVpS2l0U2VydmljZTogVWlLaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlcmN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuc2V0VXNlckRldGFpbHMoKTtcclxuICAgIHRoaXMuZmV0Y2hJc3N1ZVR5cGVzKCk7XHJcbiAgICB0aGlzLmZldGNoVXNlckxpc3QoKTtcclxuICAgIHRoaXMuZmV0Y2hDYXRlZ29yeUxpc3QoKTtcclxuICAgIHRoaXMuZmV0Y2hSQ0xpc3QoKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlcmN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5mZXRjaENvbnRyb2xSaXNrcygpO1xyXG4gICAgdGhpcy5kZWNpZGVSQ21hbmRhdG9yeSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5nZXRDdXJyZW50VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgZGVjaWRlUkNtYW5kYXRvcnkoKSB7XHJcbiAgICB0aGlzLmlzUkNNYW5kYXRvcnkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldEN1cnJlbnRUaW1lKCkge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICB9XHJcbiAgZ2V0Q3VycmVudFRpbWUoKSB7XHJcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKFxyXG4gICAgICB0b2RheS5nZXREYXRlKCkgPT09IG5ldyBEYXRlKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSkuZ2V0RGF0ZSgpXHJcbiAgICApIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRvZGF5LmdldEhvdXJzKCkgPCAxMiAmJlxyXG4gICAgICAgIHRvZGF5LmdldE1pbnV0ZXMoKSA8IDU5ICYmXHJcbiAgICAgICAgdG9kYXkuZ2V0U2Vjb25kcygpIDwgNTlcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke1xyXG4gICAgICAgICAgdG9kYXkuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgdG9kYXkuZ2V0SG91cnMoKSA6IHRvZGF5LmdldEhvdXJzKClcclxuICAgICAgICB9OiR7XHJcbiAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArIHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgIH0gYW1gO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBgJHtcclxuICAgICAgICAgIHRvZGF5LmdldEhvdXJzKCkgLSAxMiA8IDEwXHJcbiAgICAgICAgICAgID8gJzAnICsgKHRvZGF5LmdldEhvdXJzKCkgLSAxMilcclxuICAgICAgICAgICAgOiB0b2RheS5nZXRIb3VycygpIC0gMTJcclxuICAgICAgICB9OiR7XHJcbiAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArIHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgIH0gcG1gO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJzAwOjAwIGFtJztcclxuICAgIH1cclxuICB9XHJcbiAgc2V0VXNlckRldGFpbHMoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyRGV0YWlscygpLnVzZXI7XHJcbiAgfVxyXG4gIGZldGNoSXNzdWVUeXBlcygpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMF0gPSBmYWxzZTtcclxuICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0SXNzdWVUeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1swXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5pc3N1ZVR5cGVMaXN0ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1swXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgZmV0Y2hVc2VyTGlzdCgpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMV0gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRPcmdQZW9wbGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMV0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QgPSByZXM7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzFdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hDYXRlZ29yeUxpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0SXNzdWVDYXRlZ29yaWVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCA9IHJlcz8uZGF0YTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCA9IHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICAgIChlOiBhbnkpID0+IGU/LmNhdGVnb3J5X25hbWUgIT09ICdVbmNhdGVnb3JpemVkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hSQ0xpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzNdID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzNdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLnJjTGlzdCA9IHJlcztcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRSQygpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbM10gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZFJDKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yY0lkICYmXHJcbiAgICAgIHRoaXMub3BlbmVkRnJvbSA9PT0gJ0NPTVBMSUFOQ0VfV09SS1JPT00nXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQyA9IHRoaXMucmVwb25zaWJpbGl0eURhdGEucmNJZFxyXG4gICAgICAgID8gdGhpcy5saXN0RGF0YS5yY0xpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAoZTogYW55KSA9PiBlLnJjX2lkID09PSB0aGlzLnJlcG9uc2liaWxpdHlEYXRhLnJjSWRcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy5pc3N1ZURldGFpbHM/LnJjSWQgJiZcclxuICAgICAgW1xyXG4gICAgICAgICdBVURJVF9XT1JLUk9PTScsXHJcbiAgICAgICAgJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLFxyXG4gICAgICAgICdFWEVDVVRFX0FVRElUX1BMQU4nLFxyXG4gICAgICBdLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDID0gdGhpcy5pc3N1ZURldGFpbHM/LnJjSWRcclxuICAgICAgICA/IHRoaXMubGlzdERhdGEucmNMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5yY19pZCA9PT0gdGhpcy5pc3N1ZURldGFpbHM/LnJjSWRcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgICEodGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmNJZCB8fCB0aGlzLmlzc3VlRGV0YWlscz8ucmNJZCkgJiZcclxuICAgICAgW1xyXG4gICAgICAgICdDT01QTElBTkNFX1dPUktST09NJyxcclxuICAgICAgICAnQVVESVRfV09SS1JPT00nLFxyXG4gICAgICAgICdWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJyxcclxuICAgICAgICAnRVhFQ1VURV9BVURJVF9QTEFOJyxcclxuICAgICAgXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1JDVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc1JDVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRyb2xSaXNrcygpIHtcclxuICAgIGlmIChcclxuICAgICAgWydWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJywgJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKFxyXG4gICAgICAgIHRoaXMub3BlbmVkRnJvbVxyXG4gICAgICApXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5nZXRMaW5rYWdlKFxyXG4gICAgICAgIHRoaXMuaXNzdWVEZXRhaWxzPy5hdWRpdE9iaklkLFxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmthZ2VUeXBlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRMaW5rYWdlKGF1ZGl0SWQ6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlzUmlza0NvbnRyb2xMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRDb250cm9sUmlzayhhdWRpdElkLCB0eXBlKT8uc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCA9IFsuLi50aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0LCAuLi5kYXRhXTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0ID0gdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAodGhpbmc6IGFueSwgaW5kZXg6IGFueSwgc2VsZjogYW55KSA9PlxyXG4gICAgICAgICAgICBpbmRleCA9PT1cclxuICAgICAgICAgICAgc2VsZi5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgICAgKHQ6IGFueSkgPT5cclxuICAgICAgICAgICAgICAgIHQuaXRlbUlkID09PSB0aGluZy5pdGVtSWQgJiYgdC5pdGVtVHlwZSA9PT0gdGhpbmcuaXRlbVR5cGVcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5pc1Jpc2tDb250cm9sTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNSaXNrQ29udHJvbExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVGhpcyBmdW5jdGlvaiBjaGVjayB3ZWF0aGVyIGFsbCB0aGUgcmVxdWlyZWQgbGlzdHMgYXJlIGxvYWRlZFxyXG4gICAqIElmIGxvYWRlZCBoaWRlcyB0aGUgbG9hZGVyIG90aGVyd2lzZSBzaG93cyB0aGUgbG9hZGVyLlxyXG4gICAqL1xyXG4gIGNoZWNrQWxsTGlzdExvYWRlZCgpIHtcclxuICAgIGlmICh0aGlzLmxpc3RMb2FkaW5nU3RhdHVzLmluY2x1ZGVzKGZhbHNlKSkge1xyXG4gICAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xyXG4gICAgICAgIHRoaXMuZmV0Y2hJc3N1ZURldGFpbHMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGVycm9yIGZyb20gdGhlIGZpZWxkcyB3aXRoIGVycm9yIHRvIHJlbW92ZSB0aGUgZXJyb3IgbWVzc2FnIGZyb20gdGhlIFVJXHJcbiAgICogQHBhcmFtIGVycm9yS2V5IGVycm9yIElkZW50aWZpZXIgdXNlZCB0byBzaG93IGVycm9yIGluIHNwZWNpZmljIGZpZWxkcy5cclxuICAgKi9cclxuICByZW1vdmVFcnJvcihlcnJvcktleTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmllbGRzV2l0aEVycm9yLmluZGV4T2YoZXJyb3JLZXkpO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5maWVsZHNXaXRoRXJyb3Iuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICB9XHJcbiAgb3BlbkRhdGVQaWNrZXIoKSB7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXIuYXBpLm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9EQVRFX1RJTUUnLCAnSVNTVUVfREFURV9USU1FJyk7XHJcbiAgfVxyXG4gIGNsb3NlRGF0ZVBpY2tlcihldnQ6IGFueSkge1xyXG4gICAgaWYgKCFldnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2dD8uZGF0ZT8uX2QpIHtcclxuICAgICAgbGV0IG1vbnRoQXJyYXkgPSBbXHJcbiAgICAgICAgJ0phbicsXHJcbiAgICAgICAgJ0ZlYicsXHJcbiAgICAgICAgJ01hcicsXHJcbiAgICAgICAgJ0FwcicsXHJcbiAgICAgICAgJ0p1bicsXHJcbiAgICAgICAgJ0p1bCcsXHJcbiAgICAgICAgJ0F1ZycsXHJcbiAgICAgICAgJ1NlcCcsXHJcbiAgICAgICAgJ09jdCcsXHJcbiAgICAgICAgJ05vdicsXHJcbiAgICAgICAgJ0RlYycsXHJcbiAgICAgIF07XHJcbiAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IG5ldyBEYXRlKGV2dD8uZGF0ZT8uX2QpLmdldERhdGUoKTtcclxuICAgICAgY29uc3QgbW9udGhWYWx1ZSA9IG1vbnRoQXJyYXlbbmV3IERhdGUoZXZ0Py5kYXRlPy5fZCkuZ2V0TW9udGgoKV07XHJcbiAgICAgIGNvbnN0IHllYXJWYWx1ZSA9IG5ldyBEYXRlKGV2dD8uZGF0ZT8uX2QpLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSBgJHtkYXRlVmFsdWV9ICR7bW9udGhWYWx1ZX0gJHt5ZWFyVmFsdWV9YDtcclxuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRGF0ZSh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWUsIGV2dD8uZGF0ZT8uX2QpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoZXZ0Py5kYXRlPy5fZCkge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUgPSBldnQ/LmRhdGU/Ll9kO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlUGlja2VyLmFwaS5jbG9zZSgpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCcnLCAnJyk7XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKGFjdGl2ZUZpZWxkOiBzdHJpbmcsIGFjdGl2ZVNlbGVjdG9yPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFjdGl2ZUZpZWxkID0gYWN0aXZlRmllbGQ7XHJcbiAgICBhY3RpdmVTZWxlY3RvclxyXG4gICAgICA/ICh0aGlzLmFjdGl2ZVNlbGVjdG9yID0gYWN0aXZlU2VsZWN0b3IpXHJcbiAgICAgIDogKHRoaXMuYWN0aXZlU2VsZWN0b3IgPSAnJyk7XHJcbiAgICBjb25zdCBzbGlkZXJUeXBlID0gW1xyXG4gICAgICAnSVNTVUVfUkMnLFxyXG4gICAgICAnSVNTVUVfQ0FURUdPUlknLFxyXG4gICAgICAnSVNTVUVfVFlQRScsXHJcbiAgICAgICdJU1NVRV9DQycsXHJcbiAgICAgICdJU1NVRV9GQ0MnLFxyXG4gICAgICAnSVNTVUVfV0hPJyxcclxuICAgICAgJ0lTU1VFX0NPTlRST0xfUklTSycsXHJcbiAgICBdO1xyXG4gICAgaWYgKHNsaWRlclR5cGUuaW5jbHVkZXMoYWN0aXZlRmllbGQpKSB7XHJcbiAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmllbGREZXNlbGVjdG9yKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5hY3RpdmVTZWxlY3RvciA9ICcnO1xyXG4gICAgdGhpcy5hY3RpdmVGaWVsZCA9ICcnO1xyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0b3JBY3Rpb24oZXZ0OiBhbnksIHR5cGU6IGFueSkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NBVEVHT1JZJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ2F0ZWdvcnkgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0LFxyXG4gICAgICAgICAgJ2NhdGVnb3J5X2lkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgaWYgKGV2dD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVFcnJvcignaXNzdWVDYXRlZ29yeScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmN1c3RvbV90YWdzPy5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbnN0IHRhZzogYW55ID0gW107XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY3VzdG9tX3RhZ3MuZm9yRWFjaChcclxuICAgICAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRhZy5wdXNoKHsgbmFtZTogZWxlbWVudCwgdmFsdWU6ICcnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWcgPSB0YWc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIC8vW1wiaXNzdWVOYW1lXCIsIFwiaXNzdWVDYXRlZ29yeVwiLCBcImlzc3VlUkNcIiwgXCJlbnRydXN0VG9cIiwgXCJpc3N1ZUR1ZURhdGVcIiwgXCJpc3N1ZVJlY29tbWVuZGF0aW9uXCJdXHJcbiAgICAgIGNhc2UgJ0lTU1VFX1JDJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEucmNMaXN0LFxyXG4gICAgICAgICAgJ3JjX2lkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgaWYgKGV2dD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVFcnJvcignaXNzdWVSQycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9XSE8nOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LFxyXG4gICAgICAgICAgJ2VtcGxveWVlX2lkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvWzBdPy5teV9tZW1iZXJfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzQXNzaWduVG9NeXNlbGYgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc0Fzc2lnblRvTXlzZWxmID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGlmIChldnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2VudHJ1c3RUbycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9UWVBFJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlVHlwZSA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS5pc3N1ZVR5cGVMaXN0LFxyXG4gICAgICAgICAgJ2lzc3VlX2lkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfQ0MnOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LFxyXG4gICAgICAgICAgJ2VtcGxveWVlX2VtYWlsJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfRkNDJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmZhaWx1cmVDQ1VzZXJzID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LFxyXG4gICAgICAgICAgJ2VtcGxveWVlX2VtYWlsJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NPTlRST0xfUklTSyc6XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2VkQ29udHJvbFJpc2sgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEubGlua2FnZUxpc3QsXHJcbiAgICAgICAgICAnaXRlbUlkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2FnZVR5cGUgPVxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtVHlwZTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUl0ZW0odHlwZTogYW55LCBlbGVtZW50OiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9DQVRFR09SWSc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5LmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uY2F0ZWdvcnlfaWQgPT09IGVsZW1lbnQuY2F0ZWdvcnlfaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5LnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9SQyc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0ucmNfaWQgPT09IGVsZW1lbnQucmNfaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9XSE8nOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uZW1wbG95ZWVfaWQgPT09IGVsZW1lbnQuZW1wbG95ZWVfaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8uc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzQXNzaWduVG9NeXNlbGYgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9UWVBFJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlVHlwZS5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmlzc3VlX2lkID09PSBlbGVtZW50Lmlzc3VlX2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVUeXBlLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9DQyc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNDVXNlcnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5lbXBsb3llZV9lbWFpbCA9PT0gZWxlbWVudC5lbXBsb3llZV9lbWFpbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2Vycy5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfRkNDJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmZhaWx1cmVDQ1VzZXJzLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uZW1wbG95ZWVfZW1haWwgPT09IGVsZW1lbnQuZW1wbG95ZWVfZW1haWxcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2Vycy5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfQ09OVFJPTF9SSVNLJzpcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rZWRDb250cm9sUmlzay5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLml0ZW1JZCA9PT0gZWxlbWVudC5pdGVtSWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rZWRDb250cm9sUmlzay5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFzc2lnbk15c2VsZihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnJlbW92ZUVycm9yKCdlbnRydXN0VG8nKTtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUbyA9IFtdO1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUbyA9IHRoaXMubGlzdERhdGEudXNlckxpc3QuZmlsdGVyKFxyXG4gICAgICAgIChlbXBsaXN0OiBhbnkpID0+IGVtcGxpc3QubXlfbWVtYmVyX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyLmlkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldEV4Y2VwdGlvbih0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmV4Y2VwdGlvblR5cGUgPSB0eXBlO1xyXG4gIH1cclxuICBzZXRFdmlkZW5jZSh0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmV2aWRlbmNlUmVxdWlyZWQgPSB0eXBlO1xyXG4gIH1cclxuICBzZXRJc3N1ZVR5cGUodHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUgPSB0eXBlO1xyXG4gIH1cclxuXHJcbiAgYWRkTW9yZUluZm8oZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzW2V2ZW50LmNvZGVdID0gZXZlbnQuY2hlY2tlZDtcclxuICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaWRUb0FycmF5KHNlbGVjdGVkSXRlbXM6IGFueSwgbGlzdEl0ZW1zOiBhbnksIGZpbHRlcmtleTogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IHNlbGVjdGVkSXRlbXM7XHJcbiAgICBjb25zdCBsaXN0ID0gbGlzdEl0ZW1zO1xyXG4gICAgY29uc3Qga2V5ID0gZmlsdGVya2V5O1xyXG4gICAgY29uc3QgeCA9IGxpc3QuZmlsdGVyKChlbDogYW55KSA9PiBzZWxlY3RlZC5pbmNsdWRlcyhlbFtrZXldKSk7XHJcbiAgICByZXR1cm4geDtcclxuICB9XHJcbiAgLy8vQ29kZSBiZXR3ZWVuIDUwMyB0byA2MDggY2FuIGJlIG9wdGltaXplZCB0byByZW1vdmUgZHVwbGljYXRpb25cclxuICBzZWxlY3RGaWxlKHR5cGU6IHN0cmluZywgZmlsZXM6IGFueSkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0RFU0NSSVBUSU9OJzoge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGZpbGVzLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGVzW2ldLmZpbGUubmFtZSA/PyAnJztcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrWzBdLnB1c2gobmFtZSk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZXNbaV0uZmlsZSwgdHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ1JFQ09NTUVOREVEX0FDVElPTlMnOiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbMV0ucHVzaChuYW1lKTtcclxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlc1tpXS5maWxlLCB0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnQVNTT0NJQVRFRF9SSVNLUyc6IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBmaWxlcy5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlc1tpXS5maWxlLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1syXS5wdXNoKG5hbWUpO1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGVzW2ldLmZpbGUsIHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBsb2FkRmlsZShmaWxlOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgbGV0IHRyYWNrSW5kZXggPSAwO1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0RFU0NSSVBUSU9OJzoge1xyXG4gICAgICAgIHRyYWNrSW5kZXggPSAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ1JFQ09NTUVOREVEX0FDVElPTlMnOiB7XHJcbiAgICAgICAgdHJhY2tJbmRleCA9IDE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnQVNTT0NJQVRFRF9SSVNLUyc6IHtcclxuICAgICAgICB0cmFja0luZGV4ID0gMjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuICAgIGNvbnN0IGRlc3RpbmF0aW9uU3RyaW5nID0gdGhpcy5hdXRoU2VydmljZS5nZXRPcmdhbml6YXRpb25JZCgpLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UudXBsb2FkRmlsZXMoZm9ybURhdGEsIGRlc3RpbmF0aW9uU3RyaW5nICsgJy8nKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uaW5kZXhPZihmaWxlPy5uYW1lKTtcclxuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1t0cmFja0luZGV4XS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cy5wdXNoKHJlcyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2FzZSAnUkVDT01NRU5ERURfQUNUSU9OUyc6IHtcclxuICAgICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHMucHVzaChyZXMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzLnB1c2gocmVzKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuQXR0YWNobWVudFRyYWNrW3RyYWNrSW5kZXhdLmluZGV4T2YoZmlsZS5uYW1lKTtcclxuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1t0cmFja0luZGV4XS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZpbGUoZmlsZTogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCBmaWxlSW5kZXggPSAtMTtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICBmaWxlSW5kZXggPVxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cz8uZmluZEluZGV4KFxyXG4gICAgICAgICAgICAoY3VycmVudEZpbGVzOiBhbnkpID0+IGN1cnJlbnRGaWxlcy5vcmdfZmlsZSA9PT0gZmlsZS5vcmdfZmlsZVxyXG4gICAgICAgICAgKSA/PyAtMTtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzPy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgIGZpbGVJbmRleCA9XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50cz8uZmluZEluZGV4KFxyXG4gICAgICAgICAgICAoY3VycmVudEZpbGVzOiBhbnkpID0+IGN1cnJlbnRGaWxlcy5vcmdfZmlsZSA9PT0gZmlsZS5vcmdfZmlsZVxyXG4gICAgICAgICAgKSA/PyAtMTtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50cz8uc3BsaWNlKGZpbGVJbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnQVNTT0NJQVRFRF9SSVNLUyc6IHtcclxuICAgICAgICBmaWxlSW5kZXggPVxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGN1cnJlbnRGaWxlczogYW55KSA9PiBjdXJyZW50RmlsZXMub3JnX2ZpbGUgPT09IGZpbGUub3JnX2ZpbGVcclxuICAgICAgICAgICkgPz8gLTE7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM/LnNwbGljZShmaWxlSW5kZXgsIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRJc3N1ZSgpIHtcclxuICAgIGNvbnN0IGZvcm0gPSBjbG9uZURlZXAodGhpcy5sb2dJc3N1ZUZvcm0pO1xyXG4gICAgaWYgKGZvcm0uaXNBc3NpZ25Ub015c2VsZikge1xyXG4gICAgICBmb3JtLmVudHJ1c3RUbyA9IHRoaXMubGlzdERhdGEudXNlckxpc3QuZmlsdGVyKFxyXG4gICAgICAgIChlbXBsaXN0OiBhbnkpID0+IGVtcGxpc3QubXlfbWVtYmVyX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyLmlkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWVsZHNXaXRoRXJyb3IgPSBbXTtcclxuICAgIHRoaXMuZmllbGRzV2l0aEVycm9yID0gdGhpcy5sb2dTZXJ2aWNlLnZhbGlkYXRlKFxyXG4gICAgICBmb3JtLFxyXG4gICAgICB0aGlzLm9wZW5lZEZyb20sXHJcbiAgICAgIHRoaXMuaXNSQ01hbmRhdG9yeVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLmZpZWxkc1dpdGhFcnJvci5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IFBBWUxPQUQgPSB0aGlzLmxvZ1NlcnZpY2UucGF5bG9hZEJ1aWxkZXIoXHJcbiAgICAgIGZvcm0sXHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1xyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdDUkVBVEUnKSB7XHJcbiAgICAgIFBBWUxPQUQubGlua2FnZV9vYmplY3QgPSB7XHJcbiAgICAgICAgc291cmNlOiB0aGlzLm9wZW5lZEZyb20sXHJcbiAgICAgICAgdHlwZTogJycsXHJcbiAgICAgICAgdHlwZV9pZDogMCxcclxuICAgICAgICBzb3VyY2VfaWQ6IDAsXHJcbiAgICAgICAgc291cmNlX29iamVjdF9pZDogJycsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLm9wZW5lZEZyb20gPT09ICdDT01QTElBTkNFX1dPUktST09NJyAmJlxyXG4gICAgICAgIHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5SWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgUEFZTE9BRC5saW5rYWdlX29iamVjdCA9IHtcclxuICAgICAgICAgIHNvdXJjZV9pZDogdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlJZCxcclxuICAgICAgICAgIHR5cGU6ICcnLFxyXG4gICAgICAgICAgdHlwZV9pZDogMCxcclxuICAgICAgICAgIHNvdXJjZTogdGhpcy5vcGVuZWRGcm9tLFxyXG4gICAgICAgICAgc291cmNlX29iamVjdF9pZDogdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlPYmplY3RJZCxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICBbJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCAnRVhFQ1VURV9BVURJVF9QTEFOJ10uaW5jbHVkZXMoXHJcbiAgICAgICAgICB0aGlzLm9wZW5lZEZyb21cclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rYWdlVHlwZSAmJlxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrLmxlbmd0aCA+IDBcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgWydSSVNLJywgJ1JFU1BPTlNJQklMSVRZJ10uaW5jbHVkZXModGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmthZ2VUeXBlKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIFBBWUxPQUQubGlua2FnZV9vYmplY3Quc291cmNlX2lkID1cclxuICAgICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1JZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIFtcclxuICAgICAgICAgICdBVURJVF9XT1JLUk9PTScsXHJcbiAgICAgICAgICAnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsXHJcbiAgICAgICAgICAnRVhFQ1VURV9BVURJVF9QTEFOJyxcclxuICAgICAgICBdLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNzdWVEZXRhaWxzLmF1ZGl0UGxhbklkKSB7XHJcbiAgICAgICAgICBQQVlMT0FELmxpbmthZ2Vfb2JqZWN0LnNvdXJjZV9pZCA9IHRoaXMuaXNzdWVEZXRhaWxzLmF1ZGl0UGxhbklkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgICF0aGlzLnZhbGlkYXRlRGF0ZShcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlVGltZSxcclxuICAgICAgICAgIG1vbWVudCh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUsICdERCBNTU0gWVlZWScpLnRvRGF0ZSgpXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgUEFZTE9BRC5Jc3N1ZUxpbmthZ2UgPSB0aGlzLmRhdGFGb3JFZGl0Py5saW5rYWdlX29iamVjdDtcclxuICAgIH1cclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xyXG4gICAgICB0aGlzLmxvZ1NlcnZpY2UudXBkYXRlSXNzdWUoUEFZTE9BRCwgdGhpcy5pc3N1ZUlkKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAvLyB0aGlzLnNtaWxleU1lc3NhZ2UgPSBgVGhlIGlzc3VlIGhhcyBiZWVuIHVwZGF0ZWQuYDtcclxuICAgICAgICAgIHRoaXMuaXNzdWVEYXRhID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxyXG4gICAgICAgICAgICAnT09QUyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHRoZSBwYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuIENvdWxkIHlvdSBwbGVhc2UgdHJ5IG9uZSBtb3JlIHRpbWU/JyxcclxuICAgICAgICAgICAgJ2FsZXJ0J1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ0NSRUFURScgfHwgdGhpcy5tb2RlID09PSAnJyB8fCAhdGhpcy5tb2RlKSB7XHJcbiAgICAgIHRoaXMubG9nU2VydmljZS5jcmVhdGVJc3N1ZShQQVlMT0FEKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzc3VlRGF0YSA9IHJlcztcclxuICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcclxuICAgICAgICAgICAgJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycsXHJcbiAgICAgICAgICAgICdhbGVydCdcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBjbG9zZVNtaWxleShldnQ/OiBhbnkpIHtcclxuICAgIHRoaXMucmVzZXRJc3N1ZUZvcm0oKTtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jbG9zZVdvcmtGbG93KHRoaXMuaXNzdWVEYXRhLCBmYWxzZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENsb3NlcyB3b3JrZmxvdyBlbmdpbmVcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICogQHBhcmFtIGNvbmZpcm1cclxuICAgKi9cclxuICBjbG9zZVdvcmtGbG93KGV2dDogYW55LCBjb25maXJtOiBhbnkpIHtcclxuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0LCBjb25maXJtIH0pO1xyXG4gIH1cclxuICBhY3Rpb24oZXZ0OiBhbnkpIHtcclxuICAgIGlmIChldnQgPT09ICdhZGRNb3JlJykge1xyXG4gICAgICB0aGlzLnJlc2V0SXNzdWVGb3JtKCk7XHJcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XHJcbiAgICAgIC8vIHRoaXMuY2xvc2VXb3JrRmxvdyh0aGlzLmlzc3VlRGF0YSwgZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmIChldnQgPT09ICd2aWV3SXNzdWUnKSB7XHJcbiAgICAgIHRoaXMudmlld0lzc3VlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2aWV3SXNzdWUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2Nvbm5lY3RSZWZyZXNoLmVtaXQoZmFsc2UpO1xyXG4gICAgbGV0IHVybDogc3RyaW5nO1xyXG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgIHVybCA9ICdodHRwOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsID0gJ2h0dHBzOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICB1cmwgKz0gJy9pc3N1ZS9pc3N1ZS13b3Jrcm9vbS8nICsgdGhpcy5pc3N1ZURhdGE/Ll9pZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVybCArPSAnL2F1ZGl0L2lzc3VlL2lzc3VlLXdvcmtyb29tLycgKyB0aGlzLmlzc3VlRGF0YT8uX2lkO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQb3B1bGF0ZSB0aGUgdGlja21hcmsgb2Ygb3B0aW9uYWwgZmllbGRzXHJcbiAgICovXHJcbiAgcG9wdWxhdGVPcHRpb25hbEZpZWxkcygpIHtcclxuICAgIGNvbnN0IGFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cykpIHtcclxuICAgICAgaWYgKHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1trZXldID09PSB0cnVlKSB7XHJcbiAgICAgICAgYWN0aXZhdGVkT3B0aW9ucy5wdXNoKGtleSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb24uZW1pdChhY3RpdmF0ZWRPcHRpb25zKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2hzIGlzc3VlIGRldGFpbHMgd2hlbiBpbiBlZGl0IG1vZGUgYmFzZWQgb24gdGhlIGlucHV0IGlkIHBhc3NlZFxyXG4gICAqL1xyXG4gIGZldGNoSXNzdWVEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldElzc3VlRGV0YWlscyh0aGlzLmlzc3VlSWQpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVGb3JtKGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFBvcHVsYXRlcyB0aGUgaXNzdWUgZm9ybSB3aGVuIGluIGVkaXQgbW9kZVxyXG4gICAqIEBwYXJhbSBpc3N1ZURhdGEgaXNzdWUgZGF0YSBmZXRjaGVkIGZyb20gQVBJXHJcbiAgICovXHJcbiAgYXN5bmMgcG9wdWxhdGVGb3JtKGlzc3VlRGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmRhdGFGb3JFZGl0ID0gaXNzdWVEYXRhO1xyXG4gICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICBjb25zdCBpc3N1ZUR1ZURhdGUgPSBpc3N1ZURhdGEuZnJlcXVlbmN5X2RldGFpbHM/LmZyZXF1ZW5jeV9kYXRlLnNwbGl0KCctJyk7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybSA9IHtcclxuICAgICAgaXNzdWVOYW1lOiBpc3N1ZURhdGEudGl0bGUgPz8gJycsXHJcbiAgICAgIGV2aWRlbmNlUmVxdWlyZWQ6IGlzc3VlRGF0YT8uZXZpZGVuY2U/LmV2aWRlbmNlX2ZsYWcgPz8gMCxcclxuICAgICAgaXNzdWVEZXNjcmlwdGlvbjogaXNzdWVEYXRhPy5kZXNjcmlwdGlvbj8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LmRlc2NyaXB0aW9uWzBdPy50ZXh0XHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50czogaXNzdWVEYXRhPy5kZXNjcmlwdGlvbj8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LmRlc2NyaXB0aW9uWzBdPy5hdHRhY2htZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGlzc3VlQ2F0ZWdvcnk6IGlzc3VlRGF0YT8uY2F0ZWdvcnlfaWRcclxuICAgICAgICA/IHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5jYXRlZ29yeV9pZCA9PT0gaXNzdWVEYXRhPy5jYXRlZ29yeV9pZFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGlzc3VlQ3VzdG9tVGFnOiBpc3N1ZURhdGE/LmN1c3RvbV90YWdzID8/IFtdLFxyXG4gICAgICBpc3N1ZVJDOiBpc3N1ZURhdGE/LnJjX2lkPy5sZW5ndGhcclxuICAgICAgICA/IHRoaXMubGlzdERhdGEucmNMaXN0LmZpbHRlcigoZTogYW55KSA9PlxyXG4gICAgICAgICAgICBpc3N1ZURhdGE/LnJjX2lkPy5pbmNsdWRlcyhlPy5yY19pZClcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICByZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50czogaXNzdWVEYXRhPy5yZWNvbW1lbmRhdGlvbj8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LnJlY29tbWVuZGF0aW9uWzBdPy5hdHRhY2htZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzOiBbXSxcclxuICAgICAgaXNBc3NpZ25Ub015c2VsZjpcclxuICAgICAgICBpc3N1ZURhdGE/LmFzc2lnbmVlX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyLmlkID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBlbnRydXN0VG86XHJcbiAgICAgICAgaXNzdWVEYXRhPy5hc3NpZ25lZV9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICAgICAgPyBbXVxyXG4gICAgICAgICAgOiB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgICAoZTogYW55KSA9PiBlLm15X21lbWJlcl9pZCA9PT0gaXNzdWVEYXRhPy5hc3NpZ25lZV9pZFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICBpc3N1ZUR1ZURhdGU6IGlzc3VlRGF0YT8uZnJlcXVlbmN5X2RldGFpbHM/LmZyZXF1ZW5jeV9kYXRlXHJcbiAgICAgICAgPyBtb21lbnQoYCR7aXNzdWVEdWVEYXRlWzBdfS0ke2lzc3VlRHVlRGF0ZVsxXX0tJHtpc3N1ZUR1ZURhdGVbMl19YClcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZUR1ZVRpbWU6IHRoaXMubG9nU2VydmljZS5jb252ZXJ0RnJvbTI0VG8xMkZvcm1hdChcclxuICAgICAgICBpc3N1ZURhdGEuZnJlcXVlbmN5X2RldGFpbHMuZnJlcXVlbmN5X3RpbWVcclxuICAgICAgKSxcclxuICAgICAgZXhjZXB0aW9uVHlwZTogaXNzdWVEYXRhLmV4Y2VwdGlvbl90eXBlID8/IDEsXHJcbiAgICAgIGlzc3VlUmlza1JhdGluZzogaXNzdWVEYXRhLnJpc2tfY2xhc3MgPz8gMSxcclxuICAgICAgaXNzdWVQcmlvcml0eTogaXNzdWVEYXRhLnByaW9yaXR5ID8/IDEsXHJcbiAgICAgIGlzc3VlUmVjb21tZW5kYXRpb246IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRhdGlvblswXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlQXNzb2NpYXRlZFJpc2s6IGlzc3VlRGF0YT8uYXNzb2NpYXRlZF9yaXNrPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8uYXNzb2NpYXRlZF9yaXNrWzBdPy50ZXh0XHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVDQ1VzZXJzOiBpc3N1ZURhdGEub3ZlcnNlZXI/LmNjX2VtYWlsLmxlbmd0aFxyXG4gICAgICAgID8gYXdhaXQgdGhpcy5nZW5lcmF0ZU92ZXJzZWVyTGlzdChcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICAgaXNzdWVEYXRhLm92ZXJzZWVyPy5jY19lbWFpbFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGZhaWx1cmVDQ1VzZXJzOiBpc3N1ZURhdGEub3ZlcnNlZXI/LmZhaWx1cmVfY2NfZW1haWwubGVuZ3RoXHJcbiAgICAgICAgPyBhd2FpdCB0aGlzLmdlbmVyYXRlT3ZlcnNlZXJMaXN0KFxyXG4gICAgICAgICAgICB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LFxyXG4gICAgICAgICAgICBpc3N1ZURhdGEub3ZlcnNlZXI/LmZhaWx1cmVfY2NfZW1haWxcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBsaW5rZWRDb250cm9sUmlzazogW10sXHJcbiAgICAgIGxpbmthZ2VUeXBlOiAnUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgICBpc3N1ZVR5cGU6IGlzc3VlRGF0YS5pc3N1ZVR5cGUgPyBpc3N1ZURhdGEuaXNzdWVUeXBlIDogJ2lzc3VlJyxcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQz8ubGVuZ3RoID4gMFxyXG4gICAgICAgID8gKHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gdHJ1ZSlcclxuICAgICAgICA6ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgICAgaXNzdWVEYXRhLmxpbmthZ2Vfb2JqZWN0Py5zb3VyY2UgPT09ICdHTE9CQUwnICYmIGlzc3VlRGF0YT8ucmNfaWRcclxuICAgICAgICA/ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IGZhbHNlKVxyXG4gICAgICAgIDogKHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldE9wdGlvbmFsRmllbGQoaXNzdWVEYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHZpc2liaWxpdHkgb2Ygb3B0aW9uYWwgZmllbGRzXHJcbiAgICogQHBhcmFtIGlzc3VlRGF0YSAgaXNzdWUgZGF0YSBmZXRjaGVkIGZyb20gQVBJXHJcbiAgICovXHJcbiAgc2V0T3B0aW9uYWxGaWVsZChpc3N1ZURhdGE6IGFueSkge1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzID0ge1xyXG4gICAgICBFWENFUFRJT05fVFlQRTogaXNzdWVEYXRhLmV4Y2VwdGlvbl90eXBlID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBFVklERU5DRTogaXNzdWVEYXRhLmV2aWRlbmNlLmV2aWRlbmNlX2ZsYWcgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIFBSSU9SSVRZOiBpc3N1ZURhdGEucHJpb3JpdHkgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIElTU1VFX1RZUEU6IGZhbHNlLFxyXG4gICAgICBBU1NPQ0lBVEVEX1JJU0tTOiBpc3N1ZURhdGEuYXNzb2NpYXRlZF9yaXNrLmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhLmFzc29jaWF0ZWRfcmlza1swXS50ZXh0Lmxlbmd0aFxyXG4gICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICA6IGZhbHNlXHJcbiAgICAgICAgOiBmYWxzZSxcclxuICAgICAgT1ZFUlNJR0hUOlxyXG4gICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlci5jY19lbWFpbC5sZW5ndGggPiAwIHx8XHJcbiAgICAgICAgaXNzdWVEYXRhLm92ZXJzZWVyLmZhaWx1cmVfY2NfZW1haWwubGVuZ3RoID4gMFxyXG4gICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICA6IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgbGlzdCBvZiBzZWxlY3RlZCBvdmVyc2VlclxyXG4gICAqIEBwYXJhbSBhbGxVc2VyTGlzdCBsaXN0IG9mIGFsbCB1c2VycyBpbiB0aGUgb3JnYW56YXRpb25cclxuICAgKiBAcGFyYW0gb3ZlcnNlZXJMaXN0ICBsaXQgb2YgdGhlIG92ZXJzZWVyIHRoYXQgbmVlZHMgdG8gYmUgZmlsdGVyZWRcclxuICAgKiBAcmV0dXJucyAgbGlzdCBvZiBhcnJheSBjb250YWluaW5nIHRoZSB1c2VycyBvYmplY3RzXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVPdmVyc2Vlckxpc3QoYWxsVXNlckxpc3Q6IGFueSwgb3ZlcnNlZXJMaXN0OiBhbnkpIHtcclxuICAgIHJldHVybiBvdmVyc2Vlckxpc3QubWFwKCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgZm91bmRVc2VyID0gYWxsVXNlckxpc3QuZmluZChcclxuICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50Lm15X21lbWJlcl9pZCA9PT0gdXNlci5tZW1iZXJfaWRcclxuICAgICAgKTtcclxuICAgICAgaWYgKGZvdW5kVXNlcikge1xyXG4gICAgICAgIHJldHVybiBmb3VuZFVzZXI7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXNldHMgaXNzdWUgZm9ybVxyXG4gICAqL1xyXG4gIHJlc2V0SXNzdWVGb3JtKCkge1xyXG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0gPSB7XHJcbiAgICAgIGlzc3VlTmFtZTogJycsXHJcbiAgICAgIGV2aWRlbmNlUmVxdWlyZWQ6IDAsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb246ICcnLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOiBbXSxcclxuICAgICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IFtdLFxyXG4gICAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICAgIGlzc3VlQ2F0ZWdvcnk6IFtdLFxyXG4gICAgICBpc3N1ZUN1c3RvbVRhZzogW10sXHJcbiAgICAgIGlzc3VlUkM6IFtdLFxyXG4gICAgICBpc3N1ZVR5cGU6ICdpc3N1ZScsXHJcbiAgICAgIGlzQXNzaWduVG9NeXNlbGY6IGZhbHNlLFxyXG4gICAgICBlbnRydXN0VG86IFtdLFxyXG4gICAgICBpc3N1ZUR1ZURhdGU6ICcnLFxyXG4gICAgICBpc3N1ZUR1ZVRpbWU6IERFRkFVTFRfVElNRSxcclxuICAgICAgZXhjZXB0aW9uVHlwZTogMSxcclxuICAgICAgaXNzdWVSaXNrUmF0aW5nOiAxLFxyXG4gICAgICBpc3N1ZVByaW9yaXR5OiAxLFxyXG4gICAgICBpc3N1ZVJlY29tbWVuZGF0aW9uOiAnJyxcclxuICAgICAgaXNzdWVBc3NvY2lhdGVkUmlzazogJycsXHJcbiAgICAgIGlzc3VlQ0NVc2VyczogW10sXHJcbiAgICAgIGZhaWx1cmVDQ1VzZXJzOiBbXSxcclxuICAgIH07XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMpKSB7XHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1trZXldID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnNtaWxleU1lc3NhZ2UgPSBgVGhlIGlzc3VlIGhhcyBiZWVuIHJlcG9ydGVkLmA7XHJcbiAgICB0aGlzLm1vZGUgPSAnQ1JFQVRFJztcclxuICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHRoaXMubW9kZSk7XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRSQygpO1xyXG4gIH1cclxuICBjaGVja0Rlc2NyaXB0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb24gPT0gJzxicj4nKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb24gPSAnJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uID09ICc8YnI+Jykge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uID0gJyc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlzayA9PSAnPGJyPicpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlzayA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLnZhbGlkYXRlRGF0ZShldmVudC5zZWxlY3RlZFZhbHVlLCB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUpXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lID0gZXZlbnQuc2VsZWN0ZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRGF0ZSh0aW1lOiBzdHJpbmcsIGRhdGVTdHJpbmc6IGFueSkge1xyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSkge1xyXG4gICAgICBjb25zdCBpc01vbWVudCA9IG1vbWVudC5pc01vbWVudChkYXRlU3RyaW5nLmdldFRpbWUoKSk7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoXHJcbiAgICAgICAgaXNNb21lbnQgPyBkYXRlU3RyaW5nPy5kYXRlPy5fZCA6IGRhdGVTdHJpbmcuZ2V0VGltZSgpXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IGlzc3VlRHVlRGF0ZSA9IGN1cnJlbnREYXRlLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG1vbWVudChcclxuICAgICAgICBgJHtpc3N1ZUR1ZURhdGVbMV19LSR7aXNzdWVEdWVEYXRlWzJdfS0ke2lzc3VlRHVlRGF0ZVszXX0gJHt0aW1lfWAsXHJcbiAgICAgICAgJ01NTS1ERC1ZWVlZIEhIOm1tIGEnXHJcbiAgICAgICkudW5peCgpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWREYXRlICogMTAwMCA8IERhdGUubm93KCkpIHtcclxuICAgICAgICB0aGlzLmlzRnV0dXJlRGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5pc0Z1dHVyZURhdGUgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0RGF0ZVZhbGlkYXRpb25NZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuICdQbGVhc2Ugc2V0IGEgZnV0dXJlIGRhdGUuJztcclxuICAgIHRoaXMuc25hY2tCYXIuc2hvdygnUGxlYXNlIHNldCBhIGZ1dHVyZSBkYXRlLicsICdhbGVydCcpO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIDxwPmxvZy1hbi1pc3N1ZSB3b3JrcyE8L3A+IC0tPlxyXG48ZGl2IGNsYXNzPVwibG9nLWFuLWlzc3VlXCIgKm5nSWY9XCIhc2hvd1NtaWxleVwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJmYWxzZVwiPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5MaW5rZWQgdG88L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCBmdWxsLXdpZHRoXCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJyZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlOYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgcmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPnt7cmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiXHJcbiAgICAgIFtcclxuICAgICAgICAnQVVESVRfV09SS1JPT00nLFxyXG4gICAgICAgICdWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJyxcclxuICAgICAgICAnRVhFQ1VURV9BVURJVF9QTEFOJ1xyXG4gICAgICBdLmluY2x1ZGVzKG9wZW5lZEZyb20pXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwiZmFsc2VcIj5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+SXNzdWUgbGlua2VkIHdpdGg8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaXNzdWVEZXRhaWxzPy5hdWRpdFBsYW5OYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgaXNzdWVEZXRhaWxzPy5hdWRpdFBsYW5OYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPnt7aXNzdWVEZXRhaWxzPy5hdWRpdFBsYW5OYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiXHJcbiAgICAgIFsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICBvcGVuZWRGcm9tXHJcbiAgICAgICkgfHwgaXNSaXNrQ29udHJvbFZpc2libGVcclxuICAgIFwiXHJcbiAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ09OVFJPTF9SSVNLJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImxlZnRcIlxyXG4gICAgICBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPiAwXCJcclxuICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmdcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA9PT0gMCB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DT05UUk9MX1JJU0snXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlNlbGVjdCBhIGNvbnRyb2wgb3IgcmlzazwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2sgfHxcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ09OVFJPTF9SSVNLJywgJ0lTU1VFX0NPTlRST0xfUklTSycpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBjb250cm9sIG9yIHJpc2suXCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgIGRlbGV0ZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICdJU1NVRV9DT05UUk9MX1JJU0snLFxyXG4gICAgICAgICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtQ29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtQ29udHJvbE5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ09OVFJPTF9SSVNLJyxsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbUNvbnRyb2xOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NPTlRST0xfUklTSydcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NPTlRST0xfUklTSycsICdJU1NVRV9DT05UUk9MX1JJU0snKVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYzs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIGxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZyB8IGtleXZhbHVlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDwhLS0ge3tsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWd8anNvbn19IC0tPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj57e1xyXG4gICAgICAgICAgdGFnPy52YWx1ZT8uY3VzdG9tX3RhZ19uYW1lXHJcbiAgICAgICAgfX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInRhZz8udmFsdWU/LmN1c3RvbV90YWdfbmFtZVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZy52YWx1ZS5jdXN0b21fdGFnX3ZhbHVlXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIElzc3VlIFRpdGxlIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1RJVExFJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGhcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aGF0LnN2Z1wiXHJcbiAgICAgICAgYWx0PVwibmFtZVwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICFsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9USVRMRSdcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfVElUTEUnXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5Jc3N1ZSBUaXRsZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgYSBuYW1lIGZvciB0aGlzIGlzc3VlXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlTmFtZVwiXHJcbiAgICAgICAgICAoZm9jdXNpbik9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9USVRMRScsICdJU1NVRV9USVRMRScpXCJcclxuICAgICAgICAgIChrZXl1cCk9XCJcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZT8udHJpbSgpPy5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICAgPyByZW1vdmVFcnJvcignaXNzdWVOYW1lJylcclxuICAgICAgICAgICAgICA6IG51bGxcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoZm9jdXNvdXQpPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignJywgJycpXCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUgPT0gJycgfHwgYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9USVRMRSdcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUubGVuZ3RoICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnSVNTVUVfVElUTEUnXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfVElUTEUnLCAnSVNTVUVfVElUTEUnKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZU5hbWUnKVwiPlxyXG4gICAgICAgICAgRW50ZXIgYSBuYW1lIGZvciB0aGlzIGlzc3VlLlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiQXR0YWNobWVudFRyYWNrWzBdPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVwbG9hZGluZ0ZpbGUgb2YgQXR0YWNobWVudFRyYWNrWzBdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyB1cGxvYWRpbmdGaWxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cz8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWxlIG9mIGxvZ0lzc3VlRm9ybT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50c1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZT8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsICdJU1NVRV9ERVNDUklQVElPTicpXCJcclxuICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHZjb21wbHktZWRpdG9yXHJcbiAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cIntcclxuICAgICAgICAgICAgbW9kZTogJ3ByaW1lJyxcclxuICAgICAgICAgICAgZmlsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdEZXNjcmlwdGlvbidcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnSVNTVUVfREVTQ1JJUFRJT04nLCAkZXZlbnQpXCJcclxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcclxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBpc3N1ZSB0eXBlIHN0YXJ0LS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfVElUTEUnICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdCBjaGVja2VkXCI+XHJcbiAgICAgIDwhLS0gPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIiBhbHQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9USVRMRSdcIj4gLS0+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj4gSXNzdWUgVHlwZSA8L2xhYmVsPlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIGNsYXNzPVwibWFpbi1maWxlZFwiXHJcbiAgICAgICAgICBuYW1lPVwiaXNzdWUtdHlwZVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlVHlwZSA9PT0gJ2lzc3VlJ1wiXHJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldElzc3VlVHlwZSgnaXNzdWUnKVwiXHJcbiAgICAgICAgICA+SXNzdWVcclxuICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBjbGFzcz1cIm1haW4tZmlsZWRcIlxyXG4gICAgICAgICAgbmFtZT1cImlzc3VlLXR5cGVcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGUgPT09ICdpbmNpZGVudCdcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRJc3N1ZVR5cGUoJ2luY2lkZW50JylcIlxyXG4gICAgICAgICAgPkluY2lkZW50XHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gSXNzdWUgQ2F0ZWdvcnkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ0FURUdPUlknXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQVRFR09SWScgJiZcclxuICAgICAgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA9PT0gMCB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DQVRFR09SWSdcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NBVEVHT1JZJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPklzc3VlIENhdGVnb3J5PC9sYWJlbD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5IHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0FURUdPUlknLCAnSVNTVUVfQ0FURUdPUlknKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBjYXRlZ29yeSBmb3IgdGhpcyBpc3N1ZVwiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICBkZWxldGVJdGVtKCdJU1NVRV9DQVRFR09SWScsIGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXSlcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQVRFR09SWScsbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NBVEVHT1JZJ1wiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0FURUdPUlknLCAnSVNTVUVfQ0FURUdPUlknKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cFxyXG4gICAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICAgICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZUNhdGVnb3J5JylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFNlbGVjdCBhbiBpc3N1ZSBjYXRlZ29yeS5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIGxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8IS0tIHt7bG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnfGpzb259fSAtLT5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+e3sgdGFnPy5uYW1lIH19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwidGFnPy5uYW1lXCIgWyhuZ01vZGVsKV09XCJ0YWcudmFsdWVcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFJlc3BvbnNpYmlsaXR5IENlbnRlciAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiaXNSQ1Zpc2libGVcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfUkMnICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5zdmdcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAwICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfUkMnXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5SZXNwb25zaWJpbGl0eSBDZW50ZXJcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIiAqbmdJZj1cImlzUkNNYW5kYXRvcnlcIj4qPC9zcGFuPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZVJDIHx8IGxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID09PSAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1JDJywgJ0lTU1VFX1JDJylcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKVwiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFpc1JDUHJlU2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9SQycsIGxvZ0lzc3VlRm9ybT8uaXNzdWVSQ1swXSlcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQ1swXT8uaXRlbV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDWzBdPy5pdGVtX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJSQy5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICt7eyBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/LnNsaWNlKDEpPy5sZW5ndGggfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1JDJyAmJiAhaXNSQ1ByZVNlbGVjdGVkXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9SQycsICdJU1NVRV9SQycpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZVJDJylcIj5cclxuICAgICAgICAgIFNlbGVjdCB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGlzc3VlLlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxhcHAtcG9wb3ZlciAjUkMgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICBsZXQgcmMgb2YgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDIHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgbGV0IGogPSBpbmRleFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9SQycsIHJjKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgcmM/Lml0ZW1fbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFdobyAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9XSE8nICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hvLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmKSB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIChsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGYpICYmXHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1dITydcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgPldobz8gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmXCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICFsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbyB8fCBsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfV0hPJywgJ0lTU1VFX1dITycpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvZ0lzc3VlRm9ybT8uaXNBc3NpZ25Ub015c2VsZlwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXaG8gaXMgcmVzcG9uc2libGUgZm9yIGNvbXBsZXRpbmcgdGhlIHJlc3BvbnNpYmlsaXR5P1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9XSE8nLCBsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXSlcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvWzBdPy5lbXBsb3llZV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0/LmVtcGxveWVlX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfV0hPJyxsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uZW50cnVzdFRvWzBdPy5lbXBsb3llZV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1dITydcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1dITycsICdJU1NVRV9XSE8nKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2VudHJ1c3RUbycpXCI+XHJcbiAgICAgICAgICBTZWxlY3QgdGhlIHBlcnNvbiByZXNwb25zaWJsZSBmb3IgcmVzb2x2aW5nIHRoaXMgaXNzdWUuXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic3dpdGNoLXJvdyBhbGlnbi1yaWdodFwiXHJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YXBwLWNzLXN3aXRjaFxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXCJcclxuICAgICAgICAgICAgWyhuZ1ZhbHVlKV09XCJsb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZlwiXHJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cImFzc2lnbk15c2VsZigkZXZlbnQpXCJcclxuICAgICAgICAgICAgPk9SIEFTU0lHTiBUTyBNWVNFTEY8L2FwcC1jcy1zd2l0Y2hcclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBNYXhpbXVuIFRpbWUgdG8gUmVzb2x2ZSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9EQVRFX1RJTUUnICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVEdWVEYXRlXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hlbi5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlRGF0ZSB8fCBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0RBVEVfVElNRSdcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVEdWVEYXRlICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfREFURV9USU1FJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+TWF4aW11bSBUaW1lIHRvIFJlc29sdmUgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS10aW1lLXBpY2tlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlci1ncm91cFwiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNldCBhIGRlYWRsaW5lLlwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlclxyXG4gICAgICAgICAgICAgICNkYXRlUGlja2VyXHJcbiAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIlxyXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgcmVtb3ZlRXJyb3IoJ2lzc3VlRHVlRGF0ZScpXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtb3ZlcmxheVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInBpY2tlci1ncm91cFwiXHJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInRpbWVQaWNrZXIucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAobW91c2VvdmVyKT1cInNldEN1cnJlbnRUaW1lKClcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlRHVlVGltZVwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWVcIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBUaW1lXCJcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgW21pbl09XCJjdXJyZW50VGltZVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTU1OzwvaT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGFwcC1wb3BvdmVyICN0aW1lUGlja2VyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPGFwcC10aW1lLXBpY2tlclxyXG4gICAgICAgICAgICAgIFt0aW1lXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWVcIlxyXG4gICAgICAgICAgICAgIChvblRpbWVTZWxlY3Rpb24pPVwiXHJcbiAgICAgICAgICAgICAgICBvblRpbWVDaGFuZ2VkKCRldmVudCk7IHRpbWVQaWNrZXIuY2xvc2VQb3BvdmVyKCd0b3AnKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID48L2FwcC10aW1lLXBpY2tlcj5cclxuICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHBcclxuICAgICAgICAgIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXHJcbiAgICAgICAgICAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVEdWVEYXRlJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFNlbGVjdCB0aGUgZGF0ZSBieSB3aGljaCB0aGlzIGlzc3VlIG5lZWRzIHRvIGJlIHJlc29sdmVkLlxyXG4gICAgICAgIDwvcD5cclxuXHJcbiAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCIhaXNGdXR1cmVEYXRlXCI+XHJcbiAgICAgICAgICB7eyBnZXREYXRlVmFsaWRhdGlvbk1lc3NhZ2UgfX1cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUmVjb21tZW5kZWQgQWN0aW9ucyAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb25cIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZWNvbW1lbmRlZC1hY3Rpb24uc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCIhKGxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uIHwgc3BhY2VCcmVha2VyKS5sZW5ndGhcIlxyXG4gICAgICAvPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwiKGxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uIHwgc3BhY2VCcmVha2VyKS5sZW5ndGggPiAwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5SZWNvbW1lbmRlZCBBY3Rpb25zIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkF0dGFjaG1lbnRUcmFja1sxXT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB1cGxvYWRpbmdGaWxlIG9mIEF0dGFjaG1lbnRUcmFja1sxXVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgdXBsb2FkaW5nRmlsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8IS0tIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsZSBvZiBsb2dJc3N1ZUZvcm0/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBmaWxlPy5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUZpbGUoZmlsZSwgJ1JFQ09NTUVOREVEX0FDVElPTlMnKVwiXHJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDx2Y29tcGx5LWVkaXRvclxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVSZWNvbW1lbmRhdGlvblwiXHJcbiAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cIntcclxuICAgICAgICAgICAgbW9kZTogJ3ByaW1lJyxcclxuICAgICAgICAgICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgICAgICAgICBsaW5rOiB0cnVlLFxyXG4gICAgICAgICAgICBmaWxlOiB0cnVlLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ1JlY29tbWVuZGVkIGFjdGlvbnMnXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIlxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlUmVjb21tZW5kYXRpb24/LnRyaW0oKT8ubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICAgID8gcmVtb3ZlRXJyb3IoJ2lzc3VlUmVjb21tZW5kYXRpb24nKVxyXG4gICAgICAgICAgICAgIDogbnVsbFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcclxuICAgICAgICAgIChzZW5kU2F2ZWRGaWxlcyk9XCJzZWxlY3RGaWxlKCdSRUNPTU1FTkRFRF9BQ1RJT05TJywgJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgICAgPHBcclxuICAgICAgICAgIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXHJcbiAgICAgICAgICAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVSZWNvbW1lbmRhdGlvbicpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBTcGVjaWZ5IHRoZSByZWNvbW1lbmRlZCBhY3Rpb25zIHRvIHJlc29sdmUgdGhpcyBpc3N1ZS5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gKm5nSWY9XCIhaGlkZGVuTGlzdC5pbmNsdWRlcygnUklTS19DTEFTU0lGSUNBVElPTicpXCIgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCIgLS0+XHJcbiAgPCEtLSByZW1vdmVkIHRoZSBhYm92ZSBjb25kaXRpb24gc2luY2UgUmlzayBDbGFzc2lmaWNhdGlvbiBzaG91bGQgYmUgZGlzcGxheWVkIGJ5IGRlZmF1bHQgaW4gbG9nIGFuIGlzc3VlIGZvcm0gLS0+XHJcblxyXG4gIDwhLS0gUmlzayBDbGFzc2lmaWNhdGlvbiAtLT5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBpZD1cInJpc2tfY2xhc3NpZmljYXRpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlUmlza1JhdGluZ1wiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVSaXNrUmF0aW5nXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUmlza1JhdGluZ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SaXNrIENsYXNzaWZpY2F0aW9uPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xhc3NpZmljYXRpb25cIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBjbGFzcz1cImxvd1wiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjbGFzcyBvZiByaXNrQ2xhc3NpZmljYXRpb25cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJbY2xhc3MuY2xhc3NdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiY2xhc3NpZmljYXRpb25cIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJjbGFzcy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJpc2tSYXRpbmcgPT09IGNsYXNzLnZhbHVlXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJpc2tSYXRpbmdcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBjbGFzcy5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBFeGNlcHRpb24gVHlwZSAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkVYQ0VQVElPTl9UWVBFXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID4gLTFcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9leGNlcHRpb24tdHlwZS5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA9PT0gbnVsbFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID4gLTFcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5FeGNlcHRpb24gVHlwZTwvbGFiZWw+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCIxXCJcclxuICAgICAgICAgIG5hbWU9XCJleGNlcHRpb24tdHlwZVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IDFcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFeGNlcHRpb24oMSlcIlxyXG4gICAgICAgICAgPkRlc2lnbiBFeGNlcHRpb25cclxuICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBjbGFzcz1cIm1haW4tZmlsZWRcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIjJcIlxyXG4gICAgICAgICAgbmFtZT1cImV4Y2VwdGlvbi10eXBlXCJcclxuICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA9PT0gMlwiXHJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldEV4Y2VwdGlvbigyKVwiXHJcbiAgICAgICAgICA+RWZmZWN0aXZlbmVzcyBFeGNlcHRpb25cclxuICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBQcmlvcml0eSAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLlBSSU9SSVRZXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5XCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcHJpb3JpdHkuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5XCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUHJpb3JpdHkgPiAwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UHJpb3JpdHk8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbGFzc2lmaWNhdGlvblwiPlxyXG4gICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwcmlvcml0eSBvZiByaXNrUHJvcml0eVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltwcmlvcml0eS5jbGFzc11cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJjbGFzc2lmaWNhdGlvbi1wcmlvcml0eVwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInByaW9yaXR5LnZhbHVlXCJcclxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUHJpb3JpdHkgPT09IHByaW9yaXR5LnZhbHVlXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVByaW9yaXR5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW4+e3sgcHJpb3JpdHkubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gQXNzb2NpYXRlZCBSaXNrcyAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkFTU09DSUFURURfUklTS1NcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlza1wiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc29jaWF0ZWQtcmlza3Muc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZUFzc29jaWF0ZWRSaXNrLnRyaW0oKS5sZW5ndGhcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVBc3NvY2lhdGVkUmlzay50cmltKCkubGVuZ3RoXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+QXNzb2NpYXRlZCBSaXNrcyA8L2xhYmVsPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJBdHRhY2htZW50VHJhY2tbMl0/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXBsb2FkaW5nRmlsZSBvZiBBdHRhY2htZW50VHJhY2tbMl1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHVwbG9hZGluZ0ZpbGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzPy5sZW5ndGggPiAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgbG9nSXNzdWVGb3JtPy5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50c1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZT8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsICdBU1NPQ0lBVEVEX1JJU0tTJylcIlxyXG4gICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8dmNvbXBseS1lZGl0b3JcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlQXNzb2NpYXRlZFJpc2tcIlxyXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICAgICAgZmlsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnQXNzb2NpYXRlZCBSaXNrcydcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJjaGVja0Rlc2NyaXB0aW9uKClcIlxyXG4gICAgICAgICAgKHNlbmRTYXZlZEZpbGVzKT1cInNlbGVjdEZpbGUoJ0FTU09DSUFURURfUklTS1MnLCAkZXZlbnQpXCJcclxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBPdmVyc2VlciAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiXHJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuT1ZFUlNJR0hUXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgIVsnSVNTVUVfQ0MnLCAnSVNTVUVfRkNDJ10uaW5jbHVkZXMoYWN0aXZlRmllbGQpICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibGVmdFwiXHJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cIlxyXG4gICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAwIHx8XHJcbiAgICAgICAgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMFxyXG4gICAgICBcIlxyXG4gICAgPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmdcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIChsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID09PSAwICYmXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMCkgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ0MnIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0ZDQydcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDAgfHxcclxuICAgICAgICAgIChsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ0MnKSB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9GQ0MnXHJcbiAgICAgICAgXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+T3ZlcnNpZ2h0PC9sYWJlbD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnMgfHxcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0MnLCAnSVNTVUVfQ0MnKVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV2hvIHNob3VsZCBoYXZlIG92ZXJzaWdodCBvZiB0aGlzIGlzc3VlP1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0MnLCBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXSlcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIkNDLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgK3t7IGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5zbGljZSgxKS5sZW5ndGggfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQycsbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMVwiIHR5cGU9XCJidXR0b25cIiBhcHBQb3BvdmVyIChjbGljayk9XCJDQy5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2xvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5zbGljZSgxKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQydcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NDJywgJ0lTU1VFX0NDJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICFsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzIHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0ZDQycsICdJU1NVRV9GQ0MnKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXaG8gc2hvdWxkIGJlIG5vdGlmaWVkIGlmIHRoZSBpc3N1ZSBpcyBub3QgcmVzb2x2ZWQ/XCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0ZDQycsIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0pXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxyXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiRkNDLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAre3sgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfRkNDJyxsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPiAxXCIgdHlwZT1cImJ1dHRvblwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIkZDQy5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2xvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/LnNsaWNlKDEpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0ZDQydcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0ZDQycsICdJU1NVRV9GQ0MnKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxhcHAtcG9wb3ZlciAjQ0MgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICBsZXQgY2Mgb2YgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnMgfCBzbGljZSA6IDE7XHJcbiAgICAgICAgICAgICAgICBsZXQgaiA9IGluZGV4XHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NDJywgY2MpXCJcclxuICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBjYz8uZW1wbG95ZWVfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgPGFwcC1wb3BvdmVyICNGQ0MgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICBsZXQgZmNjIG9mIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnMgfCBzbGljZSA6IDE7XHJcbiAgICAgICAgICAgICAgICBsZXQgaiA9IGluZGV4XHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0ZDQycsIGZjYylcIlxyXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGZjYz8uZW1wbG95ZWVfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIEV2aWRlbmNlIC0tPlxyXG4gIDxkaXZcclxuICAgIFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuRVZJREVOQ0VcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJ0cnVlXCI+XHJcbiAgICAgIDwhLS0gPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vZm9ybWF0LWV2aWRlbmNlLnN2Z1wiIGFsdD1cImltXCI+IC0tPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5FdmlkZW5jZTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1mb3JtYXRcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiXHJcbiAgICAgICAgICAgID5EbyB5b3Ugd2FudCBldmlkZW5jZSBvZiBjb21wbGV0aW9uIG9mIHRoZSBpc3N1ZSB0byBiZVxyXG4gICAgICAgICAgICB1cGxvYWRlZD88L3NwYW5cclxuICAgICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxyXG4gICAgICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICAgICAgW25hbWVdPVwiJ2ZpbGUtZXZpZGVuY2UnXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiMVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5ldmlkZW5jZVJlcXVpcmVkID09PSAxXCJcclxuICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldEV2aWRlbmNlKDEpXCJcclxuICAgICAgICAgICAgICA+WWVzXHJcbiAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICAgICAgW25hbWVdPVwiJ2ZpbGUtZXZpZGVuY2UnXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiMFwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5ldmlkZW5jZVJlcXVpcmVkID09PSAwXCJcclxuICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldEV2aWRlbmNlKDApXCJcclxuICAgICAgICAgICAgICA+Tm9cclxuICAgICAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbjxhcHAtcmFkaW8tbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX0NBVEdPUllcIlxyXG4gIFtpdGVtc0xpc3RdPVwibGlzdERhdGE/LmNhdGVnb3J5TGlzdFwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmlzc3VlQ2F0ZWdvcnlcIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidjYXRlZ29yeV9pZCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidjYXRlZ29yeV9uYW1lJ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX0NBVEVHT1JZJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX0NBVEVHT1JZJylcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9DQVRFR09SWScpXCJcclxuPlxyXG48L2FwcC1yYWRpby1saXN0PlxyXG5cclxuPGFwcC1yZXNwb25zaWJpbGl0eS1jZW50ZXJzLWxpc3RcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfUkMnXCJcclxuICBbcmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdF09XCJsaXN0RGF0YT8ucmNMaXN0XCJcclxuICBbcmFkaW9TZWxlY3Rpb25dPVwiZmFsc2VcIlxyXG4gIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVyc109XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkNcIlxyXG4gIFtyY0lkS2V5XT1cIidpdGVtX2lkJ1wiXHJcbiAgKHNhdmVTZWxlY3RlZExpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnSVNTVUVfUkMnKVwiXHJcbiAgKGNsb3NlUmNMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfUkMnKVwiXHJcbj5cclxuPC9hcHAtcmVzcG9uc2liaWxpdHktY2VudGVycy1saXN0PlxyXG5cclxuPGFwcC1yYWRpby1saXN0XHJcbiAgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfV0hPXCJcclxuICBbaXRlbXNMaXN0XT1cImxpc3REYXRhPy51c2VyTGlzdFwiXHJcbiAgW3R3b0NvbHVtbl09XCJ0cnVlXCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uZW50cnVzdFRvXCJcclxuICBbaWRlbnRpZmllcktleV09XCInZW1wbG95ZWVfaWQnXCJcclxuICBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIlxyXG4gIFt0b29sdGlwS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9XSE8nXCJcclxuICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnSVNTVUVfV0hPJylcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9XSE8nKVwiXHJcbj48L2FwcC1yYWRpby1saXN0PlxyXG5cclxuPGFwcC1yYWRpby1saXN0XHJcbiAgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfVFlQRVwiXHJcbiAgW2l0ZW1zTGlzdF09XCJsaXN0RGF0YT8uaXNzdWVUeXBlTGlzdFwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmlzc3VlVHlwZVwiXHJcbiAgW2lkZW50aWZpZXJLZXldPVwiJ2lzc3VlX2lkJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2lzc3VlX3R5cGVfbmFtZSdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9UWVBFJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX1RZUEUnKVwiXHJcbiAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX1RZUEUnKVwiXHJcbj48L2FwcC1yYWRpby1saXN0PlxyXG5cclxuPGFwcC1jaGVja2JveC1saXN0XHJcbiAgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfQ0NcIlxyXG4gIFt0d29Db2x1bW5dPVwidHJ1ZVwiXHJcbiAgW2l0ZW1zTGlzdF09XCJcclxuICAgIGxpc3REYXRhLnVzZXJMaXN0XHJcbiAgICAgIHwgdXNlckZpbHRlclxyXG4gICAgICAgIDogJ2VtcGxveWVlX2VtYWlsJ1xyXG4gICAgICAgIDogbG9nSXNzdWVGb3JtLmVudHJ1c3RUb1xyXG4gICAgICAgIDogeyBlbXBsb3llZV9lbWFpbDogY3VycmVudFVzZXI/LmVtYWlsIH1cclxuICBcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUNDVXNlcnNcIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidlbXBsb3llZV9uYW1lJ1wiXHJcbiAgW3Rvb2x0aXBLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX0NDJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX0NDJylcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9DQycpXCJcclxuPjwvYXBwLWNoZWNrYm94LWxpc3Q+XHJcblxyXG48YXBwLWNoZWNrYm94LWxpc3RcclxuICBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9GQ0NcIlxyXG4gIFt0d29Db2x1bW5dPVwidHJ1ZVwiXHJcbiAgW2l0ZW1zTGlzdF09XCJcclxuICAgIGxpc3REYXRhLnVzZXJMaXN0XHJcbiAgICAgIHwgdXNlckZpbHRlclxyXG4gICAgICAgIDogJ2VtcGxveWVlX2VtYWlsJ1xyXG4gICAgICAgIDogbG9nSXNzdWVGb3JtLmVudHJ1c3RUb1xyXG4gICAgICAgIDogeyBlbXBsb3llZV9lbWFpbDogY3VycmVudFVzZXI/LmVtYWlsIH1cclxuICBcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2Vyc1wiXHJcbiAgW2lkZW50aWZpZXJLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2VtcGxveWVlX25hbWUnXCJcclxuICBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfRkNDJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX0ZDQycpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfRkNDJylcIlxyXG4+PC9hcHAtY2hlY2tib3gtbGlzdD5cclxuXHJcbjxhcHAtcmVzcG9uc2liaWxpdHktcmlzay1zZWxlY3RvclxyXG4gIFtsb2FkaW5nXT1cImlzUmlza0NvbnRyb2xMb2FkaW5nXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1wiXHJcbiAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX0NPTlRST0xfUklTSycpXCJcclxuICAoZmV0Y2hMaXN0KT1cImdldExpbmthZ2UoaXNzdWVEZXRhaWxzPy5hdWRpdE9iaklkLCAkZXZlbnQpXCJcclxuICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnSVNTVUVfQ09OVFJPTF9SSVNLJylcIlxyXG4gIFthY3RpdmVFbnRpdHldPVwibG9nSXNzdWVGb3JtPy5saW5rYWdlVHlwZVwiXHJcbiAgW2xpc3RJdGVtc109XCJsaXN0RGF0YT8ubGlua2FnZUxpc3RcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tcIlxyXG4+PC9hcHAtcmVzcG9uc2liaWxpdHktcmlzay1zZWxlY3Rvcj5cclxuXHJcbjxhcHAtc21pbGV5LWRpYWxvZy1pbmxpbmVcclxuICAqbmdJZj1cInNob3dTbWlsZXlcIlxyXG4gIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxyXG4gIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxyXG4gIChhY3Rpb24pPVwiYWN0aW9uKCRldmVudClcIlxyXG4gIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCJcclxuPlxyXG48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cclxuIl19
|
|
1049
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuLWlzc3VlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2xvZy1hbi1pc3N1ZS9sb2ctYW4taXNzdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR25DLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUVuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU0zRCxNQUFNLE9BQU8sbUJBQW1CO0lBOEw5QixZQUNVLFVBQTJCLEVBQzNCLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLFFBQXlCLEVBQ3pCLGtCQUFxQztRQUpyQyxlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBaE10QyxzQkFBaUIsR0FBRztZQUMzQiw0QkFBNEI7WUFDNUIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLElBQUksRUFBRSxJQUFJO1lBQ1Ysc0JBQXNCLEVBQUUsRUFBRTtTQUMzQixDQUFDO1FBQ08saUJBQVksR0FBRztZQUN0QixXQUFXLEVBQUUs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QUksQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7Z0JBQzFCLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksd0JBQXdCO1FBQzFCLE9BQU8sMkJBQTJCLENBQUM7SUFDckMsQ0FBQzs7Z0hBdnFDVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixzakJDMUJoQyw2a3JEQXU5Q0E7MkZENzdDYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usa0JBQWtCO3lOQUtuQixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBT0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFFa0IsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dJc3N1ZVNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBPbkNoYW5nZXMsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRWRpdG9yQ29uZmlnIH0gZnJvbSAndmNvbXBseS1lZGl0b3InO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgVWlLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvdWkta2l0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuaW1wb3J0IHsgSXNzdWVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pc3N1ZS1kYXRhJztcclxuaW1wb3J0IHsgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbG9nLWFuLWlzc3VlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9nLWFuLWlzc3VlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sb2ctYW4taXNzdWUuY29tcG9uZW50Lmxlc3MnLCAnLi4vZm9ybXMubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9nQW5Jc3N1ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBvcGVuZWRGcm9tITogYW55O1xyXG4gIEBJbnB1dCgpIGlzc3VlSWQhOiBhbnk7XHJcbiAgQElucHV0KCkgcmVwb25zaWJpbGl0eURhdGEgPSB7XHJcbiAgICAvLyBvbmx5IHVzZWQgYnkgbG9nIGFuIGlzc3VlXHJcbiAgICByZXNwb25zaWJpbGl0eUlkOiBudWxsLFxyXG4gICAgcmVzcG9uc2liaWxpdHlOYW1lOiAnJyxcclxuICAgIHJjSWQ6IG51bGwsXHJcbiAgICByZXNwb25zaWJpbGl0eU9iamVjdElkOiAnJyxcclxuICB9O1xyXG4gIEBJbnB1dCgpIGlzc3VlRGV0YWlscyA9IHtcclxuICAgIGF1ZGl0UGxhbklkOiBudWxsLFxyXG4gICAgYXVkaXRQbGFuTmFtZTogJycsXHJcbiAgICByY0lkOiBudWxsLFxyXG4gICAgYXVkaXRPYmpJZDogbnVsbCxcclxuICB9O1xyXG4gIEBJbnB1dCgpIG1vZGUgPSAnQ1JFQVRFJztcclxuICBASW5wdXQoKSBjb25maWchOiBJc3N1ZUNvbmZpZ3VyYXRpb247XHJcbiAgQElucHV0KCkgcmVzcG9uc2liaWxpdGllc0RhdGE6IGFueTtcclxuICBAT3V0cHV0KCkgcGlja2VyQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcG9wdWxhdGVPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG1vZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRpc2Nvbm5lY3RSZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGN1cnJlbnRVc2VyITogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInKSBkYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBzY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xyXG4gIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgc2hvd0RhdGVFcnJvciA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRGF0ZTogYW55O1xyXG4gIHNob3dTbWlsZXkgPSBmYWxzZTtcclxuICBsb2FkZXIgPSBmYWxzZTtcclxuICBzbWlsZXlNZXNzYWdlID0gYFRoZSBpc3N1ZSBoYXMgYmVlbiByZXBvcnRlZC5gO1xyXG4gIGlzc3VlRGF0YSE6IGFueTtcclxuICBpc1Jpc2tDb250cm9sTG9hZGluZyA9IGZhbHNlO1xyXG4gIGFjdGlvbkJ1dHRvbnMgPSBbXHJcbiAgICB7IGJ1dHRvblRleHQ6ICdSZXBvcnQgTW9yZSBJc3N1ZXMnLCBjbGFzczogJ3doaXRlLWJ0bicsIGlkOiAnYWRkTW9yZScgfSxcclxuICAgIHsgYnV0dG9uVGV4dDogJ1ZpZXcgSXNzdWUnLCBjbGFzczogJ2JsdWUtYnRuJywgaWQ6ICd2aWV3SXNzdWUnIH0sXHJcbiAgXTtcclxuICBjcmVhdGVkRGF0YSE6IGFueTtcclxuICBkZXNjcmlwdGlvbjogRWRpdG9yQ29uZmlnID0ge1xyXG4gICAgLy8gbW9kZTogJ3ByaW1lJyxcclxuICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgIGxpbms6IHRydWUsXHJcbiAgICBwbGFjZWhvbGRlcjogJ0Rlc2NyaXB0aW9uJyxcclxuICB9O1xyXG5cclxuICBkYXRlQ29uZmlnID0ge1xyXG4gICAgZGlzYWJsZUtleXByZXNzOiB0cnVlLFxyXG4gICAgZm9ybWF0OiAnREQgTU1NIFlZWVknLFxyXG4gICAgdW5TZWxlY3RPbkNsaWNrOiB0cnVlLFxyXG4gICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxyXG4gICAgb3Blbk9uRm9jdXM6IGZhbHNlLFxyXG4gICAgbWluOiBuZXcgRGF0ZSgpLmdldERhdGUoKS50b1N0cmluZygpLFxyXG4gIH07XHJcbiAgbGlzdERhdGE6IGFueSA9IHtcclxuICAgIGlzc3VlVHlwZUxpc3Q6IFtdLFxyXG4gICAgdXNlckxpc3Q6IFtdLFxyXG4gICAgY2F0ZWdvcnlMaXN0OiBbXSxcclxuICAgIHJjTGlzdDogW10sXHJcbiAgICBsaW5rYWdlTGlzdDogW10sXHJcbiAgfTtcclxuICBERUZBVUxUX1RJTUUgPSBERUZBVUxUX1RJTUU7XHJcblxyXG4gIGdldCBtZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ0VESVQnXHJcbiAgICAgID8gJyBUaGUgSXNzdWUgaGFzIGJlZW4gdXBkYXRlZC4nXHJcbiAgICAgIDogdGhpcy5zbWlsZXlNZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgbG9nSXNzdWVGb3JtOiBhbnkgPSB7XHJcbiAgICBpc3N1ZU5hbWU6ICcnLFxyXG4gICAgZXZpZGVuY2VSZXF1aXJlZDogMCxcclxuICAgIGlzc3VlRGVzY3JpcHRpb246ICcnLFxyXG4gICAgaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50czogW10sXHJcbiAgICBpc3N1ZUNhdGVnb3J5OiBbXSxcclxuICAgIGlzc3VlQ3VzdG9tVGFnOiBbXSxcclxuICAgIGlzc3VlUkM6IFtdLFxyXG4gICAgaXNzdWVUeXBlOiAnaXNzdWUnLFxyXG4gICAgaXNBc3NpZ25Ub015c2VsZjogZmFsc2UsXHJcbiAgICBlbnRydXN0VG86IFtdLFxyXG4gICAgaXNzdWVEdWVEYXRlOiAnJyxcclxuICAgIGlzc3VlRHVlVGltZTogREVGQVVMVF9USU1FLFxyXG4gICAgZXhjZXB0aW9uVHlwZTogMSxcclxuICAgIGlzc3VlUmlza1JhdGluZzogMSxcclxuICAgIGlzc3VlUHJpb3JpdHk6IDEsXHJcbiAgICBpc3N1ZVJlY29tbWVuZGF0aW9uOiAnJyxcclxuICAgIHJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzOiBbXSxcclxuICAgIGlzc3VlQXNzb2NpYXRlZFJpc2s6ICcnLFxyXG4gICAgYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM6IFtdLFxyXG4gICAgaXNzdWVDQ1VzZXJzOiBbXSxcclxuICAgIGZhaWx1cmVDQ1VzZXJzOiBbXSxcclxuICAgIGxpbmtlZENvbnRyb2xSaXNrOiBbXSxcclxuICAgIGxpbmthZ2VUeXBlOiAnUklTSycsXHJcbiAgfTtcclxuICBBdHRhY2htZW50VHJhY2s6IGFueSA9IFtbXSwgW10sIFtdXTtcclxuICBhZGRpdGlvbmFsT3B0aW9uU3RhdHVzOiBhbnkgPSB7XHJcbiAgICBFWENFUFRJT05fVFlQRTogZmFsc2UsXHJcbiAgICBFVklERU5DRTogZmFsc2UsXHJcbiAgICBQUklPUklUWTogZmFsc2UsXHJcbiAgICBJU1NVRV9UWVBFOiBmYWxzZSxcclxuICAgIEFTU09DSUFURURfUklTS1M6IGZhbHNlLFxyXG4gICAgT1ZFUlNJR0hUOiBmYWxzZSxcclxuICB9O1xyXG4gIHJpc2tDbGFzc2lmaWNhdGlvbiA9IFtcclxuICAgIHsgbmFtZTogJ0xPVycsIHZhbHVlOiAxLCBjbGFzczogJ2xvdycgfSxcclxuICAgIHsgbmFtZTogJ0xPVy1NZWRpdW0nLCB2YWx1ZTogMiwgY2xhc3M6ICdsb3ctbWVkJyB9LFxyXG4gICAgeyBuYW1lOiAnTWVkaXVtLUhpZ2gnLCB2YWx1ZTogMywgY2xhc3M6ICdtZWQtaGlnaCcgfSxcclxuICAgIHsgbmFtZTogJ0hpZ2gnLCB2YWx1ZTogNCwgY2xhc3M6ICdoaWdoJyB9LFxyXG4gIF07XHJcbiAgcmlza1Byb3JpdHkgPSBbXHJcbiAgICB7IG5hbWU6ICdMT1cnLCB2YWx1ZTogMSwgY2xhc3M6ICdsb3cnIH0sXHJcbiAgICB7IG5hbWU6ICdNRURJVU0nLCB2YWx1ZTogMiwgY2xhc3M6ICdsb3ctbWVkJyB9LFxyXG4gICAgeyBuYW1lOiAnSElHSCcsIHZhbHVlOiAzLCBjbGFzczogJ2hpZ2gnIH0sXHJcbiAgXTtcclxuXHJcbiAgc2lkZVNlbGVjdG9yRWxlbWVudHM6IGFueSA9IFtcclxuICAgICdJU1NVRV9DQVRFR09SWScsXHJcbiAgICAnSVNTVUVfUkMnLFxyXG4gICAgJ0lTU1VFX1dITycsXHJcbiAgICAnSVNTVUVfVFlQRScsXHJcbiAgICAnSVNTVUVfQ0MnLFxyXG4gICAgJ0lTU1VFX0ZDQycsXHJcbiAgICAnSVNTVUVfQ09OVFJPTF9SSVNLJyxcclxuICBdO1xyXG4gIHNlbGVjdG9yQ29uZmlnID0ge1xyXG4gICAgSVNTVUVfQ0FUR09SWToge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IElzc3VlIENhdGVnb3J5JyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdDYXRlZ29yeSBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIElzc3VlIENhdGVnb3J5JyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIENhdGVnb3JpZXMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX1JDOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdSZXNwb25zaWJpbGl0eSBjZW50ZXIgc2VsZWN0ZWQnLFxyXG4gICAgICBmbG9hdGluZ1RleHRQbHVyYWw6ICdSZXNwb25zaWJpbGl0eSBjZW50ZXJzIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgRm91bmQnLFxyXG4gICAgICBzZWxlY3RBbGxFbmFibGVkOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIElTU1VFX1dITzoge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IFVzZXInLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1VzZXIgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBVc2VyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFVzZXJzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9UWVBFOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgSXNzdWUgVHlwZScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnSXNzdWUgVHlwZSBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIElzc3VlIFR5cGUnLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gSXNzdWUgVHlwZXMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX0NDOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgdXNlcihzKScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnVXNlciBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFVzZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBzZWxlY3RBbGxFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gVXNlcnMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX0ZDQzoge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IHVzZXIocyknLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1VzZXIgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBVc2VyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgc2VsZWN0QWxsRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFVzZXJzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgZmllbGRzV2l0aEVycm9yOiBhbnkgPSBbXTtcclxuICAvLyBoaWRkZW5MaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICBhY3RpdmVGaWVsZCA9ICcnO1xyXG4gIGFjdGl2ZVNlbGVjdG9yID0gJyc7XHJcbiAgbGlzdExvYWRpbmdTdGF0dXM6IGFueSA9IFtdO1xyXG4gIGN1cnJlbnRUaW1lID0gJyc7XHJcbiAgLyoqXHJcbiAgICogaXNSQ1ByZVNlbGVjdGVkLGlzUkNWaXNpYmxlIGFyZSB2YXJpYWJsZSB1c2VkIHRvIHNldCB0aGUgdmlzaWJpbGl0eSBvZiByYyBmaWVsZCBhbmQgZWRpdCBidXR0b24gaW4gY2VydGFpbiBjb25kaXRpb25zXHJcbiAgICovXHJcbiAgaXNSQ1ByZVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgaXNSQ1Zpc2libGUgPSB0cnVlO1xyXG4gIGlzUkNNYW5kYXRvcnkgPSBmYWxzZTtcclxuICBkYXRhRm9yRWRpdCE6IGFueTtcclxuICBpc1Jpc2tDb250cm9sVmlzaWJsZSA9IGZhbHNlO1xyXG4gIGlzRnV0dXJlRGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxvZ1NlcnZpY2U6IExvZ0lzc3VlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZXJjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFRpbWUgPSB0aGlzLmdldEN1cnJlbnRUaW1lKCk7XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgICB0aGlzLnNldFVzZXJEZXRhaWxzKCk7XHJcbiAgICB0aGlzLmZldGNoSXNzdWVUeXBlcygpO1xyXG4gICAgdGhpcy5mZXRjaFVzZXJMaXN0KCk7XHJcbiAgICB0aGlzLmZldGNoQ2F0ZWdvcnlMaXN0KCk7XHJcbiAgICB0aGlzLmZldGNoUkNMaXN0KCk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZXJjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZmV0Y2hDb250cm9sUmlza3MoKTtcclxuICAgIHRoaXMuZGVjaWRlUkNtYW5kYXRvcnkoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICB9XHJcblxyXG4gIGRlY2lkZVJDbWFuZGF0b3J5KCkge1xyXG4gICAgdGhpcy5pc1JDTWFuZGF0b3J5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRDdXJyZW50VGltZSgpIHtcclxuICAgIHRoaXMuY3VycmVudFRpbWUgPSB0aGlzLmdldEN1cnJlbnRUaW1lKCk7XHJcbiAgfVxyXG4gIGdldEN1cnJlbnRUaW1lKCkge1xyXG4gICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIGlmIChcclxuICAgICAgdG9kYXkuZ2V0RGF0ZSgpID09PSBuZXcgRGF0ZSh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUpLmdldERhdGUoKVxyXG4gICAgKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0b2RheS5nZXRIb3VycygpIDwgMTIgJiZcclxuICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCA1OSAmJlxyXG4gICAgICAgIHRvZGF5LmdldFNlY29uZHMoKSA8IDU5XHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBgJHtcclxuICAgICAgICAgIHRvZGF5LmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIHRvZGF5LmdldEhvdXJzKCkgOiB0b2RheS5nZXRIb3VycygpXHJcbiAgICAgICAgfToke1xyXG4gICAgICAgICAgdG9kYXkuZ2V0TWludXRlcygpIDwgMTBcclxuICAgICAgICAgICAgPyAnMCcgKyB0b2RheS5nZXRNaW51dGVzKClcclxuICAgICAgICAgICAgOiB0b2RheS5nZXRNaW51dGVzKClcclxuICAgICAgICB9IGFtYDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gYCR7XHJcbiAgICAgICAgICB0b2RheS5nZXRIb3VycygpIC0gMTIgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArICh0b2RheS5nZXRIb3VycygpIC0gMTIpXHJcbiAgICAgICAgICAgIDogdG9kYXkuZ2V0SG91cnMoKSAtIDEyXHJcbiAgICAgICAgfToke1xyXG4gICAgICAgICAgdG9kYXkuZ2V0TWludXRlcygpIDwgMTBcclxuICAgICAgICAgICAgPyAnMCcgKyB0b2RheS5nZXRNaW51dGVzKClcclxuICAgICAgICAgICAgOiB0b2RheS5nZXRNaW51dGVzKClcclxuICAgICAgICB9IHBtYDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcwMDowMCBhbSc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldFVzZXJEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5jdXJyZW50VXNlciA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlckRldGFpbHMoKS51c2VyO1xyXG4gIH1cclxuICBmZXRjaElzc3VlVHlwZXMoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzBdID0gZmFsc2U7XHJcbiAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldElzc3VlVHlwZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMF0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEuaXNzdWVUeXBlTGlzdCA9IHJlcztcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMF0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGZldGNoVXNlckxpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzFdID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0T3JnUGVvcGxlKCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzFdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLnVzZXJMaXN0ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1sxXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZldGNoQ2F0ZWdvcnlMaXN0KCkge1xyXG4gICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1syXSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldElzc3VlQ2F0ZWdvcmllcygpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1syXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5jYXRlZ29yeUxpc3QgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5jYXRlZ29yeUxpc3QgPSB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAoZTogYW55KSA9PiBlPy5jYXRlZ29yeV9uYW1lICE9PSAnVW5jYXRlZ29yaXplZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1syXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZldGNoUkNMaXN0KCkge1xyXG4gICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1szXSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1szXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5yY0xpc3QgPSByZXM7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkUkMoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzNdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0ZWRSQygpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmNJZCAmJlxyXG4gICAgICB0aGlzLm9wZW5lZEZyb20gPT09ICdDT01QTElBTkNFX1dPUktST09NJ1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMgPSB0aGlzLnJlcG9uc2liaWxpdHlEYXRhLnJjSWRcclxuICAgICAgICA/IHRoaXMubGlzdERhdGEucmNMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5yY19pZCA9PT0gdGhpcy5yZXBvbnNpYmlsaXR5RGF0YS5yY0lkXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkICYmXHJcbiAgICAgIFtcclxuICAgICAgICAnQVVESVRfV09SS1JPT00nLFxyXG4gICAgICAgICdWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJyxcclxuICAgICAgICAnRVhFQ1VURV9BVURJVF9QTEFOJyxcclxuICAgICAgXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQyA9IHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhLnJjTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgIChlOiBhbnkpID0+IGUucmNfaWQgPT09IHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICAhKHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJjSWQgfHwgdGhpcy5pc3N1ZURldGFpbHM/LnJjSWQpICYmXHJcbiAgICAgIFtcclxuICAgICAgICAnQ09NUExJQU5DRV9XT1JLUk9PTScsXHJcbiAgICAgICAgJ0FVRElUX1dPUktST09NJyxcclxuICAgICAgICAnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsXHJcbiAgICAgICAgJ0VYRUNVVEVfQVVESVRfUExBTicsXHJcbiAgICAgIF0uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNSQ1Zpc2libGUgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSQ1Zpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250cm9sUmlza3MoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIFsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICB0aGlzLm9wZW5lZEZyb21cclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGlua2FnZShcclxuICAgICAgICB0aGlzLmlzc3VlRGV0YWlscz8uYXVkaXRPYmpJZCxcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rYWdlVHlwZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TGlua2FnZShhdWRpdElkOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5pc1Jpc2tDb250cm9sTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0Q29udHJvbFJpc2soYXVkaXRJZCwgdHlwZSk/LnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEubGlua2FnZUxpc3QgPSBbLi4udGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCwgLi4uZGF0YV07XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCA9IHRoaXMubGlzdERhdGEubGlua2FnZUxpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgKHRoaW5nOiBhbnksIGluZGV4OiBhbnksIHNlbGY6IGFueSkgPT5cclxuICAgICAgICAgICAgaW5kZXggPT09XHJcbiAgICAgICAgICAgIHNlbGYuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAgICh0OiBhbnkpID0+XHJcbiAgICAgICAgICAgICAgICB0Lml0ZW1JZCA9PT0gdGhpbmcuaXRlbUlkICYmIHQuaXRlbVR5cGUgPT09IHRoaW5nLml0ZW1UeXBlXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuaXNSaXNrQ29udHJvbExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzUmlza0NvbnRyb2xMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFRoaXMgZnVuY3Rpb2ogY2hlY2sgd2VhdGhlciBhbGwgdGhlIHJlcXVpcmVkIGxpc3RzIGFyZSBsb2FkZWRcclxuICAgKiBJZiBsb2FkZWQgaGlkZXMgdGhlIGxvYWRlciBvdGhlcndpc2Ugc2hvd3MgdGhlIGxvYWRlci5cclxuICAgKi9cclxuICBjaGVja0FsbExpc3RMb2FkZWQoKSB7XHJcbiAgICBpZiAodGhpcy5saXN0TG9hZGluZ1N0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgICB0aGlzLmZldGNoSXNzdWVEZXRhaWxzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBlcnJvciBmcm9tIHRoZSBmaWVsZHMgd2l0aCBlcnJvciB0byByZW1vdmUgdGhlIGVycm9yIG1lc3NhZyBmcm9tIHRoZSBVSVxyXG4gICAqIEBwYXJhbSBlcnJvcktleSBlcnJvciBJZGVudGlmaWVyIHVzZWQgdG8gc2hvdyBlcnJvciBpbiBzcGVjaWZpYyBmaWVsZHMuXHJcbiAgICovXHJcbiAgcmVtb3ZlRXJyb3IoZXJyb3JLZXk6IHN0cmluZykge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpZWxkc1dpdGhFcnJvci5pbmRleE9mKGVycm9yS2V5KTtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMuZmllbGRzV2l0aEVycm9yLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy5kYXRlUGlja2VyLmFwaS5vcGVuKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMuc2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfREFURV9USU1FJywgJ0lTU1VFX0RBVEVfVElNRScpO1xyXG4gIH1cclxuICBjbG9zZURhdGVQaWNrZXIoZXZ0OiBhbnkpIHtcclxuICAgIGlmICghZXZ0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChldnQ/LmRhdGU/Ll9kKSB7XHJcbiAgICAgIGxldCBtb250aEFycmF5ID0gW1xyXG4gICAgICAgICdKYW4nLFxyXG4gICAgICAgICdGZWInLFxyXG4gICAgICAgICdNYXInLFxyXG4gICAgICAgICdBcHInLFxyXG4gICAgICAgICdKdW4nLFxyXG4gICAgICAgICdKdWwnLFxyXG4gICAgICAgICdBdWcnLFxyXG4gICAgICAgICdTZXAnLFxyXG4gICAgICAgICdPY3QnLFxyXG4gICAgICAgICdOb3YnLFxyXG4gICAgICAgICdEZWMnLFxyXG4gICAgICBdO1xyXG4gICAgICBjb25zdCBkYXRlVmFsdWUgPSBuZXcgRGF0ZShldnQ/LmRhdGU/Ll9kKS5nZXREYXRlKCk7XHJcbiAgICAgIGNvbnN0IG1vbnRoVmFsdWUgPSBtb250aEFycmF5W25ldyBEYXRlKGV2dD8uZGF0ZT8uX2QpLmdldE1vbnRoKCldO1xyXG4gICAgICBjb25zdCB5ZWFyVmFsdWUgPSBuZXcgRGF0ZShldnQ/LmRhdGU/Ll9kKS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICBjb25zdCBkYXRlU3RyID0gYCR7ZGF0ZVZhbHVlfSAke21vbnRoVmFsdWV9ICR7eWVhclZhbHVlfWA7XHJcbiAgICAgIGlmICghdGhpcy52YWxpZGF0ZURhdGUodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lLCBldnQ/LmRhdGU/Ll9kKSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGV2dD8uZGF0ZT8uX2QpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlID0gZXZ0Py5kYXRlPy5fZDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2V0QWN0aXZlRmllbGRTZWxlY3RvcignJywgJycpO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcihhY3RpdmVGaWVsZDogc3RyaW5nLCBhY3RpdmVTZWxlY3Rvcj86IHN0cmluZykge1xyXG4gICAgdGhpcy5hY3RpdmVGaWVsZCA9IGFjdGl2ZUZpZWxkO1xyXG4gICAgYWN0aXZlU2VsZWN0b3JcclxuICAgICAgPyAodGhpcy5hY3RpdmVTZWxlY3RvciA9IGFjdGl2ZVNlbGVjdG9yKVxyXG4gICAgICA6ICh0aGlzLmFjdGl2ZVNlbGVjdG9yID0gJycpO1xyXG4gICAgY29uc3Qgc2xpZGVyVHlwZSA9IFtcclxuICAgICAgJ0lTU1VFX1JDJyxcclxuICAgICAgJ0lTU1VFX0NBVEVHT1JZJyxcclxuICAgICAgJ0lTU1VFX1RZUEUnLFxyXG4gICAgICAnSVNTVUVfQ0MnLFxyXG4gICAgICAnSVNTVUVfRkNDJyxcclxuICAgICAgJ0lTU1VFX1dITycsXHJcbiAgICAgICdJU1NVRV9DT05UUk9MX1JJU0snLFxyXG4gICAgXTtcclxuICAgIGlmIChzbGlkZXJUeXBlLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKSkge1xyXG4gICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpZWxkRGVzZWxlY3Rvcih0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMuYWN0aXZlU2VsZWN0b3IgPSAnJztcclxuICAgIHRoaXMuYWN0aXZlRmllbGQgPSAnJztcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdG9yQWN0aW9uKGV2dDogYW55LCB0eXBlOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9DQVRFR09SWSc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5ID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCxcclxuICAgICAgICAgICdjYXRlZ29yeV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGlmIChldnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2lzc3VlQ2F0ZWdvcnknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jdXN0b21fdGFncz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCB0YWc6IGFueSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmN1c3RvbV90YWdzLmZvckVhY2goXHJcbiAgICAgICAgICAgIChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0YWcucHVzaCh7IG5hbWU6IGVsZW1lbnQsIHZhbHVlOiAnJyB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnID0gdGFnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICAvL1tcImlzc3VlTmFtZVwiLCBcImlzc3VlQ2F0ZWdvcnlcIiwgXCJpc3N1ZVJDXCIsIFwiZW50cnVzdFRvXCIsIFwiaXNzdWVEdWVEYXRlXCIsIFwiaXNzdWVSZWNvbW1lbmRhdGlvblwiXVxyXG4gICAgICBjYXNlICdJU1NVRV9SQyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLnJjTGlzdCxcclxuICAgICAgICAgICdyY19pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGlmIChldnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2lzc3VlUkMnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfV0hPJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUbyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUb1swXT8ubXlfbWVtYmVyX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyLmlkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc0Fzc2lnblRvTXlzZWxmID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBpZiAoZXZ0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUVycm9yKCdlbnRydXN0VG8nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfVFlQRSc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEuaXNzdWVUeXBlTGlzdCxcclxuICAgICAgICAgICdpc3N1ZV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NDJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2VycyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0ZDQyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2VycyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlICdJU1NVRV9DT05UUk9MX1JJU0snOlxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmtlZENvbnRyb2xSaXNrID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0LFxyXG4gICAgICAgICAgJ2l0ZW1JZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmthZ2VUeXBlID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbVR5cGU7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVJdGVtKHR5cGU6IGFueSwgZWxlbWVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfQ0FURUdPUlknOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDYXRlZ29yeS5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmNhdGVnb3J5X2lkID09PSBlbGVtZW50LmNhdGVnb3J5X2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDYXRlZ29yeS5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfUkMnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnJjX2lkID09PSBlbGVtZW50LnJjX2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQy5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfV0hPJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUby5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmVtcGxveWVlX2lkID09PSBlbGVtZW50LmVtcGxveWVlX2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc0Fzc2lnblRvTXlzZWxmID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfVFlQRSc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5pc3N1ZV9pZCA9PT0gZWxlbWVudC5pc3N1ZV9pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlVHlwZS5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfQ0MnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uZW1wbG95ZWVfZW1haWwgPT09IGVsZW1lbnQuZW1wbG95ZWVfZW1haWxcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNDVXNlcnMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0ZDQyc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2Vycy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmVtcGxveWVlX2VtYWlsID09PSBlbGVtZW50LmVtcGxveWVlX2VtYWlsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NPTlRST0xfUklTSyc6XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2VkQ29udHJvbFJpc2suZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5pdGVtSWQgPT09IGVsZW1lbnQuaXRlbUlkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2VkQ29udHJvbFJpc2suc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICBhc3NpZ25NeXNlbGYoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5yZW1vdmVFcnJvcignZW50cnVzdFRvJyk7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8gPSBbXTtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8gPSB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LmZpbHRlcihcclxuICAgICAgICAoZW1wbGlzdDogYW55KSA9PiBlbXBsaXN0Lm15X21lbWJlcl9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRFeGNlcHRpb24odHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5leGNlcHRpb25UeXBlID0gdHlwZTtcclxuICB9XHJcbiAgc2V0RXZpZGVuY2UodHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5ldmlkZW5jZVJlcXVpcmVkID0gdHlwZTtcclxuICB9XHJcbiAgc2V0SXNzdWVUeXBlKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVUeXBlID0gdHlwZTtcclxuICB9XHJcblxyXG4gIGFkZE1vcmVJbmZvKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1tldmVudC5jb2RlXSA9IGV2ZW50LmNoZWNrZWQ7XHJcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGlkVG9BcnJheShzZWxlY3RlZEl0ZW1zOiBhbnksIGxpc3RJdGVtczogYW55LCBmaWx0ZXJrZXk6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZEl0ZW1zO1xyXG4gICAgY29uc3QgbGlzdCA9IGxpc3RJdGVtcztcclxuICAgIGNvbnN0IGtleSA9IGZpbHRlcmtleTtcclxuICAgIGNvbnN0IHggPSBsaXN0LmZpbHRlcigoZWw6IGFueSkgPT4gc2VsZWN0ZWQuaW5jbHVkZXMoZWxba2V5XSkpO1xyXG4gICAgcmV0dXJuIHg7XHJcbiAgfVxyXG4gIC8vL0NvZGUgYmV0d2VlbiA1MDMgdG8gNjA4IGNhbiBiZSBvcHRpbWl6ZWQgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uXHJcbiAgc2VsZWN0RmlsZSh0eXBlOiBzdHJpbmcsIGZpbGVzOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBmaWxlcy5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlc1tpXS5maWxlLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1swXS5wdXNoKG5hbWUpO1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGVzW2ldLmZpbGUsIHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGZpbGVzLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGVzW2ldLmZpbGUubmFtZSA/PyAnJztcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrWzFdLnB1c2gobmFtZSk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZXNbaV0uZmlsZSwgdHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbMl0ucHVzaChuYW1lKTtcclxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlc1tpXS5maWxlLCB0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZmlsZTogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCB0cmFja0luZGV4ID0gMDtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICB0cmFja0luZGV4ID0gMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgIHRyYWNrSW5kZXggPSAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgdHJhY2tJbmRleCA9IDI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XHJcbiAgICBjb25zdCBkZXN0aW5hdGlvblN0cmluZyA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uSWQoKS50b1N0cmluZygpO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLnVwbG9hZEZpbGVzKGZvcm1EYXRhLCBkZXN0aW5hdGlvblN0cmluZyArICcvJykuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuQXR0YWNobWVudFRyYWNrW3RyYWNrSW5kZXhdLmluZGV4T2YoZmlsZT8ubmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMucHVzaChyZXMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhc2UgJ1JFQ09NTUVOREVEX0FDVElPTlMnOiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLnB1c2gocmVzKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cy5wdXNoKHJlcyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLkF0dGFjaG1lbnRUcmFja1t0cmFja0luZGV4XS5pbmRleE9mKGZpbGUubmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKGZpbGU6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgZmlsZUluZGV4ID0gLTE7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgZmlsZUluZGV4ID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGN1cnJlbnRGaWxlczogYW55KSA9PiBjdXJyZW50RmlsZXMub3JnX2ZpbGUgPT09IGZpbGUub3JnX2ZpbGVcclxuICAgICAgICAgICkgPz8gLTE7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cz8uc3BsaWNlKGZpbGVJbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnUkVDT01NRU5ERURfQUNUSU9OUyc6IHtcclxuICAgICAgICBmaWxlSW5kZXggPVxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGN1cnJlbnRGaWxlczogYW55KSA9PiBjdXJyZW50RmlsZXMub3JnX2ZpbGUgPT09IGZpbGUub3JnX2ZpbGVcclxuICAgICAgICAgICkgPz8gLTE7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM/LnNwbGljZShmaWxlSW5kZXgsIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgZmlsZUluZGV4ID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzPy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChjdXJyZW50RmlsZXM6IGFueSkgPT4gY3VycmVudEZpbGVzLm9yZ19maWxlID09PSBmaWxlLm9yZ19maWxlXHJcbiAgICAgICAgICApID8/IC0xO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzPy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkSXNzdWUoKSB7XHJcbiAgICBjb25zdCBmb3JtID0gY2xvbmVEZWVwKHRoaXMubG9nSXNzdWVGb3JtKTtcclxuICAgIGlmIChmb3JtLmlzQXNzaWduVG9NeXNlbGYpIHtcclxuICAgICAgZm9ybS5lbnRydXN0VG8gPSB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LmZpbHRlcihcclxuICAgICAgICAoZW1wbGlzdDogYW55KSA9PiBlbXBsaXN0Lm15X21lbWJlcl9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGRzV2l0aEVycm9yID0gW107XHJcbiAgICB0aGlzLmZpZWxkc1dpdGhFcnJvciA9IHRoaXMubG9nU2VydmljZS52YWxpZGF0ZShcclxuICAgICAgZm9ybSxcclxuICAgICAgdGhpcy5vcGVuZWRGcm9tLFxyXG4gICAgICB0aGlzLmlzUkNNYW5kYXRvcnlcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5maWVsZHNXaXRoRXJyb3IubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBQQVlMT0FEID0gdGhpcy5sb2dTZXJ2aWNlLnBheWxvYWRCdWlsZGVyKFxyXG4gICAgICBmb3JtLFxyXG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnQ1JFQVRFJykge1xyXG4gICAgICBQQVlMT0FELmxpbmthZ2Vfb2JqZWN0ID0ge1xyXG4gICAgICAgIHNvdXJjZTogdGhpcy5vcGVuZWRGcm9tLFxyXG4gICAgICAgIHR5cGU6ICcnLFxyXG4gICAgICAgIHR5cGVfaWQ6IDAsXHJcbiAgICAgICAgc291cmNlX2lkOiAwLFxyXG4gICAgICAgIHNvdXJjZV9vYmplY3RfaWQ6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5vcGVuZWRGcm9tID09PSAnQ09NUExJQU5DRV9XT1JLUk9PTScgJiZcclxuICAgICAgICB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eUlkXHJcbiAgICAgICkge1xyXG4gICAgICAgIFBBWUxPQUQubGlua2FnZV9vYmplY3QgPSB7XHJcbiAgICAgICAgICBzb3VyY2VfaWQ6IHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5SWQsXHJcbiAgICAgICAgICB0eXBlOiAnJyxcclxuICAgICAgICAgIHR5cGVfaWQ6IDAsXHJcbiAgICAgICAgICBzb3VyY2U6IHRoaXMub3BlbmVkRnJvbSxcclxuICAgICAgICAgIHNvdXJjZV9vYmplY3RfaWQ6IHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5T2JqZWN0SWQsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgWydWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJywgJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKFxyXG4gICAgICAgICAgdGhpcy5vcGVuZWRGcm9tXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2FnZVR5cGUgJiZcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzay5sZW5ndGggPiAwXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIFsnUklTSycsICdSRVNQT05TSUJJTElUWSddLmluY2x1ZGVzKHRoaXMubG9nSXNzdWVGb3JtPy5saW5rYWdlVHlwZSlcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBQQVlMT0FELmxpbmthZ2Vfb2JqZWN0LnNvdXJjZV9pZCA9XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtSWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICBbXHJcbiAgICAgICAgICAnQVVESVRfV09SS1JPT00nLFxyXG4gICAgICAgICAgJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLFxyXG4gICAgICAgICAgJ0VYRUNVVEVfQVVESVRfUExBTicsXHJcbiAgICAgICAgXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pXHJcbiAgICAgICkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzc3VlRGV0YWlscy5hdWRpdFBsYW5JZCkge1xyXG4gICAgICAgICAgUEFZTE9BRC5saW5rYWdlX29iamVjdC5zb3VyY2VfaWQgPSB0aGlzLmlzc3VlRGV0YWlscy5hdWRpdFBsYW5JZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICAhdGhpcy52YWxpZGF0ZURhdGUoXHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWUsXHJcbiAgICAgICAgICBtb21lbnQodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlLCAnREQgTU1NIFlZWVknKS50b0RhdGUoKVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIFBBWUxPQUQuSXNzdWVMaW5rYWdlID0gdGhpcy5kYXRhRm9yRWRpdD8ubGlua2FnZV9vYmplY3Q7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5sb2dTZXJ2aWNlLnVwZGF0ZUlzc3VlKFBBWUxPQUQsIHRoaXMuaXNzdWVJZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gdGhpcy5zbWlsZXlNZXNzYWdlID0gYFRoZSBpc3N1ZSBoYXMgYmVlbiB1cGRhdGVkLmA7XHJcbiAgICAgICAgICB0aGlzLmlzc3VlRGF0YSA9IHJlcztcclxuICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcclxuICAgICAgICAgICAgJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycsXHJcbiAgICAgICAgICAgICdhbGVydCdcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdDUkVBVEUnIHx8IHRoaXMubW9kZSA9PT0gJycgfHwgIXRoaXMubW9kZSkge1xyXG4gICAgICB0aGlzLmxvZ1NlcnZpY2UuY3JlYXRlSXNzdWUoUEFZTE9BRCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc3N1ZURhdGEgPSByZXM7XHJcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXHJcbiAgICAgICAgICAgICdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nLFxyXG4gICAgICAgICAgICAnYWxlcnQnXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2xvc2VTbWlsZXkoZXZ0PzogYW55KSB7XHJcbiAgICB0aGlzLnJlc2V0SXNzdWVGb3JtKCk7XHJcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcclxuICAgIHRoaXMuY2xvc2VXb3JrRmxvdyh0aGlzLmlzc3VlRGF0YSwgZmFsc2UpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDbG9zZXMgd29ya2Zsb3cgZW5naW5lXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqIEBwYXJhbSBjb25maXJtXHJcbiAgICovXHJcbiAgY2xvc2VXb3JrRmxvdyhldnQ6IGFueSwgY29uZmlybTogYW55KSB7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dCwgY29uZmlybSB9KTtcclxuICB9XHJcbiAgYWN0aW9uKGV2dDogYW55KSB7XHJcbiAgICBpZiAoZXZ0ID09PSAnYWRkTW9yZScpIHtcclxuICAgICAgdGhpcy5yZXNldElzc3VlRm9ybSgpO1xyXG4gICAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xyXG4gICAgICAvLyB0aGlzLmNsb3NlV29ya0Zsb3codGhpcy5pc3N1ZURhdGEsIGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoZXZ0ID09PSAndmlld0lzc3VlJykge1xyXG4gICAgICB0aGlzLnZpZXdJc3N1ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmlld0lzc3VlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsICs9ICcvaXNzdWUvaXNzdWUtd29ya3Jvb20vJyArIHRoaXMuaXNzdWVEYXRhPy5faWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgKz0gJy9hdWRpdC9pc3N1ZS9pc3N1ZS13b3Jrcm9vbS8nICsgdGhpcy5pc3N1ZURhdGE/Ll9pZDtcclxuICAgIH1cclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUG9wdWxhdGUgdGhlIHRpY2ttYXJrIG9mIG9wdGlvbmFsIGZpZWxkc1xyXG4gICAqL1xyXG4gIHBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKSB7XHJcbiAgICBjb25zdCBhY3RpdmF0ZWRPcHRpb25zID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMpKSB7XHJcbiAgICAgIGlmICh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNba2V5XSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGFjdGl2YXRlZE9wdGlvbnMucHVzaChrZXkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uLmVtaXQoYWN0aXZhdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZldGNocyBpc3N1ZSBkZXRhaWxzIHdoZW4gaW4gZWRpdCBtb2RlIGJhc2VkIG9uIHRoZSBpbnB1dCBpZCBwYXNzZWRcclxuICAgKi9cclxuICBmZXRjaElzc3VlRGV0YWlscygpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRJc3N1ZURldGFpbHModGhpcy5pc3N1ZUlkKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRm9ybShkYXRhKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBQb3B1bGF0ZXMgdGhlIGlzc3VlIGZvcm0gd2hlbiBpbiBlZGl0IG1vZGVcclxuICAgKiBAcGFyYW0gaXNzdWVEYXRhIGlzc3VlIGRhdGEgZmV0Y2hlZCBmcm9tIEFQSVxyXG4gICAqL1xyXG4gIGFzeW5jIHBvcHVsYXRlRm9ybShpc3N1ZURhdGE6IGFueSkge1xyXG4gICAgdGhpcy5kYXRhRm9yRWRpdCA9IGlzc3VlRGF0YTtcclxuICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgY29uc3QgaXNzdWVEdWVEYXRlID0gaXNzdWVEYXRhPy5mcmVxdWVuY3lfZGV0YWlscz8uZnJlcXVlbmN5X2RhdGVcclxuICAgICAgLnNwbGl0KCctJylcclxuICAgICAgLm1hcChOdW1iZXIpO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0gPSB7XHJcbiAgICAgIGlzc3VlTmFtZTogaXNzdWVEYXRhLnRpdGxlID8/ICcnLFxyXG4gICAgICBldmlkZW5jZVJlcXVpcmVkOiBpc3N1ZURhdGE/LmV2aWRlbmNlPy5ldmlkZW5jZV9mbGFnID8/IDAsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb246IGlzc3VlRGF0YT8uZGVzY3JpcHRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5kZXNjcmlwdGlvblswXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM6IGlzc3VlRGF0YT8uZGVzY3JpcHRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5kZXNjcmlwdGlvblswXT8uYXR0YWNobWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBpc3N1ZUNhdGVnb3J5OiBpc3N1ZURhdGE/LmNhdGVnb3J5X2lkXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgIChlOiBhbnkpID0+IGUuY2F0ZWdvcnlfaWQgPT09IGlzc3VlRGF0YT8uY2F0ZWdvcnlfaWRcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBpc3N1ZUN1c3RvbVRhZzogaXNzdWVEYXRhPy5jdXN0b21fdGFncyA/PyBbXSxcclxuICAgICAgaXNzdWVSQzogaXNzdWVEYXRhPy5yY19pZD8ubGVuZ3RoXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhLnJjTGlzdC5maWx0ZXIoKGU6IGFueSkgPT5cclxuICAgICAgICAgICAgaXNzdWVEYXRhPy5yY19pZD8uaW5jbHVkZXMoZT8ucmNfaWQpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRhdGlvblswXT8uYXR0YWNobWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICAgIGlzQXNzaWduVG9NeXNlbGY6XHJcbiAgICAgICAgaXNzdWVEYXRhPy5hc3NpZ25lZV9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZCA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgZW50cnVzdFRvOlxyXG4gICAgICAgIGlzc3VlRGF0YT8uYXNzaWduZWVfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgICAgID8gW11cclxuICAgICAgICAgIDogdGhpcy5saXN0RGF0YS51c2VyTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5teV9tZW1iZXJfaWQgPT09IGlzc3VlRGF0YT8uYXNzaWduZWVfaWRcclxuICAgICAgICAgICAgKSxcclxuICAgICAgaXNzdWVEdWVEYXRlOiBpc3N1ZURhdGE/LmZyZXF1ZW5jeV9kZXRhaWxzPy5mcmVxdWVuY3lfZGF0ZVxyXG4gICAgICAgID8gbW9tZW50KGAke2lzc3VlRHVlRGF0ZVswXX0tJHtpc3N1ZUR1ZURhdGVbMV19LSR7aXNzdWVEdWVEYXRlWzJdfWApXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVEdWVUaW1lOiB0aGlzLmxvZ1NlcnZpY2UuY29udmVydEZyb20yNFRvMTJGb3JtYXQoXHJcbiAgICAgICAgaXNzdWVEYXRhLmZyZXF1ZW5jeV9kZXRhaWxzLmZyZXF1ZW5jeV90aW1lXHJcbiAgICAgICksXHJcbiAgICAgIGV4Y2VwdGlvblR5cGU6IGlzc3VlRGF0YS5leGNlcHRpb25fdHlwZSA/PyAxLFxyXG4gICAgICBpc3N1ZVJpc2tSYXRpbmc6IGlzc3VlRGF0YS5yaXNrX2NsYXNzID8/IDEsXHJcbiAgICAgIGlzc3VlUHJpb3JpdHk6IGlzc3VlRGF0YS5wcmlvcml0eSA/PyAxLFxyXG4gICAgICBpc3N1ZVJlY29tbWVuZGF0aW9uOiBpc3N1ZURhdGE/LnJlY29tbWVuZGF0aW9uPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb25bMF0/LnRleHRcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZUFzc29jaWF0ZWRSaXNrOiBpc3N1ZURhdGE/LmFzc29jaWF0ZWRfcmlzaz8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LmFzc29jaWF0ZWRfcmlza1swXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlQ0NVc2VyczogaXNzdWVEYXRhLm92ZXJzZWVyPy5jY19lbWFpbC5sZW5ndGhcclxuICAgICAgICA/IGF3YWl0IHRoaXMuZ2VuZXJhdGVPdmVyc2Vlckxpc3QoXHJcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QsXHJcbiAgICAgICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlcj8uY2NfZW1haWxcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBmYWlsdXJlQ0NVc2VyczogaXNzdWVEYXRhLm92ZXJzZWVyPy5mYWlsdXJlX2NjX2VtYWlsLmxlbmd0aFxyXG4gICAgICAgID8gYXdhaXQgdGhpcy5nZW5lcmF0ZU92ZXJzZWVyTGlzdChcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICAgaXNzdWVEYXRhLm92ZXJzZWVyPy5mYWlsdXJlX2NjX2VtYWlsXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgbGlua2VkQ29udHJvbFJpc2s6IFtdLFxyXG4gICAgICBsaW5rYWdlVHlwZTogJ1JFU1BPTlNJQklMSVRZJyxcclxuICAgICAgaXNzdWVUeXBlOiBpc3N1ZURhdGEuaXNzdWVUeXBlID8gaXNzdWVEYXRhLmlzc3VlVHlwZSA6ICdpc3N1ZScsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkM/Lmxlbmd0aCA+IDBcclxuICAgICAgICA/ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWUpXHJcbiAgICAgICAgOiAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZSk7XHJcbiAgICAgIGlzc3VlRGF0YS5saW5rYWdlX29iamVjdD8uc291cmNlID09PSAnR0xPQkFMJyAmJiBpc3N1ZURhdGE/LnJjX2lkXHJcbiAgICAgICAgPyAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZSlcclxuICAgICAgICA6ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWUpO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coJ3RoaXMgaXNzdWUgZmllbGQnLCB0aGlzLmxvZ0lzc3VlRm9ybSk7XHJcbiAgICB0aGlzLnNldE9wdGlvbmFsRmllbGQoaXNzdWVEYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHZpc2liaWxpdHkgb2Ygb3B0aW9uYWwgZmllbGRzXHJcbiAgICogQHBhcmFtIGlzc3VlRGF0YSAgaXNzdWUgZGF0YSBmZXRjaGVkIGZyb20gQVBJXHJcbiAgICovXHJcbiAgc2V0T3B0aW9uYWxGaWVsZChpc3N1ZURhdGE6IGFueSkge1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzID0ge1xyXG4gICAgICBFWENFUFRJT05fVFlQRTogaXNzdWVEYXRhLmV4Y2VwdGlvbl90eXBlID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBFVklERU5DRTogaXNzdWVEYXRhLmV2aWRlbmNlLmV2aWRlbmNlX2ZsYWcgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIFBSSU9SSVRZOiBpc3N1ZURhdGEucHJpb3JpdHkgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIElTU1VFX1RZUEU6IGZhbHNlLFxyXG4gICAgICBBU1NPQ0lBVEVEX1JJU0tTOiBpc3N1ZURhdGEuYXNzb2NpYXRlZF9yaXNrLmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhLmFzc29jaWF0ZWRfcmlza1swXS50ZXh0Lmxlbmd0aFxyXG4gICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICA6IGZhbHNlXHJcbiAgICAgICAgOiBmYWxzZSxcclxuICAgICAgT1ZFUlNJR0hUOlxyXG4gICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlci5jY19lbWFpbC5sZW5ndGggPiAwIHx8XHJcbiAgICAgICAgaXNzdWVEYXRhLm92ZXJzZWVyLmZhaWx1cmVfY2NfZW1haWwubGVuZ3RoID4gMFxyXG4gICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICA6IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgbGlzdCBvZiBzZWxlY3RlZCBvdmVyc2VlclxyXG4gICAqIEBwYXJhbSBhbGxVc2VyTGlzdCBsaXN0IG9mIGFsbCB1c2VycyBpbiB0aGUgb3JnYW56YXRpb25cclxuICAgKiBAcGFyYW0gb3ZlcnNlZXJMaXN0ICBsaXQgb2YgdGhlIG92ZXJzZWVyIHRoYXQgbmVlZHMgdG8gYmUgZmlsdGVyZWRcclxuICAgKiBAcmV0dXJucyAgbGlzdCBvZiBhcnJheSBjb250YWluaW5nIHRoZSB1c2VycyBvYmplY3RzXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVPdmVyc2Vlckxpc3QoYWxsVXNlckxpc3Q6IGFueSwgb3ZlcnNlZXJMaXN0OiBhbnkpIHtcclxuICAgIHJldHVybiBvdmVyc2Vlckxpc3QubWFwKCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgZm91bmRVc2VyID0gYWxsVXNlckxpc3QuZmluZChcclxuICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50Lm15X21lbWJlcl9pZCA9PT0gdXNlci5tZW1iZXJfaWRcclxuICAgICAgKTtcclxuICAgICAgaWYgKGZvdW5kVXNlcikge1xyXG4gICAgICAgIHJldHVybiBmb3VuZFVzZXI7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXNldHMgaXNzdWUgZm9ybVxyXG4gICAqL1xyXG4gIHJlc2V0SXNzdWVGb3JtKCkge1xyXG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0gPSB7XHJcbiAgICAgIGlzc3VlTmFtZTogJycsXHJcbiAgICAgIGV2aWRlbmNlUmVxdWlyZWQ6IDAsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb246ICcnLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOiBbXSxcclxuICAgICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IFtdLFxyXG4gICAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICAgIGlzc3VlQ2F0ZWdvcnk6IFtdLFxyXG4gICAgICBpc3N1ZUN1c3RvbVRhZzogW10sXHJcbiAgICAgIGlzc3VlUkM6IFtdLFxyXG4gICAgICBpc3N1ZVR5cGU6ICdpc3N1ZScsXHJcbiAgICAgIGlzQXNzaWduVG9NeXNlbGY6IGZhbHNlLFxyXG4gICAgICBlbnRydXN0VG86IFtdLFxyXG4gICAgICBpc3N1ZUR1ZURhdGU6ICcnLFxyXG4gICAgICBpc3N1ZUR1ZVRpbWU6IERFRkFVTFRfVElNRSxcclxuICAgICAgZXhjZXB0aW9uVHlwZTogMSxcclxuICAgICAgaXNzdWVSaXNrUmF0aW5nOiAxLFxyXG4gICAgICBpc3N1ZVByaW9yaXR5OiAxLFxyXG4gICAgICBpc3N1ZVJlY29tbWVuZGF0aW9uOiAnJyxcclxuICAgICAgaXNzdWVBc3NvY2lhdGVkUmlzazogJycsXHJcbiAgICAgIGlzc3VlQ0NVc2VyczogW10sXHJcbiAgICAgIGZhaWx1cmVDQ1VzZXJzOiBbXSxcclxuICAgIH07XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMpKSB7XHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1trZXldID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnNtaWxleU1lc3NhZ2UgPSBgVGhlIGlzc3VlIGhhcyBiZWVuIHJlcG9ydGVkLmA7XHJcbiAgICB0aGlzLm1vZGUgPSAnQ1JFQVRFJztcclxuICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHRoaXMubW9kZSk7XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRSQygpO1xyXG4gIH1cclxuICBjaGVja0Rlc2NyaXB0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb24gPT0gJzxicj4nKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb24gPSAnJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uID09ICc8YnI+Jykge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uID0gJyc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlzayA9PSAnPGJyPicpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlzayA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLnZhbGlkYXRlRGF0ZShldmVudC5zZWxlY3RlZFZhbHVlLCB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUpXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lID0gZXZlbnQuc2VsZWN0ZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRGF0ZSh0aW1lOiBzdHJpbmcsIGRhdGVTdHJpbmc6IGFueSkge1xyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSkge1xyXG4gICAgICBjb25zdCBpc01vbWVudCA9IG1vbWVudC5pc01vbWVudChkYXRlU3RyaW5nLmdldFRpbWUoKSk7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoXHJcbiAgICAgICAgaXNNb21lbnQgPyBkYXRlU3RyaW5nPy5kYXRlPy5fZCA6IGRhdGVTdHJpbmcuZ2V0VGltZSgpXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IGlzc3VlRHVlRGF0ZSA9IGN1cnJlbnREYXRlLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG1vbWVudChcclxuICAgICAgICBgJHtpc3N1ZUR1ZURhdGVbMV19LSR7aXNzdWVEdWVEYXRlWzJdfS0ke2lzc3VlRHVlRGF0ZVszXX0gJHt0aW1lfWAsXHJcbiAgICAgICAgJ01NTS1ERC1ZWVlZIEhIOm1tIGEnXHJcbiAgICAgICkudW5peCgpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWREYXRlICogMTAwMCA8IERhdGUubm93KCkpIHtcclxuICAgICAgICB0aGlzLmlzRnV0dXJlRGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5pc0Z1dHVyZURhdGUgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0RGF0ZVZhbGlkYXRpb25NZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuICdQbGVhc2Ugc2V0IGEgZnV0dXJlIGRhdGUuJztcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8cD5sb2ctYW4taXNzdWUgd29ya3MhPC9wPiAtLT5cclxuPGRpdiBjbGFzcz1cImxvZy1hbi1pc3N1ZVwiICpuZ0lmPVwiIXNob3dTbWlsZXlcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSlcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwiZmFsc2VcIj5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+TGlua2VkIHRvPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHQgZnVsbC13aWR0aFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IHJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj57e3JlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAqbmdJZj1cIlxyXG4gICAgICBbXHJcbiAgICAgICAgJ0FVRElUX1dPUktST09NJyxcclxuICAgICAgICAnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsXHJcbiAgICAgICAgJ0VYRUNVVEVfQVVESVRfUExBTidcclxuICAgICAgXS5pbmNsdWRlcyhvcGVuZWRGcm9tKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImZhbHNlXCI+XHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPklzc3VlIGxpbmtlZCB3aXRoPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImlzc3VlRGV0YWlscz8uYXVkaXRQbGFuTmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGlzc3VlRGV0YWlscz8uYXVkaXRQbGFuTmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj57e2lzc3VlRGV0YWlscz8uYXVkaXRQbGFuTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAqbmdJZj1cIlxyXG4gICAgICBbJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCAnRVhFQ1VURV9BVURJVF9QTEFOJ10uaW5jbHVkZXMoXHJcbiAgICAgICAgb3BlbmVkRnJvbVxyXG4gICAgICApIHx8IGlzUmlza0NvbnRyb2xWaXNpYmxlXHJcbiAgICBcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0NPTlRST0xfUklTSydcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NPTlRST0xfUklTSycgJiZcclxuICAgICAgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJsZWZ0XCJcclxuICAgICAgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID4gMFwiXHJcbiAgICA+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPT09IDAgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NPTlRST0xfUklTSydcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5TZWxlY3QgYSBjb250cm9sIG9yIHJpc2s8L2xhYmVsPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICFsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrIHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NPTlRST0xfUklTSycsICdJU1NVRV9DT05UUk9MX1JJU0snKVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgY29udHJvbCBvciByaXNrLlwiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWRcIlxyXG4gICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPiAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICBkZWxldGVJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAnSVNTVUVfQ09OVFJPTF9SSVNLJyxcclxuICAgICAgICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbUNvbnRyb2xOYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbUNvbnRyb2xOYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NPTlRST0xfUklTSycsbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1Db250cm9sTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DT05UUk9MX1JJU0snXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DT05UUk9MX1JJU0snLCAnSVNTVUVfQ09OVFJPTF9SSVNLJylcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPkVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidngtZm9ybS1ncm91cFwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhZyBvZiBsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWcgfCBrZXl2YWx1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8IS0tIHt7bG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnfGpzb259fSAtLT5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+e3tcclxuICAgICAgICAgIHRhZz8udmFsdWU/LmN1c3RvbV90YWdfbmFtZVxyXG4gICAgICAgIH19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0YWc/LnZhbHVlPy5jdXN0b21fdGFnX25hbWVcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWcudmFsdWUuY3VzdG9tX3RhZ192YWx1ZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBJc3N1ZSBUaXRsZSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9USVRMRScgJiZcclxuICAgICAgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIlxyXG4gICAgICAgIGFsdD1cIm5hbWVcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAhbG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoIHx8IGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfVElUTEUnXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUudHJpbSgpLmxlbmd0aCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1RJVExFJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+SXNzdWUgVGl0bGUgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQWRkIGEgbmFtZSBmb3IgdGhpcyBpc3N1ZVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWVcIlxyXG4gICAgICAgICAgKGZvY3VzaW4pPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfVElUTEUnLCAnSVNTVUVfVElUTEUnKVwiXHJcbiAgICAgICAgICAoa2V5dXApPVwiXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWU/LnRyaW0oKT8ubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICAgID8gcmVtb3ZlRXJyb3IoJ2lzc3VlTmFtZScpXHJcbiAgICAgICAgICAgICAgOiBudWxsXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgKGZvY3Vzb3V0KT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJycsICcnKVwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lID09ICcnIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfVElUTEUnXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLmxlbmd0aCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ0lTU1VFX1RJVExFJ1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1RJVExFJywgJ0lTU1VFX1RJVExFJylcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVOYW1lJylcIj5cclxuICAgICAgICAgIEVudGVyIGEgbmFtZSBmb3IgdGhpcyBpc3N1ZS5cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkF0dGFjaG1lbnRUcmFja1swXT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB1cGxvYWRpbmdGaWxlIG9mIEF0dGFjaG1lbnRUcmFja1swXVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgdXBsb2FkaW5nRmlsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8IS0tIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLWxpbmUtbG9hZGVyIFtsb2FkZXJIZWlnaHRdPVwiMlwiPjwvYXBwLWxpbmUtbG9hZGVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsZSBvZiBsb2dJc3N1ZUZvcm0/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGZpbGU/Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCAnSVNTVUVfREVTQ1JJUFRJT04nKVwiXHJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDx2Y29tcGx5LWVkaXRvclxyXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICAgICAgICAgIGZpbGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgICAgIGxpbms6IHRydWUsXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpcHRpb24nXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgKHNlbmRTYXZlZEZpbGVzKT1cInNlbGVjdEZpbGUoJ0lTU1VFX0RFU0NSSVBUSU9OJywgJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cImNoZWNrRGVzY3JpcHRpb24oKVwiXHJcbiAgICAgICAgPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gaXNzdWUgdHlwZSBzdGFydC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1RJVExFJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnQgY2hlY2tlZFwiPlxyXG4gICAgICA8IS0tIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doYXQuc3ZnXCIgYWx0PVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoIHx8IGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfVElUTEUnXCI+IC0tPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+IElzc3VlIFR5cGUgPC9sYWJlbD5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBjbGFzcz1cIm1haW4tZmlsZWRcIlxyXG4gICAgICAgICAgbmFtZT1cImlzc3VlLXR5cGVcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGUgPT09ICdpc3N1ZSdcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRJc3N1ZVR5cGUoJ2lzc3VlJylcIlxyXG4gICAgICAgICAgPklzc3VlXHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcclxuICAgICAgICAgIG5hbWU9XCJpc3N1ZS10eXBlXCJcclxuICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVUeXBlID09PSAnaW5jaWRlbnQnXCJcclxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0SXNzdWVUeXBlKCdpbmNpZGVudCcpXCJcclxuICAgICAgICAgID5JbmNpZGVudFxyXG4gICAgICAgICAgPCEtLSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZjs8L2k+IC0tPlxyXG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIElzc3VlIENhdGVnb3J5IC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0NBVEVHT1JZJ1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ0FURUdPUlknICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPT09IDAgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ0FURUdPUlknXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQVRFR09SWSdcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Jc3N1ZSBDYXRlZ29yeTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeSB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NBVEVHT1JZJywgJ0lTU1VFX0NBVEVHT1JZJylcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgY2F0ZWdvcnkgZm9yIHRoaXMgaXNzdWVcIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgZGVsZXRlSXRlbSgnSVNTVUVfQ0FURUdPUlknLCBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0pXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmNhdGVnb3J5X25hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmNhdGVnb3J5X25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0FURUdPUlknLGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQVRFR09SWSdcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NBVEVHT1JZJywgJ0lTU1VFX0NBVEVHT1JZJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHBcclxuICAgICAgICAgIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXHJcbiAgICAgICAgICAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVDYXRlZ29yeScpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBTZWxlY3QgYW4gaXNzdWUgY2F0ZWdvcnkuXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidngtZm9ybS1ncm91cFwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhZyBvZiBsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPCEtLSB7e2xvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZ3xqc29ufX0gLS0+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPnt7IHRhZz8ubmFtZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInRhZz8ubmFtZVwiIFsobmdNb2RlbCldPVwidGFnLnZhbHVlXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAqbmdJZj1cImlzUkNWaXNpYmxlXCJcclxuICAgIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1JDJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1JDJ1wiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+UmVzcG9uc2liaWxpdHkgQ2VudGVyXHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgKm5nSWY9XCJpc1JDTWFuZGF0b3J5XCI+Kjwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVSQyB8fCBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9SQycsICdJU1NVRV9SQycpXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBSZXNwb25zaWJpbGl0eSBDZW50ZXIocylcIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNSQ1ByZVNlbGVjdGVkXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfUkMnLCBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkNbMF0pXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkNbMF0/Lml0ZW1fbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uaXNzdWVSQ1swXT8uaXRlbV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAxXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxyXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiUkMucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAre3sgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5zbGljZSgxKT8ubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9SQycgJiYgIWlzUkNQcmVTZWxlY3RlZFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfUkMnLCAnSVNTVUVfUkMnKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVSQycpXCI+XHJcbiAgICAgICAgICBTZWxlY3QgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBpc3N1ZS5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXBwLXBvcG92ZXIgI1JDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IHJjIG9mIGxvZ0lzc3VlRm9ybT8uaXNzdWVSQyB8IHNsaWNlIDogMTtcclxuICAgICAgICAgICAgICAgIGxldCBqID0gaW5kZXhcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfUkMnLCByYylcIlxyXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHJjPy5pdGVtX25hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBXaG8gLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfV0hPJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doby5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgKGxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPT09IDAgJiZcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8uaXNBc3NpZ25Ub015c2VsZikgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA+IDAgfHxcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmKSAmJlxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9XSE8nXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5XaG8/IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImxvZ0lzc3VlRm9ybT8uaXNBc3NpZ25Ub015c2VsZlwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5lbnRydXN0VG8gfHwgbG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1dITycsICdJU1NVRV9XSE8nKVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGZcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV2hvIGlzIHJlc3BvbnNpYmxlIGZvciBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eT9cIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfV0hPJywgbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0pXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXT8uZW1wbG95ZWVfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvWzBdPy5lbXBsb3llZV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX1dITycsbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9XSE8nXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9XSE8nLCAnSVNTVUVfV0hPJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdlbnRydXN0VG8nKVwiPlxyXG4gICAgICAgICAgU2VsZWN0IHRoZSBwZXJzb24gcmVzcG9uc2libGUgZm9yIHJlc29sdmluZyB0aGlzIGlzc3VlLlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInN3aXRjaC1yb3cgYWxpZ24tcmlnaHRcIlxyXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGFwcC1jcy1zd2l0Y2hcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJ1wiXHJcbiAgICAgICAgICAgIFsobmdWYWx1ZSldPVwibG9nSXNzdWVGb3JtLmlzQXNzaWduVG9NeXNlbGZcIlxyXG4gICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJhc3NpZ25NeXNlbGYoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID5PUiBBU1NJR04gVE8gTVlTRUxGPC9hcHAtY3Mtc3dpdGNoXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gTWF4aW11biBUaW1lIHRvIFJlc29sdmUgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfREFURV9USU1FJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlRGF0ZVwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doZW4uc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZUR1ZURhdGUgfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9EQVRFX1RJTUUnXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlRGF0ZSAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0RBVEVfVElNRSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgPk1heGltdW0gVGltZSB0byBSZXNvbHZlIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtdGltZS1waWNrZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwaWNrZXItZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgYSBkZWFkbGluZS5cIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxyXG4gICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAjZGF0ZVBpY2tlclxyXG4gICAgICAgICAgICAgIChvblNlbGVjdCk9XCJcclxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjbG9zZURhdGVQaWNrZXIoJGV2ZW50KTtcclxuICAgICAgICAgICAgICAgIHJlbW92ZUVycm9yKCdpc3N1ZUR1ZURhdGUnKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgW2NvbmZpZ109XCJkYXRlQ29uZmlnXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvZHAtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LW92ZXJsYXlcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJwaWNrZXItZ3JvdXBcIlxyXG4gICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgIChjbGljayk9XCJ0aW1lUGlja2VyLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJzZXRDdXJyZW50VGltZSgpXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWVcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lXCJcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidGltZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVGltZVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIFttaW5dPVwiY3VycmVudFRpbWVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk1NTs8L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxhcHAtcG9wb3ZlciAjdGltZVBpY2tlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxhcHAtdGltZS1waWNrZXJcclxuICAgICAgICAgICAgICBbdGltZV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lXCJcclxuICAgICAgICAgICAgICAob25UaW1lU2VsZWN0aW9uKT1cIlxyXG4gICAgICAgICAgICAgICAgb25UaW1lQ2hhbmdlZCgkZXZlbnQpOyB0aW1lUGlja2VyLmNsb3NlUG9wb3ZlcigndG9wJylcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+PC9hcHAtdGltZS1waWNrZXI+XHJcbiAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgICAgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlRHVlRGF0ZScpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBTZWxlY3QgdGhlIGRhdGUgYnkgd2hpY2ggdGhpcyBpc3N1ZSBuZWVkcyB0byBiZSByZXNvbHZlZC5cclxuICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiIWlzRnV0dXJlRGF0ZVwiPlxyXG4gICAgICAgICAge3sgZ2V0RGF0ZVZhbGlkYXRpb25NZXNzYWdlIH19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFJlY29tbWVuZGVkIEFjdGlvbnMgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjb21tZW5kZWQtYWN0aW9uLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIShsb2dJc3N1ZUZvcm0uaXNzdWVSZWNvbW1lbmRhdGlvbiB8IHNwYWNlQnJlYWtlcikubGVuZ3RoXCJcclxuICAgICAgLz5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cIihsb2dJc3N1ZUZvcm0uaXNzdWVSZWNvbW1lbmRhdGlvbiB8IHNwYWNlQnJlYWtlcikubGVuZ3RoID4gMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+UmVjb21tZW5kZWQgQWN0aW9ucyA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJBdHRhY2htZW50VHJhY2tbMV0/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXBsb2FkaW5nRmlsZSBvZiBBdHRhY2htZW50VHJhY2tbMV1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHVwbG9hZGluZ0ZpbGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLWxpbmUtbG9hZGVyIFtsb2FkZXJIZWlnaHRdPVwiMlwiPjwvYXBwLWxpbmUtbG9hZGVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzPy5sZW5ndGggPiAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgbG9nSXNzdWVGb3JtPy5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50c1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZT8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsICdSRUNPTU1FTkRFRF9BQ1RJT05TJylcIlxyXG4gICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8dmNvbXBseS1lZGl0b3JcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb25cIlxyXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICAgICAgZmlsZTogdHJ1ZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdSZWNvbW1lbmRlZCBhY3Rpb25zJ1xyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZVJlY29tbWVuZGF0aW9uPy50cmltKCk/Lmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICA/IHJlbW92ZUVycm9yKCdpc3N1ZVJlY29tbWVuZGF0aW9uJylcclxuICAgICAgICAgICAgICA6IG51bGxcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cImNoZWNrRGVzY3JpcHRpb24oKVwiXHJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnUkVDT01NRU5ERURfQUNUSU9OUycsICRldmVudClcIlxyXG4gICAgICAgID48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgICAgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlUmVjb21tZW5kYXRpb24nKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgU3BlY2lmeSB0aGUgcmVjb21tZW5kZWQgYWN0aW9ucyB0byByZXNvbHZlIHRoaXMgaXNzdWUuXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tICpuZ0lmPVwiIWhpZGRlbkxpc3QuaW5jbHVkZXMoJ1JJU0tfQ0xBU1NJRklDQVRJT04nKVwiICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiIC0tPlxyXG4gIDwhLS0gcmVtb3ZlZCB0aGUgYWJvdmUgY29uZGl0aW9uIHNpbmNlIFJpc2sgQ2xhc3NpZmljYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCBieSBkZWZhdWx0IGluIGxvZyBhbiBpc3N1ZSBmb3JtIC0tPlxyXG5cclxuICA8IS0tIFJpc2sgQ2xhc3NpZmljYXRpb24gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgaWQ9XCJyaXNrX2NsYXNzaWZpY2F0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJpc2tSYXRpbmdcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yaXNrcy5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/Lmlzc3VlUmlza1JhdGluZ1wiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJpc2tSYXRpbmdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UmlzayBDbGFzc2lmaWNhdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsYXNzaWZpY2F0aW9uXCI+XHJcbiAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgY2xhc3M9XCJsb3dcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2xhc3Mgb2Ygcmlza0NsYXNzaWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2NsYXNzLmNsYXNzXVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgbmFtZT1cImNsYXNzaWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiY2xhc3MudmFsdWVcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSaXNrUmF0aW5nID09PSBjbGFzcy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVSaXNrUmF0aW5nXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW4+e3sgY2xhc3MubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gRXhjZXB0aW9uIFR5cGUgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5FWENFUFRJT05fVFlQRVwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA+IC0xXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZXhjZXB0aW9uLXR5cGUuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IG51bGxcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA+IC0xXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RXhjZXB0aW9uIFR5cGU8L2xhYmVsPlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIGNsYXNzPVwibWFpbi1maWxlZFwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwiMVwiXHJcbiAgICAgICAgICBuYW1lPVwiZXhjZXB0aW9uLXR5cGVcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID09PSAxXCJcclxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0RXhjZXB0aW9uKDEpXCJcclxuICAgICAgICAgID5EZXNpZ24gRXhjZXB0aW9uXHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCIyXCJcclxuICAgICAgICAgIG5hbWU9XCJleGNlcHRpb24tdHlwZVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IDJcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFeGNlcHRpb24oMilcIlxyXG4gICAgICAgICAgPkVmZmVjdGl2ZW5lc3MgRXhjZXB0aW9uXHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUHJpb3JpdHkgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5QUklPUklUWVwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVQcmlvcml0eVwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVQcmlvcml0eVwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5ID4gMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlByaW9yaXR5PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xhc3NpZmljYXRpb25cIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJpb3JpdHkgb2Ygcmlza1Byb3JpdHlcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJbcHJpb3JpdHkuY2xhc3NdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiY2xhc3NpZmljYXRpb24tcHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJwcmlvcml0eS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5ID09PSBwcmlvcml0eS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVQcmlvcml0eVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHByaW9yaXR5Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIEFzc29jaWF0ZWQgUmlza3MgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlQXNzb2NpYXRlZFJpc2tcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3NvY2lhdGVkLXJpc2tzLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVBc3NvY2lhdGVkUmlzay50cmltKCkubGVuZ3RoXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQXNzb2NpYXRlZFJpc2sudHJpbSgpLmxlbmd0aFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkFzc29jaWF0ZWQgUmlza3MgPC9sYWJlbD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiQXR0YWNobWVudFRyYWNrWzJdPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVwbG9hZGluZ0ZpbGUgb2YgQXR0YWNobWVudFRyYWNrWzJdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyB1cGxvYWRpbmdGaWxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cz8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWxlIG9mIGxvZ0lzc3VlRm9ybT8uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGZpbGU/Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCAnQVNTT0NJQVRFRF9SSVNLUycpXCJcclxuICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHZjb21wbHktZWRpdG9yXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrXCJcclxuICAgICAgICAgIFtlZGl0b3JDb25maWddPVwie1xyXG4gICAgICAgICAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgICAgIGxpbms6IHRydWUsXHJcbiAgICAgICAgICAgIGZpbGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ0Fzc29jaWF0ZWQgUmlza3MnXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcclxuICAgICAgICAgIChzZW5kU2F2ZWRGaWxlcyk9XCJzZWxlY3RGaWxlKCdBU1NPQ0lBVEVEX1JJU0tTJywgJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gT3ZlcnNlZXIgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLk9WRVJTSUdIVFwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgICFbJ0lTU1VFX0NDJywgJ0lTU1VFX0ZDQyddLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKSAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImxlZnRcIlxyXG4gICAgICBbY2xhc3MuY2hlY2tlZF09XCJcclxuICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDBcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPT09IDApIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0NDJyB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9GQ0MnXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAwIHx8XHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NDJykgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfRkNDJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPk92ZXJzaWdodDwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzIHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPT09IDBcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NDJywgJ0lTU1VFX0NDJylcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldobyBzaG91bGQgaGF2ZSBvdmVyc2lnaHQgb2YgdGhpcyBpc3N1ZT9cIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NDJywgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0pXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJDQy5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAxXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICt7eyBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0MnLGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIiB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiQ0MucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ0MnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DQycsICdJU1NVRV9DQycpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2VycyB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPT09IDBcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9GQ0MnLCAnSVNTVUVfRkNDJylcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV2hvIHNob3VsZCBiZSBub3RpZmllZCBpZiB0aGUgaXNzdWUgaXMgbm90IHJlc29sdmVkP1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9GQ0MnLCBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdKVwiXHJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIkZDQy5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgK3t7IGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/LnNsaWNlKDEpLmxlbmd0aCB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0ZDQycsbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMVwiIHR5cGU9XCJidXR0b25cIiBhcHBQb3BvdmVyIChjbGljayk9XCJGQ0MucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5zbGljZSgxKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9GQ0MnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9GQ0MnLCAnSVNTVUVfRkNDJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXBwLXBvcG92ZXIgI0NDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IGNjIG9mIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzIHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgbGV0IGogPSBpbmRleFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQycsIGNjKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgY2M/LmVtcGxveWVlX25hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgIDxhcHAtcG9wb3ZlciAjRkNDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IGZjYyBvZiBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzIHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgbGV0IGogPSBpbmRleFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9GQ0MnLCBmY2MpXCJcclxuICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBmY2M/LmVtcGxveWVlX25hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBFdmlkZW5jZSAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkVWSURFTkNFXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwidHJ1ZVwiPlxyXG4gICAgICA8IS0tIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2Zvcm1hdC1ldmlkZW5jZS5zdmdcIiBhbHQ9XCJpbVwiPiAtLT5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RXZpZGVuY2U8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZm9ybWF0XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIlxyXG4gICAgICAgICAgICA+RG8geW91IHdhbnQgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgaXNzdWUgdG8gYmVcclxuICAgICAgICAgICAgdXBsb2FkZWQ/PC9zcGFuXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidmaWxlLWV2aWRlbmNlJ1wiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIjFcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXZpZGVuY2VSZXF1aXJlZCA9PT0gMVwiXHJcbiAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFdmlkZW5jZSgxKVwiXHJcbiAgICAgICAgICAgICAgPlllc1xyXG4gICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidmaWxlLWV2aWRlbmNlJ1wiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIjBcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXZpZGVuY2VSZXF1aXJlZCA9PT0gMFwiXHJcbiAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFdmlkZW5jZSgwKVwiXHJcbiAgICAgICAgICAgICAgPk5vXHJcbiAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxyXG48YXBwLXJhZGlvLWxpc3RcclxuICBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9DQVRHT1JZXCJcclxuICBbaXRlbXNMaXN0XT1cImxpc3REYXRhPy5jYXRlZ29yeUxpc3RcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5XCJcclxuICBbaWRlbnRpZmllcktleV09XCInY2F0ZWdvcnlfaWQnXCJcclxuICBbZGlzcGxheUtleV09XCInY2F0ZWdvcnlfbmFtZSdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9DQVRFR09SWSdcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9DQVRFR09SWScpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfQ0FURUdPUlknKVwiXHJcbj5cclxuPC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjxhcHAtcmVzcG9uc2liaWxpdHktY2VudGVycy1saXN0XHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX1JDJ1wiXHJcbiAgW3Jlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RdPVwibGlzdERhdGE/LnJjTGlzdFwiXHJcbiAgW3JhZGlvU2VsZWN0aW9uXT1cImZhbHNlXCJcclxuICBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnNdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDXCJcclxuICBbcmNJZEtleV09XCInaXRlbV9pZCdcIlxyXG4gIChzYXZlU2VsZWN0ZWRMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX1JDJylcIlxyXG4gIChjbG9zZVJjTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX1JDJylcIlxyXG4+XHJcbjwvYXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlcnMtbGlzdD5cclxuXHJcbjxhcHAtcmFkaW8tbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX1dIT1wiXHJcbiAgW2l0ZW1zTGlzdF09XCJsaXN0RGF0YT8udXNlckxpc3RcIlxyXG4gIFt0d29Db2x1bW5dPVwidHJ1ZVwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmVudHJ1c3RUb1wiXHJcbiAgW2lkZW50aWZpZXJLZXldPVwiJ2VtcGxveWVlX2lkJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2VtcGxveWVlX25hbWUnXCJcclxuICBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfV0hPJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX1dITycpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfV0hPJylcIlxyXG4+PC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjxhcHAtcmFkaW8tbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX1RZUEVcIlxyXG4gIFtpdGVtc0xpc3RdPVwibGlzdERhdGE/Lmlzc3VlVHlwZUxpc3RcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGVcIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidpc3N1ZV9pZCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidpc3N1ZV90eXBlX25hbWUnXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfVFlQRSdcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9UWVBFJylcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9UWVBFJylcIlxyXG4+PC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjxhcHAtY2hlY2tib3gtbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX0NDXCJcclxuICBbdHdvQ29sdW1uXT1cInRydWVcIlxyXG4gIFtpdGVtc0xpc3RdPVwiXHJcbiAgICBsaXN0RGF0YS51c2VyTGlzdFxyXG4gICAgICB8IHVzZXJGaWx0ZXJcclxuICAgICAgICA6ICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICA6IGxvZ0lzc3VlRm9ybS5lbnRydXN0VG9cclxuICAgICAgICA6IHsgZW1wbG95ZWVfZW1haWw6IGN1cnJlbnRVc2VyPy5lbWFpbCB9XHJcbiAgXCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzXCJcclxuICBbaWRlbnRpZmllcktleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIlxyXG4gIFt0b29sdGlwS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9DQydcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9DQycpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfQ0MnKVwiXHJcbj48L2FwcC1jaGVja2JveC1saXN0PlxyXG5cclxuPGFwcC1jaGVja2JveC1saXN0XHJcbiAgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfRkNDXCJcclxuICBbdHdvQ29sdW1uXT1cInRydWVcIlxyXG4gIFtpdGVtc0xpc3RdPVwiXHJcbiAgICBsaXN0RGF0YS51c2VyTGlzdFxyXG4gICAgICB8IHVzZXJGaWx0ZXJcclxuICAgICAgICA6ICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICA6IGxvZ0lzc3VlRm9ybS5lbnRydXN0VG9cclxuICAgICAgICA6IHsgZW1wbG95ZWVfZW1haWw6IGN1cnJlbnRVc2VyPy5lbWFpbCB9XHJcbiAgXCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnNcIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidlbXBsb3llZV9uYW1lJ1wiXHJcbiAgW3Rvb2x0aXBLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX0ZDQydcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9GQ0MnKVwiXHJcbiAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX0ZDQycpXCJcclxuPjwvYXBwLWNoZWNrYm94LWxpc3Q+XHJcblxyXG48YXBwLXJlc3BvbnNpYmlsaXR5LXJpc2stc2VsZWN0b3JcclxuICBbbG9hZGluZ109XCJpc1Jpc2tDb250cm9sTG9hZGluZ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX0NPTlRST0xfUklTSydcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9DT05UUk9MX1JJU0snKVwiXHJcbiAgKGZldGNoTGlzdCk9XCJnZXRMaW5rYWdlKGlzc3VlRGV0YWlscz8uYXVkaXRPYmpJZCwgJGV2ZW50KVwiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX0NPTlRST0xfUklTSycpXCJcclxuICBbYWN0aXZlRW50aXR5XT1cImxvZ0lzc3VlRm9ybT8ubGlua2FnZVR5cGVcIlxyXG4gIFtsaXN0SXRlbXNdPVwibGlzdERhdGE/LmxpbmthZ2VMaXN0XCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrXCJcclxuPjwvYXBwLXJlc3BvbnNpYmlsaXR5LXJpc2stc2VsZWN0b3I+XHJcblxyXG48YXBwLXNtaWxleS1kaWFsb2ctaW5saW5lXHJcbiAgKm5nSWY9XCJzaG93U21pbGV5XCJcclxuICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcclxuICBbYWN0aW9uQnV0dG9uc109XCJhY3Rpb25CdXR0b25zXCJcclxuICAoYWN0aW9uKT1cImFjdGlvbigkZXZlbnQpXCJcclxuICAoY2xvc2VTbWlsZXkpPVwiY2xvc2VTbWlsZXkoJGV2ZW50KVwiXHJcbj5cclxuPC9hcHAtc21pbGV5LWRpYWxvZy1pbmxpbmU+XHJcbiJdfQ==
|