@c8y/ngx-components 1018.503.52 → 1018.503.62

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.
Files changed (75) hide show
  1. package/context-dashboard/context-dashboard.component.d.ts +5 -1
  2. package/context-dashboard/dashboard-detail.component.d.ts +1 -0
  3. package/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts +1 -1
  4. package/core/common/ApplicationOptions.d.ts +4 -1
  5. package/core/common/common.module.d.ts +2 -1
  6. package/core/common/component-outlet.directive.d.ts +24 -0
  7. package/core/common/index.d.ts +1 -0
  8. package/esm2020/context-dashboard/cockpit-dashboard/cockpit-dashboard.component.mjs +3 -3
  9. package/esm2020/context-dashboard/context-dashboard.component.mjs +9 -2
  10. package/esm2020/context-dashboard/dashboard-availability.component.mjs +3 -3
  11. package/esm2020/context-dashboard/dashboard-detail.component.mjs +3 -3
  12. package/esm2020/context-dashboard/device-info-dashboard/device-info-dashboard.component.mjs +14 -14
  13. package/esm2020/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.component.mjs +3 -3
  14. package/esm2020/core/action/action-outlet.component.mjs +6 -5
  15. package/esm2020/core/common/ApplicationOptions.mjs +1 -1
  16. package/esm2020/core/common/common.module.mjs +8 -5
  17. package/esm2020/core/common/component-outlet.directive.mjs +56 -0
  18. package/esm2020/core/common/index.mjs +2 -1
  19. package/esm2020/core/dashboard/wiget-time-context/widget-time-context.component.mjs +4 -3
  20. package/esm2020/core/data-grid/column/cell-renderer.component.mjs +5 -4
  21. package/esm2020/core/data-grid/column/filtering-form-renderer.component.mjs +5 -4
  22. package/esm2020/core/docs/help-and-support-outlet/help-and-support-outlet.component.mjs +7 -6
  23. package/esm2020/core/docs/legal-notices-outlet/legal-notices-outlet.component.mjs +6 -5
  24. package/esm2020/core/drawer/drawer-outlet/drawer-outlet.component.mjs +5 -4
  25. package/esm2020/core/navigator/navigator-node.component.mjs +6 -5
  26. package/esm2020/core/stepper/stepper-outlet.component.mjs +8 -7
  27. package/esm2020/core/tabs/tabs-outlet.component.mjs +5 -4
  28. package/esm2020/ecosystem/shared/list-filters/list-filters.component.mjs +3 -3
  29. package/esm2020/protocol-lwm2m/components/configuration/lwm2m-configuration.component.mjs +2 -1
  30. package/esm2020/protocol-lwm2m/components/configuration/typed-forms/connectivity-settings.component.mjs +8 -12
  31. package/esm2020/protocol-lwm2m/components/configuration/typed-forms/single-server-settings.component.mjs +21 -9
  32. package/esm2020/protocol-lwm2m/model/index.mjs +3 -1
  33. package/esm2020/protocol-lwm2m/services/lwm2m-configuration.service.mjs +64 -5
  34. package/fesm2015/c8y-ngx-components-context-dashboard.mjs +28 -21
  35. package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  36. package/fesm2015/c8y-ngx-components-ecosystem-shared.mjs +2 -2
  37. package/fesm2015/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  38. package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +30 -21
  39. package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
  40. package/fesm2015/c8y-ngx-components-protocol-lwm2m-model.mjs +2 -0
  41. package/fesm2015/c8y-ngx-components-protocol-lwm2m-model.mjs.map +1 -1
  42. package/fesm2015/c8y-ngx-components-protocol-lwm2m-services.mjs +63 -4
  43. package/fesm2015/c8y-ngx-components-protocol-lwm2m-services.mjs.map +1 -1
  44. package/fesm2015/c8y-ngx-components.mjs +83 -25
  45. package/fesm2015/c8y-ngx-components.mjs.map +1 -1
  46. package/fesm2020/c8y-ngx-components-context-dashboard.mjs +28 -21
  47. package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  48. package/fesm2020/c8y-ngx-components-ecosystem-shared.mjs +2 -2
  49. package/fesm2020/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  50. package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +27 -19
  51. package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
  52. package/fesm2020/c8y-ngx-components-protocol-lwm2m-model.mjs +2 -0
  53. package/fesm2020/c8y-ngx-components-protocol-lwm2m-model.mjs.map +1 -1
  54. package/fesm2020/c8y-ngx-components-protocol-lwm2m-services.mjs +63 -4
  55. package/fesm2020/c8y-ngx-components-protocol-lwm2m-services.mjs.map +1 -1
  56. package/fesm2020/c8y-ngx-components.mjs +82 -25
  57. package/fesm2020/c8y-ngx-components.mjs.map +1 -1
  58. package/locales/de.po +6 -0
  59. package/locales/en.po +6 -0
  60. package/locales/es.po +6 -0
  61. package/locales/fr.po +6 -0
  62. package/locales/ja_JP.po +8 -0
  63. package/locales/ko.po +6 -0
  64. package/locales/locales.pot +6 -0
  65. package/locales/nl.po +6 -0
  66. package/locales/pl.po +6 -0
  67. package/locales/pt_BR.po +6 -0
  68. package/locales/ru.po +6 -0
  69. package/locales/zh_CN.po +6 -0
  70. package/locales/zh_TW.po +6 -0
  71. package/package.json +1 -1
  72. package/protocol-lwm2m/components/configuration/typed-forms/connectivity-settings.component.d.ts +1 -4
  73. package/protocol-lwm2m/components/configuration/typed-forms/single-server-settings.component.d.ts +16 -22
  74. package/protocol-lwm2m/model/index.d.ts +11 -1
  75. package/protocol-lwm2m/services/lwm2m-configuration.service.d.ts +8 -1
@@ -149,10 +149,10 @@ export class ListFiltersComponent {
149
149
  }
150
150
  }
151
151
  ListFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ListFiltersComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AppStateService }, { token: i3.TranslateService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
152
- ListFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ListFiltersComponent, selector: "c8y-list-filters", inputs: { packageTypes: "packageTypes", packageAvailabilities: "packageAvailabilities", packageContents: "packageContents" }, outputs: { filterPipeChange: "filterPipeChange" }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: FilterInputComponent, descendants: true }], ngImport: i0, template: "<form class=\"d-flex a-i-center\" [formGroup]=\"formGroup\">\n <c8y-filter (onSearch)=\"setFilterTerm($event)\"></c8y-filter>\n\n <div\n *ngIf=\"predefinedFiltersVisible\"\n class=\"dropdown m-l-8 m-r-4\"\n dropdown\n (isOpenChange)=\"toggleDropdown($event)\"\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group d-inline-flex\">\n <button\n class=\"btn-clean form-control p-l-8 p-r-16 a-s-stretch d-flex a-i-center w-auto\"\n title=\"{{ 'Filters' | translate }}\"\n dropdownToggle\n >\n <span [ngPlural]=\"chips.length\">\n <ng-template ngPluralCase=\"=0\">\n {{ 'Filters' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"=1\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filter' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filters' | translate }}\n </ng-template>\n </span>\n <span class=\"caret\"></span>\n </button>\n <div\n class=\"input-group-addon p-t-0 p-b-0 d-flex gap-4 a-i-center inner-scroll\"\n *ngIf=\"chips.length > 0\"\n >\n <ng-container *ngFor=\"let chip of chips\">\n <span class=\"label label-info chip\" *ngIf=\"chip[1].value\">\n <button\n class=\"btn btn-xs btn-clean text-10\"\n type=\"button\"\n title=\"{{ 'Remove' | translate }} {{ chip[0] | translate | titlecase }}\"\n (click)=\"deselectChip(chip)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n {{ chip[0] | translate | titlecase }}\n </span>\n </ng-container>\n </div>\n </div>\n <div class=\"dropdown-menu\" *dropdownMenu>\n <div class=\"dropdown-form\">\n <c8y-form-group *ngIf=\"packageTypes.length\" formGroupName=\"type\">\n <label>\n {{ 'Type' | translate }}\n </label>\n <label class=\"c8y-checkbox\" *ngFor=\"let type of packageTypes\" [title]=\"type | translate\">\n <input type=\"checkbox\" [formControlName]=\"type\" [value]=\"type\" />\n <span></span>\n <span>{{ type | translate | titlecase }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group *ngIf=\"packageAvailabilities.length\" formGroupName=\"availability\">\n <label>\n {{ 'Availability' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n *ngFor=\"let availability of packageAvailabilities\"\n [title]=\"availability | translate\"\n >\n <input type=\"checkbox\" [formControlName]=\"availability\" [value]=\"availability\" />\n <span></span>\n <span>{{ availability | translate }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group *ngIf=\"packageContents.length\" formGroupName=\"content\">\n <label>\n {{ 'Content' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n *ngFor=\"let content of packageContents\"\n [title]=\"content | translate\"\n >\n <input type=\"checkbox\" [formControlName]=\"content\" [value]=\"content\" />\n <span></span>\n <span>{{ content | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n type=\"button\"\n title=\"{{ 'Reset' | translate }}\"\n (click)=\"reset(); filtersDropdown.isOpen = false\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n type=\"button\"\n title=\"{{ 'Apply' | translate }}\"\n (click)=\"applyPredefinedFilters(); filtersDropdown.isOpen = false\"\n [disabled]=\"formGroup.pristine && formGroup.untouched\"\n translate\n >\n Apply\n </button>\n </div>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: i4.NgPluralCase, selector: "[ngPluralCase]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2.FilterInputComponent, selector: "c8y-filter", inputs: ["icon"], outputs: ["onSearch"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i5.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i5.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i5.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }] });
152
+ ListFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ListFiltersComponent, selector: "c8y-list-filters", inputs: { packageTypes: "packageTypes", packageAvailabilities: "packageAvailabilities", packageContents: "packageContents" }, outputs: { filterPipeChange: "filterPipeChange" }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: FilterInputComponent, descendants: true }], ngImport: i0, template: "<form class=\"d-flex a-i-center\" [formGroup]=\"formGroup\">\n <c8y-filter (onSearch)=\"setFilterTerm($event)\"></c8y-filter>\n\n <div\n *ngIf=\"predefinedFiltersVisible\"\n class=\"dropdown m-l-8 m-r-4\"\n dropdown\n (isOpenChange)=\"toggleDropdown($event)\"\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group d-inline-flex\">\n <button\n class=\"btn-clean form-control p-l-8 p-r-16 a-s-stretch d-flex a-i-center w-auto\"\n title=\"{{ 'Filters' | translate }}\"\n dropdownToggle\n >\n <span [ngPlural]=\"chips.length\">\n <ng-template ngPluralCase=\"=0\">\n {{ 'Filters' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"=1\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filter' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filters' | translate }}\n </ng-template>\n </span>\n <span class=\"caret\"></span>\n </button>\n <div\n class=\"input-group-addon p-t-0 p-b-0 d-flex gap-4 a-i-center inner-scroll\"\n *ngIf=\"chips.length > 0\"\n >\n <ng-container *ngFor=\"let chip of chips\">\n <span class=\"label label-info chip\" *ngIf=\"chip[1].value\">\n <button\n class=\"btn btn-xs btn-clean text-10\"\n type=\"button\"\n title=\"{{ 'Remove' | translate }} {{ chip[0] | translate | titlecase }}\"\n (click)=\"deselectChip(chip)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n {{ chip[0] | translate | titlecase }}\n </span>\n </ng-container>\n </div>\n </div>\n <div class=\"dropdown-menu\" *dropdownMenu>\n <div class=\"dropdown-form\">\n <c8y-form-group *ngIf=\"packageTypes.length\" formGroupName=\"type\">\n <label>\n {{ 'Type' | translate }}\n </label>\n <label class=\"c8y-checkbox\" *ngFor=\"let type of packageTypes\" [title]=\"type | translate\">\n <input type=\"checkbox\" [formControlName]=\"type\" [value]=\"type\" />\n <span></span>\n <span>{{ type | translate | titlecase }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group *ngIf=\"packageAvailabilities.length\" formGroupName=\"availability\">\n <label>\n {{ 'Availability`of package based on app state`' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n *ngFor=\"let availability of packageAvailabilities\"\n [title]=\"availability | translate\"\n >\n <input type=\"checkbox\" [formControlName]=\"availability\" [value]=\"availability\" />\n <span></span>\n <span>{{ availability | translate }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group *ngIf=\"packageContents.length\" formGroupName=\"content\">\n <label>\n {{ 'Content' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n *ngFor=\"let content of packageContents\"\n [title]=\"content | translate\"\n >\n <input type=\"checkbox\" [formControlName]=\"content\" [value]=\"content\" />\n <span></span>\n <span>{{ content | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n type=\"button\"\n title=\"{{ 'Reset' | translate }}\"\n (click)=\"reset(); filtersDropdown.isOpen = false\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n type=\"button\"\n title=\"{{ 'Apply' | translate }}\"\n (click)=\"applyPredefinedFilters(); filtersDropdown.isOpen = false\"\n [disabled]=\"formGroup.pristine && formGroup.untouched\"\n translate\n >\n Apply\n </button>\n </div>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: i4.NgPluralCase, selector: "[ngPluralCase]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2.FilterInputComponent, selector: "c8y-filter", inputs: ["icon"], outputs: ["onSearch"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i5.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i5.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i5.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }] });
153
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ListFiltersComponent, decorators: [{
154
154
  type: Component,
155
- args: [{ selector: 'c8y-list-filters', template: "<form class=\"d-flex a-i-center\" [formGroup]=\"formGroup\">\n <c8y-filter (onSearch)=\"setFilterTerm($event)\"></c8y-filter>\n\n <div\n *ngIf=\"predefinedFiltersVisible\"\n class=\"dropdown m-l-8 m-r-4\"\n dropdown\n (isOpenChange)=\"toggleDropdown($event)\"\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group d-inline-flex\">\n <button\n class=\"btn-clean form-control p-l-8 p-r-16 a-s-stretch d-flex a-i-center w-auto\"\n title=\"{{ 'Filters' | translate }}\"\n dropdownToggle\n >\n <span [ngPlural]=\"chips.length\">\n <ng-template ngPluralCase=\"=0\">\n {{ 'Filters' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"=1\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filter' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filters' | translate }}\n </ng-template>\n </span>\n <span class=\"caret\"></span>\n </button>\n <div\n class=\"input-group-addon p-t-0 p-b-0 d-flex gap-4 a-i-center inner-scroll\"\n *ngIf=\"chips.length > 0\"\n >\n <ng-container *ngFor=\"let chip of chips\">\n <span class=\"label label-info chip\" *ngIf=\"chip[1].value\">\n <button\n class=\"btn btn-xs btn-clean text-10\"\n type=\"button\"\n title=\"{{ 'Remove' | translate }} {{ chip[0] | translate | titlecase }}\"\n (click)=\"deselectChip(chip)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n {{ chip[0] | translate | titlecase }}\n </span>\n </ng-container>\n </div>\n </div>\n <div class=\"dropdown-menu\" *dropdownMenu>\n <div class=\"dropdown-form\">\n <c8y-form-group *ngIf=\"packageTypes.length\" formGroupName=\"type\">\n <label>\n {{ 'Type' | translate }}\n </label>\n <label class=\"c8y-checkbox\" *ngFor=\"let type of packageTypes\" [title]=\"type | translate\">\n <input type=\"checkbox\" [formControlName]=\"type\" [value]=\"type\" />\n <span></span>\n <span>{{ type | translate | titlecase }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group *ngIf=\"packageAvailabilities.length\" formGroupName=\"availability\">\n <label>\n {{ 'Availability' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n *ngFor=\"let availability of packageAvailabilities\"\n [title]=\"availability | translate\"\n >\n <input type=\"checkbox\" [formControlName]=\"availability\" [value]=\"availability\" />\n <span></span>\n <span>{{ availability | translate }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group *ngIf=\"packageContents.length\" formGroupName=\"content\">\n <label>\n {{ 'Content' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n *ngFor=\"let content of packageContents\"\n [title]=\"content | translate\"\n >\n <input type=\"checkbox\" [formControlName]=\"content\" [value]=\"content\" />\n <span></span>\n <span>{{ content | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n type=\"button\"\n title=\"{{ 'Reset' | translate }}\"\n (click)=\"reset(); filtersDropdown.isOpen = false\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n type=\"button\"\n title=\"{{ 'Apply' | translate }}\"\n (click)=\"applyPredefinedFilters(); filtersDropdown.isOpen = false\"\n [disabled]=\"formGroup.pristine && formGroup.untouched\"\n translate\n >\n Apply\n </button>\n </div>\n </div>\n </div>\n</form>\n" }]
155
+ args: [{ selector: 'c8y-list-filters', template: "<form class=\"d-flex a-i-center\" [formGroup]=\"formGroup\">\n <c8y-filter (onSearch)=\"setFilterTerm($event)\"></c8y-filter>\n\n <div\n *ngIf=\"predefinedFiltersVisible\"\n class=\"dropdown m-l-8 m-r-4\"\n dropdown\n (isOpenChange)=\"toggleDropdown($event)\"\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group d-inline-flex\">\n <button\n class=\"btn-clean form-control p-l-8 p-r-16 a-s-stretch d-flex a-i-center w-auto\"\n title=\"{{ 'Filters' | translate }}\"\n dropdownToggle\n >\n <span [ngPlural]=\"chips.length\">\n <ng-template ngPluralCase=\"=0\">\n {{ 'Filters' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"=1\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filter' | translate }}\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span class=\"badge badge-info\">{{ chips.length }}</span>\n {{ 'Filters' | translate }}\n </ng-template>\n </span>\n <span class=\"caret\"></span>\n </button>\n <div\n class=\"input-group-addon p-t-0 p-b-0 d-flex gap-4 a-i-center inner-scroll\"\n *ngIf=\"chips.length > 0\"\n >\n <ng-container *ngFor=\"let chip of chips\">\n <span class=\"label label-info chip\" *ngIf=\"chip[1].value\">\n <button\n class=\"btn btn-xs btn-clean text-10\"\n type=\"button\"\n title=\"{{ 'Remove' | translate }} {{ chip[0] | translate | titlecase }}\"\n (click)=\"deselectChip(chip)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n {{ chip[0] | translate | titlecase }}\n </span>\n </ng-container>\n </div>\n </div>\n <div class=\"dropdown-menu\" *dropdownMenu>\n <div class=\"dropdown-form\">\n <c8y-form-group *ngIf=\"packageTypes.length\" formGroupName=\"type\">\n <label>\n {{ 'Type' | translate }}\n </label>\n <label class=\"c8y-checkbox\" *ngFor=\"let type of packageTypes\" [title]=\"type | translate\">\n <input type=\"checkbox\" [formControlName]=\"type\" [value]=\"type\" />\n <span></span>\n <span>{{ type | translate | titlecase }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group *ngIf=\"packageAvailabilities.length\" formGroupName=\"availability\">\n <label>\n {{ 'Availability`of package based on app state`' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n *ngFor=\"let availability of packageAvailabilities\"\n [title]=\"availability | translate\"\n >\n <input type=\"checkbox\" [formControlName]=\"availability\" [value]=\"availability\" />\n <span></span>\n <span>{{ availability | translate }}</span>\n </label>\n </c8y-form-group>\n\n <c8y-form-group *ngIf=\"packageContents.length\" formGroupName=\"content\">\n <label>\n {{ 'Content' | translate }}\n </label>\n <label\n class=\"c8y-checkbox\"\n *ngFor=\"let content of packageContents\"\n [title]=\"content | translate\"\n >\n <input type=\"checkbox\" [formControlName]=\"content\" [value]=\"content\" />\n <span></span>\n <span>{{ content | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n type=\"button\"\n title=\"{{ 'Reset' | translate }}\"\n (click)=\"reset(); filtersDropdown.isOpen = false\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n type=\"button\"\n title=\"{{ 'Apply' | translate }}\"\n (click)=\"applyPredefinedFilters(); filtersDropdown.isOpen = false\"\n [disabled]=\"formGroup.pristine && formGroup.untouched\"\n translate\n >\n Apply\n </button>\n </div>\n </div>\n </div>\n</form>\n" }]
156
156
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.AppStateService }, { type: i3.TranslateService }, { type: i2.GainsightService }]; }, propDecorators: { packageTypes: [{
157
157
  type: Input
158
158
  }], packageAvailabilities: [{
@@ -165,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
165
165
  type: ViewChild,
166
166
  args: [FilterInputComponent]
167
167
  }] } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1maWx0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9zaGFyZWQvbGlzdC1maWx0ZXJzL2xpc3QtZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL2xpc3QtZmlsdGVycy9saXN0LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFdBQVcsRUFDWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7QUFNeEQsTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0IsWUFDVSxXQUF3QixFQUN4QixFQUFtQixFQUNuQixnQkFBa0MsRUFDbEMsZ0JBQWtDO1FBSGxDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLE9BQUUsR0FBRixFQUFFLENBQWlCO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXBCbkMsaUJBQVksR0FBcUMs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RTtZQUMxRSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUE0QixFQUFFLEVBQUU7Z0JBQzlFLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtvQkFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3hCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQXJLVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixzUkFLcEIsb0JBQW9CLGdEQzFCakMsMnpJQXdIQTsyRkRuR2Esb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQjs4TEFJbkIsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQzBCLFdBQVc7c0JBQTNDLFNBQVM7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEFwcFN0YXRlU2VydmljZSxcbiAgRmlsdGVySW5wdXRDb21wb25lbnQsXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIGludGVybmFsQXBwcyxcbiAgUGFja2FnZVR5cGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBwaXBlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQYWNrYWdlRmlsdGVycywgRmlsdGVyUGlwZSB9IGZyb20gJy4vbGlzdC1maWx0ZXJzLm1vZGVsJztcbmltcG9ydCB7IEFQUF9TVEFURSB9IGZyb20gJy4uL2Vjb3N5c3RlbS5jb25zdGFudHMnO1xuaW1wb3J0IHsgUFJPRFVDVF9FWFBFUklFTkNFIH0gZnJvbSAnLi4vZWNvc3lzdGVtLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWxpc3QtZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIExpc3RGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcGFja2FnZVR5cGVzOiAoa2V5b2YgUGFja2FnZUZpbHRlcnNbJ3R5cGUnXSlbXSA9IFtdO1xuICBASW5wdXQoKSBwYWNrYWdlQXZhaWxhYmlsaXRpZXM6IChrZXlvZiBQYWNrYWdlRmlsdGVyc1snYXZhaWxhYmlsaXR5J10pW10gPSBbXTtcbiAgQElucHV0KCkgcGFja2FnZUNvbnRlbnRzOiAoa2V5b2YgUGFja2FnZUZpbHRlcnNbJ2NvbnRlbnQnXSlbXSA9IFtdO1xuICBAT3V0cHV0KCkgZmlsdGVyUGlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyUGlwZT4oKTtcbiAgQFZpZXdDaGlsZChGaWx0ZXJJbnB1dENvbXBvbmVudCkgZmlsdGVySW5wdXQ6IEZpbHRlcklucHV0Q29tcG9uZW50O1xuXG4gIGZvcm1Hcm91cDogUmV0dXJuVHlwZTxMaXN0RmlsdGVyc0NvbXBvbmVudFsnaW5pdEZvcm0nXT47XG4gIGNoaXBzOiBbc3RyaW5nLCBGb3JtQ29udHJvbF1bXSA9IFtdO1xuICBwcmVkZWZpbmVkRmlsdGVyc1Zpc2libGU6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBjdXJyZW50TGFuZzogc3RyaW5nO1xuICBwcml2YXRlIGRhdGE6IElBcHBsaWNhdGlvbltdO1xuICBwcml2YXRlIGN1cnJlbnRGaWx0ZXJzU3RhdGU6IFBhcnRpYWw8UGFja2FnZUZpbHRlcnM+O1xuICBwcml2YXRlIGN1cnJlbnRGaWx0ZXJUZXJtOiBzdHJpbmc7XG4gIHByaXZhdGUgQ1VSUkVOVF9MT0NBVElPTiA9IGxvY2F0aW9uLmhyZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB1aTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGdhaW5zaWdodFNlcnZpY2U6IEdhaW5zaWdodFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmluaXRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXJzU3RhdGUgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZTtcbiAgICB0aGlzLnByZWRlZmluZWRGaWx0ZXJzVmlzaWJsZSA9XG4gICAgICB0aGlzLnBhY2thZ2VUeXBlcz8ubGVuZ3RoID4gMCB8fFxuICAgICAgdGhpcy5wYWNrYWdlQXZhaWxhYmlsaXRpZXM/Lmxlbmd0aCA+IDAgfHxcbiAgICAgIHRoaXMucGFja2FnZUNvbnRlbnRzPy5sZW5ndGggPiAwO1xuICAgIHRoaXMuY3VycmVudExhbmcgPSB0aGlzLnVpLnN0YXRlLmxhbmc7XG4gIH1cblxuICBzZXRGaWx0ZXJUZXJtKGZpbHRlclRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEZpbHRlclRlcm0gPSBmaWx0ZXJUZXJtO1xuICAgIHRoaXMuc2V0UGlwZSgpO1xuXG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5GSUxURVJfTElTVCwge1xuICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuTElTVF9GSUxURVJTLFxuICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkFDVElPTlMuU0VUX0ZJTFRFUl9URVJNLFxuICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT05cbiAgICB9KTtcbiAgfVxuXG4gIGFwcGx5UHJlZGVmaW5lZEZpbHRlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50RmlsdGVyc1N0YXRlID0gdGhpcy5mb3JtR3JvdXAudmFsdWU7XG4gICAgdGhpcy5zZXRDaGlwcygpO1xuICAgIHRoaXMuc2V0UGlwZSgpO1xuXG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5GSUxURVJfTElTVCwge1xuICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuTElTVF9GSUxURVJTLFxuICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkFDVElPTlMuU0VUX1BSRURFRklORURfRklMVEVSUyxcbiAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OLFxuICAgICAgZmlsdGVyczogdGhpcy5jdXJyZW50RmlsdGVyc1N0YXRlXG4gICAgfSk7XG4gIH1cblxuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuRklMVEVSX0xJU1QsIHtcbiAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkxJU1RfRklMVEVSUyxcbiAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5BQ1RJT05TLlJFU0VUX0ZJTFRFUixcbiAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgfSk7XG4gICAgdGhpcy5hcHBseVByZWRlZmluZWRGaWx0ZXJzKCk7XG4gIH1cblxuICByZXNldEFsbEZpbHRlcnMoKSB7XG4gICAgdGhpcy5yZXNldCgpO1xuICAgIHRoaXMuZmlsdGVySW5wdXQucmVzZXQoKTtcbiAgfVxuXG4gIHRvZ2dsZURyb3Bkb3duKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghaXNPcGVuKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHRoaXMuY3VycmVudEZpbHRlcnNTdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgZGVzZWxlY3RDaGlwKGNoaXA6IFtzdHJpbmcsIEZvcm1Db250cm9sXSk6IHZvaWQge1xuICAgIGNoaXBbMV0uc2V0VmFsdWUoZmFsc2UpO1xuICAgIHRoaXMuYXBwbHlQcmVkZWZpbmVkRmlsdGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Rm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICB0eXBlOiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgW1BhY2thZ2VUeXBlLk9GRklDSUFMXTogW2ZhbHNlXSxcbiAgICAgICAgW1BhY2thZ2VUeXBlLkNPTU1VTklUWV06IFtmYWxzZV1cbiAgICAgIH0pLFxuICAgICAgYXZhaWxhYmlsaXR5OiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgW0FQUF9TVEFURS5TVUJTQ1JJQkVELmxhYmVsXTogW2ZhbHNlXSxcbiAgICAgICAgW0FQUF9TVEFURS5VTlBBQ0tFRC5sYWJlbF06IFtmYWxzZV0sXG4gICAgICAgIFtBUFBfU1RBVEUuRVhURVJOQUwubGFiZWxdOiBbZmFsc2VdLFxuICAgICAgICBbQVBQX1NUQVRFLkNVU1RPTS5sYWJlbF06IFtmYWxzZV1cbiAgICAgIH0pLFxuICAgICAgY29udGVudDogdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgIFtBUFBfU1RBVEUuUEFDS0FHRV9CTFVFUFJJTlQubGFiZWxdOiBbZmFsc2VdLFxuICAgICAgICBbQVBQX1NUQVRFLlBBQ0tBR0VfUExVR0lOLmxhYmVsXTogW2ZhbHNlXVxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGlwZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJQaXBlID0gcGlwZShcbiAgICAgIG1hcCgoZGF0YTogSUFwcGxpY2F0aW9uW10pID0+IHtcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YS5maWx0ZXIoKGFwcDogSUFwcGxpY2F0aW9uKSA9PiB7XG4gICAgICAgICAgbGV0IG1hdGNoZXNCeVN0cmluZztcbiAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudEZpbHRlclRlcm0gfHwgdGhpcy5jdXJyZW50RmlsdGVyVGVybS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBtYXRjaGVzQnlTdHJpbmcgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhcHBOYW1lID1cbiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZyA9PT0gJ2VuJyB8fCAhYXBwLm5hbWU/Lmxlbmd0aCB8fCAhaW50ZXJuYWxBcHBzW2FwcC5uYW1lXVxuICAgICAgICAgICAgICAgID8gYXBwLm5hbWVcbiAgICAgICAgICAgICAgICA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGludGVybmFsQXBwc1thcHAubmFtZV0pO1xuICAgICAgICAgICAgbWF0Y2hlc0J5U3RyaW5nID1cbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJDb250YWluU3RyaW5nKGFwcE5hbWUsIHRoaXMuY3VycmVudEZpbHRlclRlcm0pIHx8XG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyQ29udGFpblN0cmluZyhhcHAuZGVzY3JpcHRpb24sIHRoaXMuY3VycmVudEZpbHRlclRlcm0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG1hdGNoZXNCeVByZWRlZmluZWRQcm9wZXJ0eSA9XG4gICAgICAgICAgICB0aGlzLmFwcE1hdGNoZXNCeVByZWRlZmluZWRQcm9wZXJ0eShhcHAsICd0eXBlJykgJiZcbiAgICAgICAgICAgIHRoaXMuYXBwTWF0Y2hlc0J5UHJlZGVmaW5lZFByb3BlcnR5KGFwcCwgJ2F2YWlsYWJpbGl0eScpICYmXG4gICAgICAgICAgICB0aGlzLmFwcE1hdGNoZXNCeVByZWRlZmluZWRQcm9wZXJ0eShhcHAsICdjb250ZW50Jyk7XG5cbiAgICAgICAgICByZXR1cm4gbWF0Y2hlc0J5U3RyaW5nICYmIG1hdGNoZXNCeVByZWRlZmluZWRQcm9wZXJ0eTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGE7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5maWx0ZXJQaXBlQ2hhbmdlLmVtaXQoZmlsdGVyUGlwZSk7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckNvbnRhaW5TdHJpbmcobmFtZTogc3RyaW5nLCBmaWx0ZXJUZXJtOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCB0ZXJtID0gZmlsdGVyVGVybS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICByZXR1cm4gbmFtZSAmJiBuYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0ZXJtKSA+IC0xO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBNYXRjaGVzQnlQcmVkZWZpbmVkUHJvcGVydHkoXG4gICAgYXBwOiBJQXBwbGljYXRpb24sXG4gICAgcHJvcGVydHk6IGtleW9mIFBhY2thZ2VGaWx0ZXJzXG4gICk6IGJvb2xlYW4ge1xuICAgIC8vIGlmIGZpbHRlciBvYmplY3QgZG9lcyBub3QgY29udGFpbiBwcm9wZXJ0eSBmaWx0ZXJzIG9yIGFsbCBmaWx0ZXJzIGFyZSBmYWxzZSwgZmlsdGVyIGlzIGluYWN0aXZlXG4gICAgY29uc3QgZmlsdGVyRm9yUHJvcGVydHlJc0FjdGl2ZSA9XG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXJzU3RhdGU/Lltwcm9wZXJ0eV0gJiZcbiAgICAgICFPYmplY3QudmFsdWVzKHRoaXMuY3VycmVudEZpbHRlcnNTdGF0ZVtwcm9wZXJ0eV0pLmV2ZXJ5KHYgPT4gIXYpO1xuICAgIGlmICghZmlsdGVyRm9yUHJvcGVydHlJc0FjdGl2ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICghYXBwLmZpbHRlclByb3BzPy5bcHJvcGVydHldKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRGaWx0ZXJzU3RhdGVbcHJvcGVydHldW2FwcC5maWx0ZXJQcm9wc1twcm9wZXJ0eV1dO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hpcHMoKTogdm9pZCB7XG4gICAgdGhpcy5jaGlwcyA9IFtdO1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2xzR3JvdXA6IEZvcm1Hcm91cCkgPT4ge1xuICAgICAgT2JqZWN0LmVudHJpZXMoY29udHJvbHNHcm91cC5jb250cm9scykuZm9yRWFjaCgoZW50cnk6IFtzdHJpbmcsIEZvcm1Db250cm9sXSkgPT4ge1xuICAgICAgICBpZiAoZW50cnlbMV0udmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmNoaXBzLnB1c2goZW50cnkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxjOHktZmlsdGVyIChvblNlYXJjaCk9XCJzZXRGaWx0ZXJUZXJtKCRldmVudClcIj48L2M4eS1maWx0ZXI+XG5cbiAgPGRpdlxuICAgICpuZ0lmPVwicHJlZGVmaW5lZEZpbHRlcnNWaXNpYmxlXCJcbiAgICBjbGFzcz1cImRyb3Bkb3duIG0tbC04IG0tci00XCJcbiAgICBkcm9wZG93blxuICAgIChpc09wZW5DaGFuZ2UpPVwidG9nZ2xlRHJvcGRvd24oJGV2ZW50KVwiXG4gICAgI2ZpbHRlcnNEcm9wZG93bj1cImJzLWRyb3Bkb3duXCJcbiAgICBbY2RrVHJhcEZvY3VzXT1cImZpbHRlcnNEcm9wZG93bi5pc09wZW5cIlxuICAgIFtpbnNpZGVDbGlja109XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkLWlubGluZS1mbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuLWNsZWFuIGZvcm0tY29udHJvbCBwLWwtOCBwLXItMTYgYS1zLXN0cmV0Y2ggZC1mbGV4IGEtaS1jZW50ZXIgdy1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnRmlsdGVycycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgPlxuICAgICAgICA8c3BhbiBbbmdQbHVyYWxdPVwiY2hpcHMubGVuZ3RoXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nUGx1cmFsQ2FzZT1cIj0wXCI+XG4gICAgICAgICAgICB7eyAnRmlsdGVycycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ1BsdXJhbENhc2U9XCI9MVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1pbmZvXCI+e3sgY2hpcHMubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICAgICAge3sgJ0ZpbHRlcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ1BsdXJhbENhc2U9XCJvdGhlclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1pbmZvXCI+e3sgY2hpcHMubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICAgICAge3sgJ0ZpbHRlcnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmV0XCI+PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gcC10LTAgcC1iLTAgZC1mbGV4IGdhcC00IGEtaS1jZW50ZXIgaW5uZXItc2Nyb2xsXCJcbiAgICAgICAgKm5nSWY9XCJjaGlwcy5sZW5ndGggPiAwXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpcCBvZiBjaGlwc1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwgbGFiZWwtaW5mbyBjaGlwXCIgKm5nSWY9XCJjaGlwWzFdLnZhbHVlXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi14cyBidG4tY2xlYW4gdGV4dC0xMFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdSZW1vdmUnIHwgdHJhbnNsYXRlIH19IHt7IGNoaXBbMF0gfCB0cmFuc2xhdGUgfCB0aXRsZWNhc2UgfX1cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVzZWxlY3RDaGlwKGNoaXApXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cInRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB7eyBjaGlwWzBdIHwgdHJhbnNsYXRlIHwgdGl0bGVjYXNlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgKmRyb3Bkb3duTWVudT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1mb3JtXCI+XG4gICAgICAgIDxjOHktZm9ybS1ncm91cCAqbmdJZj1cInBhY2thZ2VUeXBlcy5sZW5ndGhcIiBmb3JtR3JvdXBOYW1lPVwidHlwZVwiPlxuICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgIHt7ICdUeXBlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYzh5LWNoZWNrYm94XCIgKm5nRm9yPVwibGV0IHR5cGUgb2YgcGFja2FnZVR5cGVzXCIgW3RpdGxlXT1cInR5cGUgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInR5cGVcIiBbdmFsdWVdPVwidHlwZVwiIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyB0eXBlIHwgdHJhbnNsYXRlIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgICAgICAgPGM4eS1mb3JtLWdyb3VwICpuZ0lmPVwicGFja2FnZUF2YWlsYWJpbGl0aWVzLmxlbmd0aFwiIGZvcm1Hcm91cE5hbWU9XCJhdmFpbGFiaWxpdHlcIj5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICB7eyAnQXZhaWxhYmlsaXR5JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBjbGFzcz1cImM4eS1jaGVja2JveFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgYXZhaWxhYmlsaXR5IG9mIHBhY2thZ2VBdmFpbGFiaWxpdGllc1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiYXZhaWxhYmlsaXR5IHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2Zvcm1Db250cm9sTmFtZV09XCJhdmFpbGFiaWxpdHlcIiBbdmFsdWVdPVwiYXZhaWxhYmlsaXR5XCIgLz5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGF2YWlsYWJpbGl0eSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuXG4gICAgICAgIDxjOHktZm9ybS1ncm91cCAqbmdJZj1cInBhY2thZ2VDb250ZW50cy5sZW5ndGhcIiBmb3JtR3JvdXBOYW1lPVwiY29udGVudFwiPlxuICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgIHt7ICdDb250ZW50JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBjbGFzcz1cImM4eS1jaGVja2JveFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29udGVudCBvZiBwYWNrYWdlQ29udGVudHNcIlxuICAgICAgICAgICAgW3RpdGxlXT1cImNvbnRlbnQgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRlbnRcIiBbdmFsdWVdPVwiY29udGVudFwiIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBjb250ZW50IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTE2IGQtZmxleCBnYXAtOCBzZXBhcmF0b3ItdG9wXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc20gZmxleC1ncm93XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICB0aXRsZT1cInt7ICdSZXNldCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIChjbGljayk9XCJyZXNldCgpOyBmaWx0ZXJzRHJvcGRvd24uaXNPcGVuID0gZmFsc2VcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgUmVzZXRcbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBmbGV4LWdyb3dcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHRpdGxlPVwie3sgJ0FwcGx5JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlZGVmaW5lZEZpbHRlcnMoKTsgZmlsdGVyc0Ryb3Bkb3duLmlzT3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybUdyb3VwLnByaXN0aW5lICYmIGZvcm1Hcm91cC51bnRvdWNoZWRcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgQXBwbHlcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1maWx0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9zaGFyZWQvbGlzdC1maWx0ZXJzL2xpc3QtZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL2xpc3QtZmlsdGVycy9saXN0LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFdBQVcsRUFDWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7QUFNeEQsTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0IsWUFDVSxXQUF3QixFQUN4QixFQUFtQixFQUNuQixnQkFBa0MsRUFDbEMsZ0JBQWtDO1FBSGxDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLE9BQUUsR0FBRixFQUFFLENBQWlCO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXBCbkMsaUJBQVksR0FBcUMs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RTtZQUMxRSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUE0QixFQUFFLEVBQUU7Z0JBQzlFLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtvQkFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3hCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQXJLVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixzUkFLcEIsb0JBQW9CLGdEQzFCakMsMDFJQXdIQTsyRkRuR2Esb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQjs4TEFJbkIsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQzBCLFdBQVc7c0JBQTNDLFNBQVM7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEFwcFN0YXRlU2VydmljZSxcbiAgRmlsdGVySW5wdXRDb21wb25lbnQsXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIGludGVybmFsQXBwcyxcbiAgUGFja2FnZVR5cGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBwaXBlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQYWNrYWdlRmlsdGVycywgRmlsdGVyUGlwZSB9IGZyb20gJy4vbGlzdC1maWx0ZXJzLm1vZGVsJztcbmltcG9ydCB7IEFQUF9TVEFURSB9IGZyb20gJy4uL2Vjb3N5c3RlbS5jb25zdGFudHMnO1xuaW1wb3J0IHsgUFJPRFVDVF9FWFBFUklFTkNFIH0gZnJvbSAnLi4vZWNvc3lzdGVtLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWxpc3QtZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIExpc3RGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcGFja2FnZVR5cGVzOiAoa2V5b2YgUGFja2FnZUZpbHRlcnNbJ3R5cGUnXSlbXSA9IFtdO1xuICBASW5wdXQoKSBwYWNrYWdlQXZhaWxhYmlsaXRpZXM6IChrZXlvZiBQYWNrYWdlRmlsdGVyc1snYXZhaWxhYmlsaXR5J10pW10gPSBbXTtcbiAgQElucHV0KCkgcGFja2FnZUNvbnRlbnRzOiAoa2V5b2YgUGFja2FnZUZpbHRlcnNbJ2NvbnRlbnQnXSlbXSA9IFtdO1xuICBAT3V0cHV0KCkgZmlsdGVyUGlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyUGlwZT4oKTtcbiAgQFZpZXdDaGlsZChGaWx0ZXJJbnB1dENvbXBvbmVudCkgZmlsdGVySW5wdXQ6IEZpbHRlcklucHV0Q29tcG9uZW50O1xuXG4gIGZvcm1Hcm91cDogUmV0dXJuVHlwZTxMaXN0RmlsdGVyc0NvbXBvbmVudFsnaW5pdEZvcm0nXT47XG4gIGNoaXBzOiBbc3RyaW5nLCBGb3JtQ29udHJvbF1bXSA9IFtdO1xuICBwcmVkZWZpbmVkRmlsdGVyc1Zpc2libGU6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBjdXJyZW50TGFuZzogc3RyaW5nO1xuICBwcml2YXRlIGRhdGE6IElBcHBsaWNhdGlvbltdO1xuICBwcml2YXRlIGN1cnJlbnRGaWx0ZXJzU3RhdGU6IFBhcnRpYWw8UGFja2FnZUZpbHRlcnM+O1xuICBwcml2YXRlIGN1cnJlbnRGaWx0ZXJUZXJtOiBzdHJpbmc7XG4gIHByaXZhdGUgQ1VSUkVOVF9MT0NBVElPTiA9IGxvY2F0aW9uLmhyZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB1aTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGdhaW5zaWdodFNlcnZpY2U6IEdhaW5zaWdodFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmluaXRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXJzU3RhdGUgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZTtcbiAgICB0aGlzLnByZWRlZmluZWRGaWx0ZXJzVmlzaWJsZSA9XG4gICAgICB0aGlzLnBhY2thZ2VUeXBlcz8ubGVuZ3RoID4gMCB8fFxuICAgICAgdGhpcy5wYWNrYWdlQXZhaWxhYmlsaXRpZXM/Lmxlbmd0aCA+IDAgfHxcbiAgICAgIHRoaXMucGFja2FnZUNvbnRlbnRzPy5sZW5ndGggPiAwO1xuICAgIHRoaXMuY3VycmVudExhbmcgPSB0aGlzLnVpLnN0YXRlLmxhbmc7XG4gIH1cblxuICBzZXRGaWx0ZXJUZXJtKGZpbHRlclRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEZpbHRlclRlcm0gPSBmaWx0ZXJUZXJtO1xuICAgIHRoaXMuc2V0UGlwZSgpO1xuXG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5GSUxURVJfTElTVCwge1xuICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuTElTVF9GSUxURVJTLFxuICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkFDVElPTlMuU0VUX0ZJTFRFUl9URVJNLFxuICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT05cbiAgICB9KTtcbiAgfVxuXG4gIGFwcGx5UHJlZGVmaW5lZEZpbHRlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50RmlsdGVyc1N0YXRlID0gdGhpcy5mb3JtR3JvdXAudmFsdWU7XG4gICAgdGhpcy5zZXRDaGlwcygpO1xuICAgIHRoaXMuc2V0UGlwZSgpO1xuXG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5GSUxURVJfTElTVCwge1xuICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuTElTVF9GSUxURVJTLFxuICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkFDVElPTlMuU0VUX1BSRURFRklORURfRklMVEVSUyxcbiAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OLFxuICAgICAgZmlsdGVyczogdGhpcy5jdXJyZW50RmlsdGVyc1N0YXRlXG4gICAgfSk7XG4gIH1cblxuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuRklMVEVSX0xJU1QsIHtcbiAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkxJU1RfRklMVEVSUyxcbiAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5BQ1RJT05TLlJFU0VUX0ZJTFRFUixcbiAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgfSk7XG4gICAgdGhpcy5hcHBseVByZWRlZmluZWRGaWx0ZXJzKCk7XG4gIH1cblxuICByZXNldEFsbEZpbHRlcnMoKSB7XG4gICAgdGhpcy5yZXNldCgpO1xuICAgIHRoaXMuZmlsdGVySW5wdXQucmVzZXQoKTtcbiAgfVxuXG4gIHRvZ2dsZURyb3Bkb3duKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghaXNPcGVuKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHRoaXMuY3VycmVudEZpbHRlcnNTdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgZGVzZWxlY3RDaGlwKGNoaXA6IFtzdHJpbmcsIEZvcm1Db250cm9sXSk6IHZvaWQge1xuICAgIGNoaXBbMV0uc2V0VmFsdWUoZmFsc2UpO1xuICAgIHRoaXMuYXBwbHlQcmVkZWZpbmVkRmlsdGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Rm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICB0eXBlOiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgW1BhY2thZ2VUeXBlLk9GRklDSUFMXTogW2ZhbHNlXSxcbiAgICAgICAgW1BhY2thZ2VUeXBlLkNPTU1VTklUWV06IFtmYWxzZV1cbiAgICAgIH0pLFxuICAgICAgYXZhaWxhYmlsaXR5OiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgW0FQUF9TVEFURS5TVUJTQ1JJQkVELmxhYmVsXTogW2ZhbHNlXSxcbiAgICAgICAgW0FQUF9TVEFURS5VTlBBQ0tFRC5sYWJlbF06IFtmYWxzZV0sXG4gICAgICAgIFtBUFBfU1RBVEUuRVhURVJOQUwubGFiZWxdOiBbZmFsc2VdLFxuICAgICAgICBbQVBQX1NUQVRFLkNVU1RPTS5sYWJlbF06IFtmYWxzZV1cbiAgICAgIH0pLFxuICAgICAgY29udGVudDogdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgIFtBUFBfU1RBVEUuUEFDS0FHRV9CTFVFUFJJTlQubGFiZWxdOiBbZmFsc2VdLFxuICAgICAgICBbQVBQX1NUQVRFLlBBQ0tBR0VfUExVR0lOLmxhYmVsXTogW2ZhbHNlXVxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGlwZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJQaXBlID0gcGlwZShcbiAgICAgIG1hcCgoZGF0YTogSUFwcGxpY2F0aW9uW10pID0+IHtcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YS5maWx0ZXIoKGFwcDogSUFwcGxpY2F0aW9uKSA9PiB7XG4gICAgICAgICAgbGV0IG1hdGNoZXNCeVN0cmluZztcbiAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudEZpbHRlclRlcm0gfHwgdGhpcy5jdXJyZW50RmlsdGVyVGVybS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBtYXRjaGVzQnlTdHJpbmcgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhcHBOYW1lID1cbiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZyA9PT0gJ2VuJyB8fCAhYXBwLm5hbWU/Lmxlbmd0aCB8fCAhaW50ZXJuYWxBcHBzW2FwcC5uYW1lXVxuICAgICAgICAgICAgICAgID8gYXBwLm5hbWVcbiAgICAgICAgICAgICAgICA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGludGVybmFsQXBwc1thcHAubmFtZV0pO1xuICAgICAgICAgICAgbWF0Y2hlc0J5U3RyaW5nID1cbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJDb250YWluU3RyaW5nKGFwcE5hbWUsIHRoaXMuY3VycmVudEZpbHRlclRlcm0pIHx8XG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyQ29udGFpblN0cmluZyhhcHAuZGVzY3JpcHRpb24sIHRoaXMuY3VycmVudEZpbHRlclRlcm0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG1hdGNoZXNCeVByZWRlZmluZWRQcm9wZXJ0eSA9XG4gICAgICAgICAgICB0aGlzLmFwcE1hdGNoZXNCeVByZWRlZmluZWRQcm9wZXJ0eShhcHAsICd0eXBlJykgJiZcbiAgICAgICAgICAgIHRoaXMuYXBwTWF0Y2hlc0J5UHJlZGVmaW5lZFByb3BlcnR5KGFwcCwgJ2F2YWlsYWJpbGl0eScpICYmXG4gICAgICAgICAgICB0aGlzLmFwcE1hdGNoZXNCeVByZWRlZmluZWRQcm9wZXJ0eShhcHAsICdjb250ZW50Jyk7XG5cbiAgICAgICAgICByZXR1cm4gbWF0Y2hlc0J5U3RyaW5nICYmIG1hdGNoZXNCeVByZWRlZmluZWRQcm9wZXJ0eTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGE7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5maWx0ZXJQaXBlQ2hhbmdlLmVtaXQoZmlsdGVyUGlwZSk7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckNvbnRhaW5TdHJpbmcobmFtZTogc3RyaW5nLCBmaWx0ZXJUZXJtOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCB0ZXJtID0gZmlsdGVyVGVybS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICByZXR1cm4gbmFtZSAmJiBuYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0ZXJtKSA+IC0xO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBNYXRjaGVzQnlQcmVkZWZpbmVkUHJvcGVydHkoXG4gICAgYXBwOiBJQXBwbGljYXRpb24sXG4gICAgcHJvcGVydHk6IGtleW9mIFBhY2thZ2VGaWx0ZXJzXG4gICk6IGJvb2xlYW4ge1xuICAgIC8vIGlmIGZpbHRlciBvYmplY3QgZG9lcyBub3QgY29udGFpbiBwcm9wZXJ0eSBmaWx0ZXJzIG9yIGFsbCBmaWx0ZXJzIGFyZSBmYWxzZSwgZmlsdGVyIGlzIGluYWN0aXZlXG4gICAgY29uc3QgZmlsdGVyRm9yUHJvcGVydHlJc0FjdGl2ZSA9XG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXJzU3RhdGU/Lltwcm9wZXJ0eV0gJiZcbiAgICAgICFPYmplY3QudmFsdWVzKHRoaXMuY3VycmVudEZpbHRlcnNTdGF0ZVtwcm9wZXJ0eV0pLmV2ZXJ5KHYgPT4gIXYpO1xuICAgIGlmICghZmlsdGVyRm9yUHJvcGVydHlJc0FjdGl2ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICghYXBwLmZpbHRlclByb3BzPy5bcHJvcGVydHldKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRGaWx0ZXJzU3RhdGVbcHJvcGVydHldW2FwcC5maWx0ZXJQcm9wc1twcm9wZXJ0eV1dO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hpcHMoKTogdm9pZCB7XG4gICAgdGhpcy5jaGlwcyA9IFtdO1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2xzR3JvdXA6IEZvcm1Hcm91cCkgPT4ge1xuICAgICAgT2JqZWN0LmVudHJpZXMoY29udHJvbHNHcm91cC5jb250cm9scykuZm9yRWFjaCgoZW50cnk6IFtzdHJpbmcsIEZvcm1Db250cm9sXSkgPT4ge1xuICAgICAgICBpZiAoZW50cnlbMV0udmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmNoaXBzLnB1c2goZW50cnkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlclwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxjOHktZmlsdGVyIChvblNlYXJjaCk9XCJzZXRGaWx0ZXJUZXJtKCRldmVudClcIj48L2M4eS1maWx0ZXI+XG5cbiAgPGRpdlxuICAgICpuZ0lmPVwicHJlZGVmaW5lZEZpbHRlcnNWaXNpYmxlXCJcbiAgICBjbGFzcz1cImRyb3Bkb3duIG0tbC04IG0tci00XCJcbiAgICBkcm9wZG93blxuICAgIChpc09wZW5DaGFuZ2UpPVwidG9nZ2xlRHJvcGRvd24oJGV2ZW50KVwiXG4gICAgI2ZpbHRlcnNEcm9wZG93bj1cImJzLWRyb3Bkb3duXCJcbiAgICBbY2RrVHJhcEZvY3VzXT1cImZpbHRlcnNEcm9wZG93bi5pc09wZW5cIlxuICAgIFtpbnNpZGVDbGlja109XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkLWlubGluZS1mbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuLWNsZWFuIGZvcm0tY29udHJvbCBwLWwtOCBwLXItMTYgYS1zLXN0cmV0Y2ggZC1mbGV4IGEtaS1jZW50ZXIgdy1hdXRvXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnRmlsdGVycycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgPlxuICAgICAgICA8c3BhbiBbbmdQbHVyYWxdPVwiY2hpcHMubGVuZ3RoXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nUGx1cmFsQ2FzZT1cIj0wXCI+XG4gICAgICAgICAgICB7eyAnRmlsdGVycycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ1BsdXJhbENhc2U9XCI9MVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1pbmZvXCI+e3sgY2hpcHMubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICAgICAge3sgJ0ZpbHRlcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ1BsdXJhbENhc2U9XCJvdGhlclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1pbmZvXCI+e3sgY2hpcHMubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICAgICAge3sgJ0ZpbHRlcnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmV0XCI+PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gcC10LTAgcC1iLTAgZC1mbGV4IGdhcC00IGEtaS1jZW50ZXIgaW5uZXItc2Nyb2xsXCJcbiAgICAgICAgKm5nSWY9XCJjaGlwcy5sZW5ndGggPiAwXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpcCBvZiBjaGlwc1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwgbGFiZWwtaW5mbyBjaGlwXCIgKm5nSWY9XCJjaGlwWzFdLnZhbHVlXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi14cyBidG4tY2xlYW4gdGV4dC0xMFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdSZW1vdmUnIHwgdHJhbnNsYXRlIH19IHt7IGNoaXBbMF0gfCB0cmFuc2xhdGUgfCB0aXRsZWNhc2UgfX1cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVzZWxlY3RDaGlwKGNoaXApXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cInRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB7eyBjaGlwWzBdIHwgdHJhbnNsYXRlIHwgdGl0bGVjYXNlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgKmRyb3Bkb3duTWVudT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1mb3JtXCI+XG4gICAgICAgIDxjOHktZm9ybS1ncm91cCAqbmdJZj1cInBhY2thZ2VUeXBlcy5sZW5ndGhcIiBmb3JtR3JvdXBOYW1lPVwidHlwZVwiPlxuICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgIHt7ICdUeXBlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYzh5LWNoZWNrYm94XCIgKm5nRm9yPVwibGV0IHR5cGUgb2YgcGFja2FnZVR5cGVzXCIgW3RpdGxlXT1cInR5cGUgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInR5cGVcIiBbdmFsdWVdPVwidHlwZVwiIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyB0eXBlIHwgdHJhbnNsYXRlIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgICAgICAgPGM4eS1mb3JtLWdyb3VwICpuZ0lmPVwicGFja2FnZUF2YWlsYWJpbGl0aWVzLmxlbmd0aFwiIGZvcm1Hcm91cE5hbWU9XCJhdmFpbGFiaWxpdHlcIj5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICB7eyAnQXZhaWxhYmlsaXR5YG9mIHBhY2thZ2UgYmFzZWQgb24gYXBwIHN0YXRlYCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgY2xhc3M9XCJjOHktY2hlY2tib3hcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGF2YWlsYWJpbGl0eSBvZiBwYWNrYWdlQXZhaWxhYmlsaXRpZXNcIlxuICAgICAgICAgICAgW3RpdGxlXT1cImF2YWlsYWJpbGl0eSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtmb3JtQ29udHJvbE5hbWVdPVwiYXZhaWxhYmlsaXR5XCIgW3ZhbHVlXT1cImF2YWlsYWJpbGl0eVwiIC8+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBhdmFpbGFiaWxpdHkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cblxuICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgKm5nSWY9XCJwYWNrYWdlQ29udGVudHMubGVuZ3RoXCIgZm9ybUdyb3VwTmFtZT1cImNvbnRlbnRcIj5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICB7eyAnQ29udGVudCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgY2xhc3M9XCJjOHktY2hlY2tib3hcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbnRlbnQgb2YgcGFja2FnZUNvbnRlbnRzXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJjb250ZW50IHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250ZW50XCIgW3ZhbHVlXT1cImNvbnRlbnRcIiAvPlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgY29udGVudCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicC0xNiBkLWZsZXggZ2FwLTggc2VwYXJhdG9yLXRvcFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtIGZsZXgtZ3Jvd1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyAnUmVzZXQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAoY2xpY2spPVwicmVzZXQoKTsgZmlsdGVyc0Ryb3Bkb3duLmlzT3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPlxuICAgICAgICAgIFJlc2V0XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZmxleC1ncm93XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICB0aXRsZT1cInt7ICdBcHBseScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIChjbGljayk9XCJhcHBseVByZWRlZmluZWRGaWx0ZXJzKCk7IGZpbHRlcnNEcm9wZG93bi5pc09wZW4gPSBmYWxzZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1Hcm91cC5wcmlzdGluZSAmJiBmb3JtR3JvdXAudW50b3VjaGVkXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPlxuICAgICAgICAgIEFwcGx5XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
@@ -43,6 +43,7 @@ export class Lwm2mConfigurationComponent {
43
43
  path: this.getPath(Endpoint.servers)
44
44
  }
45
45
  ];
46
+ this.lwm2mConfigService.getSecurityModes();
46
47
  }
47
48
  onActivate(event) {
48
49
  this.componentInstance = event;
@@ -58,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
58
59
  type: Component,
59
60
  args: [{ selector: 'c8y-lwm2m-configuration', imports: [CoreModule, Lwm2mUIThemeModule, CdkTreeModule, RouterModule], standalone: true, template: "<div class=\"card content-fullpage d-col\">\n <div class=\"card-header p-0\">\n <c8y-ui-tabs\n class=\"card-has-tabs card-tabs\"\n [tabs]=\"tabs\"\n [orientation]=\"'horizontal'\"\n ></c8y-ui-tabs>\n </div>\n <div class=\"inner-scroll bg-level-0 flex-grow\">\n <form class=\"card-block--formly fit-h\">\n <router-outlet (activate)=\"onActivate($event)\"></router-outlet>\n </form>\n </div>\n <div\n class=\"card-footer separator sticky-bottom\"\n *ngIf=\"componentInstance?.fields?.length > 0\"\n >\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"componentInstance.cancel()\"\n [disabled]=\"!componentInstance.form.dirty\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n [disabled]=\"componentInstance.form.invalid || !componentInstance.form.dirty\"\n (click)=\"componentInstance.save()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n" }]
60
61
  }], ctorParameters: function () { return [{ type: i1.Lwm2mConfigurationService }, { type: i2.ActivatedRoute }]; } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHdtMm0tY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vbHdtMm0tY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vbHdtMm0tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQVksTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFPLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBVS9ELE1BQU0sT0FBTywyQkFBMkI7SUFJdEMsWUFDVSxrQkFBMEQsRUFDMUQsS0FBcUI7UUFEckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF3QztRQUMxRCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUU3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBRTVFLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDVjtnQkFDRSxJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDO2dCQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO2FBQzVDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLEtBQUssRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDO2dCQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO2FBQzFDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2pDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDdEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7YUFDdkM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixLQUFLLEVBQUUsT0FBTyxDQUFDLGtDQUFrQyxDQUFDO2dCQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO2FBQ3JDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVPLE9BQU8sQ0FBQyxRQUFrQjtRQUNoQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQzdDLE9BQU8sV0FBVyxRQUFRLHdCQUF3QixRQUFRLEVBQUUsQ0FBQztJQUMvRCxDQUFDOzt3SEE5Q1UsMkJBQTJCOzRHQUEzQiwyQkFBMkIsbUZDaEJ4QyxzbUNBcUNBLDJDRHhCWSxVQUFVLDJ3QkFBRSxrQkFBa0IsOEJBQUUsYUFBYSw4QkFBRSxZQUFZOzJGQUcxRCwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UseUJBQXlCLFdBRTFCLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsY0FDMUQsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW5kcG9pbnQsIFNldHRpbmdzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9wcm90b2NvbC1sd20ybS9tb2RlbCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEx3bTJtQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL3NlcnZpY2VzJztcbmltcG9ydCB7IEx3bTJtVUlUaGVtZU1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vZm9ybWx5JztcbmltcG9ydCB7IENka1RyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBUYWIsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IElJZGVudGlmaWVkIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgTHdtMm1Gb3JtV3JhcHBlckJhc2UgfSBmcm9tICcuL3R5cGVkLWZvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWx3bTJtLWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbHdtMm0tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBMd20ybVVJVGhlbWVNb2R1bGUsIENka1RyZWVNb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Db25maWd1cmF0aW9uQ29tcG9uZW50IHtcbiAgdGFiczogVGFiW107XG4gIGNvbXBvbmVudEluc3RhbmNlOiBMd20ybUZvcm1XcmFwcGVyQmFzZTxTZXR0aW5ncz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsd20ybUNvbmZpZ1NlcnZpY2U6IEx3bTJtQ29uZmlndXJhdGlvblNlcnZpY2U8SUlkZW50aWZpZWQ+LFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge1xuICAgIHRoaXMubHdtMm1Db25maWdTZXJ2aWNlLmRldmljZUlkID0gdGhpcy5yb3V0ZT8uc25hcHNob3Q/LnBhcmVudD8ucGFyYW1zPy5pZDtcblxuICAgIHRoaXMudGFicyA9IFtcbiAgICAgIHtcbiAgICAgICAgaWNvbjogJ2NvZycsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEZXZpY2Ugc2V0dGluZ3MnKSxcbiAgICAgICAgcGF0aDogdGhpcy5nZXRQYXRoKEVuZHBvaW50LmRldmljZVNldHRpbmdzKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogJ2Nvbm5lY3RlZCcsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdDb25uZWN0aXZpdHknKSxcbiAgICAgICAgcGF0aDogdGhpcy5nZXRQYXRoKEVuZHBvaW50LmNvbm5lY3Rpdml0eSlcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246ICdjOHktZmlybXdhcmUnLFxuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRmlybXdhcmUgdXBkYXRlJyksXG4gICAgICAgIHBhdGg6IHRoaXMuZ2V0UGF0aChFbmRwb2ludC5maXJtd2FyZSlcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246ICdyb290LXNlcnZlcicsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdCb290c3RyYXAnKSxcbiAgICAgICAgcGF0aDogdGhpcy5nZXRQYXRoKEVuZHBvaW50LmJvb3RzdHJhcClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246ICdzdGFjaycsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXJzIHdyaXR0ZW4gZHVyaW5nIGJvb3RzdHJhcCcpLFxuICAgICAgICBwYXRoOiB0aGlzLmdldFBhdGgoRW5kcG9pbnQuc2VydmVycylcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgb25BY3RpdmF0ZShldmVudCkge1xuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBldmVudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF0aChlbmRwb2ludDogRW5kcG9pbnQpIHtcbiAgICBjb25zdCB7IGRldmljZUlkIH0gPSB0aGlzLmx3bTJtQ29uZmlnU2VydmljZTtcbiAgICByZXR1cm4gYC9kZXZpY2UvJHtkZXZpY2VJZH0vbHdtMm0tY29uZmlndXJhdGlvbi8ke2VuZHBvaW50fWA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkIGNvbnRlbnQtZnVsbHBhZ2UgZC1jb2xcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHAtMFwiPlxuICAgIDxjOHktdWktdGFic1xuICAgICAgY2xhc3M9XCJjYXJkLWhhcy10YWJzIGNhcmQtdGFic1wiXG4gICAgICBbdGFic109XCJ0YWJzXCJcbiAgICAgIFtvcmllbnRhdGlvbl09XCInaG9yaXpvbnRhbCdcIlxuICAgID48L2M4eS11aS10YWJzPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImlubmVyLXNjcm9sbCBiZy1sZXZlbC0wIGZsZXgtZ3Jvd1wiPlxuICAgIDxmb3JtIGNsYXNzPVwiY2FyZC1ibG9jay0tZm9ybWx5IGZpdC1oXCI+XG4gICAgICA8cm91dGVyLW91dGxldCAoYWN0aXZhdGUpPVwib25BY3RpdmF0ZSgkZXZlbnQpXCI+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNhcmQtZm9vdGVyIHNlcGFyYXRvciBzdGlja3ktYm90dG9tXCJcbiAgICAqbmdJZj1cImNvbXBvbmVudEluc3RhbmNlPy5maWVsZHM/Lmxlbmd0aCA+IDBcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgdGl0bGU9XCJ7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJjb21wb25lbnRJbnN0YW5jZS5jYW5jZWwoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWNvbXBvbmVudEluc3RhbmNlLmZvcm0uZGlydHlcIlxuICAgID5cbiAgICAgIHt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgdGl0bGU9XCJ7eyAnU2F2ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiY29tcG9uZW50SW5zdGFuY2UuZm9ybS5pbnZhbGlkIHx8ICFjb21wb25lbnRJbnN0YW5jZS5mb3JtLmRpcnR5XCJcbiAgICAgIChjbGljayk9XCJjb21wb25lbnRJbnN0YW5jZS5zYXZlKClcIlxuICAgID5cbiAgICAgIHt7ICdTYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHdtMm0tY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vbHdtMm0tY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vbHdtMm0tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQVksTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFPLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBVS9ELE1BQU0sT0FBTywyQkFBMkI7SUFJdEMsWUFDVSxrQkFBMEQsRUFDMUQsS0FBcUI7UUFEckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF3QztRQUMxRCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUU3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBRTVFLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDVjtnQkFDRSxJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDO2dCQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO2FBQzVDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLEtBQUssRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDO2dCQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO2FBQzFDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2pDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDdEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7YUFDdkM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixLQUFLLEVBQUUsT0FBTyxDQUFDLGtDQUFrQyxDQUFDO2dCQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO2FBQ3JDO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVPLE9BQU8sQ0FBQyxRQUFrQjtRQUNoQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQzdDLE9BQU8sV0FBVyxRQUFRLHdCQUF3QixRQUFRLEVBQUUsQ0FBQztJQUMvRCxDQUFDOzt3SEFoRFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsbUZDaEJ4QyxzbUNBcUNBLDJDRHhCWSxVQUFVLDJ3QkFBRSxrQkFBa0IsOEJBQUUsYUFBYSw4QkFBRSxZQUFZOzJGQUcxRCwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UseUJBQXlCLFdBRTFCLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsY0FDMUQsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW5kcG9pbnQsIFNldHRpbmdzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9wcm90b2NvbC1sd20ybS9tb2RlbCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEx3bTJtQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL3NlcnZpY2VzJztcbmltcG9ydCB7IEx3bTJtVUlUaGVtZU1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vZm9ybWx5JztcbmltcG9ydCB7IENka1RyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBUYWIsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IElJZGVudGlmaWVkIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgTHdtMm1Gb3JtV3JhcHBlckJhc2UgfSBmcm9tICcuL3R5cGVkLWZvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWx3bTJtLWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbHdtMm0tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBMd20ybVVJVGhlbWVNb2R1bGUsIENka1RyZWVNb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Db25maWd1cmF0aW9uQ29tcG9uZW50IHtcbiAgdGFiczogVGFiW107XG4gIGNvbXBvbmVudEluc3RhbmNlOiBMd20ybUZvcm1XcmFwcGVyQmFzZTxTZXR0aW5ncz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsd20ybUNvbmZpZ1NlcnZpY2U6IEx3bTJtQ29uZmlndXJhdGlvblNlcnZpY2U8SUlkZW50aWZpZWQ+LFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge1xuICAgIHRoaXMubHdtMm1Db25maWdTZXJ2aWNlLmRldmljZUlkID0gdGhpcy5yb3V0ZT8uc25hcHNob3Q/LnBhcmVudD8ucGFyYW1zPy5pZDtcblxuICAgIHRoaXMudGFicyA9IFtcbiAgICAgIHtcbiAgICAgICAgaWNvbjogJ2NvZycsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEZXZpY2Ugc2V0dGluZ3MnKSxcbiAgICAgICAgcGF0aDogdGhpcy5nZXRQYXRoKEVuZHBvaW50LmRldmljZVNldHRpbmdzKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogJ2Nvbm5lY3RlZCcsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdDb25uZWN0aXZpdHknKSxcbiAgICAgICAgcGF0aDogdGhpcy5nZXRQYXRoKEVuZHBvaW50LmNvbm5lY3Rpdml0eSlcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246ICdjOHktZmlybXdhcmUnLFxuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRmlybXdhcmUgdXBkYXRlJyksXG4gICAgICAgIHBhdGg6IHRoaXMuZ2V0UGF0aChFbmRwb2ludC5maXJtd2FyZSlcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246ICdyb290LXNlcnZlcicsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdCb290c3RyYXAnKSxcbiAgICAgICAgcGF0aDogdGhpcy5nZXRQYXRoKEVuZHBvaW50LmJvb3RzdHJhcClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246ICdzdGFjaycsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXJzIHdyaXR0ZW4gZHVyaW5nIGJvb3RzdHJhcCcpLFxuICAgICAgICBwYXRoOiB0aGlzLmdldFBhdGgoRW5kcG9pbnQuc2VydmVycylcbiAgICAgIH1cbiAgICBdO1xuXG4gICAgdGhpcy5sd20ybUNvbmZpZ1NlcnZpY2UuZ2V0U2VjdXJpdHlNb2RlcygpO1xuICB9XG5cbiAgb25BY3RpdmF0ZShldmVudCkge1xuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBldmVudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF0aChlbmRwb2ludDogRW5kcG9pbnQpIHtcbiAgICBjb25zdCB7IGRldmljZUlkIH0gPSB0aGlzLmx3bTJtQ29uZmlnU2VydmljZTtcbiAgICByZXR1cm4gYC9kZXZpY2UvJHtkZXZpY2VJZH0vbHdtMm0tY29uZmlndXJhdGlvbi8ke2VuZHBvaW50fWA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkIGNvbnRlbnQtZnVsbHBhZ2UgZC1jb2xcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHAtMFwiPlxuICAgIDxjOHktdWktdGFic1xuICAgICAgY2xhc3M9XCJjYXJkLWhhcy10YWJzIGNhcmQtdGFic1wiXG4gICAgICBbdGFic109XCJ0YWJzXCJcbiAgICAgIFtvcmllbnRhdGlvbl09XCInaG9yaXpvbnRhbCdcIlxuICAgID48L2M4eS11aS10YWJzPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImlubmVyLXNjcm9sbCBiZy1sZXZlbC0wIGZsZXgtZ3Jvd1wiPlxuICAgIDxmb3JtIGNsYXNzPVwiY2FyZC1ibG9jay0tZm9ybWx5IGZpdC1oXCI+XG4gICAgICA8cm91dGVyLW91dGxldCAoYWN0aXZhdGUpPVwib25BY3RpdmF0ZSgkZXZlbnQpXCI+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNhcmQtZm9vdGVyIHNlcGFyYXRvciBzdGlja3ktYm90dG9tXCJcbiAgICAqbmdJZj1cImNvbXBvbmVudEluc3RhbmNlPy5maWVsZHM/Lmxlbmd0aCA+IDBcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgdGl0bGU9XCJ7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJjb21wb25lbnRJbnN0YW5jZS5jYW5jZWwoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWNvbXBvbmVudEluc3RhbmNlLmZvcm0uZGlydHlcIlxuICAgID5cbiAgICAgIHt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgdGl0bGU9XCJ7eyAnU2F2ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiY29tcG9uZW50SW5zdGFuY2UuZm9ybS5pbnZhbGlkIHx8ICFjb21wb25lbnRJbnN0YW5jZS5mb3JtLmRpcnR5XCJcbiAgICAgIChjbGljayk9XCJjb21wb25lbnRJbnN0YW5jZS5zYXZlKClcIlxuICAgID5cbiAgICAgIHt7ICdTYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,9 +1,10 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { CoreModule, gettext } from '@c8y/ngx-components';
3
3
  import { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';
4
- import { Endpoint, Mode } from '@c8y/ngx-components/protocol-lwm2m/model';
4
+ import { Endpoint } from '@c8y/ngx-components/protocol-lwm2m/model';
5
5
  import { Lwm2mFormWrapperBase } from './form-wrapper-base.component';
6
6
  import { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';
7
+ import { delay, map } from 'rxjs/operators';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@c8y/ngx-components/protocol-lwm2m/services";
9
10
  import * as i2 from "@c8y/ngx-components";
@@ -16,15 +17,16 @@ export class Lwm2mFormConnectivitySettings extends Lwm2mFormWrapperBase {
16
17
  this.endpoint = Endpoint.connectivity;
17
18
  }
18
19
  createForm() {
19
- const DISABLED = 'DISABLED';
20
20
  const selects = [
21
21
  {
22
22
  key: 'bootstrapConnectivity',
23
- label: gettext('Bootstrap server authentication')
23
+ label: gettext('Bootstrap server authentication'),
24
+ options: this.service.securityModesRaw$.pipe(map(dictObjs => dictObjs.filter(o => o?.useInBootstrapConnectivity)), delay(1))
24
25
  },
25
26
  {
26
27
  key: 'serverConnectivity',
27
- label: gettext('Server authentication')
28
+ label: gettext('Server authentication'),
29
+ options: this.service.securityModesRaw$.pipe(map(dictObjs => dictObjs.filter(o => o?.useInServerConnectivity)), delay(1))
28
30
  }
29
31
  ];
30
32
  return [
@@ -40,13 +42,7 @@ export class Lwm2mFormConnectivitySettings extends Lwm2mFormWrapperBase {
40
42
  {
41
43
  type: '#securityMode',
42
44
  props: {
43
- options: [
44
- { label: DISABLED, value: DISABLED },
45
- ...Object.values(Mode).map(value => ({
46
- label: value.match('X509') ? 'X.509' : value,
47
- value
48
- }))
49
- ]
45
+ options: select.options
50
46
  }
51
47
  },
52
48
  { type: '#pskId' },
@@ -64,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
64
60
  type: Component,
65
61
  args: [{ imports: [CoreModule, Lwm2mUIThemeModule], standalone: true, template: "<formly-form\n *ngIf=\"fields?.length > 0; else empty\"\n [model]=\"model\"\n [form]=\"form\"\n [fields]=\"fields\"\n [options]=\"options\"\n data-cy=\"lwm2m-device-configuration--formly-form\"\n></formly-form>\n<ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"'c8y-device-protocols'\"\n title=\"{{ 'No configuration selected' | translate }}\"\n subtitle=\"{{ 'Select a configuration on the left' | translate }}\"\n ></c8y-ui-empty-state>\n</ng-template>\n" }]
66
62
  }], ctorParameters: function () { return [{ type: i1.Lwm2mConfigurationService }]; } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGl2aXR5LXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvY29sLWx3bTJtL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbi90eXBlZC1mb3Jtcy9jb25uZWN0aXZpdHktc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vY29tcG9uZW50cy9jb25maWd1cmF0aW9uL3R5cGVkLWZvcm1zL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQXdCLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7O0FBT3hGLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxvQkFBMEM7SUFFM0YsWUFBc0IsT0FBd0Q7UUFDNUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBREssWUFBTyxHQUFQLE9BQU8sQ0FBaUQ7UUFEcEUsYUFBUSxHQUFhLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFHckQsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDNUIsTUFBTSxPQUFPLEdBQUc7WUFDZDtnQkFDRSxHQUFHLEVBQUUsdUJBQXVCO2dCQUM1QixLQUFLLEVBQUUsT0FBTyxDQUFDLGlDQUFpQyxDQUFDO2FBQ2xEO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFFLG9CQUFvQjtnQkFDekIsS0FBSyxFQUFFLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQzthQUN4QztTQUNGLENBQUM7UUFFRixPQUFPO1lBQ0w7Z0JBQ0UsVUFBVSxFQUFFO29CQUNWLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3hCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRzt3QkFDZixRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUM7d0JBQ3BCLEtBQUssRUFBRTs0QkFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7eUJBQ3BCO3dCQUNELFVBQVUsRUFBRTs0QkFDVjtnQ0FDRSxJQUFJLEVBQUUsZUFBZTtnQ0FDckIsS0FBSyxFQUFFO29DQUNMLE9BQU8sRUFBRTt3Q0FDUCxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTt3Q0FDcEMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NENBQ25DLEtBQUssRUFBRyxLQUFnQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLOzRDQUN4RCxLQUFLO3lDQUNOLENBQUMsQ0FBQztxQ0FDSjtpQ0FDRjs2QkFDRjs0QkFDRCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7NEJBQ2xCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTt5QkFDcEI7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7MEhBaERVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLCtGQ1oxQyxnZUFlQSwyQ0ROWSxVQUFVLDJkQUFFLGtCQUFrQjsyRkFHN0IsNkJBQTZCO2tCQUx6QyxTQUFTOzhCQUVDLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLGNBQzdCLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEx3bTJtVUlUaGVtZU1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vZm9ybWx5JztcbmltcG9ydCB7IENvbm5lY3Rpdml0eVNldHRpbmdzLCBFbmRwb2ludCwgTW9kZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vbW9kZWwnO1xuaW1wb3J0IHsgTHdtMm1Gb3JtV3JhcHBlckJhc2UgfSBmcm9tICcuL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMd20ybUNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9wcm90b2NvbC1sd20ybS9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS13cmFwcGVyLWJhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgTHdtMm1VSVRoZW1lTW9kdWxlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBMd20ybUZvcm1Db25uZWN0aXZpdHlTZXR0aW5ncyBleHRlbmRzIEx3bTJtRm9ybVdyYXBwZXJCYXNlPENvbm5lY3Rpdml0eVNldHRpbmdzPiB7XG4gIHByb3RlY3RlZCBlbmRwb2ludDogRW5kcG9pbnQgPSBFbmRwb2ludC5jb25uZWN0aXZpdHk7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXJ2aWNlOiBMd20ybUNvbmZpZ3VyYXRpb25TZXJ2aWNlPENvbm5lY3Rpdml0eVNldHRpbmdzPikge1xuICAgIHN1cGVyKHNlcnZpY2UpO1xuICB9XG5cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICBjb25zdCBESVNBQkxFRCA9ICdESVNBQkxFRCc7XG4gICAgY29uc3Qgc2VsZWN0cyA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnYm9vdHN0cmFwQ29ubmVjdGl2aXR5JyxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0Jvb3RzdHJhcCBzZXJ2ZXIgYXV0aGVudGljYXRpb24nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VydmVyQ29ubmVjdGl2aXR5JyxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBhdXRoZW50aWNhdGlvbicpXG4gICAgICB9XG4gICAgXTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAuLi5zZWxlY3RzLm1hcChzZWxlY3QgPT4gKHtcbiAgICAgICAgICAgIGtleTogc2VsZWN0LmtleSxcbiAgICAgICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IHNlbGVjdC5sYWJlbFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICcjc2VjdXJpdHlNb2RlJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBESVNBQkxFRCwgdmFsdWU6IERJU0FCTEVEIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoTW9kZSkubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICh2YWx1ZSBhcyBzdHJpbmcpLm1hdGNoKCdYNTA5JykgPyAnWC41MDknIDogdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHR5cGU6ICcjcHNrSWQnIH0sXG4gICAgICAgICAgICAgIHsgdHlwZTogJyNwc2tLZXknIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF07XG4gIH1cbn1cbiIsIjxmb3JtbHktZm9ybVxuICAqbmdJZj1cImZpZWxkcz8ubGVuZ3RoID4gMDsgZWxzZSBlbXB0eVwiXG4gIFttb2RlbF09XCJtb2RlbFwiXG4gIFtmb3JtXT1cImZvcm1cIlxuICBbZmllbGRzXT1cImZpZWxkc1wiXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICBkYXRhLWN5PVwibHdtMm0tZGV2aWNlLWNvbmZpZ3VyYXRpb24tLWZvcm1seS1mb3JtXCJcbj48L2Zvcm1seS1mb3JtPlxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgIFtpY29uXT1cIidjOHktZGV2aWNlLXByb3RvY29scydcIlxuICAgIHRpdGxlPVwie3sgJ05vIGNvbmZpZ3VyYXRpb24gc2VsZWN0ZWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBzdWJ0aXRsZT1cInt7ICdTZWxlY3QgYSBjb25maWd1cmF0aW9uIG9uIHRoZSBsZWZ0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGl2aXR5LXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvY29sLWx3bTJtL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbi90eXBlZC1mb3Jtcy9jb25uZWN0aXZpdHktc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG9jb2wtbHdtMm0vY29tcG9uZW50cy9jb25maWd1cmF0aW9uL3R5cGVkLWZvcm1zL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQXdCLFFBQVEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQU81QyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsb0JBQTBDO0lBRTNGLFlBQXNCLE9BQXdEO1FBQzVFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURLLFlBQU8sR0FBUCxPQUFPLENBQWlEO1FBRHBFLGFBQVEsR0FBYSxRQUFRLENBQUMsWUFBWSxDQUFDO0lBR3JELENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxPQUFPLEdBQUc7WUFDZDtnQkFDRSxHQUFHLEVBQUUsdUJBQXVCO2dCQUM1QixLQUFLLEVBQUUsT0FBTyxDQUFDLGlDQUFpQyxDQUFDO2dCQUNqRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxFQUNwRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ1Q7YUFDRjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxvQkFBb0I7Z0JBQ3pCLEtBQUssRUFBRSxPQUFPLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3ZDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLEVBQ2pFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDVDthQUNGO1NBQ0YsQ0FBQztRQUVGLE9BQU87WUFDTDtnQkFDRSxVQUFVLEVBQUU7b0JBQ1YsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDeEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO3dCQUNmLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDcEIsS0FBSyxFQUFFOzRCQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzt5QkFDcEI7d0JBQ0QsVUFBVSxFQUFFOzRCQUNWO2dDQUNFLElBQUksRUFBRSxlQUFlO2dDQUNyQixLQUFLLEVBQUU7b0NBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2lDQUN4Qjs2QkFDRjs0QkFDRCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7NEJBQ2xCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTt5QkFDcEI7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7MEhBakRVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLCtGQ2IxQyxnZUFlQSwyQ0RMWSxVQUFVLDJkQUFFLGtCQUFrQjsyRkFHN0IsNkJBQTZCO2tCQUx6QyxTQUFTOzhCQUVDLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLGNBQzdCLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEx3bTJtVUlUaGVtZU1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vZm9ybWx5JztcbmltcG9ydCB7IENvbm5lY3Rpdml0eVNldHRpbmdzLCBFbmRwb2ludCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vbW9kZWwnO1xuaW1wb3J0IHsgTHdtMm1Gb3JtV3JhcHBlckJhc2UgfSBmcm9tICcuL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMd20ybUNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9wcm90b2NvbC1sd20ybS9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBkZWxheSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEx3bTJtVUlUaGVtZU1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Gb3JtQ29ubmVjdGl2aXR5U2V0dGluZ3MgZXh0ZW5kcyBMd20ybUZvcm1XcmFwcGVyQmFzZTxDb25uZWN0aXZpdHlTZXR0aW5ncz4ge1xuICBwcm90ZWN0ZWQgZW5kcG9pbnQ6IEVuZHBvaW50ID0gRW5kcG9pbnQuY29ubmVjdGl2aXR5O1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogTHdtMm1Db25maWd1cmF0aW9uU2VydmljZTxDb25uZWN0aXZpdHlTZXR0aW5ncz4pIHtcbiAgICBzdXBlcihzZXJ2aWNlKTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgY29uc3Qgc2VsZWN0cyA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnYm9vdHN0cmFwQ29ubmVjdGl2aXR5JyxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0Jvb3RzdHJhcCBzZXJ2ZXIgYXV0aGVudGljYXRpb24nKSxcbiAgICAgICAgb3B0aW9uczogdGhpcy5zZXJ2aWNlLnNlY3VyaXR5TW9kZXNSYXckLnBpcGUoXG4gICAgICAgICAgbWFwKGRpY3RPYmpzID0+IGRpY3RPYmpzLmZpbHRlcihvID0+IG8/LnVzZUluQm9vdHN0cmFwQ29ubmVjdGl2aXR5KSksXG4gICAgICAgICAgZGVsYXkoMSlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2VydmVyQ29ubmVjdGl2aXR5JyxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBhdXRoZW50aWNhdGlvbicpLFxuICAgICAgICBvcHRpb25zOiB0aGlzLnNlcnZpY2Uuc2VjdXJpdHlNb2Rlc1JhdyQucGlwZShcbiAgICAgICAgICBtYXAoZGljdE9ianMgPT4gZGljdE9ianMuZmlsdGVyKG8gPT4gbz8udXNlSW5TZXJ2ZXJDb25uZWN0aXZpdHkpKSxcbiAgICAgICAgICBkZWxheSgxKVxuICAgICAgICApXG4gICAgICB9XG4gICAgXTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAuLi5zZWxlY3RzLm1hcChzZWxlY3QgPT4gKHtcbiAgICAgICAgICAgIGtleTogc2VsZWN0LmtleSxcbiAgICAgICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IHNlbGVjdC5sYWJlbFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICcjc2VjdXJpdHlNb2RlJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgb3B0aW9uczogc2VsZWN0Lm9wdGlvbnNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgdHlwZTogJyNwc2tJZCcgfSxcbiAgICAgICAgICAgICAgeyB0eXBlOiAnI3Bza0tleScgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pKVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXTtcbiAgfVxufVxuIiwiPGZvcm1seS1mb3JtXG4gICpuZ0lmPVwiZmllbGRzPy5sZW5ndGggPiAwOyBlbHNlIGVtcHR5XCJcbiAgW21vZGVsXT1cIm1vZGVsXCJcbiAgW2Zvcm1dPVwiZm9ybVwiXG4gIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gIGRhdGEtY3k9XCJsd20ybS1kZXZpY2UtY29uZmlndXJhdGlvbi0tZm9ybWx5LWZvcm1cIlxuPjwvZm9ybWx5LWZvcm0+XG48bmctdGVtcGxhdGUgI2VtcHR5PlxuICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgW2ljb25dPVwiJ2M4eS1kZXZpY2UtcHJvdG9jb2xzJ1wiXG4gICAgdGl0bGU9XCJ7eyAnTm8gY29uZmlndXJhdGlvbiBzZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHN1YnRpdGxlPVwie3sgJ1NlbGVjdCBhIGNvbmZpZ3VyYXRpb24gb24gdGhlIGxlZnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -4,7 +4,7 @@ import { Lwm2mUIThemeModule } from '@c8y/ngx-components/protocol-lwm2m/formly';
4
4
  import { Lwm2mConfigurationService } from '@c8y/ngx-components/protocol-lwm2m/services';
5
5
  import { BindingMode, CertificateUsage, Endpoint, Mode, ValidationType } from '@c8y/ngx-components/protocol-lwm2m/model';
6
6
  import { Lwm2mFormWrapperBase } from './form-wrapper-base.component';
7
- import { catchError, filter, map, takeUntil } from 'rxjs/operators';
7
+ import { catchError, delay, filter, map, takeUntil } from 'rxjs/operators';
8
8
  import { ActivatedRoute, Router, RouterModule } from '@angular/router';
9
9
  import { of } from 'rxjs';
10
10
  import * as i0 from "@angular/core";
@@ -73,11 +73,23 @@ export class Lwm2mFormSingleServerSettings extends Lwm2mFormWrapperBase {
73
73
  fieldGroup: [
74
74
  {
75
75
  type: '#securityMode',
76
- props: {
77
- options: Object.values(Mode).map(value => ({
78
- label: value.match('X509') ? 'X.509' : value,
79
- value
80
- }))
76
+ hooks: {
77
+ onInit: (field) => {
78
+ field.props.options = this.service.securityModesByScope$.pipe(delay(1));
79
+ this.service.getSecurityModeByScope('useInServerConnectivity');
80
+ return field.options.fieldChanges.pipe(filter(e => e.type === 'valueChanges' && e.field.key === 'bootstrap'), map(e => {
81
+ if (e.value) {
82
+ this.service.getSecurityModeByScope('useInBootstrapConnectivity');
83
+ if (field.model?.mode === Mode.X509_EST) {
84
+ field.formControl.setValue(Mode.NO_SEC);
85
+ }
86
+ }
87
+ else {
88
+ this.service.getSecurityModeByScope('useInServerConnectivity');
89
+ }
90
+ return e;
91
+ }));
92
+ }
81
93
  }
82
94
  },
83
95
  { type: '#pskId' },
@@ -95,7 +107,7 @@ export class Lwm2mFormSingleServerSettings extends Lwm2mFormWrapperBase {
95
107
  expressions: {
96
108
  'props.disabled': (field) => field?.options?.formState?.disabled,
97
109
  hide: (field) => {
98
- return field.model?.mode !== Mode.X509;
110
+ return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;
99
111
  }
100
112
  }
101
113
  },
@@ -112,7 +124,7 @@ export class Lwm2mFormSingleServerSettings extends Lwm2mFormWrapperBase {
112
124
  expressions: {
113
125
  'props.disabled': (field) => field?.options?.formState?.disabled,
114
126
  hide: (field) => {
115
- return field.model?.mode !== Mode.X509;
127
+ return field.model?.mode !== Mode.X509 && field.model?.mode !== Mode.X509_EST;
116
128
  }
117
129
  }
118
130
  },
@@ -350,4 +362,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
350
362
  type: Component,
351
363
  args: [{ imports: [CoreModule, Lwm2mUIThemeModule, RouterModule], standalone: true, template: "<formly-form\n *ngIf=\"fields?.length > 0; else empty\"\n [model]=\"model\"\n [form]=\"form\"\n [fields]=\"fields\"\n [options]=\"options\"\n data-cy=\"lwm2m-device-configuration--formly-form\"\n></formly-form>\n<ng-template #empty>\n <c8y-ui-empty-state\n [icon]=\"'c8y-device-protocols'\"\n title=\"{{ 'No configuration selected' | translate }}\"\n subtitle=\"{{ 'Select a configuration on the left' | translate }}\"\n ></c8y-ui-empty-state>\n</ng-template>\n" }]
352
364
  }], ctorParameters: function () { return [{ type: i1.Lwm2mConfigurationService }]; } });
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlcnZlci1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vdHlwZWQtZm9ybXMvc2luZ2xlLXNlcnZlci1zZXR0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vdHlwZWQtZm9ybXMvZm9ybS13cmFwcGVyLWJhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQWUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEYsT0FBTyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLElBQUksRUFHSixjQUFjLEVBQ2YsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBTzFCLE1BQU0sT0FBTyw2QkFDWCxTQUFRLG9CQUFvQztJQVc1QyxZQUFzQixPQUFrRDtRQUN0RSxLQUFL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QztJQUMxQixDQUFDOzswSEEzWVUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsK0ZDeEIxQyxnZUFlQSwyQ0RNWSxVQUFVLDJkQUFFLGtCQUFrQiw4QkFBRSxZQUFZOzJGQUczQyw2QkFBNkI7a0JBTHpDLFNBQVM7OEJBRUMsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLGNBQzNDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIENvcmVNb2R1bGUsIERyb3BwZWRGaWxlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBMd20ybVVJVGhlbWVNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL2Zvcm1seSc7XG5pbXBvcnQgeyBMd20ybUNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9wcm90b2NvbC1sd20ybS9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtcbiAgQmluZGluZ01vZGUsXG4gIENlcnRpZmljYXRlVXNhZ2UsXG4gIEVuZHBvaW50LFxuICBNb2RlLFxuICBTZWN1cml0eSxcbiAgU2VydmVyU2V0dGluZ3MsXG4gIFZhbGlkYXRpb25UeXBlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vbW9kZWwnO1xuaW1wb3J0IHsgTHdtMm1Gb3JtV3JhcHBlckJhc2UgfSBmcm9tICcuL2Zvcm0td3JhcHBlci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS13cmFwcGVyLWJhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgTHdtMm1VSVRoZW1lTW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEx3bTJtRm9ybVNpbmdsZVNlcnZlclNldHRpbmdzXG4gIGV4dGVuZHMgTHdtMm1Gb3JtV3JhcHBlckJhc2U8U2VydmVyU2V0dGluZ3M+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIGlkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBlbmRwb2ludDogRW5kcG9pbnQgPSBFbmRwb2ludC5zZXJ2ZXJzO1xuICBwcm90ZWN0ZWQgYWxlcnQ6IEFsZXJ0U2VydmljZTtcbiAgcHJpdmF0ZSByZWFkb25seSBDT0FQID0gJ2NvYXA6Ly8nO1xuICBwcml2YXRlIHJlYWRvbmx5IENPQVBTID0gJ2NvYXBzOi8vJztcbiAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcjtcbiAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGU7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNlcnZpY2U6IEx3bTJtQ29uZmlndXJhdGlvblNlcnZpY2U8U2VydmVyU2V0dGluZ3M+KSB7XG4gICAgc3VwZXIoc2VydmljZSk7XG4gICAgdGhpcy5yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICB0aGlzLnJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICB0aGlzLmFsZXJ0ID0gaW5qZWN0KEFsZXJ0U2VydmljZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2Uuc2V0dGluZ3MkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoZGF0YSA9PiAodGhpcy5tb2RlbCA9IGRhdGEpKTtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0U2V0dGluZ3NGb3IoeyBlbmRwb2ludDogdGhpcy5lbmRwb2ludCwgaWQ6IHRoaXMuaWQgfSk7XG4gIH1cblxuICBjcmVhdGVGb3JtKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnYm9vdHN0cmFwJyxcbiAgICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdCb290c3RyYXAgc2VydmVyJyksXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdUaGlzIGNvbmZpZ3VyYXRpb24gaXMgZm9yIGEgYm9vdHN0cmFwIHNlcnZlcicpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICd1cmknLFxuICAgICAgICAgICAgdHlwZTogJ2lucHV0LWFkZG9uJyxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXIgVVJJJyksXG4gICAgICAgICAgICAgIGFkZG9uTGFiZWw6IHRoaXMuQ09BUCxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnPExXTTJNLXNlcnZlci1kb21haW4+Ojxjb2FwKHMpLXBvcnQ+J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhvb2tzOiB7XG4gICAgICAgICAgICAgIG9uSW5pdDogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLmFkZG9uTGFiZWwgPSB0aGlzLkNPQVA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm9wdGlvbnMuZmllbGRDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIGUgPT4gZS50eXBlID09PSAndmFsdWVDaGFuZ2VzJyAmJiAoZS5maWVsZCA9PT0gZmllbGQgfHwgZS5maWVsZC5rZXkgPT09ICdtb2RlJylcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBtYXAoZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmZpZWxkLmtleSA9PT0gJ3VyaScpXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGQuZm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAoKGUudmFsdWUgYXMgc3RyaW5nKSB8fCAnJykucmVwbGFjZSgvXi4qOlxcL1xcLy9pLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBmaWVsZC5wcm9wcy5hZGRvbkxhYmVsID1cbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5tb2RlbD8uc2VjdXJpdHk/Lm1vZGUgPT09IE1vZGUuTk9fU0VDID8gdGhpcy5DT0FQIDogdGhpcy5DT0FQUztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ3NlY3VyaXR5JyxcbiAgICAgICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdTZWN1cml0eSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnI3NlY3VyaXR5TW9kZScsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IE9iamVjdC52YWx1ZXMoTW9kZSkubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAodmFsdWUgYXMgc3RyaW5nKS5tYXRjaCgnWDUwOScpID8gJ1guNTA5JyA6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHR5cGU6ICcjcHNrSWQnIH0sXG4gICAgICAgICAgICAgIHsgdHlwZTogJyNwc2tLZXknIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICd4NTA5U2VydmVyQ2VydGlmaWNhdGVOYW1lJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBjZXJ0aWZpY2F0ZScpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ05vdCB3cml0dGVuYHNldHRpbmdgJyksXG4gICAgICAgICAgICAgICAgICBhY2NlcHRVbmRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICByZW1vdmVFeGVtcGxpR3JhdGlhOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5zZXJ2aWNlLmNlcnRpZmljYXRlcyQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKGNlcnRzID0+IGNlcnRzLm1hcCh2YWx1ZSA9PiAoeyBsYWJlbDogdmFsdWUsIHZhbHVlIH0pKSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgICAgICAncHJvcHMuZGlzYWJsZWQnOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuICAgICAgICAgICAgICAgICAgICBmaWVsZD8ub3B0aW9ucz8uZm9ybVN0YXRlPy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgIGhpZGU6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm1vZGVsPy5tb2RlICE9PSBNb2RlLlg1MDk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnY2VydGlmaWNhdGVVc2FnZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdDZXJ0aWZpY2F0ZSB1c2FnZScpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ05vdCB3cml0dGVuYHNldHRpbmdgJyksXG4gICAgICAgICAgICAgICAgICBhY2NlcHRVbmRlZmluZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICByZW1vdmVFeGVtcGxpR3JhdGlhOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgb3B0aW9uczogT2JqZWN0LnZhbHVlcyhDZXJ0aWZpY2F0ZVVzYWdlKS5tYXAodmFsdWUgPT4gKHsgbGFiZWw6IHZhbHVlLCB2YWx1ZSB9KSlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgICAgICAncHJvcHMuZGlzYWJsZWQnOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuICAgICAgICAgICAgICAgICAgICBmaWVsZD8ub3B0aW9ucz8uZm9ybVN0YXRlPy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgIGhpZGU6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm1vZGVsPy5tb2RlICE9PSBNb2RlLlg1MDk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnY2VydGlmaWNhdGVEcm9wQXJlYScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBhY2NlcHQ6ICdwZW0nLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0NlcnRpZmljYXRlJyksXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnT25lIC5wZW0gZmlsZSBtYXkgYmUgdXBsb2FkZWQnKSxcbiAgICAgICAgICAgICAgICAgIGZvcmNlSGlkZUxpc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICBkcm9wcGVkOiBhc3luYyAoZmlsZXM6IERyb3BwZWRGaWxlW10pID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGF0Y2hDb21tb25OYW1lKFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5jbGVhblVwQmFzZTY0RGF0YShcbiAgICAgICAgICAgICAgICAgICAgICAgIChhd2FpdCBmaWxlcz8ucG9wKCk/LnJlYWRBc0RhdGFVUkwoKSkgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uczoge1xuICAgICAgICAgICAgICAgICAgaGlkZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm1vZGVsPy5tb2RlICE9PSBNb2RlLlg1MDkgfHwgISFmaWVsZC5tb2RlbD8ueDUwOUNlcnRpZmljYXRlQ29tbW9uTmFtZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ3g1MDlDZXJ0aWZpY2F0ZUNvbW1vbk5hbWUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdmaWxlLXBpY2stcmVwbGFjZScsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdDZXJ0aWZpY2F0ZSBDb21tb24gTmFtZScpLFxuICAgICAgICAgICAgICAgICAgcmVtb3ZlOiAoKSA9PiB0aGlzLnJlbW92ZUNlcnRpZmljYXRlQW5kQ29tbW9uTmFtZSgpLFxuICAgICAgICAgICAgICAgICAgb25QaWNrOiBjZXJ0aWZpY2F0ZSA9PiB0aGlzLnBhdGNoQ29tbW9uTmFtZShjZXJ0aWZpY2F0ZSlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgICAgICAncHJvcHMuZGlzYWJsZWQnOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuICAgICAgICAgICAgICAgICAgICBmaWVsZD8ub3B0aW9ucz8uZm9ybVN0YXRlPy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgIGhpZGU6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5tb2RlbD8ubW9kZSAhPT0gTW9kZS5YNTA5IHx8ICFmaWVsZC5tb2RlbD8ueDUwOUNlcnRpZmljYXRlQ29tbW9uTmFtZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ3ByaXZhdGVLZXlEcm9wQXJlYScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBhY2NlcHQ6ICdwZW0nLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1ByaXZhdGUga2V5JyksXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnT25lIC5wZW0gZmlsZSBtYXkgYmUgdXBsb2FkZWQnKSxcbiAgICAgICAgICAgICAgICAgIGZvcmNlSGlkZUxpc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGRyb3BwZWQ6IGFzeW5jIChmaWxlczogRHJvcHBlZEZpbGVbXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRjaEZpbmdlcnByaW50KFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5jbGVhblVwQmFzZTY0RGF0YShcbiAgICAgICAgICAgICAgICAgICAgICAgIChhd2FpdCBmaWxlcz8ucG9wKCk/LnJlYWRBc0RhdGFVUkwoKSkgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uczoge1xuICAgICAgICAgICAgICAgICAgJ3Byb3BzLmRpc2FibGVkJzogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT5cbiAgICAgICAgICAgICAgICAgICAgZmllbGQ/Lm9wdGlvbnM/LmZvcm1TdGF0ZT8uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICBoaWRlOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGQubW9kZWw/Lm1vZGUgIT09IE1vZGUuWDUwOSB8fCAhIWZpZWxkLm1vZGVsPy54NTA5UHJpdmF0ZUtleUZpbmdlclByaW50XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAneDUwOVByaXZhdGVLZXlGaW5nZXJQcmludCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2ZpbGUtcGljay1yZXBsYWNlJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0ZpbmdlcnByaW50IG9mIHRoZSBwcml2YXRlIGtleScpLFxuICAgICAgICAgICAgICAgICAgcmVtb3ZlOiAoKSA9PiB0aGlzLnJlbW92ZVByaXZhdGVLZXlBbmRGaW5nZXJwcmludCgpLFxuICAgICAgICAgICAgICAgICAgb25QaWNrOiBwcml2YXRlS2V5ID0+IHRoaXMucGF0Y2hGaW5nZXJwcmludChwcml2YXRlS2V5KVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHtcbiAgICAgICAgICAgICAgICAgICdwcm9wcy5kaXNhYmxlZCc6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkPy5vcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgaGlkZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm1vZGVsPy5tb2RlICE9PSBNb2RlLlg1MDkgfHwgIWZpZWxkLm1vZGVsPy54NTA5UHJpdmF0ZUtleUZpbmdlclByaW50XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3cmFwcGVyczogWydsZWdlbmQnXSxcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXIgb2JqZWN0IGNvbmZpZ3VyYXRpb24nKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ3N0b3JlTm90aWZpY2F0aW9ucycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1N0b3JlIG5vdGlmaWNhdGlvbnMnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KFxuICAgICAgICAgICAgICAgICAgICAnTFdNMk0gQ2xpZW50IHRvIHN0b3JlIG5vdGlmeSBvcGVyYXRpb25zIHdoZW4gY2xpZW50IGlzIG9mZmxpbmUgb3IgTFdNMk0gU2VydmVyIGlzIGRpc2FibGVkLiBBbHNvIHVzZWQgdG8gZm9yd2FyZCB0aGVtIHRvIHRoZSBMV00yTSBTZXJ2ZXIgd2hlbiB0aGUgY2xpZW50IGlzIGFibGUgdG8gY29ubmVjdC4nXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnc2hvcnRTZXJ2ZXJJZCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTaG9ydCBTZXJ2ZXIgSUQnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBudW1iZXJzJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzEnLFxuICAgICAgICAgICAgICAgICAgbWluOiAwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAncmVnaXN0cmF0aW9uTGlmZXRpbWUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnUmVnaXN0cmF0aW9uIGxpZmV0aW1lJyksXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnaW4gc2Vjb25kcycpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICc2MDAnLFxuICAgICAgICAgICAgICAgICAgbWluOiAwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnZGVmYXVsdE1pblBlcmlvZCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEZWZhdWx0IG1pbmltdW0gcGVyaW9kJyksXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnaW4gc2Vjb25kcycpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcxMCcsXG4gICAgICAgICAgICAgICAgICBtaW46IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdkZWZhdWx0TWF4UGVyaW9kJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0RlZmF1bHQgbWF4aW11bSBwZXJpb2QnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzYwJyxcbiAgICAgICAgICAgICAgICAgIG1pbjogMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ2JpbmRpbmdNb2RlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IEJpbmRpbmdNb2RlLlUsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdCaW5kaW5nIG1vZGUnKSxcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IE9iamVjdC52YWx1ZXMoQmluZGluZ01vZGUpLm1hcCh2YWx1ZSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDpcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gQmluZGluZ01vZGUuVSA/IGdldHRleHQoJ1VEUCcpIDogZ2V0dGV4dCgnVURQIHdpdGggcXVldWUgbW9kZScpLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnZGlzYWJsZVRpbWVvdXQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRGlzYWJsZSB0aW1lb3V0JyksXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnaW4gc2Vjb25kcycpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICc4NjQwMCcsXG4gICAgICAgICAgICAgICAgICBtaW46IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnNlcnZpY2VcbiAgICAgIC51cGRhdGUkKHtcbiAgICAgICAgLi4udGhpcy5tb2RlbCxcbiAgICAgICAgdXJpOiB0aGlzLmdldEZ1bGxVUkkoKSxcbiAgICAgICAgZW5kcG9pbnQ6IEVuZHBvaW50LnNlcnZlcnNcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlcnIpO1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoX25leHQgPT4gdGhpcy5jYW5jZWwoKSk7XG4gIH1cblxuICBkZWxldGUoKSB7XG4gICAgdGhpcy5zZXJ2aWNlXG4gICAgICAuZGVsZXRlU2VydmVyJCh0aGlzLm1vZGVsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZXJyKTtcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKF9uZXh0ID0+IHRoaXMuY2FuY2VsKCkpO1xuICB9XG5cbiAgY2FuY2VsID0gKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi9zZXJ2ZXJzJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcblxuICBwcm90ZWN0ZWQgZ2V0RnVsbFVSSSgpIHtcbiAgICBjb25zdCB7XG4gICAgICB1cmksXG4gICAgICBzZWN1cml0eTogeyBtb2RlID0gTW9kZS5OT19TRUMgfVxuICAgIH0gPSB0aGlzLm1vZGVsO1xuICAgIHJldHVybiAobW9kZSA9PT0gTW9kZS5OT19TRUMgPyB0aGlzLkNPQVAgOiB0aGlzLkNPQVBTKS5jb25jYXQodXJpKTtcbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hGaW5nZXJwcmludChwcml2YXRlS2V5OiBzdHJpbmcpIHtcbiAgICBpZiAocHJpdmF0ZUtleT8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgIC52YWxpZGF0ZShwcml2YXRlS2V5LCBWYWxpZGF0aW9uVHlwZS5QUklWQVRFX0tFWSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIGZpbmdlcnByaW50ID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2VjdXJpdHkueDUwOVByaXZhdGVLZXkgPSBwcml2YXRlS2V5O1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5zZWN1cml0eS54NTA5UHJpdmF0ZUtleUZpbmdlclByaW50ID0gZmluZ2VycHJpbnQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgX2Vycm9yID0+IHtcbiAgICAgICAgICAgIC8vIGFscmVhZHkgY2F0Y2hlZFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhdGNoQ29tbW9uTmFtZShjZXJ0aWZpY2F0ZTogc3RyaW5nKSB7XG4gICAgaWYgKGNlcnRpZmljYXRlPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgLnZhbGlkYXRlKGNlcnRpZmljYXRlLCBWYWxpZGF0aW9uVHlwZS5YNTA5KVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgY29tbW9uTmFtZSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlY3VyaXR5Lng1MDlDZXJ0aWZpY2F0ZSA9IGNlcnRpZmljYXRlO1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5zZWN1cml0eS54NTA5Q2VydGlmaWNhdGVDb21tb25OYW1lID0gY29tbW9uTmFtZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBfZXJyb3IgPT4ge1xuICAgICAgICAgICAgLy8gYWxyZWFkeSBjYXRjaGVkXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUHJpdmF0ZUtleUFuZEZpbmdlcnByaW50KCkge1xuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIHNlY3VyaXR5OiB7XG4gICAgICAgIHg1MDlQcml2YXRlS2V5OiBudWxsLFxuICAgICAgICB4NTA5UHJpdmF0ZUtleUZpbmdlclByaW50OiBudWxsXG4gICAgICB9IGFzIFBhcnRpYWw8U2VjdXJpdHk+XG4gICAgfSk7XG4gICAgZGVsZXRlIHRoaXMubW9kZWw/LnNlY3VyaXR5Py54NTA5UHJpdmF0ZUtleTtcbiAgICBkZWxldGUgdGhpcy5tb2RlbD8uc2VjdXJpdHk/Lng1MDlQcml2YXRlS2V5RmluZ2VyUHJpbnQ7XG4gICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNlcnRpZmljYXRlQW5kQ29tbW9uTmFtZSgpIHtcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBzZWN1cml0eToge1xuICAgICAgICB4NTA5Q2VydGlmaWNhdGU6IG51bGwsXG4gICAgICAgIHg1MDlDZXJ0aWZpY2F0ZUNvbW1vbk5hbWU6IG51bGxcbiAgICAgIH0gYXMgUGFydGlhbDxTZWN1cml0eT5cbiAgICB9KTtcbiAgICBkZWxldGUgdGhpcy5tb2RlbD8uc2VjdXJpdHk/Lng1MDlDZXJ0aWZpY2F0ZUNvbW1vbk5hbWU7XG4gICAgZGVsZXRlIHRoaXMubW9kZWw/LnNlY3VyaXR5Py54NTA5Q2VydGlmaWNhdGU7XG4gICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gIH1cbn1cbiIsIjxmb3JtbHktZm9ybVxuICAqbmdJZj1cImZpZWxkcz8ubGVuZ3RoID4gMDsgZWxzZSBlbXB0eVwiXG4gIFttb2RlbF09XCJtb2RlbFwiXG4gIFtmb3JtXT1cImZvcm1cIlxuICBbZmllbGRzXT1cImZpZWxkc1wiXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICBkYXRhLWN5PVwibHdtMm0tZGV2aWNlLWNvbmZpZ3VyYXRpb24tLWZvcm1seS1mb3JtXCJcbj48L2Zvcm1seS1mb3JtPlxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgIFtpY29uXT1cIidjOHktZGV2aWNlLXByb3RvY29scydcIlxuICAgIHRpdGxlPVwie3sgJ05vIGNvbmZpZ3VyYXRpb24gc2VsZWN0ZWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBzdWJ0aXRsZT1cInt7ICdTZWxlY3QgYSBjb25maWd1cmF0aW9uIG9uIHRoZSBsZWZ0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
365
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlcnZlci1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vdHlwZWQtZm9ybXMvc2luZ2xlLXNlcnZlci1zZXR0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm90b2NvbC1sd20ybS9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb24vdHlwZWQtZm9ybXMvZm9ybS13cmFwcGVyLWJhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQWUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEYsT0FBTyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLElBQUksRUFHSixjQUFjLEVBQ2YsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU8xQixNQUFNLE9BQU8sNkJBQ1gsU0FBUSxvQkFBb0M7SUFXNUMsWUFBc0IsT0FBa0Q7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LENBQUM7WUFDMUIsQ0FBQyxFQUNELE1BQU0sQ0FBQyxFQUFFO2dCQUNQLGtCQUFrQjtZQUNwQixDQUFDLENBQ0YsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNuQixRQUFRLEVBQUU7Z0JBQ1IsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLHlCQUF5QixFQUFFLElBQUk7YUFDWDtTQUN2QixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNuQixRQUFRLEVBQUU7Z0JBQ1IsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLHlCQUF5QixFQUFFLElBQUk7YUFDWDtTQUN2QixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7MEhBelpVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLCtGQ3hCMUMsZ2VBZUEsMkNETVksVUFBVSwyZEFBRSxrQkFBa0IsOEJBQUUsWUFBWTsyRkFHM0MsNkJBQTZCO2tCQUx6QyxTQUFTOzhCQUVDLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxjQUMzQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBDb3JlTW9kdWxlLCBEcm9wcGVkRmlsZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTHdtMm1VSVRoZW1lTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9wcm90b2NvbC1sd20ybS9mb3JtbHknO1xuaW1wb3J0IHsgTHdtMm1Db25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcHJvdG9jb2wtbHdtMm0vc2VydmljZXMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7XG4gIEJpbmRpbmdNb2RlLFxuICBDZXJ0aWZpY2F0ZVVzYWdlLFxuICBFbmRwb2ludCxcbiAgTW9kZSxcbiAgU2VjdXJpdHksXG4gIFNlcnZlclNldHRpbmdzLFxuICBWYWxpZGF0aW9uVHlwZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3Byb3RvY29sLWx3bTJtL21vZGVsJztcbmltcG9ydCB7IEx3bTJtRm9ybVdyYXBwZXJCYXNlIH0gZnJvbSAnLi9mb3JtLXdyYXBwZXItYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVsYXksIGZpbHRlciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXdyYXBwZXItYmFzZS5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBMd20ybVVJVGhlbWVNb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTHdtMm1Gb3JtU2luZ2xlU2VydmVyU2V0dGluZ3NcbiAgZXh0ZW5kcyBMd20ybUZvcm1XcmFwcGVyQmFzZTxTZXJ2ZXJTZXR0aW5ncz5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgaWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIGVuZHBvaW50OiBFbmRwb2ludCA9IEVuZHBvaW50LnNlcnZlcnM7XG4gIHByb3RlY3RlZCBhbGVydDogQWxlcnRTZXJ2aWNlO1xuICBwcml2YXRlIHJlYWRvbmx5IENPQVAgPSAnY29hcDovLyc7XG4gIHByaXZhdGUgcmVhZG9ubHkgQ09BUFMgPSAnY29hcHM6Ly8nO1xuICBwcml2YXRlIHJvdXRlcjogUm91dGVyO1xuICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogTHdtMm1Db25maWd1cmF0aW9uU2VydmljZTxTZXJ2ZXJTZXR0aW5ncz4pIHtcbiAgICBzdXBlcihzZXJ2aWNlKTtcbiAgICB0aGlzLnJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgIHRoaXMucm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIHRoaXMuYWxlcnQgPSBpbmplY3QoQWxlcnRTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5zZXR0aW5ncyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShkYXRhID0+ICh0aGlzLm1vZGVsID0gZGF0YSkpO1xuICAgIHRoaXMuc2VydmljZS5nZXRTZXR0aW5nc0Zvcih7IGVuZHBvaW50OiB0aGlzLmVuZHBvaW50LCBpZDogdGhpcy5pZCB9KTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgd3JhcHBlcnM6IFsnbGVnZW5kJ10sXG4gICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdib290c3RyYXAnLFxuICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0Jvb3RzdHJhcCBzZXJ2ZXInKSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoaXMgY29uZmlndXJhdGlvbiBpcyBmb3IgYSBib290c3RyYXAgc2VydmVyJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ3VyaScsXG4gICAgICAgICAgICB0eXBlOiAnaW5wdXQtYWRkb24nLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBVUkknKSxcbiAgICAgICAgICAgICAgYWRkb25MYWJlbDogdGhpcy5DT0FQLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICc8TFdNMk0tc2VydmVyLWRvbWFpbj46PGNvYXAocyktcG9ydD4nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaG9va3M6IHtcbiAgICAgICAgICAgICAgb25Jbml0OiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMuYWRkb25MYWJlbCA9IHRoaXMuQ09BUDtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQub3B0aW9ucy5maWVsZENoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgZSA9PiBlLnR5cGUgPT09ICd2YWx1ZUNoYW5nZXMnICYmIChlLmZpZWxkID09PSBmaWVsZCB8fCBlLmZpZWxkLmtleSA9PT0gJ21vZGUnKVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIG1hcChlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUuZmllbGQua2V5ID09PSAndXJpJylcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5mb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICgoZS52YWx1ZSBhcyBzdHJpbmcpIHx8ICcnKS5yZXBsYWNlKC9eLio6XFwvXFwvL2ksICcnKVxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLmFkZG9uTGFiZWwgPVxuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm1vZGVsPy5zZWN1cml0eT8ubW9kZSA9PT0gTW9kZS5OT19TRUMgPyB0aGlzLkNPQVAgOiB0aGlzLkNPQVBTO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnc2VjdXJpdHknLFxuICAgICAgICAgICAgd3JhcHBlcnM6IFsnbGVnZW5kJ10sXG4gICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICBsYWJlbDogJ1NlY3VyaXR5J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICcjc2VjdXJpdHlNb2RlJyxcbiAgICAgICAgICAgICAgICBob29rczoge1xuICAgICAgICAgICAgICAgICAgb25Jbml0OiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnByb3BzLm9wdGlvbnMgPSB0aGlzLnNlcnZpY2Uuc2VjdXJpdHlNb2Rlc0J5U2NvcGUkLnBpcGUoZGVsYXkoMSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0U2VjdXJpdHlNb2RlQnlTY29wZSgndXNlSW5TZXJ2ZXJDb25uZWN0aXZpdHknKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm9wdGlvbnMuZmllbGRDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGUgPT4gZS50eXBlID09PSAndmFsdWVDaGFuZ2VzJyAmJiBlLmZpZWxkLmtleSA9PT0gJ2Jvb3RzdHJhcCcpLFxuICAgICAgICAgICAgICAgICAgICAgIG1hcChlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXRTZWN1cml0eU1vZGVCeVNjb3BlKCd1c2VJbkJvb3RzdHJhcENvbm5lY3Rpdml0eScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQubW9kZWw/Lm1vZGUgPT09IE1vZGUuWDUwOV9FU1QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5mb3JtQ29udHJvbC5zZXRWYWx1ZShNb2RlLk5PX1NFQyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXRTZWN1cml0eU1vZGVCeVNjb3BlKCd1c2VJblNlcnZlckNvbm5lY3Rpdml0eScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgdHlwZTogJyNwc2tJZCcgfSxcbiAgICAgICAgICAgICAgeyB0eXBlOiAnI3Bza0tleScgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ3g1MDlTZXJ2ZXJDZXJ0aWZpY2F0ZU5hbWUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnU2VydmVyIGNlcnRpZmljYXRlJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogZ2V0dGV4dCgnTm90IHdyaXR0ZW5gc2V0dGluZ2AnKSxcbiAgICAgICAgICAgICAgICAgIGFjY2VwdFVuZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHJlbW92ZUV4ZW1wbGlHcmF0aWE6IHRydWUsXG4gICAgICAgICAgICAgICAgICBvcHRpb25zOiB0aGlzLnNlcnZpY2UuY2VydGlmaWNhdGVzJC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoY2VydHMgPT4gY2VydHMubWFwKHZhbHVlID0+ICh7IGxhYmVsOiB2YWx1ZSwgdmFsdWUgfSkpKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHtcbiAgICAgICAgICAgICAgICAgICdwcm9wcy5kaXNhYmxlZCc6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkPy5vcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgaGlkZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQubW9kZWw/Lm1vZGUgIT09IE1vZGUuWDUwOSAmJiBmaWVsZC5tb2RlbD8ubW9kZSAhPT0gTW9kZS5YNTA5X0VTVDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdjZXJ0aWZpY2F0ZVVzYWdlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0NlcnRpZmljYXRlIHVzYWdlJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogZ2V0dGV4dCgnTm90IHdyaXR0ZW5gc2V0dGluZ2AnKSxcbiAgICAgICAgICAgICAgICAgIGFjY2VwdFVuZGVmaW5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHJlbW92ZUV4ZW1wbGlHcmF0aWE6IHRydWUsXG4gICAgICAgICAgICAgICAgICBvcHRpb25zOiBPYmplY3QudmFsdWVzKENlcnRpZmljYXRlVXNhZ2UpLm1hcCh2YWx1ZSA9PiAoeyBsYWJlbDogdmFsdWUsIHZhbHVlIH0pKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHtcbiAgICAgICAgICAgICAgICAgICdwcm9wcy5kaXNhYmxlZCc6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkPy5vcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgaGlkZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQubW9kZWw/Lm1vZGUgIT09IE1vZGUuWDUwOSAmJiBmaWVsZC5tb2RlbD8ubW9kZSAhPT0gTW9kZS5YNTA5X0VTVDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdjZXJ0aWZpY2F0ZURyb3BBcmVhJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZmlsZScsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGFjY2VwdDogJ3BlbScsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQ2VydGlmaWNhdGUnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdPbmUgLnBlbSBmaWxlIG1heSBiZSB1cGxvYWRlZCcpLFxuICAgICAgICAgICAgICAgICAgZm9yY2VIaWRlTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGRyb3BwZWQ6IGFzeW5jIChmaWxlczogRHJvcHBlZEZpbGVbXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRjaENvbW1vbk5hbWUoXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNsZWFuVXBCYXNlNjREYXRhKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGF3YWl0IGZpbGVzPy5wb3AoKT8ucmVhZEFzRGF0YVVSTCgpKSBhcyBzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgICAgICBoaWRlOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGQubW9kZWw/Lm1vZGUgIT09IE1vZGUuWDUwOSB8fCAhIWZpZWxkLm1vZGVsPy54NTA5Q2VydGlmaWNhdGVDb21tb25OYW1lXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAneDUwOUNlcnRpZmljYXRlQ29tbW9uTmFtZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2ZpbGUtcGljay1yZXBsYWNlJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0NlcnRpZmljYXRlIENvbW1vbiBOYW1lJyksXG4gICAgICAgICAgICAgICAgICByZW1vdmU6ICgpID0+IHRoaXMucmVtb3ZlQ2VydGlmaWNhdGVBbmRDb21tb25OYW1lKCksXG4gICAgICAgICAgICAgICAgICBvblBpY2s6IGNlcnRpZmljYXRlID0+IHRoaXMucGF0Y2hDb21tb25OYW1lKGNlcnRpZmljYXRlKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHtcbiAgICAgICAgICAgICAgICAgICdwcm9wcy5kaXNhYmxlZCc6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkPy5vcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgaGlkZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm1vZGVsPy5tb2RlICE9PSBNb2RlLlg1MDkgfHwgIWZpZWxkLm1vZGVsPy54NTA5Q2VydGlmaWNhdGVDb21tb25OYW1lXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAncHJpdmF0ZUtleURyb3BBcmVhJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZmlsZScsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGFjY2VwdDogJ3BlbScsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnUHJpdmF0ZSBrZXknKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdPbmUgLnBlbSBmaWxlIG1heSBiZSB1cGxvYWRlZCcpLFxuICAgICAgICAgICAgICAgICAgZm9yY2VIaWRlTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgZHJvcHBlZDogYXN5bmMgKGZpbGVzOiBEcm9wcGVkRmlsZVtdKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGNoRmluZ2VycHJpbnQoXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNsZWFuVXBCYXNlNjREYXRhKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGF3YWl0IGZpbGVzPy5wb3AoKT8ucmVhZEFzRGF0YVVSTCgpKSBhcyBzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XG4gICAgICAgICAgICAgICAgICAncHJvcHMuZGlzYWJsZWQnOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PlxuICAgICAgICAgICAgICAgICAgICBmaWVsZD8ub3B0aW9ucz8uZm9ybVN0YXRlPy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgIGhpZGU6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5tb2RlbD8ubW9kZSAhPT0gTW9kZS5YNTA5IHx8ICEhZmllbGQubW9kZWw/Lng1MDlQcml2YXRlS2V5RmluZ2VyUHJpbnRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICd4NTA5UHJpdmF0ZUtleUZpbmdlclByaW50JyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZmlsZS1waWNrLXJlcGxhY2UnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRmluZ2VycHJpbnQgb2YgdGhlIHByaXZhdGUga2V5JyksXG4gICAgICAgICAgICAgICAgICByZW1vdmU6ICgpID0+IHRoaXMucmVtb3ZlUHJpdmF0ZUtleUFuZEZpbmdlcnByaW50KCksXG4gICAgICAgICAgICAgICAgICBvblBpY2s6IHByaXZhdGVLZXkgPT4gdGhpcy5wYXRjaEZpbmdlcnByaW50KHByaXZhdGVLZXkpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uczoge1xuICAgICAgICAgICAgICAgICAgJ3Byb3BzLmRpc2FibGVkJzogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT5cbiAgICAgICAgICAgICAgICAgICAgZmllbGQ/Lm9wdGlvbnM/LmZvcm1TdGF0ZT8uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICBoaWRlOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGQubW9kZWw/Lm1vZGUgIT09IE1vZGUuWDUwOSB8fCAhZmllbGQubW9kZWw/Lng1MDlQcml2YXRlS2V5RmluZ2VyUHJpbnRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHdyYXBwZXJzOiBbJ2xlZ2VuZCddLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBvYmplY3QgY29uZmlndXJhdGlvbicpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmllbGRHcm91cDogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnc3RvcmVOb3RpZmljYXRpb25zJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3dpdGNoJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnU3RvcmUgbm90aWZpY2F0aW9ucycpLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAgICAgICAgICAgICAgICdMV00yTSBDbGllbnQgdG8gc3RvcmUgbm90aWZ5IG9wZXJhdGlvbnMgd2hlbiBjbGllbnQgaXMgb2ZmbGluZSBvciBMV00yTSBTZXJ2ZXIgaXMgZGlzYWJsZWQuIEFsc28gdXNlZCB0byBmb3J3YXJkIHRoZW0gdG8gdGhlIExXTTJNIFNlcnZlciB3aGVuIHRoZSBjbGllbnQgaXMgYWJsZSB0byBjb25uZWN0LidcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdzaG9ydFNlcnZlcklkJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1Nob3J0IFNlcnZlciBJRCcpLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoJ2luIG51bWJlcnMnKSxcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMScsXG4gICAgICAgICAgICAgICAgICBtaW46IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdyZWdpc3RyYXRpb25MaWZldGltZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdSZWdpc3RyYXRpb24gbGlmZXRpbWUnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzYwMCcsXG4gICAgICAgICAgICAgICAgICBtaW46IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdkZWZhdWx0TWluUGVyaW9kJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0RlZmF1bHQgbWluaW11bSBwZXJpb2QnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzEwJyxcbiAgICAgICAgICAgICAgICAgIG1pbjogMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ2RlZmF1bHRNYXhQZXJpb2QnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRGVmYXVsdCBtYXhpbXVtIHBlcmlvZCcpLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoJ2luIHNlY29uZHMnKSxcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnNjAnLFxuICAgICAgICAgICAgICAgICAgbWluOiAwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnYmluZGluZ01vZGUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogQmluZGluZ01vZGUuVSxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0JpbmRpbmcgbW9kZScpLFxuICAgICAgICAgICAgICAgICAgb3B0aW9uczogT2JqZWN0LnZhbHVlcyhCaW5kaW5nTW9kZSkubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOlxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSBCaW5kaW5nTW9kZS5VID8gZ2V0dGV4dCgnVURQJykgOiBnZXR0ZXh0KCdVRFAgd2l0aCBxdWV1ZSBtb2RlJyksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdkaXNhYmxlVGltZW91dCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEaXNhYmxlIHRpbWVvdXQnKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdpbiBzZWNvbmRzJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzg2NDAwJyxcbiAgICAgICAgICAgICAgICAgIG1pbjogMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuc2VydmljZVxuICAgICAgLnVwZGF0ZSQoe1xuICAgICAgICAuLi50aGlzLm1vZGVsLFxuICAgICAgICB1cmk6IHRoaXMuZ2V0RnVsbFVSSSgpLFxuICAgICAgICBlbmRwb2ludDogRW5kcG9pbnQuc2VydmVyc1xuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGVycik7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShfbmV4dCA9PiB0aGlzLmNhbmNlbCgpKTtcbiAgfVxuXG4gIGRlbGV0ZSgpIHtcbiAgICB0aGlzLnNlcnZpY2VcbiAgICAgIC5kZWxldGVTZXJ2ZXIkKHRoaXMubW9kZWwpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShlcnIpO1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoX25leHQgPT4gdGhpcy5jYW5jZWwoKSk7XG4gIH1cblxuICBjYW5jZWwgPSAoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uL3NlcnZlcnMnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuXG4gIHByb3RlY3RlZCBnZXRGdWxsVVJJKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHVyaSxcbiAgICAgIHNlY3VyaXR5OiB7IG1vZGUgPSBNb2RlLk5PX1NFQyB9XG4gICAgfSA9IHRoaXMubW9kZWw7XG4gICAgcmV0dXJuIChtb2RlID09PSBNb2RlLk5PX1NFQyA/IHRoaXMuQ09BUCA6IHRoaXMuQ09BUFMpLmNvbmNhdCh1cmkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXRjaEZpbmdlcnByaW50KHByaXZhdGVLZXk6IHN0cmluZykge1xuICAgIGlmIChwcml2YXRlS2V5Py5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgLnZhbGlkYXRlKHByaXZhdGVLZXksIFZhbGlkYXRpb25UeXBlLlBSSVZBVEVfS0VZKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgZmluZ2VycHJpbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5zZWN1cml0eS54NTA5UHJpdmF0ZUtleSA9IHByaXZhdGVLZXk7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlY3VyaXR5Lng1MDlQcml2YXRlS2V5RmluZ2VyUHJpbnQgPSBmaW5nZXJwcmludDtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBfZXJyb3IgPT4ge1xuICAgICAgICAgICAgLy8gYWxyZWFkeSBjYXRjaGVkXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hDb21tb25OYW1lKGNlcnRpZmljYXRlOiBzdHJpbmcpIHtcbiAgICBpZiAoY2VydGlmaWNhdGU/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAudmFsaWRhdGUoY2VydGlmaWNhdGUsIFZhbGlkYXRpb25UeXBlLlg1MDkpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICBjb21tb25OYW1lID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2VjdXJpdHkueDUwOUNlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlY3VyaXR5Lng1MDlDZXJ0aWZpY2F0ZUNvbW1vbk5hbWUgPSBjb21tb25OYW1lO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5tb2RlbCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIF9lcnJvciA9PiB7XG4gICAgICAgICAgICAvLyBhbHJlYWR5IGNhdGNoZWRcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVQcml2YXRlS2V5QW5kRmluZ2VycHJpbnQoKSB7XG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgc2VjdXJpdHk6IHtcbiAgICAgICAgeDUwOVByaXZhdGVLZXk6IG51bGwsXG4gICAgICAgIHg1MDlQcml2YXRlS2V5RmluZ2VyUHJpbnQ6IG51bGxcbiAgICAgIH0gYXMgUGFydGlhbDxTZWN1cml0eT5cbiAgICB9KTtcbiAgICBkZWxldGUgdGhpcy5tb2RlbD8uc2VjdXJpdHk/Lng1MDlQcml2YXRlS2V5O1xuICAgIGRlbGV0ZSB0aGlzLm1vZGVsPy5zZWN1cml0eT8ueDUwOVByaXZhdGVLZXlGaW5nZXJQcmludDtcbiAgICB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQ2VydGlmaWNhdGVBbmRDb21tb25OYW1lKCkge1xuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIHNlY3VyaXR5OiB7XG4gICAgICAgIHg1MDlDZXJ0aWZpY2F0ZTogbnVsbCxcbiAgICAgICAgeDUwOUNlcnRpZmljYXRlQ29tbW9uTmFtZTogbnVsbFxuICAgICAgfSBhcyBQYXJ0aWFsPFNlY3VyaXR5PlxuICAgIH0pO1xuICAgIGRlbGV0ZSB0aGlzLm1vZGVsPy5zZWN1cml0eT8ueDUwOUNlcnRpZmljYXRlQ29tbW9uTmFtZTtcbiAgICBkZWxldGUgdGhpcy5tb2RlbD8uc2VjdXJpdHk/Lng1MDlDZXJ0aWZpY2F0ZTtcbiAgICB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgfVxufVxuIiwiPGZvcm1seS1mb3JtXG4gICpuZ0lmPVwiZmllbGRzPy5sZW5ndGggPiAwOyBlbHNlIGVtcHR5XCJcbiAgW21vZGVsXT1cIm1vZGVsXCJcbiAgW2Zvcm1dPVwiZm9ybVwiXG4gIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gIGRhdGEtY3k9XCJsd20ybS1kZXZpY2UtY29uZmlndXJhdGlvbi0tZm9ybWx5LWZvcm1cIlxuPjwvZm9ybWx5LWZvcm0+XG48bmctdGVtcGxhdGUgI2VtcHR5PlxuICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgW2ljb25dPVwiJ2M4eS1kZXZpY2UtcHJvdG9jb2xzJ1wiXG4gICAgdGl0bGU9XCJ7eyAnTm8gY29uZmlndXJhdGlvbiBzZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHN1YnRpdGxlPVwie3sgJ1NlbGVjdCBhIGNvbmZpZ3VyYXRpb24gb24gdGhlIGxlZnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==