@c8y/ngx-components 1021.7.0 → 1021.13.3
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/alarms/alarms-date-filter.component.d.ts +34 -0
- package/alarms/alarms-date-filter.component.d.ts.map +1 -0
- package/alarms/alarms-filter.component.d.ts +2 -1
- package/alarms/alarms-filter.component.d.ts.map +1 -1
- package/alarms/alarms-view.service.d.ts +4 -2
- package/alarms/alarms-view.service.d.ts.map +1 -1
- package/alarms/alarms.component.d.ts +3 -1
- package/alarms/alarms.component.d.ts.map +1 -1
- package/alarms/alarms.model.d.ts +17 -1
- package/alarms/alarms.model.d.ts.map +1 -1
- package/alarms/alarms.module.d.ts +15 -13
- package/alarms/alarms.module.d.ts.map +1 -1
- package/branding/shared/data/store-branding.service.d.ts +5 -0
- package/branding/shared/data/store-branding.service.d.ts.map +1 -1
- package/branding/shared/lazy/branding/branding.component.d.ts.map +1 -1
- package/cockpit-config/cockpit-config.model.d.ts +1 -0
- package/cockpit-config/cockpit-config.model.d.ts.map +1 -1
- package/context-dashboard/dashboard-manager/dashboard-manager.module.d.ts.map +1 -1
- package/core/common/options.service.d.ts +1 -1
- package/core/common/options.service.d.ts.map +1 -1
- package/core/dashboard/dashboard.module.d.ts +19 -19
- package/core/dashboard/widget-change-event.model.d.ts +1 -1
- package/core/dashboard/widget-change-event.model.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts +2 -1
- package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context-query.service.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts +2 -1
- package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts +1 -14
- package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts.map +1 -1
- package/core/date-time-picker/date-time-picker.component.d.ts.map +1 -1
- package/core/forms/validation-pattern.d.ts +4 -0
- package/core/forms/validation-pattern.d.ts.map +1 -1
- package/core/plugins/plugins.service.d.ts +1 -1
- package/core/plugins/plugins.service.d.ts.map +1 -1
- package/esm2022/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.mjs +4 -4
- package/esm2022/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.mjs +3 -3
- package/esm2022/alarms/alarms-date-filter.component.mjs +139 -0
- package/esm2022/alarms/alarms-filter.component.mjs +11 -5
- package/esm2022/alarms/alarms-type-filter.component.mjs +3 -3
- package/esm2022/alarms/alarms-view.service.mjs +15 -2
- package/esm2022/alarms/alarms.component.mjs +12 -6
- package/esm2022/alarms/alarms.model.mjs +17 -1
- package/esm2022/alarms/alarms.module.mjs +11 -4
- package/esm2022/assets-navigator/asset-selector/asset-selector-node.component.mjs +3 -3
- package/esm2022/branding/shared/data/store-branding.service.mjs +24 -1
- package/esm2022/branding/shared/lazy/branding/branding.component.mjs +3 -1
- package/esm2022/cockpit-config/cockpit-config.model.mjs +3 -2
- package/esm2022/cockpit-config/feature-config.component.mjs +3 -3
- package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.module.mjs +5 -3
- package/esm2022/core/action-bar/action-bar.component.mjs +3 -3
- package/esm2022/core/common/options.service.mjs +3 -3
- package/esm2022/core/dashboard/dashboard.module.mjs +5 -4
- package/esm2022/core/dashboard/widget-change-event.model.mjs +1 -1
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context-helper.service.mjs +3 -2
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context-query.service.mjs +1 -1
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context.component.mjs +6 -5
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context.model.mjs +3 -47
- package/esm2022/core/date-time-picker/date-time-picker.component.mjs +7 -1
- package/esm2022/core/docs/defaults.items.mjs +2 -2
- package/esm2022/core/forms/validation-pattern.mjs +5 -1
- package/esm2022/core/list-display-switch/list-display-switch.component.mjs +3 -3
- package/esm2022/core/plugins/plugins.service.mjs +3 -3
- package/esm2022/core/router/context-route.guard.mjs +2 -2
- package/esm2022/core/search/search-input.component.mjs +3 -3
- package/esm2022/interval-picker/c8y-ngx-components-interval-picker.mjs +5 -0
- package/esm2022/interval-picker/index.mjs +3 -0
- package/esm2022/interval-picker/interval-picker.component.mjs +68 -0
- package/esm2022/interval-picker/interval-picker.model.mjs +47 -0
- package/esm2022/operations/bulk-operation-scheduler/operation-scheduler.component.mjs +7 -5
- package/esm2022/search/search-action.component.mjs +3 -3
- package/esm2022/tenants/custom-properties/custom-properties.component.mjs +90 -0
- package/esm2022/tenants/custom-properties/custom-properties.service.mjs +76 -0
- package/esm2022/tenants/custom-properties/custom-property-field/custom-property-field.component.mjs +29 -0
- package/esm2022/tenants/index.mjs +2 -1
- package/esm2022/tenants/tenant-limits/tenant-limits-definitions.mjs +92 -0
- package/esm2022/tenants/tenant-limits/tenant-limits.component.mjs +124 -0
- package/esm2022/tenants/tenants.module.mjs +42 -4
- package/esm2022/widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.mjs +2 -2
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +5 -5
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +184 -16
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs +2 -2
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +23 -0
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +2 -0
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs +4 -3
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +4 -2
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-interval-picker.mjs +120 -0
- package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +6 -4
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-search.mjs +2 -2
- package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tenants.mjs +416 -11
- package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +292 -372
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/interval-picker/c8y-ngx-components-interval-picker.d.ts.map +1 -0
- package/interval-picker/index.d.ts +3 -0
- package/interval-picker/index.d.ts.map +1 -0
- package/{core/dashboard/wiget-time-context/interval-picker → interval-picker}/interval-picker.component.d.ts +10 -2
- package/interval-picker/interval-picker.component.d.ts.map +1 -0
- package/interval-picker/interval-picker.model.d.ts +15 -0
- package/interval-picker/interval-picker.model.d.ts.map +1 -0
- package/locales/de.po +4 -1
- package/locales/en.po +3 -0
- package/locales/en_US.po +3 -0
- package/locales/es.po +3 -0
- package/locales/fr.po +3 -0
- package/locales/ja_JP.po +3 -0
- package/locales/locales.pot +47 -3
- package/locales/nl.po +3 -0
- package/locales/pl.po +3 -0
- package/locales/pt_BR.po +3 -0
- package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/tenants/custom-properties/custom-properties.component.d.ts +26 -0
- package/tenants/custom-properties/custom-properties.component.d.ts.map +1 -0
- package/tenants/custom-properties/custom-properties.service.d.ts +26 -0
- package/tenants/custom-properties/custom-properties.service.d.ts.map +1 -0
- package/tenants/custom-properties/custom-property-field/custom-property-field.component.d.ts +10 -0
- package/tenants/custom-properties/custom-property-field/custom-property-field.component.d.ts.map +1 -0
- package/tenants/index.d.ts +1 -0
- package/tenants/index.d.ts.map +1 -1
- package/tenants/tenant-limits/tenant-limits-definitions.d.ts +117 -0
- package/tenants/tenant-limits/tenant-limits-definitions.d.ts.map +1 -0
- package/tenants/tenant-limits/tenant-limits.component.d.ts +39 -0
- package/tenants/tenant-limits/tenant-limits.component.d.ts.map +1 -0
- package/tenants/tenants.module.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.d.ts.map +0 -1
- package/esm2022/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.mjs +0 -55
|
@@ -202,11 +202,11 @@ export class SearchInputComponent {
|
|
|
202
202
|
this.isLoading = term.length > 0;
|
|
203
203
|
}
|
|
204
204
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SearchInputComponent, deps: [{ token: i1.Router }, { token: i2.InventoryService }, { token: i3.InventorySearchService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
205
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: SearchInputComponent, selector: "c8y-search-input", inputs: { mode: "mode", enableCustomTemplatePlaceholder: "enableCustomTemplatePlaceholder", customPlaceholder: "customPlaceholder", externalTerm: "externalTerm", customDataQuery: "customDataQuery", container: "container", groupsOnly: "groupsOnly" }, outputs: { filter: "filter", search: "search", reset: "reset", onClick: "onClick" }, host: { listeners: { "document:keydown": "onKeydownHandler($event)" } }, viewQueries: [{ propertyName: "typeahead", first: true, predicate: TypeaheadComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: ["searchDropdown"], descendants: true }], ngImport: i0, template: "<div\n class=\"dropdown\"\n #searchDropdown=\"bs-dropdown\"\n [insideClick]=\"true\"\n (isOpenChange)=\"onOpenChange($event)\"\n [cdkTrapFocus]=\"searchDropdown.isOpen\"\n *ngIf=\"mode === 'search'\"\n dropdown\n>\n <button\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n [title]=\"'Search' | translate\"\n type=\"button\"\n dropdownToggle\n data-cy=\"search-input--search-btn\"\n >\n <i\n class=\"icon-2x\"\n c8yIcon=\"search\"\n ></i>\n </button>\n\n <div\n class=\"search-header-menu dropdown-menu dropdown-menu-right\"\n id=\"searchDropdown\"\n *dropdownMenu\n >\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n</div>\n\n<div\n class=\"search-header-inline\"\n *ngIf=\"mode === 'select'\"\n>\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n</div>\n<ng-template #form>\n <form\n [ngClass]=\"{ 'c8y-search-form': mode === 'search' }\"\n novalidate\n #searchForm=\"ngForm\"\n >\n <c8y-typeahead\n (onIconClick)=\"onReset($event)\"\n [icon]=\"term ? 'times' : 'search'\"\n title=\"Search\"\n placeholder=\"{{ customPlaceholder ? customPlaceholder : defaultPlaceholder }}\"\n name=\"selected\"\n [(ngModel)]=\"selected\"\n (keydown)=\"keyDown($event)\"\n [allowFreeEntries]=\"false\"\n [container]=\"container\"\n [highlightFirstItem]=\"true\"\n >\n <div\n class=\"c8y-list__item p-l-24 p-r-24 p-b-8 separator-bottom sticky-top p-t-4\"\n *ngIf=\"enableCustomTemplatePlaceholder && mode === 'search'\"\n >\n <ng-content></ng-content>\n </div>\n\n <!-- filter buttons -->\n <c8y-li\n *ngIf=\"term.length !== 0 && mode === 'search'\"\n [selectable]=\"false\"\n >\n <div class=\"d-flex\">\n <p class=\"m-r-4 text-muted\">\n <em translate>Searching by exact match. Click for other search options:</em>\n </p>\n <div class=\"btn-group btn-group-sm\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Starts with' | translate }}\"\n type=\"button\"\n data-cy=\"search-input--search-starts-with\"\n (click)=\"onFilter(term + '*')\"\n >\n {{ 'Starts with' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Contains' | translate }}\"\n type=\"button\"\n data-cy=\"search-input--search-contains\"\n (click)=\"onFilter('*' + term + '*')\"\n >\n {{ 'Contains' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Ends with' | translate }}\"\n type=\"button\"\n data-cy=\"search-input--search-ends-with\"\n (click)=\"onFilter('*' + term)\"\n >\n {{ 'Ends with' | translate }}\n </button>\n </div>\n </div>\n </c8y-li>\n\n <!-- Recent search -->\n <c8y-li\n class=\"p-l-24 p-r-24\"\n *ngIf=\"term.length === 0 && recentSearchResults.length > 0\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recent search views</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n *ngFor=\"let result of term.length === 0 ? recentSearchResults : []\"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n ></i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Recently registered devices -->\n <c8y-li\n class=\"p-l-24 p-r-24\"\n *ngIf=\"\n term.length === 0 && (recentlyRegisteredResults$ | async)?.data?.length > 0 && !groupsOnly\n \"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recently registered devices</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n *c8yFor=\"\n let result of term.length === 0 && !groupsOnly\n ? recentlyRegisteredResults$\n : { data: [] };\n loadMore: 'none'\n \"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n ></i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Search results -->\n <c8y-li\n class=\"p-l-24 p-r-24\"\n *ngIf=\"term.length !== 0\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block m-0\">\n <span translate>Search results</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n [title]=\"result.name\"\n *c8yFor=\"\n let result of results$;\n loadMore: 'auto';\n notFound: notFoundTemplate;\n loadingTemplate: loading;\n loadNextLabel: 'Find more\u2026'\n \"\n (click)=\"open($event, result, result.name)\"\n data-cy=\"search-input--search-results\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n ></i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- No search results found entry -->\n <ng-template #notFoundTemplate>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No match found.' | translate\"\n data-cy=\"search-input--empty-state\"\n [ngClass]=\"{ 'p-4': mode === 'search' }\"\n [horizontal]=\"true\"\n *ngIf=\"noMatch\"\n >\n <small\n translate\n *ngIf=\"mode === 'search'\"\n >\n Try to filter or open the asset grid to show all devices and groups.\n </small>\n <small\n translate\n *ngIf=\"mode === 'select'\"\n >\n Try to rephrase your search word.\n </small>\n </c8y-ui-empty-state>\n </ng-template>\n\n <!-- loading bar first entries -->\n <c8y-li *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </c8y-li>\n\n <!-- loading bar for loading more entries (inventory roles) -->\n <ng-template #loading>\n <c8y-li>\n <c8y-loading></c8y-loading>\n </c8y-li>\n </ng-template>\n\n <!-- more filter possibilities -->\n <c8y-li\n class=\"m-t-24 bg-level-2 p-t-16 p-b-16 p-l-24 p-r-24 sticky-bottom\"\n [selectable]=\"false\"\n *ngIf=\"mode === 'search'\"\n >\n <div class=\"d-flex a-i-center\">\n <i\n class=\"text-info m-r-4\"\n c8yIcon=\"info-circle\"\n ></i>\n <p\n class=\"m-r-8\"\n translate\n >\n Need more filter possibilities?\n </p>\n <button\n class=\"m-l-16 btn btn-default btn-sm\"\n title=\"{{ 'Go to the asset data table' | translate }}\"\n type=\"button\"\n (mousedown)=\"onOpenAssetTable()\"\n data-cy=\"search-input--asset-table-btn\"\n >\n {{ 'Go to the asset data table' | translate }}\n </button>\n </div>\n </c8y-li>\n </c8y-typeahead>\n </form>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i7.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i8.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i9.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i11.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i12.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: i13.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "component", type: i14.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i15.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i16.DeviceStatusComponent, selector: "device-status, c8y-device-status", inputs: ["mo", "size"] }, { kind: "pipe", type: i17.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i18.ShouldShowMoPipe, name: "shouldShowMo" }, { kind: "pipe", type: i19.GetGroupIconPipe, name: "getGroupIcon" }] }); }
|
|
205
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: SearchInputComponent, selector: "c8y-search-input", inputs: { mode: "mode", enableCustomTemplatePlaceholder: "enableCustomTemplatePlaceholder", customPlaceholder: "customPlaceholder", externalTerm: "externalTerm", customDataQuery: "customDataQuery", container: "container", groupsOnly: "groupsOnly" }, outputs: { filter: "filter", search: "search", reset: "reset", onClick: "onClick" }, host: { listeners: { "document:keydown": "onKeydownHandler($event)" } }, viewQueries: [{ propertyName: "typeahead", first: true, predicate: TypeaheadComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: ["searchDropdown"], descendants: true }], ngImport: i0, template: "<div\n class=\"dropdown\"\n #searchDropdown=\"bs-dropdown\"\n [insideClick]=\"true\"\n (isOpenChange)=\"onOpenChange($event)\"\n [cdkTrapFocus]=\"searchDropdown.isOpen\"\n *ngIf=\"mode === 'search'\"\n dropdown\n>\n <button\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n [title]=\"'Search' | translate\"\n type=\"button\"\n dropdownToggle\n data-cy=\"search-input--search-btn\"\n >\n <i\n class=\"icon-2x\"\n c8yIcon=\"search\"\n ></i>\n </button>\n\n <div\n class=\"search-header-menu dropdown-menu dropdown-menu-right\"\n id=\"searchDropdown\"\n *dropdownMenu\n >\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n</div>\n\n<div\n class=\"search-header-inline\"\n *ngIf=\"mode === 'select'\"\n>\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n</div>\n<ng-template #form>\n <form\n [ngClass]=\"{ 'c8y-search-form': mode === 'search' }\"\n novalidate\n #searchForm=\"ngForm\"\n >\n <c8y-typeahead\n (onIconClick)=\"onReset($event)\"\n [icon]=\"term ? 'times' : 'search'\"\n title=\"Search\"\n placeholder=\"{{ customPlaceholder ? customPlaceholder : defaultPlaceholder }}\"\n name=\"selected\"\n [(ngModel)]=\"selected\"\n (keydown)=\"keyDown($event)\"\n [allowFreeEntries]=\"false\"\n [container]=\"container\"\n [highlightFirstItem]=\"true\"\n >\n <div\n class=\"c8y-list__item p-b-8 separator-bottom sticky-top p-t-4\"\n *ngIf=\"enableCustomTemplatePlaceholder && mode === 'search'\"\n >\n <ng-content></ng-content>\n </div>\n\n <!-- filter buttons -->\n <c8y-li\n *ngIf=\"term.length !== 0 && mode === 'search'\"\n [selectable]=\"false\"\n >\n <div class=\"d-flex\">\n <p class=\"m-r-4 text-muted\">\n <em translate>Searching by exact match. Click for other search options:</em>\n </p>\n <div class=\"btn-group btn-group-sm\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Starts with' | translate }}\"\n type=\"button\"\n data-cy=\"search-input--search-starts-with\"\n (click)=\"onFilter(term + '*')\"\n >\n {{ 'Starts with' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Contains' | translate }}\"\n type=\"button\"\n data-cy=\"search-input--search-contains\"\n (click)=\"onFilter('*' + term + '*')\"\n >\n {{ 'Contains' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Ends with' | translate }}\"\n type=\"button\"\n data-cy=\"search-input--search-ends-with\"\n (click)=\"onFilter('*' + term)\"\n >\n {{ 'Ends with' | translate }}\n </button>\n </div>\n </div>\n </c8y-li>\n\n <!-- Recent search -->\n <c8y-li\n *ngIf=\"term.length === 0 && recentSearchResults.length > 0\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recent search views</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n *ngFor=\"let result of term.length === 0 ? recentSearchResults : []\"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n ></i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Recently registered devices -->\n <c8y-li\n *ngIf=\"\n term.length === 0 && (recentlyRegisteredResults$ | async)?.data?.length > 0 && !groupsOnly\n \"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recently registered devices</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n *c8yFor=\"\n let result of term.length === 0 && !groupsOnly\n ? recentlyRegisteredResults$\n : { data: [] };\n loadMore: 'none'\n \"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n ></i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Search results -->\n <c8y-li\n *ngIf=\"term.length !== 0\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block m-0\">\n <span translate>Search results</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n [title]=\"result.name\"\n *c8yFor=\"\n let result of results$;\n loadMore: 'auto';\n notFound: notFoundTemplate;\n loadingTemplate: loading;\n loadNextLabel: 'Find more\u2026'\n \"\n (click)=\"open($event, result, result.name)\"\n data-cy=\"search-input--search-results\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n ></i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- No search results found entry -->\n <ng-template #notFoundTemplate>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No match found.' | translate\"\n data-cy=\"search-input--empty-state\"\n [ngClass]=\"{ 'p-4': mode === 'search' }\"\n [horizontal]=\"true\"\n *ngIf=\"noMatch\"\n >\n <small\n translate\n *ngIf=\"mode === 'search'\"\n >\n Try to filter or open the asset grid to show all devices and groups.\n </small>\n <small\n translate\n *ngIf=\"mode === 'select'\"\n >\n Try to rephrase your search word.\n </small>\n </c8y-ui-empty-state>\n </ng-template>\n\n <!-- loading bar first entries -->\n <c8y-li *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </c8y-li>\n\n <!-- loading bar for loading more entries (inventory roles) -->\n <ng-template #loading>\n <c8y-li>\n <c8y-loading></c8y-loading>\n </c8y-li>\n </ng-template>\n\n <!-- more filter possibilities -->\n <c8y-li\n class=\"m-t-24 bg-level-2 p-t-16 p-b-16 p-l-24 p-r-24 sticky-bottom\"\n [selectable]=\"false\"\n *ngIf=\"mode === 'search'\"\n >\n <div class=\"d-flex a-i-center\">\n <i\n class=\"text-info m-r-4\"\n c8yIcon=\"info-circle\"\n ></i>\n <p\n class=\"m-r-8\"\n translate\n >\n Need more filter possibilities?\n </p>\n <button\n class=\"m-l-16 btn btn-default btn-sm\"\n title=\"{{ 'Go to the asset data table' | translate }}\"\n type=\"button\"\n (mousedown)=\"onOpenAssetTable()\"\n data-cy=\"search-input--asset-table-btn\"\n >\n {{ 'Go to the asset data table' | translate }}\n </button>\n </div>\n </c8y-li>\n </c8y-typeahead>\n </form>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i7.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i8.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i9.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i11.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i12.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: i13.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "component", type: i14.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i15.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i16.DeviceStatusComponent, selector: "device-status, c8y-device-status", inputs: ["mo", "size"] }, { kind: "pipe", type: i17.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i18.ShouldShowMoPipe, name: "shouldShowMo" }, { kind: "pipe", type: i19.GetGroupIconPipe, name: "getGroupIcon" }] }); }
|
|
206
206
|
}
|
|
207
207
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
208
208
|
type: Component,
|
|
209
|
-
args: [{ selector: 'c8y-search-input', template: "<div\n class=\"dropdown\"\n #searchDropdown=\"bs-dropdown\"\n [insideClick]=\"true\"\n (isOpenChange)=\"onOpenChange($event)\"\n [cdkTrapFocus]=\"searchDropdown.isOpen\"\n *ngIf=\"mode === 'search'\"\n dropdown\n>\n <button\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n [title]=\"'Search' | translate\"\n type=\"button\"\n dropdownToggle\n data-cy=\"search-input--search-btn\"\n >\n <i\n class=\"icon-2x\"\n c8yIcon=\"search\"\n ></i>\n </button>\n\n <div\n class=\"search-header-menu dropdown-menu dropdown-menu-right\"\n id=\"searchDropdown\"\n *dropdownMenu\n >\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n</div>\n\n<div\n class=\"search-header-inline\"\n *ngIf=\"mode === 'select'\"\n>\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n</div>\n<ng-template #form>\n <form\n [ngClass]=\"{ 'c8y-search-form': mode === 'search' }\"\n novalidate\n #searchForm=\"ngForm\"\n >\n <c8y-typeahead\n (onIconClick)=\"onReset($event)\"\n [icon]=\"term ? 'times' : 'search'\"\n title=\"Search\"\n placeholder=\"{{ customPlaceholder ? customPlaceholder : defaultPlaceholder }}\"\n name=\"selected\"\n [(ngModel)]=\"selected\"\n (keydown)=\"keyDown($event)\"\n [allowFreeEntries]=\"false\"\n [container]=\"container\"\n [highlightFirstItem]=\"true\"\n >\n <div\n class=\"c8y-list__item p-
|
|
209
|
+
args: [{ selector: 'c8y-search-input', template: "<div\n class=\"dropdown\"\n #searchDropdown=\"bs-dropdown\"\n [insideClick]=\"true\"\n (isOpenChange)=\"onOpenChange($event)\"\n [cdkTrapFocus]=\"searchDropdown.isOpen\"\n *ngIf=\"mode === 'search'\"\n dropdown\n>\n <button\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n [title]=\"'Search' | translate\"\n type=\"button\"\n dropdownToggle\n data-cy=\"search-input--search-btn\"\n >\n <i\n class=\"icon-2x\"\n c8yIcon=\"search\"\n ></i>\n </button>\n\n <div\n class=\"search-header-menu dropdown-menu dropdown-menu-right\"\n id=\"searchDropdown\"\n *dropdownMenu\n >\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n</div>\n\n<div\n class=\"search-header-inline\"\n *ngIf=\"mode === 'select'\"\n>\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n</div>\n<ng-template #form>\n <form\n [ngClass]=\"{ 'c8y-search-form': mode === 'search' }\"\n novalidate\n #searchForm=\"ngForm\"\n >\n <c8y-typeahead\n (onIconClick)=\"onReset($event)\"\n [icon]=\"term ? 'times' : 'search'\"\n title=\"Search\"\n placeholder=\"{{ customPlaceholder ? customPlaceholder : defaultPlaceholder }}\"\n name=\"selected\"\n [(ngModel)]=\"selected\"\n (keydown)=\"keyDown($event)\"\n [allowFreeEntries]=\"false\"\n [container]=\"container\"\n [highlightFirstItem]=\"true\"\n >\n <div\n class=\"c8y-list__item p-b-8 separator-bottom sticky-top p-t-4\"\n *ngIf=\"enableCustomTemplatePlaceholder && mode === 'search'\"\n >\n <ng-content></ng-content>\n </div>\n\n <!-- filter buttons -->\n <c8y-li\n *ngIf=\"term.length !== 0 && mode === 'search'\"\n [selectable]=\"false\"\n >\n <div class=\"d-flex\">\n <p class=\"m-r-4 text-muted\">\n <em translate>Searching by exact match. Click for other search options:</em>\n </p>\n <div class=\"btn-group btn-group-sm\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Starts with' | translate }}\"\n type=\"button\"\n data-cy=\"search-input--search-starts-with\"\n (click)=\"onFilter(term + '*')\"\n >\n {{ 'Starts with' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Contains' | translate }}\"\n type=\"button\"\n data-cy=\"search-input--search-contains\"\n (click)=\"onFilter('*' + term + '*')\"\n >\n {{ 'Contains' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Ends with' | translate }}\"\n type=\"button\"\n data-cy=\"search-input--search-ends-with\"\n (click)=\"onFilter('*' + term)\"\n >\n {{ 'Ends with' | translate }}\n </button>\n </div>\n </div>\n </c8y-li>\n\n <!-- Recent search -->\n <c8y-li\n *ngIf=\"term.length === 0 && recentSearchResults.length > 0\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recent search views</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n *ngFor=\"let result of term.length === 0 ? recentSearchResults : []\"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n ></i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Recently registered devices -->\n <c8y-li\n *ngIf=\"\n term.length === 0 && (recentlyRegisteredResults$ | async)?.data?.length > 0 && !groupsOnly\n \"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recently registered devices</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n *c8yFor=\"\n let result of term.length === 0 && !groupsOnly\n ? recentlyRegisteredResults$\n : { data: [] };\n loadMore: 'none'\n \"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n ></i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Search results -->\n <c8y-li\n *ngIf=\"term.length !== 0\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block m-0\">\n <span translate>Search results</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n [title]=\"result.name\"\n *c8yFor=\"\n let result of results$;\n loadMore: 'auto';\n notFound: notFoundTemplate;\n loadingTemplate: loading;\n loadNextLabel: 'Find more\u2026'\n \"\n (click)=\"open($event, result, result.name)\"\n data-cy=\"search-input--search-results\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n ></i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- No search results found entry -->\n <ng-template #notFoundTemplate>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No match found.' | translate\"\n data-cy=\"search-input--empty-state\"\n [ngClass]=\"{ 'p-4': mode === 'search' }\"\n [horizontal]=\"true\"\n *ngIf=\"noMatch\"\n >\n <small\n translate\n *ngIf=\"mode === 'search'\"\n >\n Try to filter or open the asset grid to show all devices and groups.\n </small>\n <small\n translate\n *ngIf=\"mode === 'select'\"\n >\n Try to rephrase your search word.\n </small>\n </c8y-ui-empty-state>\n </ng-template>\n\n <!-- loading bar first entries -->\n <c8y-li *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </c8y-li>\n\n <!-- loading bar for loading more entries (inventory roles) -->\n <ng-template #loading>\n <c8y-li>\n <c8y-loading></c8y-loading>\n </c8y-li>\n </ng-template>\n\n <!-- more filter possibilities -->\n <c8y-li\n class=\"m-t-24 bg-level-2 p-t-16 p-b-16 p-l-24 p-r-24 sticky-bottom\"\n [selectable]=\"false\"\n *ngIf=\"mode === 'search'\"\n >\n <div class=\"d-flex a-i-center\">\n <i\n class=\"text-info m-r-4\"\n c8yIcon=\"info-circle\"\n ></i>\n <p\n class=\"m-r-8\"\n translate\n >\n Need more filter possibilities?\n </p>\n <button\n class=\"m-l-16 btn btn-default btn-sm\"\n title=\"{{ 'Go to the asset data table' | translate }}\"\n type=\"button\"\n (mousedown)=\"onOpenAssetTable()\"\n data-cy=\"search-input--asset-table-btn\"\n >\n {{ 'Go to the asset data table' | translate }}\n </button>\n </div>\n </c8y-li>\n </c8y-typeahead>\n </form>\n</ng-template>\n" }]
|
|
210
210
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.InventoryService }, { type: i3.InventorySearchService }, { type: i0.ChangeDetectorRef }], propDecorators: { mode: [{
|
|
211
211
|
type: Input
|
|
212
212
|
}], enableCustomTemplatePlaceholder: [{
|
|
@@ -239,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
239
239
|
type: HostListener,
|
|
240
240
|
args: ['document:keydown', ['$event']]
|
|
241
241
|
}] } });
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2VhcmNoL3NlYXJjaC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3NlYXJjaC9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFrQixnQkFBZ0IsRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFpQixNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTXBFLE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9COztPQUVHO0lBQ0gsSUFDSSxlQUFlLENBQUMsS0FBcUU7UUFDdkYsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FB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RSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UsIElSZXN1bHRMaXN0LCBQYWdpbmcgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcbmltcG9ydCB7IEJzRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IGRlZmVyLCBlbXB0eSwgbWVyZ2UsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBVbmFyeUZ1bmN0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWFuYWdlZE9iamVjdFR5cGUgfSBmcm9tICcuLi9jb21tb24vbWFuYWdlZC1vYmplY3QtdHlwZSc7XG5pbXBvcnQgeyBUeXBlYWhlYWRDb21wb25lbnQgfSBmcm9tICcuLi9zZWxlY3QvdHlwZWFoZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnZlbnRvcnlTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9pbnZlbnRvcnktc2VhcmNoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktc2VhcmNoLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoSW5wdXRDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBtb2RlOiAnc2VhcmNoJyB8ICdzZWxlY3QnID0gJ3NlYXJjaCc7XG5cbiAgLyoqXG4gICAqIFVubG9ja3MgdGhlIGFiaWxpdHkgdG8gcGxhY2UgYSBjdXN0b20gdGVtcGxhdGUgdW5kZXIgdGhlIHNlYXJjaCBpbnB1dC5cbiAgICovXG4gIEBJbnB1dCgpIGVuYWJsZUN1c3RvbVRlbXBsYXRlUGxhY2Vob2xkZXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBjdXN0b20gcGxhY2Vob2xkZXIgaW4gdGhlIHNlYXJjaCBiYXIuXG4gICAqL1xuICBASW5wdXQoKSBjdXN0b21QbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFdmVudCwgd2hpY2ggaXMgdXNlZCB0byBzZXQgYSBuZXcgZXh0ZXJuYWwgdGVybS4gUGFzc2luZyBudWxsIHdpbGwgcmUtZXhlY3V0ZSB0aGUgcXVlcnkgdG8gQkUuXG4gICAqIFRoaXMgYWxsb3dzIG5ldyBmaWx0ZXJzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0ZXJtLlxuICAgKi9cbiAgQElucHV0KCkgZXh0ZXJuYWxUZXJtOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcbiAgLyoqXG4gICAqIEEgY3VzdG9tIHF1ZXJ5IHNldHRlciB1c2VkIHRvIG92ZXJyaWRlIHRoZSBzdGFuZGFyZCBxdWVyeS4gSW4gb3JkZXIgdG8gb2J0YWluIGRhdGEuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY3VzdG9tRGF0YVF1ZXJ5KHF1ZXJ5OiBVbmFyeUZ1bmN0aW9uPHN0cmluZywgT2JzZXJ2YWJsZTxJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4+Pikge1xuICAgIGlmIChxdWVyeSkge1xuICAgICAgdGhpcy5jdXN0b21RdWVyeSA9IHF1ZXJ5O1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBjb250YWluZXI6ICcnIHwgJ2JvZHknID0gJyc7XG5cbiAgQElucHV0KCkgZ3JvdXBzT25seSA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlc2V0ID0gbmV3IEV2ZW50RW1pdHRlcjxJTWFuYWdlZE9iamVjdD4oKTtcblxuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8SU1hbmFnZWRPYmplY3Q+KCk7XG5cbiAgZGV2aWNlVHlwZTogdHlwZW9mIE1hbmFnZWRPYmplY3RUeXBlID0gTWFuYWdlZE9iamVjdFR5cGU7XG4gIHRlcm0gPSAnJztcbiAgZGVmYXVsdFBsYWNlaG9sZGVyID0gZ2V0dGV4dCgnU2VhcmNoIGZvciBncm91cHMgb3IgYXNzZXRz4oCmJyk7XG4gIHNlbGVjdGVkO1xuXG4gIGN1c3RvbVF1ZXJ5OiAodGV4dDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj47XG4gIHJlc3VsdHMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj47XG4gIHJlY2VudFNlYXJjaFJlc3VsdHM6IElNYW5hZ2VkT2JqZWN0W10gPSBbXTtcbiAgcmVjZW50bHlSZWdpc3RlcmVkUmVzdWx0cyQ6IE9ic2VydmFibGU8SVJlc3VsdExpc3Q8SU1hbmFnZWRPYmplY3Q+PjtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIG5vTWF0Y2ggPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IFJFQ0VOVF9TRUFSQ0hfU1RPUkFHRV9LRVkgPSAncmVjZW50X3NlYXJjaF92aWV3JztcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfUkVDRU5UX1NFQVJDSF9SRVNVTFRTID0gNTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0ZJTFRFUjogb2JqZWN0ID0ge1xuICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlLFxuICAgIHBhZ2VTaXplOiA1LFxuICAgIHdpdGhDaGlsZHJlbjogZmFsc2VcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBLRVlDT0RFX0VOVEVSID0gJ0VudGVyJztcbiAgcHJpdmF0ZSByZWFkb25seSBLRVlDT0RFX0VTQyA9ICdFc2NhcGUnO1xuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoVHlwZWFoZWFkQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJpdmF0ZSB0eXBlYWhlYWQ6IFR5cGVhaGVhZENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hEcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwcml2YXRlIGRyb3Bkb3duOiBCc0Ryb3Bkb3duRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnk6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnlTZWFyY2hTZXJ2aWNlOiBJbnZlbnRvcnlTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCByZWNlbnRTZWFyY2hJZHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuUkVDRU5UX1NFQVJDSF9TVE9SQUdFX0tFWSkpO1xuICAgIGlmIChyZWNlbnRTZWFyY2hJZHMgJiYgcmVjZW50U2VhcmNoSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5pbnZlbnRvcnkubGlzdCh7IGlkczogcmVjZW50U2VhcmNoSWRzLmpvaW4oJywnKSB9KTtcbiAgICAgIHRoaXMucmVjZW50U2VhcmNoUmVzdWx0cyA9IHRoaXMuZ3JvdXBzT25seVxuICAgICAgICA/IHRoaXMuaW52ZW50b3J5U2VhcmNoU2VydmljZS5maWx0ZXJPbmx5R3JvdXBzKGRhdGEpXG4gICAgICAgIDogZGF0YTtcbiAgICAgIHRoaXMucmVjZW50bHlSZWdpc3RlcmVkUmVzdWx0cyQgPSBkZWZlcigoKSA9PlxuICAgICAgICB0aGlzLmludmVudG9yeS5saXN0KHtcbiAgICAgICAgICBxOiAnJG9yZGVyYnk9Y3JlYXRpb25UaW1lIGRlc2MnLFxuICAgICAgICAgIC4uLnRoaXMuREVGQVVMVF9GSUxURVJcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdzZWxlY3QnKSB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN1YnNjcmliZU9uU2VhcmNoKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbFRlcm0pIHtcbiAgICAgIHRoaXMuZXh0ZXJuYWxUZXJtLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSh0ZXJtID0+IHtcbiAgICAgICAgaWYgKHRlcm0gPT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnR5cGVhaGVhZC5vblNlYXJjaC5lbWl0KHRoaXMudGVybSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudHlwZWFoZWFkLm9uU2VhcmNoLmVtaXQodGVybSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09IHRoaXMuS0VZQ09ERV9FU0MpIHtcbiAgICAgIHRoaXMuaGlkZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgb25PcGVuQ2hhbmdlKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc09wZW4pIHtcbiAgICAgIC8vIG5lZWRzIHRvIHJlcXVlc3QgYW4gYW5pbWF0aW9uIGZyYW1lIGFzXG4gICAgICAvLyBvdGhlcndpc2UgdGhlIHR5cGVhaGVhZCBpcyB1bmRlZmluZWRcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlT25TZWFyY2goKTtcbiAgICAgICAgdGhpcy50eXBlYWhlYWQuZHJvcGRvd24uc2hvdygpO1xuICAgICAgICB0aGlzLnR5cGVhaGVhZC5zZWFyY2hDb250cm9sLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW4oZXZlbnQ6IEV2ZW50LCBtbzogSU1hbmFnZWRPYmplY3QsIHRlcm0/KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgaXNBbHJlYWR5UmVjZW50ID0gdGhpcy5yZWNlbnRTZWFyY2hSZXN1bHRzLmZpbmQoKHsgaWQgfSkgPT4gaWQgPT09IG1vLmlkKTtcbiAgICBpZiAoIWlzQWxyZWFkeVJlY2VudCkge1xuICAgICAgdGhpcy5yZWNlbnRTZWFyY2hSZXN1bHRzLnVuc2hpZnQobW8pO1xuICAgICAgdGhpcy5yZWNlbnRTZWFyY2hSZXN1bHRzID0gdGhpcy5yZWNlbnRTZWFyY2hSZXN1bHRzLnNsaWNlKDAsIHRoaXMuTUFYX1JFQ0VOVF9TRUFSQ0hfUkVTVUxUUyk7XG4gICAgfVxuICAgIGNvbnN0IHJlY2VudFNlYXJjaElkcyA9IHRoaXMucmVjZW50U2VhcmNoUmVzdWx0cy5tYXAoKHsgaWQgfSkgPT4gaWQpO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuUkVDRU5UX1NFQVJDSF9TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkocmVjZW50U2VhcmNoSWRzKSk7XG4gICAgaWYgKHRlcm0pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBtbztcbiAgICAgIHRoaXMudGVybSA9IHRlcm07XG4gICAgfVxuICAgIHRoaXMub25DbGljay5lbWl0KG1vKTtcbiAgICB0aGlzLmhpZGVEcm9wZG93bigpO1xuICB9XG5cbiAgb25SZXNldChzdGF0dXM6IHsgaWNvbjogc3RyaW5nOyAkZXZlbnQ6IE1vdXNlRXZlbnQgfSkge1xuICAgIHN0YXR1cy4kZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5yZXNldC5lbWl0KHRoaXMuc2VsZWN0ZWQpO1xuICAgIHRoaXMudHlwZWFoZWFkLm9uU2VhcmNoLmVtaXQoJycpO1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50eXBlYWhlYWQuc2VhcmNoQ29udHJvbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBrZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gdGhpcy5LRVlDT0RFX0VOVEVSKSB7XG4gICAgICAvLyBlbnRlciBoaXQgY2FuIGJlIGZhc3RlciB0aGVuIHR5cGVhaGVhZCBkZWJvdW5jZSxcbiAgICAgIC8vIHRoZXJlZm9yZSB3ZSB0YWtlIHRoZSB0ZXJtIGZyb20gdGhlIERPTSBlbGVtZW50XG4gICAgICAvLyBpdHNlbGY6XG4gICAgICBjb25zdCBzZWFyY2hUZXJtID0gKGV2ZW50LnRhcmdldCBhcyBhbnkpLnZhbHVlO1xuICAgICAgdGhpcy5vblNlYXJjaChzZWFyY2hUZXJtKTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaChzZWFyY2g6IHN0cmluZykge1xuICAgIHRoaXMuc2VhcmNoLmVtaXQoc2VhcmNoKTtcbiAgICB0aGlzLmhpZGVEcm9wZG93bigpO1xuICB9XG5cbiAgb25GaWx0ZXIoc2VhcmNoOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlci5lbWl0KHNlYXJjaCk7XG4gICAgdGhpcy5oaWRlRHJvcGRvd24oKTtcbiAgfVxuXG4gIG9uT3BlbkFzc2V0VGFibGUoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2Fzc2V0c2VhcmNoJyk7XG4gICAgdGhpcy5oaWRlRHJvcGRvd24oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLm9uRGVzdHJveSQpIHtcbiAgICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZGVEcm9wZG93bigpIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bikge1xuICAgICAgdGhpcy5kcm9wZG93bi5oaWRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZWFoZWFkICYmIHRoaXMudHlwZWFoZWFkLmRyb3Bkb3duKSB7XG4gICAgICB0aGlzLnR5cGVhaGVhZC5kcm9wZG93bi5oaWRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPblNlYXJjaCgpIHtcbiAgICBpZiAoIXRoaXMucmVzdWx0cyQpIHtcbiAgICAgIHRoaXMucmVzdWx0cyQgPSB0aGlzLnR5cGVhaGVhZC5vblNlYXJjaC5waXBlKFxuICAgICAgICB0YXAodGVybSA9PiB0aGlzLm9uVHlwaW5nU3RhcnRlZCh0ZXJtKSksXG4gICAgICAgIHN3aXRjaE1hcCh0ZXJtID0+IHRoaXMubWVyZ2VSZXF1ZXN0KHRlcm0pKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lcmdlUmVxdWVzdCh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4ge1xuICAgIHJldHVybiBtZXJnZShcbiAgICAgIG9mKHsgZGF0YTogW10gfSBhcyBJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4pLFxuICAgICAgdGhpcy5oYW5kbGVRdWVyeSh0ZXJtKS5waXBlKHRhcCgoeyBkYXRhLCBwYWdpbmcgfSkgPT4gdGhpcy5vbkxvYWRpbmdEb25lKGRhdGEsIHBhZ2luZykpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVF1ZXJ5KHRlcm06IHN0cmluZykge1xuICAgIGlmICghdGVybSkge1xuICAgICAgcmV0dXJuIGVtcHR5KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmN1c3RvbVF1ZXJ5KSB7XG4gICAgICByZXR1cm4gZGVmZXIoKCkgPT4gdGhpcy5jdXN0b21RdWVyeSh0ZXJtKSk7XG4gICAgfVxuICAgIHJldHVybiBkZWZlcigoKSA9PlxuICAgICAgdGhpcy5ncm91cHNPbmx5XG4gICAgICAgID8gdGhpcy5pbnZlbnRvcnlTZWFyY2hTZXJ2aWNlLnNlYXJjaEdyb3Vwcyh0ZXJtKVxuICAgICAgICA6IHRoaXMuaW52ZW50b3J5U2VhcmNoU2VydmljZS5zZWFyY2godGVybSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkxvYWRpbmdEb25lKGRhdGE6IElNYW5hZ2VkT2JqZWN0W10sIHBhZ2luZzogUGFnaW5nPElNYW5hZ2VkT2JqZWN0Pikge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5ub01hdGNoID0gcGFnaW5nICYmIHBhZ2luZy5uZXh0UGFnZSA9PT0gbnVsbCAmJiBkYXRhLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgb25UeXBpbmdTdGFydGVkKHRlcm0pIHtcbiAgICB0aGlzLm5vTWF0Y2ggPSBmYWxzZTtcbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdGVybS5sZW5ndGggPiAwO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZHJvcGRvd25cIlxuICAjc2VhcmNoRHJvcGRvd249XCJicy1kcm9wZG93blwiXG4gIFtpbnNpZGVDbGlja109XCJ0cnVlXCJcbiAgKGlzT3BlbkNoYW5nZSk9XCJvbk9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gIFtjZGtUcmFwRm9jdXNdPVwic2VhcmNoRHJvcGRvd24uaXNPcGVuXCJcbiAgKm5nSWY9XCJtb2RlID09PSAnc2VhcmNoJ1wiXG4gIGRyb3Bkb3duXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cIm1haW4taGVhZGVyLWJ1dHRvbiBkcm9wZG93bi10b2dnbGUgYzh5LWRyb3Bkb3duXCJcbiAgICBbdGl0bGVdPVwiJ1NlYXJjaCcgfCB0cmFuc2xhdGVcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgZGF0YS1jeT1cInNlYXJjaC1pbnB1dC0tc2VhcmNoLWJ0blwiXG4gID5cbiAgICA8aVxuICAgICAgY2xhc3M9XCJpY29uLTJ4XCJcbiAgICAgIGM4eUljb249XCJzZWFyY2hcIlxuICAgID48L2k+XG4gIDwvYnV0dG9uPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInNlYXJjaC1oZWFkZXItbWVudSBkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIlxuICAgIGlkPVwic2VhcmNoRHJvcGRvd25cIlxuICAgICpkcm9wZG93bk1lbnVcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb3JtXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXZcbiAgY2xhc3M9XCJzZWFyY2gtaGVhZGVyLWlubGluZVwiXG4gICpuZ0lmPVwibW9kZSA9PT0gJ3NlbGVjdCdcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9ybVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2Zvcm0+XG4gIDxmb3JtXG4gICAgW25nQ2xhc3NdPVwieyAnYzh5LXNlYXJjaC1mb3JtJzogbW9kZSA9PT0gJ3NlYXJjaCcgfVwiXG4gICAgbm92YWxpZGF0ZVxuICAgICNzZWFyY2hGb3JtPVwibmdGb3JtXCJcbiAgPlxuICAgIDxjOHktdHlwZWFoZWFkXG4gICAgICAob25JY29uQ2xpY2spPVwib25SZXNldCgkZXZlbnQpXCJcbiAgICAgIFtpY29uXT1cInRlcm0gPyAndGltZXMnIDogJ3NlYXJjaCdcIlxuICAgICAgdGl0bGU9XCJTZWFyY2hcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBjdXN0b21QbGFjZWhvbGRlciA/IGN1c3RvbVBsYWNlaG9sZGVyIDogZGVmYXVsdFBsYWNlaG9sZGVyIH19XCJcbiAgICAgIG5hbWU9XCJzZWxlY3RlZFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkXCJcbiAgICAgIChrZXlkb3duKT1cImtleURvd24oJGV2ZW50KVwiXG4gICAgICBbYWxsb3dGcmVlRW50cmllc109XCJmYWxzZVwiXG4gICAgICBbY29udGFpbmVyXT1cImNvbnRhaW5lclwiXG4gICAgICBbaGlnaGxpZ2h0Rmlyc3RJdGVtXT1cInRydWVcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjOHktbGlzdF9faXRlbSBwLWwtMjQgcC1yLTI0IHAtYi04IHNlcGFyYXRvci1ib3R0b20gc3RpY2t5LXRvcCBwLXQtNFwiXG4gICAgICAgICpuZ0lmPVwiZW5hYmxlQ3VzdG9tVGVtcGxhdGVQbGFjZWhvbGRlciAmJiBtb2RlID09PSAnc2VhcmNoJ1wiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIGZpbHRlciBidXR0b25zIC0tPlxuICAgICAgPGM4eS1saVxuICAgICAgICAqbmdJZj1cInRlcm0ubGVuZ3RoICE9PSAwICYmIG1vZGUgPT09ICdzZWFyY2gnXCJcbiAgICAgICAgW3NlbGVjdGFibGVdPVwiZmFsc2VcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJtLXItNCB0ZXh0LW11dGVkXCI+XG4gICAgICAgICAgICA8ZW0gdHJhbnNsYXRlPlNlYXJjaGluZyBieSBleGFjdCBtYXRjaC4gQ2xpY2sgZm9yIG90aGVyIHNlYXJjaCBvcHRpb25zOjwvZW0+XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgYnRuLWdyb3VwLXNtXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnU3RhcnRzIHdpdGgnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJzZWFyY2gtaW5wdXQtLXNlYXJjaC1zdGFydHMtd2l0aFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkZpbHRlcih0ZXJtICsgJyonKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdTdGFydHMgd2l0aCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0NvbnRhaW5zJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwic2VhcmNoLWlucHV0LS1zZWFyY2gtY29udGFpbnNcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWx0ZXIoJyonICsgdGVybSArICcqJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnQ29udGFpbnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdFbmRzIHdpdGgnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJzZWFyY2gtaW5wdXQtLXNlYXJjaC1lbmRzLXdpdGhcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWx0ZXIoJyonICsgdGVybSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnRW5kcyB3aXRoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktbGk+XG5cbiAgICAgIDwhLS0gUmVjZW50IHNlYXJjaCAtLT5cbiAgICAgIDxjOHktbGlcbiAgICAgICAgY2xhc3M9XCJwLWwtMjQgcC1yLTI0XCJcbiAgICAgICAgKm5nSWY9XCJ0ZXJtLmxlbmd0aCA9PT0gMCAmJiByZWNlbnRTZWFyY2hSZXN1bHRzLmxlbmd0aCA+IDBcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9ja1wiPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5SZWNlbnQgc2VhcmNoIHZpZXdzPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYzh5LWxpPlxuICAgICAgPGM4eS1saVxuICAgICAgICBjbGFzcz1cImM4eS1saXN0X19pdGVtLS1saW5rIG0tbC0xNiBtLXItMTZcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgcmVzdWx0IG9mIHRlcm0ubGVuZ3RoID09PSAwID8gcmVjZW50U2VhcmNoUmVzdWx0cyA6IFtdXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW4oJGV2ZW50LCByZXN1bHQsIHJlc3VsdC5uYW1lKVwiXG4gICAgICA+XG4gICAgICAgIDxjOHktbGktaWNvbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzdWx0IHwgc2hvdWxkU2hvd01vOiBkZXZpY2VUeXBlLkRFVklDRTsgZWxzZSBncm91cFwiPlxuICAgICAgICAgICAgPGRldmljZS1zdGF0dXMgW21vXT1cInJlc3VsdFwiPjwvZGV2aWNlLXN0YXR1cz5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2dyb3VwPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJjOHktaWNvbi1kdW9jb2xvclwiXG4gICAgICAgICAgICAgIFtjOHlJY29uXT1cInJlc3VsdCB8IGdldEdyb3VwSWNvbiB8IGFzeW5jXCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9jOHktbGktaWNvbj5cbiAgICAgICAge3sgcmVzdWx0Lm5hbWUgfHwgJy0tJyB9fVxuICAgICAgPC9jOHktbGk+XG5cbiAgICAgIDwhLS0gUmVjZW50bHkgcmVnaXN0ZXJlZCBkZXZpY2VzIC0tPlxuICAgICAgPGM4eS1saVxuICAgICAgICBjbGFzcz1cInAtbC0yNCBwLXItMjRcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIHRlcm0ubGVuZ3RoID09PSAwICYmIChyZWNlbnRseVJlZ2lzdGVyZWRSZXN1bHRzJCB8IGFzeW5jKT8uZGF0YT8ubGVuZ3RoID4gMCAmJiAhZ3JvdXBzT25seVxuICAgICAgICBcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9ja1wiPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5SZWNlbnRseSByZWdpc3RlcmVkIGRldmljZXM8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktbGk+XG4gICAgICA8Yzh5LWxpXG4gICAgICAgIGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW0tLWxpbmsgbS1sLTE2IG0tci0xNlwiXG4gICAgICAgICpjOHlGb3I9XCJcbiAgICAgICAgICBsZXQgcmVzdWx0IG9mIHRlcm0ubGVuZ3RoID09PSAwICYmICFncm91cHNPbmx5XG4gICAgICAgICAgICA/IHJlY2VudGx5UmVnaXN0ZXJlZFJlc3VsdHMkXG4gICAgICAgICAgICA6IHsgZGF0YTogW10gfTtcbiAgICAgICAgICBsb2FkTW9yZTogJ25vbmUnXG4gICAgICAgIFwiXG4gICAgICAgIChjbGljayk9XCJvcGVuKCRldmVudCwgcmVzdWx0LCByZXN1bHQubmFtZSlcIlxuICAgICAgPlxuICAgICAgICA8Yzh5LWxpLWljb24+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3VsdCB8IHNob3VsZFNob3dNbzogZGV2aWNlVHlwZS5ERVZJQ0U7IGVsc2UgZ3JvdXBcIj5cbiAgICAgICAgICAgIDxkZXZpY2Utc3RhdHVzIFttb109XCJyZXN1bHRcIj48L2RldmljZS1zdGF0dXM+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNncm91cD5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwiYzh5LWljb24tZHVvY29sb3JcIlxuICAgICAgICAgICAgICBbYzh5SWNvbl09XCJyZXN1bHQgfCBnZXRHcm91cEljb24gfCBhc3luY1wiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYzh5LWxpLWljb24+XG4gICAgICAgIHt7IHJlc3VsdC5uYW1lIHx8ICctLScgfX1cbiAgICAgIDwvYzh5LWxpPlxuXG4gICAgICA8IS0tIFNlYXJjaCByZXN1bHRzIC0tPlxuICAgICAgPGM4eS1saVxuICAgICAgICBjbGFzcz1cInAtbC0yNCBwLXItMjRcIlxuICAgICAgICAqbmdJZj1cInRlcm0ubGVuZ3RoICE9PSAwXCJcbiAgICAgICAgW3NlbGVjdGFibGVdPVwiZmFsc2VcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kIGZvcm0tYmxvY2sgbS0wXCI+XG4gICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPlNlYXJjaCByZXN1bHRzPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYzh5LWxpPlxuICAgICAgPGM4eS1saVxuICAgICAgICBjbGFzcz1cImM4eS1saXN0X19pdGVtLS1saW5rIG0tbC0xNiBtLXItMTZcIlxuICAgICAgICBbdGl0bGVdPVwicmVzdWx0Lm5hbWVcIlxuICAgICAgICAqYzh5Rm9yPVwiXG4gICAgICAgICAgbGV0IHJlc3VsdCBvZiByZXN1bHRzJDtcbiAgICAgICAgICBsb2FkTW9yZTogJ2F1dG8nO1xuICAgICAgICAgIG5vdEZvdW5kOiBub3RGb3VuZFRlbXBsYXRlO1xuICAgICAgICAgIGxvYWRpbmdUZW1wbGF0ZTogbG9hZGluZztcbiAgICAgICAgICBsb2FkTmV4dExhYmVsOiAnRmluZCBtb3Jl4oCmJ1xuICAgICAgICBcIlxuICAgICAgICAoY2xpY2spPVwib3BlbigkZXZlbnQsIHJlc3VsdCwgcmVzdWx0Lm5hbWUpXCJcbiAgICAgICAgZGF0YS1jeT1cInNlYXJjaC1pbnB1dC0tc2VhcmNoLXJlc3VsdHNcIlxuICAgICAgPlxuICAgICAgICA8Yzh5LWxpLWljb24+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3VsdCB8IHNob3VsZFNob3dNbzogZGV2aWNlVHlwZS5ERVZJQ0U7IGVsc2UgZ3JvdXBcIj5cbiAgICAgICAgICAgIDxkZXZpY2Utc3RhdHVzIFttb109XCJyZXN1bHRcIj48L2RldmljZS1zdGF0dXM+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNncm91cD5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwiYzh5LWljb24tZHVvY29sb3JcIlxuICAgICAgICAgICAgICBbYzh5SWNvbl09XCJyZXN1bHQgfCBnZXRHcm91cEljb24gfCBhc3luY1wiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYzh5LWxpLWljb24+XG4gICAgICAgIHt7IHJlc3VsdC5uYW1lIHx8ICctLScgfX1cbiAgICAgIDwvYzh5LWxpPlxuXG4gICAgICA8IS0tIE5vIHNlYXJjaCByZXN1bHRzIGZvdW5kIGVudHJ5IC0tPlxuICAgICAgPG5nLXRlbXBsYXRlICNub3RGb3VuZFRlbXBsYXRlPlxuICAgICAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICAgICAgW2ljb25dPVwiJ3NlYXJjaCdcIlxuICAgICAgICAgIFt0aXRsZV09XCInTm8gbWF0Y2ggZm91bmQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgZGF0YS1jeT1cInNlYXJjaC1pbnB1dC0tZW1wdHktc3RhdGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtNCc6IG1vZGUgPT09ICdzZWFyY2gnIH1cIlxuICAgICAgICAgIFtob3Jpem9udGFsXT1cInRydWVcIlxuICAgICAgICAgICpuZ0lmPVwibm9NYXRjaFwiXG4gICAgICAgID5cbiAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgKm5nSWY9XCJtb2RlID09PSAnc2VhcmNoJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgVHJ5IHRvIGZpbHRlciBvciBvcGVuIHRoZSBhc3NldCBncmlkIHRvIHNob3cgYWxsIGRldmljZXMgYW5kIGdyb3Vwcy5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdzZWxlY3QnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBUcnkgdG8gcmVwaHJhc2UgeW91ciBzZWFyY2ggd29yZC5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDwhLS0gbG9hZGluZyBiYXIgZmlyc3QgZW50cmllcyAtLT5cbiAgICAgIDxjOHktbGkgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgICAgICAgPGM4eS1sb2FkaW5nPjwvYzh5LWxvYWRpbmc+XG4gICAgICA8L2M4eS1saT5cblxuICAgICAgPCEtLSBsb2FkaW5nIGJhciBmb3IgbG9hZGluZyBtb3JlIGVudHJpZXMgKGludmVudG9yeSByb2xlcykgLS0+XG4gICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gICAgICAgIDxjOHktbGk+XG4gICAgICAgICAgPGM4eS1sb2FkaW5nPjwvYzh5LWxvYWRpbmc+XG4gICAgICAgIDwvYzh5LWxpPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPCEtLSBtb3JlIGZpbHRlciBwb3NzaWJpbGl0aWVzIC0tPlxuICAgICAgPGM4eS1saVxuICAgICAgICBjbGFzcz1cIm0tdC0yNCBiZy1sZXZlbC0yIHAtdC0xNiBwLWItMTYgcC1sLTI0IHAtci0yNCBzdGlja3ktYm90dG9tXCJcbiAgICAgICAgW3NlbGVjdGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdzZWFyY2gnXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1pbmZvIG0tci00XCJcbiAgICAgICAgICAgIGM4eUljb249XCJpbmZvLWNpcmNsZVwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8cFxuICAgICAgICAgICAgY2xhc3M9XCJtLXItOFwiXG4gICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICBOZWVkIG1vcmUgZmlsdGVyIHBvc3NpYmlsaXRpZXM/XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwibS1sLTE2IGJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnR28gdG8gdGhlIGFzc2V0IGRhdGEgdGFibGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbk9wZW5Bc3NldFRhYmxlKClcIlxuICAgICAgICAgICAgZGF0YS1jeT1cInNlYXJjaC1pbnB1dC0tYXNzZXQtdGFibGUtYnRuXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnR28gdG8gdGhlIGFzc2V0IGRhdGEgdGFibGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktbGk+XG4gICAgPC9jOHktdHlwZWFoZWFkPlxuICA8L2Zvcm0+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2VhcmNoL3NlYXJjaC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3NlYXJjaC9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFrQixnQkFBZ0IsRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFpQixNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTXBFLE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9COztPQUVHO0lBQ0gsSUFDSSxlQUFlLENBQUMsS0FBcUU7UUFDdkYsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBOENELFlBQ1UsTUFBYyxFQUNkLFNBQTJCLEVBQzNCLHNCQUE4QyxFQUM5QyxFQUFxQjtRQUhyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQTNFL0IsU0FBSSxHQUF3QixRQUFRLENBQUM7UUFFckM7O1dBRUc7UUFDTSxvQ0FBK0IsR0FBRyxLQUFLLENBQUM7UUFxQnhDLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBRTVCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFHNUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHcEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHcEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBRzNDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUU3QyxlQUFVLEdBQTZCLGlCQUFpQixDQUFDO1FBQ3pELFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVix1QkFBa0IsR0FBRyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUs3RCx3QkFBbUIsR0FBcUIsRUFBRSxDQUFDO1FBRTNDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVDLDhCQUF5QixHQUFHLG9CQUFvQixDQUFDO1FBQ2pELDhCQUF5QixHQUFHLENBQUMsQ0FBQztRQUM5QixtQkFBYyxHQUFXO1lBQ3hDLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQztRQUNlLGtCQUFhLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLGdCQUFXLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBYXRDLENBQUM7SUFFSixLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLElBQUksZUFBZSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVO2dCQUN4QyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDcEQsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNULElBQUksQ0FBQywwQkFBMEIsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNsQixDQUFDLEVBQUUsNEJBQTRCO2dCQUMvQixHQUFHLElBQUksQ0FBQyxjQUFjO2FBQ3ZCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzQixxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2xFLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN4QyxPQUFPO2dCQUNULENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFNkMsZ0JBQWdCLENBQUMsS0FBb0I7UUFDakYsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsTUFBZTtRQUMxQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gseUNBQXlDO1lBQ3pDLHVDQUF1QztZQUN2QyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsS0FBWSxFQUFFLEVBQWtCLEVBQUUsSUFBSztRQUMxQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFDRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBNEM7UUFDbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQW9CO1FBQzFCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckMsbURBQW1EO1lBQ25ELGtEQUFrRDtZQUNsRCxVQUFVO1lBQ1YsTUFBTSxVQUFVLEdBQUksS0FBSyxDQUFDLE1BQWMsQ0FBQyxLQUFLLENBQUM7WUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFjO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWM7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN2QyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQ25DLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFZO1FBQy9CLE9BQU8sS0FBSyxDQUNWLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQWlDLENBQUMsRUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FDekYsQ0FBQztJQUNKLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBWTtRQUM5QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUNoQixJQUFJLENBQUMsVUFBVTtZQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBc0IsRUFBRSxNQUE4QjtRQUMxRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQUk7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQTlPVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwyZkFtRXBCLGtCQUFrQiw2SUMxRi9CLDZ3UUE4UUE7OzJGRHZQYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0Usa0JBQWtCOytLQUs1QixJQUFJO3NCQURILEtBQUs7Z0JBTUcsK0JBQStCO3NCQUF2QyxLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFNRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtGLGVBQWU7c0JBRGxCLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdOLE1BQU07c0JBREwsTUFBTTtnQkFJUCxNQUFNO3NCQURMLE1BQU07Z0JBSVAsS0FBSztzQkFESixNQUFNO2dCQUlQLE9BQU87c0JBRE4sTUFBTTtnQkEyQkMsU0FBUztzQkFEaEIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSXhDLFFBQVE7c0JBRGYsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBeUNBLGdCQUFnQjtzQkFBN0QsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UsIElSZXN1bHRMaXN0LCBQYWdpbmcgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcbmltcG9ydCB7IEJzRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IGRlZmVyLCBlbXB0eSwgbWVyZ2UsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBVbmFyeUZ1bmN0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWFuYWdlZE9iamVjdFR5cGUgfSBmcm9tICcuLi9jb21tb24vbWFuYWdlZC1vYmplY3QtdHlwZSc7XG5pbXBvcnQgeyBUeXBlYWhlYWRDb21wb25lbnQgfSBmcm9tICcuLi9zZWxlY3QvdHlwZWFoZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnZlbnRvcnlTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9pbnZlbnRvcnktc2VhcmNoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktc2VhcmNoLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoSW5wdXRDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBtb2RlOiAnc2VhcmNoJyB8ICdzZWxlY3QnID0gJ3NlYXJjaCc7XG5cbiAgLyoqXG4gICAqIFVubG9ja3MgdGhlIGFiaWxpdHkgdG8gcGxhY2UgYSBjdXN0b20gdGVtcGxhdGUgdW5kZXIgdGhlIHNlYXJjaCBpbnB1dC5cbiAgICovXG4gIEBJbnB1dCgpIGVuYWJsZUN1c3RvbVRlbXBsYXRlUGxhY2Vob2xkZXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBjdXN0b20gcGxhY2Vob2xkZXIgaW4gdGhlIHNlYXJjaCBiYXIuXG4gICAqL1xuICBASW5wdXQoKSBjdXN0b21QbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFdmVudCwgd2hpY2ggaXMgdXNlZCB0byBzZXQgYSBuZXcgZXh0ZXJuYWwgdGVybS4gUGFzc2luZyBudWxsIHdpbGwgcmUtZXhlY3V0ZSB0aGUgcXVlcnkgdG8gQkUuXG4gICAqIFRoaXMgYWxsb3dzIG5ldyBmaWx0ZXJzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0ZXJtLlxuICAgKi9cbiAgQElucHV0KCkgZXh0ZXJuYWxUZXJtOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcbiAgLyoqXG4gICAqIEEgY3VzdG9tIHF1ZXJ5IHNldHRlciB1c2VkIHRvIG92ZXJyaWRlIHRoZSBzdGFuZGFyZCBxdWVyeS4gSW4gb3JkZXIgdG8gb2J0YWluIGRhdGEuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY3VzdG9tRGF0YVF1ZXJ5KHF1ZXJ5OiBVbmFyeUZ1bmN0aW9uPHN0cmluZywgT2JzZXJ2YWJsZTxJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4+Pikge1xuICAgIGlmIChxdWVyeSkge1xuICAgICAgdGhpcy5jdXN0b21RdWVyeSA9IHF1ZXJ5O1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBjb250YWluZXI6ICcnIHwgJ2JvZHknID0gJyc7XG5cbiAgQElucHV0KCkgZ3JvdXBzT25seSA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlc2V0ID0gbmV3IEV2ZW50RW1pdHRlcjxJTWFuYWdlZE9iamVjdD4oKTtcblxuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8SU1hbmFnZWRPYmplY3Q+KCk7XG5cbiAgZGV2aWNlVHlwZTogdHlwZW9mIE1hbmFnZWRPYmplY3RUeXBlID0gTWFuYWdlZE9iamVjdFR5cGU7XG4gIHRlcm0gPSAnJztcbiAgZGVmYXVsdFBsYWNlaG9sZGVyID0gZ2V0dGV4dCgnU2VhcmNoIGZvciBncm91cHMgb3IgYXNzZXRz4oCmJyk7XG4gIHNlbGVjdGVkO1xuXG4gIGN1c3RvbVF1ZXJ5OiAodGV4dDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj47XG4gIHJlc3VsdHMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj47XG4gIHJlY2VudFNlYXJjaFJlc3VsdHM6IElNYW5hZ2VkT2JqZWN0W10gPSBbXTtcbiAgcmVjZW50bHlSZWdpc3RlcmVkUmVzdWx0cyQ6IE9ic2VydmFibGU8SVJlc3VsdExpc3Q8SU1hbmFnZWRPYmplY3Q+PjtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIG5vTWF0Y2ggPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IFJFQ0VOVF9TRUFSQ0hfU1RPUkFHRV9LRVkgPSAncmVjZW50X3NlYXJjaF92aWV3JztcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfUkVDRU5UX1NFQVJDSF9SRVNVTFRTID0gNTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0ZJTFRFUjogb2JqZWN0ID0ge1xuICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlLFxuICAgIHBhZ2VTaXplOiA1LFxuICAgIHdpdGhDaGlsZHJlbjogZmFsc2VcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBLRVlDT0RFX0VOVEVSID0gJ0VudGVyJztcbiAgcHJpdmF0ZSByZWFkb25seSBLRVlDT0RFX0VTQyA9ICdFc2NhcGUnO1xuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoVHlwZWFoZWFkQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJpdmF0ZSB0eXBlYWhlYWQ6IFR5cGVhaGVhZENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hEcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwcml2YXRlIGRyb3Bkb3duOiBCc0Ryb3Bkb3duRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnk6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnlTZWFyY2hTZXJ2aWNlOiBJbnZlbnRvcnlTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCByZWNlbnRTZWFyY2hJZHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuUkVDRU5UX1NFQVJDSF9TVE9SQUdFX0tFWSkpO1xuICAgIGlmIChyZWNlbnRTZWFyY2hJZHMgJiYgcmVjZW50U2VhcmNoSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5pbnZlbnRvcnkubGlzdCh7IGlkczogcmVjZW50U2VhcmNoSWRzLmpvaW4oJywnKSB9KTtcbiAgICAgIHRoaXMucmVjZW50U2VhcmNoUmVzdWx0cyA9IHRoaXMuZ3JvdXBzT25seVxuICAgICAgICA/IHRoaXMuaW52ZW50b3J5U2VhcmNoU2VydmljZS5maWx0ZXJPbmx5R3JvdXBzKGRhdGEpXG4gICAgICAgIDogZGF0YTtcbiAgICAgIHRoaXMucmVjZW50bHlSZWdpc3RlcmVkUmVzdWx0cyQgPSBkZWZlcigoKSA9PlxuICAgICAgICB0aGlzLmludmVudG9yeS5saXN0KHtcbiAgICAgICAgICBxOiAnJG9yZGVyYnk9Y3JlYXRpb25UaW1lIGRlc2MnLFxuICAgICAgICAgIC4uLnRoaXMuREVGQVVMVF9GSUxURVJcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdzZWxlY3QnKSB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN1YnNjcmliZU9uU2VhcmNoKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbFRlcm0pIHtcbiAgICAgIHRoaXMuZXh0ZXJuYWxUZXJtLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSh0ZXJtID0+IHtcbiAgICAgICAgaWYgKHRlcm0gPT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnR5cGVhaGVhZC5vblNlYXJjaC5lbWl0KHRoaXMudGVybSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudHlwZWFoZWFkLm9uU2VhcmNoLmVtaXQodGVybSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09IHRoaXMuS0VZQ09ERV9FU0MpIHtcbiAgICAgIHRoaXMuaGlkZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgb25PcGVuQ2hhbmdlKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc09wZW4pIHtcbiAgICAgIC8vIG5lZWRzIHRvIHJlcXVlc3QgYW4gYW5pbWF0aW9uIGZyYW1lIGFzXG4gICAgICAvLyBvdGhlcndpc2UgdGhlIHR5cGVhaGVhZCBpcyB1bmRlZmluZWRcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlT25TZWFyY2goKTtcbiAgICAgICAgdGhpcy50eXBlYWhlYWQuZHJvcGRvd24uc2hvdygpO1xuICAgICAgICB0aGlzLnR5cGVhaGVhZC5zZWFyY2hDb250cm9sLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW4oZXZlbnQ6IEV2ZW50LCBtbzogSU1hbmFnZWRPYmplY3QsIHRlcm0/KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgaXNBbHJlYWR5UmVjZW50ID0gdGhpcy5yZWNlbnRTZWFyY2hSZXN1bHRzLmZpbmQoKHsgaWQgfSkgPT4gaWQgPT09IG1vLmlkKTtcbiAgICBpZiAoIWlzQWxyZWFkeVJlY2VudCkge1xuICAgICAgdGhpcy5yZWNlbnRTZWFyY2hSZXN1bHRzLnVuc2hpZnQobW8pO1xuICAgICAgdGhpcy5yZWNlbnRTZWFyY2hSZXN1bHRzID0gdGhpcy5yZWNlbnRTZWFyY2hSZXN1bHRzLnNsaWNlKDAsIHRoaXMuTUFYX1JFQ0VOVF9TRUFSQ0hfUkVTVUxUUyk7XG4gICAgfVxuICAgIGNvbnN0IHJlY2VudFNlYXJjaElkcyA9IHRoaXMucmVjZW50U2VhcmNoUmVzdWx0cy5tYXAoKHsgaWQgfSkgPT4gaWQpO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuUkVDRU5UX1NFQVJDSF9TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkocmVjZW50U2VhcmNoSWRzKSk7XG4gICAgaWYgKHRlcm0pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBtbztcbiAgICAgIHRoaXMudGVybSA9IHRlcm07XG4gICAgfVxuICAgIHRoaXMub25DbGljay5lbWl0KG1vKTtcbiAgICB0aGlzLmhpZGVEcm9wZG93bigpO1xuICB9XG5cbiAgb25SZXNldChzdGF0dXM6IHsgaWNvbjogc3RyaW5nOyAkZXZlbnQ6IE1vdXNlRXZlbnQgfSkge1xuICAgIHN0YXR1cy4kZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5yZXNldC5lbWl0KHRoaXMuc2VsZWN0ZWQpO1xuICAgIHRoaXMudHlwZWFoZWFkLm9uU2VhcmNoLmVtaXQoJycpO1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50eXBlYWhlYWQuc2VhcmNoQ29udHJvbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBrZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gdGhpcy5LRVlDT0RFX0VOVEVSKSB7XG4gICAgICAvLyBlbnRlciBoaXQgY2FuIGJlIGZhc3RlciB0aGVuIHR5cGVhaGVhZCBkZWJvdW5jZSxcbiAgICAgIC8vIHRoZXJlZm9yZSB3ZSB0YWtlIHRoZSB0ZXJtIGZyb20gdGhlIERPTSBlbGVtZW50XG4gICAgICAvLyBpdHNlbGY6XG4gICAgICBjb25zdCBzZWFyY2hUZXJtID0gKGV2ZW50LnRhcmdldCBhcyBhbnkpLnZhbHVlO1xuICAgICAgdGhpcy5vblNlYXJjaChzZWFyY2hUZXJtKTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaChzZWFyY2g6IHN0cmluZykge1xuICAgIHRoaXMuc2VhcmNoLmVtaXQoc2VhcmNoKTtcbiAgICB0aGlzLmhpZGVEcm9wZG93bigpO1xuICB9XG5cbiAgb25GaWx0ZXIoc2VhcmNoOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlci5lbWl0KHNlYXJjaCk7XG4gICAgdGhpcy5oaWRlRHJvcGRvd24oKTtcbiAgfVxuXG4gIG9uT3BlbkFzc2V0VGFibGUoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2Fzc2V0c2VhcmNoJyk7XG4gICAgdGhpcy5oaWRlRHJvcGRvd24oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLm9uRGVzdHJveSQpIHtcbiAgICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZGVEcm9wZG93bigpIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bikge1xuICAgICAgdGhpcy5kcm9wZG93bi5oaWRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZWFoZWFkICYmIHRoaXMudHlwZWFoZWFkLmRyb3Bkb3duKSB7XG4gICAgICB0aGlzLnR5cGVhaGVhZC5kcm9wZG93bi5oaWRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPblNlYXJjaCgpIHtcbiAgICBpZiAoIXRoaXMucmVzdWx0cyQpIHtcbiAgICAgIHRoaXMucmVzdWx0cyQgPSB0aGlzLnR5cGVhaGVhZC5vblNlYXJjaC5waXBlKFxuICAgICAgICB0YXAodGVybSA9PiB0aGlzLm9uVHlwaW5nU3RhcnRlZCh0ZXJtKSksXG4gICAgICAgIHN3aXRjaE1hcCh0ZXJtID0+IHRoaXMubWVyZ2VSZXF1ZXN0KHRlcm0pKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lcmdlUmVxdWVzdCh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4ge1xuICAgIHJldHVybiBtZXJnZShcbiAgICAgIG9mKHsgZGF0YTogW10gfSBhcyBJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4pLFxuICAgICAgdGhpcy5oYW5kbGVRdWVyeSh0ZXJtKS5waXBlKHRhcCgoeyBkYXRhLCBwYWdpbmcgfSkgPT4gdGhpcy5vbkxvYWRpbmdEb25lKGRhdGEsIHBhZ2luZykpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVF1ZXJ5KHRlcm06IHN0cmluZykge1xuICAgIGlmICghdGVybSkge1xuICAgICAgcmV0dXJuIGVtcHR5KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmN1c3RvbVF1ZXJ5KSB7XG4gICAgICByZXR1cm4gZGVmZXIoKCkgPT4gdGhpcy5jdXN0b21RdWVyeSh0ZXJtKSk7XG4gICAgfVxuICAgIHJldHVybiBkZWZlcigoKSA9PlxuICAgICAgdGhpcy5ncm91cHNPbmx5XG4gICAgICAgID8gdGhpcy5pbnZlbnRvcnlTZWFyY2hTZXJ2aWNlLnNlYXJjaEdyb3Vwcyh0ZXJtKVxuICAgICAgICA6IHRoaXMuaW52ZW50b3J5U2VhcmNoU2VydmljZS5zZWFyY2godGVybSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkxvYWRpbmdEb25lKGRhdGE6IElNYW5hZ2VkT2JqZWN0W10sIHBhZ2luZzogUGFnaW5nPElNYW5hZ2VkT2JqZWN0Pikge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5ub01hdGNoID0gcGFnaW5nICYmIHBhZ2luZy5uZXh0UGFnZSA9PT0gbnVsbCAmJiBkYXRhLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgb25UeXBpbmdTdGFydGVkKHRlcm0pIHtcbiAgICB0aGlzLm5vTWF0Y2ggPSBmYWxzZTtcbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdGVybS5sZW5ndGggPiAwO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZHJvcGRvd25cIlxuICAjc2VhcmNoRHJvcGRvd249XCJicy1kcm9wZG93blwiXG4gIFtpbnNpZGVDbGlja109XCJ0cnVlXCJcbiAgKGlzT3BlbkNoYW5nZSk9XCJvbk9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gIFtjZGtUcmFwRm9jdXNdPVwic2VhcmNoRHJvcGRvd24uaXNPcGVuXCJcbiAgKm5nSWY9XCJtb2RlID09PSAnc2VhcmNoJ1wiXG4gIGRyb3Bkb3duXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cIm1haW4taGVhZGVyLWJ1dHRvbiBkcm9wZG93bi10b2dnbGUgYzh5LWRyb3Bkb3duXCJcbiAgICBbdGl0bGVdPVwiJ1NlYXJjaCcgfCB0cmFuc2xhdGVcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgZGF0YS1jeT1cInNlYXJjaC1pbnB1dC0tc2VhcmNoLWJ0blwiXG4gID5cbiAgICA8aVxuICAgICAgY2xhc3M9XCJpY29uLTJ4XCJcbiAgICAgIGM4eUljb249XCJzZWFyY2hcIlxuICAgID48L2k+XG4gIDwvYnV0dG9uPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInNlYXJjaC1oZWFkZXItbWVudSBkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIlxuICAgIGlkPVwic2VhcmNoRHJvcGRvd25cIlxuICAgICpkcm9wZG93bk1lbnVcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb3JtXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXZcbiAgY2xhc3M9XCJzZWFyY2gtaGVhZGVyLWlubGluZVwiXG4gICpuZ0lmPVwibW9kZSA9PT0gJ3NlbGVjdCdcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9ybVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2Zvcm0+XG4gIDxmb3JtXG4gICAgW25nQ2xhc3NdPVwieyAnYzh5LXNlYXJjaC1mb3JtJzogbW9kZSA9PT0gJ3NlYXJjaCcgfVwiXG4gICAgbm92YWxpZGF0ZVxuICAgICNzZWFyY2hGb3JtPVwibmdGb3JtXCJcbiAgPlxuICAgIDxjOHktdHlwZWFoZWFkXG4gICAgICAob25JY29uQ2xpY2spPVwib25SZXNldCgkZXZlbnQpXCJcbiAgICAgIFtpY29uXT1cInRlcm0gPyAndGltZXMnIDogJ3NlYXJjaCdcIlxuICAgICAgdGl0bGU9XCJTZWFyY2hcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBjdXN0b21QbGFjZWhvbGRlciA/IGN1c3RvbVBsYWNlaG9sZGVyIDogZGVmYXVsdFBsYWNlaG9sZGVyIH19XCJcbiAgICAgIG5hbWU9XCJzZWxlY3RlZFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkXCJcbiAgICAgIChrZXlkb3duKT1cImtleURvd24oJGV2ZW50KVwiXG4gICAgICBbYWxsb3dGcmVlRW50cmllc109XCJmYWxzZVwiXG4gICAgICBbY29udGFpbmVyXT1cImNvbnRhaW5lclwiXG4gICAgICBbaGlnaGxpZ2h0Rmlyc3RJdGVtXT1cInRydWVcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjOHktbGlzdF9faXRlbSBwLWItOCBzZXBhcmF0b3ItYm90dG9tIHN0aWNreS10b3AgcC10LTRcIlxuICAgICAgICAqbmdJZj1cImVuYWJsZUN1c3RvbVRlbXBsYXRlUGxhY2Vob2xkZXIgJiYgbW9kZSA9PT0gJ3NlYXJjaCdcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBmaWx0ZXIgYnV0dG9ucyAtLT5cbiAgICAgIDxjOHktbGlcbiAgICAgICAgKm5nSWY9XCJ0ZXJtLmxlbmd0aCAhPT0gMCAmJiBtb2RlID09PSAnc2VhcmNoJ1wiXG4gICAgICAgIFtzZWxlY3RhYmxlXT1cImZhbHNlXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwibS1yLTQgdGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAgPGVtIHRyYW5zbGF0ZT5TZWFyY2hpbmcgYnkgZXhhY3QgbWF0Y2guIENsaWNrIGZvciBvdGhlciBzZWFyY2ggb3B0aW9uczo8L2VtPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwIGJ0bi1ncm91cC1zbVwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgICAgIHRpdGxlPVwie3sgJ1N0YXJ0cyB3aXRoJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwic2VhcmNoLWlucHV0LS1zZWFyY2gtc3RhcnRzLXdpdGhcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWx0ZXIodGVybSArICcqJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnU3RhcnRzIHdpdGgnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdDb250YWlucycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cInNlYXJjaC1pbnB1dC0tc2VhcmNoLWNvbnRhaW5zXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyKCcqJyArIHRlcm0gKyAnKicpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ0NvbnRhaW5zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnRW5kcyB3aXRoJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwic2VhcmNoLWlucHV0LS1zZWFyY2gtZW5kcy13aXRoXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyKCcqJyArIHRlcm0pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ0VuZHMgd2l0aCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYzh5LWxpPlxuXG4gICAgICA8IS0tIFJlY2VudCBzZWFyY2ggLS0+XG4gICAgICA8Yzh5LWxpXG4gICAgICAgICpuZ0lmPVwidGVybS5sZW5ndGggPT09IDAgJiYgcmVjZW50U2VhcmNoUmVzdWx0cy5sZW5ndGggPiAwXCJcbiAgICAgICAgW3NlbGVjdGFibGVdPVwiZmFsc2VcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kIGZvcm0tYmxvY2tcIj5cbiAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+UmVjZW50IHNlYXJjaCB2aWV3czwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2M4eS1saT5cbiAgICAgIDxjOHktbGlcbiAgICAgICAgY2xhc3M9XCJjOHktbGlzdF9faXRlbS0tbGluayBtLWwtMTYgbS1yLTE2XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiB0ZXJtLmxlbmd0aCA9PT0gMCA/IHJlY2VudFNlYXJjaFJlc3VsdHMgOiBbXVwiXG4gICAgICAgIChjbGljayk9XCJvcGVuKCRldmVudCwgcmVzdWx0LCByZXN1bHQubmFtZSlcIlxuICAgICAgPlxuICAgICAgICA8Yzh5LWxpLWljb24+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3VsdCB8IHNob3VsZFNob3dNbzogZGV2aWNlVHlwZS5ERVZJQ0U7IGVsc2UgZ3JvdXBcIj5cbiAgICAgICAgICAgIDxkZXZpY2Utc3RhdHVzIFttb109XCJyZXN1bHRcIj48L2RldmljZS1zdGF0dXM+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNncm91cD5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwiYzh5LWljb24tZHVvY29sb3JcIlxuICAgICAgICAgICAgICBbYzh5SWNvbl09XCJyZXN1bHQgfCBnZXRHcm91cEljb24gfCBhc3luY1wiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYzh5LWxpLWljb24+XG4gICAgICAgIHt7IHJlc3VsdC5uYW1lIHx8ICctLScgfX1cbiAgICAgIDwvYzh5LWxpPlxuXG4gICAgICA8IS0tIFJlY2VudGx5IHJlZ2lzdGVyZWQgZGV2aWNlcyAtLT5cbiAgICAgIDxjOHktbGlcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICB0ZXJtLmxlbmd0aCA9PT0gMCAmJiAocmVjZW50bHlSZWdpc3RlcmVkUmVzdWx0cyQgfCBhc3luYyk/LmRhdGE/Lmxlbmd0aCA+IDAgJiYgIWdyb3Vwc09ubHlcbiAgICAgICAgXCJcbiAgICAgICAgW3NlbGVjdGFibGVdPVwiZmFsc2VcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kIGZvcm0tYmxvY2tcIj5cbiAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+UmVjZW50bHkgcmVnaXN0ZXJlZCBkZXZpY2VzPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYzh5LWxpPlxuICAgICAgPGM4eS1saVxuICAgICAgICBjbGFzcz1cImM4eS1saXN0X19pdGVtLS1saW5rIG0tbC0xNiBtLXItMTZcIlxuICAgICAgICAqYzh5Rm9yPVwiXG4gICAgICAgICAgbGV0IHJlc3VsdCBvZiB0ZXJtLmxlbmd0aCA9PT0gMCAmJiAhZ3JvdXBzT25seVxuICAgICAgICAgICAgPyByZWNlbnRseVJlZ2lzdGVyZWRSZXN1bHRzJFxuICAgICAgICAgICAgOiB7IGRhdGE6IFtdIH07XG4gICAgICAgICAgbG9hZE1vcmU6ICdub25lJ1xuICAgICAgICBcIlxuICAgICAgICAoY2xpY2spPVwib3BlbigkZXZlbnQsIHJlc3VsdCwgcmVzdWx0Lm5hbWUpXCJcbiAgICAgID5cbiAgICAgICAgPGM4eS1saS1pY29uPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXN1bHQgfCBzaG91bGRTaG93TW86IGRldmljZVR5cGUuREVWSUNFOyBlbHNlIGdyb3VwXCI+XG4gICAgICAgICAgICA8ZGV2aWNlLXN0YXR1cyBbbW9dPVwicmVzdWx0XCI+PC9kZXZpY2Utc3RhdHVzPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ3JvdXA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImM4eS1pY29uLWR1b2NvbG9yXCJcbiAgICAgICAgICAgICAgW2M4eUljb25dPVwicmVzdWx0IHwgZ2V0R3JvdXBJY29uIHwgYXN5bmNcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2M4eS1saS1pY29uPlxuICAgICAgICB7eyByZXN1bHQubmFtZSB8fCAnLS0nIH19XG4gICAgICA8L2M4eS1saT5cblxuICAgICAgPCEtLSBTZWFyY2ggcmVzdWx0cyAtLT5cbiAgICAgIDxjOHktbGlcbiAgICAgICAgKm5nSWY9XCJ0ZXJtLmxlbmd0aCAhPT0gMFwiXG4gICAgICAgIFtzZWxlY3RhYmxlXT1cImZhbHNlXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZCBmb3JtLWJsb2NrIG0tMFwiPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5TZWFyY2ggcmVzdWx0czwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2M4eS1saT5cbiAgICAgIDxjOHktbGlcbiAgICAgICAgY2xhc3M9XCJjOHktbGlzdF9faXRlbS0tbGluayBtLWwtMTYgbS1yLTE2XCJcbiAgICAgICAgW3RpdGxlXT1cInJlc3VsdC5uYW1lXCJcbiAgICAgICAgKmM4eUZvcj1cIlxuICAgICAgICAgIGxldCByZXN1bHQgb2YgcmVzdWx0cyQ7XG4gICAgICAgICAgbG9hZE1vcmU6ICdhdXRvJztcbiAgICAgICAgICBub3RGb3VuZDogbm90Rm91bmRUZW1wbGF0ZTtcbiAgICAgICAgICBsb2FkaW5nVGVtcGxhdGU6IGxvYWRpbmc7XG4gICAgICAgICAgbG9hZE5leHRMYWJlbDogJ0ZpbmQgbW9yZeKApidcbiAgICAgICAgXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW4oJGV2ZW50LCByZXN1bHQsIHJlc3VsdC5uYW1lKVwiXG4gICAgICAgIGRhdGEtY3k9XCJzZWFyY2gtaW5wdXQtLXNlYXJjaC1yZXN1bHRzXCJcbiAgICAgID5cbiAgICAgICAgPGM4eS1saS1pY29uPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXN1bHQgfCBzaG91bGRTaG93TW86IGRldmljZVR5cGUuREVWSUNFOyBlbHNlIGdyb3VwXCI+XG4gICAgICAgICAgICA8ZGV2aWNlLXN0YXR1cyBbbW9dPVwicmVzdWx0XCI+PC9kZXZpY2Utc3RhdHVzPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ3JvdXA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImM4eS1pY29uLWR1b2NvbG9yXCJcbiAgICAgICAgICAgICAgW2M4eUljb25dPVwicmVzdWx0IHwgZ2V0R3JvdXBJY29uIHwgYXN5bmNcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2M4eS1saS1pY29uPlxuICAgICAgICB7eyByZXN1bHQubmFtZSB8fCAnLS0nIH19XG4gICAgICA8L2M4eS1saT5cblxuICAgICAgPCEtLSBObyBzZWFyY2ggcmVzdWx0cyBmb3VuZCBlbnRyeSAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm90Rm91bmRUZW1wbGF0ZT5cbiAgICAgICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgICAgIFtpY29uXT1cIidzZWFyY2gnXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ05vIG1hdGNoIGZvdW5kLicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGRhdGEtY3k9XCJzZWFyY2gtaW5wdXQtLWVtcHR5LXN0YXRlXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLTQnOiBtb2RlID09PSAnc2VhcmNoJyB9XCJcbiAgICAgICAgICBbaG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgICAgICAgICAqbmdJZj1cIm5vTWF0Y2hcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICpuZ0lmPVwibW9kZSA9PT0gJ3NlYXJjaCdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIFRyeSB0byBmaWx0ZXIgb3Igb3BlbiB0aGUgYXNzZXQgZ3JpZCB0byBzaG93IGFsbCBkZXZpY2VzIGFuZCBncm91cHMuXG4gICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgKm5nSWY9XCJtb2RlID09PSAnc2VsZWN0J1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgVHJ5IHRvIHJlcGhyYXNlIHlvdXIgc2VhcmNoIHdvcmQuXG4gICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8IS0tIGxvYWRpbmcgYmFyIGZpcnN0IGVudHJpZXMgLS0+XG4gICAgICA8Yzh5LWxpICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gICAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgICAgPC9jOHktbGk+XG5cbiAgICAgIDwhLS0gbG9hZGluZyBiYXIgZm9yIGxvYWRpbmcgbW9yZSBlbnRyaWVzIChpbnZlbnRvcnkgcm9sZXMpIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgICAgICA8Yzh5LWxpPlxuICAgICAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgICAgICA8L2M4eS1saT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDwhLS0gbW9yZSBmaWx0ZXIgcG9zc2liaWxpdGllcyAtLT5cbiAgICAgIDxjOHktbGlcbiAgICAgICAgY2xhc3M9XCJtLXQtMjQgYmctbGV2ZWwtMiBwLXQtMTYgcC1iLTE2IHAtbC0yNCBwLXItMjQgc3RpY2t5LWJvdHRvbVwiXG4gICAgICAgIFtzZWxlY3RhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgKm5nSWY9XCJtb2RlID09PSAnc2VhcmNoJ1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtaW5mbyBtLXItNFwiXG4gICAgICAgICAgICBjOHlJY29uPVwiaW5mby1jaXJjbGVcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgICAgPHBcbiAgICAgICAgICAgIGNsYXNzPVwibS1yLThcIlxuICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgTmVlZCBtb3JlIGZpbHRlciBwb3NzaWJpbGl0aWVzP1xuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm0tbC0xNiBidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ0dvIHRvIHRoZSBhc3NldCBkYXRhIHRhYmxlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25PcGVuQXNzZXRUYWJsZSgpXCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJzZWFyY2gtaW5wdXQtLWFzc2V0LXRhYmxlLWJ0blwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0dvIHRvIHRoZSBhc3NldCBkYXRhIHRhYmxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYzh5LWxpPlxuICAgIDwvYzh5LXR5cGVhaGVhZD5cbiAgPC9mb3JtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLWludGVydmFsLXBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2ludGVydmFsLXBpY2tlci9jOHktbmd4LWNvbXBvbmVudHMtaW50ZXJ2YWwtcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './interval-picker.component';
|
|
2
|
+
export * from './interval-picker.model';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9pbnRlcnZhbC1waWNrZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJ2YWwtcGlja2VyLm1vZGVsJztcbiJdfQ==
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Component, forwardRef, Input } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
|
|
5
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
6
|
+
import { INTERVALS } from './interval-picker.model';
|
|
7
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@ngx-translate/core";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
11
|
+
export class IntervalPickerComponent {
|
|
12
|
+
constructor(translate) {
|
|
13
|
+
this.translate = translate;
|
|
14
|
+
this.INTERVALS = INTERVALS;
|
|
15
|
+
this.touched = false;
|
|
16
|
+
this.disabled = false;
|
|
17
|
+
this.translatedIntervals = [];
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
19
|
+
this.onChange = _ => { };
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
21
|
+
this.onTouched = () => { };
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
this.translatedIntervals = this.INTERVALS.map(interval => ({
|
|
25
|
+
...interval,
|
|
26
|
+
title: this.translate.instant(interval.title)
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
writeValue(value) {
|
|
30
|
+
this.value = value;
|
|
31
|
+
}
|
|
32
|
+
registerOnChange(fn) {
|
|
33
|
+
this.onChange = fn;
|
|
34
|
+
}
|
|
35
|
+
registerOnTouched(onTouched) {
|
|
36
|
+
this.onTouched = onTouched;
|
|
37
|
+
}
|
|
38
|
+
markAsTouched() {
|
|
39
|
+
if (!this.touched) {
|
|
40
|
+
this.onTouched();
|
|
41
|
+
this.touched = true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
setDisabledState(disabled) {
|
|
45
|
+
this.disabled = disabled;
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IntervalPickerComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: IntervalPickerComponent, isStandalone: true, selector: "c8y-interval-picker", inputs: { INTERVALS: "INTERVALS" }, providers: [
|
|
49
|
+
{
|
|
50
|
+
provide: NG_VALUE_ACCESSOR,
|
|
51
|
+
useExisting: forwardRef(() => IntervalPickerComponent),
|
|
52
|
+
multi: true
|
|
53
|
+
}
|
|
54
|
+
], ngImport: i0, template: "<li\n *ngFor=\"let interval of translatedIntervals\"\n [ngClass]=\"{\n active: interval.id === value\n }\"\n>\n <button\n type=\"button\"\n (click)=\"onChange(interval.id)\"\n >\n <span\n [ngClass]=\"{\n 'text-primary': interval.id === value\n }\"\n >\n <span\n c8yIcon=\"check\"\n [ngStyle]=\"{ visibility: interval.id === value ? 'visible' : 'hidden' }\"\n ></span>\n {{ interval.title }}\n </span>\n </button>\n</li>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: A11yModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: BsDropdownModule }] }); }
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IntervalPickerComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'c8y-interval-picker', providers: [
|
|
59
|
+
{
|
|
60
|
+
provide: NG_VALUE_ACCESSOR,
|
|
61
|
+
useExisting: forwardRef(() => IntervalPickerComponent),
|
|
62
|
+
multi: true
|
|
63
|
+
}
|
|
64
|
+
], standalone: true, imports: [CommonModule, FormsModule, A11yModule, ReactiveFormsModule, BsDropdownModule], template: "<li\n *ngFor=\"let interval of translatedIntervals\"\n [ngClass]=\"{\n active: interval.id === value\n }\"\n>\n <button\n type=\"button\"\n (click)=\"onChange(interval.id)\"\n >\n <span\n [ngClass]=\"{\n 'text-primary': interval.id === value\n }\"\n >\n <span\n c8yIcon=\"check\"\n [ngStyle]=\"{ visibility: interval.id === value ? 'visible' : 'hidden' }\"\n ></span>\n {{ interval.title }}\n </span>\n </button>\n</li>\n" }]
|
|
65
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { INTERVALS: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}] } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2ludGVydmFsLXBpY2tlci9pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vaW50ZXJ2YWwtcGlja2VyL2ludGVydmFsLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFldkQsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVB0QyxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBRy9CLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQix3QkFBbUIsR0FBb0MsRUFBRSxDQUFDO1FBVzFELGdFQUFnRTtRQUNoRSxhQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDbkIsZ0VBQWdFO1FBQ2hFLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFaNkIsQ0FBQztJQUVuRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6RCxHQUFHLFFBQVE7WUFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFPRCxVQUFVLENBQUMsS0FBcUI7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWlCO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7OEdBM0NVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHNHQVZ2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkN0QkgsNmVBdUJBLDJDRENZLFlBQVksOFVBQUUsV0FBVyw4QkFBRSxVQUFVLDhCQUFFLG1CQUFtQiw4QkFBRSxnQkFBZ0I7OzJGQUUzRSx1QkFBdUI7a0JBYm5DLFNBQVM7K0JBQ0UscUJBQXFCLGFBRXBCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixjQUNXLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDO3FGQUc5RSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZVxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZHJvcGRvd24nO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEludGVydmFsLCBJTlRFUlZBTFMgfSBmcm9tICcuL2ludGVydmFsLXBpY2tlci5tb2RlbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1pbnRlcnZhbC1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJ2YWwtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnRlcnZhbFBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIEExMXlNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEJzRHJvcGRvd25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEludGVydmFsUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBJTlRFUlZBTFMgPSBJTlRFUlZBTFM7XG5cbiAgdmFsdWU6IEludGVydmFsWydpZCddO1xuICB0b3VjaGVkID0gZmFsc2U7XG4gIGRpc2FibGVkID0gZmFsc2U7XG4gIHRyYW5zbGF0ZWRJbnRlcnZhbHM6IHsgaWQ6IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRyYW5zbGF0ZWRJbnRlcnZhbHMgPSB0aGlzLklOVEVSVkFMUy5tYXAoaW50ZXJ2YWwgPT4gKHtcbiAgICAgIC4uLmludGVydmFsLFxuICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoaW50ZXJ2YWwudGl0bGUpXG4gICAgfSkpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvbkNoYW5nZSA9IF8gPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogSW50ZXJ2YWxbJ2lkJ10pIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgbWFya0FzVG91Y2hlZCgpIHtcbiAgICBpZiAoIXRoaXMudG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxufVxuIiwiPGxpXG4gICpuZ0Zvcj1cImxldCBpbnRlcnZhbCBvZiB0cmFuc2xhdGVkSW50ZXJ2YWxzXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgIGFjdGl2ZTogaW50ZXJ2YWwuaWQgPT09IHZhbHVlXG4gIH1cIlxuPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cIm9uQ2hhbmdlKGludGVydmFsLmlkKVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAndGV4dC1wcmltYXJ5JzogaW50ZXJ2YWwuaWQgPT09IHZhbHVlXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjOHlJY29uPVwiY2hlY2tcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7IHZpc2liaWxpdHk6IGludGVydmFsLmlkID09PSB2YWx1ZSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nIH1cIlxuICAgICAgPjwvc3Bhbj5cbiAgICAgIHt7IGludGVydmFsLnRpdGxlIH19XG4gICAgPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvbGk+XG4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
2
|
+
const todayDate = new Date();
|
|
3
|
+
export var TimeSpanInMs;
|
|
4
|
+
(function (TimeSpanInMs) {
|
|
5
|
+
TimeSpanInMs[TimeSpanInMs["MINUTE"] = 60000] = "MINUTE";
|
|
6
|
+
TimeSpanInMs[TimeSpanInMs["HOUR"] = 3600000] = "HOUR";
|
|
7
|
+
TimeSpanInMs[TimeSpanInMs["DAY"] = 86400000] = "DAY";
|
|
8
|
+
TimeSpanInMs[TimeSpanInMs["WEEK"] = 604800000] = "WEEK";
|
|
9
|
+
TimeSpanInMs[TimeSpanInMs["MONTH"] = todayDate.valueOf() - new Date(todayDate.setMonth(todayDate.getMonth() - 1)).valueOf()] = "MONTH";
|
|
10
|
+
})(TimeSpanInMs || (TimeSpanInMs = {}));
|
|
11
|
+
export const INTERVALS = [
|
|
12
|
+
{
|
|
13
|
+
id: 'minutes',
|
|
14
|
+
title: gettext('Last minute'),
|
|
15
|
+
timespanInMs: TimeSpanInMs.MINUTE
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: 'hours',
|
|
19
|
+
title: gettext('Last hour'),
|
|
20
|
+
timespanInMs: TimeSpanInMs.HOUR
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: 'days',
|
|
24
|
+
title: gettext('Last day'),
|
|
25
|
+
timespanInMs: TimeSpanInMs.DAY
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 'weeks',
|
|
29
|
+
title: gettext('Last week'),
|
|
30
|
+
timespanInMs: TimeSpanInMs.WEEK
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'months',
|
|
34
|
+
title: gettext('Last month'),
|
|
35
|
+
timespanInMs: TimeSpanInMs.MONTH
|
|
36
|
+
},
|
|
37
|
+
{ id: 'custom', title: gettext('Custom') }
|
|
38
|
+
];
|
|
39
|
+
export const INTERVAL_TITLES = {
|
|
40
|
+
minutes: gettext('Last minute'),
|
|
41
|
+
hours: gettext('Last hour'),
|
|
42
|
+
days: gettext('Last day'),
|
|
43
|
+
weeks: gettext('Last week'),
|
|
44
|
+
months: gettext('Last month'),
|
|
45
|
+
custom: gettext('Custom')
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vaW50ZXJ2YWwtcGlja2VyL2ludGVydmFsLXBpY2tlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3RCLHVEQUFvQixDQUFBO0lBQ3BCLHFEQUF1QixDQUFBO0lBQ3ZCLG9EQUEyQixDQUFBO0lBQzNCLHVEQUFnQyxDQUFBO0lBQ2hDLHFDQUFVLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFBLENBQUE7QUFDbEcsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCO0FBUUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFlO0lBQ25DO1FBQ0UsRUFBRSxFQUFFLFNBQVM7UUFDYixLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM3QixZQUFZLEVBQUUsWUFBWSxDQUFDLE1BQU07S0FDbEM7SUFDRDtRQUNFLEVBQUUsRUFBRSxPQUFPO1FBQ1gsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDM0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJO0tBQ2hDO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsTUFBTTtRQUNWLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQzFCLFlBQVksRUFBRSxZQUFZLENBQUMsR0FBRztLQUMvQjtJQUNEO1FBQ0UsRUFBRSxFQUFFLE9BQU87UUFDWCxLQUFLLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUMzQixZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUk7S0FDaEM7SUFDRDtRQUNFLEVBQUUsRUFBRSxRQUFRO1FBQ1osS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDNUIsWUFBWSxFQUFFLFlBQVksQ0FBQyxLQUFLO0tBQ2pDO0lBQ0QsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Q0FDM0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBbUM7SUFDN0QsT0FBTyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDL0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDM0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDekIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDM0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7Q0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2dldHRleHQnO1xuXG5jb25zdCB0b2RheURhdGUgPSBuZXcgRGF0ZSgpO1xuZXhwb3J0IGVudW0gVGltZVNwYW5Jbk1zIHtcbiAgJ01JTlVURScgPSAxMDAwICogNjAsXG4gICdIT1VSJyA9IDEwMDAgKiA2MCAqIDYwLFxuICAnREFZJyA9IDEwMDAgKiA2MCAqIDYwICogMjQsXG4gICdXRUVLJyA9IDEwMDAgKiA2MCAqIDYwICogMjQgKiA3LFxuICAnTU9OVEgnID0gdG9kYXlEYXRlLnZhbHVlT2YoKSAtIG5ldyBEYXRlKHRvZGF5RGF0ZS5zZXRNb250aCh0b2RheURhdGUuZ2V0TW9udGgoKSAtIDEpKS52YWx1ZU9mKClcbn1cblxuZXhwb3J0IHR5cGUgSW50ZXJ2YWwgPSB7XG4gIGlkOiAnbWludXRlcycgfCAnaG91cnMnIHwgJ2RheXMnIHwgJ3dlZWtzJyB8ICdtb250aHMnIHwgJ2N1c3RvbSc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHRpbWVzcGFuSW5Ncz86IG51bWJlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBJTlRFUlZBTFM6IEludGVydmFsW10gPSBbXG4gIHtcbiAgICBpZDogJ21pbnV0ZXMnLFxuICAgIHRpdGxlOiBnZXR0ZXh0KCdMYXN0IG1pbnV0ZScpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLk1JTlVURVxuICB9LFxuICB7XG4gICAgaWQ6ICdob3VycycsXG4gICAgdGl0bGU6IGdldHRleHQoJ0xhc3QgaG91cicpLFxuICAgIHRpbWVzcGFuSW5NczogVGltZVNwYW5Jbk1zLkhPVVJcbiAgfSxcbiAge1xuICAgIGlkOiAnZGF5cycsXG4gICAgdGl0bGU6IGdldHRleHQoJ0xhc3QgZGF5JyksXG4gICAgdGltZXNwYW5Jbk1zOiBUaW1lU3BhbkluTXMuREFZXG4gIH0sXG4gIHtcbiAgICBpZDogJ3dlZWtzJyxcbiAgICB0aXRsZTogZ2V0dGV4dCgnTGFzdCB3ZWVrJyksXG4gICAgdGltZXNwYW5Jbk1zOiBUaW1lU3BhbkluTXMuV0VFS1xuICB9LFxuICB7XG4gICAgaWQ6ICdtb250aHMnLFxuICAgIHRpdGxlOiBnZXR0ZXh0KCdMYXN0IG1vbnRoJyksXG4gICAgdGltZXNwYW5Jbk1zOiBUaW1lU3BhbkluTXMuTU9OVEhcbiAgfSxcbiAgeyBpZDogJ2N1c3RvbScsIHRpdGxlOiBnZXR0ZXh0KCdDdXN0b20nKSB9XG5dO1xuXG5leHBvcnQgY29uc3QgSU5URVJWQUxfVElUTEVTOiBSZWNvcmQ8SW50ZXJ2YWxbJ2lkJ10sIHN0cmluZz4gPSB7XG4gIG1pbnV0ZXM6IGdldHRleHQoJ0xhc3QgbWludXRlJyksXG4gIGhvdXJzOiBnZXR0ZXh0KCdMYXN0IGhvdXInKSxcbiAgZGF5czogZ2V0dGV4dCgnTGFzdCBkYXknKSxcbiAgd2Vla3M6IGdldHRleHQoJ0xhc3Qgd2VlaycpLFxuICBtb250aHM6IGdldHRleHQoJ0xhc3QgbW9udGgnKSxcbiAgY3VzdG9tOiBnZXR0ZXh0KCdDdXN0b20nKVxufTtcbiJdfQ==
|
|
@@ -152,11 +152,13 @@ export class OperationSchedulerComponent {
|
|
|
152
152
|
this.minDelay = this.minDelay / 1000;
|
|
153
153
|
this.isDelayInSeconds = true;
|
|
154
154
|
}
|
|
155
|
-
if (unit === 'milliseconds'
|
|
156
|
-
this.maxDelay = this.maxDelay * 1000;
|
|
157
|
-
this.minDelay = this.minDelay * 1000;
|
|
158
|
-
this.isDelayInSeconds = false;
|
|
155
|
+
if (unit === 'milliseconds') {
|
|
159
156
|
this.delayInSeconds = this.fgOperationScheduler.controls.delay.value / 1000;
|
|
157
|
+
if (this.isDelayInSeconds) {
|
|
158
|
+
this.maxDelay = this.maxDelay * 1000;
|
|
159
|
+
this.minDelay = this.minDelay * 1000;
|
|
160
|
+
this.isDelayInSeconds = false;
|
|
161
|
+
}
|
|
160
162
|
}
|
|
161
163
|
}
|
|
162
164
|
combineDateAndTime(date, time) {
|
|
@@ -232,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
232
234
|
type: Input,
|
|
233
235
|
args: ['minutesAhead']
|
|
234
236
|
}] } });
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXNjaGVkdWxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2J1bGstb3BlcmF0aW9uLXNjaGVkdWxlci9vcGVyYXRpb24tc2NoZWR1bGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvYnVsay1vcGVyYXRpb24tc2NoZWR1bGVyL29wZXJhdGlvbi1zY2hlZHVsZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBRUwsV0FBVyxFQUdYLGFBQWEsRUFDYixpQkFBaUIsRUFHakIsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBbUI5QyxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDLElBQTJCLGFBQWEsQ0FBQyxPQUFlO1FBQ3RELElBQUksT0FBTyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQTRCRCxZQUFvQixXQUF3QixFQUFVLE9BQXVCO1FBQXpELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUExQjdFLGdCQUFXLEdBQVcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBSzVDLGdCQUFXLEdBQXFCLElBQUksQ0FBQztRQUNyQyxpQkFBWSxHQUFxQixJQUFJLENBQUM7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Z0JBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7OEdBL1BVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdIQWIzQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7YUFDM0Q7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQzthQUMzRDtTQUNGLDBCQ2hDSCwrbUVBdUVBOzsyRkRyQ2EsMkJBQTJCO2tCQWhCdkMsU0FBUzsrQkFDRSx5QkFBeUIsYUFFeEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7eUJBQzNEO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzt5QkFDM0Q7cUJBQ0Y7NkdBSzBCLGFBQWE7c0JBQXZDLEtBQUs7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZ2V0dGV4dCwgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPcGVyYXRpb25TY2hlZHVsZSB9IGZyb20gJy4vb3BlcmF0aW9uLXNjaGVkdWxlLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1vcGVyYXRpb24tc2NoZWR1bGVyJyxcbiAgdGVtcGxhdGVVcmw6ICdvcGVyYXRpb24tc2NoZWR1bGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9wZXJhdGlvblNjaGVkdWxlckNvbXBvbmVudClcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9wZXJhdGlvblNjaGVkdWxlckNvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uU2NoZWR1bGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCdtaW51dGVzQWhlYWQnKSBzZXQgX21pbnV0ZXNBaGVhZChtaW51dGVzOiBudW1iZXIpIHtcbiAgICBpZiAobWludXRlcyAmJiBtaW51dGVzID4gdGhpcy5NSU5VVEVTX0FIRUFEX0RFRkFVTFQpIHtcbiAgICAgIHRoaXMubWludXRlc0FoZWFkID0gbWludXRlcztcbiAgICB9XG4gIH1cblxuICBwbGFjZWhvbGRlcjogc3RyaW5nID0gZ2V0dGV4dCgnU3RhcnQgZGF0ZScpO1xuICBmZ09wZXJhdGlvblNjaGVkdWxlcjogRm9ybUdyb3VwO1xuICBtaW5EYXRlOiBEYXRlO1xuICBtaW5EZWxheTogbnVtYmVyO1xuICBtYXhEZWxheTogbnVtYmVyO1xuICBkZWxheUVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IG51bGw7XG4gIHBpY2tlckVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBERUxBWV9TRUNPTkRTX0RFRkFVTFQ6IG51bWJlciA9IDE7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUlOX0RFTEFZX1NFQ09ORFNfREVGQVVMVDogbnVtYmVyID0gMC4wMDE7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX0RFTEFZX1NFQ09ORFNfREVGQVVMVDogbnVtYmVyID0gMzYwMDtcbiAgcHJpdmF0ZSByZWFkb25seSBNSU5VVEVTX0FIRUFEX0RFRkFVTFQ6IG51bWJlciA9IDU7XG4gIHByaXZhdGUgaXNEZWxheUluU2Vjb25kcyA9IHRydWU7XG4gIHByaXZhdGUgbWludXRlc0FoZWFkOiBudW1iZXIgPSB0aGlzLk1JTlVURVNfQUhFQURfREVGQVVMVDtcbiAgcHJpdmF0ZSByZWFkb25seSBERUxBWV9LRVlfQ0FURUdPUlkgPSAnZGV2aWNlLWNvbnRyb2wnO1xuICBwcml2YXRlIHJlYWRvbmx5IE1BWF9ERUxBWV9LRVlfTkFNRSA9ICdidWxrb3BlcmF0aW9uLm1heGNyZWF0aW9ucmFtcCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUlOX0RFTEFZX0tFWV9OQU1FID0gJ2J1bGtvcGVyYXRpb24uY3JlYXRpb25yYW1wJztcbiAgcHJpdmF0ZSBjdXJyZW50VW5pdCA9ICdzZWNvbmRzJztcbiAgcHJpdmF0ZSBkZWxheUluU2Vjb25kczogbnVtYmVyO1xuICBwcml2YXRlIGluaXRpYWxEYXRlOiBEYXRlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6IChuYW1lKSA9PiB2b2lkO1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBvblZhbGlkYXRvckNoYW5nZWQ6ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5taW5EYXRlID0gbmV3IERhdGUoKTtcbiAgICB0aGlzLmluaXRpYWxEYXRlID0gbmV3IERhdGUoXG4gICAgICB0aGlzLm1pbkRhdGUuc2V0TWludXRlcyh0aGlzLm1pbkRhdGUuZ2V0TWludXRlcygpICsgdGhpcy5taW51dGVzQWhlYWQpXG4gICAgKTtcblxuICAgIHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHBpY2tlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy5kYXRlVmFsaWRhdGlvbl1dLFxuICAgICAgdGltZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy50aW1lVmFsaWRhdGlvbl1dLFxuICAgICAgZGVsYXk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHVuaXQ6IFsnc2Vjb25kcyddXG4gICAgfSk7XG5cbiAgICB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLnBhdGNoVmFsdWUoe1xuICAgICAgcGlja2VyOiB0aGlzLmluaXRpYWxEYXRlLFxuICAgICAgdGltZTogdGhpcy5pbml0aWFsRGF0ZSxcbiAgICAgIGRlbGF5OiB0aGlzLkRFTEFZX1NFQ09ORFNfREVGQVVMVFxuICAgIH0pO1xuXG4gICAgLy8gRHVlIHRvIHRoZSB2YWxpZGF0aW9uIG9mIHBpY2tlciBhbmQgdGltZSBpdCBjb3VsZCBiZSBwb3NzaWJsZSB0aGF0IHZhbHVlIGNoYW5nZXNcbiAgICAvLyBhcmUgZW1pdHRlZCBtb3JlIHRoYW4gb25jZS4gVGhlcmVmb3JlIHdlIHRocm90dGxlIHRoZSBlbWl0cy5cbiAgICBjb25zdCB2YWx1ZUNoYW5nZXMkID0gdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci52YWx1ZUNoYW5nZXMucGlwZSh0aHJvdHRsZVRpbWUoMTAwKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB2YWx1ZUNoYW5nZXMkLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMuZGVsYXlFcnJvcnMgPSB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLmRlbGF5LmVycm9ycztcbiAgICAgIHRoaXMucGlja2VyRXJyb3JzID0gdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5waWNrZXIuZXJyb3JzO1xuICAgICAgdGhpcy5jb252ZXJ0RGVsYXlIYW5kbGVyKGRhdGEudW5pdCk7XG4gICAgICB0aGlzLmVtaXREYXRhKGRhdGEpO1xuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVEZWxheVZhbGlkYXRpb24oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiAmJiAhdGhpcy5zdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IE9wZXJhdGlvblNjaGVkdWxlKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLnBhdGNoVmFsdWUoe1xuICAgICAgICBwaWNrZXI6IHZhbHVlLnNjaGVkdWxlZERhdGUsXG4gICAgICAgIHRpbWU6IHZhbHVlLnNjaGVkdWxlZERhdGUsXG4gICAgICAgIGRlbGF5OiB2YWx1ZS5kZWxheUluU2Vjb25kcyA+IDEgPyB2YWx1ZS5kZWxheUluU2Vjb25kcyA6IHZhbHVlLmRlbGF5SW5TZWNvbmRzICogMTAwMCxcbiAgICAgICAgdW5pdDogdmFsdWUuZGVsYXlJblNlY29uZHMgPiAxID8gJ3NlY29uZHMnIDogJ21pbGxpc2Vjb25kcydcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyPy5kaXNhYmxlZCA9PT0gaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpc0Rpc2FibGVkID8gdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5kaXNhYmxlKCkgOiB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmVuYWJsZSgpO1xuICB9XG5cbiAgdmFsaWRhdGUoKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuaW52YWxpZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4udGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5waWNrZXIuZXJyb3JzLFxuICAgICAgICAuLi50aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLnRpbWUuZXJyb3JzLFxuICAgICAgICAuLi50aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLmRlbGF5LmVycm9yc1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlZCA9IGZuO1xuICB9XG5cbiAgbWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgY29udmVydERlbGF5SGFuZGxlcih1bml0OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50VW5pdCA9PT0gdW5pdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFVuaXQgPSB1bml0O1xuXG4gICAgdGhpcy5jb252ZXJ0RGVsYXkodGhpcy5jdXJyZW50VW5pdCk7XG5cbiAgICAvLyB1cGRhdGUgdmFsaWRhdG9yIG9uIGRlbGF5IGNvbnRyb2wgdG8gbWFrZSBzdXJlIHRoYXRcbiAgICAvLyBzd2l0Y2hpbmcgZnJvbSBtaW51dGVzIHRvIHNlY29uZHMgb3IgdmljZSB2ZXJzYSBkb2VzIG5vdCBoYXJtIHZhbGlkYXRpb24uXG4gICAgdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5kZWxheS5zZXRWYWxpZGF0b3JzKFtcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICBWYWxpZGF0b3JzLm1pbih0aGlzLm1pbkRlbGF5KSxcbiAgICAgIFZhbGlkYXRvcnMubWF4KHRoaXMubWF4RGVsYXkpXG4gICAgXSk7XG4gICAgdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5kZWxheS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBlbWl0RGF0YShkYXRhOiB7IGRlbGF5SW5TZWNvbmRzOiBudW1iZXI7IHBpY2tlcjogRGF0ZTsgdGltZT86IERhdGU7IGRlbGF5PzogbnVtYmVyIH0pIHtcbiAgICBpZiAodGhpcy5vblZhbGlkYXRvckNoYW5nZWQpIHtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEucGlja2VyICYmIGRhdGEudGltZSkge1xuICAgICAgZGF0YS5waWNrZXIgPSB0aGlzLmNvbWJpbmVEYXRlQW5kVGltZShkYXRhLnBpY2tlciwgZGF0YS50aW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnZlcnREZWxheSh0aGlzLmN1cnJlbnRVbml0KTtcbiAgICBkYXRhLmRlbGF5SW5TZWNvbmRzID0gdGhpcy5kZWxheUluU2Vjb25kcztcblxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHtcbiAgICAgICAgZGVsYXlJblNlY29uZHM6IGRhdGEuZGVsYXlJblNlY29uZHMsXG4gICAgICAgIHNjaGVkdWxlZERhdGU6IGRhdGEucGlja2VyXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZURlbGF5VmFsaWRhdGlvbigpIHtcbiAgICBjb25zdCBtaW5TeXN0ZW0gPSBhd2FpdCB0aGlzLm9wdGlvbnMuZ2V0U3lzdGVtT3B0aW9uKFxuICAgICAgdGhpcy5ERUxBWV9LRVlfQ0FURUdPUlksXG4gICAgICB0aGlzLk1JTl9ERUxBWV9LRVlfTkFNRVxuICAgICk7XG4gICAgY29uc3QgbWF4U3lzdGVtID0gYXdhaXQgdGhpcy5vcHRpb25zLmdldFN5c3RlbU9wdGlvbihcbiAgICAgIHRoaXMuREVMQVlfS0VZX0NBVEVHT1JZLFxuICAgICAgdGhpcy5NQVhfREVMQVlfS0VZX05BTUVcbiAgICApO1xuXG4gICAgdGhpcy5tYXhEZWxheSA9IG1heFN5c3RlbSA/IE51bWJlcihtYXhTeXN0ZW0pIDogdGhpcy5NQVhfREVMQVlfU0VDT05EU19ERUZBVUxUO1xuICAgIHRoaXMubWluRGVsYXkgPSBtaW5TeXN0ZW0gPyBOdW1iZXIobWluU3lzdGVtKSA6IHRoaXMuTUlOX0RFTEFZX1NFQ09ORFNfREVGQVVMVDtcblxuICAgIHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXJcbiAgICAgIC5nZXQoJ2RlbGF5JylcbiAgICAgIC5zZXRWYWxpZGF0b3JzKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5taW4odGhpcy5taW5EZWxheSksXG4gICAgICAgIFZhbGlkYXRvcnMubWF4KHRoaXMubWF4RGVsYXkpXG4gICAgICBdKTtcbiAgICB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydERlbGF5KHVuaXQ6IHN0cmluZykge1xuICAgIHRoaXMuZGVsYXlJblNlY29uZHMgPSB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLmRlbGF5LnZhbHVlO1xuXG4gICAgaWYgKHVuaXQgPT09ICdzZWNvbmRzJyAmJiAhdGhpcy5pc0RlbGF5SW5TZWNvbmRzKSB7XG4gICAgICB0aGlzLm1heERlbGF5ID0gdGhpcy5tYXhEZWxheSAvIDEwMDA7XG4gICAgICB0aGlzLm1pbkRlbGF5ID0gdGhpcy5taW5EZWxheSAvIDEwMDA7XG4gICAgICB0aGlzLmlzRGVsYXlJblNlY29uZHMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh1bml0ID09PSAnbWlsbGlzZWNvbmRzJyAmJiB0aGlzLmlzRGVsYXlJblNlY29uZHMpIHtcbiAgICAgIHRoaXMubWF4RGVsYXkgPSB0aGlzLm1heERlbGF5ICogMTAwMDtcbiAgICAgIHRoaXMubWluRGVsYXkgPSB0aGlzLm1pbkRlbGF5ICogMTAwMDtcbiAgICAgIHRoaXMuaXNEZWxheUluU2Vjb25kcyA9IGZhbHNlO1xuXG4gICAgICB0aGlzLmRlbGF5SW5TZWNvbmRzID0gdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5kZWxheS52YWx1ZSAvIDEwMDA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21iaW5lRGF0ZUFuZFRpbWUoZGF0ZTogRGF0ZSwgdGltZTogRGF0ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgdGltZS5nZXRIb3VycygpLFxuICAgICAgdGltZS5nZXRNaW51dGVzKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRlVmFsaWRhdGlvbihmQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICBpZiAoZkNvbnRyb2wudmFsdWUpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBmQ29udHJvbC52YWx1ZSBhcyBEYXRlO1xuICAgICAgZkNvbnRyb2wucGFyZW50LmdldCgndGltZScpLnNldFZhbHVlKGRhdGUpO1xuICAgICAgcmV0dXJuIGRhdGUgPj0gbmV3IERhdGUoKVxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7XG4gICAgICAgICAgICBkYXRlVmFsaWRhdGlvbjogdHJ1ZVxuICAgICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7IGRhdGVWYWxpZGF0aW9uOiB0cnVlIH07XG4gIH1cblxuICBwcml2YXRlIHRpbWVWYWxpZGF0aW9uKGZDb250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgIGlmIChmQ29udHJvbC52YWx1ZSkge1xuICAgICAgY29uc3QgZGF0ZSA9IGZDb250cm9sLnZhbHVlIGFzIERhdGU7XG4gICAgICBjb25zdCByZXN1bHQgPVxuICAgICAgICBkYXRlID49IG5ldyBEYXRlKClcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgZGF0ZVZhbGlkYXRpb246IHRydWVcbiAgICAgICAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBpY2tlciA9IGZDb250cm9sLnBhcmVudC5nZXQoJ3BpY2tlcicpO1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHBpY2tlci5zZXRFcnJvcnMocmVzdWx0KTtcbiAgICAgICAgcGlja2VyLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHBpY2tlciAmJiBwaWNrZXIuZXJyb3JzICYmIHBpY2tlci5lcnJvcnMuZGF0ZVZhbGlkYXRpb24pIHtcbiAgICAgICAgZGVsZXRlIHBpY2tlci5lcnJvcnMuZGF0ZVZhbGlkYXRpb247XG5cbiAgICAgICAgaWYgKGlzRW1wdHkocGlja2VyLmVycm9ycykpIHtcbiAgICAgICAgICBwaWNrZXIuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICBwaWNrZXIuc2V0RXJyb3JzKHBpY2tlci5lcnJvcnMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHsgZGF0ZVZhbGlkYXRpb246IHRydWUgfTtcbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZnT3BlcmF0aW9uU2NoZWR1bGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgPGxhYmVsIHRyYW5zbGF0ZT5TdGFydCBkYXRlPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZXRpbWUtcGlja2VyXCI+XG4gICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJkYXRlcGlja2VyXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBpY2tlclwiXG4gICAgICAgICAgW2JzQ29uZmlnXT1cInsgY3VzdG9tVG9kYXlDbGFzczogJ3RvZGF5JyB9XCJcbiAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICBic0RhdGVwaWNrZXJcbiAgICAgICAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIlxuICAgICAgICAvPlxuICAgICAgICA8Yzh5LW1lc3NhZ2VzPlxuICAgICAgICAgIDxjOHktbWVzc2FnZVxuICAgICAgICAgICAgW25hbWVdPVwiJ2RhdGVWYWxpZGF0aW9uJ1wiXG4gICAgICAgICAgICBbdGV4dF09XCInU2VsZWN0IHRpbWUgaW4gdGhlIGZ1dHVyZS4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+PC9jOHktbWVzc2FnZT5cbiAgICAgICAgPC9jOHktbWVzc2FnZXM+XG4gICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgPHRpbWVwaWNrZXJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICAgICAgW3Nob3dTcGlubmVyc109XCJmYWxzZVwiXG4gICAgICAgIFtzaG93TWVyaWRpYW5dPVwiZmFsc2VcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aW1lXCJcbiAgICAgICAgKGJsdXIpPVwibWFya0FzVG91Y2hlZCgpXCJcbiAgICAgID48L3RpbWVwaWNrZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgIDxjOHktZm9ybS1ncm91cCBbaGFzRXJyb3JdPVwiZGVsYXlFcnJvcnNcIj5cbiAgICAgIDxsYWJlbCB0cmFuc2xhdGU+RGVsYXk8L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuJyB8IHRyYW5zbGF0ZSB9fSAxNVwiXG4gICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZWxheVwiXG4gICAgICAgICAgKGJsdXIpPVwibWFya0FzVG91Y2hlZCgpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjOHktc2VsZWN0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbS1yLXNtLTMyIG0tci14cy01NlwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0RlbGF5IHVuaXRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVuaXRcIlxuICAgICAgICAgICAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgdmFsdWU9XCJzZWNvbmRzXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFNlY29uZHNcbiAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICB2YWx1ZT1cIm1pbGxpc2Vjb25kc1wiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBNaWxsaXNlY29uZHNcbiAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXNjaGVkdWxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2J1bGstb3BlcmF0aW9uLXNjaGVkdWxlci9vcGVyYXRpb24tc2NoZWR1bGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvYnVsay1vcGVyYXRpb24tc2NoZWR1bGVyL29wZXJhdGlvbi1zY2hlZHVsZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBRUwsV0FBVyxFQUdYLGFBQWEsRUFDYixpQkFBaUIsRUFHakIsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBbUI5QyxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDLElBQTJCLGFBQWEsQ0FBQyxPQUFlO1FBQ3RELElBQUksT0FBTyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQTRCRCxZQUNVLFdBQXdCLEVBQ3hCLE9BQXVCO1FBRHZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBNUJqQyxnQkFBVyxHQUFXLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUs1QyxnQkFBVyxHQUFxQixJQUFJLENBQUM7UUFDckMsaUJBQVksR0FBcUIsSUFBSSxDQUFD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QixPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQztnQkFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQzs4R0FuUVUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsZ0hBYjNCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQzthQUMzRDtZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2FBQzNEO1NBQ0YsMEJDaENILCttRUF1RUE7OzJGRHJDYSwyQkFBMkI7a0JBaEJ2QyxTQUFTOytCQUNFLHlCQUF5QixhQUV4Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzt5QkFDM0Q7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDO3lCQUMzRDtxQkFDRjs2R0FLMEIsYUFBYTtzQkFBdkMsS0FBSzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9yc1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXR0ZXh0LCBPcHRpb25zU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9wZXJhdGlvblNjaGVkdWxlIH0gZnJvbSAnLi9vcGVyYXRpb24tc2NoZWR1bGUuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LW9wZXJhdGlvbi1zY2hlZHVsZXInLFxuICB0ZW1wbGF0ZVVybDogJ29wZXJhdGlvbi1zY2hlZHVsZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT3BlcmF0aW9uU2NoZWR1bGVyQ29tcG9uZW50KVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT3BlcmF0aW9uU2NoZWR1bGVyQ29tcG9uZW50KVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPcGVyYXRpb25TY2hlZHVsZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoJ21pbnV0ZXNBaGVhZCcpIHNldCBfbWludXRlc0FoZWFkKG1pbnV0ZXM6IG51bWJlcikge1xuICAgIGlmIChtaW51dGVzICYmIG1pbnV0ZXMgPiB0aGlzLk1JTlVURVNfQUhFQURfREVGQVVMVCkge1xuICAgICAgdGhpcy5taW51dGVzQWhlYWQgPSBtaW51dGVzO1xuICAgIH1cbiAgfVxuXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBnZXR0ZXh0KCdTdGFydCBkYXRlJyk7XG4gIGZnT3BlcmF0aW9uU2NoZWR1bGVyOiBGb3JtR3JvdXA7XG4gIG1pbkRhdGU6IERhdGU7XG4gIG1pbkRlbGF5OiBudW1iZXI7XG4gIG1heERlbGF5OiBudW1iZXI7XG4gIGRlbGF5RXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gbnVsbDtcbiAgcGlja2VyRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IERFTEFZX1NFQ09ORFNfREVGQVVMVDogbnVtYmVyID0gMTtcbiAgcHJpdmF0ZSByZWFkb25seSBNSU5fREVMQVlfU0VDT05EU19ERUZBVUxUOiBudW1iZXIgPSAwLjAwMTtcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfREVMQVlfU0VDT05EU19ERUZBVUxUOiBudW1iZXIgPSAzNjAwO1xuICBwcml2YXRlIHJlYWRvbmx5IE1JTlVURVNfQUhFQURfREVGQVVMVDogbnVtYmVyID0gNTtcbiAgcHJpdmF0ZSBpc0RlbGF5SW5TZWNvbmRzID0gdHJ1ZTtcbiAgcHJpdmF0ZSBtaW51dGVzQWhlYWQ6IG51bWJlciA9IHRoaXMuTUlOVVRFU19BSEVBRF9ERUZBVUxUO1xuICBwcml2YXRlIHJlYWRvbmx5IERFTEFZX0tFWV9DQVRFR09SWSA9ICdkZXZpY2UtY29udHJvbCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX0RFTEFZX0tFWV9OQU1FID0gJ2J1bGtvcGVyYXRpb24ubWF4Y3JlYXRpb25yYW1wJztcbiAgcHJpdmF0ZSByZWFkb25seSBNSU5fREVMQVlfS0VZX05BTUUgPSAnYnVsa29wZXJhdGlvbi5jcmVhdGlvbnJhbXAnO1xuICBwcml2YXRlIGN1cnJlbnRVbml0ID0gJ3NlY29uZHMnO1xuICBwcml2YXRlIGRlbGF5SW5TZWNvbmRzOiBudW1iZXI7XG4gIHByaXZhdGUgaW5pdGlhbERhdGU6IERhdGU7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKG5hbWUpID0+IHZvaWQ7XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIG9uVmFsaWRhdG9yQ2hhbmdlZDogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIG9wdGlvbnM6IE9wdGlvbnNTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuaW5pdGlhbERhdGUgPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMubWluRGF0ZS5zZXRNaW51dGVzKHRoaXMubWluRGF0ZS5nZXRNaW51dGVzKCkgKyB0aGlzLm1pbnV0ZXNBaGVhZClcbiAgICApO1xuXG4gICAgdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlciA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgcGlja2VyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLmRhdGVWYWxpZGF0aW9uXV0sXG4gICAgICB0aW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLnRpbWVWYWxpZGF0aW9uXV0sXG4gICAgICBkZWxheTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgdW5pdDogWydzZWNvbmRzJ11cbiAgICB9KTtcblxuICAgIHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIucGF0Y2hWYWx1ZSh7XG4gICAgICBwaWNrZXI6IHRoaXMuaW5pdGlhbERhdGUsXG4gICAgICB0aW1lOiB0aGlzLmluaXRpYWxEYXRlLFxuICAgICAgZGVsYXk6IHRoaXMuREVMQVlfU0VDT05EU19ERUZBVUxUXG4gICAgfSk7XG5cbiAgICAvLyBEdWUgdG8gdGhlIHZhbGlkYXRpb24gb2YgcGlja2VyIGFuZCB0aW1lIGl0IGNvdWxkIGJlIHBvc3NpYmxlIHRoYXQgdmFsdWUgY2hhbmdlc1xuICAgIC8vIGFyZSBlbWl0dGVkIG1vcmUgdGhhbiBvbmNlLiBUaGVyZWZvcmUgd2UgdGhyb3R0bGUgdGhlIGVtaXRzLlxuICAgIGNvbnN0IHZhbHVlQ2hhbmdlcyQgPSB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLnZhbHVlQ2hhbmdlcy5waXBlKHRocm90dGxlVGltZSgxMDApKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHZhbHVlQ2hhbmdlcyQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5kZWxheUVycm9ycyA9IHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuY29udHJvbHMuZGVsYXkuZXJyb3JzO1xuICAgICAgdGhpcy5waWNrZXJFcnJvcnMgPSB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLnBpY2tlci5lcnJvcnM7XG4gICAgICB0aGlzLmNvbnZlcnREZWxheUhhbmRsZXIoZGF0YS51bml0KTtcbiAgICAgIHRoaXMuZW1pdERhdGEoZGF0YSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZURlbGF5VmFsaWRhdGlvbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uICYmICF0aGlzLnN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogT3BlcmF0aW9uU2NoZWR1bGUpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIucGF0Y2hWYWx1ZSh7XG4gICAgICAgIHBpY2tlcjogdmFsdWUuc2NoZWR1bGVkRGF0ZSxcbiAgICAgICAgdGltZTogdmFsdWUuc2NoZWR1bGVkRGF0ZSxcbiAgICAgICAgZGVsYXk6IHZhbHVlLmRlbGF5SW5TZWNvbmRzID4gMSA/IHZhbHVlLmRlbGF5SW5TZWNvbmRzIDogdmFsdWUuZGVsYXlJblNlY29uZHMgKiAxMDAwLFxuICAgICAgICB1bml0OiB2YWx1ZS5kZWxheUluU2Vjb25kcyA+IDEgPyAnc2Vjb25kcycgOiAnbWlsbGlzZWNvbmRzJ1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXI/LmRpc2FibGVkID09PSBpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlzRGlzYWJsZWQgPyB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmRpc2FibGUoKSA6IHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuZW5hYmxlKCk7XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICBpZiAodGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5pbnZhbGlkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi50aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLnBpY2tlci5lcnJvcnMsXG4gICAgICAgIC4uLnRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuY29udHJvbHMudGltZS5lcnJvcnMsXG4gICAgICAgIC4uLnRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuY29udHJvbHMuZGVsYXkuZXJyb3JzXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2VkID0gZm47XG4gIH1cblxuICBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG4gIH1cblxuICBjb252ZXJ0RGVsYXlIYW5kbGVyKHVuaXQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmN1cnJlbnRVbml0ID09PSB1bml0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50VW5pdCA9IHVuaXQ7XG5cbiAgICB0aGlzLmNvbnZlcnREZWxheSh0aGlzLmN1cnJlbnRVbml0KTtcblxuICAgIC8vIHVwZGF0ZSB2YWxpZGF0b3Igb24gZGVsYXkgY29udHJvbCB0byBtYWtlIHN1cmUgdGhhdFxuICAgIC8vIHN3aXRjaGluZyBmcm9tIG1pbnV0ZXMgdG8gc2Vjb25kcyBvciB2aWNlIHZlcnNhIGRvZXMgbm90IGhhcm0gdmFsaWRhdGlvbi5cbiAgICB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLmRlbGF5LnNldFZhbGlkYXRvcnMoW1xuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgIFZhbGlkYXRvcnMubWluKHRoaXMubWluRGVsYXkpLFxuICAgICAgVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhEZWxheSlcbiAgICBdKTtcbiAgICB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLmRlbGF5LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIGVtaXREYXRhKGRhdGE6IHsgZGVsYXlJblNlY29uZHM6IG51bWJlcjsgcGlja2VyOiBEYXRlOyB0aW1lPzogRGF0ZTsgZGVsYXk/OiBudW1iZXIgfSkge1xuICAgIGlmICh0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlZCkge1xuICAgICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5waWNrZXIgJiYgZGF0YS50aW1lKSB7XG4gICAgICBkYXRhLnBpY2tlciA9IHRoaXMuY29tYmluZURhdGVBbmRUaW1lKGRhdGEucGlja2VyLCBkYXRhLnRpbWUpO1xuICAgIH1cblxuICAgIHRoaXMuY29udmVydERlbGF5KHRoaXMuY3VycmVudFVuaXQpO1xuICAgIGRhdGEuZGVsYXlJblNlY29uZHMgPSB0aGlzLmRlbGF5SW5TZWNvbmRzO1xuXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICBkZWxheUluU2Vjb25kczogZGF0YS5kZWxheUluU2Vjb25kcyxcbiAgICAgICAgc2NoZWR1bGVkRGF0ZTogZGF0YS5waWNrZXJcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlRGVsYXlWYWxpZGF0aW9uKCkge1xuICAgIGNvbnN0IG1pblN5c3RlbSA9IGF3YWl0IHRoaXMub3B0aW9ucy5nZXRTeXN0ZW1PcHRpb24oXG4gICAgICB0aGlzLkRFTEFZX0tFWV9DQVRFR09SWSxcbiAgICAgIHRoaXMuTUlOX0RFTEFZX0tFWV9OQU1FXG4gICAgKTtcbiAgICBjb25zdCBtYXhTeXN0ZW0gPSBhd2FpdCB0aGlzLm9wdGlvbnMuZ2V0U3lzdGVtT3B0aW9uKFxuICAgICAgdGhpcy5ERUxBWV9LRVlfQ0FURUdPUlksXG4gICAgICB0aGlzLk1BWF9ERUxBWV9LRVlfTkFNRVxuICAgICk7XG5cbiAgICB0aGlzLm1heERlbGF5ID0gbWF4U3lzdGVtID8gTnVtYmVyKG1heFN5c3RlbSkgOiB0aGlzLk1BWF9ERUxBWV9TRUNPTkRTX0RFRkFVTFQ7XG4gICAgdGhpcy5taW5EZWxheSA9IG1pblN5c3RlbSA/IE51bWJlcihtaW5TeXN0ZW0pIDogdGhpcy5NSU5fREVMQVlfU0VDT05EU19ERUZBVUxUO1xuXG4gICAgdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlclxuICAgICAgLmdldCgnZGVsYXknKVxuICAgICAgLnNldFZhbGlkYXRvcnMoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLm1pbih0aGlzLm1pbkRlbGF5KSxcbiAgICAgICAgVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhEZWxheSlcbiAgICAgIF0pO1xuICAgIHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0RGVsYXkodW5pdDogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWxheUluU2Vjb25kcyA9IHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuY29udHJvbHMuZGVsYXkudmFsdWU7XG5cbiAgICBpZiAodW5pdCA9PT0gJ3NlY29uZHMnICYmICF0aGlzLmlzRGVsYXlJblNlY29uZHMpIHtcbiAgICAgIHRoaXMubWF4RGVsYXkgPSB0aGlzLm1heERlbGF5IC8gMTAwMDtcbiAgICAgIHRoaXMubWluRGVsYXkgPSB0aGlzLm1pbkRlbGF5IC8gMTAwMDtcbiAgICAgIHRoaXMuaXNEZWxheUluU2Vjb25kcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHVuaXQgPT09ICdtaWxsaXNlY29uZHMnKSB7XG4gICAgICB0aGlzLmRlbGF5SW5TZWNvbmRzID0gdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5kZWxheS52YWx1ZSAvIDEwMDA7XG4gICAgICBpZiAodGhpcy5pc0RlbGF5SW5TZWNvbmRzKSB7XG4gICAgICAgIHRoaXMubWF4RGVsYXkgPSB0aGlzLm1heERlbGF5ICogMTAwMDtcbiAgICAgICAgdGhpcy5taW5EZWxheSA9IHRoaXMubWluRGVsYXkgKiAxMDAwO1xuICAgICAgICB0aGlzLmlzRGVsYXlJblNlY29uZHMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbWJpbmVEYXRlQW5kVGltZShkYXRlOiBEYXRlLCB0aW1lOiBEYXRlKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKFxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgZGF0ZS5nZXREYXRlKCksXG4gICAgICB0aW1lLmdldEhvdXJzKCksXG4gICAgICB0aW1lLmdldE1pbnV0ZXMoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRhdGVWYWxpZGF0aW9uKGZDb250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgIGlmIChmQ29udHJvbC52YWx1ZSkge1xuICAgICAgY29uc3QgZGF0ZSA9IGZDb250cm9sLnZhbHVlIGFzIERhdGU7XG4gICAgICBmQ29udHJvbC5wYXJlbnQuZ2V0KCd0aW1lJykuc2V0VmFsdWUoZGF0ZSk7XG4gICAgICByZXR1cm4gZGF0ZSA+PSBuZXcgRGF0ZSgpXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGRhdGVWYWxpZGF0aW9uOiB0cnVlXG4gICAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHsgZGF0ZVZhbGlkYXRpb246IHRydWUgfTtcbiAgfVxuXG4gIHByaXZhdGUgdGltZVZhbGlkYXRpb24oZkNvbnRyb2w6IEZvcm1Db250cm9sKSB7XG4gICAgaWYgKGZDb250cm9sLnZhbHVlKSB7XG4gICAgICBjb25zdCBkYXRlID0gZkNvbnRyb2wudmFsdWUgYXMgRGF0ZTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9XG4gICAgICAgIGRhdGUgPj0gbmV3IERhdGUoKVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICBkYXRlVmFsaWRhdGlvbjogdHJ1ZVxuICAgICAgICAgICAgfTtcblxuICAgICAgY29uc3QgcGlja2VyID0gZkNvbnRyb2wucGFyZW50LmdldCgncGlja2VyJyk7XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcGlja2VyLnNldEVycm9ycyhyZXN1bHQpO1xuICAgICAgICBwaWNrZXIubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBpZiAocGlja2VyICYmIHBpY2tlci5lcnJvcnMgJiYgcGlja2VyLmVycm9ycy5kYXRlVmFsaWRhdGlvbikge1xuICAgICAgICBkZWxldGUgcGlja2VyLmVycm9ycy5kYXRlVmFsaWRhdGlvbjtcblxuICAgICAgICBpZiAoaXNFbXB0eShwaWNrZXIuZXJyb3JzKSkge1xuICAgICAgICAgIHBpY2tlci5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHBpY2tlci5zZXRFcnJvcnMocGlja2VyLmVycm9ycyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4geyBkYXRlVmFsaWRhdGlvbjogdHJ1ZSB9O1xuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZmdPcGVyYXRpb25TY2hlZHVsZXJcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICA8bGFiZWwgdHJhbnNsYXRlPlN0YXJ0IGRhdGU8L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRldGltZS1waWNrZXJcIj5cbiAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cImRhdGVwaWNrZXJcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGlja2VyXCJcbiAgICAgICAgICBbYnNDb25maWddPVwieyBjdXN0b21Ub2RheUNsYXNzOiAndG9kYXknIH1cIlxuICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICAgIGJzRGF0ZXBpY2tlclxuICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxjOHktbWVzc2FnZXM+XG4gICAgICAgICAgPGM4eS1tZXNzYWdlXG4gICAgICAgICAgICBbbmFtZV09XCInZGF0ZVZhbGlkYXRpb24nXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cIidTZWxlY3QgdGltZSBpbiB0aGUgZnV0dXJlLicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgID48L2M4eS1tZXNzYWdlPlxuICAgICAgICA8L2M4eS1tZXNzYWdlcz5cbiAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICA8dGltZXBpY2tlclxuICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgICAgICBbc2hvd1NwaW5uZXJzXT1cImZhbHNlXCJcbiAgICAgICAgW3Nob3dNZXJpZGlhbl09XCJmYWxzZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpbWVcIlxuICAgICAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIlxuICAgICAgPjwvdGltZXBpY2tlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgPGM4eS1mb3JtLWdyb3VwIFtoYXNFcnJvcl09XCJkZWxheUVycm9yc1wiPlxuICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5EZWxheTwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4nIHwgdHJhbnNsYXRlIH19IDE1XCJcbiAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlbGF5XCJcbiAgICAgICAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImM4eS1zZWxlY3Qtd3JhcHBlclwiPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBtLXItc20tMzIgbS1yLXhzLTU2XCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRGVsYXkgdW5pdHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidW5pdFwiXG4gICAgICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICB2YWx1ZT1cInNlY29uZHNcIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgU2Vjb25kc1xuICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgIHZhbHVlPVwibWlsbGlzZWNvbmRzXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIE1pbGxpc2Vjb25kc1xuICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|