@lowcodeunit/applications-flow-common 1.36.195-integration → 1.36.196-social-ui-performance-issues
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/controls/build-pipeline-form/build-pipeline-form.component.mjs +4 -4
- package/esm2020/lib/controls/connected-source/connected-source.component.mjs +4 -4
- package/esm2020/lib/controls/devops-source-control-form/devops-source-control-form.component.mjs +4 -4
- package/esm2020/lib/controls/dfs-modifiers-form/dfs-modifiers-form.component.mjs +7 -4
- package/esm2020/lib/controls/edit-application-form/edit-application-form.component.mjs +4 -4
- package/esm2020/lib/controls/edit-project-form/edit-project-form.component.mjs +4 -4
- package/esm2020/lib/controls/emulated-devices-toggle/emulated-devices-toggle.component.mjs +4 -4
- package/esm2020/lib/controls/processor-details-form/processor-details-form.component.mjs +7 -4
- package/esm2020/lib/controls/security-toggle/security-toggle.component.mjs +4 -4
- package/esm2020/lib/controls/state-config-form/state-config-form.component.mjs +7 -4
- package/esm2020/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.mjs +5 -4
- package/esm2020/lib/dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component.mjs +7 -4
- package/esm2020/lib/dialogs/edit-application-dialog/edit-application-dialog.component.mjs +1 -4
- package/esm2020/lib/dialogs/edit-project-dialog/edit-project-dialog.component.mjs +5 -4
- package/esm2020/lib/dialogs/feed-header-dialog/feed-header-dialog.component.mjs +7 -4
- package/esm2020/lib/dialogs/new-application-dialog/new-application-dialog.component.mjs +4 -4
- package/esm2020/lib/dialogs/processor-details-dialog/processor-details-dialog.component.mjs +9 -5
- package/esm2020/lib/dialogs/source-control-dialog/source-control-dialog.component.mjs +5 -4
- package/esm2020/lib/dialogs/state-config-dialog/state-config-dialog.component.mjs +9 -5
- package/esm2020/lib/elements/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2020/lib/elements/feed-header/feed-header.component.mjs +5 -4
- package/esm2020/lib/elements/main-feed-card/main-feed-card.component.mjs +7 -4
- package/esm2020/lib/elements/project-info-card/project-info-card.component.mjs +4 -4
- package/esm2020/lib/elements/projects/projects.component.mjs +7 -4
- package/esm2020/lib/elements/slotted-card/slotted-card.component.mjs +5 -4
- package/esm2020/lib/services/eac.service.mjs +46 -45
- package/esm2020/lib/services/project.service.mjs +3 -2
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +157 -123
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +155 -123
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts +1 -1
- package/lib/controls/connected-source/connected-source.component.d.ts +1 -1
- package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts +1 -1
- package/lib/controls/dfs-modifiers-form/dfs-modifiers-form.component.d.ts +1 -1
- package/lib/controls/edit-application-form/edit-application-form.component.d.ts +1 -1
- package/lib/controls/edit-project-form/edit-project-form.component.d.ts +1 -1
- package/lib/controls/emulated-devices-toggle/emulated-devices-toggle.component.d.ts +1 -1
- package/lib/controls/processor-details-form/processor-details-form.component.d.ts +1 -1
- package/lib/controls/security-toggle/security-toggle.component.d.ts +1 -1
- package/lib/controls/state-config-form/state-config-form.component.d.ts +1 -1
- package/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.d.ts +1 -1
- package/lib/dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component.d.ts +1 -1
- package/lib/dialogs/edit-application-dialog/edit-application-dialog.component.d.ts +1 -1
- package/lib/dialogs/edit-project-dialog/edit-project-dialog.component.d.ts +1 -1
- package/lib/dialogs/feed-header-dialog/feed-header-dialog.component.d.ts +1 -1
- package/lib/dialogs/new-application-dialog/new-application-dialog.component.d.ts +1 -1
- package/lib/dialogs/processor-details-dialog/processor-details-dialog.component.d.ts +1 -1
- package/lib/dialogs/source-control-dialog/source-control-dialog.component.d.ts +1 -1
- package/lib/dialogs/state-config-dialog/state-config-dialog.component.d.ts +1 -1
- package/lib/elements/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/elements/feed-header/feed-header.component.d.ts +1 -1
- package/lib/elements/main-feed-card/main-feed-card.component.d.ts +1 -1
- package/lib/elements/project-info-card/project-info-card.component.d.ts +1 -1
- package/lib/elements/projects/projects.component.d.ts +1 -1
- package/lib/elements/slotted-card/slotted-card.component.d.ts +1 -1
- package/lib/services/eac.service.d.ts +2 -2
- package/package.json +1 -1
|
@@ -71,10 +71,10 @@ export class BuildPipelineFormComponent {
|
|
|
71
71
|
get SourceControls() {
|
|
72
72
|
return this.Environment.Sources || {};
|
|
73
73
|
}
|
|
74
|
-
get State() {
|
|
75
|
-
return this.eacSvc.State;
|
|
76
|
-
}
|
|
77
74
|
ngOnInit() {
|
|
75
|
+
this.eacSvc.State.subscribe((state) => {
|
|
76
|
+
this.State = state;
|
|
77
|
+
});
|
|
78
78
|
// console.log('BuildPipeline = ', this.BuildPipeline)
|
|
79
79
|
// this.BuildPipelineFormGroup = this.formBuilder.group({});
|
|
80
80
|
// if (this.BuildPipelineFormGroup != null) {
|
|
@@ -254,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
254
254
|
type: Output,
|
|
255
255
|
args: ['response-event']
|
|
256
256
|
}] } });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcGlwZWxpbmUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9jb250cm9scy9idWlsZC1waXBlbGluZS1mb3JtL2J1aWxkLXBpcGVsaW5lLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvYnVpbGQtcGlwZWxpbmUtZm9ybS9idWlsZC1waXBlbGluZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUlILFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBdUIsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBWXhELE9BQU8sRUFFSCxxQkFBcUIsR0FFeEIsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTzdDLE1BQU0sT0FBTywwQkFBMEI7SUFpR25DLFlBQ2MsTUFBa0IsRUFDbEIsV0FBd0IsRUFDeEIsV0FBb0M7UUFGcEMsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFFOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFqRkQsSUFBVyxRQUFRO1FBQ2YsK0VBQStFO1FBQy9FLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLGNB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QyxHQUFHLEVBQUUsRUFBRTtZQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN4QyxDQUFDLENBQ0osQ0FBQztRQUNGLHlEQUF5RDtJQUM3RCxDQUFDOzt1SEF2VVEsMEJBQTBCOzJHQUExQiwwQkFBMEIscVlDOUJ2QyxneEtBcUpBOzJGRHZIYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0kseUJBQXlCO2lLQVc1QixrQkFBa0I7c0JBRHhCLEtBQUs7dUJBQUMsc0JBQXNCO2dCQUl0QixRQUFRO3NCQURkLEtBQUs7dUJBQUMsVUFBVTtnQkFJVixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsaUJBQWlCO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkFJcEIsY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBSWpCLGFBQWE7c0JBRG5CLE1BQU07dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VNb2RlbGVkUmVzcG9uc2UsIEd1aWQgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEVhQ0FydGlmYWN0LFxuICAgIEVhQ0Rldk9wc0FjdGlvbixcbiAgICBFYUNFbnZpcm9ubWVudEFzQ29kZSxcbiAgICBFYUNTb3VyY2VDb250cm9sLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbnMtZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRWFDU2VydmljZSxcbiAgICBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3QsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgIFByb2plY3RIb3N0aW5nRGV0YWlscyxcbiAgICBQcm9qZWN0SG9zdGluZ09wdGlvbixcbn0gZnJvbSAnLi4vLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS1idWlsZC1waXBlbGluZS1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnVpbGQtcGlwZWxpbmUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnVpbGQtcGlwZWxpbmUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCdWlsZFBpcGVsaW5lRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLy9QUk9QRVJUSUVTXG5cbiAgICAvLyBASW5wdXQoJ2J1aWxkLXBpcGVsaW5lJylcbiAgICBwdWJsaWMgQnVpbGRQaXBlbGluZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCdkZXZvcHMtYWN0aW9uLWxvb2t1cCcpXG4gICAgcHVibGljIERldk9wc0FjdGlvbkxvb2t1cDogc3RyaW5nO1xuXG4gICAgQElucHV0KCdkaXNhYmxlZCcpXG4gICAgcHVibGljIERpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCdlbnZpcm9ubWVudCcpXG4gICAgcHVibGljIEVudmlyb25tZW50OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICAgIEBJbnB1dCgnZW52aXJvbm1lbnQtbG9va3VwJylcbiAgICBwdWJsaWMgRW52aXJvbm1lbnRMb29rdXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgnaG9zdGluZy1kZXRhaWxzJylcbiAgICBwdWJsaWMgSG9zdGluZ0RldGFpbHM6IFByb2plY3RIb3N0aW5nRGV0YWlscztcblxuICAgIEBPdXRwdXQoJ3Jlc3BvbnNlLWV2ZW50JylcbiAgICBwdWJsaWMgUmVzcG9uc2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICBwdWJsaWMgZ2V0IEFydGlmYWN0KCk6IEVhQ0FydGlmYWN0IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJBUlRJRkFDVDogXCIsIHRoaXMuRW52aXJvbm1lbnQ/LkFydGlmYWN0c1t0aGlzLkFydGlmYWN0TG9va3VwXSk7XG4gICAgICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50Py5BcnRpZmFjdHMgJiYgdGhpcy5BcnRpZmFjdExvb2t1cFxuICAgICAgICAgICAgPyB0aGlzLkVudmlyb25tZW50Py5BcnRpZmFjdHNbdGhpcy5BcnRpZmFjdExvb2t1cF0gfHwge31cbiAgICAgICAgICAgIDoge307XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBBcnRpZmFjdExvb2t1cCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBhcnRMb29rdXAgPSB0aGlzLkRldk9wc0FjdGlvbj8uQXJ0aWZhY3RMb29rdXBzXG4gICAgICAgICAgICA/IHRoaXMuRGV2T3BzQWN0aW9uPy5BcnRpZmFjdExvb2t1cHNbMF1cbiAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICByZXR1cm4gYXJ0TG9va3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgQnVpbGRQaXBlbGluZUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXA/LmdldCgnYnVpbGRQaXBlbGluZScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgRGV2T3BzQWN0aW9uKCk6IEVhQ0Rldk9wc0FjdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnMgJiYgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBcbiAgICAgICAgICAgID8gdGhpcy5FbnZpcm9ubWVudC5EZXZPcHNBY3Rpb25zW3RoaXMuRGV2T3BzQWN0aW9uTG9va3VwXSB8fCB7fVxuICAgICAgICAgICAgOiB7fTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbnMoKTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNEZXZPcHNBY3Rpb24gfSB7XG4gICAgICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnMgfHwge307XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBEZXZPcHNBY3Rpb25OYW1lRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5nZXQoJ2Rldk9wc0FjdGlvbk5hbWUnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IE5QTVRva2VuRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5nZXQoJ25wbVRva2VuJyk7XG4gICAgfVxuXG4gICAgLy8gKGhvKSA9PiBoby5Mb29rdXAgPT09IHRoaXMuQnVpbGRQaXBlbGluZVxuICAgIHB1YmxpYyBnZXQgU2VsZWN0ZWRIb3N0aW5nT3B0aW9uKCk6IFByb2plY3RIb3N0aW5nT3B0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuSG9zdGluZ0RldGFpbHM/Lkhvc3RpbmdPcHRpb25zPy5maW5kKFxuICAgICAgICAgICAgKGhvKSA9PiBoby5Mb29rdXAgPT09IHRoaXMuQnVpbGRQaXBlbGluZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgU2VsZWN0ZWRIb3N0aW5nT3B0aW9uSW5wdXRDb250cm9sVmFsdWVzKCk6IHtcbiAgICAgICAgW2xvb2t1cDogc3RyaW5nXTogYW55O1xuICAgIH0ge1xuICAgICAgICByZXR1cm4gdGhpcy5TZWxlY3RlZEhvc3RpbmdPcHRpb24/LklucHV0cz8ucmVkdWNlKChwcmV2LCBjdXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmVzW2N1ci5Mb29rdXBdID1cbiAgICAgICAgICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAuY29udHJvbHNbY3VyLkxvb2t1cF0udmFsdWU7XG5cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0sIHt9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNvdXJjZUNvbnRyb2xMb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Tb3VyY2VDb250cm9scyB8fCB7fSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTb3VyY2VDb250cm9scygpOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ1NvdXJjZUNvbnRyb2wgfSB7XG4gICAgICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50LlNvdXJjZXMgfHwge307XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTdGF0ZSgpOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5lYWNTdmMuU3RhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIEJ1aWxkUGlwZWxpbmVGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscyA9IG5ldyBQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTtcbiAgICAgICAgdGhpcy5SZXNwb25zZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ0J1aWxkUGlwZWxpbmUgPSAnLCB0aGlzLkJ1aWxkUGlwZWxpbmUpXG5cbiAgICAgICAgLy8gdGhpcy5CdWlsZFBpcGVsaW5lRm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7fSk7XG5cbiAgICAgICAgLy8gaWYgKHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cCAhPSBudWxsKSB7XG4gICAgICAgIC8vICAgdGhpcy5CdWlsZFBpcGVsaW5lRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ2hvc3RpbmdEZXRhaWxzJyk7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAvLyB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgLy8gICAnaG9zdGluZ0RldGFpbHMnLFxuICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIC8vIGJ1aWxkUGlwZWxpbmU6IFt0aGlzLkJ1aWxkUGlwZWxpbmUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgIH0pO1xuICAgICAgICAvLyApO1xuXG4gICAgICAgIHRoaXMubG9hZFByb2plY3RIb3N0aW5nRGV0YWlscygpO1xuICAgICAgICAvLyB0aGlzLnNldHVwQ29udHJvbHNGb3JGb3JtKCk7XG4gICAgfVxuXG4gICAgLy9BUEkgTUVUSE9EU1xuXG4gICAgcHVibGljIEJ1aWxkUGlwZWxpbmVDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICAvL2ZvciBzb21lIHJlYXNvbiB0aGlzIHZhbHVlIGlzIGNvbWluZyBiYWNrIHVuZGVmaW5lZFxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJ1aWxkIHBpcGVsaW5lIHZhbHVlOiBcIiwgdGhpcy5CdWlsZFBpcGVsaW5lRm9ybUNvbnRyb2w/LnZhbHVlKVxuICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmUgPSB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtQ29udHJvbD8udmFsdWU7XG5cbiAgICAgICAgdGhpcy5zZXR1cENvbnRyb2xzRm9yRm9ybSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBTdWJtaXRCdWlsZFBpcGVsaW5lKCkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcInN1Ym1pdHRpbmcgYnVpbGQgcGlwZWxpbmU6IFwiLCB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAudmFsdWUpO1xuICAgICAgICB0aGlzLlNhdmVFbnZpcm9ubWVudCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBTYXZlRW52aXJvbm1lbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNhdmVFbnZSZXE6IFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdCA9IHtcbiAgICAgICAgICAgIEVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5FbnZpcm9ubWVudCxcbiAgICAgICAgICAgICAgICBBcnRpZmFjdHM6IHRoaXMuRW52aXJvbm1lbnQuQXJ0aWZhY3RzIHx8IHt9LFxuICAgICAgICAgICAgICAgIERldk9wc0FjdGlvbnM6IHRoaXMuRW52aXJvbm1lbnQuRGV2T3BzQWN0aW9ucyB8fCB7fSxcbiAgICAgICAgICAgICAgICBTZWNyZXRzOiB0aGlzLkVudmlyb25tZW50LlNlY3JldHMgfHwge30sXG4gICAgICAgICAgICAgICAgU291cmNlczogdGhpcy5FbnZpcm9ubWVudC5Tb3VyY2VzIHx8IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEVudmlyb25tZW50TG9va3VwOiB0aGlzLkVudmlyb25tZW50TG9va3VwLFxuICAgICAgICAgICAgRW50ZXJwcmlzZURhdGFUb2tlbnM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBhcnRpZmFjdExvb2t1cDogc3RyaW5nO1xuXG4gICAgICAgIGxldCBhcnRpZmFjdDogRWFDQXJ0aWZhY3QgPSB7XG4gICAgICAgICAgICAuLi50aGlzLkFydGlmYWN0LFxuICAgICAgICAgICAgLi4udGhpcy5TZWxlY3RlZEhvc3RpbmdPcHRpb25JbnB1dENvbnRyb2xWYWx1ZXMsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCF0aGlzLkFydGlmYWN0TG9va3VwKSB7XG4gICAgICAgICAgICBhcnRpZmFjdExvb2t1cCA9IEd1aWQuQ3JlYXRlUmF3KCk7XG5cbiAgICAgICAgICAgIGFydGlmYWN0ID0ge1xuICAgICAgICAgICAgICAgIC4uLmFydGlmYWN0LFxuICAgICAgICAgICAgICAgIFR5cGU6IHRoaXMuU2VsZWN0ZWRIb3N0aW5nT3B0aW9uLkFydGlmYWN0VHlwZSxcbiAgICAgICAgICAgICAgICBOYW1lOiB0aGlzLlNlbGVjdGVkSG9zdGluZ09wdGlvbi5OYW1lLFxuICAgICAgICAgICAgICAgIE5QTVJlZ2lzdHJ5OiAnaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvJyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcnRpZmFjdExvb2t1cCA9IHRoaXMuQXJ0aWZhY3RMb29rdXA7XG4gICAgICAgIH1cblxuICAgICAgICBzYXZlRW52UmVxLkVudmlyb25tZW50LkFydGlmYWN0c1thcnRpZmFjdExvb2t1cF0gPSBhcnRpZmFjdDtcblxuICAgICAgICBsZXQgZGV2T3BzQWN0aW9uTG9va3VwOiBzdHJpbmc7XG5cbiAgICAgICAgaWYgKCF0aGlzLkRldk9wc0FjdGlvbkxvb2t1cCkge1xuICAgICAgICAgICAgZGV2T3BzQWN0aW9uTG9va3VwID0gR3VpZC5DcmVhdGVSYXcoKTtcblxuICAgICAgICAgICAgY29uc3QgZG9hOiBFYUNEZXZPcHNBY3Rpb24gPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5EZXZPcHNBY3Rpb24sXG4gICAgICAgICAgICAgICAgQXJ0aWZhY3RMb29rdXBzOiBbYXJ0aWZhY3RMb29rdXBdLFxuICAgICAgICAgICAgICAgIE5hbWU6IHRoaXMuRGV2T3BzQWN0aW9uTmFtZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgIFBhdGg6IHRoaXMuU2VsZWN0ZWRIb3N0aW5nT3B0aW9uLlBhdGgsXG4gICAgICAgICAgICAgICAgVGVtcGxhdGVzOiB0aGlzLlNlbGVjdGVkSG9zdGluZ09wdGlvbi5UZW1wbGF0ZXMsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAodGhpcy5OUE1Ub2tlbkZvcm1Db250cm9sPy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlY3JldExvb2t1cCA9ICducG0tYWNjZXNzLXRva2VuJztcblxuICAgICAgICAgICAgICAgIGRvYS5TZWNyZXRMb29rdXBzID0gW3NlY3JldExvb2t1cF07XG5cbiAgICAgICAgICAgICAgICBzYXZlRW52UmVxLkVudmlyb25tZW50LlNlY3JldHNbc2VjcmV0TG9va3VwXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgTmFtZTogJ05QTSBBY2Nlc3MgVG9rZW4nLFxuICAgICAgICAgICAgICAgICAgICBEYXRhVG9rZW5Mb29rdXA6IHNlY3JldExvb2t1cCxcbiAgICAgICAgICAgICAgICAgICAgS25vd25BczogJ05QTV9UT0tFTicsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHNhdmVFbnZSZXEuRW50ZXJwcmlzZURhdGFUb2tlbnNbc2VjcmV0TG9va3VwXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgTmFtZTogc2F2ZUVudlJlcS5FbnZpcm9ubWVudC5TZWNyZXRzW3NlY3JldExvb2t1cF0uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgICAgICAgICBzYXZlRW52UmVxLkVudmlyb25tZW50LlNlY3JldHNbc2VjcmV0TG9va3VwXS5OYW1lLFxuICAgICAgICAgICAgICAgICAgICBWYWx1ZTogdGhpcy5OUE1Ub2tlbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNhdmVFbnZSZXEuRW52aXJvbm1lbnQuRGV2T3BzQWN0aW9uc1tkZXZPcHNBY3Rpb25Mb29rdXBdID0gZG9hO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGV2T3BzQWN0aW9uTG9va3VwID0gdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXA7XG5cbiAgICAgICAgICAgIGNvbnN0IGRvYTogRWFDRGV2T3BzQWN0aW9uID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuRGV2T3BzQWN0aW9uLFxuICAgICAgICAgICAgICAgIE5hbWU6IHRoaXMuRGV2T3BzQWN0aW9uTmFtZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgc2F2ZUVudlJlcS5FbnZpcm9ubWVudC5EZXZPcHNBY3Rpb25zW2Rldk9wc0FjdGlvbkxvb2t1cF0gPSBkb2E7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVhY1N2Yy5TYXZlRW52aXJvbm1lbnRBc0NvZGUoc2F2ZUVudlJlcSkudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLlJlc3BvbnNlRXZlbnQuZW1pdChyZXMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAgSGVscGVyc1xuICAgIHByb3RlY3RlZCBzZXR1cENvbnRyb2xzRm9yRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5CdWlsZFBpcGVsaW5lID1cbiAgICAgICAgLy8gICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmUgfHwgdGhpcy5Ib3N0aW5nRGV0YWlscz8uSG9zdGluZ09wdGlvbnNcbiAgICAgICAgLy8gICAgICAgICAgID8gdGhpcy5Ib3N0aW5nRGV0YWlscz8uSG9zdGluZ09wdGlvbnNbMF0/Lkxvb2t1cFxuICAgICAgICAvLyAgICAgICAgICAgOiAnJztcblxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImhvc3RpbmcgZGV0YWlsczogXCIsIHRoaXMuSG9zdGluZ0RldGFpbHMpXG5cbiAgICAgICAgZm9yIChjb25zdCBjdHJsTmFtZSBpbiB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgICAgICAgIC8vZGV2T3BzQWN0aW9uIGRvZXNuJ3QgZXhpc3RcbiAgICAgICAgICAgIC8vcmVtb3ZlcyBob3N0aW5nIGRldGFpbHNcbiAgICAgICAgICAgIGlmIChjdHJsTmFtZSAhPT0gJ2J1aWxkUGlwZWxpbmUnICYmIGN0cmxOYW1lICE9PSAnZGV2T3BzQWN0aW9uJykge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwicmVtb3ZpbmcgY29udHJvbDogXCIsIGN0cmxOYW1lKVxuICAgICAgICAgICAgICAgIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGN0cmxOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2J1aWxkUGlwZWxpbmUnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHRoaXMuQnVpbGRQaXBlbGluZSB8fCAnJywgW1xuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBdKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2Rldk9wc0FjdGlvbk5hbWUnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRGV2T3BzQWN0aW9uPy5OYW1lIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuU2VsZWN0ZWRIb3N0aW5nT3B0aW9uPy5OYW1lIHx8XG4gICAgICAgICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwic2VsZWN0ZWQgaG9zdGluZyBvcHRpb25zOiBcIiwgdGhpcy5TZWxlY3RlZEhvc3RpbmdPcHRpb24uSW5wdXRzKTtcblxuICAgICAgICB0aGlzLlNlbGVjdGVkSG9zdGluZ09wdGlvbj8uSW5wdXRzPy5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IGlucHV0LlJlcXVpcmVkID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW107XG5cbiAgICAgICAgICAgIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgIGlucHV0Lkxvb2t1cCxcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQXJ0aWZhY3RbaW5wdXQuTG9va3VwXSB8fCBpbnB1dC5EZWZhdWx0VmFsdWUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAvLyBpZiAodGhpcy5EaXNhYmxlZCkge1xuICAgICAgICAgICAgLy8gICB0aGlzLkZvcm1Hcm91cC5jb250cm9sc1tpbnB1dC5Mb29rdXBdLmRpc2FibGUoKTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Db250cm9sPy52YWx1ZSA9PT0gJ25wbS1yZWxlYXNlJykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ25wbSByZWxlYXNlJyk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cD8uY29udHJvbHM/Lm5wbVRva2VuKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25wbSB0b2tlbiBpZicpO1xuICAgICAgICAgICAgICAgIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAnbnBtVG9rZW4nLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRGlzYWJsZWQgPyBbXSA6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLkRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5jb250cm9scy5ucG1Ub2tlbi5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5CdWlsZFBpcGVsaW5lRm9ybUNvbnRyb2w/LnZhbHVlID09PSAnZ2l0aHViLWFydGlmYWN0cy1yZWxlYXNlJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXA/LmNvbnRyb2xzPy5ucG1Ub2tlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCducG1Ub2tlbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMuTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTG9hZFByb2plY3RIb3N0aW5nRGV0YWlscygpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxQcm9qZWN0SG9zdGluZ0RldGFpbHM+KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscyA9IHJlc3BvbnNlLk1vZGVsO1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwicmVzcG9uc2U6IFwiLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBob3N0T3B0aW9uID0gdGhpcy5Ib3N0aW5nRGV0YWlscz8uSG9zdGluZ09wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChobykgPT4gaG8uUGF0aCA9PT0gdGhpcy5EZXZPcHNBY3Rpb24uUGF0aFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5CdWlsZFBpcGVsaW5lID0gaG9zdE9wdGlvbj8uTG9va3VwO1xuXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJCdWlsZCBQaXBlbGluZSBIRVJFPSBcIiwgdGhpcy5CdWlsZFBpcGVsaW5lKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBDb250cm9sc0ZvckZvcm0oKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0VSUjogJywgZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLkhvc3RpbmdEZXRhaWxzLkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ0hPU1RJTkcgREVUQUlMUzogJywgdGhpcy5Ib3N0aW5nRGV0YWlscyk7XG4gICAgfVxufVxuIiwiPGZvcm1cbiAgICBjbGFzcz1cImZvcm0tY2FyZFwiXG4gICAgW2Zvcm1Hcm91cF09XCJCdWlsZFBpcGVsaW5lRm9ybUdyb3VwXCJcbiAgICAobmdTdWJtaXQpPVwiU3VibWl0QnVpbGRQaXBlbGluZSgpXCJcbj5cbiAgICA8IS0tIDxtYXQtY2FyZFxuICAgICAgY2xhc3M9XCJzcHJlYWRcIiAgXG4gICAgPiAtLT5cbiAgICA8IS0tIDxtYXQtY2FyZC1oZWFkZXI+XG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT4gQnVpbGQgUGlwZWxpbmUgPC9tYXQtY2FyZC10aXRsZT5cblxuICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgQ2hhbmdlcyBtYWRlIGhlcmUgYXJlIHJlZmxlY3RlZCBmb3IgYWxsIHNvdXJjZXMgdXNpbmcgdGhpc1xuICAgICAgICAgIERldk9wc0FjdGlvblxuICAgICAgICA8L21hdC1oaW50PlxuICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+IC0tPlxuXG4gICAgPCEtLSA8bWF0LWNhcmQtY29udGVudD4gLS0+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiSG9zdGluZ0RldGFpbHM/LkxvYWRpbmcgfHwgU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgICAgPHNrZWxldG9uLWJsb2NrIGNsYXNzPVwicy1ibG9ja1wiIGVmZmVjdD1cIndhdmVcIj48L3NrZWxldG9uLWJsb2NrPlxuXG4gICAgICAgIDxza2VsZXRvbi1ibG9jayBjbGFzcz1cInMtYmxvY2tcIiBlZmZlY3Q9XCJ3YXZlXCI+PC9za2VsZXRvbi1ibG9jaz5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2VsZWN0ZWRIb3N0aW5nT3B0aW9uPy5JbnB1dHNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaG9zdE9wdGlvbiBvZiBIb3N0aW5nRGV0YWlscz8uSG9zdGluZ09wdGlvbnNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxza2VsZXRvbi1ibG9jayBjbGFzcz1cInMtYmxvY2tcIiBlZmZlY3Q9XCJ3YXZlXCI+PC9za2VsZXRvbi1ibG9jaz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8c2tlbGV0b24tYmxvY2sgKm5nSWY9XCJcIiBjbGFzcz1cInMtYmxvY2tcIiBlZmZlY3Q9XCJ3YXZlXCI+PC9za2VsZXRvbi1ibG9jaz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhSG9zdGluZ0RldGFpbHM/LkxvYWRpbmcgJiYgIVN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgICAgIDwhLS0gPGRpdiAgKm5nSWY9XCIhSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcIj4gLS0+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJ1aWxkUGlwZWxpbmVcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQnVpbGQgUGlwZWxpbmVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJCdWlsZFBpcGVsaW5lQ2hhbmdlZCgpXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaG9zdE9wdGlvbiBvZiBIb3N0aW5nRGV0YWlscz8uSG9zdGluZ09wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaSA9IGluZGV4XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaG9zdE9wdGlvbi5Mb29rdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGhvc3RPcHRpb24uTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgICAgICAgIDxtYXQtaGludD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBob3N0T3B0aW9uIG9mIEhvc3RpbmdEZXRhaWxzPy5Ib3N0aW5nT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkJ1aWxkUGlwZWxpbmUgPT0gaG9zdE9wdGlvbj8uTG9va3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBob3N0T3B0aW9uLkRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGV2T3BzQWN0aW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lIG9mIERldk9wcyBBY3Rpb25cIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwidHJ1ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGlucHV0IG9mIFNlbGVjdGVkSG9zdGluZ09wdGlvbj8uSW5wdXRzXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImlucHV0Lkxvb2t1cFwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJpbnB1dC5QbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJpbnB1dC5SZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgIDxtYXQtaGludD57eyBpbnB1dC5IaW50IH19PC9tYXQtaGludD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJCdWlsZFBpcGVsaW5lID09ICducG0tcmVsZWFzZSdcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoIHdpdGgtaGludCBwYWRkaW5nLWJvdHRvbS00XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdFByZWZpeD5zZWN1cml0eTwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJucG0tdG9rZW5cIlxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5wbVRva2VuXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJOUE0gdG9rZW5cIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiIURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCItd2Via2l0LXRleHQtc2VjdXJpdHk6IGRpc2NcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICAgICAgICBTZWN1cmVseSBwdWJsaXNoIHRvIE5QTSwgcHJvdmlkZSBhbiBOUE0gUGVyc29uYWwgQWNjZXNzXG4gICAgICAgICAgICAgICAgICAgIFRva2VuIChQQVQpIHdpdGggcHVibGlzaCBhY2Nlc3MgdG8gdGhlIG9yZ2FuaXphdGlvbiB1c2VkIGZvclxuICAgICAgICAgICAgICAgICAgICB5b3VyIE5QTSBwYWNrYWdlcy4gTGVhcm4gaG93IHRvIGNyZWF0ZSBhbmQgdmlldyBhY2Nlc3NcbiAgICAgICAgICAgICAgICAgICAgdG9rZW5zXG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9kb2NzLm5wbWpzLmNvbS9jcmVhdGluZy1hbmQtdmlld2luZy1hY2Nlc3MtdG9rZW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByaW1hcnktbGlua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gPC9kaXY+IC0tPlxuXG4gICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cIkhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ByZWFkXCI+XG4gICAgICAgICAgICAgIDxsY3UtbG9hZGVyIHN0eWxlPVwibWFyZ2luOiBhdXRvXCIgW2xvYWRpbmddPVwidHJ1ZVwiPjwvbGN1LWxvYWRlcj5cbiAgICAgICAgICBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpbi0zXCI+XG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwibWF0LXRpdGxlXCI+TG9hZGluZyBob3N0aW5nIGRldGFpbHM8L2g0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIDwvbWF0LWNhcmQtY29udGVudD4gLS0+XG5cbiAgICA8IS0tIDxtYXQtY2FyZC1hY3Rpb25zIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+IC0tPlxuXG4gICAgPCEtLSA8YnV0dG9uIFxuICAgICAgICAgICpuZ0lmPVwiIVN0YXRlPy5Mb2FkaW5nXCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgICB0eXBlPVwic3VibWl0XCIgXG4gICAgICAgICAgZnhGbGV4PVwiMTAwJVwiIFxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIFxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhQnVpbGRQaXBlbGluZUZvcm1Hcm91cC52YWxpZCB8fCAhQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5kaXJ0eVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj5cbiAgICAgICAgICBTYXZlIEJ1aWxkIFBpcGVsaW5lXG4gICAgICAgIDwvYnV0dG9uPiAtLT5cbiAgICA8IS0tIDxsY3UtbG9hZGVyIFtsb2FkaW5nXT1cIlN0YXRlPy5Mb2FkaW5nXCI+PC9sY3UtbG9hZGVyPiAgIC0tPlxuXG4gICAgPCEtLSA8L21hdC1jYXJkLWFjdGlvbnM+IC0tPlxuICAgIDwhLS0gPC9tYXQtY2FyZD4gLS0+XG48L2Zvcm0+XG4iXX0=
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcGlwZWxpbmUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9jb250cm9scy9idWlsZC1waXBlbGluZS1mb3JtL2J1aWxkLXBpcGVsaW5lLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvYnVpbGQtcGlwZWxpbmUtZm9ybS9idWlsZC1waXBlbGluZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUlILFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBdUIsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBWXhELE9BQU8sRUFFSCxxQkFBcUIsR0FFeEIsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTzdDLE1BQU0sT0FBTywwQkFBMEI7SUFtR25DLFlBQ2MsTUFBa0IsRUFDbEIsV0FBd0IsRUFDeEIsV0FBb0M7UUFGcEMsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFFOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFuRkQsSUFBVyxRQUFRO1FBQ2YsK0VBQStFO1FBQy9FLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLGNB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QUE0RDtZQUU1RCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoQyxDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN4QyxDQUFDLENBQ0osQ0FBQztRQUNGLHlEQUF5RDtJQUM3RCxDQUFDOzt1SEE1VVEsMEJBQTBCOzJHQUExQiwwQkFBMEIscVlDOUJ2QyxneEtBcUpBOzJGRHZIYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0kseUJBQXlCO2lLQVc1QixrQkFBa0I7c0JBRHhCLEtBQUs7dUJBQUMsc0JBQXNCO2dCQUl0QixRQUFRO3NCQURkLEtBQUs7dUJBQUMsVUFBVTtnQkFJVixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsaUJBQWlCO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkFJcEIsY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBSWpCLGFBQWE7c0JBRG5CLE1BQU07dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VNb2RlbGVkUmVzcG9uc2UsIEd1aWQgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEVhQ0FydGlmYWN0LFxuICAgIEVhQ0Rldk9wc0FjdGlvbixcbiAgICBFYUNFbnZpcm9ubWVudEFzQ29kZSxcbiAgICBFYUNTb3VyY2VDb250cm9sLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbnMtZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRWFDU2VydmljZSxcbiAgICBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3QsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgIFByb2plY3RIb3N0aW5nRGV0YWlscyxcbiAgICBQcm9qZWN0SG9zdGluZ09wdGlvbixcbn0gZnJvbSAnLi4vLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS1idWlsZC1waXBlbGluZS1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnVpbGQtcGlwZWxpbmUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnVpbGQtcGlwZWxpbmUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCdWlsZFBpcGVsaW5lRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLy9QUk9QRVJUSUVTXG5cbiAgICAvLyBASW5wdXQoJ2J1aWxkLXBpcGVsaW5lJylcbiAgICBwdWJsaWMgQnVpbGRQaXBlbGluZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCdkZXZvcHMtYWN0aW9uLWxvb2t1cCcpXG4gICAgcHVibGljIERldk9wc0FjdGlvbkxvb2t1cDogc3RyaW5nO1xuXG4gICAgQElucHV0KCdkaXNhYmxlZCcpXG4gICAgcHVibGljIERpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCdlbnZpcm9ubWVudCcpXG4gICAgcHVibGljIEVudmlyb25tZW50OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICAgIEBJbnB1dCgnZW52aXJvbm1lbnQtbG9va3VwJylcbiAgICBwdWJsaWMgRW52aXJvbm1lbnRMb29rdXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgnaG9zdGluZy1kZXRhaWxzJylcbiAgICBwdWJsaWMgSG9zdGluZ0RldGFpbHM6IFByb2plY3RIb3N0aW5nRGV0YWlscztcblxuICAgIEBPdXRwdXQoJ3Jlc3BvbnNlLWV2ZW50JylcbiAgICBwdWJsaWMgUmVzcG9uc2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICBwdWJsaWMgZ2V0IEFydGlmYWN0KCk6IEVhQ0FydGlmYWN0IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJBUlRJRkFDVDogXCIsIHRoaXMuRW52aXJvbm1lbnQ/LkFydGlmYWN0c1t0aGlzLkFydGlmYWN0TG9va3VwXSk7XG4gICAgICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50Py5BcnRpZmFjdHMgJiYgdGhpcy5BcnRpZmFjdExvb2t1cFxuICAgICAgICAgICAgPyB0aGlzLkVudmlyb25tZW50Py5BcnRpZmFjdHNbdGhpcy5BcnRpZmFjdExvb2t1cF0gfHwge31cbiAgICAgICAgICAgIDoge307XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBBcnRpZmFjdExvb2t1cCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBhcnRMb29rdXAgPSB0aGlzLkRldk9wc0FjdGlvbj8uQXJ0aWZhY3RMb29rdXBzXG4gICAgICAgICAgICA/IHRoaXMuRGV2T3BzQWN0aW9uPy5BcnRpZmFjdExvb2t1cHNbMF1cbiAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICByZXR1cm4gYXJ0TG9va3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgQnVpbGRQaXBlbGluZUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXA/LmdldCgnYnVpbGRQaXBlbGluZScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgRGV2T3BzQWN0aW9uKCk6IEVhQ0Rldk9wc0FjdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnMgJiYgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBcbiAgICAgICAgICAgID8gdGhpcy5FbnZpcm9ubWVudC5EZXZPcHNBY3Rpb25zW3RoaXMuRGV2T3BzQWN0aW9uTG9va3VwXSB8fCB7fVxuICAgICAgICAgICAgOiB7fTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbnMoKTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNEZXZPcHNBY3Rpb24gfSB7XG4gICAgICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnMgfHwge307XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBEZXZPcHNBY3Rpb25OYW1lRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5nZXQoJ2Rldk9wc0FjdGlvbk5hbWUnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IE5QTVRva2VuRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5nZXQoJ25wbVRva2VuJyk7XG4gICAgfVxuXG4gICAgLy8gKGhvKSA9PiBoby5Mb29rdXAgPT09IHRoaXMuQnVpbGRQaXBlbGluZVxuICAgIHB1YmxpYyBnZXQgU2VsZWN0ZWRIb3N0aW5nT3B0aW9uKCk6IFByb2plY3RIb3N0aW5nT3B0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuSG9zdGluZ0RldGFpbHM/Lkhvc3RpbmdPcHRpb25zPy5maW5kKFxuICAgICAgICAgICAgKGhvKSA9PiBoby5Mb29rdXAgPT09IHRoaXMuQnVpbGRQaXBlbGluZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgU2VsZWN0ZWRIb3N0aW5nT3B0aW9uSW5wdXRDb250cm9sVmFsdWVzKCk6IHtcbiAgICAgICAgW2xvb2t1cDogc3RyaW5nXTogYW55O1xuICAgIH0ge1xuICAgICAgICByZXR1cm4gdGhpcy5TZWxlY3RlZEhvc3RpbmdPcHRpb24/LklucHV0cz8ucmVkdWNlKChwcmV2LCBjdXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmVzW2N1ci5Mb29rdXBdID1cbiAgICAgICAgICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAuY29udHJvbHNbY3VyLkxvb2t1cF0udmFsdWU7XG5cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0sIHt9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFNvdXJjZUNvbnRyb2xMb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Tb3VyY2VDb250cm9scyB8fCB7fSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTb3VyY2VDb250cm9scygpOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ1NvdXJjZUNvbnRyb2wgfSB7XG4gICAgICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50LlNvdXJjZXMgfHwge307XG4gICAgfVxuXG4gICAgcHVibGljIFN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGU7XG5cbiAgICAvLyBwdWJsaWMgZ2V0IFN0YXRlKCk6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmVhY1N2Yy5TdGF0ZTtcbiAgICAvLyB9XG5cbiAgICBwdWJsaWMgQnVpbGRQaXBlbGluZUZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByb3RlY3RlZCBhcHBzRmxvd1N2YzogQXBwbGljYXRpb25zRmxvd1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLkhvc3RpbmdEZXRhaWxzID0gbmV3IFByb2plY3RIb3N0aW5nRGV0YWlscygpO1xuICAgICAgICB0aGlzLlJlc3BvbnNlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVhY1N2Yy5TdGF0ZS5zdWJzY3JpYmUoKHN0YXRlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdCdWlsZFBpcGVsaW5lID0gJywgdGhpcy5CdWlsZFBpcGVsaW5lKVxuXG4gICAgICAgIC8vIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe30pO1xuXG4gICAgICAgIC8vIGlmICh0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAgIT0gbnVsbCkge1xuICAgICAgICAvLyAgIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdob3N0aW5nRGV0YWlscycpO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgLy8gdGhpcy5CdWlsZFBpcGVsaW5lRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgIC8vICAgJ2hvc3RpbmdEZXRhaWxzJyxcbiAgICAgICAgdGhpcy5CdWlsZFBpcGVsaW5lRm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICAvLyBidWlsZFBpcGVsaW5lOiBbdGhpcy5CdWlsZFBpcGVsaW5lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gKTtcblxuICAgICAgICB0aGlzLmxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTtcbiAgICAgICAgLy8gdGhpcy5zZXR1cENvbnRyb2xzRm9yRm9ybSgpO1xuICAgIH1cblxuICAgIC8vQVBJIE1FVEhPRFNcblxuICAgIHB1YmxpYyBCdWlsZFBpcGVsaW5lQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgLy9mb3Igc29tZSByZWFzb24gdGhpcyB2YWx1ZSBpcyBjb21pbmcgYmFjayB1bmRlZmluZWRcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJidWlsZCBwaXBlbGluZSB2YWx1ZTogXCIsIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Db250cm9sPy52YWx1ZSlcbiAgICAgICAgdGhpcy5CdWlsZFBpcGVsaW5lID0gdGhpcy5CdWlsZFBpcGVsaW5lRm9ybUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgICAgIHRoaXMuc2V0dXBDb250cm9sc0ZvckZvcm0oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU3VibWl0QnVpbGRQaXBlbGluZSgpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJzdWJtaXR0aW5nIGJ1aWxkIHBpcGVsaW5lOiBcIiwgdGhpcy5CdWlsZFBpcGVsaW5lRm9ybUdyb3VwLnZhbHVlKTtcbiAgICAgICAgdGhpcy5TYXZlRW52aXJvbm1lbnQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2F2ZUVudmlyb25tZW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzYXZlRW52UmVxOiBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3QgPSB7XG4gICAgICAgICAgICBFbnZpcm9ubWVudDoge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuRW52aXJvbm1lbnQsXG4gICAgICAgICAgICAgICAgQXJ0aWZhY3RzOiB0aGlzLkVudmlyb25tZW50LkFydGlmYWN0cyB8fCB7fSxcbiAgICAgICAgICAgICAgICBEZXZPcHNBY3Rpb25zOiB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnMgfHwge30sXG4gICAgICAgICAgICAgICAgU2VjcmV0czogdGhpcy5FbnZpcm9ubWVudC5TZWNyZXRzIHx8IHt9LFxuICAgICAgICAgICAgICAgIFNvdXJjZXM6IHRoaXMuRW52aXJvbm1lbnQuU291cmNlcyB8fCB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBFbnZpcm9ubWVudExvb2t1cDogdGhpcy5FbnZpcm9ubWVudExvb2t1cCxcbiAgICAgICAgICAgIEVudGVycHJpc2VEYXRhVG9rZW5zOiB7fSxcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgYXJ0aWZhY3RMb29rdXA6IHN0cmluZztcblxuICAgICAgICBsZXQgYXJ0aWZhY3Q6IEVhQ0FydGlmYWN0ID0ge1xuICAgICAgICAgICAgLi4udGhpcy5BcnRpZmFjdCxcbiAgICAgICAgICAgIC4uLnRoaXMuU2VsZWN0ZWRIb3N0aW5nT3B0aW9uSW5wdXRDb250cm9sVmFsdWVzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghdGhpcy5BcnRpZmFjdExvb2t1cCkge1xuICAgICAgICAgICAgYXJ0aWZhY3RMb29rdXAgPSBHdWlkLkNyZWF0ZVJhdygpO1xuXG4gICAgICAgICAgICBhcnRpZmFjdCA9IHtcbiAgICAgICAgICAgICAgICAuLi5hcnRpZmFjdCxcbiAgICAgICAgICAgICAgICBUeXBlOiB0aGlzLlNlbGVjdGVkSG9zdGluZ09wdGlvbi5BcnRpZmFjdFR5cGUsXG4gICAgICAgICAgICAgICAgTmFtZTogdGhpcy5TZWxlY3RlZEhvc3RpbmdPcHRpb24uTmFtZSxcbiAgICAgICAgICAgICAgICBOUE1SZWdpc3RyeTogJ2h0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLycsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXJ0aWZhY3RMb29rdXAgPSB0aGlzLkFydGlmYWN0TG9va3VwO1xuICAgICAgICB9XG5cbiAgICAgICAgc2F2ZUVudlJlcS5FbnZpcm9ubWVudC5BcnRpZmFjdHNbYXJ0aWZhY3RMb29rdXBdID0gYXJ0aWZhY3Q7XG5cbiAgICAgICAgbGV0IGRldk9wc0FjdGlvbkxvb2t1cDogc3RyaW5nO1xuXG4gICAgICAgIGlmICghdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXApIHtcbiAgICAgICAgICAgIGRldk9wc0FjdGlvbkxvb2t1cCA9IEd1aWQuQ3JlYXRlUmF3KCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGRvYTogRWFDRGV2T3BzQWN0aW9uID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuRGV2T3BzQWN0aW9uLFxuICAgICAgICAgICAgICAgIEFydGlmYWN0TG9va3VwczogW2FydGlmYWN0TG9va3VwXSxcbiAgICAgICAgICAgICAgICBOYW1lOiB0aGlzLkRldk9wc0FjdGlvbk5hbWVGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICBQYXRoOiB0aGlzLlNlbGVjdGVkSG9zdGluZ09wdGlvbi5QYXRoLFxuICAgICAgICAgICAgICAgIFRlbXBsYXRlczogdGhpcy5TZWxlY3RlZEhvc3RpbmdPcHRpb24uVGVtcGxhdGVzLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuTlBNVG9rZW5Gb3JtQ29udHJvbD8udmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWNyZXRMb29rdXAgPSAnbnBtLWFjY2Vzcy10b2tlbic7XG5cbiAgICAgICAgICAgICAgICBkb2EuU2VjcmV0TG9va3VwcyA9IFtzZWNyZXRMb29rdXBdO1xuXG4gICAgICAgICAgICAgICAgc2F2ZUVudlJlcS5FbnZpcm9ubWVudC5TZWNyZXRzW3NlY3JldExvb2t1cF0gPSB7XG4gICAgICAgICAgICAgICAgICAgIE5hbWU6ICdOUE0gQWNjZXNzIFRva2VuJyxcbiAgICAgICAgICAgICAgICAgICAgRGF0YVRva2VuTG9va3VwOiBzZWNyZXRMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgIEtub3duQXM6ICdOUE1fVE9LRU4nLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBzYXZlRW52UmVxLkVudGVycHJpc2VEYXRhVG9rZW5zW3NlY3JldExvb2t1cF0gPSB7XG4gICAgICAgICAgICAgICAgICAgIE5hbWU6IHNhdmVFbnZSZXEuRW52aXJvbm1lbnQuU2VjcmV0c1tzZWNyZXRMb29rdXBdLk5hbWUsXG4gICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZUVudlJlcS5FbnZpcm9ubWVudC5TZWNyZXRzW3NlY3JldExvb2t1cF0uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgVmFsdWU6IHRoaXMuTlBNVG9rZW5Gb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzYXZlRW52UmVxLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnNbZGV2T3BzQWN0aW9uTG9va3VwXSA9IGRvYTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRldk9wc0FjdGlvbkxvb2t1cCA9IHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwO1xuXG4gICAgICAgICAgICBjb25zdCBkb2E6IEVhQ0Rldk9wc0FjdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLkRldk9wc0FjdGlvbixcbiAgICAgICAgICAgICAgICBOYW1lOiB0aGlzLkRldk9wc0FjdGlvbk5hbWVGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNhdmVFbnZSZXEuRW52aXJvbm1lbnQuRGV2T3BzQWN0aW9uc1tkZXZPcHNBY3Rpb25Mb29rdXBdID0gZG9hO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lYWNTdmMuU2F2ZUVudmlyb25tZW50QXNDb2RlKHNhdmVFbnZSZXEpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5SZXNwb25zZUV2ZW50LmVtaXQocmVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gIEhlbHBlcnNcbiAgICBwcm90ZWN0ZWQgc2V0dXBDb250cm9sc0ZvckZvcm0oKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuQnVpbGRQaXBlbGluZSA9XG4gICAgICAgIC8vICAgICAgICAgdGhpcy5CdWlsZFBpcGVsaW5lIHx8IHRoaXMuSG9zdGluZ0RldGFpbHM/Lkhvc3RpbmdPcHRpb25zXG4gICAgICAgIC8vICAgICAgICAgICA/IHRoaXMuSG9zdGluZ0RldGFpbHM/Lkhvc3RpbmdPcHRpb25zWzBdPy5Mb29rdXBcbiAgICAgICAgLy8gICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJob3N0aW5nIGRldGFpbHM6IFwiLCB0aGlzLkhvc3RpbmdEZXRhaWxzKVxuXG4gICAgICAgIGZvciAoY29uc3QgY3RybE5hbWUgaW4gdGhpcy5CdWlsZFBpcGVsaW5lRm9ybUdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICAvL2Rldk9wc0FjdGlvbiBkb2Vzbid0IGV4aXN0XG4gICAgICAgICAgICAvL3JlbW92ZXMgaG9zdGluZyBkZXRhaWxzXG4gICAgICAgICAgICBpZiAoY3RybE5hbWUgIT09ICdidWlsZFBpcGVsaW5lJyAmJiBjdHJsTmFtZSAhPT0gJ2Rldk9wc0FjdGlvbicpIHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcInJlbW92aW5nIGNvbnRyb2w6IFwiLCBjdHJsTmFtZSlcbiAgICAgICAgICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAucmVtb3ZlQ29udHJvbChjdHJsTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdidWlsZFBpcGVsaW5lJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh0aGlzLkJ1aWxkUGlwZWxpbmUgfHwgJycsIFtcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgXSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdkZXZPcHNBY3Rpb25OYW1lJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkRldk9wc0FjdGlvbj8uTmFtZSB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLlNlbGVjdGVkSG9zdGluZ09wdGlvbj8uTmFtZSB8fFxuICAgICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcInNlbGVjdGVkIGhvc3Rpbmcgb3B0aW9uczogXCIsIHRoaXMuU2VsZWN0ZWRIb3N0aW5nT3B0aW9uLklucHV0cyk7XG5cbiAgICAgICAgdGhpcy5TZWxlY3RlZEhvc3RpbmdPcHRpb24/LklucHV0cz8uZm9yRWFjaCgoaW5wdXQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBpbnB1dC5SZXF1aXJlZCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdO1xuXG4gICAgICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICBpbnB1dC5Mb29rdXAsXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLkFydGlmYWN0W2lucHV0Lkxvb2t1cF0gfHwgaW5wdXQuRGVmYXVsdFZhbHVlIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gaWYgKHRoaXMuRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIC8vICAgdGhpcy5Gb3JtR3JvdXAuY29udHJvbHNbaW5wdXQuTG9va3VwXS5kaXNhYmxlKCk7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtQ29udHJvbD8udmFsdWUgPT09ICducG0tcmVsZWFzZScpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCducG0gcmVsZWFzZScpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXA/LmNvbnRyb2xzPy5ucG1Ub2tlbikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCducG0gdG9rZW4gaWYnKTtcbiAgICAgICAgICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgJ25wbVRva2VuJyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkRpc2FibGVkID8gW10gOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5EaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAuY29udHJvbHMubnBtVG9rZW4uZGlzYWJsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Db250cm9sPy52YWx1ZSA9PT0gJ2dpdGh1Yi1hcnRpZmFjdHMtcmVsZWFzZSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5CdWlsZFBpcGVsaW5lRm9ybUdyb3VwPy5jb250cm9scz8ubnBtVG9rZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnbnBtVG9rZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkUHJvamVjdEhvc3RpbmdEZXRhaWxzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLkhvc3RpbmdEZXRhaWxzLkxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmFwcHNGbG93U3ZjLkxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8UHJvamVjdEhvc3RpbmdEZXRhaWxzPikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMgPSByZXNwb25zZS5Nb2RlbDtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcInJlc3BvbnNlOiBcIiwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaG9zdE9wdGlvbiA9IHRoaXMuSG9zdGluZ0RldGFpbHM/Lkhvc3RpbmdPcHRpb25zPy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAoaG8pID0+IGhvLlBhdGggPT09IHRoaXMuRGV2T3BzQWN0aW9uLlBhdGhcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuQnVpbGRQaXBlbGluZSA9IGhvc3RPcHRpb24/Lkxvb2t1cDtcblxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiQnVpbGQgUGlwZWxpbmUgSEVSRT0gXCIsIHRoaXMuQnVpbGRQaXBlbGluZSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwQ29udHJvbHNGb3JGb3JtKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFUlI6ICcsIGVycik7XG4gICAgICAgICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdIT1NUSU5HIERFVEFJTFM6ICcsIHRoaXMuSG9zdGluZ0RldGFpbHMpO1xuICAgIH1cbn1cbiIsIjxmb3JtXG4gICAgY2xhc3M9XCJmb3JtLWNhcmRcIlxuICAgIFtmb3JtR3JvdXBdPVwiQnVpbGRQaXBlbGluZUZvcm1Hcm91cFwiXG4gICAgKG5nU3VibWl0KT1cIlN1Ym1pdEJ1aWxkUGlwZWxpbmUoKVwiXG4+XG4gICAgPCEtLSA8bWF0LWNhcmRcbiAgICAgIGNsYXNzPVwic3ByZWFkXCIgIFxuICAgID4gLS0+XG4gICAgPCEtLSA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+IEJ1aWxkIFBpcGVsaW5lIDwvbWF0LWNhcmQtdGl0bGU+XG5cbiAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgIENoYW5nZXMgbWFkZSBoZXJlIGFyZSByZWZsZWN0ZWQgZm9yIGFsbCBzb3VyY2VzIHVzaW5nIHRoaXNcbiAgICAgICAgICBEZXZPcHNBY3Rpb25cbiAgICAgICAgPC9tYXQtaGludD5cbiAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPiAtLT5cblxuICAgIDwhLS0gPG1hdC1jYXJkLWNvbnRlbnQ+IC0tPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nIHx8IFN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgICAgIDxza2VsZXRvbi1ibG9jayBjbGFzcz1cInMtYmxvY2tcIiBlZmZlY3Q9XCJ3YXZlXCI+PC9za2VsZXRvbi1ibG9jaz5cblxuICAgICAgICA8c2tlbGV0b24tYmxvY2sgY2xhc3M9XCJzLWJsb2NrXCIgZWZmZWN0PVwid2F2ZVwiPjwvc2tlbGV0b24tYmxvY2s+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNlbGVjdGVkSG9zdGluZ09wdGlvbj8uSW5wdXRzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhvc3RPcHRpb24gb2YgSG9zdGluZ0RldGFpbHM/Lkhvc3RpbmdPcHRpb25zXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c2tlbGV0b24tYmxvY2sgY2xhc3M9XCJzLWJsb2NrXCIgZWZmZWN0PVwid2F2ZVwiPjwvc2tlbGV0b24tYmxvY2s+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPHNrZWxldG9uLWJsb2NrICpuZ0lmPVwiXCIgY2xhc3M9XCJzLWJsb2NrXCIgZWZmZWN0PVwid2F2ZVwiPjwvc2tlbGV0b24tYmxvY2s+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIUhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nICYmICFTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgICA8IS0tIDxkaXYgICpuZ0lmPVwiIUhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXCI+IC0tPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJidWlsZFBpcGVsaW5lXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkJ1aWxkIFBpcGVsaW5lXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiQnVpbGRQaXBlbGluZUNoYW5nZWQoKVwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGhvc3RPcHRpb24gb2YgSG9zdGluZ0RldGFpbHM/Lkhvc3RpbmdPcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImhvc3RPcHRpb24uTG9va3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBob3N0T3B0aW9uLk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaG9zdE9wdGlvbiBvZiBIb3N0aW5nRGV0YWlscz8uSG9zdGluZ09wdGlvbnNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJCdWlsZFBpcGVsaW5lID09IGhvc3RPcHRpb24/Lkxvb2t1cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaG9zdE9wdGlvbi5EZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRldk9wc0FjdGlvbk5hbWVcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmFtZSBvZiBEZXZPcHMgQWN0aW9uXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZD1cInRydWVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbnB1dCBvZiBTZWxlY3RlZEhvc3RpbmdPcHRpb24/LklucHV0c1wiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpbnB1dC5Mb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaW5wdXQuUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiaW5wdXQuUmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWhpbnQ+e3sgaW5wdXQuSGludCB9fTwvbWF0LWhpbnQ+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiQnVpbGRQaXBlbGluZSA9PSAnbnBtLXJlbGVhc2UnXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aCB3aXRoLWhpbnQgcGFkZGluZy1ib3R0b20tNFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRQcmVmaXg+c2VjdXJpdHk8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGlkPVwibnBtLXRva2VuXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJucG1Ub2tlblwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTlBNIHRva2VuXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiFEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiLXdlYmtpdC10ZXh0LXNlY3VyaXR5OiBkaXNjXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxtYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgU2VjdXJlbHkgcHVibGlzaCB0byBOUE0sIHByb3ZpZGUgYW4gTlBNIFBlcnNvbmFsIEFjY2Vzc1xuICAgICAgICAgICAgICAgICAgICBUb2tlbiAoUEFUKSB3aXRoIHB1Ymxpc2ggYWNjZXNzIHRvIHRoZSBvcmdhbml6YXRpb24gdXNlZCBmb3JcbiAgICAgICAgICAgICAgICAgICAgeW91ciBOUE0gcGFja2FnZXMuIExlYXJuIGhvdyB0byBjcmVhdGUgYW5kIHZpZXcgYWNjZXNzXG4gICAgICAgICAgICAgICAgICAgIHRva2Vuc1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vZG9jcy5ucG1qcy5jb20vY3JlYXRpbmctYW5kLXZpZXdpbmctYWNjZXNzLXRva2Vuc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcmltYXJ5LWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBoZXJlLlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIDwvZGl2PiAtLT5cblxuICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJIb3N0aW5nRGV0YWlscz8uTG9hZGluZ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwcmVhZFwiPlxuICAgICAgICAgICAgICA8bGN1LWxvYWRlciBzdHlsZT1cIm1hcmdpbjogYXV0b1wiIFtsb2FkaW5nXT1cInRydWVcIj48L2xjdS1sb2FkZXI+XG4gICAgICAgICAgXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tM1wiPlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1hdC10aXRsZVwiPkxvYWRpbmcgaG9zdGluZyBkZXRhaWxzPC9oND5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSA8L21hdC1jYXJkLWNvbnRlbnQ+IC0tPlxuXG4gICAgPCEtLSA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPiAtLT5cblxuICAgIDwhLS0gPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cIiFTdGF0ZT8uTG9hZGluZ1wiXG4gICAgICAgICAgbWF0LXJhaXNlZC1idXR0b24gXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiIFxuICAgICAgICAgIGZ4RmxleD1cIjEwMCVcIiBcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIiBcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIUJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAudmFsaWQgfHwgIUJ1aWxkUGlwZWxpbmVGb3JtR3JvdXAuZGlydHlcIj5cbiAgICAgICAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+XG4gICAgICAgICAgU2F2ZSBCdWlsZCBQaXBlbGluZVxuICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgPCEtLSA8bGN1LWxvYWRlciBbbG9hZGluZ109XCJTdGF0ZT8uTG9hZGluZ1wiPjwvbGN1LWxvYWRlcj4gICAtLT5cblxuICAgIDwhLS0gPC9tYXQtY2FyZC1hY3Rpb25zPiAtLT5cbiAgICA8IS0tIDwvbWF0LWNhcmQ+IC0tPlxuPC9mb3JtPlxuIl19
|
|
@@ -31,10 +31,10 @@ export class ConnectedSourceComponent {
|
|
|
31
31
|
get SourceFormControl() {
|
|
32
32
|
return this.SourceFormGroup?.controls.source;
|
|
33
33
|
}
|
|
34
|
-
get State() {
|
|
35
|
-
return this.eacSvc.State;
|
|
36
|
-
}
|
|
37
34
|
ngOnInit() {
|
|
35
|
+
this.eacSvc.State.subscribe((state) => {
|
|
36
|
+
this.State = state;
|
|
37
|
+
});
|
|
38
38
|
this.setupSourceFormGroup();
|
|
39
39
|
}
|
|
40
40
|
SourceSubmit() {
|
|
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
61
61
|
type: Output,
|
|
62
62
|
args: ['save-form-event']
|
|
63
63
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGVkLXNvdXJjZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9jb250cm9scy9jb25uZWN0ZWQtc291cmNlL2Nvbm5lY3RlZC1zb3VyY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvY29ubmVjdGVkLXNvdXJjZS9jb25uZWN0ZWQtc291cmNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBb0IvRSxNQUFNLE9BQU8sd0JBQXdCO0lBaUNqQyxZQUFzQixNQUFrQixFQUFZLFFBQXFCO1FBQW5ELFdBQU0sR0FBTixNQUFNLENBQVk7UUFBWSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBakNELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixDQUNsRCxDQUFDO0lBQ04sQ0FBQztJQUtELElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBWU0sUUFBUTtRQUNYLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxZQUFZO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVTLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRVMsZUFBZTtRQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FDM0IscUJBQXFCLEVBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUN0RCxDQUFDO0lBQ04sQ0FBQzs7cUhBNURRLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDJLQ3BCckMsbXFIQWtHQTsyRkQ5RWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLHNCQUFzQjsySEFNekIsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBVWhCLGFBQWE7c0JBRG5CLE1BQU07dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgRWFDQXBwbGljYXRpb25Bc0NvZGUsXG4gICAgRWFDRW52aXJvbm1lbnRBc0NvZGUsXG4gICAgRWFDU291cmNlQ29udHJvbCxcbn0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGN1LWNvbm5lY3RlZC1zb3VyY2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb25uZWN0ZWQtc291cmNlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb25uZWN0ZWQtc291cmNlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3RlZFNvdXJjZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdjdXJyZW50LXNvdXJjZScpXG4gICAgcHVibGljIEN1cnJlbnRTb3VyY2U6IHN0cmluZztcblxuICAgIHB1YmxpYyBnZXQgRW52aXJvbm1lbnQoKTogRWFDRW52aXJvbm1lbnRBc0NvZGUge1xuICAgICAgICByZXR1cm4gdGhpcy5TdGF0ZT8uRWFDPy5FbnZpcm9ubWVudHNbXG4gICAgICAgICAgICB0aGlzLlN0YXRlPy5FYUM/LkVudGVycHJpc2U/LlByaW1hcnlFbnZpcm9ubWVudFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIEBPdXRwdXQoJ3NhdmUtZm9ybS1ldmVudCcpXG4gICAgcHVibGljIFNhdmVGb3JtRXZlbnQ6IEV2ZW50RW1pdHRlcjx7fT47XG5cbiAgICBwdWJsaWMgZ2V0IFNvdXJjZUNvbnRyb2xzKCk6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDU291cmNlQ29udHJvbCB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXMgfHwge307XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTb3VyY2VDb250cm9sTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXMgfHwge30pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgU291cmNlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuU291cmNlRm9ybUdyb3VwPy5jb250cm9scy5zb3VyY2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTdGF0ZSgpOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5lYWNTdmMuU3RhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIFNvdXJjZUZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIFNrZWxldG9uRWZmZWN0OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLCBwcm90ZWN0ZWQgZm9ybUJsZHI6IEZvcm1CdWlsZGVyKSB7XG4gICAgICAgIHRoaXMuU2F2ZUZvcm1FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgICAgICB0aGlzLlNrZWxldG9uRWZmZWN0ID0gJ3dhdmUnO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXR1cFNvdXJjZUZvcm1Hcm91cCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBTb3VyY2VTdWJtaXQoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdzdWJtaXR0aW5nIHNvdXJjZSB2YWx1ZXM6ICcsIHRoaXMuU291cmNlRm9ybUdyb3VwLnZhbHVlKTtcblxuICAgICAgICB0aGlzLlNhdmVGb3JtRXZlbnQuZW1pdCh0aGlzLlNvdXJjZUZvcm1Hcm91cC52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwU291cmNlRm9ybUdyb3VwKCkge1xuICAgICAgICB0aGlzLlNvdXJjZUZvcm1Hcm91cCA9IHRoaXMuZm9ybUJsZHIuZ3JvdXAoe30pO1xuXG4gICAgICAgIHRoaXMuc2V0dXBTb3VyY2VGb3JtKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldHVwU291cmNlRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5Tb3VyY2VGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdzb3VyY2VDb250cm9sTG9va3VwJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbCh0aGlzLkN1cnJlbnRTb3VyY2UgfHwgJycsIFtdKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxmb3JtXG4gICAgY2xhc3M9XCJzb3VyY2UtZm9ybVwiXG4gICAgW2Zvcm1Hcm91cF09XCJTb3VyY2VGb3JtR3JvdXBcIlxuICAgIChuZ1N1Ym1pdCk9XCJTb3VyY2VTdWJtaXQoKVwiXG4+XG4gICAgPG1hdC1jYXJkIGNsYXNzPVwiZmxvdy1jYXJkXCI+XG4gICAgICAgIDwhLS0gU0tFTEVUT04gTE9BRElORyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGVkIFNvdXJjZSBDb250cm9sXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+WFhYPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuXG4gICAgICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgZnhGbGV4PVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIHNrZWxldG9uLXRleHRcbiAgICAgICAgICAgICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgICAgICBTYXZlIENvbm5lY3RlZCBTb3VyY2VcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwhLS0gRU5EIFNLRUxFVE9OIExPQURJTkcgLS0+XG5cbiAgICAgICAgPCEtLSBCRUdJTiBBQ1RVQUwgQ09OVEVOVCAtLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIVN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT4gQ29ubmVjdGVkIFNvdXJjZSBDb250cm9sIDwvbWF0LWNhcmQtdGl0bGU+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkNvbm5lY3RpbmcgYSBzb3VyY2UgY29udHJvbCB3aWxsIHVwZGF0ZSB0aGUgZmVlZCB0byBvbmx5IHNob3cgaXRlbXMgZnJvbSB0aGUgY29ubnRlY3RlZCBzb3VyY2UgY29udHJvbCwgYW5kIHdpbGwgYWxsb3cgZm9yIGF1dG9tYXRpYyB1cGRhdGluZy5cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgaW5mb19vdXRsaW5lXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuXG4gICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzb3VyY2VDb250cm9sTG9va3VwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNvdXJjZSBDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNyY0N0cmxMb29rdXAgb2YgU291cmNlQ29udHJvbExvb2t1cHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3JjQ3RybExvb2t1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZUNvbnRyb2xzW3NyY0N0cmxMb29rdXBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzcmNDdHJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzcmNDdHJsLk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuXG4gICAgICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIGZ4RmxleD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAhU291cmNlRm9ybUdyb3VwLnZhbGlkIHx8ICFTb3VyY2VGb3JtR3JvdXAuZGlydHlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgU2F2ZSBDb25uZWN0ZWQgU291cmNlXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LWNhcmQ+XG48L2Zvcm0+XG4iXX0=
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGVkLXNvdXJjZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9jb250cm9scy9jb25uZWN0ZWQtc291cmNlL2Nvbm5lY3RlZC1zb3VyY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvY29ubmVjdGVkLXNvdXJjZS9jb25uZWN0ZWQtc291cmNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBb0IvRSxNQUFNLE9BQU8sd0JBQXdCO0lBbUNqQyxZQUFzQixNQUFrQixFQUFZLFFBQXFCO1FBQW5ELFdBQU0sR0FBTixNQUFNLENBQVk7UUFBWSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBbkNELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixDQUNsRCxDQUFDO0lBQ04sQ0FBQztJQUtELElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNqRCxDQUFDO0lBa0JNLFFBQVE7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxZQUFZO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVTLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRVMsZUFBZTtRQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FDM0IscUJBQXFCLEVBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUN0RCxDQUFDO0lBQ04sQ0FBQzs7cUhBakVRLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDJLQ3BCckMsbXFIQWtHQTsyRkQ5RWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLHNCQUFzQjsySEFNekIsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBVWhCLGFBQWE7c0JBRG5CLE1BQU07dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgRWFDQXBwbGljYXRpb25Bc0NvZGUsXG4gICAgRWFDRW52aXJvbm1lbnRBc0NvZGUsXG4gICAgRWFDU291cmNlQ29udHJvbCxcbn0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGN1LWNvbm5lY3RlZC1zb3VyY2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb25uZWN0ZWQtc291cmNlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb25uZWN0ZWQtc291cmNlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3RlZFNvdXJjZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdjdXJyZW50LXNvdXJjZScpXG4gICAgcHVibGljIEN1cnJlbnRTb3VyY2U6IHN0cmluZztcblxuICAgIHB1YmxpYyBnZXQgRW52aXJvbm1lbnQoKTogRWFDRW52aXJvbm1lbnRBc0NvZGUge1xuICAgICAgICByZXR1cm4gdGhpcy5TdGF0ZT8uRWFDPy5FbnZpcm9ubWVudHNbXG4gICAgICAgICAgICB0aGlzLlN0YXRlPy5FYUM/LkVudGVycHJpc2U/LlByaW1hcnlFbnZpcm9ubWVudFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIEBPdXRwdXQoJ3NhdmUtZm9ybS1ldmVudCcpXG4gICAgcHVibGljIFNhdmVGb3JtRXZlbnQ6IEV2ZW50RW1pdHRlcjx7fT47XG5cbiAgICBwdWJsaWMgZ2V0IFNvdXJjZUNvbnRyb2xzKCk6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDU291cmNlQ29udHJvbCB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXMgfHwge307XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBTb3VyY2VDb250cm9sTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXMgfHwge30pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgU291cmNlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuU291cmNlRm9ybUdyb3VwPy5jb250cm9scy5zb3VyY2U7XG4gICAgfVxuXG4gICAgcHVibGljIFN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGU7XG5cbiAgICAvLyBwdWJsaWMgZ2V0IFN0YXRlKCk6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmVhY1N2Yy5TdGF0ZTtcbiAgICAvLyB9XG5cbiAgICBwdWJsaWMgU291cmNlRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwdWJsaWMgU2tlbGV0b25FZmZlY3Q6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UsIHByb3RlY3RlZCBmb3JtQmxkcjogRm9ybUJ1aWxkZXIpIHtcbiAgICAgICAgdGhpcy5TYXZlRm9ybUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgICAgIHRoaXMuU2tlbGV0b25FZmZlY3QgPSAnd2F2ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVhY1N2Yy5TdGF0ZS5zdWJzY3JpYmUoKHN0YXRlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2V0dXBTb3VyY2VGb3JtR3JvdXAoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU291cmNlU3VibWl0KCkge1xuICAgICAgICBjb25zb2xlLmxvZygnc3VibWl0dGluZyBzb3VyY2UgdmFsdWVzOiAnLCB0aGlzLlNvdXJjZUZvcm1Hcm91cC52YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5TYXZlRm9ybUV2ZW50LmVtaXQodGhpcy5Tb3VyY2VGb3JtR3JvdXAudmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cFNvdXJjZUZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5Tb3VyY2VGb3JtR3JvdXAgPSB0aGlzLmZvcm1CbGRyLmdyb3VwKHt9KTtcblxuICAgICAgICB0aGlzLnNldHVwU291cmNlRm9ybSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cFNvdXJjZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuU291cmNlRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnc291cmNlQ29udHJvbExvb2t1cCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2wodGhpcy5DdXJyZW50U291cmNlIHx8ICcnLCBbXSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8Zm9ybVxuICAgIGNsYXNzPVwic291cmNlLWZvcm1cIlxuICAgIFtmb3JtR3JvdXBdPVwiU291cmNlRm9ybUdyb3VwXCJcbiAgICAobmdTdWJtaXQpPVwiU291cmNlU3VibWl0KClcIlxuPlxuICAgIDxtYXQtY2FyZCBjbGFzcz1cImZsb3ctY2FyZFwiPlxuICAgICAgICA8IS0tIFNLRUxFVE9OIExPQURJTkcgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlciBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgIENvbm5lY3RlZCBTb3VyY2UgQ29udHJvbFxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgPGRpdiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPlhYWDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICAgICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGZ4RmxleD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBza2VsZXRvbi10ZXh0XG4gICAgICAgICAgICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBzYXZlXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICAgICAgU2F2ZSBDb25uZWN0ZWQgU291cmNlXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8IS0tIEVORCBTS0VMRVRPTiBMT0FESU5HIC0tPlxuXG4gICAgICAgIDwhLS0gQkVHSU4gQUNUVUFMIENPTlRFTlQgLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+IENvbm5lY3RlZCBTb3VyY2UgQ29udHJvbCA8L21hdC1jYXJkLXRpdGxlPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBmeEZsZXg+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJDb25uZWN0aW5nIGEgc291cmNlIGNvbnRyb2wgd2lsbCB1cGRhdGUgdGhlIGZlZWQgdG8gb25seSBzaG93IGl0ZW1zIGZyb20gdGhlIGNvbm50ZWN0ZWQgc291cmNlIGNvbnRyb2wsIGFuZCB3aWxsIGFsbG93IGZvciBhdXRvbWF0aWMgdXBkYXRpbmcuXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIGluZm9fb3V0bGluZVxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic291cmNlQ29udHJvbExvb2t1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTb3VyY2UgQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzcmNDdHJsTG9va3VwIG9mIFNvdXJjZUNvbnRyb2xMb29rdXBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNyY0N0cmxMb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VDb250cm9sc1tzcmNDdHJsTG9va3VwXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3JjQ3RybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3JjQ3RybC5OYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cblxuICAgICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBmeEZsZXg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIVNvdXJjZUZvcm1Hcm91cC52YWxpZCB8fCAhU291cmNlRm9ybUdyb3VwLmRpcnR5XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIFNhdmUgQ29ubmVjdGVkIFNvdXJjZVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L21hdC1jYXJkPlxuPC9mb3JtPlxuIl19
|
package/esm2020/lib/controls/devops-source-control-form/devops-source-control-form.component.mjs
CHANGED
|
@@ -100,15 +100,15 @@ export class DevopsSourceControlFormComponent {
|
|
|
100
100
|
get RepositoryFormControl() {
|
|
101
101
|
return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'repository');
|
|
102
102
|
}
|
|
103
|
-
get State() {
|
|
104
|
-
return this.eacSvc.State;
|
|
105
|
-
}
|
|
106
103
|
// Life Cycle
|
|
107
104
|
ngAfterViewInit() { }
|
|
108
105
|
ngOnDestroy() {
|
|
109
106
|
this.destroyFormControls();
|
|
110
107
|
}
|
|
111
108
|
ngOnInit() {
|
|
109
|
+
this.eacSvc.State.subscribe((state) => {
|
|
110
|
+
this.State = state;
|
|
111
|
+
});
|
|
112
112
|
console.log('source control lookup', this.EditingSourceControlLookup);
|
|
113
113
|
if (this.EditingSourceControlLookup === null) {
|
|
114
114
|
this.CreateNewSourceControl();
|
|
@@ -395,4 +395,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
395
395
|
type: ViewChild,
|
|
396
396
|
args: ['branches']
|
|
397
397
|
}] } });
|
|
398
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0gsV0FBVyxFQUVYLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBcUMsSUFBSSxFQUFVLE1BQU0sYUFBYSxDQUFDO0FBWTlFLE9BQU8sRUFLSCxxQkFBcUIsR0FDeEIsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPN0MsTUFBTSxPQUFPLGdDQUFnQztJQTZKekMsZ0JBQWdCO0lBQ2hCLFlBQ2MsV0FBb0MsRUFDcEMsTUFBa0IsRUFDbEIsV0FBd0I7UUFGeEIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFOdEIsdUJBQWtCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7UUFRekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBRWxELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztRQUU3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUV4QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBMUlELGNBQWM7SUFFZCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsZUFBZTtZQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDWCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsY0FBYztZQUNyRCxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUU7WUFDeEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFDRCxJQUFXLG1CQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQ3RDLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUN4QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUN2QyxDQUFDO0lBQ04sQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzFCLG1DQUFtQztRQUNuQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGtCQUFrQjtZQUM1RCxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRTtZQUMvRCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQ3pCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxDQUFDO1NBQ25EO1FBRUQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFO1lBQ3pELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25FO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUVELElBQVcsNkJBQTZCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzNCLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTztZQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDO1lBQzVELENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFWCxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQy9DLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcscUJBQXFCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FDeEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFlBQVksQ0FDeEMsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFXLHVCQUF1QjtRQUM5QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxjQUFjLENBQzFDLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBVyxxQkFBcUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUN4QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsWUFBWSxDQUN4QyxDQUFDO0lBQ04sQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQStDRCxjQUFjO0lBQ1AsZUFBZSxLQUFVLENBQUM7SUFFMUIsV0FBVztRQUNkLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUV0RSxJQUFJLElBQUksQ0FBQywwQkFBMEIsS0FBSyxJQUFJLEVBQUU7WUFDMUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDakM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXpELElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksRUFBRTtZQUNuQyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFL0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZTtJQUNSLGVBQWUsQ0FBQyxLQUF3QjtRQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLG9CQUFvQixDQUFDLEtBQW1DO1FBQzNELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sZUFBZSxDQUFDLFFBQWtCO1FBQ3JDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFzQjtRQUMxQyxnQkFBZ0I7SUFDcEIsQ0FBQztJQUVNLHNCQUFzQjtRQUN6QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRS9CLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU0sc0JBQXNCO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVNLHlCQUF5QixDQUFDLEtBQXNCO1FBQ25ELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFzQjtRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBc0I7UUFDN0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBRXpDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBRWpDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7U0FDOUI7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sb0JBQW9CO1FBQ3ZCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFFdEMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEtBQUssRUFBRSxDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsTUFBYztRQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBELElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQXNCO1FBQzNDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUV4QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBRWpDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7WUFFM0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVNLGNBQWM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQztRQUUvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDO1FBRWxELElBQUksQ0FBQyxXQUFXO2FBQ1gsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQzthQUMvQixTQUFTLENBQUMsQ0FBQyxRQUFzQixFQUFFLEVBQUU7WUFDbEMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFaEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQzthQUNuQztpQkFBTTtnQkFDSCxrREFBa0Q7Z0JBRWxELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ3hCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBZ0I7UUFDM0MsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFFBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQ1AsNEJBQTRCLEVBQzVCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLENBQzFDLENBQUM7UUFDRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0saUJBQWlCO1FBQ3BCLE1BQU0sVUFBVSxHQUFzQztZQUNsRCxXQUFXLEVBQUU7Z0JBQ1QsR0FBRyxJQUFJLENBQUMsV0FBVztnQkFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLEVBQUU7YUFDMUM7WUFDRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3pDLG9CQUFvQixFQUFFLEVBQUU7U0FDM0IsQ0FBQztRQUVGLElBQUksTUFBTSxHQUFxQjtZQUMzQixHQUFHLElBQUksQ0FBQyxvQkFBb0I7WUFDNUIsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDL0IsVUFBVSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLO1NBQy9DLENBQUM7UUFFRixNQUFNLEdBQUc7WUFDTCxHQUFHLE1BQU07WUFDVCxJQUFJLEVBQUUsUUFBUTtZQUNkLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRTtZQUNsRiwwQkFBMEIsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUNyRCxZQUFZLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUs7WUFDaEQsVUFBVSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLO1NBQy9DLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxZQUFZLE1BQU0sQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXhFLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUVsRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVyQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7SUFFRCxlQUFlLENBQUMsS0FBYTtRQUNuQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0IsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXhDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFUyxxQkFBcUI7UUFDM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLENBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FDMUIsQ0FBQztRQUNOLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFUyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGFBQWEsQ0FDM0MsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUNsRCxDQUFDO1FBRUYsSUFBSSxDQUFDLDRCQUE0QixFQUFFLGFBQWEsQ0FDNUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUNoRCxDQUFDO1FBRUYsSUFBSSxDQUFDLDRCQUE0QixFQUFFLGFBQWEsQ0FDNUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUNqRCxDQUFDO1FBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsNEJBQTRCLEVBQUUsYUFBYSxDQUM1QyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ3BELENBQUM7UUFFRixJQUFJLENBQUMsNEJBQTRCLEVBQUUsYUFBYSxDQUM1QyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ2xELENBQUM7SUFDTixDQUFDO0lBRVMsbUJBQW1CO1FBQ3pCLElBQ0ksSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sR0FBRyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSztnQkFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FDekIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FDbkMsR0FBRyxDQUFDLENBQUMsRUFDWjtZQUNFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3RCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sS0FBSyxRQUFRLENBQ3ZELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUNoQyxDQUFDO1NBQ0w7YUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN0QztRQUVELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFUyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVwQixJQUFJLENBQUMsV0FBVztpQkFDWCxZQUFZLENBQ1QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFDbEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FDbkM7aUJBQ0EsU0FBUyxDQUFDLENBQUMsUUFBNkMsRUFBRSxFQUFFO2dCQUN6RCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBRXBDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUVyQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDakQsSUFBSSxDQUFDLGdCQUFnQjt3QkFDakIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQztpQkFDMUM7cUJBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM3QixDQUFDO29CQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hEO2dCQUVELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUUzQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7U0FDVjtJQUNMLENBQUM7SUFFUyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVwQixJQUFJLENBQUMsV0FBVztpQkFDWCxjQUFjLENBQ1gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFDbEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FDbkM7aUJBQ0EsU0FBUyxDQUFDLENBQUMsUUFBdUMsRUFBRSxFQUFFO2dCQUNuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFFdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBRXJCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQ3JDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FDM0IsQ0FBQztpQkFDTDtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7SUFDTCxDQUFDO0lBRVMsaUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksQ0FBQyxXQUFXO2FBQ1gsaUJBQWlCLEVBQUU7YUFDbkIsU0FBUyxDQUNOLENBQUMsUUFBbUQsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQ1Asd0JBQXdCLEVBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FDM0IsQ0FBQztZQUVGLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBRXJCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLFlBQVksRUFBRTtnQkFDekMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUN6QyxDQUFDO29CQUVGLElBQUksQ0FBQyxnQkFBZ0IsQ0FDakIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFVBQVUsQ0FDeEMsQ0FBQztnQkFDTixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDVDtRQUNMLENBQUMsQ0FDSixDQUFDO0lBQ1YsQ0FBQztJQUVTLGdCQUFnQixDQUFDLGFBQXFCLElBQUk7UUFDaEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsSUFBSSxDQUFDLFdBQVc7YUFDWCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDO2FBQ3BELFNBQVMsQ0FBQyxDQUFDLFFBQWlELEVBQUUsRUFBRTtZQUM3RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUV4QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUVyQixJQUFJLFVBQVUsRUFBRTtnQkFDWixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNaLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBRWhELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFFcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7d0JBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztxQkFDekI7Z0JBQ0wsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ1Q7aUJBQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQzthQUNsQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVTLHlCQUF5QjtRQUMvQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVuQyxJQUFJLENBQUMsV0FBVyxDQUFDLHlCQUF5QixFQUFFLENBQUMsU0FBUyxDQUNsRCxDQUFDLFFBQW9ELEVBQUUsRUFBRTtnQkFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUVyQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBRXBDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2pDLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN4QyxDQUFDLENBQ0osQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVTLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUUzQixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLENBQ3hDLG9CQUFvQixFQUNwQixJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUNyRCxDQUFDO1FBRUYsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FDeEMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUNqRCxJQUFJLFdBQVcsQ0FDWCxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxJQUFJLEVBQUUsRUFDNUMsVUFBVSxDQUFDLFFBQVEsQ0FDdEIsQ0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FDeEMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUMvQyxJQUFJLFdBQVcsQ0FDWCxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFDMUMsVUFBVSxDQUFDLFFBQVEsQ0FDdEIsQ0FDSixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLENBQ3hDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFDN0MsSUFBSSxXQUFXLENBQ1gsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQ3pDLFVBQVUsQ0FBQyxRQUFRLENBQ3RCLENBQ0osQ0FBQztZQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDO1lBRTVELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLENBQ3hDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFDL0MsSUFBSSxXQUFXLENBQ1gsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQzFDLFVBQVUsQ0FBQyxRQUFRLENBQ3RCLENBQ0osQ0FBQztTQUNMO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLENBQ3hDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFDOUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUM3RCxDQUFDO1NBQ0w7SUFDTCxDQUFDOzs2SEE1bUJRLGdDQUFnQztpSEFBaEMsZ0NBQWdDLDBiQy9DN0MsbTlkQTJaQTsyRkQ1V2EsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNJLGdDQUFnQztpS0FVbkMsMEJBQTBCO3NCQURoQyxLQUFLO3VCQUFDLCtCQUErQjtnQkFJL0IsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxhQUFhO2dCQUliLGlCQUFpQjtzQkFEdkIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBSXBCLGVBQWU7c0JBRHJCLE1BQU07dUJBQUMsbUJBQW1CO2dCQUlwQixhQUFhO3NCQURuQixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUNvbnRyb2wsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgQmFzZU1vZGVsZWRSZXNwb25zZSwgQmFzZVJlc3BvbnNlLCBHdWlkLCBTdGF0dXMgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEVhQ0FydGlmYWN0LFxuICAgIEVhQ0Rldk9wc0FjdGlvbixcbiAgICBFYUNFbnZpcm9ubWVudEFzQ29kZSxcbiAgICBFYUNTb3VyY2VDb250cm9sLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbnMtZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRWFDU2VydmljZSxcbiAgICBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3QsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICAgIEdpdEh1YkJyYW5jaCxcbiAgICBHaXRIdWJPcmdhbml6YXRpb24sXG4gICAgR2l0SHViUmVwb3NpdG9yeSxcbiAgICBQcm9qZWN0SG9zdGluZ0RldGFpbHMsXG59IGZyb20gJy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZXZvcHMtc291cmNlLWNvbnRyb2wtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGV2b3BzU291cmNlQ29udHJvbEZvcm1Db21wb25lbnRcbiAgICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gICAgLy8gIEZpZWxkc1xuXG4gICAgQElucHV0KCdlZGl0aW5nLXNvdXJjZS1jb250cm9sLWxvb2t1cCcpXG4gICAgcHVibGljIEVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoJ2Vudmlyb25tZW50JylcbiAgICBwdWJsaWMgRW52aXJvbm1lbnQ6IEVhQ0Vudmlyb25tZW50QXNDb2RlO1xuXG4gICAgQElucHV0KCdlbnZpcm9ubWVudC1sb29rdXAnKVxuICAgIHB1YmxpYyBFbnZpcm9ubWVudExvb2t1cDogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgnc2F2ZS1zdGF0dXMtZXZlbnQnKVxuICAgIHB1YmxpYyBTYXZlU3RhdHVzRXZlbnQ6IEV2ZW50RW1pdHRlcjxTdGF0dXM+O1xuXG4gICAgQFZpZXdDaGlsZCgnYnJhbmNoZXMnKVxuICAgIHB1YmxpYyBCcmFuY2hlc0lucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgLy9PcHRpb25hbCBpbnB1dCBub3QgYmVpbmcgdXNlZCBzZXR0aW5nIHRvXG4gICAgLy8gQElucHV0KCdidWlsZC1wYXRoJylcbiAgICBwdWJsaWMgQnVpbGRQYXRoOiBzdHJpbmc7XG5cbiAgICAvL09wdGlvbmFsIG5vdCBiZWluZyB1c2VkXG4gICAgLy8gQElucHV0KCdidWlsZC1wYXRoLWRpc2FibGVkJylcbiAgICBwdWJsaWMgQnVpbGRQYXRoRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvLyB0aGlzIGlucHV0IGlzIG5vdCBiZWluZyB1c2VkIGFueXdoZXJlXG4gICAgLy8gQElucHV0KCdzb3VyY2UtY29udHJvbC1yb290JylcbiAgICBwdWJsaWMgU291cmNlQ29udHJvbFJvb3Q6IHN0cmluZztcblxuICAgIC8vbm90IGJlaW5nIHVzZWQgc2V0IHRvIHRydWUgYnkgZGVmYXVsdFxuICAgIC8vIEBJbnB1dCgndXNlLWJyYW5jaGVzJylcbiAgICBwdWJsaWMgVXNlQnJhbmNoZXM6IGJvb2xlYW47XG5cbiAgICAvL25vdCBiZWluZyB1c2VkIHNldCB0byBmYWxzZSBieSBkZWZhdWx0XG4gICAgLy8gQElucHV0KCd1c2UtYnVpbGQtcGF0aCcpXG4gICAgcHVibGljIFVzZUJ1aWxkUGF0aDogYm9vbGVhbjtcblxuICAgIC8vICBQcm9wZXJ0aWVzXG5cbiAgICBwdWJsaWMgZ2V0IEFydGlmYWN0TG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRGV2T3BzQWN0aW9uPy5BcnRpZmFjdExvb2t1cHM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBBcnRpZmFjdExvb2t1cCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBhcnRMb29rdXAgPSB0aGlzLkRldk9wc0FjdGlvbj8uQXJ0aWZhY3RMb29rdXBzXG4gICAgICAgICAgICA/IHRoaXMuRGV2T3BzQWN0aW9uPy5BcnRpZmFjdExvb2t1cHNbMF1cbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgcmV0dXJuIGFydExvb2t1cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IEFydGlmYWN0KCk6IEVhQ0FydGlmYWN0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRW52aXJvbm1lbnQ/LkFydGlmYWN0cyAmJiB0aGlzLkFydGlmYWN0TG9va3VwXG4gICAgICAgICAgICA/IHRoaXMuRW52aXJvbm1lbnQ/LkFydGlmYWN0c1t0aGlzLkFydGlmYWN0TG9va3VwXSB8fCB7fVxuICAgICAgICAgICAgOiB7fTtcbiAgICB9XG4gICAgcHVibGljIGdldCBCcmFuY2hlc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdicmFuY2hlcydcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IEJ1aWxkUGF0aEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdidWlsZFBhdGgnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBEZXZPcHNBY3Rpb25Mb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLkRldk9wc0FjdGlvbnMpO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5EZXZPcHNBY3Rpb25zIHx8IHt9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbigpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5FbnZpcm9ubWVudC5EZXZPcHNBY3Rpb25zICYmIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwXG4gICAgICAgICAgICA/IHRoaXMuRW52aXJvbm1lbnQuRGV2T3BzQWN0aW9uc1t0aGlzLkRldk9wc0FjdGlvbkxvb2t1cF0gfHwge31cbiAgICAgICAgICAgIDoge307XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBEZXZPcHNBY3Rpb25Mb29rdXAoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCEhdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBGb3JtQ29udHJvbD8udmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbD8uRGV2T3BzQWN0aW9uVHJpZ2dlckxvb2t1cHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5EZXZPcHNBY3Rpb25UcmlnZ2VyTG9va3Vwc1swXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBEZXZPcHNBY3Rpb25Mb29rdXBGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmdldCgnZGV2T3BzQWN0aW9uTG9va3VwJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBEZXZPcHNBY3Rpb25zKCk6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDRGV2T3BzQWN0aW9uIH0ge1xuICAgICAgICByZXR1cm4gdGhpcy5FbnZpcm9ubWVudC5EZXZPcHNBY3Rpb25zIHx8IHt9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgRWRpdGluZ1NvdXJjZUNvbnRyb2woKTogRWFDU291cmNlQ29udHJvbCB7XG4gICAgICAgIGxldCBzYyA9IHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXNcbiAgICAgICAgICAgID8gdGhpcy5FbnZpcm9ubWVudD8uU291cmNlc1t0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwXVxuICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIGlmIChzYyA9PSBudWxsICYmIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2xMb29rdXApIHtcbiAgICAgICAgICAgIHNjID0ge307XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBNYWluQnJhbmNoRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5nZXQoXG4gICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xSb290ICsgJ21haW5CcmFuY2gnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBPcmdhbml6YXRpb25Gb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbFJvb3QgKyAnb3JnYW5pemF0aW9uJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgUmVwb3NpdG9yeUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdyZXBvc2l0b3J5J1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgU3RhdGUoKTogQXBwbGljYXRpb25zRmxvd1N0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWFjU3ZjLlN0YXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBCcmFuY2hPcHRpb25zOiBHaXRIdWJCcmFuY2hbXTtcblxuICAgIHB1YmxpYyBCdWlsZFBhdGhPcHRpb25zOiBzdHJpbmdbXTtcblxuICAgIHB1YmxpYyBDcmVhdGluZ1JlcG9zaXRvcnk6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIEhvc3RpbmdEZXRhaWxzOiBQcm9qZWN0SG9zdGluZ0RldGFpbHM7XG5cbiAgICBwdWJsaWMgTG9hZGluZzogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBPcmdhbml6YXRpb25PcHRpb25zOiBHaXRIdWJPcmdhbml6YXRpb25bXTtcblxuICAgIHB1YmxpYyBSZXBvc2l0b3J5T3B0aW9uczogR2l0SHViUmVwb3NpdG9yeVtdO1xuXG4gICAgcHVibGljIFNlbGVjdGVkQnJhbmNoZXM6IHN0cmluZ1tdO1xuXG4gICAgcHVibGljIFNrZWxldG9uRWZmZWN0OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgU2VwYXJhdG9yS2V5c0NvZGVzID0gW0VOVEVSLCBDT01NQV0gYXMgY29uc3Q7XG5cbiAgICAvLyAgQ29uc3RydWN0b3JzXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBhcHBzRmxvd1N2YzogQXBwbGljYXRpb25zRmxvd1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcbiAgICApIHtcbiAgICAgICAgdGhpcy5TYXZlU3RhdHVzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAgICAgdGhpcy5CdWlsZFBhdGggPSBudWxsO1xuXG4gICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMgPSBuZXcgUHJvamVjdEhvc3RpbmdEZXRhaWxzKCk7XG5cbiAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW107XG5cbiAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCA9ICcnO1xuXG4gICAgICAgIHRoaXMuU2tlbGV0b25FZmZlY3QgPSAnd2F2ZSc7XG5cbiAgICAgICAgdGhpcy5Vc2VCcmFuY2hlcyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5Vc2VCdWlsZFBhdGggPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyAgTGlmZSBDeWNsZVxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7fVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3lGb3JtQ29udHJvbHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdzb3VyY2UgY29udHJvbCBsb29rdXAnLCB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwKTtcblxuICAgICAgICBpZiAodGhpcy5FZGl0aW5nU291cmNlQ29udHJvbExvb2t1cCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5DcmVhdGVOZXdTb3VyY2VDb250cm9sKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coJ3NvdXJjZSBjb250cm9sJywgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbCk7XG5cbiAgICAgICAgaWYgKHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7fSk7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0dXBGb3JtQ29udHJvbHMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuUmVmcmVzaE9yZ2FuaXphdGlvbnMoKTtcbiAgICB9XG5cbiAgICAvLyAgQVBJIE1ldGhvZHNcbiAgICBwdWJsaWMgQWRkQnJhbmNoT3B0aW9uKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFkZEJyYW5jaE9wdGlvbihldmVudC52YWx1ZSk7XG5cbiAgICAgICAgZXZlbnQuaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgQnJhbmNoT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGRCcmFuY2hPcHRpb24oZXZlbnQub3B0aW9uLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQnJhbmNoZXNDaGFuZ2VkKGJyYW5jaGVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQnVpbGRQYXRoQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIC8vZG8gc29tZXRoaW5nPz9cbiAgICB9XG5cbiAgICBwdWJsaWMgQ3JlYXRlTmV3U291cmNlQ29udHJvbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5TZXRFZGl0aW5nU291cmNlQ29udHJvbChHdWlkLkNyZWF0ZVJhdygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ3JlYXRlUmVwb3NpdG9yeSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5DcmVhdGluZ1JlcG9zaXRvcnkgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIENhbmNlbENyZWF0ZVJlcG9zaXRvcnkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuQ3JlYXRpbmdSZXBvc2l0b3J5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIERldk9wc0FjdGlvbkxvb2t1cENoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyZURldk9wc0FjdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBNYWluQnJhbmNoQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW1pdEJyYW5jaGVzQ2hhbmdlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBPcmdhbml6YXRpb25DaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb3JnID0gdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbDtcblxuICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC5yZXNldCgpO1xuXG4gICAgICAgIGlmICh0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICAgICAgICB0aGlzLkJyYW5jaGVzRm9ybUNvbnRyb2wucmVzZXQoKTtcblxuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxpc3RSZXBvc2l0b3JpZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgUmVmcmVzaE9yZ2FuaXphdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMubGlzdE9yZ2FuaXphdGlvbnMoKTtcblxuICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy5yZXNldCgpO1xuXG4gICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sPy5yZXNldCgpO1xuXG4gICAgICAgIGlmICh0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICAgICAgICB0aGlzLkJyYW5jaGVzRm9ybUNvbnRyb2w/LnJlc2V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgUmVtb3ZlQnJhbmNoT3B0aW9uKG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5TZWxlY3RlZEJyYW5jaGVzLmluZGV4T2Yob3B0aW9uKTtcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVtaXRCcmFuY2hlc0NoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgUmVwb3NpdG9yeUNoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXBvID0gdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2w7XG5cbiAgICAgICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMuQnJhbmNoZXNGb3JtQ29udHJvbC5yZXNldCgpO1xuXG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbXTtcblxuICAgICAgICAgICAgdGhpcy5saXN0QnJhbmNoZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgdGhpcy5saXN0QnVpbGRQYXRocygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFNhdmVSZXBvc2l0b3J5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IG9yZyA9IHRoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgY29uc3QgcmVwb05hbWUgPSB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgICAgICAuQ3JlYXRlUmVwb3NpdG9yeShvcmcsIHJlcG9OYW1lKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJhc2VSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RSZXBvc2l0b3JpZXMocmVwb05hbWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQ3JlYXRpbmdSZXBvc2l0b3J5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gIFRPRE86ICBOZWVkIHRvIHN1cmZhY2UgYW4gZXJyb3IgdG8gdGhlIHVzZXIuLi5cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2V0RWRpdGluZ1NvdXJjZUNvbnRyb2woc2NMb29rdXA6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwID0gc2NMb29rdXA7XG4gICAgfVxuXG4gICAgcHVibGljIFN1Ym1pdFNvdXJjZUNvbnRyb2woKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgJ3NvdXJjZSBjb250cm9sIHN1Ym1pdHRlZDogJyxcbiAgICAgICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC52YWx1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLlNhdmVTb3VyY2VDb250cm9sKCk7XG4gICAgfVxuXG4gICAgcHVibGljIFNhdmVTb3VyY2VDb250cm9sKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzYXZlRW52UmVxOiBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3QgPSB7XG4gICAgICAgICAgICBFbnZpcm9ubWVudDoge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuRW52aXJvbm1lbnQsXG4gICAgICAgICAgICAgICAgU291cmNlczogdGhpcy5FbnZpcm9ubWVudC5Tb3VyY2VzIHx8IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEVudmlyb25tZW50TG9va3VwOiB0aGlzLkVudmlyb25tZW50TG9va3VwLFxuICAgICAgICAgICAgRW50ZXJwcmlzZURhdGFUb2tlbnM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBzb3VyY2U6IEVhQ1NvdXJjZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAuLi50aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sLFxuICAgICAgICAgICAgQnJhbmNoZXM6IHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyxcbiAgICAgICAgICAgIE1haW5CcmFuY2g6IHRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHNvdXJjZSA9IHtcbiAgICAgICAgICAgIC4uLnNvdXJjZSxcbiAgICAgICAgICAgIFR5cGU6ICdHaXRIdWInLFxuICAgICAgICAgICAgTmFtZTogYEAke3RoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2wudmFsdWV9LyR7dGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wudmFsdWV9YCxcbiAgICAgICAgICAgIERldk9wc0FjdGlvblRyaWdnZXJMb29rdXBzOiBbdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBdLFxuICAgICAgICAgICAgT3JnYW5pemF0aW9uOiB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgUmVwb3NpdG9yeTogdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2NMb29rdXAgPSBgZ2l0aHViOi8vJHtzb3VyY2UuT3JnYW5pemF0aW9ufS8ke3NvdXJjZS5SZXBvc2l0b3J5fWA7XG5cbiAgICAgICAgc2F2ZUVudlJlcS5FbnZpcm9ubWVudC5Tb3VyY2VzW3NjTG9va3VwXSA9IHNvdXJjZTtcblxuICAgICAgICBjb25zb2xlLmxvZygnc2F2ZSBTQzogJywgc2F2ZUVudlJlcSk7XG5cbiAgICAgICAgbGV0IHJlc3AgPSB0aGlzLmVhY1N2Yy5TYXZlRW52aXJvbm1lbnRBc0NvZGUoc2F2ZUVudlJlcSk7XG5cbiAgICAgICAgcmVzcC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuU2F2ZVN0YXR1c0V2ZW50LmVtaXQocmVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gIEhlbHBlcnNcblxuICAgIHByb3RlY3RlZCBhZGRCcmFuY2hPcHRpb24odmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSB8fCAnJykudHJpbSgpO1xuXG4gICAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLlNlbGVjdGVkQnJhbmNoZXMuaW5kZXhPZih2YWx1ZSkgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLkJyYW5jaGVzSW5wdXQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG5cbiAgICAgICAgdGhpcy5lbWl0QnJhbmNoZXNDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbmZpZ3VyZURldk9wc0FjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgICAgIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwXG4gICAgICAgICAgICApO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveUZvcm1Db250cm9scygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woXG4gICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ21haW5CcmFuY2gnXS5qb2luKCcnKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8ucmVtb3ZlQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnYnJhbmNoZXMnXS5qb2luKCcnKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8ucmVtb3ZlQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnYnVpbGRQYXRoJ10uam9pbignJylcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbXTtcblxuICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA/LnJlbW92ZUNvbnRyb2woXG4gICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ29yZ2FuaXphdGlvbiddLmpvaW4oJycpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwPy5yZW1vdmVDb250cm9sKFxuICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdyZXBvc2l0b3J5J10uam9pbignJylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW1pdEJyYW5jaGVzQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzPy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAoIXRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzLmluZGV4T2YoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgKSA8IDApXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5NYWluQnJhbmNoRm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChicmFuY2gpID0+IGJyYW5jaCA9PT0gJ21haW4nIHx8IGJyYW5jaCA9PT0gJ21hc3RlcidcbiAgICAgICAgICAgICAgICApIHx8IHRoaXMuU2VsZWN0ZWRCcmFuY2hlc1swXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLlNlbGVjdGVkQnJhbmNoZXM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICB0aGlzLk1haW5CcmFuY2hGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5qb2luKCcsJykpO1xuXG4gICAgICAgIHRoaXMuQnJhbmNoZXNDaGFuZ2VkKHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyB8fCBbXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxpc3RCcmFuY2hlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgICAgICAgICAuTGlzdEJyYW5jaGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxHaXRIdWJCcmFuY2hbXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5CcmFuY2hPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/LkJyYW5jaGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wuQnJhbmNoZXM7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5CcmFuY2hPcHRpb25zPy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQnJhbmNoZXNGb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkJyYW5jaE9wdGlvbnNbMF0uTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW3RoaXMuQnJhbmNoT3B0aW9uc1swXS5OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEJyYW5jaGVzQ2hhbmdlZCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBsaXN0QnVpbGRQYXRocygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuVXNlQnVpbGRQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgICAgICAgICAgLkxpc3RCdWlsZFBhdGhzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxzdHJpbmdbXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5CdWlsZFBhdGhPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuQnVpbGRQYXRoT3B0aW9ucz8ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkJ1aWxkUGF0aEZvcm1Db250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQnVpbGRQYXRoT3B0aW9uc1swXVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxpc3RPcmdhbml6YXRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgICAgIC5MaXN0T3JnYW5pemF0aW9ucygpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxHaXRIdWJPcmdhbml6YXRpb25bXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25PcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ09yZ2FuaXphdGlvbiBPcHRpb25zOiAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25PcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/Lk9yZ2FuaXphdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5Pcmdhbml6YXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0UmVwb3NpdG9yaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5SZXBvc2l0b3J5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbGlzdFJlcG9zaXRvcmllcyhhY3RpdmVSZXBvOiBzdHJpbmcgPSBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgICAgICAgLkxpc3RSZXBvc2l0b3JpZXModGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEdpdEh1YlJlcG9zaXRvcnlbXT4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVSZXBvKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wuc2V0VmFsdWUoYWN0aXZlUmVwbyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEJyYW5jaGVzKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLlJlcG9zaXRvcnlPcHRpb25zPy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkNyZWF0aW5nUmVwb3NpdG9yeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLlNlbGVjdGVkQnJhbmNoZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTG9hZFByb2plY3RIb3N0aW5nRGV0YWlscygpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8UHJvamVjdEhvc3RpbmdEZXRhaWxzPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkhvc3RpbmdEZXRhaWxzID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmVEZXZPcHNBY3Rpb24oKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cEZvcm1Db250cm9scygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95Rm9ybUNvbnRyb2xzKCk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJ1NvdXJjZSBDb250cm9sOiAnLCB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sKTtcblxuICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdkZXZPcHNBY3Rpb25Mb29rdXAnLFxuICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwIHx8ICcnLCBbXSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnb3JnYW5pemF0aW9uJ10uam9pbignJyksXG4gICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5Pcmdhbml6YXRpb24gPz8gJycsXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdyZXBvc2l0b3J5J10uam9pbignJyksXG4gICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5SZXBvc2l0b3J5ID8/ICcnLFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdicmFuY2hlcyddLmpvaW4oJycpLFxuICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbD8uQnJhbmNoZXMgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5CcmFuY2hlcztcblxuICAgICAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdtYWluQnJhbmNoJ10uam9pbignJyksXG4gICAgICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sLk1haW5CcmFuY2ggPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuVXNlQnVpbGRQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ2J1aWxkUGF0aCddLmpvaW4oJycpLFxuICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLkJ1aWxkUGF0aCA/PyAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8Zm9ybVxuICAgIGNsYXNzPVwiZm9ybS1jYXJkXCJcbiAgICBbZm9ybUdyb3VwXT1cIkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXBcIlxuICAgIChuZ1N1Ym1pdCk9XCJTdWJtaXRTb3VyY2VDb250cm9sKClcIlxuPlxuICAgIDwhLS0gPG1hdC1jYXJkIGNsYXNzPVwic3ByZWFkXCIgY2xhc3M9XCJzYy1jYXJkXCI+IC0tPlxuICAgIDwhLS0gPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgIDxtYXQtY2FyZC10aXRsZT4gU291cmNlIENvbnRyb2wgPC9tYXQtY2FyZC10aXRsZT5cblxuICAgICAgPGRpdiBmeEZsZXg+PC9kaXY+XG5cbiAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXggbWF0VG9vbHRpcD1cIkNvbmZpZ3VyZSBzb3VyY2UgY29udHJvbCwgRGV2T3BzIENJL0NELCBhbmQgYXJ0aWZhY3RzLlwiPlxuICAgICAgICBpbmZvX291dGxpbmVcbiAgICAgIDwvbWF0LWljb24+XG4gICAgPC9tYXQtY2FyZC1oZWFkZXI+IC0tPlxuXG4gICAgPCEtLSA8bWF0LWNhcmQtY29udGVudD4gLS0+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgICAgPGxjdS1sb2FkZXIgW2xvYWRpbmddPVwiU3RhdGU/LkxvYWRpbmdcIj48L2xjdS1sb2FkZXI+XG5cbiAgICAgICAgPCEtLSA8c2tlbGV0b24tYmxvY2sgXG4gICAgICAgICAgY2xhc3M9XCJzLWJsb2NrXCJcbiAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgXG4gICAgICAgID48L3NrZWxldG9uLWJsb2NrPlxuXG4gICAgICAgIDxza2VsZXRvbi1ibG9jayBcbiAgICAgICAgICBjbGFzcz1cInMtYmxvY2tcIlxuICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG5cbiAgICAgICAgPHNrZWxldG9uLWJsb2NrIFxuICAgICAgICAgIGNsYXNzPVwicy1ibG9ja1wiXG4gICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiICBcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG5cbiAgICAgICAgPHNrZWxldG9uLWJsb2NrIFxuICAgICAgICAgIGNsYXNzPVwicy1ibG9ja1wiXG4gICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiICBcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+IC0tPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXZPcHNBY3Rpb25Mb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkRldk9wcyBBY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIkRldk9wc0FjdGlvbkxvb2t1cENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGV2T3BzQWN0aW9uTG9va3VwIG9mIERldk9wc0FjdGlvbkxvb2t1cHNcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkZXZPcHNBY3Rpb25Mb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldk9wc0FjdGlvbnNbZGV2T3BzQWN0aW9uTG9va3VwXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRldk9wc0FjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGV2T3BzQWN0aW9uLk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJcIj4tLSBDcmVhdGUgTmV3IC0tPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiICpuZ0lmPVwiT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkIHx8ICFMb2FkaW5nXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoIHdpdGgtaGludCBtYXJnaW4tYm90dG9tXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIk9yZ2FuaXphdGlvbk9wdGlvbnM/Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm9yZy1pY29uXCIgbWF0UHJlZml4PmNvcnBvcmF0ZV9mYXJlPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiU291cmNlQ29udHJvbFJvb3QgKyAnb3JnYW5pemF0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiT3JnYW5pemF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJPcmdhbml6YXRpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiTG9hZGluZyB8fCBIb3N0aW5nRGV0YWlscz8uTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcmdPcHQgb2YgT3JnYW5pemF0aW9uT3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9yZ09wdC5OYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3JnT3B0Lk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiUmVmcmVzaE9yZ2FuaXphdGlvbnMoKVwiXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJSZWZyZXNoIE9yZ2FuaXphdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvLm9hdXRoL0dpdEh1Yk9BdXRoP29hdXRoLWZvcmNlLWVkaXQ9dHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlJlLWF1dGhvcml6ZSBPcmdhbml6YXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgbGF1bmNoXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9hPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICAgICAgICBJZiB5b3UgZG9uJ3QgaGF2ZSBhbiBvcmdhbml6YXRpb24gb3Igd291bGQgbGlrZSB0byBjcmVhdGUgYVxuICAgICAgICAgICAgICAgICAgICBuZXcgb25lLFxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9hY2NvdW50L29yZ2FuaXphdGlvbnMvbmV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJpbWFyeS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0IGhlcmVcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNhcmRcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgKE9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZCAmJiAhTG9hZGluZylcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+ZGVzY3JpcHRpb248L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTb3VyY2VDb250cm9sUm9vdCArICdyZXBvc2l0b3J5J1wiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIE9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ1JlcG9zaXRvcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnUmVwb3NpdG9yeSAoc2VsZWN0IG9yZ2FuaXphdGlvbiBmaXJzdCknXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICFPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIExvYWRpbmcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIEhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiUmVwb3NpdG9yeUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIUNyZWF0aW5nUmVwb3NpdG9yeVwiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZXBvT3B0IG9mIFJlcG9zaXRvcnlPcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicmVwb09wdC5OYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmVwb09wdC5OYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cblxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlJlcG9zaXRvcnkgKGNyZWF0ZXMgbmV3IGlmIGRvZXMgbm90IGV4aXN0KVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiU291cmNlQ29udHJvbFJvb3QgKyAncmVwb3NpdG9yeSdcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIkNyZWF0aW5nUmVwb3NpdG9yeVwiXG4gICAgICAgICAgICAgICAgICAgIFtmeEhpZGVdPVwiTG9hZGluZyB8fCBIb3N0aW5nRGV0YWlscz8uTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkNyZWF0ZVJlcG9zaXRvcnkoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtmeEhpZGVdPVwiTG9hZGluZyB8fCBIb3N0aW5nRGV0YWlscz8uTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAhQ3JlYXRpbmdSZXBvc2l0b3J5ICYmIE9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgYWRkX2NpcmNsZVxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJTYXZlUmVwb3NpdG9yeSgpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJDcmVhdGluZ1JlcG9zaXRvcnkgJiYgUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4IGNvbG9yPVwicHJpbWFyeVwiPiBzYXZlIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJDYW5jZWxDcmVhdGVSZXBvc2l0b3J5KClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIkNyZWF0aW5nUmVwb3NpdG9yeVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4PiBjYW5jZWwgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2FyZFwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIChCcmFuY2hlc0Zvcm1Db250cm9sPy52YWxpZCB8fFxuICAgICAgICAgICAgICAgICAgICAoT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhTG9hZGluZykpICYmXG4gICAgICAgICAgICAgICAgIUNyZWF0aW5nUmVwb3NpdG9yeSAmJlxuICAgICAgICAgICAgICAgIFVzZUJyYW5jaGVzXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm9yZy1pY29uXCIgbWF0UHJlZml4PmFjY291bnRfdHJlZTwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlNlbGVjdGVkIEJyYW5jaGVzPC9tYXQtbGFiZWw+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiQnJhbmNoT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICNicmFuY2hPcHRpb25zPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJyYW5jaE9wdCBvZiBCcmFuY2hPcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiYnJhbmNoT3B0Lk5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBicmFuY2hPcHQuTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWNoaXAtbGlzdCAjc2VsZWN0ZWRCcmFuY2hlcz5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGlwXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwiUmVtb3ZlQnJhbmNoT3B0aW9uKHNlbEJyYW5jaClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlbEJyYW5jaCBvZiBTZWxlY3RlZEJyYW5jaGVzXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VsQnJhbmNoIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGlwPlxuXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmV3IEJyYW5jaC4uLlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIlNvdXJjZUNvbnRyb2xSb290ICsgJ2JyYW5jaGVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAjYnJhbmNoZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYnJhbmNoT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cInNlbGVjdGVkQnJhbmNoZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cIlNlcGFyYXRvcktleXNDb2Rlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0QWRkT25CbHVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cIkFkZEJyYW5jaE9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJMb2FkaW5nIHx8IEhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtY2hpcC1saXN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZnVsbC13aWR0aCB3aXRoLWhpbnRcIlxuICAgICAgICAgICAgICAgIFtmeFNob3ddPVwiU2VsZWN0ZWRCcmFuY2hlcz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+YWNjb3VudF90cmVlPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiU291cmNlQ29udHJvbFJvb3QgKyAnbWFpbkJyYW5jaCdcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk1haW4gQnJhbmNoXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIkxvYWRpbmcgfHwgSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIk1haW5CcmFuY2hDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnJhbmNoIG9mIFNlbGVjdGVkQnJhbmNoZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJicmFuY2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBicmFuY2ggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiUmVmcmVzaE9yZ2FuaXphdGlvbnMoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBocmVmPVwiLy5vYXV0aC9HaXRIdWJPQXV0aD9vYXV0aC1mb3JjZS1lZGl0PXRydWVcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJSZS1hdXRob3JpemUgT3JnYW5pemF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxhdW5jaFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICAgIDxtYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgSWYgeW91IGRvbid0IGhhdmUgYW4gb3JnYW5pemF0aW9uIG9yIHdvdWxkIGxpa2UgdG8gY3JlYXRlIGFcbiAgICAgICAgICAgICAgICAgICAgbmV3IG9uZSxcbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vYWNjb3VudC9vcmdhbml6YXRpb25zL25ld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcmltYXJ5LWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydCBoZXJlXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjYXJkXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgKEJ1aWxkUGF0aEZvcm1Db250cm9sPy52YWxpZCB8fFxuICAgICAgICAgICAgICAgICAgICAoT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhTG9hZGluZykpICYmXG4gICAgICAgICAgICAgICAgIUNyZWF0aW5nUmVwb3NpdG9yeSAmJlxuICAgICAgICAgICAgICAgIFVzZUJ1aWxkUGF0aFxuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGggd2l0aC1oaW50XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+YnVpbGQ8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTb3VyY2VDb250cm9sUm9vdCArICdidWlsZFBhdGgnXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJCdWlsZCBQYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIkxvYWRpbmcgfHwgQnVpbGRQYXRoRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIkJ1aWxkUGF0aENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidWlsZFBhdGggb2YgQnVpbGRQYXRoT3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImJ1aWxkUGF0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGJ1aWxkUGF0aCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgIFRoZSBidWlsZCBwYXRoIGlkZW50aWZpZXMgd2hpY2ggYnVpbGQgYWN0aW9uIHRvIHVzZSBmb3IgeW91clxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uLlxuICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiTG9hZGluZ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwcmVhZFwiPlxuICAgICAgICAgICAgICAgIDxsY3UtbG9hZGVyIHN0eWxlPVwibWFyZ2luOiBhdXRvXCIgW2xvYWRpbmddPVwidHJ1ZVwiPjwvbGN1LWxvYWRlcj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tM1wiPlxuICAgICAgICAgICAgICAgICAgICA8aDRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIU9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIExvYWRpbmcgb3JnYW5pemF0aW9uc1xuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuXG4gICAgICAgICAgICAgICAgICAgIDxoNFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGluZyByZXBvc2l0b3JpZXNcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cblxuICAgICAgICAgICAgICAgICAgICA8aDRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFCcmFuY2hlc0Zvcm1Db250cm9sPy52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGluZyBicmFuY2hlc1xuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuXG4gICAgICAgICAgICAgICAgICAgIDxoNFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmFuY2hlc0Zvcm1Db250cm9sPy52YWxpZCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhQnVpbGRQYXRoRm9ybUNvbnRyb2w/LnZhbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBMb2FkaW5nIGJ1aWxkIHBhdGhzXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSA8L2Rpdj4gLS0+XG5cbiAgICA8IS0tIDwvbWF0LWNhcmQtY29udGVudD4gLS0+XG4gICAgPCEtLSA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPiAtLT5cblxuICAgIDwhLS0gPGJ1dHRvbiBcbiAgICAgICAgbWF0LXJhaXNlZC1idXR0b24gXG4gICAgICAgICpuZ0lmPVwiIVN0YXRlPy5Mb2FkaW5nXCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiIFxuICAgICAgICBmeEZsZXg9XCIxMDAlXCIgXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIFxuICAgICAgICBbZGlzYWJsZWRdPVwiIURldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAudmFsaWQgfHwgIURldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuZGlydHlcIj5cbiAgICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxuICAgICAgICBTYXZlIFNvdXJjZSBDb250cm9sXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxsY3UtbG9hZGVyIFtsb2FkaW5nXT1cIlN0YXRlPy5Mb2FkaW5nXCI+PC9sY3UtbG9hZGVyPiAtLT5cblxuICAgIDwhLS0gPC9tYXQtY2FyZC1hY3Rpb25zPiAtLT5cbiAgICA8IS0tIDwvbWF0LWNhcmQ+IC0tPlxuPC9mb3JtPlxuIl19
|
|
398
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0gsV0FBVyxFQUVYLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBcUMsSUFBSSxFQUFVLE1BQU0sYUFBYSxDQUFDO0FBWTlFLE9BQU8sRUFLSCxxQkFBcUIsR0FDeEIsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPN0MsTUFBTSxPQUFPLGdDQUFnQztJQStKekMsZ0JBQWdCO0lBQ2hCLFlBQ2MsV0FBb0MsRUFDcEMsTUFBa0IsRUFDbEIsV0FBd0I7UUFGeEIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFOdEIsdUJBQWtCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7UUFRekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FB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QW9CLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFDekMsVUFBVSxDQUFDLFFBQVEsQ0FDdEIsQ0FDSixDQUFDO1lBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUM7WUFFNUQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FDeEMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUMvQyxJQUFJLFdBQVcsQ0FDWCxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFDMUMsVUFBVSxDQUFDLFFBQVEsQ0FDdEIsQ0FDSixDQUFDO1NBQ0w7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FDeEMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUM5QyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQzdELENBQUM7U0FDTDtJQUNMLENBQUM7OzZIQWpuQlEsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsMGJDL0M3QyxtOWRBMlpBOzJGRDVXYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0ksZ0NBQWdDO2lLQVVuQywwQkFBMEI7c0JBRGhDLEtBQUs7dUJBQUMsK0JBQStCO2dCQUkvQixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsaUJBQWlCO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkFJcEIsZUFBZTtzQkFEckIsTUFBTTt1QkFBQyxtQkFBbUI7Z0JBSXBCLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQnVpbGRlcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBCYXNlTW9kZWxlZFJlc3BvbnNlLCBCYXNlUmVzcG9uc2UsIEd1aWQsIFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRWFDQXJ0aWZhY3QsXG4gICAgRWFDRGV2T3BzQWN0aW9uLFxuICAgIEVhQ0Vudmlyb25tZW50QXNDb2RlLFxuICAgIEVhQ1NvdXJjZUNvbnRyb2wsXG59IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcGxpY2F0aW9ucy1mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBFYUNTZXJ2aWNlLFxuICAgIFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gICAgR2l0SHViQnJhbmNoLFxuICAgIEdpdEh1Yk9yZ2FuaXphdGlvbixcbiAgICBHaXRIdWJSZXBvc2l0b3J5LFxuICAgIFByb2plY3RIb3N0aW5nRGV0YWlscyxcbn0gZnJvbSAnLi4vLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS1kZXZvcHMtc291cmNlLWNvbnRyb2wtZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Rldm9wcy1zb3VyY2UtY29udHJvbC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kZXZvcHMtc291cmNlLWNvbnRyb2wtZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEZXZvcHNTb3VyY2VDb250cm9sRm9ybUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgICAvLyAgRmllbGRzXG5cbiAgICBASW5wdXQoJ2VkaXRpbmctc291cmNlLWNvbnRyb2wtbG9va3VwJylcbiAgICBwdWJsaWMgRWRpdGluZ1NvdXJjZUNvbnRyb2xMb29rdXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgnZW52aXJvbm1lbnQnKVxuICAgIHB1YmxpYyBFbnZpcm9ubWVudDogRWFDRW52aXJvbm1lbnRBc0NvZGU7XG5cbiAgICBASW5wdXQoJ2Vudmlyb25tZW50LWxvb2t1cCcpXG4gICAgcHVibGljIEVudmlyb25tZW50TG9va3VwOiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCdzYXZlLXN0YXR1cy1ldmVudCcpXG4gICAgcHVibGljIFNhdmVTdGF0dXNFdmVudDogRXZlbnRFbWl0dGVyPFN0YXR1cz47XG5cbiAgICBAVmlld0NoaWxkKCdicmFuY2hlcycpXG4gICAgcHVibGljIEJyYW5jaGVzSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICAvL09wdGlvbmFsIGlucHV0IG5vdCBiZWluZyB1c2VkIHNldHRpbmcgdG9cbiAgICAvLyBASW5wdXQoJ2J1aWxkLXBhdGgnKVxuICAgIHB1YmxpYyBCdWlsZFBhdGg6IHN0cmluZztcblxuICAgIC8vT3B0aW9uYWwgbm90IGJlaW5nIHVzZWRcbiAgICAvLyBASW5wdXQoJ2J1aWxkLXBhdGgtZGlzYWJsZWQnKVxuICAgIHB1YmxpYyBCdWlsZFBhdGhEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8vIHRoaXMgaW5wdXQgaXMgbm90IGJlaW5nIHVzZWQgYW55d2hlcmVcbiAgICAvLyBASW5wdXQoJ3NvdXJjZS1jb250cm9sLXJvb3QnKVxuICAgIHB1YmxpYyBTb3VyY2VDb250cm9sUm9vdDogc3RyaW5nO1xuXG4gICAgLy9ub3QgYmVpbmcgdXNlZCBzZXQgdG8gdHJ1ZSBieSBkZWZhdWx0XG4gICAgLy8gQElucHV0KCd1c2UtYnJhbmNoZXMnKVxuICAgIHB1YmxpYyBVc2VCcmFuY2hlczogYm9vbGVhbjtcblxuICAgIC8vbm90IGJlaW5nIHVzZWQgc2V0IHRvIGZhbHNlIGJ5IGRlZmF1bHRcbiAgICAvLyBASW5wdXQoJ3VzZS1idWlsZC1wYXRoJylcbiAgICBwdWJsaWMgVXNlQnVpbGRQYXRoOiBib29sZWFuO1xuXG4gICAgLy8gIFByb3BlcnRpZXNcblxuICAgIHB1YmxpYyBnZXQgQXJ0aWZhY3RMb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5EZXZPcHNBY3Rpb24/LkFydGlmYWN0TG9va3VwcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IEFydGlmYWN0TG9va3VwKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGFydExvb2t1cCA9IHRoaXMuRGV2T3BzQWN0aW9uPy5BcnRpZmFjdExvb2t1cHNcbiAgICAgICAgICAgID8gdGhpcy5EZXZPcHNBY3Rpb24/LkFydGlmYWN0TG9va3Vwc1swXVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICByZXR1cm4gYXJ0TG9va3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgQXJ0aWZhY3QoKTogRWFDQXJ0aWZhY3Qge1xuICAgICAgICByZXR1cm4gdGhpcy5FbnZpcm9ubWVudD8uQXJ0aWZhY3RzICYmIHRoaXMuQXJ0aWZhY3RMb29rdXBcbiAgICAgICAgICAgID8gdGhpcy5FbnZpcm9ubWVudD8uQXJ0aWZhY3RzW3RoaXMuQXJ0aWZhY3RMb29rdXBdIHx8IHt9XG4gICAgICAgICAgICA6IHt9O1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IEJyYW5jaGVzRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5nZXQoXG4gICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xSb290ICsgJ2JyYW5jaGVzJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgQnVpbGRQYXRoRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5nZXQoXG4gICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xSb290ICsgJ2J1aWxkUGF0aCdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbkxvb2t1cHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuRGV2T3BzQWN0aW9ucyk7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLkRldk9wc0FjdGlvbnMgfHwge30pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgRGV2T3BzQWN0aW9uKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnMgJiYgdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBcbiAgICAgICAgICAgID8gdGhpcy5FbnZpcm9ubWVudC5EZXZPcHNBY3Rpb25zW3RoaXMuRGV2T3BzQWN0aW9uTG9va3VwXSB8fCB7fVxuICAgICAgICAgICAgOiB7fTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbkxvb2t1cCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAoISF0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sPy52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5EZXZPcHNBY3Rpb25UcmlnZ2VyTG9va3Vwcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/LkRldk9wc0FjdGlvblRyaWdnZXJMb29rdXBzWzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuZ2V0KCdkZXZPcHNBY3Rpb25Mb29rdXAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbnMoKTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNEZXZPcHNBY3Rpb24gfSB7XG4gICAgICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnMgfHwge307XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBFZGl0aW5nU291cmNlQ29udHJvbCgpOiBFYUNTb3VyY2VDb250cm9sIHtcbiAgICAgICAgbGV0IHNjID0gdGhpcy5FbnZpcm9ubWVudD8uU291cmNlc1xuICAgICAgICAgICAgPyB0aGlzLkVudmlyb25tZW50Py5Tb3VyY2VzW3RoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2xMb29rdXBdXG4gICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgaWYgKHNjID09IG51bGwgJiYgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbExvb2t1cCkge1xuICAgICAgICAgICAgc2MgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzYztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IE1haW5CcmFuY2hGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbFJvb3QgKyAnbWFpbkJyYW5jaCdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IE9yZ2FuaXphdGlvbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdvcmdhbml6YXRpb24nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBSZXBvc2l0b3J5Rm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5nZXQoXG4gICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xSb290ICsgJ3JlcG9zaXRvcnknXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIFN0YXRlOiBBcHBsaWNhdGlvbnNGbG93U3RhdGU7XG5cbiAgICAvLyBwdWJsaWMgZ2V0IFN0YXRlKCk6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmVhY1N2Yy5TdGF0ZTtcbiAgICAvLyB9XG5cbiAgICBwdWJsaWMgQnJhbmNoT3B0aW9uczogR2l0SHViQnJhbmNoW107XG5cbiAgICBwdWJsaWMgQnVpbGRQYXRoT3B0aW9uczogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgQ3JlYXRpbmdSZXBvc2l0b3J5OiBib29sZWFuO1xuXG4gICAgcHVibGljIERldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIHB1YmxpYyBIb3N0aW5nRGV0YWlsczogUHJvamVjdEhvc3RpbmdEZXRhaWxzO1xuXG4gICAgcHVibGljIExvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgT3JnYW5pemF0aW9uT3B0aW9uczogR2l0SHViT3JnYW5pemF0aW9uW107XG5cbiAgICBwdWJsaWMgUmVwb3NpdG9yeU9wdGlvbnM6IEdpdEh1YlJlcG9zaXRvcnlbXTtcblxuICAgIHB1YmxpYyBTZWxlY3RlZEJyYW5jaGVzOiBzdHJpbmdbXTtcblxuICAgIHB1YmxpYyBTa2VsZXRvbkVmZmVjdDogc3RyaW5nO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IFNlcGFyYXRvcktleXNDb2RlcyA9IFtFTlRFUiwgQ09NTUFdIGFzIGNvbnN0O1xuXG4gICAgLy8gIENvbnN0cnVjdG9yc1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuU2F2ZVN0YXR1c0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgICAgIHRoaXMuQnVpbGRQYXRoID0gbnVsbDtcblxuICAgICAgICB0aGlzLkhvc3RpbmdEZXRhaWxzID0gbmV3IFByb2plY3RIb3N0aW5nRGV0YWlscygpO1xuXG4gICAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyA9IFtdO1xuXG4gICAgICAgIHRoaXMuU291cmNlQ29udHJvbFJvb3QgPSAnJztcblxuICAgICAgICB0aGlzLlNrZWxldG9uRWZmZWN0ID0gJ3dhdmUnO1xuXG4gICAgICAgIHRoaXMuVXNlQnJhbmNoZXMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuVXNlQnVpbGRQYXRoID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gIExpZmUgQ3ljbGVcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95Rm9ybUNvbnRyb2xzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVhY1N2Yy5TdGF0ZS5zdWJzY3JpYmUoKHN0YXRlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdzb3VyY2UgY29udHJvbCBsb29rdXAnLCB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwKTtcblxuICAgICAgICBpZiAodGhpcy5FZGl0aW5nU291cmNlQ29udHJvbExvb2t1cCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5DcmVhdGVOZXdTb3VyY2VDb250cm9sKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coJ3NvdXJjZSBjb250cm9sJywgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbCk7XG5cbiAgICAgICAgaWYgKHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7fSk7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0dXBGb3JtQ29udHJvbHMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuUmVmcmVzaE9yZ2FuaXphdGlvbnMoKTtcbiAgICB9XG5cbiAgICAvLyAgQVBJIE1ldGhvZHNcbiAgICBwdWJsaWMgQWRkQnJhbmNoT3B0aW9uKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFkZEJyYW5jaE9wdGlvbihldmVudC52YWx1ZSk7XG5cbiAgICAgICAgZXZlbnQuaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgQnJhbmNoT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGRCcmFuY2hPcHRpb24oZXZlbnQub3B0aW9uLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQnJhbmNoZXNDaGFuZ2VkKGJyYW5jaGVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQnVpbGRQYXRoQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIC8vZG8gc29tZXRoaW5nPz9cbiAgICB9XG5cbiAgICBwdWJsaWMgQ3JlYXRlTmV3U291cmNlQ29udHJvbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5TZXRFZGl0aW5nU291cmNlQ29udHJvbChHdWlkLkNyZWF0ZVJhdygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQ3JlYXRlUmVwb3NpdG9yeSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5DcmVhdGluZ1JlcG9zaXRvcnkgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIENhbmNlbENyZWF0ZVJlcG9zaXRvcnkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuQ3JlYXRpbmdSZXBvc2l0b3J5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIERldk9wc0FjdGlvbkxvb2t1cENoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyZURldk9wc0FjdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBNYWluQnJhbmNoQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW1pdEJyYW5jaGVzQ2hhbmdlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBPcmdhbml6YXRpb25DaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb3JnID0gdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbDtcblxuICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC5yZXNldCgpO1xuXG4gICAgICAgIGlmICh0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICAgICAgICB0aGlzLkJyYW5jaGVzRm9ybUNvbnRyb2wucmVzZXQoKTtcblxuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxpc3RSZXBvc2l0b3JpZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgUmVmcmVzaE9yZ2FuaXphdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMubGlzdE9yZ2FuaXphdGlvbnMoKTtcblxuICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy5yZXNldCgpO1xuXG4gICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sPy5yZXNldCgpO1xuXG4gICAgICAgIGlmICh0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICAgICAgICB0aGlzLkJyYW5jaGVzRm9ybUNvbnRyb2w/LnJlc2V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgUmVtb3ZlQnJhbmNoT3B0aW9uKG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5TZWxlY3RlZEJyYW5jaGVzLmluZGV4T2Yob3B0aW9uKTtcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVtaXRCcmFuY2hlc0NoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgUmVwb3NpdG9yeUNoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXBvID0gdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2w7XG5cbiAgICAgICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMuQnJhbmNoZXNGb3JtQ29udHJvbC5yZXNldCgpO1xuXG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbXTtcblxuICAgICAgICAgICAgdGhpcy5saXN0QnJhbmNoZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgdGhpcy5saXN0QnVpbGRQYXRocygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFNhdmVSZXBvc2l0b3J5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IG9yZyA9IHRoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgY29uc3QgcmVwb05hbWUgPSB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgICAgICAuQ3JlYXRlUmVwb3NpdG9yeShvcmcsIHJlcG9OYW1lKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJhc2VSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RSZXBvc2l0b3JpZXMocmVwb05hbWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQ3JlYXRpbmdSZXBvc2l0b3J5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gIFRPRE86ICBOZWVkIHRvIHN1cmZhY2UgYW4gZXJyb3IgdG8gdGhlIHVzZXIuLi5cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2V0RWRpdGluZ1NvdXJjZUNvbnRyb2woc2NMb29rdXA6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwID0gc2NMb29rdXA7XG4gICAgfVxuXG4gICAgcHVibGljIFN1Ym1pdFNvdXJjZUNvbnRyb2woKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgJ3NvdXJjZSBjb250cm9sIHN1Ym1pdHRlZDogJyxcbiAgICAgICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC52YWx1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLlNhdmVTb3VyY2VDb250cm9sKCk7XG4gICAgfVxuXG4gICAgcHVibGljIFNhdmVTb3VyY2VDb250cm9sKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzYXZlRW52UmVxOiBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3QgPSB7XG4gICAgICAgICAgICBFbnZpcm9ubWVudDoge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuRW52aXJvbm1lbnQsXG4gICAgICAgICAgICAgICAgU291cmNlczogdGhpcy5FbnZpcm9ubWVudC5Tb3VyY2VzIHx8IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEVudmlyb25tZW50TG9va3VwOiB0aGlzLkVudmlyb25tZW50TG9va3VwLFxuICAgICAgICAgICAgRW50ZXJwcmlzZURhdGFUb2tlbnM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBzb3VyY2U6IEVhQ1NvdXJjZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAuLi50aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sLFxuICAgICAgICAgICAgQnJhbmNoZXM6IHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyxcbiAgICAgICAgICAgIE1haW5CcmFuY2g6IHRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHNvdXJjZSA9IHtcbiAgICAgICAgICAgIC4uLnNvdXJjZSxcbiAgICAgICAgICAgIFR5cGU6ICdHaXRIdWInLFxuICAgICAgICAgICAgTmFtZTogYEAke3RoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2wudmFsdWV9LyR7dGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wudmFsdWV9YCxcbiAgICAgICAgICAgIERldk9wc0FjdGlvblRyaWdnZXJMb29rdXBzOiBbdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBdLFxuICAgICAgICAgICAgT3JnYW5pemF0aW9uOiB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgUmVwb3NpdG9yeTogdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2NMb29rdXAgPSBgZ2l0aHViOi8vJHtzb3VyY2UuT3JnYW5pemF0aW9ufS8ke3NvdXJjZS5SZXBvc2l0b3J5fWA7XG5cbiAgICAgICAgc2F2ZUVudlJlcS5FbnZpcm9ubWVudC5Tb3VyY2VzW3NjTG9va3VwXSA9IHNvdXJjZTtcblxuICAgICAgICBjb25zb2xlLmxvZygnc2F2ZSBTQzogJywgc2F2ZUVudlJlcSk7XG5cbiAgICAgICAgbGV0IHJlc3AgPSB0aGlzLmVhY1N2Yy5TYXZlRW52aXJvbm1lbnRBc0NvZGUoc2F2ZUVudlJlcSk7XG5cbiAgICAgICAgcmVzcC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuU2F2ZVN0YXR1c0V2ZW50LmVtaXQocmVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gIEhlbHBlcnNcblxuICAgIHByb3RlY3RlZCBhZGRCcmFuY2hPcHRpb24odmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSB8fCAnJykudHJpbSgpO1xuXG4gICAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLlNlbGVjdGVkQnJhbmNoZXMuaW5kZXhPZih2YWx1ZSkgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLkJyYW5jaGVzSW5wdXQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG5cbiAgICAgICAgdGhpcy5lbWl0QnJhbmNoZXNDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbmZpZ3VyZURldk9wc0FjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgICAgIHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwXG4gICAgICAgICAgICApO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveUZvcm1Db250cm9scygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woXG4gICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ21haW5CcmFuY2gnXS5qb2luKCcnKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8ucmVtb3ZlQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnYnJhbmNoZXMnXS5qb2luKCcnKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8ucmVtb3ZlQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnYnVpbGRQYXRoJ10uam9pbignJylcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbXTtcblxuICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA/LnJlbW92ZUNvbnRyb2woXG4gICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ29yZ2FuaXphdGlvbiddLmpvaW4oJycpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwPy5yZW1vdmVDb250cm9sKFxuICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdyZXBvc2l0b3J5J10uam9pbignJylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW1pdEJyYW5jaGVzQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzPy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAoIXRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzLmluZGV4T2YoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgKSA8IDApXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5NYWluQnJhbmNoRm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChicmFuY2gpID0+IGJyYW5jaCA9PT0gJ21haW4nIHx8IGJyYW5jaCA9PT0gJ21hc3RlcidcbiAgICAgICAgICAgICAgICApIHx8IHRoaXMuU2VsZWN0ZWRCcmFuY2hlc1swXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLlNlbGVjdGVkQnJhbmNoZXM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICB0aGlzLk1haW5CcmFuY2hGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5qb2luKCcsJykpO1xuXG4gICAgICAgIHRoaXMuQnJhbmNoZXNDaGFuZ2VkKHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyB8fCBbXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxpc3RCcmFuY2hlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgICAgICAgICAuTGlzdEJyYW5jaGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxHaXRIdWJCcmFuY2hbXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5CcmFuY2hPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/LkJyYW5jaGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wuQnJhbmNoZXM7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5CcmFuY2hPcHRpb25zPy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQnJhbmNoZXNGb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkJyYW5jaE9wdGlvbnNbMF0uTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW3RoaXMuQnJhbmNoT3B0aW9uc1swXS5OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEJyYW5jaGVzQ2hhbmdlZCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBsaXN0QnVpbGRQYXRocygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuVXNlQnVpbGRQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgICAgICAgICAgLkxpc3RCdWlsZFBhdGhzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxzdHJpbmdbXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5CdWlsZFBhdGhPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuQnVpbGRQYXRoT3B0aW9ucz8ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkJ1aWxkUGF0aEZvcm1Db250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQnVpbGRQYXRoT3B0aW9uc1swXVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxpc3RPcmdhbml6YXRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgICAgIC5MaXN0T3JnYW5pemF0aW9ucygpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxHaXRIdWJPcmdhbml6YXRpb25bXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25PcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ09yZ2FuaXphdGlvbiBPcHRpb25zOiAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25PcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/Lk9yZ2FuaXphdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5Pcmdhbml6YXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0UmVwb3NpdG9yaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5SZXBvc2l0b3J5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbGlzdFJlcG9zaXRvcmllcyhhY3RpdmVSZXBvOiBzdHJpbmcgPSBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgICAgICAgLkxpc3RSZXBvc2l0b3JpZXModGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEdpdEh1YlJlcG9zaXRvcnlbXT4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVSZXBvKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wuc2V0VmFsdWUoYWN0aXZlUmVwbyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEJyYW5jaGVzKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLlJlcG9zaXRvcnlPcHRpb25zPy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkNyZWF0aW5nUmVwb3NpdG9yeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLlNlbGVjdGVkQnJhbmNoZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwc0Zsb3dTdmMuTG9hZFByb2plY3RIb3N0aW5nRGV0YWlscygpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8UHJvamVjdEhvc3RpbmdEZXRhaWxzPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkhvc3RpbmdEZXRhaWxzID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmVEZXZPcHNBY3Rpb24oKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cEZvcm1Db250cm9scygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95Rm9ybUNvbnRyb2xzKCk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJ1NvdXJjZSBDb250cm9sOiAnLCB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sKTtcblxuICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdkZXZPcHNBY3Rpb25Mb29rdXAnLFxuICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwIHx8ICcnLCBbXSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnb3JnYW5pemF0aW9uJ10uam9pbignJyksXG4gICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5Pcmdhbml6YXRpb24gPz8gJycsXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdyZXBvc2l0b3J5J10uam9pbignJyksXG4gICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5SZXBvc2l0b3J5ID8/ICcnLFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdicmFuY2hlcyddLmpvaW4oJycpLFxuICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbD8uQnJhbmNoZXMgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5CcmFuY2hlcztcblxuICAgICAgICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdtYWluQnJhbmNoJ10uam9pbignJyksXG4gICAgICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sLk1haW5CcmFuY2ggPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuVXNlQnVpbGRQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ2J1aWxkUGF0aCddLmpvaW4oJycpLFxuICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLkJ1aWxkUGF0aCA/PyAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8Zm9ybVxuICAgIGNsYXNzPVwiZm9ybS1jYXJkXCJcbiAgICBbZm9ybUdyb3VwXT1cIkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXBcIlxuICAgIChuZ1N1Ym1pdCk9XCJTdWJtaXRTb3VyY2VDb250cm9sKClcIlxuPlxuICAgIDwhLS0gPG1hdC1jYXJkIGNsYXNzPVwic3ByZWFkXCIgY2xhc3M9XCJzYy1jYXJkXCI+IC0tPlxuICAgIDwhLS0gPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgIDxtYXQtY2FyZC10aXRsZT4gU291cmNlIENvbnRyb2wgPC9tYXQtY2FyZC10aXRsZT5cblxuICAgICAgPGRpdiBmeEZsZXg+PC9kaXY+XG5cbiAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXggbWF0VG9vbHRpcD1cIkNvbmZpZ3VyZSBzb3VyY2UgY29udHJvbCwgRGV2T3BzIENJL0NELCBhbmQgYXJ0aWZhY3RzLlwiPlxuICAgICAgICBpbmZvX291dGxpbmVcbiAgICAgIDwvbWF0LWljb24+XG4gICAgPC9tYXQtY2FyZC1oZWFkZXI+IC0tPlxuXG4gICAgPCEtLSA8bWF0LWNhcmQtY29udGVudD4gLS0+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgICAgPGxjdS1sb2FkZXIgW2xvYWRpbmddPVwiU3RhdGU/LkxvYWRpbmdcIj48L2xjdS1sb2FkZXI+XG5cbiAgICAgICAgPCEtLSA8c2tlbGV0b24tYmxvY2sgXG4gICAgICAgICAgY2xhc3M9XCJzLWJsb2NrXCJcbiAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgXG4gICAgICAgID48L3NrZWxldG9uLWJsb2NrPlxuXG4gICAgICAgIDxza2VsZXRvbi1ibG9jayBcbiAgICAgICAgICBjbGFzcz1cInMtYmxvY2tcIlxuICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG5cbiAgICAgICAgPHNrZWxldG9uLWJsb2NrIFxuICAgICAgICAgIGNsYXNzPVwicy1ibG9ja1wiXG4gICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiICBcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+XG5cbiAgICAgICAgPHNrZWxldG9uLWJsb2NrIFxuICAgICAgICAgIGNsYXNzPVwicy1ibG9ja1wiXG4gICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiICBcbiAgICAgICAgPjwvc2tlbGV0b24tYmxvY2s+IC0tPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXZPcHNBY3Rpb25Mb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkRldk9wcyBBY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIkRldk9wc0FjdGlvbkxvb2t1cENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGV2T3BzQWN0aW9uTG9va3VwIG9mIERldk9wc0FjdGlvbkxvb2t1cHNcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkZXZPcHNBY3Rpb25Mb29rdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldk9wc0FjdGlvbnNbZGV2T3BzQWN0aW9uTG9va3VwXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRldk9wc0FjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGV2T3BzQWN0aW9uLk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJcIj4tLSBDcmVhdGUgTmV3IC0tPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiICpuZ0lmPVwiT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkIHx8ICFMb2FkaW5nXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoIHdpdGgtaGludCBtYXJnaW4tYm90dG9tXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIk9yZ2FuaXphdGlvbk9wdGlvbnM/Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm9yZy1pY29uXCIgbWF0UHJlZml4PmNvcnBvcmF0ZV9mYXJlPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiU291cmNlQ29udHJvbFJvb3QgKyAnb3JnYW5pemF0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiT3JnYW5pemF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJPcmdhbml6YXRpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiTG9hZGluZyB8fCBIb3N0aW5nRGV0YWlscz8uTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcmdPcHQgb2YgT3JnYW5pemF0aW9uT3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9yZ09wdC5OYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3JnT3B0Lk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiUmVmcmVzaE9yZ2FuaXphdGlvbnMoKVwiXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJSZWZyZXNoIE9yZ2FuaXphdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvLm9hdXRoL0dpdEh1Yk9BdXRoP29hdXRoLWZvcmNlLWVkaXQ9dHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlJlLWF1dGhvcml6ZSBPcmdhbml6YXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgbGF1bmNoXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9hPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICAgICAgICBJZiB5b3UgZG9uJ3QgaGF2ZSBhbiBvcmdhbml6YXRpb24gb3Igd291bGQgbGlrZSB0byBjcmVhdGUgYVxuICAgICAgICAgICAgICAgICAgICBuZXcgb25lLFxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9hY2NvdW50L29yZ2FuaXphdGlvbnMvbmV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJpbWFyeS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0IGhlcmVcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNhcmRcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkIHx8XG4gICAgICAgICAgICAgICAgKE9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZCAmJiAhTG9hZGluZylcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+ZGVzY3JpcHRpb248L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTb3VyY2VDb250cm9sUm9vdCArICdyZXBvc2l0b3J5J1wiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIE9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ1JlcG9zaXRvcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnUmVwb3NpdG9yeSAoc2VsZWN0IG9yZ2FuaXphdGlvbiBmaXJzdCknXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICFPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIExvYWRpbmcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIEhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiUmVwb3NpdG9yeUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIUNyZWF0aW5nUmVwb3NpdG9yeVwiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZXBvT3B0IG9mIFJlcG9zaXRvcnlPcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicmVwb09wdC5OYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmVwb09wdC5OYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cblxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlJlcG9zaXRvcnkgKGNyZWF0ZXMgbmV3IGlmIGRvZXMgbm90IGV4aXN0KVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiU291cmNlQ29udHJvbFJvb3QgKyAncmVwb3NpdG9yeSdcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIkNyZWF0aW5nUmVwb3NpdG9yeVwiXG4gICAgICAgICAgICAgICAgICAgIFtmeEhpZGVdPVwiTG9hZGluZyB8fCBIb3N0aW5nRGV0YWlscz8uTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkNyZWF0ZVJlcG9zaXRvcnkoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtmeEhpZGVdPVwiTG9hZGluZyB8fCBIb3N0aW5nRGV0YWlscz8uTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAhQ3JlYXRpbmdSZXBvc2l0b3J5ICYmIE9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgYWRkX2NpcmNsZVxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJTYXZlUmVwb3NpdG9yeSgpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJDcmVhdGluZ1JlcG9zaXRvcnkgJiYgUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4IGNvbG9yPVwicHJpbWFyeVwiPiBzYXZlIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJDYW5jZWxDcmVhdGVSZXBvc2l0b3J5KClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIkNyZWF0aW5nUmVwb3NpdG9yeVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4PiBjYW5jZWwgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2FyZFwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIChCcmFuY2hlc0Zvcm1Db250cm9sPy52YWxpZCB8fFxuICAgICAgICAgICAgICAgICAgICAoT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhTG9hZGluZykpICYmXG4gICAgICAgICAgICAgICAgIUNyZWF0aW5nUmVwb3NpdG9yeSAmJlxuICAgICAgICAgICAgICAgIFVzZUJyYW5jaGVzXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm9yZy1pY29uXCIgbWF0UHJlZml4PmFjY291bnRfdHJlZTwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlNlbGVjdGVkIEJyYW5jaGVzPC9tYXQtbGFiZWw+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiQnJhbmNoT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICNicmFuY2hPcHRpb25zPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJyYW5jaE9wdCBvZiBCcmFuY2hPcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiYnJhbmNoT3B0Lk5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBicmFuY2hPcHQuTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWNoaXAtbGlzdCAjc2VsZWN0ZWRCcmFuY2hlcz5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGlwXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwiUmVtb3ZlQnJhbmNoT3B0aW9uKHNlbEJyYW5jaClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlbEJyYW5jaCBvZiBTZWxlY3RlZEJyYW5jaGVzXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VsQnJhbmNoIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGlwPlxuXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmV3IEJyYW5jaC4uLlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIlNvdXJjZUNvbnRyb2xSb290ICsgJ2JyYW5jaGVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAjYnJhbmNoZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYnJhbmNoT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cInNlbGVjdGVkQnJhbmNoZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cIlNlcGFyYXRvcktleXNDb2Rlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0QWRkT25CbHVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cIkFkZEJyYW5jaE9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJMb2FkaW5nIHx8IEhvc3RpbmdEZXRhaWxzPy5Mb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9tYXQtY2hpcC1saXN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZnVsbC13aWR0aCB3aXRoLWhpbnRcIlxuICAgICAgICAgICAgICAgIFtmeFNob3ddPVwiU2VsZWN0ZWRCcmFuY2hlcz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+YWNjb3VudF90cmVlPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiU291cmNlQ29udHJvbFJvb3QgKyAnbWFpbkJyYW5jaCdcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk1haW4gQnJhbmNoXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIkxvYWRpbmcgfHwgSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIk1haW5CcmFuY2hDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnJhbmNoIG9mIFNlbGVjdGVkQnJhbmNoZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJicmFuY2hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBicmFuY2ggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiUmVmcmVzaE9yZ2FuaXphdGlvbnMoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBocmVmPVwiLy5vYXV0aC9HaXRIdWJPQXV0aD9vYXV0aC1mb3JjZS1lZGl0PXRydWVcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJSZS1hdXRob3JpemUgT3JnYW5pemF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxhdW5jaFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICAgIDxtYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgSWYgeW91IGRvbid0IGhhdmUgYW4gb3JnYW5pemF0aW9uIG9yIHdvdWxkIGxpa2UgdG8gY3JlYXRlIGFcbiAgICAgICAgICAgICAgICAgICAgbmV3IG9uZSxcbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vYWNjb3VudC9vcmdhbml6YXRpb25zL25ld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcmltYXJ5LWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydCBoZXJlXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjYXJkXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgKEJ1aWxkUGF0aEZvcm1Db250cm9sPy52YWxpZCB8fFxuICAgICAgICAgICAgICAgICAgICAoT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhTG9hZGluZykpICYmXG4gICAgICAgICAgICAgICAgIUNyZWF0aW5nUmVwb3NpdG9yeSAmJlxuICAgICAgICAgICAgICAgIFVzZUJ1aWxkUGF0aFxuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGggd2l0aC1oaW50XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+YnVpbGQ8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTb3VyY2VDb250cm9sUm9vdCArICdidWlsZFBhdGgnXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJCdWlsZCBQYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIkxvYWRpbmcgfHwgQnVpbGRQYXRoRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIkJ1aWxkUGF0aENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidWlsZFBhdGggb2YgQnVpbGRQYXRoT3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImJ1aWxkUGF0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGJ1aWxkUGF0aCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgIFRoZSBidWlsZCBwYXRoIGlkZW50aWZpZXMgd2hpY2ggYnVpbGQgYWN0aW9uIHRvIHVzZSBmb3IgeW91clxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uLlxuICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiTG9hZGluZ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwcmVhZFwiPlxuICAgICAgICAgICAgICAgIDxsY3UtbG9hZGVyIHN0eWxlPVwibWFyZ2luOiBhdXRvXCIgW2xvYWRpbmddPVwidHJ1ZVwiPjwvbGN1LWxvYWRlcj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tM1wiPlxuICAgICAgICAgICAgICAgICAgICA8aDRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIU9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIExvYWRpbmcgb3JnYW5pemF0aW9uc1xuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuXG4gICAgICAgICAgICAgICAgICAgIDxoNFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGluZyByZXBvc2l0b3JpZXNcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cblxuICAgICAgICAgICAgICAgICAgICA8aDRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFCcmFuY2hlc0Zvcm1Db250cm9sPy52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGluZyBicmFuY2hlc1xuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuXG4gICAgICAgICAgICAgICAgICAgIDxoNFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmFuY2hlc0Zvcm1Db250cm9sPy52YWxpZCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhQnVpbGRQYXRoRm9ybUNvbnRyb2w/LnZhbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBMb2FkaW5nIGJ1aWxkIHBhdGhzXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSA8L2Rpdj4gLS0+XG5cbiAgICA8IS0tIDwvbWF0LWNhcmQtY29udGVudD4gLS0+XG4gICAgPCEtLSA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPiAtLT5cblxuICAgIDwhLS0gPGJ1dHRvbiBcbiAgICAgICAgbWF0LXJhaXNlZC1idXR0b24gXG4gICAgICAgICpuZ0lmPVwiIVN0YXRlPy5Mb2FkaW5nXCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiIFxuICAgICAgICBmeEZsZXg9XCIxMDAlXCIgXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIFxuICAgICAgICBbZGlzYWJsZWRdPVwiIURldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAudmFsaWQgfHwgIURldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuZGlydHlcIj5cbiAgICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxuICAgICAgICBTYXZlIFNvdXJjZSBDb250cm9sXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxsY3UtbG9hZGVyIFtsb2FkaW5nXT1cIlN0YXRlPy5Mb2FkaW5nXCI+PC9sY3UtbG9hZGVyPiAtLT5cblxuICAgIDwhLS0gPC9tYXQtY2FyZC1hY3Rpb25zPiAtLT5cbiAgICA8IS0tIDwvbWF0LWNhcmQ+IC0tPlxuPC9mb3JtPlxuIl19
|