@dignite-ng/expand.cms 0.0.56 → 0.0.58
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/config/components/domains/domains.component.d.ts +2 -0
- package/config/components/site-language/site-language.component.d.ts +1 -0
- package/esm2022/config/components/domains/domains.component.mjs +29 -14
- package/esm2022/config/components/site-language/site-language.component.mjs +12 -4
- package/esm2022/lib/cms.module.mjs +5 -2
- package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +1 -1
- package/esm2022/lib/components/admin/entries/create.component.mjs +6 -4
- package/esm2022/lib/components/admin/entries/edit.component.mjs +4 -2
- package/esm2022/lib/components/admin/fields/create-field.component.mjs +5 -6
- package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +3 -3
- package/esm2022/lib/components/admin/fields/edit-field.component.mjs +10 -7
- package/esm2022/lib/components/admin/sections/create-or-edit-sections-modal.component.mjs +210 -0
- package/esm2022/lib/components/admin/sections/create-or-update-sections-input-base.mjs +4 -9
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +19 -10
- package/esm2022/lib/components/admin/sections/sections.component.mjs +32 -193
- package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +3 -3
- package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +3 -3
- package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +3 -3
- package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +1 -1
- package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +3 -3
- package/esm2022/lib/resolvers/page-default-toolbar-actions.mjs +2 -2
- package/fesm2022/dignite-ng-expand.cms-config.mjs +36 -15
- package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
- package/fesm2022/dignite-ng-expand.cms.mjs +263 -216
- package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
- package/lib/cms.module.d.ts +12 -11
- package/lib/components/admin/sections/create-or-edit-sections-modal.component.d.ts +49 -0
- package/lib/components/admin/sections/create-or-update-sections-input-base.d.ts +4 -1
- package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +10 -9
- package/lib/components/admin/sections/sections.component.d.ts +17 -36
- package/package.json +1 -1
|
@@ -79,11 +79,11 @@ export class EntryControlComponent {
|
|
|
79
79
|
await this.getEntryAssignList(event);
|
|
80
80
|
}
|
|
81
81
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: EntryControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
82
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: EntryControlComponent, selector: "cms-entry-control", inputs: { entity: "entity", fields: "fields", parentFiledName: "parentFiledName", selected: "selected", culture: "culture" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\r\n <div [formGroupName]=\"_parentFiledName\" class=\"entry-control-page\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\r\n <ng-container *ngIf=\"_fields.field.formConfiguration['Entry.Multiple']; else elseTemplate\">\r\n <div class=\"form-select\">\r\n <nz-select [nzMaxTagCount]=\"5\" (nzOnSearch)=\"SelectChange($event)\" nzShowSearch nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"form-select\">\r\n <nz-select nzShowSearch (nzOnSearch)=\"SelectChange($event)\" [nzMaxMultipleCount]=\"1\" nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-template>\r\n\r\n <small class=\"form-text text-muted\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</form>", styles: ["::ng-deep .entry-control-page .form-select{padding:0}::ng-deep .entry-control-page nz-select{width:100%}::ng-deep .entry-control-page nz-select .ant-select-selector{background:transparent!important;border:none!important;padding:.275rem 1.25rem!important;box-shadow:none!important;height:auto!important}::ng-deep .entry-control-page nz-select .anticon-search,::ng-deep .entry-control-page nz-select .anticon-down{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i3.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i4.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i4.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }] }); }
|
|
82
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: EntryControlComponent, selector: "cms-entry-control", inputs: { entity: "entity", fields: "fields", parentFiledName: "parentFiledName", selected: "selected", culture: "culture" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\r\n <div [formGroupName]=\"_parentFiledName\" class=\"entry-control-page\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\r\n <ng-container *ngIf=\"_fields.field.formConfiguration['Entry.Multiple']; else elseTemplate\">\r\n <div class=\"form-select\">\r\n <nz-select [nzMaxTagCount]=\"5\" (nzOnSearch)=\"SelectChange($event)\" nzShowSearch nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"form-select\">\r\n <nz-select nzShowSearch (nzOnSearch)=\"SelectChange($event)\" [nzMaxMultipleCount]=\"1\" nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-template>\r\n\r\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</form>", styles: ["::ng-deep .entry-control-page .form-select{padding:0}::ng-deep .entry-control-page nz-select{width:100%}::ng-deep .entry-control-page nz-select .ant-select-selector{background:transparent!important;border:none!important;padding:.275rem 1.25rem!important;box-shadow:none!important;height:auto!important}::ng-deep .entry-control-page nz-select .anticon-search,::ng-deep .entry-control-page nz-select .anticon-down{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i3.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i4.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i4.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }] }); }
|
|
83
83
|
}
|
|
84
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: EntryControlComponent, decorators: [{
|
|
85
85
|
type: Component,
|
|
86
|
-
args: [{ selector: 'cms-entry-control', template: "<form [formGroup]=\"_entity\">\r\n <div [formGroupName]=\"_parentFiledName\" class=\"entry-control-page\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\r\n <ng-container *ngIf=\"_fields.field.formConfiguration['Entry.Multiple']; else elseTemplate\">\r\n <div class=\"form-select\">\r\n <nz-select [nzMaxTagCount]=\"5\" (nzOnSearch)=\"SelectChange($event)\" nzShowSearch nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"form-select\">\r\n <nz-select nzShowSearch (nzOnSearch)=\"SelectChange($event)\" [nzMaxMultipleCount]=\"1\" nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-template>\r\n\r\n <small class=\"form-text text-muted\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</form>", styles: ["::ng-deep .entry-control-page .form-select{padding:0}::ng-deep .entry-control-page nz-select{width:100%}::ng-deep .entry-control-page nz-select .ant-select-selector{background:transparent!important;border:none!important;padding:.275rem 1.25rem!important;box-shadow:none!important;height:auto!important}::ng-deep .entry-control-page nz-select .anticon-search,::ng-deep .entry-control-page nz-select .anticon-down{display:none}\n"] }]
|
|
86
|
+
args: [{ selector: 'cms-entry-control', template: "<form [formGroup]=\"_entity\">\r\n <div [formGroupName]=\"_parentFiledName\" class=\"entry-control-page\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\r\n <ng-container *ngIf=\"_fields.field.formConfiguration['Entry.Multiple']; else elseTemplate\">\r\n <div class=\"form-select\">\r\n <nz-select [nzMaxTagCount]=\"5\" (nzOnSearch)=\"SelectChange($event)\" nzShowSearch nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"form-select\">\r\n <nz-select nzShowSearch (nzOnSearch)=\"SelectChange($event)\" [nzMaxMultipleCount]=\"1\" nzMode=\"multiple\" [nzPlaceHolder]=\"_fields.field.formConfiguration['Entry.Placeholder']\"\r\n formControlName=\"{{_fields.field.name}}\">\r\n <nz-option *ngFor=\"let item of listOfOption\" [nzLabel]=\"item.title\" [nzValue]=\"item.id\"></nz-option>\r\n </nz-select>\r\n </div>\r\n </ng-template>\r\n\r\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\r\n </div>\r\n </div>\r\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n</form>", styles: ["::ng-deep .entry-control-page .form-select{padding:0}::ng-deep .entry-control-page nz-select{width:100%}::ng-deep .entry-control-page nz-select .ant-select-selector{background:transparent!important;border:none!important;padding:.275rem 1.25rem!important;box-shadow:none!important;height:auto!important}::ng-deep .entry-control-page nz-select .anticon-search,::ng-deep .entry-control-page nz-select .anticon-down{display:none}\n"] }]
|
|
87
87
|
}], ctorParameters: () => [], propDecorators: { entity: [{
|
|
88
88
|
type: Input
|
|
89
89
|
}], fields: [{
|
|
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
98
98
|
type: ViewChild,
|
|
99
99
|
args: ['submitclick', { static: true }]
|
|
100
100
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9lbnRyeS9lbnRyeS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2VudHJ5L2VudHJ5LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQU92RSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDO1FBQ1EsT0FBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQVd2RCxZQUFZO1FBQ1osWUFBTyxHQUFRLEVBQUUsQ0FBQztRQStCbEIsTUFBTTtRQUNOLGlCQUFZLEdBQVUsRUFBRSxDQUFDO0lBOUNWLENBQUM7SUFNaEIsSUFDVyxNQUFNLENBQUMsQ0FBTTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUlELElBQ1csTUFBTSxDQUFDLENBQU07UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FB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aEIsS0FBSztnQkFRSyxlQUFlO3NCQUR6QixLQUFLO2dCQU9LLFFBQVE7c0JBRGxCLEtBQUs7Z0JBT0ssT0FBTztzQkFEakIsS0FBSztnQkFPc0MsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFbnRyeUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2VudHJpZXMnO1xuaW1wb3J0IHsgRW50cnlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9lbnRyaWVzL2VudHJ5LXN0YXR1cy5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWVudHJ5LWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50cnktY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudHJ5LWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRW50cnlDb250cm9sQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoKSB7fVxuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcbiAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2UgPSBpbmplY3QoRW50cnlBZG1pblNlcnZpY2UpO1xuXG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfZW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5KHY6IGFueSkge1xuICAgIHRoaXMuX2VudGl0eSA9IHY7XG5cbiAgICBpZiAodikgdGhpcy5kYXRhTG9hZGVkKCk7XG4gIH1cblxuICAvKirlrZfmrrXphY3nva7liJfooaggKi9cbiAgX2ZpZWxkczogYW55ID0gJyc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmllbGRzKHY6IGFueSkge1xuICAgIHRoaXMuX2ZpZWxkcyA9IHY7XG4gIH1cblxuICAvKirniLbnuqflrZfmrrXlkI3np7DvvIznlKjkuo7kuLrooajljZXorr7nva7mjqfku7botYvlgLwgKi9cbiAgX3BhcmVudEZpbGVkTmFtZTogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhcmVudEZpbGVkTmFtZSh2OiBhbnkpIHtcbiAgICB0aGlzLl9wYXJlbnRGaWxlZE5hbWUgPSB2O1xuICB9XG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfc2VsZWN0ZWQ6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHYgfHwgW107XG4gIH1cbiAgLyoq6K+t6KiAICovXG4gIF9jdWx0dXJlOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY3VsdHVyZSh2OiBhbnkpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fY3VsdHVyZSA9IHY7XG4gICAgICAvLyB0aGlzLmRhdGFMb2FkZWQoKVxuICAgIH1cbiAgfVxuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGV4dHJhUHJvcGVydGllczogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiAqL1xuICBsaXN0T2ZPcHRpb246IGFueVtdID0gW107XG4gIGFzeW5jIGRhdGFMb2FkZWQoKSB7XG4gICAgaWYgKHRoaXMuX2ZpZWxkcyAmJiB0aGlzLl9lbnRpdHkgJiYgdGhpcy5fcGFyZW50RmlsZWROYW1lICYmIHRoaXMuX2N1bHR1cmUpIHtcbiAgICAgIGF3YWl0IHRoaXMuQWZ0ZXJJbml0KCk7XG4gICAgICBhd2FpdCB0aGlzLmdldEVudHJ5QXNzaWduTGlzdCgpO1xuICAgICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgQWZ0ZXJJbml0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgbGV0IFZhbGlkYXRvcnNBcnJheSA9IFtdO1xuICAgICAgaWYgKHRoaXMuX2ZpZWxkcy5yZXF1aXJlZCkge1xuICAgICAgICBWYWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIH1cbiAgICAgIGxldCBuZXdDb250cm9sID0gdGhpcy5mYi5jb250cm9sKHRoaXMuX3NlbGVjdGVkLCBWYWxpZGF0b3JzQXJyYXkpO1xuICAgICAgbGV0IGV4dHJhUHJvcGVydGllcyA9IHRoaXMuX2VudGl0eS5nZXQodGhpcy5fcGFyZW50RmlsZWROYW1lKSBhcyBGb3JtR3JvdXA7XG4gICAgICBleHRyYVByb3BlcnRpZXMuc2V0Q29udHJvbCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSwgbmV3Q29udHJvbCk7XG4gICAgICByZXNvbHZlKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoq6I635Y+W5a+55bqU55qE5p2h55uuICovXG4gIGdldEVudHJ5QXNzaWduTGlzdChmaWx0ZXIgPSAnJykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2VcbiAgICAgICAgLmdldExpc3Qoe1xuICAgICAgICAgIGN1bHR1cmU6IHRoaXMuX2N1bHR1cmUsXG4gICAgICAgICAgc2VjdGlvbklkOiB0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5LlNlY3Rpb25JZCddLFxuICAgICAgICAgIHNraXBDb3VudDogMCxcbiAgICAgICAgICBtYXhSZXN1bHRDb3VudDogMzAsXG4gICAgICAgICAgc3RhdHVzOiBFbnRyeVN0YXR1cy5QdWJsaXNoZWQsXG4gICAgICAgICAgZmlsdGVyOiBmaWx0ZXIsXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmxpc3RPZk9wdGlvbiA9IHJlcy5pdGVtcztcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiAqL1xuICBhc3luYyBTZWxlY3RDaGFuZ2UoZXZlbnQpIHtcbiAgICBhd2FpdCB0aGlzLmdldEVudHJ5QXNzaWduTGlzdChldmVudCk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX2VudGl0eVwiPlxyXG4gICAgPGRpdiBbZm9ybUdyb3VwTmFtZV09XCJfcGFyZW50RmlsZWROYW1lXCIgY2xhc3M9XCJlbnRyeS1jb250cm9sLXBhZ2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgKm5nSWY9XCJfZmllbGRzLmRpc3BsYXlOYW1lXCI+e3sgX2ZpZWxkcy5kaXNwbGF5TmFtZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddOyBlbHNlIGVsc2VUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG56LXNlbGVjdCBbbnpNYXhUYWdDb3VudF09XCI1XCIgKG56T25TZWFyY2gpPVwiU2VsZWN0Q2hhbmdlKCRldmVudClcIiBuelNob3dTZWFyY2ggIG56TW9kZT1cIm11bHRpcGxlXCIgIFtuelBsYWNlSG9sZGVyXT1cIl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5LlBsYWNlaG9sZGVyJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInt7X2ZpZWxkcy5maWVsZC5uYW1lfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG56LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0T2ZPcHRpb25cIiBbbnpMYWJlbF09XCJpdGVtLnRpdGxlXCIgW256VmFsdWVdPVwiaXRlbS5pZFwiPjwvbnotb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbnotc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuei1zZWxlY3QgbnpTaG93U2VhcmNoIChuek9uU2VhcmNoKT1cIlNlbGVjdENoYW5nZSgkZXZlbnQpXCIgW256TWF4TXVsdGlwbGVDb3VudF09XCIxXCIgIG56TW9kZT1cIm11bHRpcGxlXCIgW256UGxhY2VIb2xkZXJdPVwiX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvblsnRW50cnkuUGxhY2Vob2xkZXInXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwie3tfZmllbGRzLmZpZWxkLm5hbWV9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bnotb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RPZk9wdGlvblwiIFtuekxhYmVsXT1cIml0ZW0udGl0bGVcIiBbbnpWYWx1ZV09XCJpdGVtLmlkXCI+PC9uei1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uei1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkXCIgKm5nSWY9XCJfZmllbGRzLmZpZWxkLmRlc2NyaXB0aW9uXCI+e3tfZmllbGRzLmZpZWxkLmRlc2NyaXB0aW9ufX08L3NtYWxsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxyXG48L2Zvcm0+Il19
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9lbnRyeS9lbnRyeS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2VudHJ5L2VudHJ5LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQU92RSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDO1FBQ1EsT0FBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQVd2RCxZQUFZO1FBQ1osWUFBTyxHQUFRLEVBQUUsQ0FBQztRQStCbEIsTUFBTTtRQUNOLGlCQUFZLEdBQVUsRUFBRSxDQUFDO0lBOUNWLENBQUM7SUFNaEIsSUFDVyxNQUFNLENBQUMsQ0FBTTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUlELElBQ1csTUFBTSxDQUFDLENBQU07UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FB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aEIsS0FBSztnQkFRSyxlQUFlO3NCQUR6QixLQUFLO2dCQU9LLFFBQVE7c0JBRGxCLEtBQUs7Z0JBT0ssT0FBTztzQkFEakIsS0FBSztnQkFPc0MsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFbnRyeUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2VudHJpZXMnO1xuaW1wb3J0IHsgRW50cnlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9lbnRyaWVzL2VudHJ5LXN0YXR1cy5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWVudHJ5LWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50cnktY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudHJ5LWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRW50cnlDb250cm9sQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoKSB7fVxuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcbiAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2UgPSBpbmplY3QoRW50cnlBZG1pblNlcnZpY2UpO1xuXG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfZW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5KHY6IGFueSkge1xuICAgIHRoaXMuX2VudGl0eSA9IHY7XG5cbiAgICBpZiAodikgdGhpcy5kYXRhTG9hZGVkKCk7XG4gIH1cblxuICAvKirlrZfmrrXphY3nva7liJfooaggKi9cbiAgX2ZpZWxkczogYW55ID0gJyc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmllbGRzKHY6IGFueSkge1xuICAgIHRoaXMuX2ZpZWxkcyA9IHY7XG4gIH1cblxuICAvKirniLbnuqflrZfmrrXlkI3np7DvvIznlKjkuo7kuLrooajljZXorr7nva7mjqfku7botYvlgLwgKi9cbiAgX3BhcmVudEZpbGVkTmFtZTogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhcmVudEZpbGVkTmFtZSh2OiBhbnkpIHtcbiAgICB0aGlzLl9wYXJlbnRGaWxlZE5hbWUgPSB2O1xuICB9XG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfc2VsZWN0ZWQ6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHYgfHwgW107XG4gIH1cbiAgLyoq6K+t6KiAICovXG4gIF9jdWx0dXJlOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY3VsdHVyZSh2OiBhbnkpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fY3VsdHVyZSA9IHY7XG4gICAgICAvLyB0aGlzLmRhdGFMb2FkZWQoKVxuICAgIH1cbiAgfVxuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGV4dHJhUHJvcGVydGllczogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiAqL1xuICBsaXN0T2ZPcHRpb246IGFueVtdID0gW107XG4gIGFzeW5jIGRhdGFMb2FkZWQoKSB7XG4gICAgaWYgKHRoaXMuX2ZpZWxkcyAmJiB0aGlzLl9lbnRpdHkgJiYgdGhpcy5fcGFyZW50RmlsZWROYW1lICYmIHRoaXMuX2N1bHR1cmUpIHtcbiAgICAgIGF3YWl0IHRoaXMuQWZ0ZXJJbml0KCk7XG4gICAgICBhd2FpdCB0aGlzLmdldEVudHJ5QXNzaWduTGlzdCgpO1xuICAgICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgQWZ0ZXJJbml0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgbGV0IFZhbGlkYXRvcnNBcnJheSA9IFtdO1xuICAgICAgaWYgKHRoaXMuX2ZpZWxkcy5yZXF1aXJlZCkge1xuICAgICAgICBWYWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIH1cbiAgICAgIGxldCBuZXdDb250cm9sID0gdGhpcy5mYi5jb250cm9sKHRoaXMuX3NlbGVjdGVkLCBWYWxpZGF0b3JzQXJyYXkpO1xuICAgICAgbGV0IGV4dHJhUHJvcGVydGllcyA9IHRoaXMuX2VudGl0eS5nZXQodGhpcy5fcGFyZW50RmlsZWROYW1lKSBhcyBGb3JtR3JvdXA7XG4gICAgICBleHRyYVByb3BlcnRpZXMuc2V0Q29udHJvbCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSwgbmV3Q29udHJvbCk7XG4gICAgICByZXNvbHZlKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoq6I635Y+W5a+55bqU55qE5p2h55uuICovXG4gIGdldEVudHJ5QXNzaWduTGlzdChmaWx0ZXIgPSAnJykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2VcbiAgICAgICAgLmdldExpc3Qoe1xuICAgICAgICAgIGN1bHR1cmU6IHRoaXMuX2N1bHR1cmUsXG4gICAgICAgICAgc2VjdGlvbklkOiB0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5LlNlY3Rpb25JZCddLFxuICAgICAgICAgIHNraXBDb3VudDogMCxcbiAgICAgICAgICBtYXhSZXN1bHRDb3VudDogMzAsXG4gICAgICAgICAgc3RhdHVzOiBFbnRyeVN0YXR1cy5QdWJsaXNoZWQsXG4gICAgICAgICAgZmlsdGVyOiBmaWx0ZXIsXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmxpc3RPZk9wdGlvbiA9IHJlcy5pdGVtcztcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiAqL1xuICBhc3luYyBTZWxlY3RDaGFuZ2UoZXZlbnQpIHtcbiAgICBhd2FpdCB0aGlzLmdldEVudHJ5QXNzaWduTGlzdChldmVudCk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX2VudGl0eVwiPlxyXG4gICAgPGRpdiBbZm9ybUdyb3VwTmFtZV09XCJfcGFyZW50RmlsZWROYW1lXCIgY2xhc3M9XCJlbnRyeS1jb250cm9sLXBhZ2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgKm5nSWY9XCJfZmllbGRzLmRpc3BsYXlOYW1lXCI+e3sgX2ZpZWxkcy5kaXNwbGF5TmFtZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddOyBlbHNlIGVsc2VUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG56LXNlbGVjdCBbbnpNYXhUYWdDb3VudF09XCI1XCIgKG56T25TZWFyY2gpPVwiU2VsZWN0Q2hhbmdlKCRldmVudClcIiBuelNob3dTZWFyY2ggIG56TW9kZT1cIm11bHRpcGxlXCIgIFtuelBsYWNlSG9sZGVyXT1cIl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5LlBsYWNlaG9sZGVyJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInt7X2ZpZWxkcy5maWVsZC5uYW1lfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG56LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0T2ZPcHRpb25cIiBbbnpMYWJlbF09XCJpdGVtLnRpdGxlXCIgW256VmFsdWVdPVwiaXRlbS5pZFwiPjwvbnotb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbnotc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuei1zZWxlY3QgbnpTaG93U2VhcmNoIChuek9uU2VhcmNoKT1cIlNlbGVjdENoYW5nZSgkZXZlbnQpXCIgW256TWF4TXVsdGlwbGVDb3VudF09XCIxXCIgIG56TW9kZT1cIm11bHRpcGxlXCIgW256UGxhY2VIb2xkZXJdPVwiX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvblsnRW50cnkuUGxhY2Vob2xkZXInXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwie3tfZmllbGRzLmZpZWxkLm5hbWV9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bnotb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RPZk9wdGlvblwiIFtuekxhYmVsXT1cIml0ZW0udGl0bGVcIiBbbnpWYWx1ZV09XCJpdGVtLmlkXCI+PC9uei1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uei1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkIGQtYmxvY2tcIiAqbmdJZj1cIl9maWVsZHMuZmllbGQuZGVzY3JpcHRpb25cIj57e19maWVsZHMuZmllbGQuZGVzY3JpcHRpb259fTwvc21hbGw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XHJcbjwvZm9ybT4iXX0=
|
|
@@ -191,11 +191,11 @@ export class MatrixConfigComponent {
|
|
|
191
191
|
FieldnameInput.patchValue(pinyin);
|
|
192
192
|
}
|
|
193
193
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: MatrixConfigComponent, deps: [{ token: i1.FormBuilder }, { token: i2.CmsApiService }, { token: i2.FieldAbstractsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
194
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: MatrixConfigComponent, selector: "df-matrix-config", inputs: { type: "type", selected: "selected", Entity: "Entity" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }, { propertyName: "matrixModalModalSubmit", first: true, predicate: ["matrixModalModalSubmit"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::::FormControl:Matrix' | abpLocalization}}</label>\n <div class=\"row\">\n <div class=\"col-md-3\">\n <div class=\"list-group\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::MatrixBlockType' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixBlockType()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixBlockChange(i)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"i===selectMatrixBlockIndex\">\n <div>\n <div>{{item.value.displayName}}</div>\n <div>{{item.value.name}}</div>\n </div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-light btn-sm\" id=\"dropdownBasic1\"\n style=\"z-index: 8;\" ngbDropdownToggle></button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\" style=\"z-index: 9;\">\n <button ngbDropdownItem\n (click.stop)=\"EditMatrixBlock(item.value)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"DeleteMatrixBlock(i)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"list-group\" *ngIf=\"MatrixBlockTypes?.controls.length>0\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::Fields' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixField()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <ng-container *ngIf=\"i === selectMatrixBlockIndex\">\n <ng-container *ngFor=\"let el of item.controls['fields'].controls;let fi =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixFieldChange(i,fi)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"fi===selectMatrixFieldIndex\">\n <div>\n <div>{{el.value.displayName}}</div>\n <div>{{el.value.name}}</div>\n </div>\n <button type=\"button\"\n (click.stop)=\"deleteMatrixField(item.controls['fields'],fi)\"\n class=\"btn btn-sm btn-li\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-6\" formArrayName=\"MatrixBlockTypes\">\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <div [formGroupName]=\"i\" [hidden]=\"i !== selectMatrixBlockIndex\">\n <div formArrayName=\"fields\">\n <ng-container *ngFor=\"let itemf of item.controls['fields'].controls;let fi =index\">\n <div [formGroupName]=\"fi\" [hidden]=\"fi !== selectMatrixFieldIndex\">\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"MatrixFieldDisplayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n <small class=\"form-text text-muted\">\n {{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"setConfigComponent()\">\n <ng-container *ngFor=\"let itemC of _FieldControlGroup;let i =index\">\n <option [value]=\"itemC.name\">{{itemC.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"itemf.value.formControlName&&itemf\">\n <df-dynamic [type]=\"itemf.value.formControlName\" \n [selected]=\"_selected?_selected.formConfiguration?.MatrixBlockTypes[i]?.fields[fi]:''\" [entity]=\"itemf\"></df-dynamic>\n \n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n\n<abp-modal [(visible)]=\"matrixModalOpen\" [busy]=\"modalBusy\" (visibleChange)=\"matrixModalVisibleChange($event)\" >\n <ng-template #abpHeader>\n <h3>{{isMatrixEdit?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"matrixModalForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"matrixModalForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #matrixModalModalSubmit style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"displayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"name\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"matrixModalModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i4.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: i4.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i6.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i6.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i6.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i7.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i7.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i7.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i7.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i7.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i8.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "entity", "culture", "parentFiledName", "fields"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
194
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: MatrixConfigComponent, selector: "df-matrix-config", inputs: { type: "type", selected: "selected", Entity: "Entity" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }, { propertyName: "matrixModalModalSubmit", first: true, predicate: ["matrixModalModalSubmit"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::::FormControl:Matrix' | abpLocalization}}</label>\n <div class=\"row\">\n <div class=\"col-md-3\">\n <div class=\"list-group\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::MatrixBlockType' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixBlockType()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixBlockChange(i)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"i===selectMatrixBlockIndex\">\n <div>\n <div>{{item.value.displayName}}</div>\n <div>{{item.value.name}}</div>\n </div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-light btn-sm\" id=\"dropdownBasic1\"\n style=\"z-index: 8;\" ngbDropdownToggle></button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\" style=\"z-index: 9;\">\n <button ngbDropdownItem\n (click.stop)=\"EditMatrixBlock(item.value)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"DeleteMatrixBlock(i)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"list-group\" *ngIf=\"MatrixBlockTypes?.controls.length>0\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::Fields' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixField()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <ng-container *ngIf=\"i === selectMatrixBlockIndex\">\n <ng-container *ngFor=\"let el of item.controls['fields'].controls;let fi =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixFieldChange(i,fi)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"fi===selectMatrixFieldIndex\">\n <div>\n <div>{{el.value.displayName}}</div>\n <div>{{el.value.name}}</div>\n </div>\n <button type=\"button\"\n (click.stop)=\"deleteMatrixField(item.controls['fields'],fi)\"\n class=\"btn btn-sm btn-li\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-6\" formArrayName=\"MatrixBlockTypes\">\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <div [formGroupName]=\"i\" [hidden]=\"i !== selectMatrixBlockIndex\">\n <div formArrayName=\"fields\">\n <ng-container *ngFor=\"let itemf of item.controls['fields'].controls;let fi =index\">\n <div [formGroupName]=\"fi\" [hidden]=\"fi !== selectMatrixFieldIndex\">\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"MatrixFieldDisplayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n <small class=\"form-text text-muted d-block\">\n {{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"setConfigComponent()\">\n <ng-container *ngFor=\"let itemC of _FieldControlGroup;let i =index\">\n <option [value]=\"itemC.name\">{{itemC.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"itemf.value.formControlName&&itemf\">\n <df-dynamic [type]=\"itemf.value.formControlName\" \n [selected]=\"_selected?_selected.formConfiguration?.MatrixBlockTypes[i]?.fields[fi]:''\" [entity]=\"itemf\"></df-dynamic>\n \n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n\n<abp-modal [(visible)]=\"matrixModalOpen\" [busy]=\"modalBusy\" (visibleChange)=\"matrixModalVisibleChange($event)\" >\n <ng-template #abpHeader>\n <h3>{{isMatrixEdit?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"matrixModalForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"matrixModalForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #matrixModalModalSubmit style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"displayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"name\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"matrixModalModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i4.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: i4.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i6.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i6.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i6.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i7.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i7.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i7.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i7.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i7.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i8.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
195
195
|
}
|
|
196
196
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: MatrixConfigComponent, decorators: [{
|
|
197
197
|
type: Component,
|
|
198
|
-
args: [{ selector: 'df-matrix-config', template: "<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::::FormControl:Matrix' | abpLocalization}}</label>\n <div class=\"row\">\n <div class=\"col-md-3\">\n <div class=\"list-group\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::MatrixBlockType' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixBlockType()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixBlockChange(i)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"i===selectMatrixBlockIndex\">\n <div>\n <div>{{item.value.displayName}}</div>\n <div>{{item.value.name}}</div>\n </div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-light btn-sm\" id=\"dropdownBasic1\"\n style=\"z-index: 8;\" ngbDropdownToggle></button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\" style=\"z-index: 9;\">\n <button ngbDropdownItem\n (click.stop)=\"EditMatrixBlock(item.value)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"DeleteMatrixBlock(i)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"list-group\" *ngIf=\"MatrixBlockTypes?.controls.length>0\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::Fields' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixField()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <ng-container *ngIf=\"i === selectMatrixBlockIndex\">\n <ng-container *ngFor=\"let el of item.controls['fields'].controls;let fi =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixFieldChange(i,fi)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"fi===selectMatrixFieldIndex\">\n <div>\n <div>{{el.value.displayName}}</div>\n <div>{{el.value.name}}</div>\n </div>\n <button type=\"button\"\n (click.stop)=\"deleteMatrixField(item.controls['fields'],fi)\"\n class=\"btn btn-sm btn-li\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-6\" formArrayName=\"MatrixBlockTypes\">\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <div [formGroupName]=\"i\" [hidden]=\"i !== selectMatrixBlockIndex\">\n <div formArrayName=\"fields\">\n <ng-container *ngFor=\"let itemf of item.controls['fields'].controls;let fi =index\">\n <div [formGroupName]=\"fi\" [hidden]=\"fi !== selectMatrixFieldIndex\">\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"MatrixFieldDisplayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n <small class=\"form-text text-muted\">\n {{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"setConfigComponent()\">\n <ng-container *ngFor=\"let itemC of _FieldControlGroup;let i =index\">\n <option [value]=\"itemC.name\">{{itemC.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"itemf.value.formControlName&&itemf\">\n <df-dynamic [type]=\"itemf.value.formControlName\" \n [selected]=\"_selected?_selected.formConfiguration?.MatrixBlockTypes[i]?.fields[fi]:''\" [entity]=\"itemf\"></df-dynamic>\n \n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n\n<abp-modal [(visible)]=\"matrixModalOpen\" [busy]=\"modalBusy\" (visibleChange)=\"matrixModalVisibleChange($event)\" >\n <ng-template #abpHeader>\n <h3>{{isMatrixEdit?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"matrixModalForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"matrixModalForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #matrixModalModalSubmit style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"displayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"name\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"matrixModalModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>" }]
|
|
198
|
+
args: [{ selector: 'df-matrix-config', template: "<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'Cms::::FormControl:Matrix' | abpLocalization}}</label>\n <div class=\"row\">\n <div class=\"col-md-3\">\n <div class=\"list-group\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::MatrixBlockType' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixBlockType()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixBlockChange(i)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"i===selectMatrixBlockIndex\">\n <div>\n <div>{{item.value.displayName}}</div>\n <div>{{item.value.name}}</div>\n </div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-light btn-sm\" id=\"dropdownBasic1\"\n style=\"z-index: 8;\" ngbDropdownToggle></button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\" style=\"z-index: 9;\">\n <button ngbDropdownItem\n (click.stop)=\"EditMatrixBlock(item.value)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"DeleteMatrixBlock(i)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </button>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"list-group\" *ngIf=\"MatrixBlockTypes?.controls.length>0\">\n <li class=\"list-group-item d-flex align-items-center justify-content-between\"\n aria-current=\"true\">\n {{'Cms::Fields' | abpLocalization}}\n <button class=\"btn btn-light btn-sm p-0\" (click.stop)=\"addMatrixField()\">\n <i class=\"fas fa-plus-circle p-1\"></i>\n </button>\n </li>\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <ng-container *ngIf=\"i === selectMatrixBlockIndex\">\n <ng-container *ngFor=\"let el of item.controls['fields'].controls;let fi =index\">\n <button type=\"button\" (click.stop)=\"selectMatrixFieldChange(i,fi)\"\n class=\"list-group-item d-flex align-items-center justify-content-between list-group-item-action \"\n [class.active]=\"fi===selectMatrixFieldIndex\">\n <div>\n <div>{{el.value.displayName}}</div>\n <div>{{el.value.name}}</div>\n </div>\n <button type=\"button\"\n (click.stop)=\"deleteMatrixField(item.controls['fields'],fi)\"\n class=\"btn btn-sm btn-li\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-6\" formArrayName=\"MatrixBlockTypes\">\n <ng-container *ngFor=\"let item of MatrixBlockTypes.controls;let i =index\">\n <div [formGroupName]=\"i\" [hidden]=\"i !== selectMatrixBlockIndex\">\n <div formArrayName=\"fields\">\n <ng-container *ngFor=\"let itemf of item.controls['fields'].controls;let fi =index\">\n <div [formGroupName]=\"fi\" [hidden]=\"fi !== selectMatrixFieldIndex\">\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"MatrixFieldDisplayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"name\">{{'DigniteAbpForms::FieldName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n <small class=\"form-text text-muted d-block\">\n {{'DigniteAbpForms::FieldNameHelpText' | abpLocalization}}</small>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\"\n for=\"formControlName\">{{'Cms::FieldType' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"setConfigComponent()\">\n <ng-container *ngFor=\"let itemC of _FieldControlGroup;let i =index\">\n <option [value]=\"itemC.name\">{{itemC.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <ng-container *ngIf=\"itemf.value.formControlName&&itemf\">\n <df-dynamic [type]=\"itemf.value.formControlName\" \n [selected]=\"_selected?_selected.formConfiguration?.MatrixBlockTypes[i]?.fields[fi]:''\" [entity]=\"itemf\"></df-dynamic>\n \n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n\n<abp-modal [(visible)]=\"matrixModalOpen\" [busy]=\"modalBusy\" (visibleChange)=\"matrixModalVisibleChange($event)\" >\n <ng-template #abpHeader>\n <h3>{{isMatrixEdit?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"matrixModalForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"matrixModalForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #matrixModalModalSubmit style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"displayName\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"displayNameInputBlur($event)\">\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\" for=\"name\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"matrixModalModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>" }]
|
|
199
199
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.CmsApiService }, { type: i2.FieldAbstractsService }], propDecorators: { type: [{
|
|
200
200
|
type: Input
|
|
201
201
|
}], selected: [{
|
|
@@ -209,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
209
209
|
type: ViewChild,
|
|
210
210
|
args: ['matrixModalModalSubmit', { static: false }]
|
|
211
211
|
}] } });
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LWNvbmZpZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9tYXRyaXgvbWF0cml4LWNvbmZpZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9tYXRyaXgvbWF0cml4LWNvbmZpZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQWUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7QUFRakUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUNVLEVBQWUsRUFDZixjQUE2QixFQUM3QixzQkFBNkM7UUFGN0MsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUF3RXZELFlBQVk7UUFDWixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxnQkFBZ0I7UUFDaEIsc0JBQWlCLEdBQVEsS0FBSyxDQUFDO1FBRS9CLHlCQUF5QjtRQUN6QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBUTNCLGVBQWU7UUFDZiwyQkFBc0IsR0FBUSxDQUFDLENBQUM7UUFFaEMscUJBQXFCO1FBQ3JCLDJCQUFzQixHQUFRLENBQUMsQ0FBQztJQXpGN0IsQ0FBQztJQU1KLElBQ1csSUFBSSxDQUFDLENBQU07UUFD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TSxFQUFFLElBQUksRUFBRTtnQkF1RGMsc0JBQXNCO3NCQUE3RSxTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdHJpeENvbmZpZywgTWF0cml4SXRlbUNvbmZpZyB9IGZyb20gJy4vbWF0cml4LWNvbmZpZyc7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlLCBGaWVsZEFic3RyYWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLW1hdHJpeC1jb25maWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWF0cml4LWNvbmZpZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hdHJpeC1jb25maWcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0cml4Q29uZmlnQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIF9GaWVsZEFic3RyYWN0c1NlcnZpY2U6IEZpZWxkQWJzdHJhY3RzU2VydmljZVxuICApIHt9XG5cbiAgLyoq6KGo5Y2V5o6n5Lu257uEICovXG4gIF9GaWVsZENvbnRyb2xHcm91cDogYW55W107XG4gIC8qKuihqOWNleaOp+S7tuexu+WeiyAqL1xuICBfdHlwZTogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHR5cGUodjogYW55KSB7XG4gICAgdGhpcy5fdHlwZSA9IHY7XG4gIH1cblxuICAvKirpgInmi6nnmoTooajljZXkv6Hmga8gKi9cbiAgX3NlbGVjdGVkOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQodjogYW55KSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkID0gdjtcbiAgICB9XG4gIH1cbiAgICAvKirooajljZXlrp7kvZMgKi9cbiAgICBfRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IEVudGl0eSh2OiBGb3JtR3JvdXApIHtcbiAgICAgIHRoaXMuX0VudGl0eSA9IHY7XG4gICAgICB0aGlzLmRhdGFMb2FkZWQoKTtcbiAgICB9XG4gIFxuXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgYXN5bmMgZGF0YUxvYWRlZCgpIHtcbiAgICBpZiAodGhpcy5fRW50aXR5ICYmIHRoaXMuX3R5cGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuQWZ0ZXJJbml0KCk7XG4gICAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBBZnRlckluaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9GaWVsZENvbnRyb2xHcm91cCA9IHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRFeGNsdWRlQXNzaWduQ29udHJvbCh0aGlzLl90eXBlKTtcbiAgICAgIHRoaXMuX0VudGl0eS5zZXRDb250cm9sKCdmb3JtQ29uZmlndXJhdGlvbicsIHRoaXMuZmIuZ3JvdXAobmV3IE1hdHJpeENvbmZpZygpKSk7XG4gICAgICBhd2FpdCB0aGlzLnNldFNlbGVjdFZhbHVlKCk7XG4gICAgICB0aGlzLmZvcm1Db25maWd1cmF0aW9uLnBhdGNoVmFsdWUodGhpcy5fc2VsZWN0ZWQuZm9ybUNvbmZpZ3VyYXRpb24pO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldFNlbGVjdFZhbHVlKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkICYmIHRoaXMuX3NlbGVjdGVkLmZvcm1Db250cm9sTmFtZSA9PSB0aGlzLl90eXBlKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkLmZvcm1Db25maWd1cmF0aW9uWydNYXRyaXhCbG9ja1R5cGVzJ10uZm9yRWFjaCgoZWwsIGluZGV4KSA9PiB7XG4gICAgICAgICAgdGhpcy5hZGRNYXRyaXhCbG9ja1R5cGVJdGVtKGVsKTtcbiAgICAgICAgICBlbC5maWVsZHMuZm9yRWFjaCgoZWxmLCBpbmRleGYpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWRkTWF0cml4RmllbGRJdGVtKGVsZiwgaW5kZXgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKuiOt+WPluihqOWNlemFjee9riAqL1xuICBnZXQgZm9ybUNvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ2Zvcm1Db25maWd1cmF0aW9uJykgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgLyoq6I635Y+W6KGo5Y2V6YWN572u5LiL55qE55+p6Zi15Z2X6KGo5Y2V5pWw57uEICovXG4gIGdldCBNYXRyaXhCbG9ja1R5cGVzKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1Db25maWd1cmF0aW9uLmNvbnRyb2xzWydNYXRyaXhCbG9ja1R5cGVzJ10gYXMgRm9ybUFycmF5O1xuICB9XG5cbiAgLyoq5qih5oCB5qGGLeeKtuaAgSAqL1xuICBtYXRyaXhNb2RhbE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoq5qih5oCB5qGGLeaYr+WQpuato+WcqOe8lui+kSAqL1xuICBpc01hdHJpeE1vZGFsRWRpdDogYW55ID0gZmFsc2U7XG5cbiAgLyoq5qih5oCB5qGGLeeUqOS6juehruWumuaooeaAgeeahOe5geW/meeKtuaAgeaYr+WQpuS4uuecnyAqL1xuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKirmqKHmgIHmoYYt6KGo5Y2VICovXG4gIG1hdHJpeE1vZGFsRm9ybTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKuihqOWNleaOp+S7tuaooeadvy3nlKjkuo7lnKhmb3Jt5aSW5o+Q5Lqkc3VibWl0ICovXG4gIEBWaWV3Q2hpbGQoJ21hdHJpeE1vZGFsTW9kYWxTdWJtaXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgbWF0cml4TW9kYWxNb2RhbFN1Ym1pdDogRWxlbWVudFJlZjtcblxuICAvKirnn6npmLXlnZct6YCJ5oup55qE5LiL5qCHICovXG4gIHNlbGVjdE1hdHJpeEJsb2NrSW5kZXg6IGFueSA9IDA7XG5cbiAgLyoq55+p6Zi15Z2XLemAieaLqeeahOefqemYteS4i+Wtl+auteeahOS4i+aghyAqL1xuICBzZWxlY3RNYXRyaXhGaWVsZEluZGV4OiBhbnkgPSAwO1xuXG4gIC8qKuaooeaAgeahhi3nirbmgIHmlLnlj5ggKi9cbiAgbWF0cml4TW9kYWxWaXNpYmxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgdGhpcy5pc01hdHJpeE1vZGFsRWRpdCA9IGZhbHNlO1xuICAgICAgdGhpcy5tYXRyaXhNb2RhbEZvcm0gPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLyoq55+p6Zi15Z2XLS3mlrDlop4t5omT5byA5qih5oCB5qGGICovXG4gIGFkZE1hdHJpeEJsb2NrVHlwZSgpIHtcbiAgICB0aGlzLm1hdHJpeE1vZGFsRm9ybSA9IHRoaXMuZmIuZ3JvdXAobmV3IE1hdHJpeEl0ZW1Db25maWcoKSk7XG4gICAgdGhpcy5tYXRyaXhNb2RhbE9wZW4gPSB0cnVlO1xuICB9XG5cbiAgLyoq5qih5oCB5qGGLS3nn6npmLXooajljZXkv53lrZjmj5DkuqQgKi9cbiAgY3JlYXRlT3JFZGl0U2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLm1hdHJpeE1vZGFsRm9ybS52YWx1ZTtcbiAgICBpZiAoIXRoaXMubWF0cml4TW9kYWxGb3JtLnZhbGlkKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaXNNYXRyaXhNb2RhbEVkaXQpIHtcbiAgICAgIGxldCBNYXRyaXhCbG9ja1R5cGVzSXRlbSA9IHRoaXMuTWF0cml4QmxvY2tUeXBlcy5hdCh0aGlzLnNlbGVjdE1hdHJpeEJsb2NrSW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgICAgIE1hdHJpeEJsb2NrVHlwZXNJdGVtLnBhdGNoVmFsdWUoe1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZE1hdHJpeEJsb2NrVHlwZUl0ZW0oaW5wdXQpO1xuICAgIH1cbiAgICB0aGlzLm1hdHJpeE1vZGFsT3BlbiA9IGZhbHNlO1xuICB9XG4gIC8qKuaWsOWinuefqemYteWdly3lkJHmlbDnu4TooajljZXkuK3lop7liqDpobkgKi9cbiAgYWRkTWF0cml4QmxvY2tUeXBlSXRlbShpbnB1dCkge1xuICAgIHRoaXMuTWF0cml4QmxvY2tUeXBlcy5wdXNoKFxuICAgICAgbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGRpc3BsYXlOYW1lOiBuZXcgRm9ybUNvbnRyb2woaW5wdXQuZGlzcGxheU5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2woaW5wdXQubmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGZpZWxkczogbmV3IEZvcm1BcnJheShbXSksXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgLyoq57yW6L6R55+p6Zi15Z2XICovXG4gIEVkaXRNYXRyaXhCbG9jayhpbnB1dCkge1xuICAgIHRoaXMubWF0cml4TW9kYWxGb3JtID0gdGhpcy5mYi5ncm91cChuZXcgTWF0cml4SXRlbUNvbmZpZygpKTtcbiAgICB0aGlzLm1hdHJpeE1vZGFsRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIC4uLmlucHV0LFxuICAgIH0pO1xuICAgIHRoaXMubWF0cml4TW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmlzTWF0cml4TW9kYWxFZGl0ID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKuWIoOmZpOefqemYteWdlyAqL1xuICBEZWxldGVNYXRyaXhCbG9jayhpbmRleCkge1xuICAgIHRoaXMuTWF0cml4QmxvY2tUeXBlcy5yZW1vdmVBdChpbmRleCk7XG4gIH1cblxuICAvKirnn6npmLXlnZct6YCJ5oupICovXG4gIHNlbGVjdE1hdHJpeEJsb2NrQ2hhbmdlKGluZGV4KSB7XG4gICAgdGhpcy5zZWxlY3RNYXRyaXhCbG9ja0luZGV4ID0gaW5kZXg7XG4gIH1cblxuICAvKirnn6npmLXlrZfmrrUt5paw5aKeICovXG4gIGFkZE1hdHJpeEZpZWxkKCkge1xuICAgIHRoaXMuYWRkTWF0cml4RmllbGRJdGVtKCcnLCB0aGlzLnNlbGVjdE1hdHJpeEJsb2NrSW5kZXgpO1xuICAgIGxldCBNYXRyaXhCbG9ja1R5cGVzSXRlbUZvcm0gPSB0aGlzLk1hdHJpeEJsb2NrVHlwZXMuYXQoXG4gICAgICB0aGlzLnNlbGVjdE1hdHJpeEJsb2NrSW5kZXhcbiAgICApIGFzIEZvcm1Hcm91cDtcbiAgICBsZXQgTWF0cml4RmllbGRJdGVtRm9ybSA9IE1hdHJpeEJsb2NrVHlwZXNJdGVtRm9ybS5nZXQoJ2ZpZWxkcycpIGFzIEZvcm1BcnJheTtcbiAgICB0aGlzLnNlbGVjdE1hdHJpeEZpZWxkQ2hhbmdlKDAsIE1hdHJpeEZpZWxkSXRlbUZvcm0ubGVuZ3RoIC0gMSk7XG4gIH1cbiAgLyoq55+p6Zi15a2X5q61LeaWsOWinuefqemYteWtl+autemhuSAqL1xuICBhZGRNYXRyaXhGaWVsZEl0ZW0oaW5wdXQ6IGFueSA9ICcnLCBzZWxlY3RNYXRyaXhCbG9ja0luZGV4KSB7XG4gICAgLyoq55+p6Zi15LiL5qCH55qE55+p6Zi16aG5Rm9ybSAqL1xuICAgIGxldCBNYXRyaXhCbG9ja1R5cGVzSXRlbUZvcm0gPSB0aGlzLk1hdHJpeEJsb2NrVHlwZXMuYXQoc2VsZWN0TWF0cml4QmxvY2tJbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIGxldCBNYXRyaXhGaWVsZEl0ZW1Gb3JtID0gTWF0cml4QmxvY2tUeXBlc0l0ZW1Gb3JtLmdldCgnZmllbGRzJykgYXMgRm9ybUFycmF5O1xuICAgIE1hdHJpeEZpZWxkSXRlbUZvcm0ucHVzaChcbiAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAvKirlrZfmrrXlkI3np7AgRGlzcGxheSBuYW1lIG9mIHRoaXMgZmllbGQgKi9cbiAgICAgICAgZGlzcGxheU5hbWU6IFtpbnB1dC5kaXNwbGF5TmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgLyoq5a2X5q615ZSv5LiA5ZCN56ewIFVuaXF1ZSBOYW1lKi9cbiAgICAgICAgbmFtZTogW2lucHV0Lm5hbWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgIC8qKuaPj+i/sCDor7TmmI4gKi9cbiAgICAgICAgZGVzY3JpcHRpb246IFtpbnB1dC5kZXNjcmlwdGlvbiwgW11dLFxuICAgICAgICAvKipGaWVsZFR5cGXlrZfmrrXnsbvlnosg6KGo5Y2V5o6n5Lu25ZCN56ewICovXG4gICAgICAgIGZvcm1Db250cm9sTmFtZTogW2lucHV0LmZvcm1Db250cm9sTmFtZSB8fCAnVGV4dEVkaXQnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAvL+WKqOaAgeihqOWNlemFjee9rlxuICAgICAgICBmb3JtQ29uZmlndXJhdGlvbjogbmV3IEZvcm1Hcm91cCh7fSksXG4gICAgICB9KVxuICAgICk7XG4gICAgLy9cbiAgfVxuXG4gIC8qKuWIoOmZpOefqemYteWtl+autemhuSAqL1xuICBkZWxldGVNYXRyaXhGaWVsZChNYXRyaXhGaWVsZEZvcm0sIGluZGV4KSB7XG4gICAgTWF0cml4RmllbGRGb3JtLnJlbW92ZUF0KGluZGV4KTtcbiAgICB0aGlzLnNlbGVjdE1hdHJpeEZpZWxkSW5kZXggPSAwO1xuICB9XG5cbiAgLyoq55+p6Zi15a2X5q61LemAieaLqSAqL1xuICBzZWxlY3RNYXRyaXhGaWVsZENoYW5nZShNYXRyaXhCbG9ja0luZGV4LCBNYXRyaXhGaWVsZEluZGV4KSB7XG4gICAgdGhpcy5zZWxlY3RNYXRyaXhGaWVsZEluZGV4ID0gTWF0cml4RmllbGRJbmRleDtcbiAgfVxuXG4gIGdldCBuYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF0cml4TW9kYWxGb3JtPy5nZXQoJ25hbWUnKTtcbiAgfVxuICBnZXQgRmllbGRuYW1lSW5wdXQoKSB7XG4gICAgbGV0IE1hdHJpeEJsb2NrVHlwZXNJdGVtRm9ybSA9IHRoaXMuTWF0cml4QmxvY2tUeXBlcy5hdChcbiAgICAgIHRoaXMuc2VsZWN0TWF0cml4QmxvY2tJbmRleFxuICAgICkgYXMgRm9ybUdyb3VwO1xuICAgIGxldCBNYXRyaXhGaWVsZEl0ZW1Gb3JtID0gTWF0cml4QmxvY2tUeXBlc0l0ZW1Gb3JtLmdldCgnZmllbGRzJykgYXMgRm9ybUFycmF5O1xuICAgIHJldHVybiBNYXRyaXhGaWVsZEl0ZW1Gb3JtLmF0KHRoaXMuc2VsZWN0TWF0cml4RmllbGRJbmRleCkuZ2V0KCduYW1lJyk7XG4gIH1cblxuICAvKirnn6npmLVkaXNwbGF5TmFtZUlucHV05a2X5q615aSx5Y6754Sm54K5ICovXG4gIGRpc3BsYXlOYW1lSW5wdXRCbHVyKGV2ZW50KSB7XG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSk7XG4gICAgbGV0IG5hbWVJbnB1dCA9IHRoaXMubmFtZUlucHV0O1xuICAgIGlmIChuYW1lSW5wdXQudmFsdWUpIHJldHVybjtcbiAgICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pO1xuICB9XG4gIC8qKuefqemYtWRpc3BsYXlOYW1lSW5wdXTlrZfmrrXlpLHljrvnhKbngrkgKi9cbiAgTWF0cml4RmllbGREaXNwbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBsZXQgcGlueWluID0gdGhpcy5fQ21zQXBpU2VydmljZS5jaGluZXNlVG9QaW55aW4odmFsdWUpO1xuICAgIGxldCBGaWVsZG5hbWVJbnB1dCA9IHRoaXMuRmllbGRuYW1lSW5wdXQ7XG4gICAgaWYgKEZpZWxkbmFtZUlucHV0LnZhbHVlKSByZXR1cm47XG4gICAgRmllbGRuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIl9FbnRpdHlcIj5cbiAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJmb3JtQ29uZmlndXJhdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6OjpGb3JtQ29udHJvbDpNYXRyaXgnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY3VycmVudD1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydDbXM6Ok1hdHJpeEJsb2NrVHlwZScgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBwLTBcIiAoY2xpY2suc3RvcCk9XCJhZGRNYXRyaXhCbG9ja1R5cGUoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzLWNpcmNsZSBwLTFcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBNYXRyaXhCbG9ja1R5cGVzLmNvbnRyb2xzO2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljay5zdG9wKT1cInNlbGVjdE1hdHJpeEJsb2NrQ2hhbmdlKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaT09PXNlbGVjdE1hdHJpeEJsb2NrSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3tpdGVtLnZhbHVlLmRpc3BsYXlOYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3tpdGVtLnZhbHVlLm5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtXCIgaWQ9XCJkcm9wZG93bkJhc2ljMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ6LWluZGV4OiA4O1wiIG5nYkRyb3Bkb3duVG9nZ2xlPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25CYXNpYzFcIiBzdHlsZT1cInotaW5kZXg6IDk7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiRWRpdE1hdHJpeEJsb2NrKGl0ZW0udmFsdWUpXCI+e3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJEZWxldGVNYXRyaXhCbG9jayhpKVwiPnt7J0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JvdXBcIiAqbmdJZj1cIk1hdHJpeEJsb2NrVHlwZXM/LmNvbnRyb2xzLmxlbmd0aD4wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jdXJyZW50PVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0Ntczo6RmllbGRzJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIHAtMFwiIChjbGljay5zdG9wKT1cImFkZE1hdHJpeEZpZWxkKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cy1jaXJjbGUgcC0xXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgTWF0cml4QmxvY2tUeXBlcy5jb250cm9scztsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaSA9PT0gc2VsZWN0TWF0cml4QmxvY2tJbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbCBvZiBpdGVtLmNvbnRyb2xzWydmaWVsZHMnXS5jb250cm9scztsZXQgZmkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2suc3RvcCk9XCJzZWxlY3RNYXRyaXhGaWVsZENoYW5nZShpLGZpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJmaT09PXNlbGVjdE1hdHJpeEZpZWxkSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7ZWwudmFsdWUuZGlzcGxheU5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7ZWwudmFsdWUubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiZGVsZXRlTWF0cml4RmllbGQoaXRlbS5jb250cm9sc1snZmllbGRzJ10sZmkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saVwiPnt7J0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiBmb3JtQXJyYXlOYW1lPVwiTWF0cml4QmxvY2tUeXBlc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIE1hdHJpeEJsb2NrVHlwZXMuY29udHJvbHM7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtmb3JtR3JvdXBOYW1lXT1cImlcIiBbaGlkZGVuXT1cImkgIT09IHNlbGVjdE1hdHJpeEJsb2NrSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJmaWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbWYgb2YgaXRlbS5jb250cm9sc1snZmllbGRzJ10uY29udHJvbHM7bGV0IGZpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbZm9ybUdyb3VwTmFtZV09XCJmaVwiIFtoaWRkZW5dPVwiZmkgIT09IHNlbGVjdE1hdHJpeEZpZWxkSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImRpc3BsYXlOYW1lXCI+e3snQ21zOjpEaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwiTWF0cml4RmllbGREaXNwbGF5TmFtZUlucHV0Qmx1cigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJuYW1lXCI+e3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZE5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0RpZ25pdGVBYnBGb3Jtczo6RmllbGROYW1lSGVscFRleHQnIHwgYWJwTG9jYWxpemF0aW9ufX08L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZGVzY3JpcHRpb25cIj57eydDbXM6OkRlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZm9ybUNvbnRyb2xOYW1lXCI+e3snQ21zOjpGaWVsZFR5cGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtQ29udHJvbE5hbWVcIiAoY2hhbmdlKT1cInNldENvbmZpZ0NvbXBvbmVudCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtQyBvZiBfRmllbGRDb250cm9sR3JvdXA7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbUMubmFtZVwiPnt7aXRlbUMuZGlzcGxheU5hbWV9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtZi52YWx1ZS5mb3JtQ29udHJvbE5hbWUmJml0ZW1mXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZi1keW5hbWljIFt0eXBlXT1cIml0ZW1mLnZhbHVlLmZvcm1Db250cm9sTmFtZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZD9fc2VsZWN0ZWQuZm9ybUNvbmZpZ3VyYXRpb24/Lk1hdHJpeEJsb2NrVHlwZXNbaV0/LmZpZWxkc1tmaV06JydcIiBbZW50aXR5XT1cIml0ZW1mXCI+PC9kZi1keW5hbWljPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGFicEluaXQpPVwic3VibWl0Y2xpY2s/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWNrKClcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCJcbiAgICAgICAgICAgICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cblxuXG5cbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJtYXRyaXhNb2RhbE9wZW5cIiBbYnVzeV09XCJtb2RhbEJ1c3lcIiAodmlzaWJsZUNoYW5nZSk9XCJtYXRyaXhNb2RhbFZpc2libGVDaGFuZ2UoJGV2ZW50KVwiID5cbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cbiAgICAgICAgPGgzPnt7aXNNYXRyaXhFZGl0PygnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbil9fTwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWF0cml4TW9kYWxGb3JtOyBlbHNlIGxvYWRlclJlZlwiPlxuICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJzaXRlcy1tb2RhbC1mb3JtXCIgI215Rm9ybT1cIm5nRm9ybVwiIFtmb3JtR3JvdXBdPVwibWF0cml4TW9kYWxGb3JtXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChzdWJtaXQpPVwiY3JlYXRlT3JFZGl0U2F2ZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgI21hdHJpeE1vZGFsTW9kYWxTdWJtaXQgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImRpc3BsYXlOYW1lXCI+e3snQ21zOjpEaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwiZGlzcGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJuYW1lXCI+e3snQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1hdHJpeE1vZGFsTW9kYWxTdWJtaXQubmF0aXZlRWxlbWVudC5jbGljaygpXCI+e3snQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPiJdfQ==
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LWNvbmZpZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9tYXRyaXgvbWF0cml4LWNvbmZpZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9tYXRyaXgvbWF0cml4LWNvbmZpZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQWUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7QUFRakUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUNVLEVBQWUsRUFDZixjQUE2QixFQUM3QixzQkFBNkM7UUFGN0MsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUF3RXZELFlBQVk7UUFDWixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxnQkFBZ0I7UUFDaEIsc0JBQWlCLEdBQVEsS0FBSyxDQUFDO1FBRS9CLHlCQUF5QjtRQUN6QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBUTNCLGVBQWU7UUFDZiwyQkFBc0IsR0FBUSxDQUFDLENBQUM7UUFFaEMscUJBQXFCO1FBQ3JCLDJCQUFzQixHQUFRLENBQUMsQ0FBQztJQXpGN0IsQ0FBQztJQU1KLElBQ1csSUFBSSxDQUFDLENBQU07UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUlELElBQ1csUUFBUSxDQUFDLENBQU07UUFDeEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBR0MsSUFDVyxNQUFNLENBQUMsQ0FBWTtRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUtILEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEYsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDcEUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQ3pFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDaEMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7d0JBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3RDLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtJQUNaLElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQWMsQ0FBQztJQUM1RCxDQUFDO0lBRUQscUJBQXFCO0lBQ3JCLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBYyxDQUFDO0lBQzFFLENBQUM7SUFzQkQsY0FBYztJQUNkLHdCQUF3QixDQUFDLEtBQUs7UUFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztZQUNqQyxPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixnQkFBZ0I7UUFDZCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUN4QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLElBQUksb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQWMsQ0FBQztZQUM5RixvQkFBb0IsQ0FBQyxVQUFVLENBQUM7Z0JBQzlCLEdBQUcsS0FBSzthQUNULENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBQ0QscUJBQXFCO0lBQ3JCLHNCQUFzQixDQUFDLEtBQUs7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDeEIsSUFBSSxTQUFTLENBQUM7WUFDWixXQUFXLEVBQUUsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BFLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdEQsTUFBTSxFQUFFLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQztTQUMxQixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFDRCxXQUFXO0lBQ1gsZUFBZSxDQUFDLEtBQUs7UUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQztZQUM5QixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO0lBQ1gsaUJBQWlCLENBQUMsS0FBSztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZO0lBQ1osdUJBQXVCLENBQUMsS0FBSztRQUMzQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhO0lBQ2IsY0FBYztRQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDekQsSUFBSSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUNyRCxJQUFJLENBQUMsc0JBQXNCLENBQ2YsQ0FBQztRQUNmLElBQUksbUJBQW1CLEdBQUcsd0JBQXdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBYyxDQUFDO1FBQzlFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsUUFBYSxFQUFFLEVBQUUsc0JBQXNCO1FBQ3hELGtCQUFrQjtRQUNsQixJQUFJLHdCQUF3QixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQWMsQ0FBQztRQUM3RixJQUFJLG1CQUFtQixHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQWMsQ0FBQztRQUM5RSxtQkFBbUIsQ0FBQyxJQUFJLENBQ3RCLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ1oscUNBQXFDO1lBQ3JDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkQsdUJBQXVCO1lBQ3ZCLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsV0FBVztZQUNYLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLDBCQUEwQjtZQUMxQixlQUFlLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RSxRQUFRO1lBQ1IsaUJBQWlCLEVBQUUsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDO1NBQ3JDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsRUFBRTtJQUNKLENBQUM7SUFFRCxhQUFhO0lBQ2IsaUJBQWlCLENBQUMsZUFBZSxFQUFFLEtBQUs7UUFDdEMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhO0lBQ2IsdUJBQXVCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCO1FBQ3hELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2hCLElBQUksd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FDckQsSUFBSSxDQUFDLHNCQUFzQixDQUNmLENBQUM7UUFDZixJQUFJLG1CQUFtQixHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQWMsQ0FBQztRQUM5RSxPQUFPLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixvQkFBb0IsQ0FBQyxLQUFLO1FBQ3hCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsSUFBSSxTQUFTLENBQUMsS0FBSztZQUFFLE9BQU87UUFDNUIsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsOEJBQThCO0lBQzlCLCtCQUErQixDQUFDLEtBQUs7UUFDbkMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN6QyxJQUFJLGNBQWMsQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNqQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OEdBL05VLHFCQUFxQjtrR0FBckIscUJBQXFCLHVXQ1hsQyw4NlRBbUpZOzsyRkR4SUMscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjtnSkFnQmpCLElBQUk7c0JBRGQsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQVNPLE1BQU07c0JBRGhCLEtBQUs7Z0JBT29DLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkF1RGMsc0JBQXNCO3NCQUE3RSxTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdHJpeENvbmZpZywgTWF0cml4SXRlbUNvbmZpZyB9IGZyb20gJy4vbWF0cml4LWNvbmZpZyc7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlLCBGaWVsZEFic3RyYWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLW1hdHJpeC1jb25maWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWF0cml4LWNvbmZpZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hdHJpeC1jb25maWcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0cml4Q29uZmlnQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIF9GaWVsZEFic3RyYWN0c1NlcnZpY2U6IEZpZWxkQWJzdHJhY3RzU2VydmljZVxuICApIHt9XG5cbiAgLyoq6KGo5Y2V5o6n5Lu257uEICovXG4gIF9GaWVsZENvbnRyb2xHcm91cDogYW55W107XG4gIC8qKuihqOWNleaOp+S7tuexu+WeiyAqL1xuICBfdHlwZTogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHR5cGUodjogYW55KSB7XG4gICAgdGhpcy5fdHlwZSA9IHY7XG4gIH1cblxuICAvKirpgInmi6nnmoTooajljZXkv6Hmga8gKi9cbiAgX3NlbGVjdGVkOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQodjogYW55KSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkID0gdjtcbiAgICB9XG4gIH1cbiAgICAvKirooajljZXlrp7kvZMgKi9cbiAgICBfRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IEVudGl0eSh2OiBGb3JtR3JvdXApIHtcbiAgICAgIHRoaXMuX0VudGl0eSA9IHY7XG4gICAgICB0aGlzLmRhdGFMb2FkZWQoKTtcbiAgICB9XG4gIFxuXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgYXN5bmMgZGF0YUxvYWRlZCgpIHtcbiAgICBpZiAodGhpcy5fRW50aXR5ICYmIHRoaXMuX3R5cGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuQWZ0ZXJJbml0KCk7XG4gICAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBBZnRlckluaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9GaWVsZENvbnRyb2xHcm91cCA9IHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRFeGNsdWRlQXNzaWduQ29udHJvbCh0aGlzLl90eXBlKTtcbiAgICAgIHRoaXMuX0VudGl0eS5zZXRDb250cm9sKCdmb3JtQ29uZmlndXJhdGlvbicsIHRoaXMuZmIuZ3JvdXAobmV3IE1hdHJpeENvbmZpZygpKSk7XG4gICAgICBhd2FpdCB0aGlzLnNldFNlbGVjdFZhbHVlKCk7XG4gICAgICB0aGlzLmZvcm1Db25maWd1cmF0aW9uLnBhdGNoVmFsdWUodGhpcy5fc2VsZWN0ZWQuZm9ybUNvbmZpZ3VyYXRpb24pO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldFNlbGVjdFZhbHVlKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkICYmIHRoaXMuX3NlbGVjdGVkLmZvcm1Db250cm9sTmFtZSA9PSB0aGlzLl90eXBlKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkLmZvcm1Db25maWd1cmF0aW9uWydNYXRyaXhCbG9ja1R5cGVzJ10uZm9yRWFjaCgoZWwsIGluZGV4KSA9PiB7XG4gICAgICAgICAgdGhpcy5hZGRNYXRyaXhCbG9ja1R5cGVJdGVtKGVsKTtcbiAgICAgICAgICBlbC5maWVsZHMuZm9yRWFjaCgoZWxmLCBpbmRleGYpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWRkTWF0cml4RmllbGRJdGVtKGVsZiwgaW5kZXgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKuiOt+WPluihqOWNlemFjee9riAqL1xuICBnZXQgZm9ybUNvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ2Zvcm1Db25maWd1cmF0aW9uJykgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgLyoq6I635Y+W6KGo5Y2V6YWN572u5LiL55qE55+p6Zi15Z2X6KGo5Y2V5pWw57uEICovXG4gIGdldCBNYXRyaXhCbG9ja1R5cGVzKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1Db25maWd1cmF0aW9uLmNvbnRyb2xzWydNYXRyaXhCbG9ja1R5cGVzJ10gYXMgRm9ybUFycmF5O1xuICB9XG5cbiAgLyoq5qih5oCB5qGGLeeKtuaAgSAqL1xuICBtYXRyaXhNb2RhbE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoq5qih5oCB5qGGLeaYr+WQpuato+WcqOe8lui+kSAqL1xuICBpc01hdHJpeE1vZGFsRWRpdDogYW55ID0gZmFsc2U7XG5cbiAgLyoq5qih5oCB5qGGLeeUqOS6juehruWumuaooeaAgeeahOe5geW/meeKtuaAgeaYr+WQpuS4uuecnyAqL1xuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKirmqKHmgIHmoYYt6KGo5Y2VICovXG4gIG1hdHJpeE1vZGFsRm9ybTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKuihqOWNleaOp+S7tuaooeadvy3nlKjkuo7lnKhmb3Jt5aSW5o+Q5Lqkc3VibWl0ICovXG4gIEBWaWV3Q2hpbGQoJ21hdHJpeE1vZGFsTW9kYWxTdWJtaXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgbWF0cml4TW9kYWxNb2RhbFN1Ym1pdDogRWxlbWVudFJlZjtcblxuICAvKirnn6npmLXlnZct6YCJ5oup55qE5LiL5qCHICovXG4gIHNlbGVjdE1hdHJpeEJsb2NrSW5kZXg6IGFueSA9IDA7XG5cbiAgLyoq55+p6Zi15Z2XLemAieaLqeeahOefqemYteS4i+Wtl+auteeahOS4i+aghyAqL1xuICBzZWxlY3RNYXRyaXhGaWVsZEluZGV4OiBhbnkgPSAwO1xuXG4gIC8qKuaooeaAgeahhi3nirbmgIHmlLnlj5ggKi9cbiAgbWF0cml4TW9kYWxWaXNpYmxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgdGhpcy5pc01hdHJpeE1vZGFsRWRpdCA9IGZhbHNlO1xuICAgICAgdGhpcy5tYXRyaXhNb2RhbEZvcm0gPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLyoq55+p6Zi15Z2XLS3mlrDlop4t5omT5byA5qih5oCB5qGGICovXG4gIGFkZE1hdHJpeEJsb2NrVHlwZSgpIHtcbiAgICB0aGlzLm1hdHJpeE1vZGFsRm9ybSA9IHRoaXMuZmIuZ3JvdXAobmV3IE1hdHJpeEl0ZW1Db25maWcoKSk7XG4gICAgdGhpcy5tYXRyaXhNb2RhbE9wZW4gPSB0cnVlO1xuICB9XG5cbiAgLyoq5qih5oCB5qGGLS3nn6npmLXooajljZXkv53lrZjmj5DkuqQgKi9cbiAgY3JlYXRlT3JFZGl0U2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLm1hdHJpeE1vZGFsRm9ybS52YWx1ZTtcbiAgICBpZiAoIXRoaXMubWF0cml4TW9kYWxGb3JtLnZhbGlkKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaXNNYXRyaXhNb2RhbEVkaXQpIHtcbiAgICAgIGxldCBNYXRyaXhCbG9ja1R5cGVzSXRlbSA9IHRoaXMuTWF0cml4QmxvY2tUeXBlcy5hdCh0aGlzLnNlbGVjdE1hdHJpeEJsb2NrSW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgICAgIE1hdHJpeEJsb2NrVHlwZXNJdGVtLnBhdGNoVmFsdWUoe1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZE1hdHJpeEJsb2NrVHlwZUl0ZW0oaW5wdXQpO1xuICAgIH1cbiAgICB0aGlzLm1hdHJpeE1vZGFsT3BlbiA9IGZhbHNlO1xuICB9XG4gIC8qKuaWsOWinuefqemYteWdly3lkJHmlbDnu4TooajljZXkuK3lop7liqDpobkgKi9cbiAgYWRkTWF0cml4QmxvY2tUeXBlSXRlbShpbnB1dCkge1xuICAgIHRoaXMuTWF0cml4QmxvY2tUeXBlcy5wdXNoKFxuICAgICAgbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGRpc3BsYXlOYW1lOiBuZXcgRm9ybUNvbnRyb2woaW5wdXQuZGlzcGxheU5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2woaW5wdXQubmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGZpZWxkczogbmV3IEZvcm1BcnJheShbXSksXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgLyoq57yW6L6R55+p6Zi15Z2XICovXG4gIEVkaXRNYXRyaXhCbG9jayhpbnB1dCkge1xuICAgIHRoaXMubWF0cml4TW9kYWxGb3JtID0gdGhpcy5mYi5ncm91cChuZXcgTWF0cml4SXRlbUNvbmZpZygpKTtcbiAgICB0aGlzLm1hdHJpeE1vZGFsRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIC4uLmlucHV0LFxuICAgIH0pO1xuICAgIHRoaXMubWF0cml4TW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmlzTWF0cml4TW9kYWxFZGl0ID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKuWIoOmZpOefqemYteWdlyAqL1xuICBEZWxldGVNYXRyaXhCbG9jayhpbmRleCkge1xuICAgIHRoaXMuTWF0cml4QmxvY2tUeXBlcy5yZW1vdmVBdChpbmRleCk7XG4gIH1cblxuICAvKirnn6npmLXlnZct6YCJ5oupICovXG4gIHNlbGVjdE1hdHJpeEJsb2NrQ2hhbmdlKGluZGV4KSB7XG4gICAgdGhpcy5zZWxlY3RNYXRyaXhCbG9ja0luZGV4ID0gaW5kZXg7XG4gIH1cblxuICAvKirnn6npmLXlrZfmrrUt5paw5aKeICovXG4gIGFkZE1hdHJpeEZpZWxkKCkge1xuICAgIHRoaXMuYWRkTWF0cml4RmllbGRJdGVtKCcnLCB0aGlzLnNlbGVjdE1hdHJpeEJsb2NrSW5kZXgpO1xuICAgIGxldCBNYXRyaXhCbG9ja1R5cGVzSXRlbUZvcm0gPSB0aGlzLk1hdHJpeEJsb2NrVHlwZXMuYXQoXG4gICAgICB0aGlzLnNlbGVjdE1hdHJpeEJsb2NrSW5kZXhcbiAgICApIGFzIEZvcm1Hcm91cDtcbiAgICBsZXQgTWF0cml4RmllbGRJdGVtRm9ybSA9IE1hdHJpeEJsb2NrVHlwZXNJdGVtRm9ybS5nZXQoJ2ZpZWxkcycpIGFzIEZvcm1BcnJheTtcbiAgICB0aGlzLnNlbGVjdE1hdHJpeEZpZWxkQ2hhbmdlKDAsIE1hdHJpeEZpZWxkSXRlbUZvcm0ubGVuZ3RoIC0gMSk7XG4gIH1cbiAgLyoq55+p6Zi15a2X5q61LeaWsOWinuefqemYteWtl+autemhuSAqL1xuICBhZGRNYXRyaXhGaWVsZEl0ZW0oaW5wdXQ6IGFueSA9ICcnLCBzZWxlY3RNYXRyaXhCbG9ja0luZGV4KSB7XG4gICAgLyoq55+p6Zi15LiL5qCH55qE55+p6Zi16aG5Rm9ybSAqL1xuICAgIGxldCBNYXRyaXhCbG9ja1R5cGVzSXRlbUZvcm0gPSB0aGlzLk1hdHJpeEJsb2NrVHlwZXMuYXQoc2VsZWN0TWF0cml4QmxvY2tJbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIGxldCBNYXRyaXhGaWVsZEl0ZW1Gb3JtID0gTWF0cml4QmxvY2tUeXBlc0l0ZW1Gb3JtLmdldCgnZmllbGRzJykgYXMgRm9ybUFycmF5O1xuICAgIE1hdHJpeEZpZWxkSXRlbUZvcm0ucHVzaChcbiAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAvKirlrZfmrrXlkI3np7AgRGlzcGxheSBuYW1lIG9mIHRoaXMgZmllbGQgKi9cbiAgICAgICAgZGlzcGxheU5hbWU6IFtpbnB1dC5kaXNwbGF5TmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgLyoq5a2X5q615ZSv5LiA5ZCN56ewIFVuaXF1ZSBOYW1lKi9cbiAgICAgICAgbmFtZTogW2lucHV0Lm5hbWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgIC8qKuaPj+i/sCDor7TmmI4gKi9cbiAgICAgICAgZGVzY3JpcHRpb246IFtpbnB1dC5kZXNjcmlwdGlvbiwgW11dLFxuICAgICAgICAvKipGaWVsZFR5cGXlrZfmrrXnsbvlnosg6KGo5Y2V5o6n5Lu25ZCN56ewICovXG4gICAgICAgIGZvcm1Db250cm9sTmFtZTogW2lucHV0LmZvcm1Db250cm9sTmFtZSB8fCAnVGV4dEVkaXQnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAvL+WKqOaAgeihqOWNlemFjee9rlxuICAgICAgICBmb3JtQ29uZmlndXJhdGlvbjogbmV3IEZvcm1Hcm91cCh7fSksXG4gICAgICB9KVxuICAgICk7XG4gICAgLy9cbiAgfVxuXG4gIC8qKuWIoOmZpOefqemYteWtl+autemhuSAqL1xuICBkZWxldGVNYXRyaXhGaWVsZChNYXRyaXhGaWVsZEZvcm0sIGluZGV4KSB7XG4gICAgTWF0cml4RmllbGRGb3JtLnJlbW92ZUF0KGluZGV4KTtcbiAgICB0aGlzLnNlbGVjdE1hdHJpeEZpZWxkSW5kZXggPSAwO1xuICB9XG5cbiAgLyoq55+p6Zi15a2X5q61LemAieaLqSAqL1xuICBzZWxlY3RNYXRyaXhGaWVsZENoYW5nZShNYXRyaXhCbG9ja0luZGV4LCBNYXRyaXhGaWVsZEluZGV4KSB7XG4gICAgdGhpcy5zZWxlY3RNYXRyaXhGaWVsZEluZGV4ID0gTWF0cml4RmllbGRJbmRleDtcbiAgfVxuXG4gIGdldCBuYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF0cml4TW9kYWxGb3JtPy5nZXQoJ25hbWUnKTtcbiAgfVxuICBnZXQgRmllbGRuYW1lSW5wdXQoKSB7XG4gICAgbGV0IE1hdHJpeEJsb2NrVHlwZXNJdGVtRm9ybSA9IHRoaXMuTWF0cml4QmxvY2tUeXBlcy5hdChcbiAgICAgIHRoaXMuc2VsZWN0TWF0cml4QmxvY2tJbmRleFxuICAgICkgYXMgRm9ybUdyb3VwO1xuICAgIGxldCBNYXRyaXhGaWVsZEl0ZW1Gb3JtID0gTWF0cml4QmxvY2tUeXBlc0l0ZW1Gb3JtLmdldCgnZmllbGRzJykgYXMgRm9ybUFycmF5O1xuICAgIHJldHVybiBNYXRyaXhGaWVsZEl0ZW1Gb3JtLmF0KHRoaXMuc2VsZWN0TWF0cml4RmllbGRJbmRleCkuZ2V0KCduYW1lJyk7XG4gIH1cblxuICAvKirnn6npmLVkaXNwbGF5TmFtZUlucHV05a2X5q615aSx5Y6754Sm54K5ICovXG4gIGRpc3BsYXlOYW1lSW5wdXRCbHVyKGV2ZW50KSB7XG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSk7XG4gICAgbGV0IG5hbWVJbnB1dCA9IHRoaXMubmFtZUlucHV0O1xuICAgIGlmIChuYW1lSW5wdXQudmFsdWUpIHJldHVybjtcbiAgICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pO1xuICB9XG4gIC8qKuefqemYtWRpc3BsYXlOYW1lSW5wdXTlrZfmrrXlpLHljrvnhKbngrkgKi9cbiAgTWF0cml4RmllbGREaXNwbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBsZXQgcGlueWluID0gdGhpcy5fQ21zQXBpU2VydmljZS5jaGluZXNlVG9QaW55aW4odmFsdWUpO1xuICAgIGxldCBGaWVsZG5hbWVJbnB1dCA9IHRoaXMuRmllbGRuYW1lSW5wdXQ7XG4gICAgaWYgKEZpZWxkbmFtZUlucHV0LnZhbHVlKSByZXR1cm47XG4gICAgRmllbGRuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIl9FbnRpdHlcIj5cbiAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJmb3JtQ29uZmlndXJhdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6OjpGb3JtQ29udHJvbDpNYXRyaXgnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY3VycmVudD1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydDbXM6Ok1hdHJpeEJsb2NrVHlwZScgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBwLTBcIiAoY2xpY2suc3RvcCk9XCJhZGRNYXRyaXhCbG9ja1R5cGUoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzLWNpcmNsZSBwLTFcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBNYXRyaXhCbG9ja1R5cGVzLmNvbnRyb2xzO2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljay5zdG9wKT1cInNlbGVjdE1hdHJpeEJsb2NrQ2hhbmdlKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaT09PXNlbGVjdE1hdHJpeEJsb2NrSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3tpdGVtLnZhbHVlLmRpc3BsYXlOYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3tpdGVtLnZhbHVlLm5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtXCIgaWQ9XCJkcm9wZG93bkJhc2ljMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ6LWluZGV4OiA4O1wiIG5nYkRyb3Bkb3duVG9nZ2xlPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25CYXNpYzFcIiBzdHlsZT1cInotaW5kZXg6IDk7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiRWRpdE1hdHJpeEJsb2NrKGl0ZW0udmFsdWUpXCI+e3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJEZWxldGVNYXRyaXhCbG9jayhpKVwiPnt7J0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JvdXBcIiAqbmdJZj1cIk1hdHJpeEJsb2NrVHlwZXM/LmNvbnRyb2xzLmxlbmd0aD4wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jdXJyZW50PVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0Ntczo6RmllbGRzJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIHAtMFwiIChjbGljay5zdG9wKT1cImFkZE1hdHJpeEZpZWxkKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cy1jaXJjbGUgcC0xXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgTWF0cml4QmxvY2tUeXBlcy5jb250cm9scztsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaSA9PT0gc2VsZWN0TWF0cml4QmxvY2tJbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbCBvZiBpdGVtLmNvbnRyb2xzWydmaWVsZHMnXS5jb250cm9scztsZXQgZmkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2suc3RvcCk9XCJzZWxlY3RNYXRyaXhGaWVsZENoYW5nZShpLGZpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJmaT09PXNlbGVjdE1hdHJpeEZpZWxkSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7ZWwudmFsdWUuZGlzcGxheU5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7ZWwudmFsdWUubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiZGVsZXRlTWF0cml4RmllbGQoaXRlbS5jb250cm9sc1snZmllbGRzJ10sZmkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saVwiPnt7J0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiBmb3JtQXJyYXlOYW1lPVwiTWF0cml4QmxvY2tUeXBlc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIE1hdHJpeEJsb2NrVHlwZXMuY29udHJvbHM7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtmb3JtR3JvdXBOYW1lXT1cImlcIiBbaGlkZGVuXT1cImkgIT09IHNlbGVjdE1hdHJpeEJsb2NrSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJmaWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbWYgb2YgaXRlbS5jb250cm9sc1snZmllbGRzJ10uY29udHJvbHM7bGV0IGZpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbZm9ybUdyb3VwTmFtZV09XCJmaVwiIFtoaWRkZW5dPVwiZmkgIT09IHNlbGVjdE1hdHJpeEZpZWxkSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImRpc3BsYXlOYW1lXCI+e3snQ21zOjpEaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwiTWF0cml4RmllbGREaXNwbGF5TmFtZUlucHV0Qmx1cigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJuYW1lXCI+e3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZE5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWQgZC1ibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZE5hbWVIZWxwVGV4dCcgfCBhYnBMb2NhbGl6YXRpb259fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJkZXNjcmlwdGlvblwiPnt7J0Ntczo6RGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmb3JtQ29udHJvbE5hbWVcIj57eydDbXM6OkZpZWxkVHlwZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImZvcm1Db250cm9sTmFtZVwiIChjaGFuZ2UpPVwic2V0Q29uZmlnQ29tcG9uZW50KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW1DIG9mIF9GaWVsZENvbnRyb2xHcm91cDtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtQy5uYW1lXCI+e3tpdGVtQy5kaXNwbGF5TmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1mLnZhbHVlLmZvcm1Db250cm9sTmFtZSYmaXRlbWZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRmLWR5bmFtaWMgW3R5cGVdPVwiaXRlbWYudmFsdWUuZm9ybUNvbnRyb2xOYW1lXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkP19zZWxlY3RlZC5mb3JtQ29uZmlndXJhdGlvbj8uTWF0cml4QmxvY2tUeXBlc1tpXT8uZmllbGRzW2ZpXTonJ1wiIFtlbnRpdHldPVwiaXRlbWZcIj48L2RmLWR5bmFtaWM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoYWJwSW5pdCk9XCJzdWJtaXRjbGljaz8ubmF0aXZlRWxlbWVudD8uY2xpY2soKVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIlxuICAgICAgICAgICAgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuXG5cblxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cIm1hdHJpeE1vZGFsT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cIm1hdHJpeE1vZGFsVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCIgPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3tpc01hdHJpeEVkaXQ/KCdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24pOignQ21zOjpOZXcnIHwgYWJwTG9jYWxpemF0aW9uKX19PC9oMz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkZXJSZWY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtYXRyaXhNb2RhbEZvcm07IGVsc2UgbG9hZGVyUmVmXCI+XG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiAjbXlGb3JtPVwibmdGb3JtXCIgW2Zvcm1Hcm91cF09XCJtYXRyaXhNb2RhbEZvcm1cIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgKHN1Ym1pdCk9XCJjcmVhdGVPckVkaXRTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjbWF0cml4TW9kYWxNb2RhbFN1Ym1pdCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGlzcGxheU5hbWVcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJkaXNwbGF5TmFtZUlucHV0Qmx1cigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm5hbWVcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPnt7J0FicFVpOjpDbG9zZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiXG4gICAgICAgICAgICAoY2xpY2spPVwibWF0cml4TW9kYWxNb2RhbFN1Ym1pdC5uYXRpdmVFbGVtZW50LmNsaWNrKClcIj57eydBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYWJwLWJ1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9hYnAtbW9kYWw+Il19
|
|
@@ -72,11 +72,11 @@ export class MatrixControlComponent {
|
|
|
72
72
|
this.fieldNameControl.removeAt(index);
|
|
73
73
|
}
|
|
74
74
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: MatrixControlComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: MatrixControlComponent, selector: "df-matrix-control", inputs: { fields: "fields", parentFiledName: "parentFiledName", selected: "selected", culture: "culture", entity: "entity" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic \n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\" [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n </div>\n <small class=\"form-text text-muted\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i5.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: MatrixControlComponent, selector: "df-matrix-control", inputs: { fields: "fields", parentFiledName: "parentFiledName", selected: "selected", culture: "culture", entity: "entity" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic \n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\" [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n </div>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i5.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }] }); }
|
|
76
76
|
}
|
|
77
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: MatrixControlComponent, decorators: [{
|
|
78
78
|
type: Component,
|
|
79
|
-
args: [{ selector: 'df-matrix-control', template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic \n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\" [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n </div>\n <small class=\"form-text text-muted\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>" }]
|
|
79
|
+
args: [{ selector: 'df-matrix-control', template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-3\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <div [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls;let i=index\">\n <div class=\"card mb-3 border \" [formGroupName]=\"i\">\n <div class=\"card-header d-flex align-items-center justify-content-between border-bottom pt-1\">\n <div>{{item.value.displayName}}</div>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteMatrixControl(i,item)\"><i\n class=\"fas fa-trash p-2\"></i></button>\n </div>\n <div class=\"card-body\">\n <ng-container *ngFor=\"let el of MatrixBlockTypesList;let il =index\">\n <ng-container *ngIf=\"el.name===item.value.matrixBlockTypeName\">\n <ng-container *ngFor=\"let elf of el.fields; let fi=index\">\n <ng-container *ngIf=\"item&&elf&&_culture\">\n <df-dynamic \n [fields]=\"{ field: elf,displayName:elf.displayName }\"\n [selected]=\"_selected ? _selected[i]?_selected[i][_parentFiledName][elf.name]:'': ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"_culture\" [entity]=\"item\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div>\n <div class=\"btn-group\" role=\"group\" aria-label=\"Basic example\">\n <ng-container *ngFor=\"let item of MatrixBlockTypesList;let i =index\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click.stop)=\"addMatrixControl(item)\"><i\n class=\"fas fa-plus me-1\"></i>{{item.displayName}}</button>\n </ng-container>\n </div>\n </div>\n <small class=\"form-text text-muted d-block\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</small>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>" }]
|
|
80
80
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { fields: [{
|
|
81
81
|
type: Input
|
|
82
82
|
}], parentFiledName: [{
|
|
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
91
91
|
type: ViewChild,
|
|
92
92
|
args: ['submitclick', { static: true }]
|
|
93
93
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vbWF0cml4L21hdHJpeC1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL21hdHJpeC9tYXRyaXgtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBMEIsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBT2hGLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFFbkMsWUFBWTtRQUNaLFlBQU8sR0FBUSxFQUFFLENBQUM7UUF3RWxCLFVBQVU7UUFDVix5QkFBb0IsR0FBVSxFQUFFLENBQUM7SUE1RUssQ0FBQztJQUl2QyxJQUNXLE1BQU0sQ0FBQyxDQUFNO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFJRCxJQUNXLGVBQWUsQ0FBQyxDQUFNO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUdELElBQ1csUUFBUSxDQUFDLENBQU07UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUdELElBQ1csT0FBTyxDQUFDLENBQU07UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUdELElBQ1csTUFBTSxD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O2dCQU9LLFFBQVE7c0JBRGxCLEtBQUs7Z0JBT0ssT0FBTztzQkFEakIsS0FBSztnQkFPSyxNQUFNO3NCQURoQixLQUFLO2dCQVFzQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLW1hdHJpeC1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hdHJpeC1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWF0cml4LWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0cml4Q29udHJvbENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7fVxuXG4gIC8qKuWtl+autemFjee9ruWIl+ihqCAqL1xuICBfZmllbGRzOiBhbnkgPSAnJztcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmaWVsZHModjogYW55KSB7XG4gICAgdGhpcy5fZmllbGRzID0gdjtcbiAgfVxuXG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfcGFyZW50RmlsZWROYW1lOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyZW50RmlsZWROYW1lKHY6IGFueSkge1xuICAgIHRoaXMuX3BhcmVudEZpbGVkTmFtZSA9IHY7XG4gIH1cbiAgLyoq54i257qn5a2X5q615ZCN56ew77yM55So5LqO5Li66KGo5Y2V6K6+572u5o6n5Lu26LWL5YC8ICovXG4gIF9zZWxlY3RlZDogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gdjtcbiAgfVxuICAvKiror63oqIAgKi9cbiAgX2N1bHR1cmU6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjdWx0dXJlKHY6IGFueSkge1xuICAgIHRoaXMuX2N1bHR1cmUgPSB2O1xuICB9XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfZW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5KHY6IGFueSkge1xuICAgIHRoaXMuX2VudGl0eSA9IHY7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuZGF0YUxvYWRlZCgpO1xuICAgIH1cbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgLyoqIOiOt+WPlueItue6p+Wtl+auteS7o+ihqOeahOihqOWNlee7hCovXG4gIGV4dHJhUHJvcGVydGllczogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKuaVsOaNruWKoOi9veWujOaIkCAqL1xuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9maWVsZHMgJiYgdGhpcy5fZW50aXR5ICYmIHRoaXMuX3BhcmVudEZpbGVkTmFtZSkge1xuICAgICAgdGhpcy5leHRyYVByb3BlcnRpZXMgPSB0aGlzLl9lbnRpdHkuZ2V0KHRoaXMuX3BhcmVudEZpbGVkTmFtZSkgYXMgRm9ybUdyb3VwO1xuICAgICAgYXdhaXQgdGhpcy5BZnRlckluaXQoKTtcbiAgICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkKSB0aGlzLmZpZWxkTmFtZUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLl9zZWxlY3RlZCk7XG4gICAgICB0aGlzLl9zZWxlY3RlZD0nJztcbiAgICB9XG4gIH1cblxuICBmb3JtQ29uZmlndXJhdGlvbjogYW55O1xuICAvKirojrflj5booajmoLzlrZfmrrXku6PooajnmoTmjqfku7YgKi9cbiAgZmllbGROYW1lQ29udHJvbDogRm9ybUFycmF5IHwgdW5kZWZpbmVkO1xuXG4gIEFmdGVySW5pdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIGxldCBmb3JtQ29uZmlndXJhdGlvbiA9IHRoaXMuX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvbjtcbiAgICAgIGxldCBuZXdBcnJheUdyb3VwID0gdGhpcy5mYi5hcnJheShbXSk7XG4gICAgICB0aGlzLmV4dHJhUHJvcGVydGllcy5zZXRDb250cm9sKHRoaXMuX2ZpZWxkcy5maWVsZC5uYW1lLCBuZXdBcnJheUdyb3VwKTtcbiAgICAgIHRoaXMuZmllbGROYW1lQ29udHJvbCA9IHRoaXMuZXh0cmFQcm9wZXJ0aWVzLmdldCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSkgYXMgRm9ybUFycmF5O1xuICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkTWF0cml4Q29udHJvbChcbiAgICAgICAgICAgIGZvcm1Db25maWd1cmF0aW9uLk1hdHJpeEJsb2NrVHlwZXMuZmluZChpdGVtID0+IGl0ZW0ubmFtZSA9PSBlbC5tYXRyaXhCbG9ja1R5cGVOYW1lKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5NYXRyaXhCbG9ja1R5cGVzTGlzdCA9IGZvcm1Db25maWd1cmF0aW9uLk1hdHJpeEJsb2NrVHlwZXM7XG4gICAgICByZXNvbHZlKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoq55+p6Zi15YiX6KGoICovXG4gIE1hdHJpeEJsb2NrVHlwZXNMaXN0OiBhbnlbXSA9IFtdO1xuXG4gIC8qKuWinuWKoOaMh+WumuefqemYteaOp+S7tumhuSAqL1xuICBhZGRNYXRyaXhDb250cm9sKGl0ZW0pIHtcbiAgICB0aGlzLmZpZWxkTmFtZUNvbnRyb2wucHVzaChcbiAgICAgIG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBleHRyYVByb3BlcnRpZXM6IG5ldyBGb3JtR3JvdXAoe30pLFxuICAgICAgICBtYXRyaXhCbG9ja1R5cGVOYW1lOiBuZXcgRm9ybUNvbnRyb2woaXRlbS5uYW1lKSxcbiAgICAgICAgZGlzcGxheU5hbWU6IG5ldyBGb3JtQ29udHJvbChpdGVtLmRpc3BsYXlOYW1lKSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICAvKirliKDpmaTnn6npmLXmjqfku7YgKi9cbiAgZGVsZXRlTWF0cml4Q29udHJvbChpbmRleCwgaXRlbSkge1xuICAgIHRoaXMuZmllbGROYW1lQ29udHJvbC5yZW1vdmVBdChpbmRleCk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX2VudGl0eVwiPlxuICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cImV4dHJhUHJvcGVydGllc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiICpuZ0lmPVwiX2ZpZWxkcy5kaXNwbGF5TmFtZVwiPnt7IF9maWVsZHMuZGlzcGxheU5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBbZm9ybUFycmF5TmFtZV09XCJfZmllbGRzLmZpZWxkLm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpZWxkTmFtZUNvbnRyb2wuY29udHJvbHM7bGV0IGk9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXIgXCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gYm9yZGVyLWJvdHRvbSBwdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57e2l0ZW0udmFsdWUuZGlzcGxheU5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saWdodCBwLTBcIiAoY2xpY2suc3RvcCk9XCJkZWxldGVNYXRyaXhDb250cm9sKGksaXRlbSlcIj48aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtdHJhc2ggcC0yXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWwgb2YgTWF0cml4QmxvY2tUeXBlc0xpc3Q7bGV0IGlsID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWwubmFtZT09PWl0ZW0udmFsdWUubWF0cml4QmxvY2tUeXBlTmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxmIG9mIGVsLmZpZWxkczsgbGV0IGZpPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0mJmVsZiYmX2N1bHR1cmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRmLWR5bmFtaWMgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cInsgZmllbGQ6IGVsZixkaXNwbGF5TmFtZTplbGYuZGlzcGxheU5hbWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkID8gX3NlbGVjdGVkW2ldP19zZWxlY3RlZFtpXVtfcGFyZW50RmlsZWROYW1lXVtlbGYubmFtZV06Jyc6ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRGaWxlZE5hbWVdPVwiJ2V4dHJhUHJvcGVydGllcydcIiBbY3VsdHVyZV09XCJfY3VsdHVyZVwiIFtlbnRpdHldPVwiaXRlbVwiPjwvZGYtZHluYW1pYz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIkJhc2ljIGV4YW1wbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBNYXRyaXhCbG9ja1R5cGVzTGlzdDtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljay5zdG9wKT1cImFkZE1hdHJpeENvbnRyb2woaXRlbSlcIj48aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+e3tpdGVtLmRpc3BsYXlOYW1lfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkXCIgKm5nSWY9XCJfZmllbGRzLmZpZWxkLmRlc2NyaXB0aW9uXCI+e3tfZmllbGRzLmZpZWxkLmRlc2NyaXB0aW9ufX08L3NtYWxsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG48L2Zvcm0+Il19
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vbWF0cml4L21hdHJpeC1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL21hdHJpeC9tYXRyaXgtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBMEIsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBT2hGLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFFbkMsWUFBWTtRQUNaLFlBQU8sR0FBUSxFQUFFLENBQUM7UUF3RWxCLFVBQVU7UUFDVix5QkFBb0IsR0FBVSxFQUFFLENBQUM7SUE1RUssQ0FBQztJQUl2QyxJQUNXLE1BQU0sQ0FBQyxDQUFNO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFJRCxJQUNXLGVBQWUsQ0FBQyxDQUFNO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUdELElBQ1csUUFBUSxDQUFDLENBQU07UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUdELElBQ1csT0FBTyxDQUFDLENBQU07UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUdELElBQ1csTUFBTSxD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O2dCQU9LLFFBQVE7c0JBRGxCLEtBQUs7Z0JBT0ssT0FBTztzQkFEakIsS0FBSztnQkFPSyxNQUFNO3NCQURoQixLQUFLO2dCQVFzQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLW1hdHJpeC1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hdHJpeC1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWF0cml4LWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0cml4Q29udHJvbENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7fVxuXG4gIC8qKuWtl+autemFjee9ruWIl+ihqCAqL1xuICBfZmllbGRzOiBhbnkgPSAnJztcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmaWVsZHModjogYW55KSB7XG4gICAgdGhpcy5fZmllbGRzID0gdjtcbiAgfVxuXG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfcGFyZW50RmlsZWROYW1lOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyZW50RmlsZWROYW1lKHY6IGFueSkge1xuICAgIHRoaXMuX3BhcmVudEZpbGVkTmFtZSA9IHY7XG4gIH1cbiAgLyoq54i257qn5a2X5q615ZCN56ew77yM55So5LqO5Li66KGo5Y2V6K6+572u5o6n5Lu26LWL5YC8ICovXG4gIF9zZWxlY3RlZDogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gdjtcbiAgfVxuICAvKiror63oqIAgKi9cbiAgX2N1bHR1cmU6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjdWx0dXJlKHY6IGFueSkge1xuICAgIHRoaXMuX2N1bHR1cmUgPSB2O1xuICB9XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfZW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5KHY6IGFueSkge1xuICAgIHRoaXMuX2VudGl0eSA9IHY7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuZGF0YUxvYWRlZCgpO1xuICAgIH1cbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgLyoqIOiOt+WPlueItue6p+Wtl+auteS7o+ihqOeahOihqOWNlee7hCovXG4gIGV4dHJhUHJvcGVydGllczogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKuaVsOaNruWKoOi9veWujOaIkCAqL1xuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9maWVsZHMgJiYgdGhpcy5fZW50aXR5ICYmIHRoaXMuX3BhcmVudEZpbGVkTmFtZSkge1xuICAgICAgdGhpcy5leHRyYVByb3BlcnRpZXMgPSB0aGlzLl9lbnRpdHkuZ2V0KHRoaXMuX3BhcmVudEZpbGVkTmFtZSkgYXMgRm9ybUdyb3VwO1xuICAgICAgYXdhaXQgdGhpcy5BZnRlckluaXQoKTtcbiAgICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkKSB0aGlzLmZpZWxkTmFtZUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLl9zZWxlY3RlZCk7XG4gICAgICB0aGlzLl9zZWxlY3RlZD0nJztcbiAgICB9XG4gIH1cblxuICBmb3JtQ29uZmlndXJhdGlvbjogYW55O1xuICAvKirojrflj5booajmoLzlrZfmrrXku6PooajnmoTmjqfku7YgKi9cbiAgZmllbGROYW1lQ29udHJvbDogRm9ybUFycmF5IHwgdW5kZWZpbmVkO1xuXG4gIEFmdGVySW5pdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIGxldCBmb3JtQ29uZmlndXJhdGlvbiA9IHRoaXMuX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvbjtcbiAgICAgIGxldCBuZXdBcnJheUdyb3VwID0gdGhpcy5mYi5hcnJheShbXSk7XG4gICAgICB0aGlzLmV4dHJhUHJvcGVydGllcy5zZXRDb250cm9sKHRoaXMuX2ZpZWxkcy5maWVsZC5uYW1lLCBuZXdBcnJheUdyb3VwKTtcbiAgICAgIHRoaXMuZmllbGROYW1lQ29udHJvbCA9IHRoaXMuZXh0cmFQcm9wZXJ0aWVzLmdldCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSkgYXMgRm9ybUFycmF5O1xuICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkTWF0cml4Q29udHJvbChcbiAgICAgICAgICAgIGZvcm1Db25maWd1cmF0aW9uLk1hdHJpeEJsb2NrVHlwZXMuZmluZChpdGVtID0+IGl0ZW0ubmFtZSA9PSBlbC5tYXRyaXhCbG9ja1R5cGVOYW1lKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5NYXRyaXhCbG9ja1R5cGVzTGlzdCA9IGZvcm1Db25maWd1cmF0aW9uLk1hdHJpeEJsb2NrVHlwZXM7XG4gICAgICByZXNvbHZlKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoq55+p6Zi15YiX6KGoICovXG4gIE1hdHJpeEJsb2NrVHlwZXNMaXN0OiBhbnlbXSA9IFtdO1xuXG4gIC8qKuWinuWKoOaMh+WumuefqemYteaOp+S7tumhuSAqL1xuICBhZGRNYXRyaXhDb250cm9sKGl0ZW0pIHtcbiAgICB0aGlzLmZpZWxkTmFtZUNvbnRyb2wucHVzaChcbiAgICAgIG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBleHRyYVByb3BlcnRpZXM6IG5ldyBGb3JtR3JvdXAoe30pLFxuICAgICAgICBtYXRyaXhCbG9ja1R5cGVOYW1lOiBuZXcgRm9ybUNvbnRyb2woaXRlbS5uYW1lKSxcbiAgICAgICAgZGlzcGxheU5hbWU6IG5ldyBGb3JtQ29udHJvbChpdGVtLmRpc3BsYXlOYW1lKSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICAvKirliKDpmaTnn6npmLXmjqfku7YgKi9cbiAgZGVsZXRlTWF0cml4Q29udHJvbChpbmRleCwgaXRlbSkge1xuICAgIHRoaXMuZmllbGROYW1lQ29udHJvbC5yZW1vdmVBdChpbmRleCk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX2VudGl0eVwiPlxuICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cImV4dHJhUHJvcGVydGllc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiICpuZ0lmPVwiX2ZpZWxkcy5kaXNwbGF5TmFtZVwiPnt7IF9maWVsZHMuZGlzcGxheU5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBbZm9ybUFycmF5TmFtZV09XCJfZmllbGRzLmZpZWxkLm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpZWxkTmFtZUNvbnRyb2wuY29udHJvbHM7bGV0IGk9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMyBib3JkZXIgXCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gYm9yZGVyLWJvdHRvbSBwdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57e2l0ZW0udmFsdWUuZGlzcGxheU5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saWdodCBwLTBcIiAoY2xpY2suc3RvcCk9XCJkZWxldGVNYXRyaXhDb250cm9sKGksaXRlbSlcIj48aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtdHJhc2ggcC0yXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWwgb2YgTWF0cml4QmxvY2tUeXBlc0xpc3Q7bGV0IGlsID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWwubmFtZT09PWl0ZW0udmFsdWUubWF0cml4QmxvY2tUeXBlTmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxmIG9mIGVsLmZpZWxkczsgbGV0IGZpPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0mJmVsZiYmX2N1bHR1cmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRmLWR5bmFtaWMgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cInsgZmllbGQ6IGVsZixkaXNwbGF5TmFtZTplbGYuZGlzcGxheU5hbWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkID8gX3NlbGVjdGVkW2ldP19zZWxlY3RlZFtpXVtfcGFyZW50RmlsZWROYW1lXVtlbGYubmFtZV06Jyc6ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRGaWxlZE5hbWVdPVwiJ2V4dHJhUHJvcGVydGllcydcIiBbY3VsdHVyZV09XCJfY3VsdHVyZVwiIFtlbnRpdHldPVwiaXRlbVwiPjwvZGYtZHluYW1pYz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIkJhc2ljIGV4YW1wbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBNYXRyaXhCbG9ja1R5cGVzTGlzdDtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljay5zdG9wKT1cImFkZE1hdHJpeENvbnRyb2woaXRlbSlcIj48aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+e3tpdGVtLmRpc3BsYXlOYW1lfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkIGQtYmxvY2tcIiAqbmdJZj1cIl9maWVsZHMuZmllbGQuZGVzY3JpcHRpb25cIj57e19maWVsZHMuZmllbGQuZGVzY3JpcHRpb259fTwvc21hbGw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbjwvZm9ybT4iXX0=
|
|
@@ -130,7 +130,7 @@ export class TableConfigComponent {
|
|
|
130
130
|
nameInput.patchValue(pinyin);
|
|
131
131
|
}
|
|
132
132
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TableConfigComponent, deps: [{ token: i1.FormBuilder }, { token: i2.CmsApiService }, { token: i2.FieldAbstractsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TableConfigComponent, selector: "df-table-config", inputs: { Entity: "Entity", selected: "selected", type: "type" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }, { propertyName: "tableSelectModalSubmit", first: true, predicate: ["tableSelectModalSubmit"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::SelectListItem' | abpLocalization}}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'Cms::TableColumnDisplayName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnForm' | abpLocalization}}</th>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableColumns()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody formArrayName=\"TableColumns\">\n <ng-container *ngFor=\"let item of TableColumns.controls;let i=index\">\n <tr [formGroupName]=\"i\">\n <td><input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event,item)\" ></td>\n <td><input type=\"text\" class=\"form-control\" formControlName=\"name\"></td>\n <td>\n <select class=\"form-select\" formControlName=\"formControlName\"\n (change)=\"selectTableControl($event,i,item)\">\n <option value=\"\">SelectFrom</option>\n <ng-container *ngFor=\"let item_f of _fieldControlGroup;let i_f =index\">\n <option [value]=\"item_f.name\">{{item_f.displayName}}</option>\n </ng-container>\n </select>\n </td>\n <td scope=\"row\">\n <div class=\"flex-start\">\n <button class=\"btn btn-light btn-sm \" (click.stop)=\"EditSitesBtn(item,i)\">\n <i class=\"fas fa-edit\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"deleteTableColumns(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==0\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==TableColumns.controls.length-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n<abp-modal [(visible)]=\"tableSelectOpen\" [busy]=\"modalBusy\" (visibleChange)=\"tableSelectVisibleChange($event)\" [options]=\"{ size: CurrentSelectionTableControlName=='Matrix'?'xl':'' ,scrollable:false }\">\n <ng-template #abpHeader>\n <h3>{{_tableSelected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"tableSelectForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"tableSelectForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #tableSelectModalSubmit style=\"display: none\"></button>\n <ng-container *ngIf=\"CurrentSelectionTableControlName&&tableSelectForm\">\n <df-dynamic [type]=\"CurrentSelectionTableControlName\" \n [selected]=\"_tableSelected\" [formGroup]=\"tableSelectForm\" [entity]=\"tableSelectForm\"></df-dynamic>\n </ng-container>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"tableSelectModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: [".flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-start{display:flex;align-items:center;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i4.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: i4.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i6.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i6.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i6.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "
|
|
133
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TableConfigComponent, selector: "df-table-config", inputs: { Entity: "Entity", selected: "selected", type: "type" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }, { propertyName: "tableSelectModalSubmit", first: true, predicate: ["tableSelectModalSubmit"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'DigniteAbpForms::SelectListItem' | abpLocalization}}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'Cms::TableColumnDisplayName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnForm' | abpLocalization}}</th>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableColumns()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody formArrayName=\"TableColumns\">\n <ng-container *ngFor=\"let item of TableColumns.controls;let i=index\">\n <tr [formGroupName]=\"i\">\n <td><input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event,item)\" ></td>\n <td><input type=\"text\" class=\"form-control\" formControlName=\"name\"></td>\n <td>\n <select class=\"form-select\" formControlName=\"formControlName\"\n (change)=\"selectTableControl($event,i,item)\">\n <option value=\"\">SelectFrom</option>\n <ng-container *ngFor=\"let item_f of _fieldControlGroup;let i_f =index\">\n <option [value]=\"item_f.name\">{{item_f.displayName}}</option>\n </ng-container>\n </select>\n </td>\n <td scope=\"row\">\n <div class=\"flex-start\">\n <button class=\"btn btn-light btn-sm \" (click.stop)=\"EditSitesBtn(item,i)\">\n <i class=\"fas fa-edit\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"deleteTableColumns(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==0\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==TableColumns.controls.length-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n<abp-modal [(visible)]=\"tableSelectOpen\" [busy]=\"modalBusy\" (visibleChange)=\"tableSelectVisibleChange($event)\" [options]=\"{ size: CurrentSelectionTableControlName=='Matrix'?'xl':'' ,scrollable:false }\">\n <ng-template #abpHeader>\n <h3>{{_tableSelected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"tableSelectForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"tableSelectForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #tableSelectModalSubmit style=\"display: none\"></button>\n <ng-container *ngIf=\"CurrentSelectionTableControlName&&tableSelectForm\">\n <df-dynamic [type]=\"CurrentSelectionTableControlName\" \n [selected]=\"_tableSelected\" [formGroup]=\"tableSelectForm\" [entity]=\"tableSelectForm\"></df-dynamic>\n </ng-container>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"tableSelectModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: [".flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-start{display:flex;align-items:center;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i4.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: i4.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i6.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i6.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i6.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "culture", "parentFiledName", "fields", "entity"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
134
134
|
}
|
|
135
135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TableConfigComponent, decorators: [{
|
|
136
136
|
type: Component,
|