@dignite-ng/expand.cms 0.0.38 → 0.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/config/providers/route.provider.mjs +9 -19
- package/esm2022/lib/cms.module.mjs +2 -1
- package/esm2022/lib/components/admin/domains/domains.component.mjs +1 -1
- package/esm2022/lib/components/admin/entries/create.component.mjs +6 -9
- package/esm2022/lib/components/admin/entries/edit.component.mjs +6 -9
- package/esm2022/lib/components/admin/fields/create-field.component.mjs +10 -14
- package/esm2022/lib/components/admin/fields/edit-field.component.mjs +6 -9
- package/esm2022/lib/components/admin/fields/fields.component.mjs +11 -13
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +29 -31
- package/esm2022/lib/components/admin/sections/sections.component.mjs +12 -66
- package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +3 -3
- package/fesm2022/dignite-ng-expand.cms-config.mjs +8 -18
- package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
- package/fesm2022/dignite-ng-expand.cms.mjs +76 -144
- package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
- package/lib/components/admin/entries/create.component.d.ts +2 -3
- package/lib/components/admin/entries/edit.component.d.ts +2 -3
- package/lib/components/admin/fields/create-field.component.d.ts +1 -3
- package/lib/components/admin/fields/edit-field.component.d.ts +2 -3
- package/lib/components/admin/fields/fields.component.d.ts +1 -3
- package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +2 -3
- package/lib/components/admin/sections/sections.component.d.ts +1 -34
- package/package.json +1 -1
|
@@ -10,22 +10,20 @@ import * as i1 from "@abp/ng.core";
|
|
|
10
10
|
import * as i2 from "../../../proxy/admin/fields";
|
|
11
11
|
import * as i3 from "@abp/ng.theme.shared";
|
|
12
12
|
import * as i4 from "@angular/router";
|
|
13
|
-
import * as i5 from "
|
|
14
|
-
import * as i6 from "@
|
|
15
|
-
import * as i7 from "@
|
|
16
|
-
import * as i8 from "@ng
|
|
17
|
-
import * as i9 from "
|
|
18
|
-
import * as i10 from "
|
|
19
|
-
import * as i11 from "@angular/common";
|
|
13
|
+
import * as i5 from "@angular/forms";
|
|
14
|
+
import * as i6 from "@swimlane/ngx-datatable";
|
|
15
|
+
import * as i7 from "@ng-bootstrap/ng-bootstrap";
|
|
16
|
+
import * as i8 from "@abp/ng.components/page";
|
|
17
|
+
import * as i9 from "./field-group.component";
|
|
18
|
+
import * as i10 from "@angular/common";
|
|
20
19
|
class FieldsComponent {
|
|
21
|
-
constructor(list, _FieldAdminService, toaster, confirmation, _LocalizationService, router
|
|
20
|
+
constructor(list, _FieldAdminService, toaster, confirmation, _LocalizationService, router) {
|
|
22
21
|
this.list = list;
|
|
23
22
|
this._FieldAdminService = _FieldAdminService;
|
|
24
23
|
this.toaster = toaster;
|
|
25
24
|
this.confirmation = confirmation;
|
|
26
25
|
this._LocalizationService = _LocalizationService;
|
|
27
26
|
this.router = router;
|
|
28
|
-
this._CmsApiService = _CmsApiService;
|
|
29
27
|
this._UpdateListService = inject(UpdateListService);
|
|
30
28
|
/**表格单元格布局类型 */
|
|
31
29
|
this.ColumnMode = ColumnMode;
|
|
@@ -79,7 +77,7 @@ class FieldsComponent {
|
|
|
79
77
|
}
|
|
80
78
|
});
|
|
81
79
|
}
|
|
82
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldsComponent, deps: [{ token: i1.ListService }, { token: i2.FieldAdminService }, { token: i3.ToasterService }, { token: i3.ConfirmationService }, { token: i1.LocalizationService }, { token: i4.Router }
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldsComponent, deps: [{ token: i1.ListService }, { token: i2.FieldAdminService }, { token: i3.ToasterService }, { token: i3.ConfirmationService }, { token: i1.LocalizationService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
83
81
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FieldsComponent, selector: "cms-fields", providers: [
|
|
84
82
|
// [Required]
|
|
85
83
|
ListService,
|
|
@@ -91,7 +89,7 @@ class FieldsComponent {
|
|
|
91
89
|
provide: EXTENSIONS_IDENTIFIER,
|
|
92
90
|
useValue: ECmsComponent.Fields,
|
|
93
91
|
},
|
|
94
|
-
], ngImport: i0, template: "<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-3\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-9\">\n <div class=\"card mb-0\">\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\"\n [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::FormControlName' | abpLocalization\"\n prop=\"formControlName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Group' | abpLocalization\" prop=\"groupId\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{row.groupName}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [width]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value|date:'YYYY/MM/dd HH:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\n cellClass=\"cellClassRight\" [frozenRight]=\"true\" [width]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\"\n ngbDropdownToggle> <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}</button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n routerLink=\"/cms/admin/fields/{{row.id}}/edit\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"deletefield(row)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n</abp-page>", styles: ["::ng-deep .fields-page .dignite_page{background:transparent}::ng-deep .fields-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .fields-page .container-height{height:calc(100vh - 200px)}\n"], dependencies: [{ kind: "directive", type:
|
|
92
|
+
], ngImport: i0, template: "<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-3\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-9\">\n <div class=\"card mb-0\">\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\"\n [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::FormControlName' | abpLocalization\"\n prop=\"formControlName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Group' | abpLocalization\" prop=\"groupId\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{row.groupName}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [width]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value|date:'YYYY/MM/dd HH:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\n cellClass=\"cellClassRight\" [frozenRight]=\"true\" [width]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\"\n ngbDropdownToggle> <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}</button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n routerLink=\"/cms/admin/fields/{{row.id}}/edit\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"deletefield(row)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n</abp-page>", styles: ["::ng-deep .fields-page .dignite_page{background:transparent}::ng-deep .fields-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .fields-page .container-height{height:calc(100vh - 200px)}\n"], dependencies: [{ kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { 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: ["disabled"] }, { kind: "component", type: i8.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i9.FieldGroupComponent, selector: "cms-field-group", outputs: ["OnGroupClickBack"] }, { kind: "pipe", type: i10.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
95
93
|
}
|
|
96
94
|
export { FieldsComponent };
|
|
97
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldsComponent, decorators: [{
|
|
@@ -108,5 +106,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
108
106
|
useValue: ECmsComponent.Fields,
|
|
109
107
|
},
|
|
110
108
|
], template: "<abp-page [title]=\"'Cms::Fields' | abpLocalization\" [toolbar]=\"true\">\n <div class=\"fields-page\">\n <div class=\"row \">\n <div class=\"col-3\">\n <div class=\"card mb-0\" style=\"height: 100%;\">\n <cms-field-group (OnGroupClickBack)=\"fieldGroupChange($event)\"></cms-field-group>\n </div>\n </div>\n <div class=\"col-9\">\n <div class=\"card mb-0\">\n <div class=\"card-header px-2 py-sm-2 border-bottom\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"filters.filter\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\">\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\"\n (click)=\"list.get()\"><i class=\"fa fa-search\"></i></button>\n </div>\n </div>\n <div class=\"card-body p-0\">\n <div class=\"table-responsive table-fixed-header\">\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\n [virtualization]=\"false\" [externalPaging]=\"true\"\n [count]=\"data.totalCount\" [scrollbarH]=\"true\">\n <ngx-datatable-column [name]=\"'Cms::DisplayName' | abpLocalization\" prop=\"displayName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Name' | abpLocalization\" prop=\"name\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::FormControlName' | abpLocalization\"\n prop=\"formControlName\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::Group' | abpLocalization\" prop=\"groupId\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{row.groupName}}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'Cms::CreationTime' | abpLocalization\" prop=\"creationTime\" [width]=\"190\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value|date:'YYYY/MM/dd HH:mm:ss' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\n cellClass=\"cellClassRight\" [frozenRight]=\"true\" [width]=\"110\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <div ngbDropdown container=\"body\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\"\n ngbDropdownToggle> <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}</button>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n routerLink=\"/cms/admin/fields/{{row.id}}/edit\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"deletefield(row)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n</abp-page>", styles: ["::ng-deep .fields-page .dignite_page{background:transparent}::ng-deep .fields-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .fields-page .container-height{height:calc(100vh - 200px)}\n"] }]
|
|
111
|
-
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.FieldAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i1.LocalizationService }, { type: i4.Router }
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2ZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFPLHdCQUF3QixFQUFFLFdBQVcsRUFBdUMsTUFBTSxjQUFjLENBQUM7QUFFL0csT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFFMUUsTUFpQmEsZUFBZTtJQUUxQixZQUNrQixJQUFpQixFQUN6QixrQkFBcUMsRUFDckMsT0FBdUIsRUFDdkIsWUFBaUMsRUFDakMsb0JBQXlDLEVBQ3pDLE1BQWMsRUFDZCxjQUE2QjtRQU5yQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ3pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQs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QUUsYUFBYSxDQUFDLE1BQU07YUFDL0I7U0FDRiwwQkM1QkgseW1LQXlFVzs7U0QzQ0UsZUFBZTs0RkFBZixlQUFlO2tCQWpCM0IsU0FBUzsrQkFDRSxZQUFZLGFBR1g7d0JBQ1QsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsNERBQTREO3dCQUM1RCx1RUFBdUU7d0JBQ3ZFLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7d0JBQ3BEOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsTUFBTTt5QkFDL0I7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEFCUCwgTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCBMaXN0U2VydmljZSwgTG9jYWxpemF0aW9uU2VydmljZSwgUGFnZWRSZXN1bHREdG8gfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UsIENvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1hdGlvbiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSwgRmllbGREdG8sIEdldEZpZWxkc0lucHV0IH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZmllbGRzJztcbmltcG9ydCB7IENvbHVtbk1vZGUgfSBmcm9tIFwiQHN3aW1sYW5lL25neC1kYXRhdGFibGVcIjtcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFVwZGF0ZUxpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXBkYXRlLWxpc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1maWVsZHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIC8vIFtSZXF1aXJlZF1cbiAgICBMaXN0U2VydmljZSxcbiAgICAvLyBbT3B0aW9uYWxdXG4gICAgLy8gUHJvdmlkZSB0aGlzIHRva2VuIGlmIHlvdSB3YW50IGEgZGlmZmVyZW50IGRlYm91bmNlIHRpbWUuXG4gICAgLy8gRGVmYXVsdCBpcyAzMDAuIENhbm5vdCBiZSAwLiBBbnkgdmFsdWUgYmVsb3cgMTAwIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICB7IHByb3ZpZGU6IExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSwgdXNlVmFsdWU6IDUwMCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkZpZWxkcyxcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgX0ZpZWxkQWRtaW5TZXJ2aWNlOiBGaWVsZEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIF9DbXNBcGlTZXJ2aWNlOiBDbXNBcGlTZXJ2aWNlLFxuICApIHtcbiAgICBcbiAgfVxuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZT1pbmplY3QoVXBkYXRlTGlzdFNlcnZpY2UpXG4gIC8qKuihqOagvOWNleWFg+agvOW4g+WxgOexu+WeiyAqL1xuICBDb2x1bW5Nb2RlID0gQ29sdW1uTW9kZTtcblxuICAvKirooajmoLzmlbDmja4gKi9cbiAgZGF0YTogUGFnZWRSZXN1bHREdG88RmllbGREdG8+ID0ge1xuICAgIGl0ZW1zOiBbXSxcbiAgICB0b3RhbENvdW50OiAwLFxuICB9O1xuXG4gIC8qKui/h+a7pOWZqCAqL1xuICBmaWx0ZXJzID0ge30gYXMgR2V0RmllbGRzSW5wdXQ7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ob29rVG9RdWVyeSgpXG4gICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgICB9KTtcbiAgfVxuICBnZXREYXRhKCl7XG4gICAgdGhpcy5saXN0LmdldCgpXG4gIH1cblxuXG4gIC8qKuWtl+auteWIhue7hOmAieaLqeWbnuiwgyAqL1xuICBmaWVsZEdyb3VwQ2hhbmdlKGV2ZW50KSB7XG4gICAgdGhpcy5maWx0ZXJzLmdyb3VwSWQgPSBldmVudFxuICAgIHRoaXMubGlzdC5wYWdlPTBcbiAgICB0aGlzLmxpc3QuZ2V0KClcbiAgfVxuXG5cblxuICAvKirkvb/nlKhhYnDnmoRsaXN06I635Y+W6KGo5qC855qE5a2X5q615pWw5o2u5YiX6KGoICovXG4gIGhvb2tUb1F1ZXJ5KCkge1xuICAgIGNvbnN0IGdldERhdGEgPSAocXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMpID0+IHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgLi4ucXVlcnksXG4gICAgICAuLi50aGlzLmZpbHRlcnMsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RGF0YSA9IChsaXN0OiBQYWdlZFJlc3VsdER0bzxGaWVsZER0bz4pID0+ICh0aGlzLmRhdGEgPSBsaXN0KTtcbiAgICB0aGlzLmxpc3QuaG9va1RvUXVlcnkoZ2V0RGF0YSkuc3Vic2NyaWJlKHNldERhdGEpO1xuICB9XG5cbiAgLyoq5paw5bu65a2X5q615oyJ6ZKuICovXG4gIHRvRmllbGRzQ3JlYXRlQnRuKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Ntcy9hZG1pbi9maWVsZHMvY3JlYXRlJ10sXG4gICAgICB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7fVxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIC8qKuWIoOmZpOWtl+autSAqL1xuICBkZWxldGVmaWVsZChyb3c6IGFueSkge1xuICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXG4gICAgICByb3cuZGlzcGxheU5hbWUsXG4gICAgICB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpJdGVtV2lsbEJlRGVsZXRlZE1lc3NhZ2VgKSxcbiAgICApLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gICAgICBpZiAoc3RhdHVzID09ICdjb25maXJtJykge1xuICAgICAgICB0aGlzLl9GaWVsZEFkbWluU2VydmljZS5kZWxldGUocm93LmlkKS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgfSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlN1Y2Nlc3NmdWxseURlbGV0ZWRgKSk7XG4gICAgICAgICAgdGhpcy5saXN0LmdldCgpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6RmllbGRzJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGRzLXBhZ2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTBcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGNtcy1maWVsZC1ncm91cCAoT25Hcm91cENsaWNrQmFjayk9XCJmaWVsZEdyb3VwQ2hhbmdlKCRldmVudClcIj48L2Ntcy1maWVsZC1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgcHgtMiBweS1zbS0yICAgYm9yZGVyLWJvdHRvbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBYnBVaTo6U2VhcmNoJyB8IGFicExvY2FsaXphdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtM1wiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGlzdC5nZXQoKVwiPjxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgdGFibGUtZml4ZWQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUgY2xhc3M9XCJtYXRlcmlhbCBcIiBbcm93c109XCJkYXRhLml0ZW1zXCIgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5Nb2RlXT1cIkNvbHVtbk1vZGUuZm9yY2VcIiBbaGVhZGVySGVpZ2h0XT1cIjUwXCIgW2Zvb3RlckhlaWdodF09XCI1MFwiIHJvd0hlaWdodD1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlydHVhbGl6YXRpb25dPVwiZmFsc2VcIiBbZXh0ZXJuYWxQYWdpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb3VudF09XCJkYXRhLnRvdGFsQ291bnRcIiBbc2Nyb2xsYmFySF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpEaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiZGlzcGxheU5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJuYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6Rm9ybUNvbnRyb2xOYW1lJyB8IGFicExvY2FsaXphdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wPVwiZm9ybUNvbnRyb2xOYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6R3JvdXAnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImdyb3VwSWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyb3cuZ3JvdXBOYW1lfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpDcmVhdGlvblRpbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImNyZWF0aW9uVGltZVwiIFt3aWR0aF09XCIxOTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWV8ZGF0ZTonWVlZWS9NTS9kZCBISDptbTpzcycgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbc29ydGFibGVdPVwiZmFsc2VcIiBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbENsYXNzPVwiY2VsbENsYXNzUmlnaHRcIiBbZnJvemVuUmlnaHRdPVwidHJ1ZVwiIFt3aWR0aF09XCIxMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZT4gPGkgY2xhc3M9XCJtZS0xIGZhIGZhLWNvZ1wiPjwvaT4ge3snQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms9XCIvY21zL2FkbWluL2ZpZWxkcy97e3Jvdy5pZH19L2VkaXRcIj57eydBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG48L2FicC1wYWdlPiJdfQ==
|
|
109
|
+
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.FieldAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i1.LocalizationService }, { type: i4.Router }]; } });
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2ZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFPLHdCQUF3QixFQUFFLFdBQVcsRUFBdUMsTUFBTSxjQUFjLENBQUM7QUFFL0csT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7OztBQUUxRSxNQWlCYSxlQUFlO0lBRTFCLFlBQ2tCLElBQWlCLEVBQ3pCLGtCQUFxQyxFQUNyQyxPQUF1QixFQUN2QixZQUFpQyxFQUNqQyxvQkFBeUMsRUFDekMsTUFBYztRQUxOLFNBQUksR0FBSixJQUFJLENBQWE7UUFDekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBSWhCLHVCQUFrQixHQUFDLE1BQU0sQ0FBQyxp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QXlFVzs7U0Q1Q0UsZUFBZTs0RkFBZixlQUFlO2tCQWpCM0IsU0FBUzsrQkFDRSxZQUFZLGFBR1g7d0JBQ1QsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsNERBQTREO3dCQUM1RCx1RUFBdUU7d0JBQ3ZFLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7d0JBQ3BEOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsTUFBTTt5QkFDL0I7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEFCUCwgTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCBMaXN0U2VydmljZSwgTG9jYWxpemF0aW9uU2VydmljZSwgUGFnZWRSZXN1bHREdG8gfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UsIENvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1hdGlvbiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSwgRmllbGREdG8sIEdldEZpZWxkc0lucHV0IH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZmllbGRzJztcbmltcG9ydCB7IENvbHVtbk1vZGUgfSBmcm9tIFwiQHN3aW1sYW5lL25neC1kYXRhdGFibGVcIjtcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91cGRhdGUtbGlzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWZpZWxkcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWVsZHMuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgLy8gW1JlcXVpcmVkXVxuICAgIExpc3RTZXJ2aWNlLFxuICAgIC8vIFtPcHRpb25hbF1cbiAgICAvLyBQcm92aWRlIHRoaXMgdG9rZW4gaWYgeW91IHdhbnQgYSBkaWZmZXJlbnQgZGVib3VuY2UgdGltZS5cbiAgICAvLyBEZWZhdWx0IGlzIDMwMC4gQ2Fubm90IGJlIDAuIEFueSB2YWx1ZSBiZWxvdyAxMDAgaXMgbm90IHJlY29tbWVuZGVkLlxuICAgIHsgcHJvdmlkZTogTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCB1c2VWYWx1ZTogNTAwIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuRmllbGRzLFxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmllbGRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfRmllbGRBZG1pblNlcnZpY2U6IEZpZWxkQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICApIHtcbiAgICBcbiAgfVxuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZT1pbmplY3QoVXBkYXRlTGlzdFNlcnZpY2UpXG4gIC8qKuihqOagvOWNleWFg+agvOW4g+WxgOexu+WeiyAqL1xuICBDb2x1bW5Nb2RlID0gQ29sdW1uTW9kZTtcblxuICAvKirooajmoLzmlbDmja4gKi9cbiAgZGF0YTogUGFnZWRSZXN1bHREdG88RmllbGREdG8+ID0ge1xuICAgIGl0ZW1zOiBbXSxcbiAgICB0b3RhbENvdW50OiAwLFxuICB9O1xuXG4gIC8qKui/h+a7pOWZqCAqL1xuICBmaWx0ZXJzID0ge30gYXMgR2V0RmllbGRzSW5wdXQ7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ob29rVG9RdWVyeSgpXG4gICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgICB9KTtcbiAgfVxuICBnZXREYXRhKCl7XG4gICAgdGhpcy5saXN0LmdldCgpXG4gIH1cblxuXG4gIC8qKuWtl+auteWIhue7hOmAieaLqeWbnuiwgyAqL1xuICBmaWVsZEdyb3VwQ2hhbmdlKGV2ZW50KSB7XG4gICAgdGhpcy5maWx0ZXJzLmdyb3VwSWQgPSBldmVudFxuICAgIHRoaXMubGlzdC5wYWdlPTBcbiAgICB0aGlzLmxpc3QuZ2V0KClcbiAgfVxuXG5cblxuICAvKirkvb/nlKhhYnDnmoRsaXN06I635Y+W6KGo5qC855qE5a2X5q615pWw5o2u5YiX6KGoICovXG4gIGhvb2tUb1F1ZXJ5KCkge1xuICAgIGNvbnN0IGdldERhdGEgPSAocXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMpID0+IHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgLi4ucXVlcnksXG4gICAgICAuLi50aGlzLmZpbHRlcnMsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RGF0YSA9IChsaXN0OiBQYWdlZFJlc3VsdER0bzxGaWVsZER0bz4pID0+ICh0aGlzLmRhdGEgPSBsaXN0KTtcbiAgICB0aGlzLmxpc3QuaG9va1RvUXVlcnkoZ2V0RGF0YSkuc3Vic2NyaWJlKHNldERhdGEpO1xuICB9XG5cbiAgLyoq5paw5bu65a2X5q615oyJ6ZKuICovXG4gIHRvRmllbGRzQ3JlYXRlQnRuKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Ntcy9hZG1pbi9maWVsZHMvY3JlYXRlJ10sXG4gICAgICB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7fVxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIC8qKuWIoOmZpOWtl+autSAqL1xuICBkZWxldGVmaWVsZChyb3c6IGFueSkge1xuICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXG4gICAgICByb3cuZGlzcGxheU5hbWUsXG4gICAgICB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpJdGVtV2lsbEJlRGVsZXRlZE1lc3NhZ2VgKSxcbiAgICApLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gICAgICBpZiAoc3RhdHVzID09ICdjb25maXJtJykge1xuICAgICAgICB0aGlzLl9GaWVsZEFkbWluU2VydmljZS5kZWxldGUocm93LmlkKS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgfSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlN1Y2Nlc3NmdWxseURlbGV0ZWRgKSk7XG4gICAgICAgICAgdGhpcy5saXN0LmdldCgpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6RmllbGRzJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGRzLXBhZ2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTBcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGNtcy1maWVsZC1ncm91cCAoT25Hcm91cENsaWNrQmFjayk9XCJmaWVsZEdyb3VwQ2hhbmdlKCRldmVudClcIj48L2Ntcy1maWVsZC1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgcHgtMiBweS1zbS0yICAgYm9yZGVyLWJvdHRvbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBYnBVaTo6U2VhcmNoJyB8IGFicExvY2FsaXphdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtM1wiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGlzdC5nZXQoKVwiPjxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgdGFibGUtZml4ZWQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUgY2xhc3M9XCJtYXRlcmlhbCBcIiBbcm93c109XCJkYXRhLml0ZW1zXCIgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5Nb2RlXT1cIkNvbHVtbk1vZGUuZm9yY2VcIiBbaGVhZGVySGVpZ2h0XT1cIjUwXCIgW2Zvb3RlckhlaWdodF09XCI1MFwiIHJvd0hlaWdodD1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlydHVhbGl6YXRpb25dPVwiZmFsc2VcIiBbZXh0ZXJuYWxQYWdpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb3VudF09XCJkYXRhLnRvdGFsQ291bnRcIiBbc2Nyb2xsYmFySF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpEaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiZGlzcGxheU5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpOYW1lJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJuYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6Rm9ybUNvbnRyb2xOYW1lJyB8IGFicExvY2FsaXphdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wPVwiZm9ybUNvbnRyb2xOYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6R3JvdXAnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImdyb3VwSWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyb3cuZ3JvdXBOYW1lfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpDcmVhdGlvblRpbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImNyZWF0aW9uVGltZVwiIFt3aWR0aF09XCIxOTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWV8ZGF0ZTonWVlZWS9NTS9kZCBISDptbTpzcycgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbc29ydGFibGVdPVwiZmFsc2VcIiBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbENsYXNzPVwiY2VsbENsYXNzUmlnaHRcIiBbZnJvemVuUmlnaHRdPVwidHJ1ZVwiIFt3aWR0aF09XCIxMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZT4gPGkgY2xhc3M9XCJtZS0xIGZhIGZhLWNvZ1wiPjwvaT4ge3snQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms9XCIvY21zL2FkbWluL2ZpZWxkcy97e3Jvdy5pZH19L2VkaXRcIj57eydBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG48L2FicC1wYWdlPiJdfQ==
|