igniteui-angular-extras 17.0.1 → 17.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/context-menu/chart-dialog/chart-dialog.component.mjs +4 -4
- package/esm2022/lib/context-menu/context-menu.component.mjs +5 -5
- package/esm2022/lib/context-menu/igx-context-menu.directive.mjs +4 -4
- package/esm2022/lib/directives/chart-integration/chart-integration.directive.mjs +4 -4
- package/esm2022/lib/directives/chart-integration/initializers.mjs +1 -1
- package/esm2022/lib/directives/conditional-formatting/conditional-formatting.directive.mjs +4 -4
- package/esm2022/lib/igniteui-angular-extras.module.mjs +4 -4
- package/esm2022/lib/pipes/svg.pipe.mjs +3 -3
- package/fesm2022/igniteui-angular-extras.mjs +26 -26
- package/fesm2022/igniteui-angular-extras.mjs.map +1 -1
- package/package.json +6 -6
|
@@ -286,10 +286,10 @@ export class IgxChartIntegrationDirective {
|
|
|
286
286
|
this.customChartComponentOptions.get(chart)[optionsType][property] = options[property];
|
|
287
287
|
});
|
|
288
288
|
}
|
|
289
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
290
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
289
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IgxChartIntegrationDirective, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
290
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: IgxChartIntegrationDirective, selector: "[igxChartIntegration]", inputs: { chartData: "chartData", useLegend: "useLegend", defaultLabelMemberPath: "defaultLabelMemberPath", scatterChartYAxisValueMemberPath: "scatterChartYAxisValueMemberPath", bubbleChartRadiusMemberPath: "bubbleChartRadiusMemberPath" }, outputs: { onChartTypesDetermined: "onChartTypesDetermined", onChartCreationDone: "onChartCreationDone" }, ngImport: i0 }); }
|
|
291
291
|
}
|
|
292
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
292
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IgxChartIntegrationDirective, decorators: [{
|
|
293
293
|
type: Directive,
|
|
294
294
|
args: [{
|
|
295
295
|
selector: '[igxChartIntegration]'
|
|
@@ -309,4 +309,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
309
309
|
}], bubbleChartRadiusMemberPath: [{
|
|
310
310
|
type: Input
|
|
311
311
|
}] } });
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaW50ZWdyYXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci1leHRyYXMvc3JjL2xpYi9kaXJlY3RpdmVzL2NoYXJ0LWludGVncmF0aW9uL2NoYXJ0LWludGVncmF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRELFNBQVMsRUFDeEUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFDSCxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSx3QkFBd0IsRUFDakcscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQy9HLDZCQUE2QixFQUFFLHlCQUF5QixFQUFFLHFCQUFxQixFQUFFLGdDQUFnQyxFQUNqSCwrQkFBK0IsRUFBRSxrQ0FBa0MsRUFBRSxnQ0FBZ0MsRUFDckcsNkJBQTZCLEVBQUUsNEJBQTRCLEVBQUUsK0JBQStCLEVBQzVGLDZCQUE2QixFQUNoQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBNEMsdUJBQXVCLEVBQ3RFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFZLE1BQU0sZ0JBQWdCLENBQUM7O0FBVTdGLE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsSUFDVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsWUFBbUI7UUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMs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LENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUNqRTtRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9GLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E5VFEsNEJBQTRCO2tHQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBSHhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtpQkFDcEM7NkZBR2MsU0FBUztzQkFEbkIsS0FBSztnQkFxREMsc0JBQXNCO3NCQUQ1QixNQUFNO2dCQUlBLG1CQUFtQjtzQkFEekIsTUFBTTtnQkFJQSxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLO2dCQUlLLGdDQUFnQztzQkFEMUMsS0FBSztnQkFZSywyQkFBMkI7c0JBRHJDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgRGlyZWN0aXZlLFxyXG4gICAgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBJZ3hBcmVhU2VyaWVzQ29tcG9uZW50LCBJZ3hCYXJTZXJpZXNDb21wb25lbnQsIElneEJ1YmJsZVNlcmllc0NvbXBvbmVudCwgSWd4Q29sdW1uU2VyaWVzQ29tcG9uZW50LFxyXG4gICAgSWd4RGF0YUNoYXJ0Q29tcG9uZW50LCBJZ3hJdGVtTGVnZW5kQ29tcG9uZW50LCBJZ3hMZWdlbmRDb21wb25lbnQsIElneExpbmVTZXJpZXNDb21wb25lbnQsIElneFBpZUNoYXJ0Q29tcG9uZW50LFxyXG4gICAgSWd4U2NhdHRlckxpbmVTZXJpZXNDb21wb25lbnQsIElneFNjYXR0ZXJTZXJpZXNDb21wb25lbnQsIElneFNpemVTY2FsZUNvbXBvbmVudCwgSWd4U3RhY2tlZDEwMEFyZWFTZXJpZXNDb21wb25lbnQsXHJcbiAgICBJZ3hTdGFja2VkMTAwQmFyU2VyaWVzQ29tcG9uZW50LCBJZ3hTdGFja2VkMTAwQ29sdW1uU2VyaWVzQ29tcG9uZW50LCBJZ3hTdGFja2VkMTAwTGluZVNlcmllc0NvbXBvbmVudCxcclxuICAgIElneFN0YWNrZWRBcmVhU2VyaWVzQ29tcG9uZW50LCBJZ3hTdGFja2VkQmFyU2VyaWVzQ29tcG9uZW50LCBJZ3hTdGFja2VkQ29sdW1uU2VyaWVzQ29tcG9uZW50LFxyXG4gICAgSWd4U3RhY2tlZExpbmVTZXJpZXNDb21wb25lbnRcclxufSBmcm9tICdpZ25pdGV1aS1hbmd1bGFyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IENIQVJUX1RZUEUsIE9QVElPTlNfVFlQRSB9IGZyb20gJy4vY2hhcnQtdHlwZXMnO1xyXG5pbXBvcnQgeyBDaGFydEluaXRpYWxpemVyLCBJQ2hhcnRDb21wb25lbnRPcHRpb25zLCBJZ3hEYXRhQ2hhcnRJbml0aWFsaXplcixcclxuICAgIElneFBpZUNoYXJ0SW5pdGlhbGl6ZXIsIElneFN0YWNrZWREYXRhQ2hhcnRJbml0aWFsaXplciwgSU9wdGlvbnMgfSBmcm9tICcuL2luaXRpYWxpemVycyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEZXRlcm1pbmVkQ2hhcnRUeXBlc0FyZ3Mge1xyXG4gICAgY2hhcnRzQXZhaWxhYmlsdHk6IE1hcDxDSEFSVF9UWVBFLCBib29sZWFuPjtcclxuICAgIGNoYXJ0c0ZvckNyZWF0aW9uOiBDSEFSVF9UWVBFW107XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbaWd4Q2hhcnRJbnRlZ3JhdGlvbl0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ3hDaGFydEludGVncmF0aW9uRGlyZWN0aXZlIHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IGNoYXJ0RGF0YSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY2hhcnREYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgY2hhcnREYXRhKHNlbGVjdGVkRGF0YTogYW55W10pIHtcclxuICAgICAgICBjb25zdCBjaGFydHMgPSBuZXcgU2V0KHRoaXMuX2RhdGFDaGFydFR5cGVzKTtcclxuICAgICAgICBjb25zdCBkYXRhTW9kZWwgPSBzZWxlY3RlZERhdGEubGVuZ3RoID8gc2VsZWN0ZWREYXRhWzBdIDoge307XHJcbiAgICAgICAgdGhpcy5fbGFiZWxNZW1iZXJQYXRocyA9IE9iamVjdC5rZXlzKGRhdGFNb2RlbCkuZmlsdGVyKGtleSA9PiB0eXBlb2YgZGF0YU1vZGVsW2tleV0gPT09ICdzdHJpbmcnKTtcclxuICAgICAgICB0aGlzLl92YWx1ZU1lbWJlclBhdGhzID0gT2JqZWN0LmtleXMoZGF0YU1vZGVsKS5maWx0ZXIoa2V5ID0+IHR5cGVvZiBkYXRhTW9kZWxba2V5XSA9PT0gJ251bWJlcicpO1xyXG4gICAgICAgIHRoaXMuX2NoYXJ0RGF0YSA9IHNlbGVjdGVkRGF0YS5tYXAoKGRhdGFSZWNvcmQsIGluZGV4KSA9PiB0aGlzLmFkZEluZGV4TWVtYmVyUGF0aChkYXRhUmVjb3JkLCBpbmRleCArIDEpKTtcclxuICAgICAgICBjb25zdCBhcmdzOiBJRGV0ZXJtaW5lZENoYXJ0VHlwZXNBcmdzID0ge1xyXG4gICAgICAgICAgICBjaGFydHNBdmFpbGFiaWx0eTogbmV3IE1hcDxDSEFSVF9UWVBFLCBib29sZWFuPigpLFxyXG4gICAgICAgICAgICBjaGFydHNGb3JDcmVhdGlvbjogW11cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoc2VsZWN0ZWREYXRhLmxlbmd0aCA9PT0gMCB8fCB0aGlzLl92YWx1ZU1lbWJlclBhdGhzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhcnRUeXBlc0RldGVybWluZWQuZW1pdChhcmdzKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2VsZWN0ZWREYXRhLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBjaGFydHMuZm9yRWFjaCgoY2hhcnQsIF8sIHNldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNDb2x1bW5DaGFydCA9IGNoYXJ0LmluZGV4T2YoJ0NvbHVtbicpICE9PSAtMTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzQmFyQ2hhcnQgPSBjaGFydC5pbmRleE9mKCdCYXInKSAhPT0gLTE7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc1BpZUNoYXJ0ID0gY2hhcnQuaW5kZXhPZignUGllJykgIT09IC0xO1xyXG4gICAgICAgICAgICAgICAgaWYgKCEoaXNDb2x1bW5DaGFydCB8fCBpc0JhckNoYXJ0IHx8IGlzUGllQ2hhcnQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0LmRlbGV0ZShjaGFydCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBDb25maWcgcGllIGNoYXJ0XHJcbiAgICAgICAgY29uc3QgY2Fubm90Q3JlYXRlUGllQ2hhcnQgPSBzZWxlY3RlZERhdGEuc29tZShyZWNvcmQgPT4gcmVjb3JkW3RoaXMuX3ZhbHVlTWVtYmVyUGF0aHNbMF1dIDw9IDApO1xyXG4gICAgICAgIGlmIChjYW5ub3RDcmVhdGVQaWVDaGFydCkge1xyXG4gICAgICAgICAgICBjaGFydHMuZGVsZXRlKENIQVJUX1RZUEUuUElFKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQ29uZmlnIHNjYXR0ZXIgY2hhcnQgbWVtYmVyIHBhdGhzXHJcbiAgICAgICAgY29uc3QgY2FuQ3JlYXRlU2NhdHRlckNoYXJ0ID0gdGhpcy5fdmFsdWVNZW1iZXJQYXRocy5sZW5ndGggPj0gMjtcclxuICAgICAgICBjb25zdCBjYW5DcmVhdGVCdWJibGVDaGFydCA9IHRoaXMuX3ZhbHVlTWVtYmVyUGF0aHMubGVuZ3RoID49IDM7XHJcbiAgICAgICAgaWYgKCFjYW5DcmVhdGVTY2F0dGVyQ2hhcnQpIHtcclxuICAgICAgICAgICAgY2hhcnRzLmRlbGV0ZShDSEFSVF9UWVBFLlNDQVRURVJfQlVCQkxFKTtcclxuICAgICAgICAgICAgY2hhcnRzLmRlbGV0ZShDSEFSVF9UWVBFLlNDQVRURVJfTElORSk7XHJcbiAgICAgICAgICAgIGNoYXJ0cy5kZWxldGUoQ0hBUlRfVFlQRS5TQ0FUVEVSX1BPSU5UKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFjYW5DcmVhdGVCdWJibGVDaGFydCkge1xyXG4gICAgICAgICAgICBjaGFydHMuZGVsZXRlKENIQVJUX1RZUEUuU0NBVFRFUl9CVUJCTEUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXJncy5jaGFydHNBdmFpbGFiaWx0eSA9IHRoaXMuY2hhcnRUeXBlc0F2YWlsYWJpbGl0eTtcclxuICAgICAgICBhcmdzLmNoYXJ0c0ZvckNyZWF0aW9uID0gWy4uLmNoYXJ0c107XHJcbiAgICAgICAgdGhpcy5vbkNoYXJ0VHlwZXNEZXRlcm1pbmVkLmVtaXQoYXJncyk7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgb25DaGFydFR5cGVzRGV0ZXJtaW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8SURldGVybWluZWRDaGFydFR5cGVzQXJncz4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBvbkNoYXJ0Q3JlYXRpb25Eb25lID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VMZWdlbmQgPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGVmYXVsdExhYmVsTWVtYmVyUGF0aDogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHNjYXR0ZXJDaGFydFlBeGlzVmFsdWVNZW1iZXJQYXRoKHBhdGg6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NjYXR0ZXJDaGFydFlBeGlzVmFsdWVNZW1iZXJQYXRoID0gcGF0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNjYXR0ZXJDaGFydFlBeGlzVmFsdWVNZW1iZXJQYXRoKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zY2F0dGVyQ2hhcnRZQXhpc1ZhbHVlTWVtYmVyUGF0aCAmJlxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZU1lbWJlclBhdGhzLmluZGV4T2YodGhpcy5fc2NhdHRlckNoYXJ0WUF4aXNWYWx1ZU1lbWJlclBhdGgpICE9PSAtMSA/XHJcbiAgICAgICAgICAgIHRoaXMuX3NjYXR0ZXJDaGFydFlBeGlzVmFsdWVNZW1iZXJQYXRoIDogdGhpcy5fdmFsdWVNZW1iZXJQYXRoc1swXTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBidWJibGVDaGFydFJhZGl1c01lbWJlclBhdGgocGF0aDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fYnViYmxlQ2hhcnRSYWRpdXNNZW1iZXJQYXRoID0gcGF0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGJ1YmJsZUNoYXJ0UmFkaXVzTWVtYmVyUGF0aCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYnViYmxlQ2hhcnRSYWRpdXNNZW1iZXJQYXRoICYmXHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlTWVtYmVyUGF0aHMuaW5kZXhPZih0aGlzLl9idWJibGVDaGFydFJhZGl1c01lbWJlclBhdGgpICE9PSAtMSA/XHJcbiAgICAgICAgICAgIHRoaXMuX2J1YmJsZUNoYXJ0UmFkaXVzTWVtYmVyUGF0aCA6IHRoaXMuX3ZhbHVlTWVtYmVyUGF0aHNbMV07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGFydFR5cGVzQXZhaWxhYmlsaXR5ID0gbmV3IE1hcDxDSEFSVF9UWVBFLCBib29sZWFuPigpO1xyXG4gICAgcHJpdmF0ZSBjdXN0b21DaGFydENvbXBvbmVudE9wdGlvbnMgPSBuZXcgTWFwPENIQVJUX1RZUEUsIElDaGFydENvbXBvbmVudE9wdGlvbnM+KCk7XHJcbiAgICBwcml2YXRlIGRhdGFDaGFydHMgPSBuZXcgTWFwPHN0cmluZywgVHlwZTxhbnk+PigpO1xyXG4gICAgcHJpdmF0ZSBfc2NhdHRlckNoYXJ0WUF4aXNWYWx1ZU1lbWJlclBhdGggPSB1bmRlZmluZWQ7XHJcbiAgICBwcml2YXRlIF9idWJibGVDaGFydFJhZGl1c01lbWJlclBhdGggPSB1bmRlZmluZWQ7XHJcbiAgICBwcml2YXRlIF92YWx1ZU1lbWJlclBhdGhzID0gW107XHJcbiAgICBwcml2YXRlIF9sYWJlbE1lbWJlclBhdGhzID0gW107XHJcbiAgICBwcml2YXRlIF9jaGFydERhdGE6IGFueVtdO1xyXG4gICAgcHJpdmF0ZSBfc2l6ZVNjYWxlID0gbmV3IElneFNpemVTY2FsZUNvbXBvbmVudCgpO1xyXG4gICAgcHJpdmF0ZSBfZGF0YUNoYXJ0VHlwZXMgPSBuZXcgU2V0PENIQVJUX1RZUEU+KCk7XHJcbiAgICBwcml2YXRlIGdldCBfbGFiZWxNZW1iZXJQYXRoKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdExhYmVsTWVtYmVyUGF0aCAmJiB0aGlzLl9jaGFydERhdGEuc29tZShyID0+IHJbdGhpcy5kZWZhdWx0TGFiZWxNZW1iZXJQYXRoXSAhPT0gdW5kZWZpbmVkKSA/XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExhYmVsTWVtYmVyUGF0aCA6IHRoaXMuX2xhYmVsTWVtYmVyUGF0aHMubGVuZ3RoID4gMCA/IHRoaXMuX2xhYmVsTWVtYmVyUGF0aHNbMF0gOiAnSW5kZXgnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IHBpZUNoYXJ0T3B0aW9ucygpOiBJT3B0aW9ucyB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgd2lkdGg6ICc4NSUnLFxyXG4gICAgICAgICAgICBoZWlnaHQ6ICc3NSUnLFxyXG4gICAgICAgICAgICBkYXRhU291cmNlOiB0aGlzLmNoYXJ0RGF0YSxcclxuICAgICAgICAgICAgdmFsdWVNZW1iZXJQYXRoOiB0aGlzLl92YWx1ZU1lbWJlclBhdGhzWzBdLFxyXG4gICAgICAgICAgICBsZWdlbmRMYWJlbE1lbWJlclBhdGg6IHRoaXMuX2xhYmVsTWVtYmVyUGF0aCxcclxuICAgICAgICAgICAgbGFiZWxNZW1iZXJQYXRoOiB0aGlzLl9sYWJlbE1lbWJlclBhdGgsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRhdGFDaGFydFNlcmllc09wdGlvbnNNb2RlbDogSU9wdGlvbnMgPSB7XHJcbiAgICAgICAgaXNIaWdobGlnaHRpbmdFbmFibGVkOiB0cnVlLFxyXG4gICAgICAgIGFyZWFGaWxsT3BhY2l0eTogLjQsXHJcbiAgICAgICAgbWFya2VyVHlwZTogMyxcclxuICAgICAgICBzaG93RGVmYXVsdFRvb2x0aXA6IHRydWVcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBzY2F0dGVyQ2hhcnRTZXJpZXNPcHRpb25zTW9kZWw6IElPcHRpb25zID0ge1xyXG4gICAgICAgIG1hcmtlclR5cGU6IDMsXHJcbiAgICAgICAgc2hvd0RlZmF1bHRUb29sdGlwOiB0cnVlXHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgYnViYmxlQ2hhcnRTZXJpZXNPcHRpb25zTW9kZWw6IElPcHRpb25zID0ge1xyXG4gICAgICAgIHJhZGl1c1NjYWxlOiB0aGlzLl9zaXplU2NhbGVcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgZGF0YUNoYXJ0T3B0aW9ucygpOiBJT3B0aW9ucyB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgICAgaGVpZ2h0OiAnODUlJyxcclxuICAgICAgICAgICAgYXV0b01hcmdpbldpZHRoOiA1MCxcclxuICAgICAgICAgICAgaXNWZXJ0aWNhbFpvb21FbmFibGVkOiB0cnVlLFxyXG4gICAgICAgICAgICBpc0hvcml6b250YWxab29tRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5jaGFydERhdGFcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG4gICAgICAgIHRoaXMuZGF0YUNoYXJ0cy5zZXQoQ0hBUlRfVFlQRS5DT0xVTU5fR1JPVVBFRCwgSWd4Q29sdW1uU2VyaWVzQ29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuQVJFQV9HUk9VUEVELCBJZ3hBcmVhU2VyaWVzQ29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuTElORV9HUk9VUEVELCBJZ3hMaW5lU2VyaWVzQ29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuQkFSX0dST1VQRUQsIElneEJhclNlcmllc0NvbXBvbmVudCk7XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YUNoYXJ0cy5zZXQoQ0hBUlRfVFlQRS5DT0xVTU5fU1RBQ0tFRCwgSWd4U3RhY2tlZENvbHVtblNlcmllc0NvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLkFSRUFfU1RBQ0tFRCwgSWd4U3RhY2tlZEFyZWFTZXJpZXNDb21wb25lbnQpO1xyXG4gICAgICAgIHRoaXMuZGF0YUNoYXJ0cy5zZXQoQ0hBUlRfVFlQRS5MSU5FX1NUQUNLRUQsIElneFN0YWNrZWRMaW5lU2VyaWVzQ29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuQkFSX1NUQUNLRUQsIElneFN0YWNrZWRCYXJTZXJpZXNDb21wb25lbnQpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuQ09MVU1OXzEwMF9TVEFDS0VELCBJZ3hTdGFja2VkMTAwQ29sdW1uU2VyaWVzQ29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuQVJFQV8xMDBfU1RBQ0tFRCwgSWd4U3RhY2tlZDEwMEFyZWFTZXJpZXNDb21wb25lbnQpO1xyXG4gICAgICAgIHRoaXMuZGF0YUNoYXJ0cy5zZXQoQ0hBUlRfVFlQRS5MSU5FXzEwMF9TVEFDS0VELCBJZ3hTdGFja2VkMTAwTGluZVNlcmllc0NvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLkJBUl8xMDBfU1RBQ0tFRCwgSWd4U3RhY2tlZDEwMEJhclNlcmllc0NvbXBvbmVudCk7XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YUNoYXJ0cy5zZXQoQ0hBUlRfVFlQRS5TQ0FUVEVSX1BPSU5ULCBJZ3hTY2F0dGVyU2VyaWVzQ29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuU0NBVFRFUl9CVUJCTEUsIElneEJ1YmJsZVNlcmllc0NvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLlNDQVRURVJfTElORSwgSWd4U2NhdHRlckxpbmVTZXJpZXNDb21wb25lbnQpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuUElFLCBJZ3hQaWVDaGFydENvbXBvbmVudCk7XHJcbiAgICAgICAgY29uc3QgaXRlcmFibGUgPSB0aGlzLmRhdGFDaGFydHMua2V5cygpO1xyXG4gICAgICAgIGZvciAobGV0IGhlYWQgPSBpdGVyYWJsZS5uZXh0KCkudmFsdWU7IGhlYWQgIT09IHVuZGVmaW5lZDsgaGVhZCA9IGl0ZXJhYmxlLm5leHQoKS52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhQ2hhcnRUeXBlcy5hZGQoaGVhZCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhcnRUeXBlc0F2YWlsYWJpbGl0eS5zZXQoaGVhZCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ2hhcnRDb21wb25lbnRPcHRpb25zLnNldChoZWFkLCB7fSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRBdmFpbGFibGVDaGFydHMoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gW107XHJcbiAgICAgICAgdGhpcy5jaGFydFR5cGVzQXZhaWxhYmlsaXR5LmZvckVhY2goKGlzQXZhaWxhYmxlLCBjaGFydFR5cGUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGlzQXZhaWxhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICByZXMucHVzaChjaGFydFR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzYWJsZUNoYXJ0cyh0eXBlczogQ0hBUlRfVFlQRVtdKSB7XHJcbiAgICAgICAgdHlwZXMuZm9yRWFjaCh0eXBlID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2hhcnRUeXBlc0F2YWlsYWJpbGl0eS5nZXQodHlwZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhcnRUeXBlc0F2YWlsYWJpbGl0eS5zZXQodHlwZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGVuYWJsZUNoYXJ0cyh0eXBlczogQ0hBUlRfVFlQRVtdKSB7XHJcbiAgICAgICAgdHlwZXMuZm9yRWFjaCh0eXBlID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNoYXJ0VHlwZXNBdmFpbGFiaWxpdHkuZ2V0KHR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJ0VHlwZXNBdmFpbGFiaWxpdHkuc2V0KHR5cGUsIHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoYXJ0RmFjdG9yeSh0eXBlOiBDSEFSVF9UWVBFLCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoYXJ0VHlwZXNBdmFpbGFiaWxpdHkuZ2V0KHR5cGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8YW55PjtcclxuICAgICAgICBsZXQgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuICAgICAgICB0aGlzLl9zaXplU2NhbGUubWF4aW11bVZhbHVlID0gNjA7XHJcbiAgICAgICAgdGhpcy5fc2l6ZVNjYWxlLm1pbmltdW1WYWx1ZSA9IDEwO1xyXG4gICAgICAgIGNvbnN0IGNoYXJ0VHlwZSA9IHRoaXMuZGF0YUNoYXJ0cy5nZXQodHlwZSk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlID09PSBDSEFSVF9UWVBFLlBJRSkge1xyXG4gICAgICAgICAgICBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5mYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoSWd4UGllQ2hhcnRDb21wb25lbnQpO1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5mYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoSWd4RGF0YUNoYXJ0Q29tcG9uZW50KTtcclxuICAgICAgICAgICAgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IElDaGFydENvbXBvbmVudE9wdGlvbnMgPSB0aGlzLmdldENoYXJ0T3B0aW9ucyh0eXBlKTtcclxuICAgICAgICBjb25zdCBpbml0aWFsaXplcjogQ2hhcnRJbml0aWFsaXplciA9IHRoaXMuZ2V0SW5pdGlhbGl6ZXIodHlwZSwgY2hhcnRUeXBlKTtcclxuICAgICAgICBpZiAodGhpcy51c2VMZWdlbmQpIHtcclxuICAgICAgICAgICAgY29uc3QgbGVnZW5kVHlwZSA9IHR5cGUgPT09IENIQVJUX1RZUEUuUElFID8gSWd4SXRlbUxlZ2VuZENvbXBvbmVudCA6IElneExlZ2VuZENvbXBvbmVudDtcclxuICAgICAgICAgICAgY29uc3QgbGVnZW5kRmFjdG9yeSA9IHRoaXMuZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGxlZ2VuZFR5cGUgYXMgYW55KTtcclxuICAgICAgICAgICAgY29uc3QgbGVnZW5kQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGxlZ2VuZEZhY3RvcnkpO1xyXG4gICAgICAgICAgICBvcHRpb25zLmNoYXJ0T3B0aW9uc1snbGVnZW5kJ10gPSBsZWdlbmRDb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGNoYXJ0ID0gaW5pdGlhbGl6ZXIuaW5pdENoYXJ0KGNvbXBvbmVudFJlZi5pbnN0YW5jZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5vbkNoYXJ0Q3JlYXRpb25Eb25lLmVtaXQoY2hhcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SW5pdGlhbGl6ZXIoY2hhcnRUeXBlOiBDSEFSVF9UWVBFLCBjb21wb25lbnRDbGFzc1JlZik6IENoYXJ0SW5pdGlhbGl6ZXIge1xyXG4gICAgICAgIGlmIChjaGFydFR5cGUuaW5jbHVkZXMoJ1BpZScpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgSWd4UGllQ2hhcnRJbml0aWFsaXplcigpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hhcnRUeXBlLmluY2x1ZGVzKCdTdGFja2VkJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBJZ3hTdGFja2VkRGF0YUNoYXJ0SW5pdGlhbGl6ZXIoY29tcG9uZW50Q2xhc3NSZWYpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgSWd4RGF0YUNoYXJ0SW5pdGlhbGl6ZXIoY29tcG9uZW50Q2xhc3NSZWYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENoYXJ0T3B0aW9ucyh0eXBlOiBDSEFSVF9UWVBFKTogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucyB7XHJcbiAgICAgICAgY29uc3QgY2hhcnRDb21wb25lbnRPcHRpb25zOiBJQ2hhcnRDb21wb25lbnRPcHRpb25zID0ge307XHJcbiAgICAgICAgcmV0dXJuIHR5cGUgPT09IENIQVJUX1RZUEUuUElFID8gdGhpcy5hZGRQaWVDaGFydERhdGFPcHRpb25zKGNoYXJ0Q29tcG9uZW50T3B0aW9ucykgOlxyXG4gICAgICAgICAgICB0aGlzLmFkZERhdGFDaGFydERhdGFPcHRpb25zKHR5cGUsIGNoYXJ0Q29tcG9uZW50T3B0aW9ucywgdHlwZS5pbmNsdWRlcygnU3RhY2tlZCcpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZFBpZUNoYXJ0RGF0YU9wdGlvbnMoY2hhcnRDb21wb25lbnRPcHRpb25zOiBJQ2hhcnRDb21wb25lbnRPcHRpb25zKSB7XHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICAgICAgICBjaGFydENvbXBvbmVudE9wdGlvbnMuY2hhcnRPcHRpb25zID0gT2JqZWN0LmFzc2lnbih0aGlzLnBpZUNoYXJ0T3B0aW9ucywgdGhpcy5jdXN0b21DaGFydENvbXBvbmVudE9wdGlvbnMuZ2V0KENIQVJUX1RZUEUuUElFKS5jaGFydE9wdGlvbnMpO1xyXG4gICAgICAgIHJldHVybiBjaGFydENvbXBvbmVudE9wdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGREYXRhQ2hhcnREYXRhT3B0aW9ucyh0eXBlOiBDSEFSVF9UWVBFLCBjaGFydENvbXBvbmVudE9wdGlvbnM6IElDaGFydENvbXBvbmVudE9wdGlvbnMsIHN0YWNrZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBjaGFydENvbXBvbmVudE9wdGlvbnMuY2hhcnRPcHRpb25zID0gT2JqZWN0LmFzc2lnbih0aGlzLmRhdGFDaGFydE9wdGlvbnMsIHRoaXMuY3VzdG9tQ2hhcnRDb21wb25lbnRPcHRpb25zLmdldCh0eXBlKSk7XHJcbiAgICAgICAgaWYgKHR5cGUuaW5kZXhPZignU2NhdHRlcicpICE9PSAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZFNjYXR0ZXJDaGFydERhdGFPcHRpb25zKHR5cGUsIGNoYXJ0Q29tcG9uZW50T3B0aW9ucyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICAgICAgICAgICAgY2hhcnRDb21wb25lbnRPcHRpb25zLnNlcmllc01vZGVsID0gT2JqZWN0LmFzc2lnbih0aGlzLmRhdGFDaGFydFNlcmllc09wdGlvbnNNb2RlbCwgdGhpcy5jdXN0b21DaGFydENvbXBvbmVudE9wdGlvbnMuZ2V0KHR5cGUpLnNlcmllc01vZGVsKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRBeGlzTGFiZWxPcHRpb24odHlwZSwgY2hhcnRDb21wb25lbnRPcHRpb25zKTtcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9uczogSU9wdGlvbnNbXSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZU1lbWJlclBhdGhzLmZvckVhY2godmFsdWVNZW1iZXJQYXRoID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB2YWx1ZU1lbWJlclBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVNZW1iZXJQYXRoXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgaWYgKHN0YWNrZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnB1c2goeyAuLi5kYXRhT3B0aW9ucyB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKHsgLi4uZGF0YU9wdGlvbnMsIC4uLmNoYXJ0Q29tcG9uZW50T3B0aW9ucy5zZXJpZXNNb2RlbCB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHN0YWNrZWQgPyBjaGFydENvbXBvbmVudE9wdGlvbnMuc3RhY2tlZEZyYWdtZW50T3B0aW9ucyA9IG9wdGlvbnMgOlxyXG4gICAgICAgICAgICBjaGFydENvbXBvbmVudE9wdGlvbnMuc2VyaWVzT3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjaGFydENvbXBvbmVudE9wdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRTY2F0dGVyQ2hhcnREYXRhT3B0aW9ucyhzY2F0dGVyQ2hhcnQ6IENIQVJUX1RZUEUsIGNoYXJ0Q29tcG9uZW50T3B0aW9uczogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICAgICAgICBjaGFydENvbXBvbmVudE9wdGlvbnMuc2VyaWVzTW9kZWwgPSBPYmplY3QuYXNzaWduKHRoaXMuc2NhdHRlckNoYXJ0U2VyaWVzT3B0aW9uc01vZGVsLCB0aGlzLmN1c3RvbUNoYXJ0Q29tcG9uZW50T3B0aW9ucy5nZXQoc2NhdHRlckNoYXJ0KS5zZXJpZXNNb2RlbCk7XHJcbiAgICAgICAgY2hhcnRDb21wb25lbnRPcHRpb25zLnNlcmllc01vZGVsWyd5TWVtYmVyUGF0aCddID0gdGhpcy5zY2F0dGVyQ2hhcnRZQXhpc1ZhbHVlTWVtYmVyUGF0aDtcclxuICAgICAgICBpZiAoc2NhdHRlckNoYXJ0ID09PSBDSEFSVF9UWVBFLlNDQVRURVJfQlVCQkxFKSB7XHJcbiAgICAgICAgICAgIGNoYXJ0Q29tcG9uZW50T3B0aW9ucy5zZXJpZXNNb2RlbCA9IE9iamVjdC5hc3NpZ24oY2hhcnRDb21wb25lbnRPcHRpb25zLnNlcmllc01vZGVsLCB0aGlzLmJ1YmJsZUNoYXJ0U2VyaWVzT3B0aW9uc01vZGVsKTtcclxuICAgICAgICAgICAgY2hhcnRDb21wb25lbnRPcHRpb25zLnNlcmllc01vZGVsWydyYWRpdXNNZW1iZXJQYXRoJ10gPSB0aGlzLmJ1YmJsZUNoYXJ0UmFkaXVzTWVtYmVyUGF0aDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG1vZGVsID0gY2hhcnRDb21wb25lbnRPcHRpb25zLnNlcmllc01vZGVsO1xyXG4gICAgICAgIGNvbnN0IHNlcmllc09wdGlvbnM6IElPcHRpb25zW10gPSBbXTtcclxuICAgICAgICB0aGlzLl92YWx1ZU1lbWJlclBhdGhzLmZpbHRlcih2ID0+ICEodiA9PT0gbW9kZWxbJ3lNZW1iZXJQYXRoJ10gfHxcclxuICAgICAgICAgICAgdiA9PT0gbW9kZWxbJ3JhZGl1c01lbWJlclBhdGgnXSkpLmZvckVhY2godmFsdWVNZW1iZXJQYXRoID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBgJHttb2RlbFsneU1lbWJlclBhdGgnXX0gdnMgJHt2YWx1ZU1lbWJlclBhdGh9YCxcclxuICAgICAgICAgICAgICAgICAgICB4TWVtYmVyUGF0aDogdmFsdWVNZW1iZXJQYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsTWVtYmVyUGF0aDogdGhpcy5fbGFiZWxNZW1iZXJQYXRoXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgc2VyaWVzT3B0aW9ucy5wdXNoKHsgLi4uZGF0YU9wdGlvbnMsIC4uLm1vZGVsIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICBjaGFydENvbXBvbmVudE9wdGlvbnMuc2VyaWVzT3B0aW9ucyA9IHNlcmllc09wdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRJbmRleE1lbWJlclBhdGgoZGF0YVJlY29yZCwgaW5kZXgpIHtcclxuICAgICAgICBkYXRhUmVjb3JkID0geyAuLi57IFt0aGlzLl9sYWJlbE1lbWJlclBhdGhdOiBpbmRleCB9LCAuLi5kYXRhUmVjb3JkIH07XHJcbiAgICAgICAgcmV0dXJuIGRhdGFSZWNvcmQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRBeGlzTGFiZWxPcHRpb24odHlwZTogQ0hBUlRfVFlQRSwgb3B0aW9uczogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucykge1xyXG4gICAgICAgIGlmICh0eXBlLmluZGV4T2YoJ0JhcicpICE9PSAtMSkge1xyXG4gICAgICAgICAgICBvcHRpb25zLnlBeGlzT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuX2xhYmVsTWVtYmVyUGF0aFxyXG4gICAgICAgICAgICB9LCB0aGlzLmN1c3RvbUNoYXJ0Q29tcG9uZW50T3B0aW9ucy5nZXQodHlwZSkueUF4aXNPcHRpb25zKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvcHRpb25zLnhBeGlzT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuX2xhYmVsTWVtYmVyUGF0aFxyXG4gICAgICAgICAgICB9LCB0aGlzLmN1c3RvbUNoYXJ0Q29tcG9uZW50T3B0aW9ucy5nZXQodHlwZSkueEF4aXNPcHRpb25zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldENoYXJ0Q29tcG9uZW50T3B0aW9ucyhjaGFydDogQ0hBUlRfVFlQRSwgb3B0aW9uc1R5cGU6IE9QVElPTlNfVFlQRSwgb3B0aW9uczogSU9wdGlvbnMpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tQ2hhcnRDb21wb25lbnRPcHRpb25zLmdldChjaGFydClbb3B0aW9uc1R5cGVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ2hhcnRDb21wb25lbnRPcHRpb25zLmdldChjaGFydClbb3B0aW9uc1R5cGVdID0ge307XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2gocHJvcGVydHkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21DaGFydENvbXBvbmVudE9wdGlvbnMuZ2V0KGNoYXJ0KVtvcHRpb25zVHlwZV1bcHJvcGVydHldID0gb3B0aW9uc1twcm9wZXJ0eV07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaW50ZWdyYXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci1leHRyYXMvc3JjL2xpYi9kaXJlY3RpdmVzL2NoYXJ0LWludGVncmF0aW9uL2NoYXJ0LWludGVncmF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRELFNBQVMsRUFDeEUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFDSCxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSx3QkFBd0IsRUFDakcscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQy9HLDZCQUE2QixFQUFFLHlCQUF5QixFQUFFLHFCQUFxQixFQUFFLGdDQUFnQyxFQUNqSCwrQkFBK0IsRUFBRSxrQ0FBa0MsRUFBRSxnQ0FBZ0MsRUFDckcsNkJBQTZCLEVBQUUsNEJBQTRCLEVBQUUsK0JBQStCLEVBQzVGLDZCQUE2QixFQUNoQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBNEMsdUJBQXVCLEVBQ3RFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFZLE1BQU0sZ0JBQWdCLENBQUM7O0FBVTdGLE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsSUFDVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsWUFBbUI7UUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMs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cG9uZW50RmFjdG9yeSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSxcclxuICAgIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgSWd4QXJlYVNlcmllc0NvbXBvbmVudCwgSWd4QmFyU2VyaWVzQ29tcG9uZW50LCBJZ3hCdWJibGVTZXJpZXNDb21wb25lbnQsIElneENvbHVtblNlcmllc0NvbXBvbmVudCxcclxuICAgIElneERhdGFDaGFydENvbXBvbmVudCwgSWd4SXRlbUxlZ2VuZENvbXBvbmVudCwgSWd4TGVnZW5kQ29tcG9uZW50LCBJZ3hMaW5lU2VyaWVzQ29tcG9uZW50LCBJZ3hQaWVDaGFydENvbXBvbmVudCxcclxuICAgIElneFNjYXR0ZXJMaW5lU2VyaWVzQ29tcG9uZW50LCBJZ3hTY2F0dGVyU2VyaWVzQ29tcG9uZW50LCBJZ3hTaXplU2NhbGVDb21wb25lbnQsIElneFN0YWNrZWQxMDBBcmVhU2VyaWVzQ29tcG9uZW50LFxyXG4gICAgSWd4U3RhY2tlZDEwMEJhclNlcmllc0NvbXBvbmVudCwgSWd4U3RhY2tlZDEwMENvbHVtblNlcmllc0NvbXBvbmVudCwgSWd4U3RhY2tlZDEwMExpbmVTZXJpZXNDb21wb25lbnQsXHJcbiAgICBJZ3hTdGFja2VkQXJlYVNlcmllc0NvbXBvbmVudCwgSWd4U3RhY2tlZEJhclNlcmllc0NvbXBvbmVudCwgSWd4U3RhY2tlZENvbHVtblNlcmllc0NvbXBvbmVudCxcclxuICAgIElneFN0YWNrZWRMaW5lU2VyaWVzQ29tcG9uZW50XHJcbn0gZnJvbSAnaWduaXRldWktYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBDSEFSVF9UWVBFLCBPUFRJT05TX1RZUEUgfSBmcm9tICcuL2NoYXJ0LXR5cGVzJztcclxuaW1wb3J0IHsgQ2hhcnRJbml0aWFsaXplciwgSUNoYXJ0Q29tcG9uZW50T3B0aW9ucywgSWd4RGF0YUNoYXJ0SW5pdGlhbGl6ZXIsXHJcbiAgICBJZ3hQaWVDaGFydEluaXRpYWxpemVyLCBJZ3hTdGFja2VkRGF0YUNoYXJ0SW5pdGlhbGl6ZXIsIElPcHRpb25zIH0gZnJvbSAnLi9pbml0aWFsaXplcnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRGV0ZXJtaW5lZENoYXJ0VHlwZXNBcmdzIHtcclxuICAgIGNoYXJ0c0F2YWlsYWJpbHR5OiBNYXA8Q0hBUlRfVFlQRSwgYm9vbGVhbj47XHJcbiAgICBjaGFydHNGb3JDcmVhdGlvbjogQ0hBUlRfVFlQRVtdO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2lneENoYXJ0SW50ZWdyYXRpb25dJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSWd4Q2hhcnRJbnRlZ3JhdGlvbkRpcmVjdGl2ZSB7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBjaGFydERhdGEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYXJ0RGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IGNoYXJ0RGF0YShzZWxlY3RlZERhdGE6IGFueVtdKSB7XHJcbiAgICAgICAgY29uc3QgY2hhcnRzID0gbmV3IFNldCh0aGlzLl9kYXRhQ2hhcnRUeXBlcyk7XHJcbiAgICAgICAgY29uc3QgZGF0YU1vZGVsID0gc2VsZWN0ZWREYXRhLmxlbmd0aCA/IHNlbGVjdGVkRGF0YVswXSA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2xhYmVsTWVtYmVyUGF0aHMgPSBPYmplY3Qua2V5cyhkYXRhTW9kZWwpLmZpbHRlcihrZXkgPT4gdHlwZW9mIGRhdGFNb2RlbFtrZXldID09PSAnc3RyaW5nJyk7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVNZW1iZXJQYXRocyA9IE9iamVjdC5rZXlzKGRhdGFNb2RlbCkuZmlsdGVyKGtleSA9PiB0eXBlb2YgZGF0YU1vZGVsW2tleV0gPT09ICdudW1iZXInKTtcclxuICAgICAgICB0aGlzLl9jaGFydERhdGEgPSBzZWxlY3RlZERhdGEubWFwKChkYXRhUmVjb3JkLCBpbmRleCkgPT4gdGhpcy5hZGRJbmRleE1lbWJlclBhdGgoZGF0YVJlY29yZCwgaW5kZXggKyAxKSk7XHJcbiAgICAgICAgY29uc3QgYXJnczogSURldGVybWluZWRDaGFydFR5cGVzQXJncyA9IHtcclxuICAgICAgICAgICAgY2hhcnRzQXZhaWxhYmlsdHk6IG5ldyBNYXA8Q0hBUlRfVFlQRSwgYm9vbGVhbj4oKSxcclxuICAgICAgICAgICAgY2hhcnRzRm9yQ3JlYXRpb246IFtdXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHNlbGVjdGVkRGF0YS5sZW5ndGggPT09IDAgfHwgdGhpcy5fdmFsdWVNZW1iZXJQYXRocy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYXJ0VHlwZXNEZXRlcm1pbmVkLmVtaXQoYXJncyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkRGF0YS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgY2hhcnRzLmZvckVhY2goKGNoYXJ0LCBfLCBzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzQ29sdW1uQ2hhcnQgPSBjaGFydC5pbmRleE9mKCdDb2x1bW4nKSAhPT0gLTE7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc0JhckNoYXJ0ID0gY2hhcnQuaW5kZXhPZignQmFyJykgIT09IC0xO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNQaWVDaGFydCA9IGNoYXJ0LmluZGV4T2YoJ1BpZScpICE9PSAtMTtcclxuICAgICAgICAgICAgICAgIGlmICghKGlzQ29sdW1uQ2hhcnQgfHwgaXNCYXJDaGFydCB8fCBpc1BpZUNoYXJ0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldC5kZWxldGUoY2hhcnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQ29uZmlnIHBpZSBjaGFydFxyXG4gICAgICAgIGNvbnN0IGNhbm5vdENyZWF0ZVBpZUNoYXJ0ID0gc2VsZWN0ZWREYXRhLnNvbWUocmVjb3JkID0+IHJlY29yZFt0aGlzLl92YWx1ZU1lbWJlclBhdGhzWzBdXSA8PSAwKTtcclxuICAgICAgICBpZiAoY2Fubm90Q3JlYXRlUGllQ2hhcnQpIHtcclxuICAgICAgICAgICAgY2hhcnRzLmRlbGV0ZShDSEFSVF9UWVBFLlBJRSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIENvbmZpZyBzY2F0dGVyIGNoYXJ0IG1lbWJlciBwYXRoc1xyXG4gICAgICAgIGNvbnN0IGNhbkNyZWF0ZVNjYXR0ZXJDaGFydCA9IHRoaXMuX3ZhbHVlTWVtYmVyUGF0aHMubGVuZ3RoID49IDI7XHJcbiAgICAgICAgY29uc3QgY2FuQ3JlYXRlQnViYmxlQ2hhcnQgPSB0aGlzLl92YWx1ZU1lbWJlclBhdGhzLmxlbmd0aCA+PSAzO1xyXG4gICAgICAgIGlmICghY2FuQ3JlYXRlU2NhdHRlckNoYXJ0KSB7XHJcbiAgICAgICAgICAgIGNoYXJ0cy5kZWxldGUoQ0hBUlRfVFlQRS5TQ0FUVEVSX0JVQkJMRSk7XHJcbiAgICAgICAgICAgIGNoYXJ0cy5kZWxldGUoQ0hBUlRfVFlQRS5TQ0FUVEVSX0xJTkUpO1xyXG4gICAgICAgICAgICBjaGFydHMuZGVsZXRlKENIQVJUX1RZUEUuU0NBVFRFUl9QT0lOVCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghY2FuQ3JlYXRlQnViYmxlQ2hhcnQpIHtcclxuICAgICAgICAgICAgY2hhcnRzLmRlbGV0ZShDSEFSVF9UWVBFLlNDQVRURVJfQlVCQkxFKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGFyZ3MuY2hhcnRzQXZhaWxhYmlsdHkgPSB0aGlzLmNoYXJ0VHlwZXNBdmFpbGFiaWxpdHk7XHJcbiAgICAgICAgYXJncy5jaGFydHNGb3JDcmVhdGlvbiA9IFsuLi5jaGFydHNdO1xyXG4gICAgICAgIHRoaXMub25DaGFydFR5cGVzRGV0ZXJtaW5lZC5lbWl0KGFyZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIG9uQ2hhcnRUeXBlc0RldGVybWluZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElEZXRlcm1pbmVkQ2hhcnRUeXBlc0FyZ3M+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgb25DaGFydENyZWF0aW9uRG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdXNlTGVnZW5kID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRlZmF1bHRMYWJlbE1lbWJlclBhdGg6IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBzY2F0dGVyQ2hhcnRZQXhpc1ZhbHVlTWVtYmVyUGF0aChwYXRoOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zY2F0dGVyQ2hhcnRZQXhpc1ZhbHVlTWVtYmVyUGF0aCA9IHBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzY2F0dGVyQ2hhcnRZQXhpc1ZhbHVlTWVtYmVyUGF0aCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2NhdHRlckNoYXJ0WUF4aXNWYWx1ZU1lbWJlclBhdGggJiZcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVNZW1iZXJQYXRocy5pbmRleE9mKHRoaXMuX3NjYXR0ZXJDaGFydFlBeGlzVmFsdWVNZW1iZXJQYXRoKSAhPT0gLTEgP1xyXG4gICAgICAgICAgICB0aGlzLl9zY2F0dGVyQ2hhcnRZQXhpc1ZhbHVlTWVtYmVyUGF0aCA6IHRoaXMuX3ZhbHVlTWVtYmVyUGF0aHNbMF07XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgYnViYmxlQ2hhcnRSYWRpdXNNZW1iZXJQYXRoKHBhdGg6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2J1YmJsZUNoYXJ0UmFkaXVzTWVtYmVyUGF0aCA9IHBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBidWJibGVDaGFydFJhZGl1c01lbWJlclBhdGgoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2J1YmJsZUNoYXJ0UmFkaXVzTWVtYmVyUGF0aCAmJlxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZU1lbWJlclBhdGhzLmluZGV4T2YodGhpcy5fYnViYmxlQ2hhcnRSYWRpdXNNZW1iZXJQYXRoKSAhPT0gLTEgP1xyXG4gICAgICAgICAgICB0aGlzLl9idWJibGVDaGFydFJhZGl1c01lbWJlclBhdGggOiB0aGlzLl92YWx1ZU1lbWJlclBhdGhzWzFdO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hhcnRUeXBlc0F2YWlsYWJpbGl0eSA9IG5ldyBNYXA8Q0hBUlRfVFlQRSwgYm9vbGVhbj4oKTtcclxuICAgIHByaXZhdGUgY3VzdG9tQ2hhcnRDb21wb25lbnRPcHRpb25zID0gbmV3IE1hcDxDSEFSVF9UWVBFLCBJQ2hhcnRDb21wb25lbnRPcHRpb25zPigpO1xyXG4gICAgcHJpdmF0ZSBkYXRhQ2hhcnRzID0gbmV3IE1hcDxzdHJpbmcsIFR5cGU8YW55Pj4oKTtcclxuICAgIHByaXZhdGUgX3NjYXR0ZXJDaGFydFlBeGlzVmFsdWVNZW1iZXJQYXRoID0gdW5kZWZpbmVkO1xyXG4gICAgcHJpdmF0ZSBfYnViYmxlQ2hhcnRSYWRpdXNNZW1iZXJQYXRoID0gdW5kZWZpbmVkO1xyXG4gICAgcHJpdmF0ZSBfdmFsdWVNZW1iZXJQYXRocyA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfbGFiZWxNZW1iZXJQYXRocyA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfY2hhcnREYXRhOiBhbnlbXTtcclxuICAgIHByaXZhdGUgX3NpemVTY2FsZSA9IG5ldyBJZ3hTaXplU2NhbGVDb21wb25lbnQoKTtcclxuICAgIHByaXZhdGUgX2RhdGFDaGFydFR5cGVzID0gbmV3IFNldDxDSEFSVF9UWVBFPigpO1xyXG4gICAgcHJpdmF0ZSBnZXQgX2xhYmVsTWVtYmVyUGF0aCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRMYWJlbE1lbWJlclBhdGggJiYgdGhpcy5fY2hhcnREYXRhLnNvbWUociA9PiByW3RoaXMuZGVmYXVsdExhYmVsTWVtYmVyUGF0aF0gIT09IHVuZGVmaW5lZCkgP1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMYWJlbE1lbWJlclBhdGggOiB0aGlzLl9sYWJlbE1lbWJlclBhdGhzLmxlbmd0aCA+IDAgPyB0aGlzLl9sYWJlbE1lbWJlclBhdGhzWzBdIDogJ0luZGV4JztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBwaWVDaGFydE9wdGlvbnMoKTogSU9wdGlvbnMge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAnODUlJyxcclxuICAgICAgICAgICAgaGVpZ2h0OiAnNzUlJyxcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5jaGFydERhdGEsXHJcbiAgICAgICAgICAgIHZhbHVlTWVtYmVyUGF0aDogdGhpcy5fdmFsdWVNZW1iZXJQYXRoc1swXSxcclxuICAgICAgICAgICAgbGVnZW5kTGFiZWxNZW1iZXJQYXRoOiB0aGlzLl9sYWJlbE1lbWJlclBhdGgsXHJcbiAgICAgICAgICAgIGxhYmVsTWVtYmVyUGF0aDogdGhpcy5fbGFiZWxNZW1iZXJQYXRoLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkYXRhQ2hhcnRTZXJpZXNPcHRpb25zTW9kZWw6IElPcHRpb25zID0ge1xyXG4gICAgICAgIGlzSGlnaGxpZ2h0aW5nRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICBhcmVhRmlsbE9wYWNpdHk6IC40LFxyXG4gICAgICAgIG1hcmtlclR5cGU6IDMsXHJcbiAgICAgICAgc2hvd0RlZmF1bHRUb29sdGlwOiB0cnVlXHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgc2NhdHRlckNoYXJ0U2VyaWVzT3B0aW9uc01vZGVsOiBJT3B0aW9ucyA9IHtcclxuICAgICAgICBtYXJrZXJUeXBlOiAzLFxyXG4gICAgICAgIHNob3dEZWZhdWx0VG9vbHRpcDogdHJ1ZVxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIGJ1YmJsZUNoYXJ0U2VyaWVzT3B0aW9uc01vZGVsOiBJT3B0aW9ucyA9IHtcclxuICAgICAgICByYWRpdXNTY2FsZTogdGhpcy5fc2l6ZVNjYWxlXHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgZ2V0IGRhdGFDaGFydE9wdGlvbnMoKTogSU9wdGlvbnMge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgICAgIGhlaWdodDogJzg1JScsXHJcbiAgICAgICAgICAgIGF1dG9NYXJnaW5XaWR0aDogNTAsXHJcbiAgICAgICAgICAgIGlzVmVydGljYWxab29tRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICAgICAgaXNIb3Jpem9udGFsWm9vbUVuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHRoaXMuY2hhcnREYXRhXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuQ09MVU1OX0dST1VQRUQsIElneENvbHVtblNlcmllc0NvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLkFSRUFfR1JPVVBFRCwgSWd4QXJlYVNlcmllc0NvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLkxJTkVfR1JPVVBFRCwgSWd4TGluZVNlcmllc0NvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLkJBUl9HUk9VUEVELCBJZ3hCYXJTZXJpZXNDb21wb25lbnQpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuQ09MVU1OX1NUQUNLRUQsIElneFN0YWNrZWRDb2x1bW5TZXJpZXNDb21wb25lbnQpO1xyXG4gICAgICAgIHRoaXMuZGF0YUNoYXJ0cy5zZXQoQ0hBUlRfVFlQRS5BUkVBX1NUQUNLRUQsIElneFN0YWNrZWRBcmVhU2VyaWVzQ29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuTElORV9TVEFDS0VELCBJZ3hTdGFja2VkTGluZVNlcmllc0NvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLkJBUl9TVEFDS0VELCBJZ3hTdGFja2VkQmFyU2VyaWVzQ29tcG9uZW50KTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLkNPTFVNTl8xMDBfU1RBQ0tFRCwgSWd4U3RhY2tlZDEwMENvbHVtblNlcmllc0NvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLkFSRUFfMTAwX1NUQUNLRUQsIElneFN0YWNrZWQxMDBBcmVhU2VyaWVzQ29tcG9uZW50KTtcclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuTElORV8xMDBfU1RBQ0tFRCwgSWd4U3RhY2tlZDEwMExpbmVTZXJpZXNDb21wb25lbnQpO1xyXG4gICAgICAgIHRoaXMuZGF0YUNoYXJ0cy5zZXQoQ0hBUlRfVFlQRS5CQVJfMTAwX1NUQUNLRUQsIElneFN0YWNrZWQxMDBCYXJTZXJpZXNDb21wb25lbnQpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGFDaGFydHMuc2V0KENIQVJUX1RZUEUuU0NBVFRFUl9QT0lOVCwgSWd4U2NhdHRlclNlcmllc0NvbXBvbmVudCk7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLlNDQVRURVJfQlVCQkxFLCBJZ3hCdWJibGVTZXJpZXNDb21wb25lbnQpO1xyXG4gICAgICAgIHRoaXMuZGF0YUNoYXJ0cy5zZXQoQ0hBUlRfVFlQRS5TQ0FUVEVSX0xJTkUsIElneFNjYXR0ZXJMaW5lU2VyaWVzQ29tcG9uZW50KTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhcnRzLnNldChDSEFSVF9UWVBFLlBJRSwgSWd4UGllQ2hhcnRDb21wb25lbnQpO1xyXG4gICAgICAgIGNvbnN0IGl0ZXJhYmxlID0gdGhpcy5kYXRhQ2hhcnRzLmtleXMoKTtcclxuICAgICAgICBmb3IgKGxldCBoZWFkID0gaXRlcmFibGUubmV4dCgpLnZhbHVlOyBoZWFkICE9PSB1bmRlZmluZWQ7IGhlYWQgPSBpdGVyYWJsZS5uZXh0KCkudmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fZGF0YUNoYXJ0VHlwZXMuYWRkKGhlYWQpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYXJ0VHlwZXNBdmFpbGFiaWxpdHkuc2V0KGhlYWQsIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUNoYXJ0Q29tcG9uZW50T3B0aW9ucy5zZXQoaGVhZCwge30pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0QXZhaWxhYmxlQ2hhcnRzKCkge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2hhcnRUeXBlc0F2YWlsYWJpbGl0eS5mb3JFYWNoKChpc0F2YWlsYWJsZSwgY2hhcnRUeXBlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc0F2YWlsYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgcmVzLnB1c2goY2hhcnRUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiByZXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpc2FibGVDaGFydHModHlwZXM6IENIQVJUX1RZUEVbXSkge1xyXG4gICAgICAgIHR5cGVzLmZvckVhY2godHlwZSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNoYXJ0VHlwZXNBdmFpbGFiaWxpdHkuZ2V0KHR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJ0VHlwZXNBdmFpbGFiaWxpdHkuc2V0KHR5cGUsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBlbmFibGVDaGFydHModHlwZXM6IENIQVJUX1RZUEVbXSkge1xyXG4gICAgICAgIHR5cGVzLmZvckVhY2godHlwZSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGFydFR5cGVzQXZhaWxhYmlsaXR5LmdldCh0eXBlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFydFR5cGVzQXZhaWxhYmlsaXR5LnNldCh0eXBlLCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFydEZhY3RvcnkodHlwZTogQ0hBUlRfVFlQRSwgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgICAgIGlmICghdGhpcy5jaGFydFR5cGVzQXZhaWxhYmlsaXR5LmdldCh0eXBlKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PGFueT47XHJcbiAgICAgICAgbGV0IGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT47XHJcbiAgICAgICAgdGhpcy5fc2l6ZVNjYWxlLm1heGltdW1WYWx1ZSA9IDYwO1xyXG4gICAgICAgIHRoaXMuX3NpemVTY2FsZS5taW5pbXVtVmFsdWUgPSAxMDtcclxuICAgICAgICBjb25zdCBjaGFydFR5cGUgPSB0aGlzLmRhdGFDaGFydHMuZ2V0KHR5cGUpO1xyXG5cclxuICAgICAgICBpZiAodHlwZSA9PT0gQ0hBUlRfVFlQRS5QSUUpIHtcclxuICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KElneFBpZUNoYXJ0Q29tcG9uZW50KTtcclxuICAgICAgICAgICAgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KElneERhdGFDaGFydENvbXBvbmVudCk7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvcHRpb25zOiBJQ2hhcnRDb21wb25lbnRPcHRpb25zID0gdGhpcy5nZXRDaGFydE9wdGlvbnModHlwZSk7XHJcbiAgICAgICAgY29uc3QgaW5pdGlhbGl6ZXI6IENoYXJ0SW5pdGlhbGl6ZXIgPSB0aGlzLmdldEluaXRpYWxpemVyKHR5cGUsIGNoYXJ0VHlwZSk7XHJcbiAgICAgICAgaWYgKHRoaXMudXNlTGVnZW5kKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxlZ2VuZFR5cGUgPSB0eXBlID09PSBDSEFSVF9UWVBFLlBJRSA/IElneEl0ZW1MZWdlbmRDb21wb25lbnQgOiBJZ3hMZWdlbmRDb21wb25lbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGxlZ2VuZEZhY3RvcnkgPSB0aGlzLmZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShsZWdlbmRUeXBlIGFzIGFueSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGxlZ2VuZENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4gPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChsZWdlbmRGYWN0b3J5KTtcclxuICAgICAgICAgICAgb3B0aW9ucy5jaGFydE9wdGlvbnNbJ2xlZ2VuZCddID0gbGVnZW5kQ29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjaGFydCA9IGluaXRpYWxpemVyLmluaXRDaGFydChjb21wb25lbnRSZWYuaW5zdGFuY2UsIG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMub25DaGFydENyZWF0aW9uRG9uZS5lbWl0KGNoYXJ0KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEluaXRpYWxpemVyKGNoYXJ0VHlwZTogQ0hBUlRfVFlQRSwgY29tcG9uZW50Q2xhc3NSZWYpOiBDaGFydEluaXRpYWxpemVyIHtcclxuICAgICAgICBpZiAoY2hhcnRUeXBlLmluY2x1ZGVzKCdQaWUnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IElneFBpZUNoYXJ0SW5pdGlhbGl6ZXIoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGNoYXJ0VHlwZS5pbmNsdWRlcygnU3RhY2tlZCcpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgSWd4U3RhY2tlZERhdGFDaGFydEluaXRpYWxpemVyKGNvbXBvbmVudENsYXNzUmVmKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IElneERhdGFDaGFydEluaXRpYWxpemVyKGNvbXBvbmVudENsYXNzUmVmKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRDaGFydE9wdGlvbnModHlwZTogQ0hBUlRfVFlQRSk6IElDaGFydENvbXBvbmVudE9wdGlvbnMge1xyXG4gICAgICAgIGNvbnN0IGNoYXJ0Q29tcG9uZW50T3B0aW9uczogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucyA9IHt9O1xyXG4gICAgICAgIHJldHVybiB0eXBlID09PSBDSEFSVF9UWVBFLlBJRSA/IHRoaXMuYWRkUGllQ2hhcnREYXRhT3B0aW9ucyhjaGFydENvbXBvbmVudE9wdGlvbnMpIDpcclxuICAgICAgICAgICAgdGhpcy5hZGREYXRhQ2hhcnREYXRhT3B0aW9ucyh0eXBlLCBjaGFydENvbXBvbmVudE9wdGlvbnMsIHR5cGUuaW5jbHVkZXMoJ1N0YWNrZWQnKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRQaWVDaGFydERhdGFPcHRpb25zKGNoYXJ0Q29tcG9uZW50T3B0aW9uczogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucykge1xyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICAgICAgY2hhcnRDb21wb25lbnRPcHRpb25zLmNoYXJ0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24odGhpcy5waWVDaGFydE9wdGlvbnMsIHRoaXMuY3VzdG9tQ2hhcnRDb21wb25lbnRPcHRpb25zLmdldChDSEFSVF9UWVBFLlBJRSkuY2hhcnRPcHRpb25zKTtcclxuICAgICAgICByZXR1cm4gY2hhcnRDb21wb25lbnRPcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkRGF0YUNoYXJ0RGF0YU9wdGlvbnModHlwZTogQ0hBUlRfVFlQRSwgY2hhcnRDb21wb25lbnRPcHRpb25zOiBJQ2hhcnRDb21wb25lbnRPcHRpb25zLCBzdGFja2VkOiBib29sZWFuKSB7XHJcbiAgICAgICAgY2hhcnRDb21wb25lbnRPcHRpb25zLmNoYXJ0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24odGhpcy5kYXRhQ2hhcnRPcHRpb25zLCB0aGlzLmN1c3RvbUNoYXJ0Q29tcG9uZW50T3B0aW9ucy5nZXQodHlwZSkpO1xyXG4gICAgICAgIGlmICh0eXBlLmluZGV4T2YoJ1NjYXR0ZXInKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRTY2F0dGVyQ2hhcnREYXRhT3B0aW9ucyh0eXBlLCBjaGFydENvbXBvbmVudE9wdGlvbnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICAgICAgICAgIGNoYXJ0Q29tcG9uZW50T3B0aW9ucy5zZXJpZXNNb2RlbCA9IE9iamVjdC5hc3NpZ24odGhpcy5kYXRhQ2hhcnRTZXJpZXNPcHRpb25zTW9kZWwsIHRoaXMuY3VzdG9tQ2hhcnRDb21wb25lbnRPcHRpb25zLmdldCh0eXBlKS5zZXJpZXNNb2RlbCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0QXhpc0xhYmVsT3B0aW9uKHR5cGUsIGNoYXJ0Q29tcG9uZW50T3B0aW9ucyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnM6IElPcHRpb25zW10gPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVNZW1iZXJQYXRocy5mb3JFYWNoKHZhbHVlTWVtYmVyUGF0aCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdmFsdWVNZW1iZXJQYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlTWVtYmVyUGF0aFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGlmIChzdGFja2VkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKHsgLi4uZGF0YU9wdGlvbnMgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7IC4uLmRhdGFPcHRpb25zLCAuLi5jaGFydENvbXBvbmVudE9wdGlvbnMuc2VyaWVzTW9kZWwgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBzdGFja2VkID8gY2hhcnRDb21wb25lbnRPcHRpb25zLnN0YWNrZWRGcmFnbWVudE9wdGlvbnMgPSBvcHRpb25zIDpcclxuICAgICAgICAgICAgY2hhcnRDb21wb25lbnRPcHRpb25zLnNlcmllc09wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2hhcnRDb21wb25lbnRPcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkU2NhdHRlckNoYXJ0RGF0YU9wdGlvbnMoc2NhdHRlckNoYXJ0OiBDSEFSVF9UWVBFLCBjaGFydENvbXBvbmVudE9wdGlvbnM6IElDaGFydENvbXBvbmVudE9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICAgICAgY2hhcnRDb21wb25lbnRPcHRpb25zLnNlcmllc01vZGVsID0gT2JqZWN0LmFzc2lnbih0aGlzLnNjYXR0ZXJDaGFydFNlcmllc09wdGlvbnNNb2RlbCwgdGhpcy5jdXN0b21DaGFydENvbXBvbmVudE9wdGlvbnMuZ2V0KHNjYXR0ZXJDaGFydCkuc2VyaWVzTW9kZWwpO1xyXG4gICAgICAgIGNoYXJ0Q29tcG9uZW50T3B0aW9ucy5zZXJpZXNNb2RlbFsneU1lbWJlclBhdGgnXSA9IHRoaXMuc2NhdHRlckNoYXJ0WUF4aXNWYWx1ZU1lbWJlclBhdGg7XHJcbiAgICAgICAgaWYgKHNjYXR0ZXJDaGFydCA9PT0gQ0hBUlRfVFlQRS5TQ0FUVEVSX0JVQkJMRSkge1xyXG4gICAgICAgICAgICBjaGFydENvbXBvbmVudE9wdGlvbnMuc2VyaWVzTW9kZWwgPSBPYmplY3QuYXNzaWduKGNoYXJ0Q29tcG9uZW50T3B0aW9ucy5zZXJpZXNNb2RlbCwgdGhpcy5idWJibGVDaGFydFNlcmllc09wdGlvbnNNb2RlbCk7XHJcbiAgICAgICAgICAgIGNoYXJ0Q29tcG9uZW50T3B0aW9ucy5zZXJpZXNNb2RlbFsncmFkaXVzTWVtYmVyUGF0aCddID0gdGhpcy5idWJibGVDaGFydFJhZGl1c01lbWJlclBhdGg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBtb2RlbCA9IGNoYXJ0Q29tcG9uZW50T3B0aW9ucy5zZXJpZXNNb2RlbDtcclxuICAgICAgICBjb25zdCBzZXJpZXNPcHRpb25zOiBJT3B0aW9uc1tdID0gW107XHJcbiAgICAgICAgdGhpcy5fdmFsdWVNZW1iZXJQYXRocy5maWx0ZXIodiA9PiAhKHYgPT09IG1vZGVsWyd5TWVtYmVyUGF0aCddIHx8XHJcbiAgICAgICAgICAgIHYgPT09IG1vZGVsWydyYWRpdXNNZW1iZXJQYXRoJ10pKS5mb3JFYWNoKHZhbHVlTWVtYmVyUGF0aCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogYCR7bW9kZWxbJ3lNZW1iZXJQYXRoJ119IHZzICR7dmFsdWVNZW1iZXJQYXRofWAsXHJcbiAgICAgICAgICAgICAgICAgICAgeE1lbWJlclBhdGg6IHZhbHVlTWVtYmVyUGF0aCxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbE1lbWJlclBhdGg6IHRoaXMuX2xhYmVsTWVtYmVyUGF0aFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHNlcmllc09wdGlvbnMucHVzaCh7IC4uLmRhdGFPcHRpb25zLCAuLi5tb2RlbCB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgY2hhcnRDb21wb25lbnRPcHRpb25zLnNlcmllc09wdGlvbnMgPSBzZXJpZXNPcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkSW5kZXhNZW1iZXJQYXRoKGRhdGFSZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgZGF0YVJlY29yZCA9IHsgLi4ueyBbdGhpcy5fbGFiZWxNZW1iZXJQYXRoXTogaW5kZXggfSwgLi4uZGF0YVJlY29yZCB9O1xyXG4gICAgICAgIHJldHVybiBkYXRhUmVjb3JkO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0QXhpc0xhYmVsT3B0aW9uKHR5cGU6IENIQVJUX1RZUEUsIG9wdGlvbnM6IElDaGFydENvbXBvbmVudE9wdGlvbnMpIHtcclxuICAgICAgICBpZiAodHlwZS5pbmRleE9mKCdCYXInKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgb3B0aW9ucy55QXhpc09wdGlvbnMgPSBPYmplY3QuYXNzaWduKHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLl9sYWJlbE1lbWJlclBhdGhcclxuICAgICAgICAgICAgfSwgdGhpcy5jdXN0b21DaGFydENvbXBvbmVudE9wdGlvbnMuZ2V0KHR5cGUpLnlBeGlzT3B0aW9ucyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgb3B0aW9ucy54QXhpc09wdGlvbnMgPSBPYmplY3QuYXNzaWduKHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLl9sYWJlbE1lbWJlclBhdGhcclxuICAgICAgICAgICAgfSwgdGhpcy5jdXN0b21DaGFydENvbXBvbmVudE9wdGlvbnMuZ2V0KHR5cGUpLnhBeGlzT3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRDaGFydENvbXBvbmVudE9wdGlvbnMoY2hhcnQ6IENIQVJUX1RZUEUsIG9wdGlvbnNUeXBlOiBPUFRJT05TX1RZUEUsIG9wdGlvbnM6IElPcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1c3RvbUNoYXJ0Q29tcG9uZW50T3B0aW9ucy5nZXQoY2hhcnQpW29wdGlvbnNUeXBlXSkge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUNoYXJ0Q29tcG9uZW50T3B0aW9ucy5nZXQoY2hhcnQpW29wdGlvbnNUeXBlXSA9IHt9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKHByb3BlcnR5ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tQ2hhcnRDb21wb25lbnRPcHRpb25zLmdldChjaGFydClbb3B0aW9uc1R5cGVdW3Byb3BlcnR5XSA9IG9wdGlvbnNbcHJvcGVydHldO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -100,4 +100,4 @@ export class IgxStackedDataChartInitializer extends ChartInitializer {
|
|
|
100
100
|
return chart;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci1leHRyYXMvc3JjL2xpYi9kaXJlY3RpdmVzL2NoYXJ0LWludGVncmF0aW9uL2luaXRpYWxpemVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQ0FBa0M7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQy9FLHlCQUF5QixFQUF5Qix3QkFBd0IsRUFDMUUsd0JBQXdCLEVBQXdCLDZCQUE2QixFQUM3RSx5QkFBeUIsRUFBRSwrQkFBK0IsRUFBRSw0QkFBNEIsRUFDeEYsaUNBQWlDLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RSxNQUFNLGFBQWE7SUFDUixNQUFNLENBQUksSUFBbUI7UUFDaEMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDSjtBQWVELE1BQU0sT0FBZ0IsZ0JBQWdCO0lBSWxDO1FBRFUsa0JBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFVixZQUFZLENBQUMsTUFBVyxFQUFFLE9BQWlCO1FBQzlDLElBQUksT0FBTyxFQUFFO1lBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQy9CLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLFlBQVksRUFBRTtvQkFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdkM7cUJBQU07b0JBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDOUI7WUFDTCxDQUFD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QUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoXHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJZ3hCYXJTZXJpZXNDb21wb25lbnQsIElneEJ1YmJsZVNlcmllc0NvbXBvbmVudCwgSWd4Q2F0ZWdvcnlYQXhpc0NvbXBvbmVudCxcclxuICAgIElneENhdGVnb3J5WUF4aXNDb21wb25lbnQsIElneERhdGFDaGFydENvbXBvbmVudCwgSWd4TnVtZXJpY1hBeGlzQ29tcG9uZW50LFxyXG4gICAgSWd4TnVtZXJpY1lBeGlzQ29tcG9uZW50LCBJZ3hQaWVDaGFydENvbXBvbmVudCwgSWd4U2NhdHRlckxpbmVTZXJpZXNDb21wb25lbnQsXHJcbiAgICBJZ3hTY2F0dGVyU2VyaWVzQ29tcG9uZW50LCBJZ3hTdGFja2VkMTAwQmFyU2VyaWVzQ29tcG9uZW50LCBJZ3hTdGFja2VkQmFyU2VyaWVzQ29tcG9uZW50LFxyXG4gICAgSWd4U3RhY2tlZEZyYWdtZW50U2VyaWVzQ29tcG9uZW50IH0gZnJvbSAnaWduaXRldWktYW5ndWxhci1jaGFydHMnO1xyXG5cclxuY2xhc3MgU2VyaWVzRmFjdG9yeSB7XHJcbiAgICBwdWJsaWMgY3JlYXRlPFQ+KHR5cGU6IChuZXcgKCkgPT4gVCkpOiBUIHtcclxuICAgICAgICByZXR1cm4gbmV3IHR5cGUoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9ucyB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXJ0Q29tcG9uZW50T3B0aW9ucyB7XHJcbiAgICAgY2hhcnRPcHRpb25zPzogSU9wdGlvbnM7XHJcbiAgICAgc2VyaWVzT3B0aW9ucz86IElPcHRpb25zW107XHJcbiAgICAgeEF4aXNPcHRpb25zPzogSU9wdGlvbnM7XHJcbiAgICAgc2VyaWVzTW9kZWw/OiBJT3B0aW9ucztcclxuICAgICB5QXhpc09wdGlvbnM/OiBJT3B0aW9ucztcclxuICAgICBzdGFja2VkRnJhZ21lbnRPcHRpb25zPzogSU9wdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDaGFydEluaXRpYWxpemVyIHtcclxuICAgIHByb3RlY3RlZCB5QXhpcztcclxuICAgIHByb3RlY3RlZCB4QXhpcztcclxuICAgIHByb3RlY3RlZCBzZXJpZXNGYWN0b3J5ID0gbmV3IFNlcmllc0ZhY3RvcnkoKTtcclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgcHVibGljIGFwcGx5T3B0aW9ucyh0YXJnZXQ6IGFueSwgb3B0aW9uczogSU9wdGlvbnMpIHtcclxuICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0W2tleV0gaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XS5zdWJzY3JpYmUob3B0aW9uc1trZXldKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBvcHRpb25zW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgaW5pdENoYXJ0KGNoYXJ0OiBhbnksIG9wdGlvbnM/OiBJQ2hhcnRDb21wb25lbnRPcHRpb25zKTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSWd4UGllQ2hhcnRJbml0aWFsaXplciBleHRlbmRzIENoYXJ0SW5pdGlhbGl6ZXIge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5pdENoYXJ0KGNoYXJ0OiBJZ3hQaWVDaGFydENvbXBvbmVudCwgb3B0aW9uczogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucykge1xyXG5cclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhjaGFydCwgb3B0aW9ucy5jaGFydE9wdGlvbnMpO1xyXG4gICAgICAgIHJldHVybiBjaGFydDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIElneERhdGFDaGFydEluaXRpYWxpemVyIGV4dGVuZHMgQ2hhcnRJbml0aWFsaXplciB7XHJcbiAgICBwdWJsaWMgc2VyaWVzVHlwZTogVHlwZTxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHNlcmllc1R5cGU6IFR5cGU8YW55Pikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgc3dpdGNoIChzZXJpZXNUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSWd4QmFyU2VyaWVzQ29tcG9uZW50OlxyXG4gICAgICAgICAgICAgICAgdGhpcy54QXhpcyA9ICBuZXcgSWd4TnVtZXJpY1hBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnlBeGlzID0gIG5ldyBJZ3hDYXRlZ29yeVlBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBJZ3hTY2F0dGVyU2VyaWVzQ29tcG9uZW50OlxyXG4gICAgICAgICAgICBjYXNlIElneEJ1YmJsZVNlcmllc0NvbXBvbmVudDpcclxuICAgICAgICAgICAgY2FzZSBJZ3hTY2F0dGVyTGluZVNlcmllc0NvbXBvbmVudDpcclxuICAgICAgICAgICAgICAgIHRoaXMueEF4aXMgPSAgbmV3IElneE51bWVyaWNYQXhpc0NvbXBvbmVudCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy55QXhpcyA9ICBuZXcgSWd4TnVtZXJpY1lBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMueEF4aXMgPSAgbmV3IElneENhdGVnb3J5WEF4aXNDb21wb25lbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMueUF4aXMgPSAgbmV3IElneE51bWVyaWNZQXhpc0NvbXBvbmVudCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXJpZXNUeXBlID0gc2VyaWVzVHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5pdENoYXJ0KGNoYXJ0OiBJZ3hEYXRhQ2hhcnRDb21wb25lbnQsIG9wdGlvbnM6IElDaGFydENvbXBvbmVudE9wdGlvbnMpOiBJZ3hEYXRhQ2hhcnRDb21wb25lbnQge1xyXG4gICAgICAgIG9wdGlvbnMuc2VyaWVzT3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VyaWVzID0gdGhpcy5zZXJpZXNGYWN0b3J5LmNyZWF0ZSh0aGlzLnNlcmllc1R5cGUpO1xyXG4gICAgICAgICAgICBzZXJpZXMueEF4aXMgPSB0aGlzLnhBeGlzO1xyXG4gICAgICAgICAgICBzZXJpZXMueUF4aXMgPSB0aGlzLnlBeGlzO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhzZXJpZXMsIG9wdGlvbik7XHJcbiAgICAgICAgICAgIGNoYXJ0LnNlcmllcy5hZGQoc2VyaWVzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhjaGFydCwgb3B0aW9ucy5jaGFydE9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKHRoaXMueEF4aXMsIG9wdGlvbnMueEF4aXNPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyh0aGlzLnlBeGlzLCBvcHRpb25zLnlBeGlzT3B0aW9ucyk7XHJcbiAgICAgICAgY2hhcnQuYXhlcy5hZGQodGhpcy54QXhpcyk7XHJcbiAgICAgICAgY2hhcnQuYXhlcy5hZGQodGhpcy55QXhpcyk7XHJcbiAgICAgICAgcmV0dXJuIGNoYXJ0O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSWd4U3RhY2tlZERhdGFDaGFydEluaXRpYWxpemVyIGV4dGVuZHMgQ2hhcnRJbml0aWFsaXplciB7XHJcbiAgICBwdWJsaWMgc2VyaWVzVHlwZTogVHlwZTxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHNlcmllc1R5cGU6IFR5cGU8YW55Pikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgaWYgKHNlcmllc1R5cGUgPT09IElneFN0YWNrZWRCYXJTZXJpZXNDb21wb25lbnQgfHwgc2VyaWVzVHlwZSA9PT0gSWd4U3RhY2tlZDEwMEJhclNlcmllc0NvbXBvbmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLnhBeGlzID0gbmV3IElneE51bWVyaWNYQXhpc0NvbXBvbmVudCgpO1xyXG4gICAgICAgICAgICB0aGlzLnlBeGlzID0gbmV3IElneENhdGVnb3J5WUF4aXNDb21wb25lbnQoKTtcclxuICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy54QXhpcyA9IG5ldyBJZ3hDYXRlZ29yeVhBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMueUF4aXMgPSBuZXcgSWd4TnVtZXJpY1lBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlcmllc1R5cGUgPSBzZXJpZXNUeXBlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGluaXRDaGFydChjaGFydDogSWd4RGF0YUNoYXJ0Q29tcG9uZW50LCBvcHRpb25zPzogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucyk6IElneERhdGFDaGFydENvbXBvbmVudCB7XHJcbiAgICAgICAgY29uc3Qgc2VyaWVzID0gdGhpcy5zZXJpZXNGYWN0b3J5LmNyZWF0ZSh0aGlzLnNlcmllc1R5cGUpO1xyXG4gICAgICAgIHNlcmllcy54QXhpcyA9IHRoaXMueEF4aXM7XHJcbiAgICAgICAgc2VyaWVzLnlBeGlzID0gdGhpcy55QXhpcztcclxuICAgICAgICBvcHRpb25zLnN0YWNrZWRGcmFnbWVudE9wdGlvbnMuZm9yRWFjaChmcmFnT3B0ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZnJhZyA9IG5ldyBJZ3hTdGFja2VkRnJhZ21lbnRTZXJpZXNDb21wb25lbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseU9wdGlvbnMoZnJhZywgZnJhZ09wdCk7XHJcbiAgICAgICAgICAgIHNlcmllcy5zZXJpZXMuYWRkKGZyYWcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKHNlcmllcywgb3B0aW9ucy5zZXJpZXNPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhjaGFydCwgb3B0aW9ucy5jaGFydE9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKHRoaXMueEF4aXMsIG9wdGlvbnMueEF4aXNPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyh0aGlzLnlBeGlzLCBvcHRpb25zLnlBeGlzT3B0aW9ucyk7XHJcbiAgICAgICAgY2hhcnQuc2VyaWVzLmFkZChzZXJpZXMpO1xyXG4gICAgICAgIGNoYXJ0LmF4ZXMuYWRkKHRoaXMueEF4aXMpO1xyXG4gICAgICAgIGNoYXJ0LmF4ZXMuYWRkKHRoaXMueUF4aXMpO1xyXG4gICAgICAgIHJldHVybiBjaGFydDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci1leHRyYXMvc3JjL2xpYi9kaXJlY3RpdmVzL2NoYXJ0LWludGVncmF0aW9uL2luaXRpYWxpemVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQ0FBa0M7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQy9FLHlCQUF5QixFQUF5Qix3QkFBd0IsRUFDMUUsd0JBQXdCLEVBQXdCLDZCQUE2QixFQUM3RSx5QkFBeUIsRUFBRSwrQkFBK0IsRUFBRSw0QkFBNEIsRUFDeEYsaUNBQWlDLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RSxNQUFNLGFBQWE7SUFDUixNQUFNLENBQUksSUFBbUI7UUFDaEMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDSjtBQWVELE1BQU0sT0FBZ0IsZ0JBQWdCO0lBSWxDO1FBRFUsa0JBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFVixZQUFZLENBQUMsTUFBVyxFQUFFLE9BQWlCO1FBQzlDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDVixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksWUFBWSxFQUFFLENBQUM7b0JBQ3RDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7cUJBQU0sQ0FBQztvQkFDSixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxD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SyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoXHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJZ3hCYXJTZXJpZXNDb21wb25lbnQsIElneEJ1YmJsZVNlcmllc0NvbXBvbmVudCwgSWd4Q2F0ZWdvcnlYQXhpc0NvbXBvbmVudCxcclxuICAgIElneENhdGVnb3J5WUF4aXNDb21wb25lbnQsIElneERhdGFDaGFydENvbXBvbmVudCwgSWd4TnVtZXJpY1hBeGlzQ29tcG9uZW50LFxyXG4gICAgSWd4TnVtZXJpY1lBeGlzQ29tcG9uZW50LCBJZ3hQaWVDaGFydENvbXBvbmVudCwgSWd4U2NhdHRlckxpbmVTZXJpZXNDb21wb25lbnQsXHJcbiAgICBJZ3hTY2F0dGVyU2VyaWVzQ29tcG9uZW50LCBJZ3hTdGFja2VkMTAwQmFyU2VyaWVzQ29tcG9uZW50LCBJZ3hTdGFja2VkQmFyU2VyaWVzQ29tcG9uZW50LFxyXG4gICAgSWd4U3RhY2tlZEZyYWdtZW50U2VyaWVzQ29tcG9uZW50IH0gZnJvbSAnaWduaXRldWktYW5ndWxhci1jaGFydHMnO1xyXG5cclxuY2xhc3MgU2VyaWVzRmFjdG9yeSB7XHJcbiAgICBwdWJsaWMgY3JlYXRlPFQ+KHR5cGU6IChuZXcgKCkgPT4gVCkpOiBUIHtcclxuICAgICAgICByZXR1cm4gbmV3IHR5cGUoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9ucyB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXJ0Q29tcG9uZW50T3B0aW9ucyB7XHJcbiAgICAgY2hhcnRPcHRpb25zPzogSU9wdGlvbnM7XHJcbiAgICAgc2VyaWVzT3B0aW9ucz86IElPcHRpb25zW107XHJcbiAgICAgeEF4aXNPcHRpb25zPzogSU9wdGlvbnM7XHJcbiAgICAgc2VyaWVzTW9kZWw/OiBJT3B0aW9ucztcclxuICAgICB5QXhpc09wdGlvbnM/OiBJT3B0aW9ucztcclxuICAgICBzdGFja2VkRnJhZ21lbnRPcHRpb25zPzogSU9wdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDaGFydEluaXRpYWxpemVyIHtcclxuICAgIHByb3RlY3RlZCB5QXhpcztcclxuICAgIHByb3RlY3RlZCB4QXhpcztcclxuICAgIHByb3RlY3RlZCBzZXJpZXNGYWN0b3J5ID0gbmV3IFNlcmllc0ZhY3RvcnkoKTtcclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgcHVibGljIGFwcGx5T3B0aW9ucyh0YXJnZXQ6IGFueSwgb3B0aW9uczogSU9wdGlvbnMpIHtcclxuICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0W2tleV0gaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XS5zdWJzY3JpYmUob3B0aW9uc1trZXldKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBvcHRpb25zW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgaW5pdENoYXJ0KGNoYXJ0OiBhbnksIG9wdGlvbnM/OiBJQ2hhcnRDb21wb25lbnRPcHRpb25zKTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSWd4UGllQ2hhcnRJbml0aWFsaXplciBleHRlbmRzIENoYXJ0SW5pdGlhbGl6ZXIge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5pdENoYXJ0KGNoYXJ0OiBJZ3hQaWVDaGFydENvbXBvbmVudCwgb3B0aW9uczogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucykge1xyXG5cclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhjaGFydCwgb3B0aW9ucy5jaGFydE9wdGlvbnMpO1xyXG4gICAgICAgIHJldHVybiBjaGFydDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIElneERhdGFDaGFydEluaXRpYWxpemVyIGV4dGVuZHMgQ2hhcnRJbml0aWFsaXplciB7XHJcbiAgICBwdWJsaWMgc2VyaWVzVHlwZTogVHlwZTxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHNlcmllc1R5cGU6IFR5cGU8YW55Pikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgc3dpdGNoIChzZXJpZXNUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSWd4QmFyU2VyaWVzQ29tcG9uZW50OlxyXG4gICAgICAgICAgICAgICAgdGhpcy54QXhpcyA9ICBuZXcgSWd4TnVtZXJpY1hBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnlBeGlzID0gIG5ldyBJZ3hDYXRlZ29yeVlBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBJZ3hTY2F0dGVyU2VyaWVzQ29tcG9uZW50OlxyXG4gICAgICAgICAgICBjYXNlIElneEJ1YmJsZVNlcmllc0NvbXBvbmVudDpcclxuICAgICAgICAgICAgY2FzZSBJZ3hTY2F0dGVyTGluZVNlcmllc0NvbXBvbmVudDpcclxuICAgICAgICAgICAgICAgIHRoaXMueEF4aXMgPSAgbmV3IElneE51bWVyaWNYQXhpc0NvbXBvbmVudCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy55QXhpcyA9ICBuZXcgSWd4TnVtZXJpY1lBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMueEF4aXMgPSAgbmV3IElneENhdGVnb3J5WEF4aXNDb21wb25lbnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMueUF4aXMgPSAgbmV3IElneE51bWVyaWNZQXhpc0NvbXBvbmVudCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXJpZXNUeXBlID0gc2VyaWVzVHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5pdENoYXJ0KGNoYXJ0OiBJZ3hEYXRhQ2hhcnRDb21wb25lbnQsIG9wdGlvbnM6IElDaGFydENvbXBvbmVudE9wdGlvbnMpOiBJZ3hEYXRhQ2hhcnRDb21wb25lbnQge1xyXG4gICAgICAgIG9wdGlvbnMuc2VyaWVzT3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VyaWVzID0gdGhpcy5zZXJpZXNGYWN0b3J5LmNyZWF0ZSh0aGlzLnNlcmllc1R5cGUpO1xyXG4gICAgICAgICAgICBzZXJpZXMueEF4aXMgPSB0aGlzLnhBeGlzO1xyXG4gICAgICAgICAgICBzZXJpZXMueUF4aXMgPSB0aGlzLnlBeGlzO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhzZXJpZXMsIG9wdGlvbik7XHJcbiAgICAgICAgICAgIGNoYXJ0LnNlcmllcy5hZGQoc2VyaWVzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhjaGFydCwgb3B0aW9ucy5jaGFydE9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKHRoaXMueEF4aXMsIG9wdGlvbnMueEF4aXNPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyh0aGlzLnlBeGlzLCBvcHRpb25zLnlBeGlzT3B0aW9ucyk7XHJcbiAgICAgICAgY2hhcnQuYXhlcy5hZGQodGhpcy54QXhpcyk7XHJcbiAgICAgICAgY2hhcnQuYXhlcy5hZGQodGhpcy55QXhpcyk7XHJcbiAgICAgICAgcmV0dXJuIGNoYXJ0O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSWd4U3RhY2tlZERhdGFDaGFydEluaXRpYWxpemVyIGV4dGVuZHMgQ2hhcnRJbml0aWFsaXplciB7XHJcbiAgICBwdWJsaWMgc2VyaWVzVHlwZTogVHlwZTxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHNlcmllc1R5cGU6IFR5cGU8YW55Pikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgaWYgKHNlcmllc1R5cGUgPT09IElneFN0YWNrZWRCYXJTZXJpZXNDb21wb25lbnQgfHwgc2VyaWVzVHlwZSA9PT0gSWd4U3RhY2tlZDEwMEJhclNlcmllc0NvbXBvbmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLnhBeGlzID0gbmV3IElneE51bWVyaWNYQXhpc0NvbXBvbmVudCgpO1xyXG4gICAgICAgICAgICB0aGlzLnlBeGlzID0gbmV3IElneENhdGVnb3J5WUF4aXNDb21wb25lbnQoKTtcclxuICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy54QXhpcyA9IG5ldyBJZ3hDYXRlZ29yeVhBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMueUF4aXMgPSBuZXcgSWd4TnVtZXJpY1lBeGlzQ29tcG9uZW50KCk7XHJcbiAgICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlcmllc1R5cGUgPSBzZXJpZXNUeXBlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGluaXRDaGFydChjaGFydDogSWd4RGF0YUNoYXJ0Q29tcG9uZW50LCBvcHRpb25zPzogSUNoYXJ0Q29tcG9uZW50T3B0aW9ucyk6IElneERhdGFDaGFydENvbXBvbmVudCB7XHJcbiAgICAgICAgY29uc3Qgc2VyaWVzID0gdGhpcy5zZXJpZXNGYWN0b3J5LmNyZWF0ZSh0aGlzLnNlcmllc1R5cGUpO1xyXG4gICAgICAgIHNlcmllcy54QXhpcyA9IHRoaXMueEF4aXM7XHJcbiAgICAgICAgc2VyaWVzLnlBeGlzID0gdGhpcy55QXhpcztcclxuICAgICAgICBvcHRpb25zLnN0YWNrZWRGcmFnbWVudE9wdGlvbnMuZm9yRWFjaChmcmFnT3B0ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZnJhZyA9IG5ldyBJZ3hTdGFja2VkRnJhZ21lbnRTZXJpZXNDb21wb25lbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseU9wdGlvbnMoZnJhZywgZnJhZ09wdCk7XHJcbiAgICAgICAgICAgIHNlcmllcy5zZXJpZXMuYWRkKGZyYWcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKHNlcmllcywgb3B0aW9ucy5zZXJpZXNPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyhjaGFydCwgb3B0aW9ucy5jaGFydE9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKHRoaXMueEF4aXMsIG9wdGlvbnMueEF4aXNPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucyh0aGlzLnlBeGlzLCBvcHRpb25zLnlBeGlzT3B0aW9ucyk7XHJcbiAgICAgICAgY2hhcnQuc2VyaWVzLmFkZChzZXJpZXMpO1xyXG4gICAgICAgIGNoYXJ0LmF4ZXMuYWRkKHRoaXMueEF4aXMpO1xyXG4gICAgICAgIGNoYXJ0LmF4ZXMuYWRkKHRoaXMueUF4aXMpO1xyXG4gICAgICAgIHJldHVybiBjaGFydDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -289,10 +289,10 @@ export class IgxConditionalFormattingDirective {
|
|
|
289
289
|
data.forEach(rec => result = result.concat(Object.values(rec)));
|
|
290
290
|
return result;
|
|
291
291
|
}
|
|
292
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
293
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
292
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IgxConditionalFormattingDirective, deps: [{ token: i1.IgxGridComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
293
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: IgxConditionalFormattingDirective, selector: "[igxConditionalFormatting]", inputs: { formatter: "formatter", formatColors: "formatColors" }, outputs: { onFormattersReady: "onFormattersReady" }, ngImport: i0 }); }
|
|
294
294
|
}
|
|
295
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
295
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IgxConditionalFormattingDirective, decorators: [{
|
|
296
296
|
type: Directive,
|
|
297
297
|
args: [{
|
|
298
298
|
selector: '[igxConditionalFormatting]'
|
|
@@ -304,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
304
304
|
}], onFormattersReady: [{
|
|
305
305
|
type: Output
|
|
306
306
|
}] } });
|
|
307
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uYWwtZm9ybWF0dGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyLWV4dHJhcy9zcmMvbGliL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtZm9ybWF0dGluZy9jb25kaXRpb25hbC1mb3JtYXR0aW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQVUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTNDLE1BQU0sQ0FBTixJQUFZLHlCQVFYO0FBUkQsV0FBWSx5QkFBeUI7SUFDakMsbURBQXNCLENBQUE7SUFDdEIsdURBQTBCLENBQUE7SUFDMUIsNkNBQWdCLENBQUE7SUFDaEIsMkRBQThCLENBQUE7SUFDOUIsd0RBQTJCLENBQUE7SUFDM0IscURBQXdCLENBQUE7SUFDeEIsNENBQWUsQ0FBQTtBQUNuQixDQUFDLEVBUlcseUJBQXlCLEtBQXpCLHlCQUF5QixRQVFwQztBQVlELE1BQU0sT0FBTyxpQ0FBaUM7SUFJMUMsSUFDVyxZQUFZLENBQUMsR0FBa0I7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQXlIRCxJQUFZLFlBQVk7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENB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QUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sVUFBVSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxHQUFHLElBQUk7UUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU8sT0FBTyxDQUFDLElBQVc7UUFDdkIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOzhHQXBTUSxpQ0FBaUM7a0dBQWpDLGlDQUFpQzs7MkZBQWpDLGlDQUFpQztrQkFIN0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNEJBQTRCO2lCQUN6QztxRkFHVSxTQUFTO3NCQURmLEtBQUs7Z0JBSUssWUFBWTtzQkFEdEIsS0FBSztnQkFTQyxpQkFBaUI7c0JBRHZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSWd4R3JpZENvbXBvbmVudCB9IGZyb20gJ2lnbml0ZXVpLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBlbnVtIENvbmRpdGlvbmFsRm9ybWF0dGluZ1R5cGUge1xyXG4gICAgZGF0YUJhcnMgPSAnRGF0YSBCYXJzJyxcclxuICAgIGNvbG9yU2NhbGUgPSAnQ29sb3IgU2NhbGUnLFxyXG4gICAgdG9wMTAgPSAnVG9wIDEwJyxcclxuICAgIHRleHRDb250YWlucyA9ICdUZXh0IENvbnRhaW5zJyxcclxuICAgIHNpbmdsZSA9ICdEdXBsaWNhdGUgVmFsdWVzJyxcclxuICAgIHVuaXF1ZSA9ICdVbmlxdWUgVmFsdWVzJyxcclxuICAgIGVtcHR5ID0gJ0VtcHR5J1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1hdENvbG9ycyB7XHJcbiAgICBzdWNjZXNzOiBzdHJpbmc7XHJcbiAgICBlcnJvcjogc3RyaW5nO1xyXG4gICAgaW5mbzogc3RyaW5nO1xyXG4gICAgd2FybmluZzogc3RyaW5nO1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2lneENvbmRpdGlvbmFsRm9ybWF0dGluZ10nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ3hDb25kaXRpb25hbEZvcm1hdHRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtYXR0ZXI6IHN0cmluZyB8IENvbmRpdGlvbmFsRm9ybWF0dGluZ1R5cGU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgZm9ybWF0Q29sb3JzKHZhbDogSUZvcm1hdENvbG9ycykgIHtcclxuICAgICAgICB0aGlzLl9mb3JtYXRDb2xvcnMgPSB2YWw7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1hdENvbG9ycygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0Q29sb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIG9uRm9ybWF0dGVyc1JlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuXHJcbiAgICBwdWJsaWMgY29sb3JTY2FsZSA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb3dUcmVzaG9sZFZhbHVlID49IGNlbGxWYWx1ZSA/IHRoaXMuZm9ybWF0Q29sb3JzLmVycm9yIDpcclxuICAgICAgICAgICAgICAgIHRoaXMubWlkZGxlVHJlc2hvbGRWYWx1ZSA+PSBjZWxsVmFsdWUgPyB0aGlzLmZvcm1hdENvbG9ycy53YXJuaW5nIDogIHRoaXMuZm9ybWF0Q29sb3JzLnN1Y2Nlc3M7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZGF0YUJhcnMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoISh0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgY29uc3QgdHJlc2hvbGQgPSB0aGlzLnRocmVzaG9sZDtcclxuICAgICAgICAgICAgbGV0IGdyYWRpZW50UGVyY2VudHM7XHJcbiAgICAgICAgICAgIGlmIChjZWxsVmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZWdhdGl2ZVN0YXJ0aW5nUG9pbnQgPSAxMDAgLSB0cmVzaG9sZDtcclxuICAgICAgICAgICAgICAgIGdyYWRpZW50UGVyY2VudHMgPSB0aGlzLmdldE5lZ2F0aXZlUGVyY2VudGFnZShjZWxsVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdHJhbnNwYXJlbnQgMCUgJHtuZWdhdGl2ZVN0YXJ0aW5nUG9pbnR9JSxcclxuICAgICAgICAgICAgICAgICAgICAkeyB0aGlzLmZvcm1hdENvbG9ycy5lcnJvcn0gJHtuZWdhdGl2ZVN0YXJ0aW5nUG9pbnR9JSAke25lZ2F0aXZlU3RhcnRpbmdQb2ludCArIGdyYWRpZW50UGVyY2VudHN9JSxcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAke2dyYWRpZW50UGVyY2VudHN9JSAxMDAlKWA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmFkaWVudFBlcmNlbnRzID0gdGhpcy5nZXRQb3NpdGl2ZVBlcmNlbnRhZ2UoY2VsbFZhbHVlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCAwJSAke3RyZXNob2xkfSUsXHJcbiAgICAgICAgICAgICAgICAgICAgJHsgdGhpcy5mb3JtYXRDb2xvcnMuc3VjY2Vzc30gJHt0cmVzaG9sZH0lICR7dHJlc2hvbGQgKyBncmFkaWVudFBlcmNlbnRzfSUsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgJHt0cmVzaG9sZCArIGdyYWRpZW50UGVyY2VudHN9JSAxMDAlKWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGJhY2tncm91bmRTaXplOiAnMTAwJSA4MCUnLFxyXG4gICAgICAgIGJhY2tncm91bmRSZXBlYXQ6ICduby1yZXBlYXQnLFxyXG4gICAgICAgIGJhY2tncm91bmRQb3NpdGlvblk6ICdjZW50ZXInXHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyB0b3AxMFBlcmNlbnQgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgJiYgdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKVxyXG4gICAgICAgICAgICAgICAgJiYgY2VsbFZhbHVlID4gdGhpcy50b3AxMFBlcmNlbnRUcmVzaG9sZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSlcclxuICAgICAgICAgICAgICAgICYmIGNlbGxWYWx1ZSA+IHRoaXMudG9wMTBQZXJjZW50VHJlc2hvbGQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGdyZWF0ZXJUaGFuID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSlcclxuICAgICAgICAgICAgJiYgY2VsbFZhbHVlID4gdGhpcy5hdmdWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSlcclxuICAgICAgICAgICAgJiYgY2VsbFZhbHVlID4gdGhpcy5hdmdWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy50ZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZW1wdHkgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSAmJiBjZWxsVmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkgJiYgY2VsbFZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGR1cGxpY2F0ZXMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFycjogYW55W10gPSB0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyA/IHRoaXMubnVtZXJpY0RhdGEgOiB0aGlzLnRleHREYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoY2VsbFZhbHVlKSAhPT0gYXJyLmxhc3RJbmRleE9mKGNlbGxWYWx1ZSkgPyAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbyA6ICcnO1xyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFycjogYW55W10gPSB0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyA/IHRoaXMubnVtZXJpY0RhdGEgOiB0aGlzLnRleHREYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoY2VsbFZhbHVlKSAhPT0gYXJyLmxhc3RJbmRleE9mKGNlbGxWYWx1ZSkgPyAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dCA6ICcnO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIHRleHRDb250YWlucyA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2VsbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpICYmXHJcbiAgICAgICAgICAgICAgICBjZWxsVmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX3ZhbHVlRm9yQ29tcGFyaXNvbi50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2VsbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpICYmXHJcbiAgICAgICAgICAgICAgICBjZWxsVmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX3ZhbHVlRm9yQ29tcGFyaXNvbi50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIHVuaXF1ZXMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFycjogYW55W10gPSB0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyA/IHRoaXMubnVtZXJpY0RhdGEgOiB0aGlzLnRleHREYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoY2VsbFZhbHVlKSA9PT0gYXJyLmxhc3RJbmRleE9mKGNlbGxWYWx1ZSkgPyAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbyA6ICcnO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgY29uc3QgYXJyOiBhbnlbXSA9IHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInID8gdGhpcy5udW1lcmljRGF0YSA6IHRoaXMudGV4dERhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnIuaW5kZXhPZihjZWxsVmFsdWUpID09PSBhcnIubGFzdEluZGV4T2YoY2VsbFZhbHVlKSA/ICB0aGlzLmZvcm1hdENvbG9ycy50ZXh0IDogJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIGdldCBzZWxlY3RlZERhdGEoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3RlZERhdGEubGVuZ3RoKSB7IHRoaXMuX3NlbGVjdGVkRGF0YSA9IHRoaXMudG9BcnJheSh0aGlzLmdyaWQuZ2V0U2VsZWN0ZWREYXRhKCkpOyB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCB0ZXh0RGF0YSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKHZhbCA9PiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgbnVtZXJpY0RhdGEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWREYXRhLmZpbHRlcih2YWwgPT4gdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfZm9ybWF0Q29sb3JzOiBJRm9ybWF0Q29sb3JzID0ge1xyXG4gICAgICAgIHN1Y2Nlc3M6ICcjNEVCODYyJyxcclxuICAgICAgICBlcnJvcjogJyNGRjEzNEEnLFxyXG4gICAgICAgIHdhcm5pbmc6ICcjRkJCMTNDJyxcclxuICAgICAgICBpbmZvOiAnIzEzNzdENScsXHJcbiAgICAgICAgdGV4dDogJyNGRkYnXHJcbiAgICB9O1xyXG4gICAgcHJpdmF0ZSBfbnVtZXJpY0Zvcm1hdHRlcnMgPSBbJ0RhdGEgQmFycycsICdDb2xvciBTY2FsZScsICdUb3AgMTAnLCAnR3JlYXRlciBUaGFuJ107XHJcbiAgICBwcml2YXRlIF90ZXh0Rm9ybWF0dGVycyA9IFsnVGV4dCBDb250YWlucyddO1xyXG4gICAgcHJpdmF0ZSBfY29tbW9uRm9ybWF0dGVyc05hbWUgPSBbJ0R1cGxpY2F0ZSBWYWx1ZXMnLCAnVW5pcXVlIFZhbHVlcycsICdFbXB0eSddO1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICBwcml2YXRlIF9taW5WYWx1ZTtcclxuICAgIHByaXZhdGUgX21heFZhbHVlO1xyXG4gICAgcHJpdmF0ZSBfc3RhcnRDb2x1bW47XHJcbiAgICBwcml2YXRlIF9lbmRDb2x1bW47XHJcbiAgICBwcml2YXRlIF92YWx1ZUZvckNvbXBhcmlzb247XHJcbiAgICBwcml2YXRlIF9mb3JtYXR0ZXJzRGF0YSA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgcHJpdmF0ZSBmb3JtYXRlZFJhbmdlOiBNYXA8bnVtYmVyLCBTZXQ8bnVtYmVyPj4gPSBuZXcgTWFwPG51bWJlciwgU2V0PG51bWJlcj4+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGdyaWQ6IElneEdyaWRDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzRGF0YS5zZXQoJ0RhdGEgQmFycycsIHRoaXMuZGF0YUJhcnMpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnQ29sb3IgU2NhbGUnLCB0aGlzLmNvbG9yU2NhbGUpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnVG9wIDEwJywgdGhpcy50b3AxMFBlcmNlbnQpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnR3JlYXRlciBUaGFuJywgdGhpcy5ncmVhdGVyVGhhbik7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdUZXh0IENvbnRhaW5zJywgdGhpcy50ZXh0Q29udGFpbnMpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnRHVwbGljYXRlIFZhbHVlcycsIHRoaXMuZHVwbGljYXRlcyk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdVbmlxdWUgVmFsdWVzJywgdGhpcy51bmlxdWVzKTtcclxuICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzRGF0YS5zZXQoJ0VtcHR5JywgdGhpcy5lbXB0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdyaWQucmFuZ2VTZWxlY3RlZC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kZXRlcm1pbmVGb3JtYXR0ZXJzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ncmlkLmNlbGxFZGl0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGFyZ3M6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoKGFyZ3MubmV3VmFsdWUgPT09IGFyZ3Mub2xkVmFsdWUgfHwgIXRoaXMuZm9ybWF0dGVyKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShhcmdzLmNlbGxJRC5yb3dJbmRleCwgYXJncy5jZWxsSUQuY29sdW1uSUQgLSAxKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBOdW1iZXIoYXJncy5uZXdWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZVRvQmVBZGRlZCA9ICFOdW1iZXIuaXNOYU4odmFsdWUpICYmIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgPyB2YWx1ZSA6IGFyZ3MubmV3VmFsdWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0YS5zcGxpY2UodGhpcy5zZWxlY3RlZERhdGEuaW5kZXhPZihhcmdzLm9sZFZhbHVlKSwgMSwgdmFsdWVUb0JlQWRkZWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWNhbGNDYWNoZWRWYWx1ZXMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0Q2VsbHModGhpcy5mb3JtYXR0ZXIsIHVuZGVmaW5lZCwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvcm1hdENlbGxzKGZvcm1hdHRlck5hbWUsIGZvcm1hdFJhbmdlPzogW10sIHJlc2V0ID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmIChyZXNldCkgeyB0aGlzLnJlc2V0UmFuZ2UoZm9ybWF0UmFuZ2UpOyB9XHJcbiAgICAgICAgdGhpcy5jbGVhckZvcm1hdHRpbmcoKTtcclxuICAgICAgICB0aGlzLmZvcm1hdHRlciA9IGZvcm1hdHRlck5hbWU7XHJcbiAgICAgICAgdGhpcy5ncmlkLnZpc2libGVDb2x1bW5zLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjLnZpc2libGVJbmRleCA+PSB0aGlzLl9zdGFydENvbHVtbiAmJiBjLnZpc2libGVJbmRleCA8PSB0aGlzLl9lbmRDb2x1bW4pIHtcclxuICAgICAgICAgICAgICAgIGMuY2VsbFN0eWxlcyA9IHRoaXMuX2Zvcm1hdHRlcnNEYXRhLmdldCh0aGlzLmZvcm1hdHRlcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWQubm90aWZ5Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsZWFyRm9ybWF0dGluZygpIHtcclxuICAgICAgICB0aGlzLmZvcm1hdHRlciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmdyaWQudmlzaWJsZUNvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgYy5jZWxsU3R5bGVzID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLmdyaWQuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGV0ZXJtaW5lRm9ybWF0dGVycygpIHtcclxuICAgICAgICBjb25zdCBudW1lcmljRGF0YSA9IHRoaXMudG9BcnJheSh0aGlzLmdyaWQuZ2V0U2VsZWN0ZWREYXRhKCkpLnNvbWUocmVjID0+IHR5cGVvZiByZWMgPT09ICdudW1iZXInKTtcclxuICAgICAgICBjb25zdCB0ZXh0RGF0YSA9IHRoaXMudG9BcnJheSh0aGlzLmdyaWQuZ2V0U2VsZWN0ZWREYXRhKCkpLnNvbWUocmVjID0+IHR5cGVvZiByZWMgPT09ICdzdHJpbmcnKTtcclxuICAgICAgICBjb25zdCBmb3JtYXR0ZXJzID0gIEFycmF5Lm9mKC4uLnRoaXMuX2NvbW1vbkZvcm1hdHRlcnNOYW1lKTtcclxuICAgICAgICBpZiAoIShudW1lcmljRGF0YSkgJiYgdGV4dERhdGEpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVycy5zcGxpY2UoMCwgMCwgLi4udGhpcy5fdGV4dEZvcm1hdHRlcnMpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobnVtZXJpY0RhdGEgJiYgIXRleHREYXRhKSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlcnMuc3BsaWNlKDAsIDAsIC4uLnRoaXMuX251bWVyaWNGb3JtYXR0ZXJzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZXJzLnNwbGljZSgwLCAwLCAuLi5bJ0RhdGEgQmFycycsICdDb2xvciBTY2FsZScsICdUZXh0IENvbnRhaW5zJ10pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm9uRm9ybWF0dGVyc1JlYWR5LmVtaXQoZm9ybWF0dGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlY2FsY0NhY2hlZFZhbHVlcyhjbGVhckFsbCA9IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKGNsZWFyQWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0Q29sdW1uID0gTWF0aC5taW4oLi4udGhpcy5ncmlkLmdldFNlbGVjdGVkUmFuZ2VzKCkubWFwKHIgPT4gTnVtYmVyKHIuY29sdW1uU3RhcnQpKSk7XHJcbiAgICAgICAgICAgIHRoaXMuX2VuZENvbHVtbiA9IE1hdGgubWF4KC4uLnRoaXMuZ3JpZC5nZXRTZWxlY3RlZFJhbmdlcygpLm1hcChyID0+IE51bWJlcihyLmNvbHVtbkVuZCkpKTtcclxuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3ZhbHVlRm9yQ29tcGFyaXNvbiA9IHRoaXMudGV4dERhdGFbMF07XHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWUgPSBNYXRoLm1heCguLi50aGlzLm51bWVyaWNEYXRhKTtcclxuICAgICAgICB0aGlzLl9taW5WYWx1ZSA9IE1hdGgubWluKC4uLnRoaXMubnVtZXJpY0RhdGEuZmlsdGVyKHZhbHVlID0+IHZhbHVlIDwgMCkpIHwgMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sSUQpIHtcclxuICAgICAgICBjb25zdCB2aXNpYmxlSW5kZXggPSB0eXBlb2YgY29sSUQgPT09ICdzdHJpbmcnID8gdGhpcy5ncmlkLmdldENvbHVtbkJ5TmFtZShjb2xJRCkudmlzaWJsZUluZGV4IDogY29sSUQ7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1hdGVkUmFuZ2Uuc2l6ZSkgeyByZXR1cm4gZmFsc2U7IH1cclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRlZFJhbmdlLmhhcyhyb3dJbmRleCkgJiYgdGhpcy5mb3JtYXRlZFJhbmdlLmdldChyb3dJbmRleCkuaGFzKHZpc2libGVJbmRleCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgbWlkZGxlVHJlc2hvbGRWYWx1ZSgpIHsgcmV0dXJuIDAuNjYgKiBNYXRoLmNlaWwodGhpcy5fbWF4VmFsdWUpOyB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgbG93VHJlc2hvbGRWYWx1ZSgpIHsgcmV0dXJuIDAuMzMgKiBNYXRoLmNlaWwodGhpcy5fbWF4VmFsdWUpOyB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgdG9wMTBQZXJjZW50VHJlc2hvbGQoKSB7IHJldHVybiAwLjkgKiBNYXRoLmNlaWwodGhpcy5fbWF4VmFsdWUpOyB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgYXZnVmFsdWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbCgodGhpcy5udW1lcmljRGF0YS5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKSkgLyB0aGlzLm51bWVyaWNEYXRhLmxlbmd0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgdGhyZXNob2xkKCkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoTWF0aC5hYnModGhpcy5fbWluVmFsdWUpIC8gKHRoaXMuX21heFZhbHVlICsgTWF0aC5hYnModGhpcy5fbWluVmFsdWUpKSAqIDEwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGl2ZVBlcmNlbnRhZ2UodmFsKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKE1hdGguY2VpbCh2YWwpIC8gKHRoaXMuX21heFZhbHVlICsgTWF0aC5hYnModGhpcy5fbWluVmFsdWUpKSkgKiAxMDA7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChyZXN1bHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TmVnYXRpdmVQZXJjZW50YWdlKHZhbCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IChNYXRoLmFicyh2YWwpIC8gKHRoaXMuX21heFZhbHVlICsgTWF0aC5hYnModGhpcy5fbWluVmFsdWUpKSkgKiAxMDA7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChyZXN1bHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVzZXRSYW5nZShmb3JtYXRSYW5nZT86IFtdKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtYXRlZFJhbmdlLmNsZWFyKCk7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tUmFuZ2UgPSBmb3JtYXRSYW5nZSA/IGZvcm1hdFJhbmdlIDogdGhpcy5ncmlkLmdldFNlbGVjdGVkUmFuZ2VzKCk7XHJcbiAgICAgICAgY3VzdG9tUmFuZ2UuZm9yRWFjaChyYW5nZSA9PiB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHJpID0gcmFuZ2Uucm93U3RhcnQ7IHJpIDw9IE51bWJlcihyYW5nZS5yb3dFbmQpOyByaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBjaSA9IE51bWJlcihyYW5nZS5jb2x1bW5TdGFydCk7IGNpIDw9IE51bWJlcihyYW5nZS5jb2x1bW5FbmQpOyBjaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRUb0NhY2hlKHJpLCBjaSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnJlY2FsY0NhY2hlZFZhbHVlcyh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZFRvQ2FjaGUocm93SW5kZXgsIGNvbEluZGV4LCBzZWxlY3Rpb24gPSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtYXRlZFJhbmdlLmhhcyhyb3dJbmRleCkgPyB0aGlzLmZvcm1hdGVkUmFuZ2UuZ2V0KHJvd0luZGV4KS5hZGQoY29sSW5kZXgpIDpcclxuICAgICAgICB0aGlzLmZvcm1hdGVkUmFuZ2Uuc2V0KHJvd0luZGV4LCBuZXcgU2V0PG51bWJlcj4oKSkuZ2V0KHJvd0luZGV4KS5hZGQoY29sSW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdG9BcnJheShkYXRhOiBhbnlbXSkge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBbXTtcclxuICAgICAgICBkYXRhLmZvckVhY2gocmVjID0+IHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoT2JqZWN0LnZhbHVlcyhyZWMpKSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxufVxyXG5cclxuIl19
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uYWwtZm9ybWF0dGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyLWV4dHJhcy9zcmMvbGliL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtZm9ybWF0dGluZy9jb25kaXRpb25hbC1mb3JtYXR0aW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQVUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTNDLE1BQU0sQ0FBTixJQUFZLHlCQVFYO0FBUkQsV0FBWSx5QkFBeUI7SUFDakMsbURBQXNCLENBQUE7SUFDdEIsdURBQTBCLENBQUE7SUFDMUIsNkNBQWdCLENBQUE7SUFDaEIsMkRBQThCLENBQUE7SUFDOUIsd0RBQTJCLENBQUE7SUFDM0IscURBQXdCLENBQUE7SUFDeEIsNENBQWUsQ0FBQTtBQUNuQixDQUFDLEVBUlcseUJBQXlCLEtBQXpCLHlCQUF5QixRQVFwQztBQVlELE1BQU0sT0FBTyxpQ0FBaUM7SUFJMUMsSUFDVyxZQUFZLENBQUMsR0FBa0I7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQXlIRCxJQUFZLFlBQVk7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7WUFBQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUNuRyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVksUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQVksV0FBVztRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQXFCRCxZQUFtQixJQUFzQjtRQUF0QixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQXRKbEMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUVqRCxlQUFVLEdBQUc7WUFDaEIsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxDQUFDLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFBQyxPQUFPO2dCQUFDLENBQUM7Z0JBQ25HLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDakUsSUFBSSxDQUFDLG1CQUFtQixJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ3ZHLENBQUM7U0FDSixDQUFDO1FBRUssYUFBUSxHQUFHO1lBQ2QsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxDQUFDLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFBQyxPQUFPO2dCQUFDLENBQUM7Z0JBQ25HLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ2hDLElBQUksZ0JBQWdCLENBQUM7Z0JBQ3JCLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNoQixNQUFNLHFCQUFxQixHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUM7b0JBQzdDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDekQsT0FBTywyQ0FBMkMscUJBQXFCO3NCQUNoRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxxQkFBcUIsS0FBSyxxQkFBcUIsR0FBRyxnQkFBZ0I7a0NBQ2xGLGdCQUFnQixTQUFTLENBQUM7Z0JBQ2hELENBQUM7cUJBQU0sQ0FBQztvQkFDSixnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3pELE9BQU8sNENBQTRDLFFBQVE7c0JBQ3BELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxJQUFJLFFBQVEsS0FBSyxRQUFRLEdBQUcsZ0JBQWdCO2tDQUMxRCxRQUFRLEdBQUcsZ0JBQWdCLFNBQVMsQ0FBQztnQkFDM0QsQ0FBQztZQUNMLENBQUM7WUFDRCxjQUFjLEVBQUUsVUFBVTtZQUMxQixnQkFBZ0IsRUFBRSxXQUFXO1lBQzdCLG1CQUFtQixFQUFFLFFBQVE7U0FDaEMsQ0FBQztRQUVLLGlCQUFZLEdBQUc7WUFDbEIsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO3VCQUM1RSxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7b0JBQzNDLE9BQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ25DLENBQUM7WUFDTCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzdDLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO3VCQUM1RSxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7b0JBQzNDLE9BQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ25DLENBQUM7WUFDTCxDQUFDO1NBQ0osQ0FBQztRQUVLLGdCQUFXLEdBQUc7WUFDakIsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO3VCQUNoRixTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUMzQixPQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNuQyxDQUFDO1lBQ0wsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQzt1QkFDaEYsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDM0IsT0FBUSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDbkMsQ0FBQztZQUNMLENBQUM7U0FDSixDQUFDO1FBRUssVUFBSyxHQUFHO1lBQ1gsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQzVFLE9BQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ25DLENBQUM7WUFDTCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzdDLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQzVFLE9BQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ25DLENBQUM7WUFDTCxDQUFDO1NBQ0osQ0FBQztRQUVLLGVBQVUsR0FBRztZQUNoQixlQUFlLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFBQyxPQUFPO2dCQUFDLENBQUM7Z0JBQ2hFLE1BQU0sR0FBRyxHQUFVLE9BQU8sU0FBUyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDcEYsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFaEcsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUFDLE9BQU87Z0JBQUMsQ0FBQztnQkFDaEUsTUFBTSxHQUFHLEdBQVUsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNwRixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoRyxDQUFDO1NBQ0osQ0FBQztRQUVLLGlCQUFZLEdBQUc7WUFDbEIsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO29CQUMvRSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2pGLE9BQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ25DLENBQUM7WUFDTCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzdDLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO29CQUMvRSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2pGLE9BQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ25DLENBQUM7WUFDTCxDQUFDO1NBQ0osQ0FBQztRQUVLLFlBQU8sR0FBRztZQUNiLGVBQWUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUFDLE9BQU87Z0JBQUMsQ0FBQztnQkFDaEUsTUFBTSxHQUFHLEdBQVUsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNwRixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoRyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQUMsT0FBTztnQkFBQyxDQUFDO2dCQUNoRSxNQUFNLEdBQUcsR0FBVSxPQUFPLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BGLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hHLENBQUM7U0FDSixDQUFDO1FBY00sa0JBQWEsR0FBa0I7WUFDbkMsT0FBTyxFQUFFLFNBQVM7WUFDbEIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsT0FBTyxFQUFFLFNBQVM7WUFDbEIsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsTUFBTTtTQUNmLENBQUM7UUFDTSx1QkFBa0IsR0FBRyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzVFLG9CQUFlLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwQywwQkFBcUIsR0FBRyxDQUFDLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RSxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQU1uQixvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7UUFDekMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDOUIsa0JBQWEsR0FBNkIsSUFBSSxHQUFHLEVBQXVCLENBQUM7UUFHN0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQUMsT0FBTztZQUFDLENBQUM7WUFDckUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDOUUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDOUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDdEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkQsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxXQUFXLENBQUMsYUFBYSxFQUFFLFdBQWdCLEVBQUUsS0FBSyxHQUFHLElBQUk7UUFDNUQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzNFLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQyxDQUFDLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDbkcsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDaEcsTUFBTSxVQUFVLEdBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzdCLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNyRCxDQUFDO2FBQU0sSUFBSSxXQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNKLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsS0FBSztRQUN0QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9GLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsS0FBSztRQUN6QyxNQUFNLFlBQVksR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQUMsT0FBTyxLQUFLLENBQUM7UUFBQyxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCxJQUFZLG1CQUFtQixLQUFLLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU5RSxJQUFZLGdCQUFnQixLQUFLLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzRSxJQUFZLG9CQUFvQixLQUFLLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU5RSxJQUFZLFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsSUFBWSxTQUFTO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRU8scUJBQXFCLENBQUMsR0FBRztRQUM3QixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDcEYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxHQUFHO1FBQzdCLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNuRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLFVBQVUsQ0FBQyxXQUFnQjtRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDOUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixLQUFLLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDN0QsS0FBSyxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7b0JBQzNFLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxVQUFVLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEdBQUcsSUFBSTtRQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbkYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxFQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTyxPQUFPLENBQUMsSUFBVztRQUN2QixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7OEdBcFNRLGlDQUFpQztrR0FBakMsaUNBQWlDOzsyRkFBakMsaUNBQWlDO2tCQUg3QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7aUJBQ3pDO3FGQUdVLFNBQVM7c0JBRGYsS0FBSztnQkFJSyxZQUFZO3NCQUR0QixLQUFLO2dCQVNDLGlCQUFpQjtzQkFEdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJZ3hHcmlkQ29tcG9uZW50IH0gZnJvbSAnaWduaXRldWktYW5ndWxhcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IGVudW0gQ29uZGl0aW9uYWxGb3JtYXR0aW5nVHlwZSB7XHJcbiAgICBkYXRhQmFycyA9ICdEYXRhIEJhcnMnLFxyXG4gICAgY29sb3JTY2FsZSA9ICdDb2xvciBTY2FsZScsXHJcbiAgICB0b3AxMCA9ICdUb3AgMTAnLFxyXG4gICAgdGV4dENvbnRhaW5zID0gJ1RleHQgQ29udGFpbnMnLFxyXG4gICAgc2luZ2xlID0gJ0R1cGxpY2F0ZSBWYWx1ZXMnLFxyXG4gICAgdW5pcXVlID0gJ1VuaXF1ZSBWYWx1ZXMnLFxyXG4gICAgZW1wdHkgPSAnRW1wdHknXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBJRm9ybWF0Q29sb3JzIHtcclxuICAgIHN1Y2Nlc3M6IHN0cmluZztcclxuICAgIGVycm9yOiBzdHJpbmc7XHJcbiAgICBpbmZvOiBzdHJpbmc7XHJcbiAgICB3YXJuaW5nOiBzdHJpbmc7XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbaWd4Q29uZGl0aW9uYWxGb3JtYXR0aW5nXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIElneENvbmRpdGlvbmFsRm9ybWF0dGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZvcm1hdHRlcjogc3RyaW5nIHwgQ29uZGl0aW9uYWxGb3JtYXR0aW5nVHlwZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBmb3JtYXRDb2xvcnModmFsOiBJRm9ybWF0Q29sb3JzKSAge1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdENvbG9ycyA9IHZhbDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBnZXQgZm9ybWF0Q29sb3JzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXRDb2xvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgb25Gb3JtYXR0ZXJzUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xyXG5cclxuICAgIHB1YmxpYyBjb2xvclNjYWxlID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCEodHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgJiYgdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvd1RyZXNob2xkVmFsdWUgPj0gY2VsbFZhbHVlID8gdGhpcy5mb3JtYXRDb2xvcnMuZXJyb3IgOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5taWRkbGVUcmVzaG9sZFZhbHVlID49IGNlbGxWYWx1ZSA/IHRoaXMuZm9ybWF0Q29sb3JzLndhcm5pbmcgOiAgdGhpcy5mb3JtYXRDb2xvcnMuc3VjY2VzcztcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBkYXRhQmFycyA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICBjb25zdCB0cmVzaG9sZCA9IHRoaXMudGhyZXNob2xkO1xyXG4gICAgICAgICAgICBsZXQgZ3JhZGllbnRQZXJjZW50cztcclxuICAgICAgICAgICAgaWYgKGNlbGxWYWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5lZ2F0aXZlU3RhcnRpbmdQb2ludCA9IDEwMCAtIHRyZXNob2xkO1xyXG4gICAgICAgICAgICAgICAgZ3JhZGllbnRQZXJjZW50cyA9IHRoaXMuZ2V0TmVnYXRpdmVQZXJjZW50YWdlKGNlbGxWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCB0cmFuc3BhcmVudCAwJSAke25lZ2F0aXZlU3RhcnRpbmdQb2ludH0lLFxyXG4gICAgICAgICAgICAgICAgICAgICR7IHRoaXMuZm9ybWF0Q29sb3JzLmVycm9yfSAke25lZ2F0aXZlU3RhcnRpbmdQb2ludH0lICR7bmVnYXRpdmVTdGFydGluZ1BvaW50ICsgZ3JhZGllbnRQZXJjZW50c30lLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50ICR7Z3JhZGllbnRQZXJjZW50c30lIDEwMCUpYDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyYWRpZW50UGVyY2VudHMgPSB0aGlzLmdldFBvc2l0aXZlUGVyY2VudGFnZShjZWxsVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50IDAlICR7dHJlc2hvbGR9JSxcclxuICAgICAgICAgICAgICAgICAgICAkeyB0aGlzLmZvcm1hdENvbG9ycy5zdWNjZXNzfSAke3RyZXNob2xkfSUgJHt0cmVzaG9sZCArIGdyYWRpZW50UGVyY2VudHN9JSxcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAke3RyZXNob2xkICsgZ3JhZGllbnRQZXJjZW50c30lIDEwMCUpYDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYmFja2dyb3VuZFNpemU6ICcxMDAlIDgwJScsXHJcbiAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogJ25vLXJlcGVhdCcsXHJcbiAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uWTogJ2NlbnRlcidcclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIHRvcDEwUGVyY2VudCA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpXHJcbiAgICAgICAgICAgICAgICAmJiBjZWxsVmFsdWUgPiB0aGlzLnRvcDEwUGVyY2VudFRyZXNob2xkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIHRoaXMuZm9ybWF0Q29sb3JzLmluZm87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgJiYgdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKVxyXG4gICAgICAgICAgICAgICAgJiYgY2VsbFZhbHVlID4gdGhpcy50b3AxMFBlcmNlbnRUcmVzaG9sZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy50ZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZ3JlYXRlclRoYW4gPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgJiYgdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKVxyXG4gICAgICAgICAgICAmJiBjZWxsVmFsdWUgPiB0aGlzLmF2Z1ZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIHRoaXMuZm9ybWF0Q29sb3JzLmluZm87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgJiYgdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKVxyXG4gICAgICAgICAgICAmJiBjZWxsVmFsdWUgPiB0aGlzLmF2Z1ZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIHRoaXMuZm9ybWF0Q29sb3JzLnRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBlbXB0eSA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpICYmIGNlbGxWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIHRoaXMuZm9ybWF0Q29sb3JzLmluZm87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSAmJiBjZWxsVmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy50ZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZHVwbGljYXRlcyA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgY29uc3QgYXJyOiBhbnlbXSA9IHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInID8gdGhpcy5udW1lcmljRGF0YSA6IHRoaXMudGV4dERhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnIuaW5kZXhPZihjZWxsVmFsdWUpICE9PSBhcnIubGFzdEluZGV4T2YoY2VsbFZhbHVlKSA/ICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvIDogJyc7XHJcblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgY29uc3QgYXJyOiBhbnlbXSA9IHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInID8gdGhpcy5udW1lcmljRGF0YSA6IHRoaXMudGV4dERhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnIuaW5kZXhPZihjZWxsVmFsdWUpICE9PSBhcnIubGFzdEluZGV4T2YoY2VsbFZhbHVlKSA/ICB0aGlzLmZvcm1hdENvbG9ycy50ZXh0IDogJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgdGV4dENvbnRhaW5zID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkgJiZcclxuICAgICAgICAgICAgICAgIGNlbGxWYWx1ZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5fdmFsdWVGb3JDb21wYXJpc29uLnRvTG93ZXJDYXNlKCkpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkgJiZcclxuICAgICAgICAgICAgICAgIGNlbGxWYWx1ZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5fdmFsdWVGb3JDb21wYXJpc29uLnRvTG93ZXJDYXNlKCkpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy50ZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgdW5pcXVlcyA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgY29uc3QgYXJyOiBhbnlbXSA9IHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInID8gdGhpcy5udW1lcmljRGF0YSA6IHRoaXMudGV4dERhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnIuaW5kZXhPZihjZWxsVmFsdWUpID09PSBhcnIubGFzdEluZGV4T2YoY2VsbFZhbHVlKSA/ICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvIDogJyc7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICBjb25zdCBhcnI6IGFueVtdID0gdHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgPyB0aGlzLm51bWVyaWNEYXRhIDogdGhpcy50ZXh0RGF0YTtcclxuICAgICAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKGNlbGxWYWx1ZSkgPT09IGFyci5sYXN0SW5kZXhPZihjZWxsVmFsdWUpID8gIHRoaXMuZm9ybWF0Q29sb3JzLnRleHQgOiAnJztcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgZ2V0IHNlbGVjdGVkRGF0YSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGVkRGF0YS5sZW5ndGgpIHsgdGhpcy5fc2VsZWN0ZWREYXRhID0gdGhpcy50b0FycmF5KHRoaXMuZ3JpZC5nZXRTZWxlY3RlZERhdGEoKSk7IH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IHRleHREYXRhKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRGF0YS5maWx0ZXIodmFsID0+IHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBudW1lcmljRGF0YSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKHZhbCA9PiB0eXBlb2YgdmFsID09PSAnbnVtYmVyJyk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9mb3JtYXRDb2xvcnM6IElGb3JtYXRDb2xvcnMgPSB7XHJcbiAgICAgICAgc3VjY2VzczogJyM0RUI4NjInLFxyXG4gICAgICAgIGVycm9yOiAnI0ZGMTM0QScsXHJcbiAgICAgICAgd2FybmluZzogJyNGQkIxM0MnLFxyXG4gICAgICAgIGluZm86ICcjMTM3N0Q1JyxcclxuICAgICAgICB0ZXh0OiAnI0ZGRidcclxuICAgIH07XHJcbiAgICBwcml2YXRlIF9udW1lcmljRm9ybWF0dGVycyA9IFsnRGF0YSBCYXJzJywgJ0NvbG9yIFNjYWxlJywgJ1RvcCAxMCcsICdHcmVhdGVyIFRoYW4nXTtcclxuICAgIHByaXZhdGUgX3RleHRGb3JtYXR0ZXJzID0gWydUZXh0IENvbnRhaW5zJ107XHJcbiAgICBwcml2YXRlIF9jb21tb25Gb3JtYXR0ZXJzTmFtZSA9IFsnRHVwbGljYXRlIFZhbHVlcycsICdVbmlxdWUgVmFsdWVzJywgJ0VtcHR5J107XHJcbiAgICBwcml2YXRlIF9zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgIHByaXZhdGUgX21pblZhbHVlO1xyXG4gICAgcHJpdmF0ZSBfbWF4VmFsdWU7XHJcbiAgICBwcml2YXRlIF9zdGFydENvbHVtbjtcclxuICAgIHByaXZhdGUgX2VuZENvbHVtbjtcclxuICAgIHByaXZhdGUgX3ZhbHVlRm9yQ29tcGFyaXNvbjtcclxuICAgIHByaXZhdGUgX2Zvcm1hdHRlcnNEYXRhID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgICBwcml2YXRlIGZvcm1hdGVkUmFuZ2U6IE1hcDxudW1iZXIsIFNldDxudW1iZXI+PiA9IG5ldyBNYXA8bnVtYmVyLCBTZXQ8bnVtYmVyPj4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZ3JpZDogSWd4R3JpZENvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnRGF0YSBCYXJzJywgdGhpcy5kYXRhQmFycyk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdDb2xvciBTY2FsZScsIHRoaXMuY29sb3JTY2FsZSk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdUb3AgMTAnLCB0aGlzLnRvcDEwUGVyY2VudCk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdHcmVhdGVyIFRoYW4nLCB0aGlzLmdyZWF0ZXJUaGFuKTtcclxuICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzRGF0YS5zZXQoJ1RleHQgQ29udGFpbnMnLCB0aGlzLnRleHRDb250YWlucyk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdEdXBsaWNhdGUgVmFsdWVzJywgdGhpcy5kdXBsaWNhdGVzKTtcclxuICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzRGF0YS5zZXQoJ1VuaXF1ZSBWYWx1ZXMnLCB0aGlzLnVuaXF1ZXMpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnRW1wdHknLCB0aGlzLmVtcHR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ3JpZC5yYW5nZVNlbGVjdGVkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRldGVybWluZUZvcm1hdHRlcnMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmdyaWQuY2VsbEVkaXQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoYXJnczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICgoYXJncy5uZXdWYWx1ZSA9PT0gYXJncy5vbGRWYWx1ZSB8fCAhdGhpcy5mb3JtYXR0ZXIpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKGFyZ3MuY2VsbElELnJvd0luZGV4LCBhcmdzLmNlbGxJRC5jb2x1bW5JRCAtIDEpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE51bWJlcihhcmdzLm5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlVG9CZUFkZGVkID0gIU51bWJlci5pc05hTih2YWx1ZSkgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlKSA/IHZhbHVlIDogYXJncy5uZXdWYWx1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhLnNwbGljZSh0aGlzLnNlbGVjdGVkRGF0YS5pbmRleE9mKGFyZ3Mub2xkVmFsdWUpLCAxLCB2YWx1ZVRvQmVBZGRlZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY2FsY0NhY2hlZFZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtYXRDZWxscyh0aGlzLmZvcm1hdHRlciwgdW5kZWZpbmVkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9ybWF0Q2VsbHMoZm9ybWF0dGVyTmFtZSwgZm9ybWF0UmFuZ2U/OiBbXSwgcmVzZXQgPSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHJlc2V0KSB7IHRoaXMucmVzZXRSYW5nZShmb3JtYXRSYW5nZSk7IH1cclxuICAgICAgICB0aGlzLmNsZWFyRm9ybWF0dGluZygpO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gZm9ybWF0dGVyTmFtZTtcclxuICAgICAgICB0aGlzLmdyaWQudmlzaWJsZUNvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgaWYgKGMudmlzaWJsZUluZGV4ID49IHRoaXMuX3N0YXJ0Q29sdW1uICYmIGMudmlzaWJsZUluZGV4IDw9IHRoaXMuX2VuZENvbHVtbikge1xyXG4gICAgICAgICAgICAgICAgYy5jZWxsU3R5bGVzID0gdGhpcy5fZm9ybWF0dGVyc0RhdGEuZ2V0KHRoaXMuZm9ybWF0dGVyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5ub3RpZnlDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xlYXJGb3JtYXR0aW5nKCkge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuZ3JpZC52aXNpYmxlQ29sdW1ucy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgICAgICBjLmNlbGxTdHlsZXMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZXRlcm1pbmVGb3JtYXR0ZXJzKCkge1xyXG4gICAgICAgIGNvbnN0IG51bWVyaWNEYXRhID0gdGhpcy50b0FycmF5KHRoaXMuZ3JpZC5nZXRTZWxlY3RlZERhdGEoKSkuc29tZShyZWMgPT4gdHlwZW9mIHJlYyA9PT0gJ251bWJlcicpO1xyXG4gICAgICAgIGNvbnN0IHRleHREYXRhID0gdGhpcy50b0FycmF5KHRoaXMuZ3JpZC5nZXRTZWxlY3RlZERhdGEoKSkuc29tZShyZWMgPT4gdHlwZW9mIHJlYyA9PT0gJ3N0cmluZycpO1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlcnMgPSAgQXJyYXkub2YoLi4udGhpcy5fY29tbW9uRm9ybWF0dGVyc05hbWUpO1xyXG4gICAgICAgIGlmICghKG51bWVyaWNEYXRhKSAmJiB0ZXh0RGF0YSkge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZXJzLnNwbGljZSgwLCAwLCAuLi50aGlzLl90ZXh0Rm9ybWF0dGVycyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChudW1lcmljRGF0YSAmJiAhdGV4dERhdGEpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVycy5zcGxpY2UoMCwgMCwgLi4udGhpcy5fbnVtZXJpY0Zvcm1hdHRlcnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlcnMuc3BsaWNlKDAsIDAsIC4uLlsnRGF0YSBCYXJzJywgJ0NvbG9yIFNjYWxlJywgJ1RleHQgQ29udGFpbnMnXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25Gb3JtYXR0ZXJzUmVhZHkuZW1pdChmb3JtYXR0ZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVjYWxjQ2FjaGVkVmFsdWVzKGNsZWFyQWxsID0gZmFsc2UpIHtcclxuICAgICAgICBpZiAoY2xlYXJBbGwpIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RhcnRDb2x1bW4gPSBNYXRoLm1pbiguLi50aGlzLmdyaWQuZ2V0U2VsZWN0ZWRSYW5nZXMoKS5tYXAociA9PiBOdW1iZXIoci5jb2x1bW5TdGFydCkpKTtcclxuICAgICAgICAgICAgdGhpcy5fZW5kQ29sdW1uID0gTWF0aC5tYXgoLi4udGhpcy5ncmlkLmdldFNlbGVjdGVkUmFuZ2VzKCkubWFwKHIgPT4gTnVtYmVyKHIuY29sdW1uRW5kKSkpO1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fdmFsdWVGb3JDb21wYXJpc29uID0gdGhpcy50ZXh0RGF0YVswXTtcclxuICAgICAgICB0aGlzLl9tYXhWYWx1ZSA9IE1hdGgubWF4KC4uLnRoaXMubnVtZXJpY0RhdGEpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlID0gTWF0aC5taW4oLi4udGhpcy5udW1lcmljRGF0YS5maWx0ZXIodmFsdWUgPT4gdmFsdWUgPCAwKSkgfCAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xJRCkge1xyXG4gICAgICAgIGNvbnN0IHZpc2libGVJbmRleCA9IHR5cGVvZiBjb2xJRCA9PT0gJ3N0cmluZycgPyB0aGlzLmdyaWQuZ2V0Q29sdW1uQnlOYW1lKGNvbElEKS52aXNpYmxlSW5kZXggOiBjb2xJRDtcclxuICAgICAgICBpZiAoIXRoaXMuZm9ybWF0ZWRSYW5nZS5zaXplKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdGVkUmFuZ2UuaGFzKHJvd0luZGV4KSAmJiB0aGlzLmZvcm1hdGVkUmFuZ2UuZ2V0KHJvd0luZGV4KS5oYXModmlzaWJsZUluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBtaWRkbGVUcmVzaG9sZFZhbHVlKCkgeyByZXR1cm4gMC42NiAqIE1hdGguY2VpbCh0aGlzLl9tYXhWYWx1ZSk7IH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBsb3dUcmVzaG9sZFZhbHVlKCkgeyByZXR1cm4gMC4zMyAqIE1hdGguY2VpbCh0aGlzLl9tYXhWYWx1ZSk7IH1cclxuXHJcbiAgICBwcml2YXRlIGdldCB0b3AxMFBlcmNlbnRUcmVzaG9sZCgpIHsgcmV0dXJuIDAuOSAqIE1hdGguY2VpbCh0aGlzLl9tYXhWYWx1ZSk7IH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBhdmdWYWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKCh0aGlzLm51bWVyaWNEYXRhLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApKSAvIHRoaXMubnVtZXJpY0RhdGEubGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCB0aHJlc2hvbGQoKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkgLyAodGhpcy5fbWF4VmFsdWUgKyBNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkpICogMTAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFBvc2l0aXZlUGVyY2VudGFnZSh2YWwpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSAoTWF0aC5jZWlsKHZhbCkgLyAodGhpcy5fbWF4VmFsdWUgKyBNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkpKSAqIDEwMDtcclxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXROZWdhdGl2ZVBlcmNlbnRhZ2UodmFsKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKE1hdGguYWJzKHZhbCkgLyAodGhpcy5fbWF4VmFsdWUgKyBNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkpKSAqIDEwMDtcclxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXNldFJhbmdlKGZvcm1hdFJhbmdlPzogW10pIHtcclxuICAgICAgICB0aGlzLmZvcm1hdGVkUmFuZ2UuY2xlYXIoKTtcclxuICAgICAgICBjb25zdCBjdXN0b21SYW5nZSA9IGZvcm1hdFJhbmdlID8gZm9ybWF0UmFuZ2UgOiB0aGlzLmdyaWQuZ2V0U2VsZWN0ZWRSYW5nZXMoKTtcclxuICAgICAgICBjdXN0b21SYW5nZS5mb3JFYWNoKHJhbmdlID0+IHtcclxuICAgICAgICAgICAgZm9yIChsZXQgcmkgPSByYW5nZS5yb3dTdGFydDsgcmkgPD0gTnVtYmVyKHJhbmdlLnJvd0VuZCk7IHJpKyspIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGNpID0gTnVtYmVyKHJhbmdlLmNvbHVtblN0YXJ0KTsgY2kgPD0gTnVtYmVyKHJhbmdlLmNvbHVtbkVuZCk7IGNpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFRvQ2FjaGUocmksIGNpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVjYWxjQ2FjaGVkVmFsdWVzKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkVG9DYWNoZShyb3dJbmRleCwgY29sSW5kZXgsIHNlbGVjdGlvbiA9IHRydWUpIHtcclxuICAgICAgICB0aGlzLmZvcm1hdGVkUmFuZ2UuaGFzKHJvd0luZGV4KSA/IHRoaXMuZm9ybWF0ZWRSYW5nZS5nZXQocm93SW5kZXgpLmFkZChjb2xJbmRleCkgOlxyXG4gICAgICAgIHRoaXMuZm9ybWF0ZWRSYW5nZS5zZXQocm93SW5kZXgsIG5ldyBTZXQ8bnVtYmVyPigpKS5nZXQocm93SW5kZXgpLmFkZChjb2xJbmRleCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0b0FycmF5KGRhdGE6IGFueVtdKSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgIGRhdGEuZm9yRWFjaChyZWMgPT4gcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChPYmplY3QudmFsdWVzKHJlYykpKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=
|
|
@@ -12,8 +12,8 @@ import { SvgPipe } from './pipes/svg.pipe';
|
|
|
12
12
|
import { CommonModule } from '@angular/common';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
export class IgxExtrasModule {
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
16
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IgxExtrasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
16
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: IgxExtrasModule, declarations: [IgxConditionalFormattingDirective,
|
|
17
17
|
IgxChartIntegrationDirective,
|
|
18
18
|
IgxContextMenuDirective,
|
|
19
19
|
IgxContextMenuComponent,
|
|
@@ -41,7 +41,7 @@ export class IgxExtrasModule {
|
|
|
41
41
|
CommonModule], exports: [IgxConditionalFormattingDirective,
|
|
42
42
|
IgxChartIntegrationDirective,
|
|
43
43
|
IgxContextMenuDirective] }); }
|
|
44
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
|
44
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IgxExtrasModule, imports: [IgxButtonModule,
|
|
45
45
|
IgxDividerModule,
|
|
46
46
|
IgxGridModule,
|
|
47
47
|
IgxTabsModule,
|
|
@@ -63,7 +63,7 @@ export class IgxExtrasModule {
|
|
|
63
63
|
IgxCategoryChartModule,
|
|
64
64
|
CommonModule] }); }
|
|
65
65
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IgxExtrasModule, decorators: [{
|
|
67
67
|
type: NgModule,
|
|
68
68
|
args: [{
|
|
69
69
|
declarations: [
|
|
@@ -8,10 +8,10 @@ export class SvgPipe {
|
|
|
8
8
|
transform(markup) {
|
|
9
9
|
return this.sanitizer.bypassSecurityTrustHtml(markup);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SvgPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: SvgPipe, name: "svg" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SvgPipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'svg'
|