@ng-nest/ui 18.0.10 → 18.0.12
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/input-number/input-number.component.mjs +3 -3
- package/esm2022/keyword/keyword.directive.mjs +4 -1
- package/esm2022/list/list.component.mjs +28 -13
- package/esm2022/menu/menu-node.component.mjs +6 -3
- package/esm2022/menu/menu.component.mjs +3 -3
- package/esm2022/message-box/message-box.component.mjs +10 -4
- package/esm2022/message-box/message-box.property.mjs +1 -1
- package/esm2022/message-box/message-box.service.mjs +11 -4
- package/esm2022/pagination/pagination.component.mjs +3 -3
- package/esm2022/popconfirm/popconfirm.component.mjs +3 -3
- package/esm2022/resizable/resizable.directive.mjs +5 -3
- package/esm2022/ripple/ripple.directive.mjs +28 -17
- package/esm2022/select/select-portal.component.mjs +4 -3
- package/esm2022/select/select.component.mjs +15 -9
- package/esm2022/select/select.property.mjs +9 -2
- package/esm2022/skeleton/skeleton.component.mjs +3 -1
- package/esm2022/slider-select/slider-select.component.mjs +8 -3
- package/esm2022/table/table-head.component.mjs +2 -2
- package/esm2022/table/table.property.mjs +2 -2
- package/esm2022/textarea/textarea.property.mjs +7 -2
- package/esm2022/tooltip/tooltip-portal.component.mjs +14 -3
- package/fesm2022/ng-nest-ui-input-number.mjs +2 -2
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +3 -0
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +27 -12
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +7 -4
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +19 -6
- package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +2 -2
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +2 -2
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +4 -2
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +27 -16
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +24 -10
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +2 -0
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +7 -2
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +1 -1
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +6 -1
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +13 -2
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/list/list.component.d.ts +3 -0
- package/menu/menu-node.component.d.ts +5 -2
- package/message-box/message-box.property.d.ts +17 -2
- package/package.json +120 -120
- package/ripple/ripple.directive.d.ts +7 -3
- package/select/select-portal.component.d.ts +2 -1
- package/select/select.component.d.ts +1 -0
- package/select/select.property.d.ts +6 -1
- package/textarea/textarea.property.d.ts +11 -10
- package/tooltip/tooltip-portal.component.d.ts +3 -0
|
@@ -23,6 +23,7 @@ export class XSelectPortalComponent {
|
|
|
23
23
|
this.nodeTpl = input();
|
|
24
24
|
this.inputCom = input();
|
|
25
25
|
this.portalMaxHeight = input('');
|
|
26
|
+
this.portalHeight = input('');
|
|
26
27
|
this.objectArray = input(false);
|
|
27
28
|
this.selectAll = input(false);
|
|
28
29
|
this.selectAllText = input('');
|
|
@@ -84,11 +85,11 @@ export class XSelectPortalComponent {
|
|
|
84
85
|
this.closeSubject.next();
|
|
85
86
|
}
|
|
86
87
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XSelectPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: XSelectPortalComponent, isStandalone: true, selector: "x-select-portal", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, inputCom: { classPropertyName: "inputCom", publicName: "inputCom", isSignal: true, isRequired: false, transformFunction: null }, portalMaxHeight: { classPropertyName: "portalMaxHeight", publicName: "portalMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, objectArray: { classPropertyName: "objectArray", publicName: "objectArray", isSignal: true, isRequired: false, transformFunction: null }, selectAll: { classPropertyName: "selectAll", publicName: "selectAll", isSignal: true, isRequired: false, transformFunction: null }, selectAllText: { classPropertyName: "selectAllText", publicName: "selectAllText", isSignal: true, isRequired: false, transformFunction: null }, caseSensitive: { classPropertyName: "caseSensitive", publicName: "caseSensitive", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, keywordText: { classPropertyName: "keywordText", publicName: "keywordText", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", animating: "animating", nodeClick: "nodeClick" }, host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.getPlacement" } }, viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n #selectPortal\r\n class=\"x-select-portal\"\r\n (click)=\"inputCom()?.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalMaxHeight()\"\r\n>\r\n <x-list\r\n #list\r\n [data]=\"data()!\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (onSelectAll)=\"onSelectAll($event)\"\r\n checked\r\n [objectArray]=\"objectArray()\"\r\n [multiple]=\"multiple()\"\r\n [selectAll]=\"selectAll()\"\r\n [selectAllText]=\"getSelectAllText()!\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [scrollElement]=\"selectPortal\"\r\n [virtualScroll]=\"virtualScroll()\"\r\n [size]=\"size()!\"\r\n [heightAdaption]=\"selectPortal\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n [inPortal]=\"true\"\r\n ></x-list>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-select-portal{width:100%}.x-select-portal{color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;background-color:var(--x-background-100);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XListComponent, selector: "x-list" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
88
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: XSelectPortalComponent, isStandalone: true, selector: "x-select-portal", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, inputCom: { classPropertyName: "inputCom", publicName: "inputCom", isSignal: true, isRequired: false, transformFunction: null }, portalMaxHeight: { classPropertyName: "portalMaxHeight", publicName: "portalMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, portalHeight: { classPropertyName: "portalHeight", publicName: "portalHeight", isSignal: true, isRequired: false, transformFunction: null }, objectArray: { classPropertyName: "objectArray", publicName: "objectArray", isSignal: true, isRequired: false, transformFunction: null }, selectAll: { classPropertyName: "selectAll", publicName: "selectAll", isSignal: true, isRequired: false, transformFunction: null }, selectAllText: { classPropertyName: "selectAllText", publicName: "selectAllText", isSignal: true, isRequired: false, transformFunction: null }, caseSensitive: { classPropertyName: "caseSensitive", publicName: "caseSensitive", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, keywordText: { classPropertyName: "keywordText", publicName: "keywordText", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", animating: "animating", nodeClick: "nodeClick" }, host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.getPlacement" } }, viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n #selectPortal\r\n class=\"x-select-portal\"\r\n [class.x-select-portal-virtualScroll]=\"virtualScroll()\"\r\n (click)=\"inputCom()?.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalHeight() ? portalHeight() : portalMaxHeight()\"\r\n [style.height]=\"portalHeight()\"\r\n>\r\n <x-list\r\n #list\r\n [data]=\"data()!\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (onSelectAll)=\"onSelectAll($event)\"\r\n checked\r\n [objectArray]=\"objectArray()\"\r\n [multiple]=\"multiple()\"\r\n [selectAll]=\"selectAll()\"\r\n [selectAllText]=\"getSelectAllText()!\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [scrollElement]=\"selectPortal\"\r\n [virtualScroll]=\"virtualScroll()\"\r\n [size]=\"size()!\"\r\n [heightAdaption]=\"selectPortal\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n [inPortal]=\"true\"\r\n ></x-list>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-select-portal{width:100%}.x-select-portal{color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;background-color:var(--x-background-100);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-select-portal-virtualScroll{overflow-y:hidden}.x-select-portal-virtualScroll .x-list-portal{padding:0}.x-select-portal-virtualScroll .x-list-portal .cdk-virtual-scroll-content-wrapper{padding:.125rem .25rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XListComponent, selector: "x-list" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
88
89
|
}
|
|
89
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XSelectPortalComponent, decorators: [{
|
|
90
91
|
type: Component,
|
|
91
|
-
args: [{ selector: `${XSelectPortalPrefix}`, standalone: true, imports: [FormsModule, XListComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div\r\n #selectPortal\r\n class=\"x-select-portal\"\r\n (click)=\"inputCom()?.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalMaxHeight()\"\r\n>\r\n <x-list\r\n #list\r\n [data]=\"data()!\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (onSelectAll)=\"onSelectAll($event)\"\r\n checked\r\n [objectArray]=\"objectArray()\"\r\n [multiple]=\"multiple()\"\r\n [selectAll]=\"selectAll()\"\r\n [selectAllText]=\"getSelectAllText()!\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [scrollElement]=\"selectPortal\"\r\n [virtualScroll]=\"virtualScroll()\"\r\n [size]=\"size()!\"\r\n [heightAdaption]=\"selectPortal\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n [inPortal]=\"true\"\r\n ></x-list>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-select-portal{width:100%}.x-select-portal{color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;background-color:var(--x-background-100);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}\n"] }]
|
|
92
|
+
args: [{ selector: `${XSelectPortalPrefix}`, standalone: true, imports: [FormsModule, XListComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div\r\n #selectPortal\r\n class=\"x-select-portal\"\r\n [class.x-select-portal-virtualScroll]=\"virtualScroll()\"\r\n (click)=\"inputCom()?.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalHeight() ? portalHeight() : portalMaxHeight()\"\r\n [style.height]=\"portalHeight()\"\r\n>\r\n <x-list\r\n #list\r\n [data]=\"data()!\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (onSelectAll)=\"onSelectAll($event)\"\r\n checked\r\n [objectArray]=\"objectArray()\"\r\n [multiple]=\"multiple()\"\r\n [selectAll]=\"selectAll()\"\r\n [selectAllText]=\"getSelectAllText()!\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [scrollElement]=\"selectPortal\"\r\n [virtualScroll]=\"virtualScroll()\"\r\n [size]=\"size()!\"\r\n [heightAdaption]=\"selectPortal\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n [inPortal]=\"true\"\r\n ></x-list>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-select-portal{width:100%}.x-select-portal{color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;background-color:var(--x-background-100);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}.x-select-portal-virtualScroll{overflow-y:hidden}.x-select-portal-virtualScroll .x-list-portal{padding:0}.x-select-portal-virtualScroll .x-list-portal .cdk-virtual-scroll-content-wrapper{padding:.125rem .25rem}\n"] }]
|
|
92
93
|
}], propDecorators: { getPlacement: [{
|
|
93
94
|
type: HostBinding,
|
|
94
95
|
args: ['@x-connect-base-animation']
|
|
@@ -99,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
99
100
|
type: HostListener,
|
|
100
101
|
args: ['@x-connect-base-animation.start', ['$event']]
|
|
101
102
|
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9zZWxlY3Qvc2VsZWN0LXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9zZWxlY3Qvc2VsZWN0LXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFFdkIsV0FBVyxFQUNYLFlBQVksRUFFWixLQUFLLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLHFCQUFxQixFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxELE9BQU8sRUFBZSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBWXRELE1BQU0sT0FBTyxzQkFBc0I7SUFWbkM7UUF1QkUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNoQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLFNBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFcEMsU0FBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWlCLE1BQU0sQ0FBQyxDQUFDO1FBRWxELFVBQUssR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUNyQixTQUFJLEdBQUcsS0FBSyxFQUFpQixDQUFDO1FBQzlCLGNBQVMsR0FBRyxLQUFLLENBQWEsUUFBUSxDQUFDLENBQUM7UUFDeEMsYUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FBSyxFQUFvQixDQUFDO1FBQ3BDLGFBQVEsR0FBRyxLQUFLLEVBQW1CLENBQUM7UUFDcEMsb0JBQWUsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDcEMsY0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixrQkFBYSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNyQyxXQUFNLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsS0FBSyxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLFNBQUksR0FBRyxLQUFLLEVBQVMsQ0FBQztRQUV0QixjQUFTLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFDOUIsY0FBUyxHQUFHLE1BQU0sRUFBNkUsQ0FBQztRQUloRyxXQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsV0FBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBcUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEgscUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7S0F1Q3hGO0lBakZDLElBQXFELFlBQVk7UUFDL0QsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUMyRCxJQUFJO1FBQzlELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUM0RCxLQUFLO1FBQ2hFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQWtDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBWTtRQUMxQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFpQjtRQUMzQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxZQUFxQjtRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO2lJQWpGVSxzQkFBc0I7cUhBQXRCLHNCQUFzQix3NUVDckNuQyx1NUJBNkJBLG9aRENZLFdBQVcsK1ZBQUUsY0FBYyxxQ0FLekIsQ0FBQyxxQkFBcUIsQ0FBQzs7MkZBRXhCLHNCQUFzQjtrQkFWbEMsU0FBUzsrQkFDRSxHQUFHLG1CQUFtQixFQUFFLGNBQ3RCLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsaUJBR3ZCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsQ0FBQyxxQkFBcUIsQ0FBQzs4QkFHa0IsWUFBWTtzQkFBaEUsV0FBVzt1QkFBQywyQkFBMkI7Z0JBR29CLElBQUk7c0JBQS9ELFlBQVk7dUJBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUcsS0FBSztzQkFBakUsWUFBWTt1QkFBQyxpQ0FBaUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIE9uSW5pdCxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgaW5wdXQsXHJcbiAgdmlld0NoaWxkLFxyXG4gIG1vZGVsLFxyXG4gIG91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgY29tcHV0ZWQsXHJcbiAgaW5qZWN0LFxyXG4gIERlc3Ryb3lSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFNlbGVjdE5vZGUsIFhTZWxlY3RQb3J0YWxQcmVmaXggfSBmcm9tICcuL3NlbGVjdC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWENvbm5lY3RCYXNlQW5pbWF0aW9uLCBYUGxhY2VtZW50LCBYU2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWExpc3RDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9saXN0JztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYSTE4blNlbGVjdCwgWEkxOG5TZXJ2aWNlLCB6aF9DTiB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFNlbGVjdFBvcnRhbFByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBYTGlzdENvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1wb3J0YWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtYQ29ubmVjdEJhc2VBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYU2VsZWN0UG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASG9zdEJpbmRpbmcoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24nKSBwdWJsaWMgZ2V0IGdldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBsYWNlbWVudCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKSBkb25lKCkge1xyXG4gICAgaWYgKHRoaXMuZGVzdHJveSgpKSByZXR1cm47XHJcbiAgICB0aGlzLmFuaW1hdGluZy5lbWl0KGZhbHNlKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5zdGFydCcsIFsnJGV2ZW50J10pIHN0YXJ0KCkge1xyXG4gICAgaWYgKHRoaXMuZGVzdHJveSgpKSByZXR1cm47XHJcbiAgICB0aGlzLmFuaW1hdGluZy5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgcHJpdmF0ZSB1blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoWEkxOG5TZXJ2aWNlKTtcclxuXHJcbiAgbGlzdCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxYTGlzdENvbXBvbmVudD4oJ2xpc3QnKTtcclxuXHJcbiAgdmFsdWUgPSBtb2RlbDxhbnk+KCk7XHJcbiAgZGF0YSA9IGlucHV0PFhTZWxlY3ROb2RlW10+KCk7XHJcbiAgcGxhY2VtZW50ID0gaW5wdXQ8WFBsYWNlbWVudD4oJ2JvdHRvbScpO1xyXG4gIG11bHRpcGxlID0gaW5wdXQoMSk7XHJcbiAgbm9kZVRwbCA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XHJcbiAgaW5wdXRDb20gPSBpbnB1dDxYSW5wdXRDb21wb25lbnQ+KCk7XHJcbiAgcG9ydGFsTWF4SGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgb2JqZWN0QXJyYXkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgc2VsZWN0QWxsID0gaW5wdXQoZmFsc2UpO1xyXG4gIHNlbGVjdEFsbFRleHQgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBjYXNlU2Vuc2l0aXZlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgc2VhcmNoID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHZpcnR1YWxTY3JvbGwgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAga2V5d29yZFRleHQgPSBpbnB1dDxhbnk+KCcnKTtcclxuICBzaXplID0gaW5wdXQ8WFNpemU+KCk7XHJcblxyXG4gIGFuaW1hdGluZyA9IG91dHB1dDxib29sZWFuPigpO1xyXG4gIG5vZGVDbGljayA9IG91dHB1dDx7IG5vZGU6IFhTZWxlY3ROb2RlIHwgbnVsbDsgdmFsdWU/OiBYU2VsZWN0Tm9kZVtdIHwgKHN0cmluZyB8IG51bWJlcilbXSB9PigpO1xyXG5cclxuICBjbG9zZVN1YmplY3QhOiBTdWJqZWN0PHZvaWQ+O1xyXG4gIGtleWRvd25TdWJqZWN0ITogU3ViamVjdDxLZXlib2FyZEV2ZW50PjtcclxuICBhY3RpdmUgPSBzaWduYWwoLTEpO1xyXG4gIGxvY2FsZSA9IHRvU2lnbmFsKHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZShtYXAoKHgpID0+IHguc2VsZWN0IGFzIFhJMThuU2VsZWN0KSksIHsgaW5pdGlhbFZhbHVlOiB6aF9DTi5zZWxlY3QgfSk7XHJcbiAgZ2V0U2VsZWN0QWxsVGV4dCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VsZWN0QWxsVGV4dCgpIHx8IHRoaXMubG9jYWxlKCkuc2VsZWN0QWxsVGV4dCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxpc3QoKS5zZXRVbkFjdGl2ZSh0aGlzLmFjdGl2ZSgpKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5rZXlkb3duU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLmxpc3QoKS5rZXlkb3duKHgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcclxuICAgICAgdGhpcy5kZXN0cm95LnNldCh0cnVlKTtcclxuICAgICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgICB0aGlzLnVuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKG5vZGU6IFhTZWxlY3ROb2RlKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSgpID09PSAwKSB7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBub2RlLCB2YWx1ZTogdGhpcy52YWx1ZSgpIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ub2RlQ2xpY2suZW1pdCh7IG5vZGUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbChfaXNTZWxlY3RBbGw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBub2RlOiBudWxsLCB2YWx1ZTogdGhpcy52YWx1ZSgpIH0pO1xyXG4gIH1cclxuXHJcbiAgb25BY3RpdmUobnVtOiBudW1iZXIpIHtcclxuICAgIHRoaXMuYWN0aXZlLnNldChudW0pO1xyXG4gIH1cclxuXHJcbiAgb25UYWJPdXQoKSB7XHJcbiAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjc2VsZWN0UG9ydGFsXHJcbiAgY2xhc3M9XCJ4LXNlbGVjdC1wb3J0YWxcIlxyXG4gIChjbGljayk9XCJpbnB1dENvbSgpPy5pbnB1dEZvY3VzKCk7IHN0b3BQcm9wYWdhdGlvbigkZXZlbnQpXCJcclxuICBbc3R5bGUubWF4SGVpZ2h0XT1cInBvcnRhbE1heEhlaWdodCgpXCJcclxuPlxyXG4gIDx4LWxpc3RcclxuICAgICNsaXN0XHJcbiAgICBbZGF0YV09XCJkYXRhKCkhXCJcclxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgKG5vZGVDbGljayk9XCJvbk5vZGVDbGljaygkZXZlbnQpXCJcclxuICAgIChrZXlNYW5hZ2VyQ2hhbmdlKT1cIm9uQWN0aXZlKCRldmVudClcIlxyXG4gICAgKGtleU1hbmFnZXJUYWJPdXQpPVwib25UYWJPdXQoKVwiXHJcbiAgICAob25TZWxlY3RBbGwpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiXHJcbiAgICBjaGVja2VkXHJcbiAgICBbb2JqZWN0QXJyYXldPVwib2JqZWN0QXJyYXkoKVwiXHJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiXHJcbiAgICBbc2VsZWN0QWxsXT1cInNlbGVjdEFsbCgpXCJcclxuICAgIFtzZWxlY3RBbGxUZXh0XT1cImdldFNlbGVjdEFsbFRleHQoKSFcIlxyXG4gICAgW25vZGVUcGxdPVwibm9kZVRwbCgpXCJcclxuICAgIFtzY3JvbGxFbGVtZW50XT1cInNlbGVjdFBvcnRhbFwiXHJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsKClcIlxyXG4gICAgW3NpemVdPVwic2l6ZSgpIVwiXHJcbiAgICBbaGVpZ2h0QWRhcHRpb25dPVwic2VsZWN0UG9ydGFsXCJcclxuICAgIFtrZXl3b3JkVGV4dF09XCJrZXl3b3JkVGV4dCgpXCJcclxuICAgIFtjYXNlU2Vuc2l0aXZlXT1cImNhc2VTZW5zaXRpdmUoKVwiXHJcbiAgICBbaW5Qb3J0YWxdPVwidHJ1ZVwiXHJcbiAgPjwveC1saXN0PlxyXG48L2Rpdj5cclxuIl19
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9zZWxlY3Qvc2VsZWN0LXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9zZWxlY3Qvc2VsZWN0LXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFFdkIsV0FBVyxFQUNYLFlBQVksRUFFWixLQUFLLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLHFCQUFxQixFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxELE9BQU8sRUFBZSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBWXRELE1BQU0sT0FBTyxzQkFBc0I7SUFWbkM7UUF1QkUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNoQyxlQUFVLEdBQUcsTUFBTSxDQUFD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cUJBQXFCLENBQUM7OzJGQUV4QixzQkFBc0I7a0JBVmxDLFNBQVM7K0JBQ0UsR0FBRyxtQkFBbUIsRUFBRSxjQUN0QixJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLGlCQUd2QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMscUJBQXFCLENBQUM7OEJBR2tCLFlBQVk7c0JBQWhFLFdBQVc7dUJBQUMsMkJBQTJCO2dCQUdvQixJQUFJO3NCQUEvRCxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlHLEtBQUs7c0JBQWpFLFlBQVk7dUJBQUMsaUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkluaXQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIGlucHV0LFxyXG4gIHZpZXdDaGlsZCxcclxuICBtb2RlbCxcclxuICBvdXRwdXQsXHJcbiAgc2lnbmFsLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGluamVjdCxcclxuICBEZXN0cm95UmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhTZWxlY3ROb2RlLCBYU2VsZWN0UG9ydGFsUHJlZml4IH0gZnJvbSAnLi9zZWxlY3QucHJvcGVydHknO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWFBsYWNlbWVudCwgWFNpemUgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhMaXN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvbGlzdCc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWEkxOG5TZWxlY3QsIFhJMThuU2VydmljZSwgemhfQ04gfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hTZWxlY3RQb3J0YWxQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgWExpc3RDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFNlbGVjdFBvcnRhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIGdldCBnZXRQbGFjZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZSgpIHtcclxuICAgIGlmICh0aGlzLmRlc3Ryb3koKSkgcmV0dXJuO1xyXG4gICAgdGhpcy5hbmltYXRpbmcuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydCgpIHtcclxuICAgIGlmICh0aGlzLmRlc3Ryb3koKSkgcmV0dXJuO1xyXG4gICAgdGhpcy5hbmltYXRpbmcuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3kgPSBzaWduYWwoZmFsc2UpO1xyXG4gIHByaXZhdGUgdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcblxyXG4gIGxpc3QgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8WExpc3RDb21wb25lbnQ+KCdsaXN0Jyk7XHJcblxyXG4gIHZhbHVlID0gbW9kZWw8YW55PigpO1xyXG4gIGRhdGEgPSBpbnB1dDxYU2VsZWN0Tm9kZVtdPigpO1xyXG4gIHBsYWNlbWVudCA9IGlucHV0PFhQbGFjZW1lbnQ+KCdib3R0b20nKTtcclxuICBtdWx0aXBsZSA9IGlucHV0KDEpO1xyXG4gIG5vZGVUcGwgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xyXG4gIGlucHV0Q29tID0gaW5wdXQ8WElucHV0Q29tcG9uZW50PigpO1xyXG4gIHBvcnRhbE1heEhlaWdodCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIHBvcnRhbEhlaWdodCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIG9iamVjdEFycmF5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHNlbGVjdEFsbCA9IGlucHV0KGZhbHNlKTtcclxuICBzZWxlY3RBbGxUZXh0ID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgY2FzZVNlbnNpdGl2ZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHNlYXJjaCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICB2aXJ0dWFsU2Nyb2xsID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGtleXdvcmRUZXh0ID0gaW5wdXQ8YW55PignJyk7XHJcbiAgc2l6ZSA9IGlucHV0PFhTaXplPigpO1xyXG5cclxuICBhbmltYXRpbmcgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuICBub2RlQ2xpY2sgPSBvdXRwdXQ8eyBub2RlOiBYU2VsZWN0Tm9kZSB8IG51bGw7IHZhbHVlPzogWFNlbGVjdE5vZGVbXSB8IChzdHJpbmcgfCBudW1iZXIpW10gfT4oKTtcclxuXHJcbiAgY2xvc2VTdWJqZWN0ITogU3ViamVjdDx2b2lkPjtcclxuICBrZXlkb3duU3ViamVjdCE6IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD47XHJcbiAgYWN0aXZlID0gc2lnbmFsKC0xKTtcclxuICBsb2NhbGUgPSB0b1NpZ25hbCh0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlLnBpcGUobWFwKCh4KSA9PiB4LnNlbGVjdCBhcyBYSTE4blNlbGVjdCkpLCB7IGluaXRpYWxWYWx1ZTogemhfQ04uc2VsZWN0IH0pO1xyXG4gIGdldFNlbGVjdEFsbFRleHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdEFsbFRleHQoKSB8fCB0aGlzLmxvY2FsZSgpLnNlbGVjdEFsbFRleHQpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5saXN0KCkuc2V0VW5BY3RpdmUodGhpcy5hY3RpdmUoKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMua2V5ZG93blN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5saXN0KCkua2V5ZG93bih4KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVzdHJveS5zZXQodHJ1ZSk7XHJcbiAgICAgIHRoaXMudW5TdWJqZWN0Lm5leHQoKTtcclxuICAgICAgdGhpcy51blN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhub2RlOiBYU2VsZWN0Tm9kZSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUoKSA9PT0gMCkge1xyXG4gICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgbm9kZSwgdmFsdWU6IHRoaXMudmFsdWUoKSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBub2RlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RBbGwoX2lzU2VsZWN0QWxsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgbm9kZTogbnVsbCwgdmFsdWU6IHRoaXMudmFsdWUoKSB9KTtcclxuICB9XHJcblxyXG4gIG9uQWN0aXZlKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmFjdGl2ZS5zZXQobnVtKTtcclxuICB9XHJcblxyXG4gIG9uVGFiT3V0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI3NlbGVjdFBvcnRhbFxyXG4gIGNsYXNzPVwieC1zZWxlY3QtcG9ydGFsXCJcclxuICBbY2xhc3MueC1zZWxlY3QtcG9ydGFsLXZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbCgpXCJcclxuICAoY2xpY2spPVwiaW5wdXRDb20oKT8uaW5wdXRGb2N1cygpOyBzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiXHJcbiAgW3N0eWxlLm1heEhlaWdodF09XCJwb3J0YWxIZWlnaHQoKSA/IHBvcnRhbEhlaWdodCgpIDogcG9ydGFsTWF4SGVpZ2h0KClcIlxyXG4gIFtzdHlsZS5oZWlnaHRdPVwicG9ydGFsSGVpZ2h0KClcIlxyXG4+XHJcbiAgPHgtbGlzdFxyXG4gICAgI2xpc3RcclxuICAgIFtkYXRhXT1cImRhdGEoKSFcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAobm9kZUNsaWNrKT1cIm9uTm9kZUNsaWNrKCRldmVudClcIlxyXG4gICAgKGtleU1hbmFnZXJDaGFuZ2UpPVwib25BY3RpdmUoJGV2ZW50KVwiXHJcbiAgICAoa2V5TWFuYWdlclRhYk91dCk9XCJvblRhYk91dCgpXCJcclxuICAgIChvblNlbGVjdEFsbCk9XCJvblNlbGVjdEFsbCgkZXZlbnQpXCJcclxuICAgIGNoZWNrZWRcclxuICAgIFtvYmplY3RBcnJheV09XCJvYmplY3RBcnJheSgpXCJcclxuICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcclxuICAgIFtzZWxlY3RBbGxdPVwic2VsZWN0QWxsKClcIlxyXG4gICAgW3NlbGVjdEFsbFRleHRdPVwiZ2V0U2VsZWN0QWxsVGV4dCgpIVwiXHJcbiAgICBbbm9kZVRwbF09XCJub2RlVHBsKClcIlxyXG4gICAgW3Njcm9sbEVsZW1lbnRdPVwic2VsZWN0UG9ydGFsXCJcclxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGwoKVwiXHJcbiAgICBbc2l6ZV09XCJzaXplKCkhXCJcclxuICAgIFtoZWlnaHRBZGFwdGlvbl09XCJzZWxlY3RQb3J0YWxcIlxyXG4gICAgW2tleXdvcmRUZXh0XT1cImtleXdvcmRUZXh0KClcIlxyXG4gICAgW2Nhc2VTZW5zaXRpdmVdPVwiY2FzZVNlbnNpdGl2ZSgpXCJcclxuICAgIFtpblBvcnRhbF09XCJ0cnVlXCJcclxuICA+PC94LWxpc3Q+XHJcbjwvZGl2PlxyXG4iXX0=
|