@alauda-fe/common 1.2.1 → 1.3.0-beta.1

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 (94) hide show
  1. package/api/api-gateway.service.d.ts +1 -11
  2. package/api/public-api.d.ts +0 -1
  3. package/array-form-table/key-value-form/component.d.ts +3 -2
  4. package/async-data/async-data.module.d.ts +6 -0
  5. package/authorization/public-api.d.ts +1 -0
  6. package/authorization/state.service.d.ts +13 -20
  7. package/authorization/storage-token.d.ts +11 -0
  8. package/chart/common/tooltip/tooltip.component.d.ts +2 -1
  9. package/core/abstract/base-form-container.d.ts +1 -1
  10. package/core/constants/tokens.d.ts +0 -18
  11. package/core/module.d.ts +16 -15
  12. package/core/services/k8s-util.service.d.ts +0 -5
  13. package/core/types/k8s/crd.d.ts +2 -1
  14. package/core/utils/common.d.ts +2 -1
  15. package/esm2022/api/api-gateway.service.mjs +10 -20
  16. package/esm2022/api/product.service.mjs +4 -4
  17. package/esm2022/api/project-api.service.mjs +4 -4
  18. package/esm2022/api/public-api.mjs +1 -2
  19. package/esm2022/array-form-table/key-value-form/component.mjs +65 -43
  20. package/esm2022/async-data/async-data.module.mjs +17 -5
  21. package/esm2022/authorization/public-api.mjs +2 -1
  22. package/esm2022/authorization/state.service.mjs +86 -115
  23. package/esm2022/authorization/storage-token.mjs +82 -0
  24. package/esm2022/business/resource-select/exports/cluster-selector/component.mjs +2 -2
  25. package/esm2022/business/resource-select/exports/mesh-group-selector/component.mjs +2 -2
  26. package/esm2022/business/resource-select/exports/namespace-selector/component.mjs +2 -2
  27. package/esm2022/business/resource-select/exports/project-selector/component.mjs +2 -2
  28. package/esm2022/business/resource-select/module.mjs +9 -9
  29. package/esm2022/chart/chart.module.mjs +1 -1
  30. package/esm2022/chart/common/tooltip/tooltip.component.mjs +5 -2
  31. package/esm2022/core/abstract/base-form-container.mjs +1 -1
  32. package/esm2022/core/abstract/base-nested-form-control.mjs +2 -2
  33. package/esm2022/core/constants/tokens.mjs +1 -46
  34. package/esm2022/core/module.mjs +10 -3
  35. package/esm2022/core/pipes/page-env.pipe.mjs +6 -3
  36. package/esm2022/core/services/feature-gate.service.mjs +3 -3
  37. package/esm2022/core/services/k8s-util.service.mjs +1 -13
  38. package/esm2022/core/types/k8s/crd.mjs +1 -1
  39. package/esm2022/core/utils/common.mjs +11 -9
  40. package/esm2022/disabled-container/disabled-container.component.mjs +2 -2
  41. package/esm2022/form/validators/utils.mjs +37 -34
  42. package/esm2022/graph-canvas/graph-store.service.mjs +2 -2
  43. package/esm2022/help-document/service.mjs +3 -2
  44. package/esm2022/lazy-component/lazy-load-component.mjs +138 -0
  45. package/esm2022/lazy-component/public-api.mjs +14 -0
  46. package/esm2022/lazy-component/visibility.service.mjs +37 -0
  47. package/esm2022/list-display/component.mjs +159 -0
  48. package/esm2022/list-display/public-api.mjs +2 -0
  49. package/esm2022/metric-chart/metric-chart.component.mjs +2 -2
  50. package/esm2022/multi-search/action-input/component.mjs +2 -2
  51. package/esm2022/notification/feedback-notification/component.mjs +10 -4
  52. package/esm2022/notification/public-api.mjs +1 -2
  53. package/esm2022/page-scaffold/navigation/lottie-icons/animation-data.mjs +3 -1
  54. package/esm2022/page-scaffold/navigation/lottie-icons/animations/dashboard.json +1 -0
  55. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.types.mjs +1 -1
  56. package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +10 -13
  57. package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +3 -3
  58. package/esm2022/public-api.mjs +4 -4
  59. package/esm2022/table/component.mjs +5 -5
  60. package/esm2022/table/types.mjs +1 -1
  61. package/esm2022/translate/translate.service.mjs +7 -1
  62. package/esm2022/view-chart/view-chart.module.mjs +1 -1
  63. package/esm2022/view-zchart/custom-template/dropdown-legend.mjs +3 -3
  64. package/esm2022/view-zchart/legend/legend.component.mjs +8 -8
  65. package/esm2022/view-zchart/units.mjs +13 -1
  66. package/esm2022/view-zchart/view-zchart.component.mjs +2 -2
  67. package/esm2022/view-zchart/view-zchart.module.mjs +1 -1
  68. package/esm2022/widget/foldable-item-in-table/component.mjs +2 -2
  69. package/esm2022/widget/search-panel/component.mjs +4 -4
  70. package/esm2022/window-channel/plugin-window-channel.service.mjs +8 -3
  71. package/esm2022/xterm/xterm-terminal/xterm-terminal.component.mjs +66 -69
  72. package/esm2022/xterm/xterm.component.mjs +11 -3
  73. package/form/validators/utils.d.ts +7 -0
  74. package/lazy-component/lazy-load-component.d.ts +25 -0
  75. package/lazy-component/public-api.d.ts +9 -0
  76. package/lazy-component/visibility.service.d.ts +11 -0
  77. package/list-display/component.d.ts +15 -0
  78. package/list-display/public-api.d.ts +1 -0
  79. package/notification/feedback-notification/component.d.ts +1 -5
  80. package/notification/public-api.d.ts +0 -1
  81. package/package.json +1 -1
  82. package/page-scaffold/navigation/nav-menu/nav-menu.types.d.ts +1 -0
  83. package/page-scaffold/page-header/common-layout/product-select/component.d.ts +1 -2
  84. package/public-api.d.ts +3 -3
  85. package/styles/global.scss +6 -0
  86. package/styles/mixins.scss +20 -0
  87. package/styles/reset-browser.scss +4 -0
  88. package/styles/tailwind-preset.scss +1 -1
  89. package/table/types.d.ts +2 -0
  90. package/translate/translate.service.d.ts +2 -0
  91. package/view-zchart/custom-template/dropdown-legend.d.ts +1 -1
  92. package/view-zchart/units.d.ts +3 -0
  93. package/xterm/xterm-terminal/xterm-terminal.component.d.ts +4 -3
  94. package/xterm/xterm.component.d.ts +4 -2
@@ -142,7 +142,7 @@ function TableComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
142
142
  i0.ɵɵelementContainerEnd();
143
143
  } if (rf & 2) {
144
144
  const columnDef_r15 = ctx.$implicit;
145
- i0.ɵɵproperty("auiTableColumnDef", columnDef_r15.name);
145
+ i0.ɵɵproperty("auiTableColumnDef", columnDef_r15.name)("sticky", columnDef_r15.sticky)("stickyEnd", columnDef_r15.stickyEnd);
146
146
  } }
147
147
  function TableComponent_aui_table_header_row_5_Template(rf, ctx) { if (rf & 1) {
148
148
  i0.ɵɵelement(0, "aui-table-header-row");
@@ -717,12 +717,12 @@ export class TableComponent {
717
717
  } }, hostVars: 4, hostBindings: function TableComponent_HostBindings(rf, ctx) { if (rf & 2) {
718
718
  i0.ɵɵstyleProp("max-height", ctx.scrollWrapperHeight);
719
719
  i0.ɵɵclassProp("aui-table__scroll-wrapper", ctx.scrollWrapper);
720
- } }, inputs: { list: "list", dataSource: "dataSource", resourceName: "resourceName", resourceNameTranslated: "resourceNameTranslated", sticky: "sticky", permissions: "permissions", columns: "columns", filterParams: "filterParams", context: "context", filterFn: "filterFn", trackBy: "trackBy", noDataHint: "noDataHint", enablePagination: "enablePagination", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", paginationLayout: "paginationLayout" }, outputs: { update: "update", delete: "delete", sortChange: "sortChange" }, decls: 21, vars: 21, consts: [["auiSort", "", 3, "active", "direction", "dataSource", "trackBy", "auiTableScrollable", "sortChange"], [3, "auiTableColumnDef", 4, "ngFor", "ngForOf", "ngForTrackBy"], [4, "auiTableHeaderRowDef", "auiTableHeaderRowDefSticky"], [4, "auiTableRowDef", "auiTableRowDefColumns"], [4, "auiTablePlaceholderDef"], [4, "ngIf"], ["defaultTableCell", ""], ["tableCellContent", ""], ["menu", ""], ["empty", ""], ["noData", ""], [3, "auiTableColumnDef"], [3, "style", 4, "auiTableHeaderCellDef"], [3, "direction", "ngClass", "style", 4, "auiTableCellDef"], ["aui-sort-header", "", 3, "start", 4, "ngIf"], ["aui-sort-header", "", 3, "start"], [3, "direction", "ngClass"], [4, "ngIf", "ngIfElse"], ["tableCellDefTpl", ""], ["defaultTableCellTpl", ""], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "empty-placeholder", 4, "ngIf"], ["class", "empty-placeholder", 4, "ngIf", "ngIfElse"], ["listFooter", ""], [1, "empty-placeholder"], [3, "list", "resourceName", "resourceNameTranslated"], ["loading", ""], ["size", "16px", "icon", "spinner", 1, "acl-loading-mask__icon"], [3, "layout", "currentPage", "pageSize", "total", "pageSizeOptions", "currentPageChange", "pageSizeChange"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], ["class", "aui-table__cell__name", 4, "ngIf"], ["class", "aui-table__cell__display-name", 3, "deleting-text", 4, "ngIf"], [1, "aui-table__cell__name"], ["plainName", ""], [3, "resource", 4, "ngIf"], [3, "routerLink", "auiTooltip"], [3, "auiTooltip"], [3, "resource"], [1, "aui-table__cell__display-name"], [3, "time"], ["aui-button", "text", "size", "small", 3, "square", "auiDropdown", "auiDropdownContext"], ["icon", "ellipsis_v_s"], ["class", "text-overflow", 3, "auiTooltip", 4, "ngIf", "ngIfElse"], ["plainText", ""], [1, "text-overflow", 3, "auiTooltip"], [3, "isAllowed", "isDisabled", "tooltip", "click", 4, "ngIf"], [3, "isAllowed", "isDisabled", "tooltip", "click"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
720
+ } }, inputs: { list: "list", dataSource: "dataSource", resourceName: "resourceName", resourceNameTranslated: "resourceNameTranslated", sticky: "sticky", permissions: "permissions", columns: "columns", filterParams: "filterParams", context: "context", filterFn: "filterFn", trackBy: "trackBy", noDataHint: "noDataHint", enablePagination: "enablePagination", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", paginationLayout: "paginationLayout" }, outputs: { update: "update", delete: "delete", sortChange: "sortChange" }, decls: 21, vars: 21, consts: [["auiSort", "", 3, "active", "direction", "dataSource", "trackBy", "auiTableScrollable", "sortChange"], [3, "auiTableColumnDef", "sticky", "stickyEnd", 4, "ngFor", "ngForOf", "ngForTrackBy"], [4, "auiTableHeaderRowDef", "auiTableHeaderRowDefSticky"], [4, "auiTableRowDef", "auiTableRowDefColumns"], [4, "auiTablePlaceholderDef"], [4, "ngIf"], ["defaultTableCell", ""], ["tableCellContent", ""], ["menu", ""], ["empty", ""], ["noData", ""], [3, "auiTableColumnDef", "sticky", "stickyEnd"], [3, "style", 4, "auiTableHeaderCellDef"], [3, "direction", "ngClass", "style", 4, "auiTableCellDef"], ["aui-sort-header", "", 3, "start", 4, "ngIf"], ["aui-sort-header", "", 3, "start"], [3, "direction", "ngClass"], [4, "ngIf", "ngIfElse"], ["tableCellDefTpl", ""], ["defaultTableCellTpl", ""], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "empty-placeholder", 4, "ngIf"], ["class", "empty-placeholder", 4, "ngIf", "ngIfElse"], ["listFooter", ""], [1, "empty-placeholder"], [3, "list", "resourceName", "resourceNameTranslated"], ["loading", ""], ["size", "16px", "icon", "spinner", 1, "acl-loading-mask__icon"], [3, "layout", "currentPage", "pageSize", "total", "pageSizeOptions", "currentPageChange", "pageSizeChange"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], ["class", "aui-table__cell__name", 4, "ngIf"], ["class", "aui-table__cell__display-name", 3, "deleting-text", 4, "ngIf"], [1, "aui-table__cell__name"], ["plainName", ""], [3, "resource", 4, "ngIf"], [3, "routerLink", "auiTooltip"], [3, "auiTooltip"], [3, "resource"], [1, "aui-table__cell__display-name"], [3, "time"], ["aui-button", "text", "size", "small", 3, "square", "auiDropdown", "auiDropdownContext"], ["icon", "ellipsis_v_s"], ["class", "text-overflow", 3, "auiTooltip", 4, "ngIf", "ngIfElse"], ["plainText", ""], [1, "text-overflow", 3, "auiTooltip"], [3, "isAllowed", "isDisabled", "tooltip", "click", 4, "ngIf"], [3, "isAllowed", "isDisabled", "tooltip", "click"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
721
721
  i0.ɵɵelementStart(0, "aui-table", 0);
722
722
  i0.ɵɵlistener("sortChange", function TableComponent_Template_aui_table_sortChange_0_listener($event) { return ctx.onSortChange($event); });
723
723
  i0.ɵɵpipe(1, "async");
724
724
  i0.ɵɵpipe(2, "async");
725
- i0.ɵɵtemplate(3, TableComponent_ng_container_3_Template, 3, 1, "ng-container", 1);
725
+ i0.ɵɵtemplate(3, TableComponent_ng_container_3_Template, 3, 3, "ng-container", 1);
726
726
  i0.ɵɵpipe(4, "async");
727
727
  i0.ɵɵtemplate(5, TableComponent_aui_table_header_row_5_Template, 1, 0, "aui-table-header-row", 2);
728
728
  i0.ɵɵpipe(6, "async");
@@ -776,7 +776,7 @@ __decorate([
776
776
  ], TableComponent.prototype, "filterFn$", void 0);
777
777
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
778
778
  type: Component,
779
- args: [{ selector: 'acl-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<aui-table\n auiSort\n [active]=\"(activeSort$ | async)?.active\"\n [direction]=\"(activeSort$ | async)?.direction\"\n [dataSource]=\"pagedItems$\"\n [trackBy]=\"trackBy\"\n (sortChange)=\"onSortChange($event)\"\n [auiTableScrollable]=\"!!sticky\"\n>\n <ng-container\n *ngFor=\"let columnDef of columnDefs$ | async; trackBy: trackByName\"\n [auiTableColumnDef]=\"columnDef.name\"\n >\n <aui-table-header-cell\n *auiTableHeaderCellDef\n [style]=\"columnDef.style\"\n >\n <ng-container *ngIf=\"columnDef.name !== ACTION\">\n <span\n *ngIf=\"columnDef.sort\"\n aui-sort-header\n [start]=\"columnDef.sort.direction\"\n >{{ columnDef.label || columnDef.name | translate }}</span\n >\n <span *ngIf=\"!columnDef.sort\">{{\n columnDef.label || columnDef.name | translate\n }}</span>\n </ng-container>\n </aui-table-header-cell>\n\n <aui-table-cell\n *auiTableCellDef=\"\n let data;\n let index = index;\n let even = even;\n let odd = odd;\n let last = last\n \"\n [direction]=\"columnDef.direction\"\n [ngClass]=\"columnDef.class\"\n [style]=\"columnDef.style\"\n >\n <ng-container\n *ngIf=\"\n columnDef.name | pure: getColumnTemplate as template;\n else tableCellDefTpl\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: {\n $implicit: data,\n index: index,\n even: even,\n odd: odd,\n last: last\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #tableCellDefTpl>\n <ng-container\n *ngIf=\"\n columnDef.path != null &&\n (data\n | pure\n : getValueFromPath\n : columnDef.name\n : columnDef.path) as value;\n else defaultTableCellTpl\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tableCellContent;\n context: { columnDef: columnDef, value: value }\n \"\n ></ng-container>\n </ng-container>\n </ng-template>\n <ng-template #defaultTableCellTpl>\n <ng-container\n *ngTemplateOutlet=\"\n defaultTableCell;\n context: { data: data, columnDef: columnDef }\n \"\n ></ng-container>\n </ng-template>\n </aui-table-cell>\n </ng-container>\n\n <aui-table-header-row\n *auiTableHeaderRowDef=\"columnNames$ | async; sticky: !!sticky\"\n ></aui-table-header-row>\n <aui-table-row\n *auiTableRowDef=\"let row; columns: columnNames$ | async\"\n ></aui-table-row>\n\n <ng-container *auiTablePlaceholderDef>\n <ng-container *ngIf=\"list\">\n <div\n *ngIf=\"\n !(pagedItems$ | async)?.length && (list.items$ | async)?.length;\n else listFooter\n \"\n class=\"empty-placeholder\"\n >\n <ng-container\n *ngIf=\"finalResourceName$ | async as finalResourceName; else noData\"\n >\n {{\n 'no_named_data_hint'\n | translate\n : {\n name:\n resourceNameTranslated ||\n (finalResourceName | translate: null:true)\n }\n }}\n </ng-container>\n </div>\n <ng-template #listFooter>\n <acl-k8s-resource-list-footer\n [list]=\"list\"\n [resourceName]=\"finalResourceName$ | async\"\n [resourceNameTranslated]=\"resourceNameTranslated\"\n ></acl-k8s-resource-list-footer>\n </ng-template>\n </ng-container>\n <div\n *ngIf=\"!list && !(pagedItems$ | async)?.length\"\n class=\"empty-placeholder\"\n >\n <ng-container *ngIf=\"finalDataSource$ | async; else loading\">\n {{\n noDataHint ||\n ('no_named_data_hint'\n | translate\n : {\n name:\n resourceNameTranslated ||\n (resourceName | translate: null:true)\n })\n }}\n </ng-container>\n <ng-template #loading>\n <aui-icon\n class=\"acl-loading-mask__icon\"\n size=\"16px\"\n icon=\"spinner\"\n ></aui-icon>\n {{ 'loading_please_wait' | translate }}\n </ng-template>\n </div>\n </ng-container>\n</aui-table>\n\n<ng-container *ngIf=\"enablePagination\">\n <aui-paginator\n [layout]=\"paginationLayout\"\n [currentPage]=\"currentPage$ | async\"\n [pageSize]=\"pageSize$ | async\"\n [total]=\"pagination.total\"\n (currentPageChange)=\"currentPage$.next($event)\"\n (pageSizeChange)=\"pageSize$.next($event)\"\n [pageSizeOptions]=\"pageSizeOptions\"\n ></aui-paginator>\n</ng-container>\n\n<ng-template\n #defaultTableCell\n let-data=\"data\"\n let-columnDef=\"columnDef\"\n>\n <ng-container [ngSwitch]=\"columnDef.name\">\n <ng-container *ngSwitchCase=\"NAME\">\n <div\n *ngIf=\"data | pure: getValueFromPath:columnDef.name as name\"\n class=\"aui-table__cell__name\"\n >\n <ng-container\n *ngIf=\"\n columnDef.extra?.link !== false && !(data | aclIsDeleting);\n else plainName\n \"\n >\n <a\n [routerLink]=\"[(isListPage$ | async) ? '..' : '.', 'detail', name]\"\n [auiTooltip]=\"name\"\n >\n {{ name }}\n </a>\n </ng-container>\n <ng-template #plainName>\n <span\n [auiTooltip]=\"name\"\n [class.deleting-text]=\"data | aclIsDeleting\"\n >{{ name }}</span\n >\n </ng-template>\n <acl-deleting-tag\n *ngIf=\"data | pure: isK8sResource\"\n [resource]=\"data\"\n ></acl-deleting-tag>\n </div>\n <div\n *ngIf=\"\n (data | pure: isK8sResource)\n ? (data | aclDisplayName)\n : data.displayName as displayName\n \"\n class=\"aui-table__cell__display-name\"\n [class.deleting-text]=\"data | aclIsDeleting\"\n >\n {{ displayName }}\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"CREATED_AT\">\n <acl-relative-time\n [time]=\"data | pure: getValueFromPath:columnDef.name\"\n ></acl-relative-time>\n </ng-container>\n <ng-container *ngSwitchCase=\"ACTION\">\n <button\n aui-button=\"text\"\n [square]=\"true\"\n size=\"small\"\n [auiDropdown]=\"menu\"\n [auiDropdownContext]=\"{ $implicit: data, columnDef: columnDef }\"\n >\n <aui-icon icon=\"ellipsis_v_s\"></aui-icon>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngIf=\"\n data | pure: getValueFromPath:columnDef.name as value;\n else empty\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tableCellContent;\n context: { columnDef: columnDef, value: value }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template\n #tableCellContent\n let-columnDef=\"columnDef\"\n let-value=\"value\"\n>\n <ng-container\n *ngIf=\"\n columnDef.translate == null\n ? value\n : columnDef.translate === true\n ? (value | translate)\n : (value | pure: columnDef.translate:finalContext | translate) as text;\n else empty\n \"\n >\n <div\n *ngIf=\"columnDef.ellipsis; else plainText\"\n class=\"text-overflow\"\n [auiTooltip]=\"text\"\n >\n {{ text }}\n </div>\n <ng-template #plainText>{{ text }}</ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template\n #menu\n let-data\n let-columnDef=\"columnDef\"\n ><aui-menu>\n <acl-disabled-container\n *ngIf=\"columnDef.extra?.update !== false\"\n [isAllowed]=\"!permissions || permissions.update\"\n [isDisabled]=\"\n (columnDef.extra?.update?.disabled.handler | pure: isFunction) &&\n (data | pure: columnDef.extra.update.disabled.handler:finalContext)\n \"\n [tooltip]=\"\n columnDef.extra?.update?.disabled.tooltip\n | pure: getValue:data:finalContext\n | translate\n \"\n (click)=\"onUpdate(data, columnDef)\"\n >\n <aui-menu-item>{{ 'update' | translate }}</aui-menu-item>\n </acl-disabled-container>\n <acl-disabled-container\n *ngIf=\"columnDef.extra?.delete !== false\"\n [isAllowed]=\"!permissions || permissions.delete\"\n [isDisabled]=\"\n (columnDef.extra?.delete?.disabled.handler | pure: isFunction) &&\n (data | pure: columnDef.extra.delete.disabled.handler:finalContext)\n \"\n [tooltip]=\"\n columnDef.extra?.delete?.disabled.tooltip\n | pure: getValue:data:finalContext\n | translate\n \"\n (click)=\"delete.emit(data)\"\n >\n <aui-menu-item>{{ 'delete' | translate }}</aui-menu-item>\n </acl-disabled-container>\n </aui-menu></ng-template\n>\n\n<ng-template #empty>{{ null | aclFieldNotAvailable }}</ng-template>\n\n<ng-template #noData>{{ 'no_data' | translate }}</ng-template>\n", styles: [".deleting-text{color:rgb(var(--aui-color-disabled-text))}:host{display:block}:host.aui-table__scroll-wrapper{display:flex}:host ::ng-deep+acl-table{margin-top:12px}html:not([lang|=zh]) :host ::ng-deep .aui-table__column-created_at{flex:0 0 140px}\n"] }]
779
+ args: [{ selector: 'acl-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<aui-table\n auiSort\n [active]=\"(activeSort$ | async)?.active\"\n [direction]=\"(activeSort$ | async)?.direction\"\n [dataSource]=\"pagedItems$\"\n [trackBy]=\"trackBy\"\n (sortChange)=\"onSortChange($event)\"\n [auiTableScrollable]=\"!!sticky\"\n>\n <ng-container\n *ngFor=\"let columnDef of columnDefs$ | async; trackBy: trackByName\"\n [auiTableColumnDef]=\"columnDef.name\"\n [sticky]=\"columnDef.sticky\"\n [stickyEnd]=\"columnDef.stickyEnd\"\n >\n <aui-table-header-cell\n *auiTableHeaderCellDef\n [style]=\"columnDef.style\"\n >\n <ng-container *ngIf=\"columnDef.name !== ACTION\">\n <span\n *ngIf=\"columnDef.sort\"\n aui-sort-header\n [start]=\"columnDef.sort.direction\"\n >{{ columnDef.label || columnDef.name | translate }}</span\n >\n <span *ngIf=\"!columnDef.sort\">{{\n columnDef.label || columnDef.name | translate\n }}</span>\n </ng-container>\n </aui-table-header-cell>\n\n <aui-table-cell\n *auiTableCellDef=\"\n let data;\n let index = index;\n let even = even;\n let odd = odd;\n let last = last\n \"\n [direction]=\"columnDef.direction\"\n [ngClass]=\"columnDef.class\"\n [style]=\"columnDef.style\"\n >\n <ng-container\n *ngIf=\"\n columnDef.name | pure: getColumnTemplate as template;\n else tableCellDefTpl\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: {\n $implicit: data,\n index: index,\n even: even,\n odd: odd,\n last: last\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #tableCellDefTpl>\n <ng-container\n *ngIf=\"\n columnDef.path != null &&\n (data\n | pure\n : getValueFromPath\n : columnDef.name\n : columnDef.path) as value;\n else defaultTableCellTpl\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tableCellContent;\n context: { columnDef: columnDef, value: value }\n \"\n ></ng-container>\n </ng-container>\n </ng-template>\n <ng-template #defaultTableCellTpl>\n <ng-container\n *ngTemplateOutlet=\"\n defaultTableCell;\n context: { data: data, columnDef: columnDef }\n \"\n ></ng-container>\n </ng-template>\n </aui-table-cell>\n </ng-container>\n\n <aui-table-header-row\n *auiTableHeaderRowDef=\"columnNames$ | async; sticky: !!sticky\"\n ></aui-table-header-row>\n <aui-table-row\n *auiTableRowDef=\"let row; columns: columnNames$ | async\"\n ></aui-table-row>\n\n <ng-container *auiTablePlaceholderDef>\n <ng-container *ngIf=\"list\">\n <div\n *ngIf=\"\n !(pagedItems$ | async)?.length && (list.items$ | async)?.length;\n else listFooter\n \"\n class=\"empty-placeholder\"\n >\n <ng-container\n *ngIf=\"finalResourceName$ | async as finalResourceName; else noData\"\n >\n {{\n 'no_named_data_hint'\n | translate\n : {\n name:\n resourceNameTranslated ||\n (finalResourceName | translate: null:true)\n }\n }}\n </ng-container>\n </div>\n <ng-template #listFooter>\n <acl-k8s-resource-list-footer\n [list]=\"list\"\n [resourceName]=\"finalResourceName$ | async\"\n [resourceNameTranslated]=\"resourceNameTranslated\"\n ></acl-k8s-resource-list-footer>\n </ng-template>\n </ng-container>\n <div\n *ngIf=\"!list && !(pagedItems$ | async)?.length\"\n class=\"empty-placeholder\"\n >\n <ng-container *ngIf=\"finalDataSource$ | async; else loading\">\n {{\n noDataHint ||\n ('no_named_data_hint'\n | translate\n : {\n name:\n resourceNameTranslated ||\n (resourceName | translate: null:true)\n })\n }}\n </ng-container>\n <ng-template #loading>\n <aui-icon\n class=\"acl-loading-mask__icon\"\n size=\"16px\"\n icon=\"spinner\"\n ></aui-icon>\n {{ 'loading_please_wait' | translate }}\n </ng-template>\n </div>\n </ng-container>\n</aui-table>\n\n<ng-container *ngIf=\"enablePagination\">\n <aui-paginator\n [layout]=\"paginationLayout\"\n [currentPage]=\"currentPage$ | async\"\n [pageSize]=\"pageSize$ | async\"\n [total]=\"pagination.total\"\n (currentPageChange)=\"currentPage$.next($event)\"\n (pageSizeChange)=\"pageSize$.next($event)\"\n [pageSizeOptions]=\"pageSizeOptions\"\n ></aui-paginator>\n</ng-container>\n\n<ng-template\n #defaultTableCell\n let-data=\"data\"\n let-columnDef=\"columnDef\"\n>\n <ng-container [ngSwitch]=\"columnDef.name\">\n <ng-container *ngSwitchCase=\"NAME\">\n <div\n *ngIf=\"data | pure: getValueFromPath:columnDef.name as name\"\n class=\"aui-table__cell__name\"\n >\n <ng-container\n *ngIf=\"\n columnDef.extra?.link !== false && !(data | aclIsDeleting);\n else plainName\n \"\n >\n <a\n [routerLink]=\"[(isListPage$ | async) ? '..' : '.', 'detail', name]\"\n [auiTooltip]=\"name\"\n >\n {{ name }}\n </a>\n </ng-container>\n <ng-template #plainName>\n <span\n [auiTooltip]=\"name\"\n [class.deleting-text]=\"data | aclIsDeleting\"\n >{{ name }}</span\n >\n </ng-template>\n <acl-deleting-tag\n *ngIf=\"data | pure: isK8sResource\"\n [resource]=\"data\"\n ></acl-deleting-tag>\n </div>\n <div\n *ngIf=\"\n (data | pure: isK8sResource)\n ? (data | aclDisplayName)\n : data.displayName as displayName\n \"\n class=\"aui-table__cell__display-name\"\n [class.deleting-text]=\"data | aclIsDeleting\"\n >\n {{ displayName }}\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"CREATED_AT\">\n <acl-relative-time\n [time]=\"data | pure: getValueFromPath:columnDef.name\"\n ></acl-relative-time>\n </ng-container>\n <ng-container *ngSwitchCase=\"ACTION\">\n <button\n aui-button=\"text\"\n [square]=\"true\"\n size=\"small\"\n [auiDropdown]=\"menu\"\n [auiDropdownContext]=\"{ $implicit: data, columnDef: columnDef }\"\n >\n <aui-icon icon=\"ellipsis_v_s\"></aui-icon>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngIf=\"\n data | pure: getValueFromPath:columnDef.name as value;\n else empty\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tableCellContent;\n context: { columnDef: columnDef, value: value }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template\n #tableCellContent\n let-columnDef=\"columnDef\"\n let-value=\"value\"\n>\n <ng-container\n *ngIf=\"\n columnDef.translate == null\n ? value\n : columnDef.translate === true\n ? (value | translate)\n : (value | pure: columnDef.translate:finalContext | translate) as text;\n else empty\n \"\n >\n <div\n *ngIf=\"columnDef.ellipsis; else plainText\"\n class=\"text-overflow\"\n [auiTooltip]=\"text\"\n >\n {{ text }}\n </div>\n <ng-template #plainText>{{ text }}</ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template\n #menu\n let-data\n let-columnDef=\"columnDef\"\n ><aui-menu>\n <acl-disabled-container\n *ngIf=\"columnDef.extra?.update !== false\"\n [isAllowed]=\"!permissions || permissions.update\"\n [isDisabled]=\"\n (columnDef.extra?.update?.disabled.handler | pure: isFunction) &&\n (data | pure: columnDef.extra.update.disabled.handler:finalContext)\n \"\n [tooltip]=\"\n columnDef.extra?.update?.disabled.tooltip\n | pure: getValue:data:finalContext\n | translate\n \"\n (click)=\"onUpdate(data, columnDef)\"\n >\n <aui-menu-item>{{ 'update' | translate }}</aui-menu-item>\n </acl-disabled-container>\n <acl-disabled-container\n *ngIf=\"columnDef.extra?.delete !== false\"\n [isAllowed]=\"!permissions || permissions.delete\"\n [isDisabled]=\"\n (columnDef.extra?.delete?.disabled.handler | pure: isFunction) &&\n (data | pure: columnDef.extra.delete.disabled.handler:finalContext)\n \"\n [tooltip]=\"\n columnDef.extra?.delete?.disabled.tooltip\n | pure: getValue:data:finalContext\n | translate\n \"\n (click)=\"delete.emit(data)\"\n >\n <aui-menu-item>{{ 'delete' | translate }}</aui-menu-item>\n </acl-disabled-container>\n </aui-menu></ng-template\n>\n\n<ng-template #empty>{{ null | aclFieldNotAvailable }}</ng-template>\n\n<ng-template #noData>{{ 'no_data' | translate }}</ng-template>\n", styles: [".deleting-text{color:rgb(var(--aui-color-disabled-text))}:host{display:block}:host.aui-table__scroll-wrapper{display:flex}:host ::ng-deep+acl-table{margin-top:12px}html:not([lang|=zh]) :host ::ng-deep .aui-table__column-created_at{flex:0 0 140px}\n"] }]
780
780
  }], function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.TableUtilService }]; }, { list: [{
781
781
  type: Input
782
782
  }], list$: [], dataSource: [{
@@ -825,4 +825,4 @@ __decorate([
825
825
  type: HostBinding,
826
826
  args: ['style.max-height']
827
827
  }] }); })();
828
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3RhYmxlL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy90YWJsZS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUUsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsR0FBRyxFQUNILEtBQUssRUFDTCxVQUFVLEVBQ1YsRUFBRSxFQUNGLGFBQWEsRUFDYixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFl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QkFEWCxLQUFLO1lBSU4sYUFBYSxNQUdiLE9BQU87a0JBRE4sS0FBSztZQVFOLFFBQVE7a0JBRFAsS0FBSztZQUlOLFNBQVMsTUFHVCxPQUFPO2tCQUROLEtBQUs7WUFJTixVQUFVO2tCQURULEtBQUs7WUFJTixnQkFBZ0I7a0JBRGYsS0FBSztZQUlOLFFBQVE7a0JBRFAsS0FBSztZQUlOLGVBQWU7a0JBRGQsS0FBSztZQUlOLGdCQUFnQjtrQkFEZixLQUFLO1lBSU4sTUFBTTtrQkFETCxNQUFNO1lBSVAsTUFBTTtrQkFETCxNQUFNO1lBSVAsVUFBVTtrQkFEVCxNQUFNO1lBSVAsYUFBYTtrQkFEWixlQUFlO21CQUFDLHFCQUFxQjtZQUlsQyxhQUFhO2tCQURoQixXQUFXO21CQUFDLGlDQUFpQztZQU0xQyxtQkFBbUI7a0JBRHRCLFdBQVc7bUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFuZGxlUGl4ZWwsIFNvcnQgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUcmFja0J5RnVuY3Rpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBnZXQsIGlzRnVuY3Rpb24sIGlzT2JqZWN0TGlrZSwgaXNTdHJpbmcsIGxhc3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgUmVwbGF5U3ViamVjdCxcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBQ1RJT04sIENSRUFURURfQVQsIExJTkssIFVQREFURSB9IGZyb20gJy4uL2NvcmUvY29uc3RhbnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpc0ZpZWxkTm90QXZhaWxhYmxlIH0gZnJvbSAnLi4vY29yZS9waXBlcy9maWVsZC1ub3QtYXZhaWxhYmxlLnBpcGUnO1xuaW1wb3J0IHsgQ1JFQVRPUiwgTkFNRSB9IGZyb20gJy4uL2NvcmUvc2VydmljZXMvazhzLXV0aWwuc2VydmljZSc7XG5pbXBvcnQge1xuICBLOHNSZXNvdXJjZUFjdGlvbixcbiAgS3ViZXJuZXRlc1Jlc291cmNlTGlzdCxcbn0gZnJvbSAnLi4vY29yZS90eXBlcy9rOHMvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBpc0s4c1Jlc291cmNlLCBub29wLCB0cmFja0J5VWlkIH0gZnJvbSAnLi4vY29yZS91dGlscy9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vY29yZS91dGlscy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IHB1Ymxpc2hSZWYgfSBmcm9tICcuLi9jb3JlL3V0aWxzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdHJlYW1MaXN0TG9hZGVyIH0gZnJvbSAnLi4vazhzLXJlc291cmNlLWxpc3QvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBERUZBVUxUX1BBR0VfU0laRSxcbiAgREVGQVVMVF9QQUdFX1NJWkVfT1BUSU9OUyxcbiAgREVGQVVMVF9QQUdJTkFUSU9OX0xBWU9VVCxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGFibGVDZWxsRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9oZWxwZXJzLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBOb3JtYWxpemVkVGFibGVDb2x1bW5EZWYsXG4gIFRhYmxlQ29sdW1uRGVmcyxcbiAgVGFibGVDb2x1bW4sXG4gIFRhYmxlQ29sdW1uRGVmLFxuICBUYWJsZUZpbHRlckZuLFxuICBUYWJsZUNvbHVtbkFjdGlvbkV4dHJhLFxuICBUYWJsZUNvbHVtbkFjdGlvbkV4dHJhSXRlbSxcbiAgVGFibGVDb2x1bW5BY3Rpb25EaXNhYmxlZEhhbmRsZXIsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgS05PV05fQ09MVU1OUywgVGFibGVVdGlsU2VydmljZSB9IGZyb20gJy4vdXRpbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuPiB7XG4gIEBJbnB1dCgpXG4gIGxpc3QhOiBTdHJlYW1MaXN0TG9hZGVyPEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8SXRlbT4sIEl0ZW0+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBsaXN0JCE6IE9ic2VydmFibGU8U3RyZWFtTGlzdExvYWRlcjxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PEl0ZW0+LCBJdGVtPj47XG5cbiAgQElucHV0KClcbiAgZGF0YVNvdXJjZTogSXRlbVtdIHwgT2JzZXJ2YWJsZTxJdGVtW10+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBkYXRhU291cmNlJCE6IE9ic2VydmFibGU8SXRlbVtdIHwgT2JzZXJ2YWJsZTxJdGVtW10+PjtcblxuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWU6IHN0cmluZztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVzb3VyY2VOYW1lJCE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWVUcmFuc2xhdGVkOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgc3RpY2t5OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcGVybWlzc2lvbnM6IFBhcnRpYWw8UmVjb3JkPEs4c1Jlc291cmNlQWN0aW9uLCBib29sZWFuPj47XG5cbiAgQElucHV0KClcbiAgY29sdW1uczogUmVhZG9ubHlBcnJheTxUYWJsZUNvbHVtbjxJdGVtLCBDb250ZXh0Pj47XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNvbHVtbnMkITogT2JzZXJ2YWJsZTxBcnJheTxUYWJsZUNvbHVtbjxJdGVtLCBDb250ZXh0Pj4+O1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlclBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGZpbHRlclBhcmFtcyQhOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcblxuICBASW5wdXQoKVxuICBjb250ZXh0OiBDb250ZXh0O1xuXG4gIGdldCBmaW5hbENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dCA/PyAodGhpcy51dGlsIGFzIHVua25vd24gYXMgQ29udGV4dCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBmaWx0ZXJGbjogVGFibGVGaWx0ZXJGbjxJdGVtLCBDb250ZXh0PjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgZmlsdGVyRm4kITogT2JzZXJ2YWJsZTxUYWJsZUZpbHRlckZuPEl0ZW0sIENvbnRleHQ+PjtcblxuICBASW5wdXQoKVxuICB0cmFja0J5OiBUcmFja0J5RnVuY3Rpb248SXRlbT4gPSB0aGlzLnRyYWNrQnlGbjtcblxuICBASW5wdXQoKVxuICBub0RhdGFIaW50OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZW5hYmxlUGFnaW5hdGlvbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHBhZ2VTaXplID0gREVGQVVMVF9QQUdFX1NJWkU7XG5cbiAgQElucHV0KClcbiAgcGFnZVNpemVPcHRpb25zID0gREVGQVVMVF9QQUdFX1NJWkVfT1BUSU9OUztcblxuICBASW5wdXQoKVxuICBwYWdpbmF0aW9uTGF5b3V0ID0gREVGQVVMVF9QQUdJTkFUSU9OX0xBWU9VVDtcblxuICBAT3V0cHV0KClcbiAgdXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxJdGVtPigpO1xuXG4gIEBPdXRwdXQoKVxuICBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPEl0ZW0+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJsZUNlbGxEZWZEaXJlY3RpdmUpXG4gIHRhYmxlQ2VsbERlZnM6IFF1ZXJ5TGlzdDxUYWJsZUNlbGxEZWZEaXJlY3RpdmU8SXRlbT4+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYXVpLXRhYmxlX19zY3JvbGwtd3JhcHBlcicpXG4gIGdldCBzY3JvbGxXcmFwcGVyKCkge1xuICAgIHJldHVybiAhIXRoaXMuc3RpY2t5O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JylcbiAgZ2V0IHNjcm9sbFdyYXBwZXJIZWlnaHQoKSB7XG4gICAgcmV0dXJuIGhhbmRsZVBpeGVsKHRoaXMuc3RpY2t5KTtcbiAgfVxuXG4gIGN1cnJlbnRQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxKTtcblxuICBwYWdlU2l6ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oREVGQVVMVF9QQUdFX1NJWkUpO1xuXG4gIHBhZ2luYXRpb24gPSB7XG4gICAgdG90YWw6IDAsXG4gICAgcGFnZXM6IDAsXG4gIH07XG5cbiAgZmluYWxEYXRhU291cmNlJCA9IHRoaXMuZGF0YVNvdXJjZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoZGF0YVNvdXJjZSA9PlxuICAgICAgZGF0YVNvdXJjZSBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyBkYXRhU291cmNlIDogb2YoZGF0YVNvdXJjZSksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZmluYWxSZXNvdXJjZU5hbWUkID0gY29tYmluZUxhdGVzdChbdGhpcy5saXN0JCwgdGhpcy5yZXNvdXJjZU5hbWUkXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtsaXN0LCByZXNvdXJjZU5hbWVdKSA9PlxuICAgICAgIWxpc3QgfHwgcmVzb3VyY2VOYW1lXG4gICAgICAgID8gb2YocmVzb3VyY2VOYW1lKVxuICAgICAgICA6IGxpc3QucmF3UmVzcG9uc2UkLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzID0+IHJlcz8ua2luZC5zbGljZSgwLCAtNCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgKSxcbiAgICApLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb2x1bW5EZWZzJCA9IHRoaXMuY29sdW1ucyQucGlwZShcbiAgICBtYXAoXG4gICAgICBjb2x1bW5zID0+XG4gICAgICAgIChjb2x1bW5zIHx8IFtdKS5tYXAoY29sdW1uID0+IHtcbiAgICAgICAgICBjb2x1bW4gPSBpc1N0cmluZyhjb2x1bW4pID8geyBuYW1lOiBjb2x1bW4gfSA6IGNvbHVtbjtcbiAgICAgICAgICBpZiAoISgncGF0aCcgaW4gY29sdW1uKSAmJiAhS05PV05fQ09MVU1OUy5oYXMoY29sdW1uLm5hbWUpKSB7XG4gICAgICAgICAgICBjb2x1bW4ucGF0aCA9IGNvbHVtbi5uYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm5vcm1hbGl6ZUNvbHVtbkRlZlNvcnQoY29sdW1uKTtcbiAgICAgICAgICB0aGlzLm5vcm1hbGl6ZUNvbHVtbkRlZlRyYW5zbGF0ZShjb2x1bW4pO1xuICAgICAgICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZUFjdGlvbkNvbHVtbkRlZihjb2x1bW4pO1xuICAgICAgICB9KSBhcyBUYWJsZUNvbHVtbkRlZnM8SXRlbSwgQ29udGV4dD4sXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgY29sdW1uTmFtZXMkID0gdGhpcy5jb2x1bW5EZWZzJC5waXBlKFxuICAgIG1hcChjb2x1bW5zID0+IGNvbHVtbnMubWFwKGNvbHVtbiA9PiBjb2x1bW4ubmFtZSkpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBhY3RpdmVTb3J0JCQgPSBuZXcgUmVwbGF5U3ViamVjdDxTb3J0PigxKTtcblxuICBhY3RpdmVTb3J0JDogT2JzZXJ2YWJsZTxTb3J0PiA9IG1lcmdlKFxuICAgIHRoaXMuYWN0aXZlU29ydCQkLFxuICAgIHRoaXMuY29sdW1uRGVmcyQucGlwZShcbiAgICAgIG1hcChjb2x1bW5EZWZzID0+IHtcbiAgICAgICAgY29uc3QgY29sdW1uRGVmID0gY29sdW1uRGVmcy5maW5kKGNvbHVtbiA9PiBjb2x1bW4uc29ydD8uYWN0aXZlKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbkRlZlxuICAgICAgICAgID8geyBhY3RpdmU6IGNvbHVtbkRlZi5uYW1lLCBkaXJlY3Rpb246IGNvbHVtbkRlZi5zb3J0LmRpcmVjdGlvbiB9XG4gICAgICAgICAgOiBudWxsO1xuICAgICAgfSksXG4gICAgKSxcbiAgKS5waXBlKHB1Ymxpc2hSZWYoKSk7XG5cbiAgZmlsdGVyZWRJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmxpc3QkLCB0aGlzLmZpbmFsRGF0YVNvdXJjZSRdKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChbbGlzdCwgZGF0YVNvdXJjZV0pID0+IChsaXN0ID8gbGlzdC5pdGVtcyQgOiBvZihkYXRhU291cmNlKSkpLFxuICAgICksXG4gICAgdGhpcy5jb2x1bW5EZWZzJCxcbiAgICB0aGlzLmFjdGl2ZVNvcnQkLFxuICAgIHRoaXMuZmlsdGVyUGFyYW1zJCxcbiAgICB0aGlzLmZpbHRlckZuJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW1xuICAgICAgICBpdGVtcyxcbiAgICAgICAgY29sdW1uRGVmcyxcbiAgICAgICAgYWN0aXZlU29ydCxcbiAgICAgICAgZmlsdGVyUGFyYW1zLFxuICAgICAgICBmaWx0ZXJGbiA9IHRoaXMudXRpbC5kZWZhdWx0RmlsdGVyRm4sXG4gICAgICBdKSA9PlxuICAgICAgICBmaWx0ZXJGbi5jYWxsKFxuICAgICAgICAgIHRoaXMuZmluYWxDb250ZXh0LFxuICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgIGNvbHVtbkRlZnMsXG4gICAgICAgICAgYWN0aXZlU29ydCxcbiAgICAgICAgICBmaWx0ZXJQYXJhbXMsXG4gICAgICAgICAgdGhpcy5maW5hbENvbnRleHQsXG4gICAgICAgICksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcGFnZWRJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLFxuICAgIHRoaXMuY3VycmVudFBhZ2UkLFxuICAgIHRoaXMucGFnZVNpemUkLFxuICBdKS5waXBlKFxuICAgIHRhcCgoW2l0ZW1zLCBfLCBwYWdlU2l6ZV0pID0+IHtcbiAgICAgIGlmICh0aGlzLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID1cbiAgICAgICAgICBpdGVtcy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgID8geyB0b3RhbDogMCwgcGFnZXM6IDAgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgdG90YWw6IGl0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICBwYWdlczogTWF0aC5jZWlsKGl0ZW1zLmxlbmd0aCAvIHBhZ2VTaXplKSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBtYXAoKFtpdGVtcywgY3VycmVudFBhZ2UsIHBhZ2VTaXplXSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbi5wYWdlcyA8IGN1cnJlbnRQYWdlICYmIHRoaXMucGFnaW5hdGlvbi5wYWdlcyAhPT0gMCkge1xuICAgICAgICBjdXJyZW50UGFnZSA9IHRoaXMucGFnaW5hdGlvbi5wYWdlcztcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSQubmV4dChjdXJyZW50UGFnZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBiZWdpbiA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemU7XG4gICAgICByZXR1cm4gaXRlbXMuc2xpY2UoYmVnaW4sIGJlZ2luICsgcGFnZVNpemUpO1xuICAgIH0pLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBnZXQgaXNMaXN0UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZS5yb3V0ZUNvbmZpZz8ucGF0aCA9PT0gJ2xpc3QnO1xuICB9XG5cbiAgaXNMaXN0UGFnZSQgPSB0aGlzLnJvdXRlLnVybC5waXBlKFxuICAgIG1hcCgoKSA9PiB0aGlzLmlzTGlzdFBhZ2UpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBpc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjtcbiAgaXNLOHNSZXNvdXJjZSA9IGlzSzhzUmVzb3VyY2U7XG4gIGlzRmllbGROb3RBdmFpbGFibGUgPSBpc0ZpZWxkTm90QXZhaWxhYmxlO1xuXG4gIGdldFZhbHVlRnJvbVBhdGggPSB0aGlzLnV0aWwuZ2V0VmFsdWVGcm9tUGF0aDtcbiAgdHJhY2tCeU5hbWUoXzogbnVtYmVyLCBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uRGVmPEl0ZW0sIENvbnRleHQ+KSB7XG4gICAgcmV0dXJuIGNvbHVtbkRlZi5uYW1lO1xuICB9XG5cbiAgTkFNRSA9IE5BTUU7XG4gIENSRUFUT1IgPSBDUkVBVE9SO1xuICBDUkVBVEVEX0FUID0gQ1JFQVRFRF9BVDtcbiAgQUNUSU9OID0gQUNUSU9OO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHVibGljIHJlYWRvbmx5IHV0aWw6IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4gICkge1xuICAgIHRoaXMuZ2V0Q29sdW1uVGVtcGxhdGUgPSB0aGlzLmdldENvbHVtblRlbXBsYXRlLmJpbmQodGhpcyk7XG4gIH1cblxuICBub3JtYWxpemVDb2x1bW5EZWZUcmFuc2xhdGUoY29sdW1uOiBUYWJsZUNvbHVtbkRlZjxJdGVtLCBDb250ZXh0Pikge1xuICAgIGNvbnN0IHsgdHJhbnNsYXRlIH0gPSBjb2x1bW47XG4gICAgaWYgKHRyYW5zbGF0ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gY29sdW1uO1xuICAgIH1cbiAgICBpZiAodHJhbnNsYXRlID09PSB0cnVlKSB7XG4gICAgICBjb2x1bW4udHJhbnNsYXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGlzU3RyaW5nKHRyYW5zbGF0ZSkpIHtcbiAgICAgIGNvbHVtbi50cmFuc2xhdGUgPSAodmFsdWU6IHN0cmluZyB8IG51bWJlcikgPT4gdHJhbnNsYXRlICsgdmFsdWU7XG4gICAgfSBlbHNlIGlmIChpc09iamVjdExpa2UodHJhbnNsYXRlKSkge1xuICAgICAgY29sdW1uLnRyYW5zbGF0ZSA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSA9PiBnZXQodHJhbnNsYXRlLCB2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBjb2x1bW47XG4gIH1cblxuICBub3JtYWxpemVDb2x1bW5EZWZTb3J0KGNvbHVtbjogVGFibGVDb2x1bW5EZWY8SXRlbSwgQ29udGV4dD4pIHtcbiAgICBjb25zdCB7IHNvcnQgfSA9IGNvbHVtbjtcbiAgICBpZiAoc29ydCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gY29sdW1uO1xuICAgIH1cbiAgICBpZiAoc29ydCA9PT0gdHJ1ZSkge1xuICAgICAgY29sdW1uLnNvcnQgPSB7XG4gICAgICAgIGRpcmVjdGlvbjogJ2FzYycsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcoc29ydCkpIHtcbiAgICAgIGNvbHVtbi5zb3J0ID0ge1xuICAgICAgICBkaXJlY3Rpb246IHNvcnQsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoaXNGdW5jdGlvbihzb3J0KSkge1xuICAgICAgY29sdW1uLnNvcnQgPSB7XG4gICAgICAgIGRpcmVjdGlvbjogJ2FzYycsXG4gICAgICAgIGhhbmRsZXI6IHNvcnQsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoc29ydC5kaXJlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgc29ydC5kaXJlY3Rpb24gPSAnYXNjJztcbiAgICB9XG4gICAgcmV0dXJuIGNvbHVtbjtcbiAgfVxuXG4gIG9uU29ydENoYW5nZSgkZXZlbnQ6IFNvcnQpIHtcbiAgICB0aGlzLnNvcnRDaGFuZ2UubmV4dCgkZXZlbnQpO1xuICAgIHRoaXMuYWN0aXZlU29ydCQkLm5leHQoJGV2ZW50KTtcbiAgfVxuXG4gIG5vcm1hbGl6ZUFjdGlvbkNvbHVtbkRlZihcbiAgICBjb2x1bW46IFRhYmxlQ29sdW1uRGVmPEl0ZW0sIENvbnRleHQ+LFxuICApOiBOb3JtYWxpemVkVGFibGVDb2x1bW5EZWY8SXRlbSwgQ29udGV4dD4ge1xuICAgIGlmIChjb2x1bW4ubmFtZSAhPT0gQUNUSU9OIHx8ICFjb2x1bW4uZXh0cmEpIHtcbiAgICAgIHJldHVybiBjb2x1bW4gYXMgTm9ybWFsaXplZFRhYmxlQ29sdW1uRGVmPEl0ZW0sIENvbnRleHQ+O1xuICAgIH1cblxuICAgIGNvbnN0IGV4dHJhID0gY29sdW1uLmV4dHJhIGFzIFRhYmxlQ29sdW1uQWN0aW9uRXh0cmE8SXRlbSwgQ29udGV4dD47XG4gICAgKFtLOHNSZXNvdXJjZUFjdGlvbi5ERUxFVEUsIEs4c1Jlc291cmNlQWN0aW9uLlVQREFURV0gYXMgY29uc3QpLmZvckVhY2goXG4gICAgICBhY3Rpb24gPT4ge1xuICAgICAgICBpZiAoIWV4dHJhW2FjdGlvbl0pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGhhbmRsZXIgPSAoXG4gICAgICAgICAgZXh0cmFbYWN0aW9uXSBhcyBUYWJsZUNvbHVtbkFjdGlvbkV4dHJhSXRlbTxJdGVtLCBDb250ZXh0PlxuICAgICAgICApLmRpc2FibGVkO1xuICAgICAgICBpZiAoaGFuZGxlciA9PSBudWxsKSB7XG4gICAgICAgICAgaGFuZGxlciA9IG5vb3AgYXMgVGFibGVDb2x1bW5BY3Rpb25EaXNhYmxlZEhhbmRsZXI8SXRlbSwgQ29udGV4dD47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24oaGFuZGxlcikpIHtcbiAgICAgICAgICAoXG4gICAgICAgICAgICBleHRyYVthY3Rpb25dIGFzIFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPEl0ZW0sIENvbnRleHQ+XG4gICAgICAgICAgKS5kaXNhYmxlZCA9IHsgaGFuZGxlciB9O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gICAgcmV0dXJuIGNvbHVtbiBhcyBOb3JtYWxpemVkVGFibGVDb2x1bW5EZWY8SXRlbSwgQ29udGV4dD47XG4gIH1cblxuICBnZXRDb2x1bW5UZW1wbGF0ZShjb2x1bW46IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnRhYmxlQ2VsbERlZnMuZmluZChkZWYgPT4gZGVmLmFjbFRhYmxlQ2VsbERlZiA9PT0gY29sdW1uKVxuICAgICAgPy50ZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBJdGVtKSB7XG4gICAgcmV0dXJuIGlzSzhzUmVzb3VyY2UoaXRlbSlcbiAgICAgID8gdHJhY2tCeVVpZChpbmRleCwgaXRlbSlcbiAgICAgIDogZ2V0KGl0ZW0sIE5BTUUsIGluZGV4KTtcbiAgfVxuXG4gIG9uVXBkYXRlKGRhdGE6IEl0ZW0sIGNvbHVtbkRlZjogVGFibGVDb2x1bW5EZWY8SXRlbSwgQ29udGV4dD4pIHtcbiAgICB0aGlzLnVwZGF0ZS5lbWl0KGRhdGEpO1xuXG4gICAgaWYgKGdldChjb2x1bW5EZWYuZXh0cmEsIFtVUERBVEUsIExJTktdKSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxuICAgICAgICBbXG4gICAgICAgICAgdGhpcy5pc0xpc3RQYWdlID8gJy4uJyA6ICcuJyxcbiAgICAgICAgICBVUERBVEUsXG4gICAgICAgICAgdGhpcy5nZXRWYWx1ZUZyb21QYXRoKGRhdGEsIE5BTUUpLFxuICAgICAgICBdLFxuICAgICAgICB7XG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VmFsdWU8VCwgRiBleHRlbmRzICguLi5hcmdzOiB1bmtub3duW10pID0+IFQ+KFxuICAgIGZ1bmN0aW9uT3JWYWx1ZTogVCB8IEYsXG4gICAgLi4uYXJnczogUGFyYW1ldGVyczxGPlxuICApOiBUIHtcbiAgICByZXR1cm4gaXNGdW5jdGlvbihmdW5jdGlvbk9yVmFsdWUpXG4gICAgICA/IGZ1bmN0aW9uT3JWYWx1ZS5jYWxsKGxhc3QoYXJncyksIC4uLmFyZ3MpXG4gICAgICA6IGZ1bmN0aW9uT3JWYWx1ZTtcbiAgfVxufVxuIiwiPGF1aS10YWJsZVxuICBhdWlTb3J0XG4gIFthY3RpdmVdPVwiKGFjdGl2ZVNvcnQkIHwgYXN5bmMpPy5hY3RpdmVcIlxuICBbZGlyZWN0aW9uXT1cIihhY3RpdmVTb3J0JCB8IGFzeW5jKT8uZGlyZWN0aW9uXCJcbiAgW2RhdGFTb3VyY2VdPVwicGFnZWRJdGVtcyRcIlxuICBbdHJhY2tCeV09XCJ0cmFja0J5XCJcbiAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxuICBbYXVpVGFibGVTY3JvbGxhYmxlXT1cIiEhc3RpY2t5XCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0Zvcj1cImxldCBjb2x1bW5EZWYgb2YgY29sdW1uRGVmcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeU5hbWVcIlxuICAgIFthdWlUYWJsZUNvbHVtbkRlZl09XCJjb2x1bW5EZWYubmFtZVwiXG4gID5cbiAgICA8YXVpLXRhYmxlLWhlYWRlci1jZWxsXG4gICAgICAqYXVpVGFibGVIZWFkZXJDZWxsRGVmXG4gICAgICBbc3R5bGVdPVwiY29sdW1uRGVmLnN0eWxlXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uRGVmLm5hbWUgIT09IEFDVElPTlwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiY29sdW1uRGVmLnNvcnRcIlxuICAgICAgICAgIGF1aS1zb3J0LWhlYWRlclxuICAgICAgICAgIFtzdGFydF09XCJjb2x1bW5EZWYuc29ydC5kaXJlY3Rpb25cIlxuICAgICAgICAgID57eyBjb2x1bW5EZWYubGFiZWwgfHwgY29sdW1uRGVmLm5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFjb2x1bW5EZWYuc29ydFwiPnt7XG4gICAgICAgICAgY29sdW1uRGVmLmxhYmVsIHx8IGNvbHVtbkRlZi5uYW1lIHwgdHJhbnNsYXRlXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9hdWktdGFibGUtaGVhZGVyLWNlbGw+XG5cbiAgICA8YXVpLXRhYmxlLWNlbGxcbiAgICAgICphdWlUYWJsZUNlbGxEZWY9XCJcbiAgICAgICAgbGV0IGRhdGE7XG4gICAgICAgIGxldCBpbmRleCA9IGluZGV4O1xuICAgICAgICBsZXQgZXZlbiA9IGV2ZW47XG4gICAgICAgIGxldCBvZGQgPSBvZGQ7XG4gICAgICAgIGxldCBsYXN0ID0gbGFzdFxuICAgICAgXCJcbiAgICAgIFtkaXJlY3Rpb25dPVwiY29sdW1uRGVmLmRpcmVjdGlvblwiXG4gICAgICBbbmdDbGFzc109XCJjb2x1bW5EZWYuY2xhc3NcIlxuICAgICAgW3N0eWxlXT1cImNvbHVtbkRlZi5zdHlsZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGNvbHVtbkRlZi5uYW1lIHwgcHVyZTogZ2V0Q29sdW1uVGVtcGxhdGUgYXMgdGVtcGxhdGU7XG4gICAgICAgICAgZWxzZSB0YWJsZUNlbGxEZWZUcGxcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICB0ZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiBkYXRhLFxuICAgICAgICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgIGV2ZW46IGV2ZW4sXG4gICAgICAgICAgICAgIG9kZDogb2RkLFxuICAgICAgICAgICAgICBsYXN0OiBsYXN0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3RhYmxlQ2VsbERlZlRwbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBjb2x1bW5EZWYucGF0aCAhPSBudWxsICYmXG4gICAgICAgICAgICAgIChkYXRhXG4gICAgICAgICAgICAgICAgfCBwdXJlXG4gICAgICAgICAgICAgICAgICA6IGdldFZhbHVlRnJvbVBhdGhcbiAgICAgICAgICAgICAgICAgIDogY29sdW1uRGVmLm5hbWVcbiAgICAgICAgICAgICAgICAgIDogY29sdW1uRGVmLnBhdGgpIGFzIHZhbHVlO1xuICAgICAgICAgICAgZWxzZSBkZWZhdWx0VGFibGVDZWxsVHBsXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIHRhYmxlQ2VsbENvbnRlbnQ7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHsgY29sdW1uRGVmOiBjb2x1bW5EZWYsIHZhbHVlOiB2YWx1ZSB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGFibGVDZWxsVHBsPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGRlZmF1bHRUYWJsZUNlbGw7XG4gICAgICAgICAgICBjb250ZXh0OiB7IGRhdGE6IGRhdGEsIGNvbHVtbkRlZjogY29sdW1uRGVmIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYXVpLXRhYmxlLWNlbGw+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxhdWktdGFibGUtaGVhZGVyLXJvd1xuICAgICphdWlUYWJsZUhlYWRlclJvd0RlZj1cImNvbHVtbk5hbWVzJCB8IGFzeW5jOyBzdGlja3k6ICEhc3RpY2t5XCJcbiAgPjwvYXVpLXRhYmxlLWhlYWRlci1yb3c+XG4gIDxhdWktdGFibGUtcm93XG4gICAgKmF1aVRhYmxlUm93RGVmPVwibGV0IHJvdzsgY29sdW1uczogY29sdW1uTmFtZXMkIHwgYXN5bmNcIlxuICA+PC9hdWktdGFibGUtcm93PlxuXG4gIDxuZy1jb250YWluZXIgKmF1aVRhYmxlUGxhY2Vob2xkZXJEZWY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAhKHBhZ2VkSXRlbXMkIHwgYXN5bmMpPy5sZW5ndGggJiYgKGxpc3QuaXRlbXMkIHwgYXN5bmMpPy5sZW5ndGg7XG4gICAgICAgICAgZWxzZSBsaXN0Rm9vdGVyXG4gICAgICAgIFwiXG4gICAgICAgIGNsYXNzPVwiZW1wdHktcGxhY2Vob2xkZXJcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJmaW5hbFJlc291cmNlTmFtZSQgfCBhc3luYyBhcyBmaW5hbFJlc291cmNlTmFtZTsgZWxzZSBub0RhdGFcIlxuICAgICAgICA+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgICdub19uYW1lZF9kYXRhX2hpbnQnXG4gICAgICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6XG4gICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lVHJhbnNsYXRlZCB8fFxuICAgICAgICAgICAgICAgICAgICAgIChmaW5hbFJlc291cmNlTmFtZSB8IHRyYW5zbGF0ZTogbnVsbDp0cnVlKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI2xpc3RGb290ZXI+XG4gICAgICAgIDxhY2wtazhzLXJlc291cmNlLWxpc3QtZm9vdGVyXG4gICAgICAgICAgW2xpc3RdPVwibGlzdFwiXG4gICAgICAgICAgW3Jlc291cmNlTmFtZV09XCJmaW5hbFJlc291cmNlTmFtZSQgfCBhc3luY1wiXG4gICAgICAgICAgW3Jlc291cmNlTmFtZVRyYW5zbGF0ZWRdPVwicmVzb3VyY2VOYW1lVHJhbnNsYXRlZFwiXG4gICAgICAgID48L2FjbC1rOHMtcmVzb3VyY2UtbGlzdC1mb290ZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiIWxpc3QgJiYgIShwYWdlZEl0ZW1zJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgICAgIGNsYXNzPVwiZW1wdHktcGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaW5hbERhdGFTb3VyY2UkIHwgYXN5bmM7IGVsc2UgbG9hZGluZ1wiPlxuICAgICAgICB7e1xuICAgICAgICAgIG5vRGF0YUhpbnQgfHxcbiAgICAgICAgICAgICgnbm9fbmFtZWRfZGF0YV9oaW50J1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOlxuICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZVRyYW5zbGF0ZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAocmVzb3VyY2VOYW1lIHwgdHJhbnNsYXRlOiBudWxsOnRydWUpXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gICAgICAgIDxhdWktaWNvblxuICAgICAgICAgIGNsYXNzPVwiYWNsLWxvYWRpbmctbWFza19faWNvblwiXG4gICAgICAgICAgc2l6ZT1cIjE2cHhcIlxuICAgICAgICAgIGljb249XCJzcGlubmVyXCJcbiAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgIHt7ICdsb2FkaW5nX3BsZWFzZV93YWl0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2F1aS10YWJsZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImVuYWJsZVBhZ2luYXRpb25cIj5cbiAgPGF1aS1wYWdpbmF0b3JcbiAgICBbbGF5b3V0XT1cInBhZ2luYXRpb25MYXlvdXRcIlxuICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZSQgfCBhc3luY1wiXG4gICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplJCB8IGFzeW5jXCJcbiAgICBbdG90YWxdPVwicGFnaW5hdGlvbi50b3RhbFwiXG4gICAgKGN1cnJlbnRQYWdlQ2hhbmdlKT1cImN1cnJlbnRQYWdlJC5uZXh0KCRldmVudClcIlxuICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJwYWdlU2l6ZSQubmV4dCgkZXZlbnQpXCJcbiAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiXG4gID48L2F1aS1wYWdpbmF0b3I+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlXG4gICNkZWZhdWx0VGFibGVDZWxsXG4gIGxldC1kYXRhPVwiZGF0YVwiXG4gIGxldC1jb2x1bW5EZWY9XCJjb2x1bW5EZWZcIlxuPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2x1bW5EZWYubmFtZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIk5BTUVcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJkYXRhIHwgcHVyZTogZ2V0VmFsdWVGcm9tUGF0aDpjb2x1bW5EZWYubmFtZSBhcyBuYW1lXCJcbiAgICAgICAgY2xhc3M9XCJhdWktdGFibGVfX2NlbGxfX25hbWVcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGNvbHVtbkRlZi5leHRyYT8ubGluayAhPT0gZmFsc2UgJiYgIShkYXRhIHwgYWNsSXNEZWxldGluZyk7XG4gICAgICAgICAgICBlbHNlIHBsYWluTmFtZVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWyhpc0xpc3RQYWdlJCB8IGFzeW5jKSA/ICcuLicgOiAnLicsICdkZXRhaWwnLCBuYW1lXVwiXG4gICAgICAgICAgICBbYXVpVG9vbHRpcF09XCJuYW1lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBuYW1lIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwbGFpbk5hbWU+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFthdWlUb29sdGlwXT1cIm5hbWVcIlxuICAgICAgICAgICAgW2NsYXNzLmRlbGV0aW5nLXRleHRdPVwiZGF0YSB8IGFjbElzRGVsZXRpbmdcIlxuICAgICAgICAgICAgPnt7IG5hbWUgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxhY2wtZGVsZXRpbmctdGFnXG4gICAgICAgICAgKm5nSWY9XCJkYXRhIHwgcHVyZTogaXNLOHNSZXNvdXJjZVwiXG4gICAgICAgICAgW3Jlc291cmNlXT1cImRhdGFcIlxuICAgICAgICA+PC9hY2wtZGVsZXRpbmctdGFnPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgKGRhdGEgfCBwdXJlOiBpc0s4c1Jlc291cmNlKVxuICAgICAgICAgICAgPyAoZGF0YSB8IGFjbERpc3BsYXlOYW1lKVxuICAgICAgICAgICAgOiBkYXRhLmRpc3BsYXlOYW1lIGFzIGRpc3BsYXlOYW1lXG4gICAgICAgIFwiXG4gICAgICAgIGNsYXNzPVwiYXVpLXRhYmxlX19jZWxsX19kaXNwbGF5LW5hbWVcIlxuICAgICAgICBbY2xhc3MuZGVsZXRpbmctdGV4dF09XCJkYXRhIHwgYWNsSXNEZWxldGluZ1wiXG4gICAgICA+XG4gICAgICAgIHt7IGRpc3BsYXlOYW1lIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDUkVBVEVEX0FUXCI+XG4gICAgICA8YWNsLXJlbGF0aXZlLXRpbWVcbiAgICAgICAgW3RpbWVdPVwiZGF0YSB8IHB1cmU6IGdldFZhbHVlRnJvbVBhdGg6Y29sdW1uRGVmLm5hbWVcIlxuICAgICAgPjwvYWNsLXJlbGF0aXZlLXRpbWU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiQUNUSU9OXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgW2F1aURyb3Bkb3duXT1cIm1lbnVcIlxuICAgICAgICBbYXVpRHJvcGRvd25Db250ZXh0XT1cInsgJGltcGxpY2l0OiBkYXRhLCBjb2x1bW5EZWY6IGNvbHVtbkRlZiB9XCJcbiAgICAgID5cbiAgICAgICAgPGF1aS1pY29uIGljb249XCJlbGxpcHNpc192X3NcIj48L2F1aS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGRhdGEgfCBwdXJlOiBnZXRWYWx1ZUZyb21QYXRoOmNvbHVtbkRlZi5uYW1lIGFzIHZhbHVlO1xuICAgICAgICAgIGVsc2UgZW1wdHlcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICB0YWJsZUNlbGxDb250ZW50O1xuICAgICAgICAgICAgY29udGV4dDogeyBjb2x1bW5EZWY6IGNvbHVtbkRlZiwgdmFsdWU6IHZhbHVlIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3RhYmxlQ2VsbENvbnRlbnRcbiAgbGV0LWNvbHVtbkRlZj1cImNvbHVtbkRlZlwiXG4gIGxldC12YWx1ZT1cInZhbHVlXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICBjb2x1bW5EZWYudHJhbnNsYXRlID09IG51bGxcbiAgICAgICAgPyB2YWx1ZVxuICAgICAgICA6IGNvbHVtbkRlZi50cmFuc2xhdGUgPT09IHRydWVcbiAgICAgICAgPyAodmFsdWUgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogKHZhbHVlIHwgcHVyZTogY29sdW1uRGVmLnRyYW5zbGF0ZTpmaW5hbENvbnRleHQgfCB0cmFuc2xhdGUpIGFzIHRleHQ7XG4gICAgICBlbHNlIGVtcHR5XG4gICAgXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiY29sdW1uRGVmLmVsbGlwc2lzOyBlbHNlIHBsYWluVGV4dFwiXG4gICAgICBjbGFzcz1cInRleHQtb3ZlcmZsb3dcIlxuICAgICAgW2F1aVRvb2x0aXBdPVwidGV4dFwiXG4gICAgPlxuICAgICAge3sgdGV4dCB9fVxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjcGxhaW5UZXh0Pnt7IHRleHQgfX08L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAjbWVudVxuICBsZXQtZGF0YVxuICBsZXQtY29sdW1uRGVmPVwiY29sdW1uRGVmXCJcbiAgPjxhdWktbWVudT5cbiAgICA8YWNsLWRpc2FibGVkLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJjb2x1bW5EZWYuZXh0cmE/LnVwZGF0ZSAhPT0gZmFsc2VcIlxuICAgICAgW2lzQWxsb3dlZF09XCIhcGVybWlzc2lvbnMgfHwgcGVybWlzc2lvbnMudXBkYXRlXCJcbiAgICAgIFtpc0Rpc2FibGVkXT1cIlxuICAgICAgICAoY29sdW1uRGVmLmV4dHJhPy51cGRhdGU/LmRpc2FibGVkLmhhbmRsZXIgfCBwdXJlOiBpc0Z1bmN0aW9uKSAmJlxuICAgICAgICAoZGF0YSB8IHB1cmU6IGNvbHVtbkRlZi5leHRyYS51cGRhdGUuZGlzYWJsZWQuaGFuZGxlcjpmaW5hbENvbnRleHQpXG4gICAgICBcIlxuICAgICAgW3Rvb2x0aXBdPVwiXG4gICAgICAgIGNvbHVtbkRlZi5leHRyYT8udXBkYXRlPy5kaXNhYmxlZC50b29sdGlwXG4gICAgICAgICAgfCBwdXJlOiBnZXRWYWx1ZTpkYXRhOmZpbmFsQ29udGV4dFxuICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cIm9uVXBkYXRlKGRhdGEsIGNvbHVtbkRlZilcIlxuICAgID5cbiAgICAgIDxhdWktbWVudS1pdGVtPnt7ICd1cGRhdGUnIHwgdHJhbnNsYXRlIH19PC9hdWktbWVudS1pdGVtPlxuICAgIDwvYWNsLWRpc2FibGVkLWNvbnRhaW5lcj5cbiAgICA8YWNsLWRpc2FibGVkLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJjb2x1bW5EZWYuZXh0cmE/LmRlbGV0ZSAhPT0gZmFsc2VcIlxuICAgICAgW2lzQWxsb3dlZF09XCIhcGVybWlzc2lvbnMgfHwgcGVybWlzc2lvbnMuZGVsZXRlXCJcbiAgICAgIFtpc0Rpc2FibGVkXT1cIlxuICAgICAgICAoY29sdW1uRGVmLmV4dHJhPy5kZWxldGU/LmRpc2FibGVkLmhhbmRsZXIgfCBwdXJlOiBpc0Z1bmN0aW9uKSAmJlxuICAgICAgICAoZGF0YSB8IHB1cmU6IGNvbHVtbkRlZi5leHRyYS5kZWxldGUuZGlzYWJsZWQuaGFuZGxlcjpmaW5hbENvbnRleHQpXG4gICAgICBcIlxuICAgICAgW3Rvb2x0aXBdPVwiXG4gICAgICAgIGNvbHVtbkRlZi5leHRyYT8uZGVsZXRlPy5kaXNhYmxlZC50b29sdGlwXG4gICAgICAgICAgfCBwdXJlOiBnZXRWYWx1ZTpkYXRhOmZpbmFsQ29udGV4dFxuICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cImRlbGV0ZS5lbWl0KGRhdGEpXCJcbiAgICA+XG4gICAgICA8YXVpLW1lbnUtaXRlbT57eyAnZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fTwvYXVpLW1lbnUtaXRlbT5cbiAgICA8L2FjbC1kaXNhYmxlZC1jb250YWluZXI+XG4gIDwvYXVpLW1lbnU+PC9uZy10ZW1wbGF0ZVxuPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5Pnt7IG51bGwgfCBhY2xGaWVsZE5vdEF2YWlsYWJsZSB9fTwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbm9EYXRhPnt7ICdub19kYXRhJyB8IHRyYW5zbGF0ZSB9fTwvbmctdGVtcGxhdGU+XG4iXX0=
828
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3RhYmxlL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy90YWJsZS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUUsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsR0FBRyxFQUNILEtBQUssRUFDTCxVQUFVLEVBQ1YsRUFBRSxFQUNGLGFBQWEsRUFDYixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFl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LE1BR1IsWUFBWTtrQkFEWCxLQUFLO1lBSU4sYUFBYSxNQUdiLE9BQU87a0JBRE4sS0FBSztZQVFOLFFBQVE7a0JBRFAsS0FBSztZQUlOLFNBQVMsTUFHVCxPQUFPO2tCQUROLEtBQUs7WUFJTixVQUFVO2tCQURULEtBQUs7WUFJTixnQkFBZ0I7a0JBRGYsS0FBSztZQUlOLFFBQVE7a0JBRFAsS0FBSztZQUlOLGVBQWU7a0JBRGQsS0FBSztZQUlOLGdCQUFnQjtrQkFEZixLQUFLO1lBSU4sTUFBTTtrQkFETCxNQUFNO1lBSVAsTUFBTTtrQkFETCxNQUFNO1lBSVAsVUFBVTtrQkFEVCxNQUFNO1lBSVAsYUFBYTtrQkFEWixlQUFlO21CQUFDLHFCQUFxQjtZQUlsQyxhQUFhO2tCQURoQixXQUFXO21CQUFDLGlDQUFpQztZQU0xQyxtQkFBbUI7a0JBRHRCLFdBQVc7bUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFuZGxlUGl4ZWwsIFNvcnQgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUcmFja0J5RnVuY3Rpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBnZXQsIGlzRnVuY3Rpb24sIGlzT2JqZWN0TGlrZSwgaXNTdHJpbmcsIGxhc3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgUmVwbGF5U3ViamVjdCxcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBQ1RJT04sIENSRUFURURfQVQsIExJTkssIFVQREFURSB9IGZyb20gJy4uL2NvcmUvY29uc3RhbnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpc0ZpZWxkTm90QXZhaWxhYmxlIH0gZnJvbSAnLi4vY29yZS9waXBlcy9maWVsZC1ub3QtYXZhaWxhYmxlLnBpcGUnO1xuaW1wb3J0IHsgQ1JFQVRPUiwgTkFNRSB9IGZyb20gJy4uL2NvcmUvc2VydmljZXMvazhzLXV0aWwuc2VydmljZSc7XG5pbXBvcnQge1xuICBLOHNSZXNvdXJjZUFjdGlvbixcbiAgS3ViZXJuZXRlc1Jlc291cmNlTGlzdCxcbn0gZnJvbSAnLi4vY29yZS90eXBlcy9rOHMvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBpc0s4c1Jlc291cmNlLCBub29wLCB0cmFja0J5VWlkIH0gZnJvbSAnLi4vY29yZS91dGlscy9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vY29yZS91dGlscy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IHB1Ymxpc2hSZWYgfSBmcm9tICcuLi9jb3JlL3V0aWxzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdHJlYW1MaXN0TG9hZGVyIH0gZnJvbSAnLi4vazhzLXJlc291cmNlLWxpc3QvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBERUZBVUxUX1BBR0VfU0laRSxcbiAgREVGQVVMVF9QQUdFX1NJWkVfT1BUSU9OUyxcbiAgREVGQVVMVF9QQUdJTkFUSU9OX0xBWU9VVCxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGFibGVDZWxsRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9oZWxwZXJzLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBOb3JtYWxpemVkVGFibGVDb2x1bW5EZWYsXG4gIFRhYmxlQ29sdW1uRGVmcyxcbiAgVGFibGVDb2x1bW4sXG4gIFRhYmxlQ29sdW1uRGVmLFxuICBUYWJsZUZpbHRlckZuLFxuICBUYWJsZUNvbHVtbkFjdGlvbkV4dHJhLFxuICBUYWJsZUNvbHVtbkFjdGlvbkV4dHJhSXRlbSxcbiAgVGFibGVDb2x1bW5BY3Rpb25EaXNhYmxlZEhhbmRsZXIsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgS05PV05fQ09MVU1OUywgVGFibGVVdGlsU2VydmljZSB9IGZyb20gJy4vdXRpbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuPiB7XG4gIEBJbnB1dCgpXG4gIGxpc3QhOiBTdHJlYW1MaXN0TG9hZGVyPEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8SXRlbT4sIEl0ZW0+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBsaXN0JCE6IE9ic2VydmFibGU8U3RyZWFtTGlzdExvYWRlcjxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PEl0ZW0+LCBJdGVtPj47XG5cbiAgQElucHV0KClcbiAgZGF0YVNvdXJjZTogSXRlbVtdIHwgT2JzZXJ2YWJsZTxJdGVtW10+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBkYXRhU291cmNlJCE6IE9ic2VydmFibGU8SXRlbVtdIHwgT2JzZXJ2YWJsZTxJdGVtW10+PjtcblxuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWU6IHN0cmluZztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVzb3VyY2VOYW1lJCE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWVUcmFuc2xhdGVkOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgc3RpY2t5OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcGVybWlzc2lvbnM6IFBhcnRpYWw8UmVjb3JkPEs4c1Jlc291cmNlQWN0aW9uLCBib29sZWFuPj47XG5cbiAgQElucHV0KClcbiAgY29sdW1uczogUmVhZG9ubHlBcnJheTxUYWJsZUNvbHVtbjxJdGVtLCBDb250ZXh0Pj47XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNvbHVtbnMkITogT2JzZXJ2YWJsZTxBcnJheTxUYWJsZUNvbHVtbjxJdGVtLCBDb250ZXh0Pj4+O1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlclBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGZpbHRlclBhcmFtcyQhOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcblxuICBASW5wdXQoKVxuICBjb250ZXh0OiBDb250ZXh0O1xuXG4gIGdldCBmaW5hbENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dCA/PyAodGhpcy51dGlsIGFzIHVua25vd24gYXMgQ29udGV4dCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBmaWx0ZXJGbjogVGFibGVGaWx0ZXJGbjxJdGVtLCBDb250ZXh0PjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgZmlsdGVyRm4kITogT2JzZXJ2YWJsZTxUYWJsZUZpbHRlckZuPEl0ZW0sIENvbnRleHQ+PjtcblxuICBASW5wdXQoKVxuICB0cmFja0J5OiBUcmFja0J5RnVuY3Rpb248SXRlbT4gPSB0aGlzLnRyYWNrQnlGbjtcblxuICBASW5wdXQoKVxuICBub0RhdGFIaW50OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZW5hYmxlUGFnaW5hdGlvbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHBhZ2VTaXplID0gREVGQVVMVF9QQUdFX1NJWkU7XG5cbiAgQElucHV0KClcbiAgcGFnZVNpemVPcHRpb25zID0gREVGQVVMVF9QQUdFX1NJWkVfT1BUSU9OUztcblxuICBASW5wdXQoKVxuICBwYWdpbmF0aW9uTGF5b3V0ID0gREVGQVVMVF9QQUdJTkFUSU9OX0xBWU9VVDtcblxuICBAT3V0cHV0KClcbiAgdXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxJdGVtPigpO1xuXG4gIEBPdXRwdXQoKVxuICBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPEl0ZW0+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJsZUNlbGxEZWZEaXJlY3RpdmUpXG4gIHRhYmxlQ2VsbERlZnM6IFF1ZXJ5TGlzdDxUYWJsZUNlbGxEZWZEaXJlY3RpdmU8SXRlbT4+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYXVpLXRhYmxlX19zY3JvbGwtd3JhcHBlcicpXG4gIGdldCBzY3JvbGxXcmFwcGVyKCkge1xuICAgIHJldHVybiAhIXRoaXMuc3RpY2t5O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JylcbiAgZ2V0IHNjcm9sbFdyYXBwZXJIZWlnaHQoKSB7XG4gICAgcmV0dXJuIGhhbmRsZVBpeGVsKHRoaXMuc3RpY2t5KTtcbiAgfVxuXG4gIGN1cnJlbnRQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxKTtcblxuICBwYWdlU2l6ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oREVGQVVMVF9QQUdFX1NJWkUpO1xuXG4gIHBhZ2luYXRpb24gPSB7XG4gICAgdG90YWw6IDAsXG4gICAgcGFnZXM6IDAsXG4gIH07XG5cbiAgZmluYWxEYXRhU291cmNlJCA9IHRoaXMuZGF0YVNvdXJjZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoZGF0YVNvdXJjZSA9PlxuICAgICAgZGF0YVNvdXJjZSBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyBkYXRhU291cmNlIDogb2YoZGF0YVNvdXJjZSksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZmluYWxSZXNvdXJjZU5hbWUkID0gY29tYmluZUxhdGVzdChbdGhpcy5saXN0JCwgdGhpcy5yZXNvdXJjZU5hbWUkXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtsaXN0LCByZXNvdXJjZU5hbWVdKSA9PlxuICAgICAgIWxpc3QgfHwgcmVzb3VyY2VOYW1lXG4gICAgICAgID8gb2YocmVzb3VyY2VOYW1lKVxuICAgICAgICA6IGxpc3QucmF3UmVzcG9uc2UkLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzID0+IHJlcz8ua2luZC5zbGljZSgwLCAtNCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgKSxcbiAgICApLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb2x1bW5EZWZzJCA9IHRoaXMuY29sdW1ucyQucGlwZShcbiAgICBtYXAoXG4gICAgICBjb2x1bW5zID0+XG4gICAgICAgIChjb2x1bW5zIHx8IFtdKS5tYXAoY29sdW1uID0+IHtcbiAgICAgICAgICBjb2x1bW4gPSBpc1N0cmluZyhjb2x1bW4pID8geyBuYW1lOiBjb2x1bW4gfSA6IGNvbHVtbjtcbiAgICAgICAgICBpZiAoISgncGF0aCcgaW4gY29sdW1uKSAmJiAhS05PV05fQ09MVU1OUy5oYXMoY29sdW1uLm5hbWUpKSB7XG4gICAgICAgICAgICBjb2x1bW4ucGF0aCA9IGNvbHVtbi5uYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm5vcm1hbGl6ZUNvbHVtbkRlZlNvcnQoY29sdW1uKTtcbiAgICAgICAgICB0aGlzLm5vcm1hbGl6ZUNvbHVtbkRlZlRyYW5zbGF0ZShjb2x1bW4pO1xuICAgICAgICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZUFjdGlvbkNvbHVtbkRlZihjb2x1bW4pO1xuICAgICAgICB9KSBhcyBUYWJsZUNvbHVtbkRlZnM8SXRlbSwgQ29udGV4dD4sXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgY29sdW1uTmFtZXMkID0gdGhpcy5jb2x1bW5EZWZzJC5waXBlKFxuICAgIG1hcChjb2x1bW5zID0+IGNvbHVtbnMubWFwKGNvbHVtbiA9PiBjb2x1bW4ubmFtZSkpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBhY3RpdmVTb3J0JCQgPSBuZXcgUmVwbGF5U3ViamVjdDxTb3J0PigxKTtcblxuICBhY3RpdmVTb3J0JDogT2JzZXJ2YWJsZTxTb3J0PiA9IG1lcmdlKFxuICAgIHRoaXMuYWN0aXZlU29ydCQkLFxuICAgIHRoaXMuY29sdW1uRGVmcyQucGlwZShcbiAgICAgIG1hcChjb2x1bW5EZWZzID0+IHtcbiAgICAgICAgY29uc3QgY29sdW1uRGVmID0gY29sdW1uRGVmcy5maW5kKGNvbHVtbiA9PiBjb2x1bW4uc29ydD8uYWN0aXZlKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbkRlZlxuICAgICAgICAgID8geyBhY3RpdmU6IGNvbHVtbkRlZi5uYW1lLCBkaXJlY3Rpb246IGNvbHVtbkRlZi5zb3J0LmRpcmVjdGlvbiB9XG4gICAgICAgICAgOiBudWxsO1xuICAgICAgfSksXG4gICAgKSxcbiAgKS5waXBlKHB1Ymxpc2hSZWYoKSk7XG5cbiAgZmlsdGVyZWRJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmxpc3QkLCB0aGlzLmZpbmFsRGF0YVNvdXJjZSRdKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChbbGlzdCwgZGF0YVNvdXJjZV0pID0+IChsaXN0ID8gbGlzdC5pdGVtcyQgOiBvZihkYXRhU291cmNlKSkpLFxuICAgICksXG4gICAgdGhpcy5jb2x1bW5EZWZzJCxcbiAgICB0aGlzLmFjdGl2ZVNvcnQkLFxuICAgIHRoaXMuZmlsdGVyUGFyYW1zJCxcbiAgICB0aGlzLmZpbHRlckZuJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW1xuICAgICAgICBpdGVtcyxcbiAgICAgICAgY29sdW1uRGVmcyxcbiAgICAgICAgYWN0aXZlU29ydCxcbiAgICAgICAgZmlsdGVyUGFyYW1zLFxuICAgICAgICBmaWx0ZXJGbiA9IHRoaXMudXRpbC5kZWZhdWx0RmlsdGVyRm4sXG4gICAgICBdKSA9PlxuICAgICAgICBmaWx0ZXJGbi5jYWxsKFxuICAgICAgICAgIHRoaXMuZmluYWxDb250ZXh0LFxuICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgIGNvbHVtbkRlZnMsXG4gICAgICAgICAgYWN0aXZlU29ydCxcbiAgICAgICAgICBmaWx0ZXJQYXJhbXMsXG4gICAgICAgICAgdGhpcy5maW5hbENvbnRleHQsXG4gICAgICAgICksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcGFnZWRJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLFxuICAgIHRoaXMuY3VycmVudFBhZ2UkLFxuICAgIHRoaXMucGFnZVNpemUkLFxuICBdKS5waXBlKFxuICAgIHRhcCgoW2l0ZW1zLCBfLCBwYWdlU2l6ZV0pID0+IHtcbiAgICAgIGlmICh0aGlzLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID1cbiAgICAgICAgICBpdGVtcy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgID8geyB0b3RhbDogMCwgcGFnZXM6IDAgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgdG90YWw6IGl0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICBwYWdlczogTWF0aC5jZWlsKGl0ZW1zLmxlbmd0aCAvIHBhZ2VTaXplKSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBtYXAoKFtpdGVtcywgY3VycmVudFBhZ2UsIHBhZ2VTaXplXSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbi5wYWdlcyA8IGN1cnJlbnRQYWdlICYmIHRoaXMucGFnaW5hdGlvbi5wYWdlcyAhPT0gMCkge1xuICAgICAgICBjdXJyZW50UGFnZSA9IHRoaXMucGFnaW5hdGlvbi5wYWdlcztcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSQubmV4dChjdXJyZW50UGFnZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBiZWdpbiA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemU7XG4gICAgICByZXR1cm4gaXRlbXMuc2xpY2UoYmVnaW4sIGJlZ2luICsgcGFnZVNpemUpO1xuICAgIH0pLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBnZXQgaXNMaXN0UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZS5yb3V0ZUNvbmZpZz8ucGF0aCA9PT0gJ2xpc3QnO1xuICB9XG5cbiAgaXNMaXN0UGFnZSQgPSB0aGlzLnJvdXRlLnVybC5waXBlKFxuICAgIG1hcCgoKSA9PiB0aGlzLmlzTGlzdFBhZ2UpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBpc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjtcbiAgaXNLOHNSZXNvdXJjZSA9IGlzSzhzUmVzb3VyY2U7XG4gIGlzRmllbGROb3RBdmFpbGFibGUgPSBpc0ZpZWxkTm90QXZhaWxhYmxlO1xuXG4gIGdldFZhbHVlRnJvbVBhdGggPSB0aGlzLnV0aWwuZ2V0VmFsdWVGcm9tUGF0aDtcbiAgdHJhY2tCeU5hbWUoXzogbnVtYmVyLCBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uRGVmPEl0ZW0sIENvbnRleHQ+KSB7XG4gICAgcmV0dXJuIGNvbHVtbkRlZi5uYW1lO1xuICB9XG5cbiAgTkFNRSA9IE5BTUU7XG4gIENSRUFUT1IgPSBDUkVBVE9SO1xuICBDUkVBVEVEX0FUID0gQ1JFQVRFRF9BVDtcbiAgQUNUSU9OID0gQUNUSU9OO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHVibGljIHJlYWRvbmx5IHV0aWw6IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4gICkge1xuICAgIHRoaXMuZ2V0Q29sdW1uVGVtcGxhdGUgPSB0aGlzLmdldENvbHVtblRlbXBsYXRlLmJpbmQodGhpcyk7XG4gIH1cblxuICBub3JtYWxpemVDb2x1bW5EZWZUcmFuc2xhdGUoY29sdW1uOiBUYWJsZUNvbHVtbkRlZjxJdGVtLCBDb250ZXh0Pikge1xuICAgIGNvbnN0IHsgdHJhbnNsYXRlIH0gPSBjb2x1bW47XG4gICAgaWYgKHRyYW5zbGF0ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gY29sdW1uO1xuICAgIH1cbiAgICBpZiAodHJhbnNsYXRlID09PSB0cnVlKSB7XG4gICAgICBjb2x1bW4udHJhbnNsYXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGlzU3RyaW5nKHRyYW5zbGF0ZSkpIHtcbiAgICAgIGNvbHVtbi50cmFuc2xhdGUgPSAodmFsdWU6IHN0cmluZyB8IG51bWJlcikgPT4gdHJhbnNsYXRlICsgdmFsdWU7XG4gICAgfSBlbHNlIGlmIChpc09iamVjdExpa2UodHJhbnNsYXRlKSkge1xuICAgICAgY29sdW1uLnRyYW5zbGF0ZSA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSA9PiBnZXQodHJhbnNsYXRlLCB2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBjb2x1bW47XG4gIH1cblxuICBub3JtYWxpemVDb2x1bW5EZWZTb3J0KGNvbHVtbjogVGFibGVDb2x1bW5EZWY8SXRlbSwgQ29udGV4dD4pIHtcbiAgICBjb25zdCB7IHNvcnQgfSA9IGNvbHVtbjtcbiAgICBpZiAoc29ydCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gY29sdW1uO1xuICAgIH1cbiAgICBpZiAoc29ydCA9PT0gdHJ1ZSkge1xuICAgICAgY29sdW1uLnNvcnQgPSB7XG4gICAgICAgIGRpcmVjdGlvbjogJ2FzYycsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcoc29ydCkpIHtcbiAgICAgIGNvbHVtbi5zb3J0ID0ge1xuICAgICAgICBkaXJlY3Rpb246IHNvcnQsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoaXNGdW5jdGlvbihzb3J0KSkge1xuICAgICAgY29sdW1uLnNvcnQgPSB7XG4gICAgICAgIGRpcmVjdGlvbjogJ2FzYycsXG4gICAgICAgIGhhbmRsZXI6IHNvcnQsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoc29ydC5kaXJlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgc29ydC5kaXJlY3Rpb24gPSAnYXNjJztcbiAgICB9XG4gICAgcmV0dXJuIGNvbHVtbjtcbiAgfVxuXG4gIG9uU29ydENoYW5nZSgkZXZlbnQ6IFNvcnQpIHtcbiAgICB0aGlzLnNvcnRDaGFuZ2UubmV4dCgkZXZlbnQpO1xuICAgIHRoaXMuYWN0aXZlU29ydCQkLm5leHQoJGV2ZW50KTtcbiAgfVxuXG4gIG5vcm1hbGl6ZUFjdGlvbkNvbHVtbkRlZihcbiAgICBjb2x1bW46IFRhYmxlQ29sdW1uRGVmPEl0ZW0sIENvbnRleHQ+LFxuICApOiBOb3JtYWxpemVkVGFibGVDb2x1bW5EZWY8SXRlbSwgQ29udGV4dD4ge1xuICAgIGlmIChjb2x1bW4ubmFtZSAhPT0gQUNUSU9OIHx8ICFjb2x1bW4uZXh0cmEpIHtcbiAgICAgIHJldHVybiBjb2x1bW4gYXMgTm9ybWFsaXplZFRhYmxlQ29sdW1uRGVmPEl0ZW0sIENvbnRleHQ+O1xuICAgIH1cblxuICAgIGNvbnN0IGV4dHJhID0gY29sdW1uLmV4dHJhIGFzIFRhYmxlQ29sdW1uQWN0aW9uRXh0cmE8SXRlbSwgQ29udGV4dD47XG4gICAgKFtLOHNSZXNvdXJjZUFjdGlvbi5ERUxFVEUsIEs4c1Jlc291cmNlQWN0aW9uLlVQREFURV0gYXMgY29uc3QpLmZvckVhY2goXG4gICAgICBhY3Rpb24gPT4ge1xuICAgICAgICBpZiAoIWV4dHJhW2FjdGlvbl0pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGhhbmRsZXIgPSAoXG4gICAgICAgICAgZXh0cmFbYWN0aW9uXSBhcyBUYWJsZUNvbHVtbkFjdGlvbkV4dHJhSXRlbTxJdGVtLCBDb250ZXh0PlxuICAgICAgICApLmRpc2FibGVkO1xuICAgICAgICBpZiAoaGFuZGxlciA9PSBudWxsKSB7XG4gICAgICAgICAgaGFuZGxlciA9IG5vb3AgYXMgVGFibGVDb2x1bW5BY3Rpb25EaXNhYmxlZEhhbmRsZXI8SXRlbSwgQ29udGV4dD47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24oaGFuZGxlcikpIHtcbiAgICAgICAgICAoXG4gICAgICAgICAgICBleHRyYVthY3Rpb25dIGFzIFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPEl0ZW0sIENvbnRleHQ+XG4gICAgICAgICAgKS5kaXNhYmxlZCA9IHsgaGFuZGxlciB9O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gICAgcmV0dXJuIGNvbHVtbiBhcyBOb3JtYWxpemVkVGFibGVDb2x1bW5EZWY8SXRlbSwgQ29udGV4dD47XG4gIH1cblxuICBnZXRDb2x1bW5UZW1wbGF0ZShjb2x1bW46IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnRhYmxlQ2VsbERlZnMuZmluZChkZWYgPT4gZGVmLmFjbFRhYmxlQ2VsbERlZiA9PT0gY29sdW1uKVxuICAgICAgPy50ZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBJdGVtKSB7XG4gICAgcmV0dXJuIGlzSzhzUmVzb3VyY2UoaXRlbSlcbiAgICAgID8gdHJhY2tCeVVpZChpbmRleCwgaXRlbSlcbiAgICAgIDogZ2V0KGl0ZW0sIE5BTUUsIGluZGV4KTtcbiAgfVxuXG4gIG9uVXBkYXRlKGRhdGE6IEl0ZW0sIGNvbHVtbkRlZjogVGFibGVDb2x1bW5EZWY8SXRlbSwgQ29udGV4dD4pIHtcbiAgICB0aGlzLnVwZGF0ZS5lbWl0KGRhdGEpO1xuXG4gICAgaWYgKGdldChjb2x1bW5EZWYuZXh0cmEsIFtVUERBVEUsIExJTktdKSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxuICAgICAgICBbXG4gICAgICAgICAgdGhpcy5pc0xpc3RQYWdlID8gJy4uJyA6ICcuJyxcbiAgICAgICAgICBVUERBVEUsXG4gICAgICAgICAgdGhpcy5nZXRWYWx1ZUZyb21QYXRoKGRhdGEsIE5BTUUpLFxuICAgICAgICBdLFxuICAgICAgICB7XG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VmFsdWU8VCwgRiBleHRlbmRzICguLi5hcmdzOiB1bmtub3duW10pID0+IFQ+KFxuICAgIGZ1bmN0aW9uT3JWYWx1ZTogVCB8IEYsXG4gICAgLi4uYXJnczogUGFyYW1ldGVyczxGPlxuICApOiBUIHtcbiAgICByZXR1cm4gaXNGdW5jdGlvbihmdW5jdGlvbk9yVmFsdWUpXG4gICAgICA/IGZ1bmN0aW9uT3JWYWx1ZS5jYWxsKGxhc3QoYXJncyksIC4uLmFyZ3MpXG4gICAgICA6IGZ1bmN0aW9uT3JWYWx1ZTtcbiAgfVxufVxuIiwiPGF1aS10YWJsZVxuICBhdWlTb3J0XG4gIFthY3RpdmVdPVwiKGFjdGl2ZVNvcnQkIHwgYXN5bmMpPy5hY3RpdmVcIlxuICBbZGlyZWN0aW9uXT1cIihhY3RpdmVTb3J0JCB8IGFzeW5jKT8uZGlyZWN0aW9uXCJcbiAgW2RhdGFTb3VyY2VdPVwicGFnZWRJdGVtcyRcIlxuICBbdHJhY2tCeV09XCJ0cmFja0J5XCJcbiAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxuICBbYXVpVGFibGVTY3JvbGxhYmxlXT1cIiEhc3RpY2t5XCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0Zvcj1cImxldCBjb2x1bW5EZWYgb2YgY29sdW1uRGVmcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeU5hbWVcIlxuICAgIFthdWlUYWJsZUNvbHVtbkRlZl09XCJjb2x1bW5EZWYubmFtZVwiXG4gICAgW3N0aWNreV09XCJjb2x1bW5EZWYuc3RpY2t5XCJcbiAgICBbc3RpY2t5RW5kXT1cImNvbHVtbkRlZi5zdGlja3lFbmRcIlxuICA+XG4gICAgPGF1aS10YWJsZS1oZWFkZXItY2VsbFxuICAgICAgKmF1aVRhYmxlSGVhZGVyQ2VsbERlZlxuICAgICAgW3N0eWxlXT1cImNvbHVtbkRlZi5zdHlsZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbkRlZi5uYW1lICE9PSBBQ1RJT05cIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cImNvbHVtbkRlZi5zb3J0XCJcbiAgICAgICAgICBhdWktc29ydC1oZWFkZXJcbiAgICAgICAgICBbc3RhcnRdPVwiY29sdW1uRGVmLnNvcnQuZGlyZWN0aW9uXCJcbiAgICAgICAgICA+e3sgY29sdW1uRGVmLmxhYmVsIHx8IGNvbHVtbkRlZi5uYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhY29sdW1uRGVmLnNvcnRcIj57e1xuICAgICAgICAgIGNvbHVtbkRlZi5sYWJlbCB8fCBjb2x1bW5EZWYubmFtZSB8IHRyYW5zbGF0ZVxuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYXVpLXRhYmxlLWhlYWRlci1jZWxsPlxuXG4gICAgPGF1aS10YWJsZS1jZWxsXG4gICAgICAqYXVpVGFibGVDZWxsRGVmPVwiXG4gICAgICAgIGxldCBkYXRhO1xuICAgICAgICBsZXQgaW5kZXggPSBpbmRleDtcbiAgICAgICAgbGV0IGV2ZW4gPSBldmVuO1xuICAgICAgICBsZXQgb2RkID0gb2RkO1xuICAgICAgICBsZXQgbGFzdCA9IGxhc3RcbiAgICAgIFwiXG4gICAgICBbZGlyZWN0aW9uXT1cImNvbHVtbkRlZi5kaXJlY3Rpb25cIlxuICAgICAgW25nQ2xhc3NdPVwiY29sdW1uRGVmLmNsYXNzXCJcbiAgICAgIFtzdHlsZV09XCJjb2x1bW5EZWYuc3R5bGVcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBjb2x1bW5EZWYubmFtZSB8IHB1cmU6IGdldENvbHVtblRlbXBsYXRlIGFzIHRlbXBsYXRlO1xuICAgICAgICAgIGVsc2UgdGFibGVDZWxsRGVmVHBsXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgdGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICRpbXBsaWNpdDogZGF0YSxcbiAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICBldmVuOiBldmVuLFxuICAgICAgICAgICAgICBvZGQ6IG9kZCxcbiAgICAgICAgICAgICAgbGFzdDogbGFzdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICN0YWJsZUNlbGxEZWZUcGw+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgY29sdW1uRGVmLnBhdGggIT0gbnVsbCAmJlxuICAgICAgICAgICAgICAoZGF0YVxuICAgICAgICAgICAgICAgIHwgcHVyZVxuICAgICAgICAgICAgICAgICAgOiBnZXRWYWx1ZUZyb21QYXRoXG4gICAgICAgICAgICAgICAgICA6IGNvbHVtbkRlZi5uYW1lXG4gICAgICAgICAgICAgICAgICA6IGNvbHVtbkRlZi5wYXRoKSBhcyB2YWx1ZTtcbiAgICAgICAgICAgIGVsc2UgZGVmYXVsdFRhYmxlQ2VsbFRwbFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICB0YWJsZUNlbGxDb250ZW50O1xuICAgICAgICAgICAgICBjb250ZXh0OiB7IGNvbHVtbkRlZjogY29sdW1uRGVmLCB2YWx1ZTogdmFsdWUgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRhYmxlQ2VsbFRwbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBkZWZhdWx0VGFibGVDZWxsO1xuICAgICAgICAgICAgY29udGV4dDogeyBkYXRhOiBkYXRhLCBjb2x1bW5EZWY6IGNvbHVtbkRlZiB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2F1aS10YWJsZS1jZWxsPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8YXVpLXRhYmxlLWhlYWRlci1yb3dcbiAgICAqYXVpVGFibGVIZWFkZXJSb3dEZWY9XCJjb2x1bW5OYW1lcyQgfCBhc3luYzsgc3RpY2t5OiAhIXN0aWNreVwiXG4gID48L2F1aS10YWJsZS1oZWFkZXItcm93PlxuICA8YXVpLXRhYmxlLXJvd1xuICAgICphdWlUYWJsZVJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGNvbHVtbk5hbWVzJCB8IGFzeW5jXCJcbiAgPjwvYXVpLXRhYmxlLXJvdz5cblxuICA8bmctY29udGFpbmVyICphdWlUYWJsZVBsYWNlaG9sZGVyRGVmPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0XCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgIShwYWdlZEl0ZW1zJCB8IGFzeW5jKT8ubGVuZ3RoICYmIChsaXN0Lml0ZW1zJCB8IGFzeW5jKT8ubGVuZ3RoO1xuICAgICAgICAgIGVsc2UgbGlzdEZvb3RlclxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cImVtcHR5LXBsYWNlaG9sZGVyXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwiZmluYWxSZXNvdXJjZU5hbWUkIHwgYXN5bmMgYXMgZmluYWxSZXNvdXJjZU5hbWU7IGVsc2Ugbm9EYXRhXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICAnbm9fbmFtZWRfZGF0YV9oaW50J1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOlxuICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZVRyYW5zbGF0ZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAoZmluYWxSZXNvdXJjZU5hbWUgfCB0cmFuc2xhdGU6IG51bGw6dHJ1ZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNsaXN0Rm9vdGVyPlxuICAgICAgICA8YWNsLWs4cy1yZXNvdXJjZS1saXN0LWZvb3RlclxuICAgICAgICAgIFtsaXN0XT1cImxpc3RcIlxuICAgICAgICAgIFtyZXNvdXJjZU5hbWVdPVwiZmluYWxSZXNvdXJjZU5hbWUkIHwgYXN5bmNcIlxuICAgICAgICAgIFtyZXNvdXJjZU5hbWVUcmFuc2xhdGVkXT1cInJlc291cmNlTmFtZVRyYW5zbGF0ZWRcIlxuICAgICAgICA+PC9hY2wtazhzLXJlc291cmNlLWxpc3QtZm9vdGVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiFsaXN0ICYmICEocGFnZWRJdGVtcyQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgICBjbGFzcz1cImVtcHR5LXBsYWNlaG9sZGVyXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmluYWxEYXRhU291cmNlJCB8IGFzeW5jOyBlbHNlIGxvYWRpbmdcIj5cbiAgICAgICAge3tcbiAgICAgICAgICBub0RhdGFIaW50IHx8XG4gICAgICAgICAgICAoJ25vX25hbWVkX2RhdGFfaGludCdcbiAgICAgICAgICAgICAgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTpcbiAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZU5hbWVUcmFuc2xhdGVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgKHJlc291cmNlTmFtZSB8IHRyYW5zbGF0ZTogbnVsbDp0cnVlKVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICBjbGFzcz1cImFjbC1sb2FkaW5nLW1hc2tfX2ljb25cIlxuICAgICAgICAgIHNpemU9XCIxNnB4XCJcbiAgICAgICAgICBpY29uPVwic3Bpbm5lclwiXG4gICAgICAgID48L2F1aS1pY29uPlxuICAgICAgICB7eyAnbG9hZGluZ19wbGVhc2Vfd2FpdCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9hdWktdGFibGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJlbmFibGVQYWdpbmF0aW9uXCI+XG4gIDxhdWktcGFnaW5hdG9yXG4gICAgW2xheW91dF09XCJwYWdpbmF0aW9uTGF5b3V0XCJcbiAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2UkIHwgYXN5bmNcIlxuICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZSQgfCBhc3luY1wiXG4gICAgW3RvdGFsXT1cInBhZ2luYXRpb24udG90YWxcIlxuICAgIChjdXJyZW50UGFnZUNoYW5nZSk9XCJjdXJyZW50UGFnZSQubmV4dCgkZXZlbnQpXCJcbiAgICAocGFnZVNpemVDaGFuZ2UpPVwicGFnZVNpemUkLm5leHQoJGV2ZW50KVwiXG4gICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxuICA+PC9hdWktcGFnaW5hdG9yPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGVmYXVsdFRhYmxlQ2VsbFxuICBsZXQtZGF0YT1cImRhdGFcIlxuICBsZXQtY29sdW1uRGVmPVwiY29sdW1uRGVmXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29sdW1uRGVmLm5hbWVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJOQU1FXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiZGF0YSB8IHB1cmU6IGdldFZhbHVlRnJvbVBhdGg6Y29sdW1uRGVmLm5hbWUgYXMgbmFtZVwiXG4gICAgICAgIGNsYXNzPVwiYXVpLXRhYmxlX19jZWxsX19uYW1lXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBjb2x1bW5EZWYuZXh0cmE/LmxpbmsgIT09IGZhbHNlICYmICEoZGF0YSB8IGFjbElzRGVsZXRpbmcpO1xuICAgICAgICAgICAgZWxzZSBwbGFpbk5hbWVcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsoaXNMaXN0UGFnZSQgfCBhc3luYykgPyAnLi4nIDogJy4nLCAnZGV0YWlsJywgbmFtZV1cIlxuICAgICAgICAgICAgW2F1aVRvb2x0aXBdPVwibmFtZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgbmFtZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjcGxhaW5OYW1lPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBbYXVpVG9vbHRpcF09XCJuYW1lXCJcbiAgICAgICAgICAgIFtjbGFzcy5kZWxldGluZy10ZXh0XT1cImRhdGEgfCBhY2xJc0RlbGV0aW5nXCJcbiAgICAgICAgICAgID57eyBuYW1lIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8YWNsLWRlbGV0aW5nLXRhZ1xuICAgICAgICAgICpuZ0lmPVwiZGF0YSB8IHB1cmU6IGlzSzhzUmVzb3VyY2VcIlxuICAgICAgICAgIFtyZXNvdXJjZV09XCJkYXRhXCJcbiAgICAgICAgPjwvYWNsLWRlbGV0aW5nLXRhZz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIChkYXRhIHwgcHVyZTogaXNLOHNSZXNvdXJjZSlcbiAgICAgICAgICAgID8gKGRhdGEgfCBhY2xEaXNwbGF5TmFtZSlcbiAgICAgICAgICAgIDogZGF0YS5kaXNwbGF5TmFtZSBhcyBkaXNwbGF5TmFtZVxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cImF1aS10YWJsZV9fY2VsbF9fZGlzcGxheS1uYW1lXCJcbiAgICAgICAgW2NsYXNzLmRlbGV0aW5nLXRleHRdPVwiZGF0YSB8IGFjbElzRGVsZXRpbmdcIlxuICAgICAgPlxuICAgICAgICB7eyBkaXNwbGF5TmFtZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiQ1JFQVRFRF9BVFwiPlxuICAgICAgPGFjbC1yZWxhdGl2ZS10aW1lXG4gICAgICAgIFt0aW1lXT1cImRhdGEgfCBwdXJlOiBnZXRWYWx1ZUZyb21QYXRoOmNvbHVtbkRlZi5uYW1lXCJcbiAgICAgID48L2FjbC1yZWxhdGl2ZS10aW1lPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkFDVElPTlwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgIFthdWlEcm9wZG93bl09XCJtZW51XCJcbiAgICAgICAgW2F1aURyb3Bkb3duQ29udGV4dF09XCJ7ICRpbXBsaWNpdDogZGF0YSwgY29sdW1uRGVmOiBjb2x1bW5EZWYgfVwiXG4gICAgICA+XG4gICAgICAgIDxhdWktaWNvbiBpY29uPVwiZWxsaXBzaXNfdl9zXCI+PC9hdWktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBkYXRhIHwgcHVyZTogZ2V0VmFsdWVGcm9tUGF0aDpjb2x1bW5EZWYubmFtZSBhcyB2YWx1ZTtcbiAgICAgICAgICBlbHNlIGVtcHR5XG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgdGFibGVDZWxsQ29udGVudDtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgY29sdW1uRGVmOiBjb2x1bW5EZWYsIHZhbHVlOiB2YWx1ZSB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICN0YWJsZUNlbGxDb250ZW50XG4gIGxldC1jb2x1bW5EZWY9XCJjb2x1bW5EZWZcIlxuICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgY29sdW1uRGVmLnRyYW5zbGF0ZSA9PSBudWxsXG4gICAgICAgID8gdmFsdWVcbiAgICAgICAgOiBjb2x1bW5EZWYudHJhbnNsYXRlID09PSB0cnVlXG4gICAgICAgID8gKHZhbHVlIHwgdHJhbnNsYXRlKVxuICAgICAgICA6ICh2YWx1ZSB8IHB1cmU6IGNvbHVtbkRlZi50cmFuc2xhdGU6ZmluYWxDb250ZXh0IHwgdHJhbnNsYXRlKSBhcyB0ZXh0O1xuICAgICAgZWxzZSBlbXB0eVxuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImNvbHVtbkRlZi5lbGxpcHNpczsgZWxzZSBwbGFpblRleHRcIlxuICAgICAgY2xhc3M9XCJ0ZXh0LW92ZXJmbG93XCJcbiAgICAgIFthdWlUb29sdGlwXT1cInRleHRcIlxuICAgID5cbiAgICAgIHt7IHRleHQgfX1cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI3BsYWluVGV4dD57eyB0ZXh0IH19PC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI21lbnVcbiAgbGV0LWRhdGFcbiAgbGV0LWNvbHVtbkRlZj1cImNvbHVtbkRlZlwiXG4gID48YXVpLW1lbnU+XG4gICAgPGFjbC1kaXNhYmxlZC1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiY29sdW1uRGVmLmV4dHJhPy51cGRhdGUgIT09IGZhbHNlXCJcbiAgICAgIFtpc0FsbG93ZWRdPVwiIXBlcm1pc3Npb25zIHx8IHBlcm1pc3Npb25zLnVwZGF0ZVwiXG4gICAgICBbaXNEaXNhYmxlZF09XCJcbiAgICAgICAgKGNvbHVtbkRlZi5leHRyYT8udXBkYXRlPy5kaXNhYmxlZC5oYW5kbGVyIHwgcHVyZTogaXNGdW5jdGlvbikgJiZcbiAgICAgICAgKGRhdGEgfCBwdXJlOiBjb2x1bW5EZWYuZXh0cmEudXBkYXRlLmRpc2FibGVkLmhhbmRsZXI6ZmluYWxDb250ZXh0KVxuICAgICAgXCJcbiAgICAgIFt0b29sdGlwXT1cIlxuICAgICAgICBjb2x1bW5EZWYuZXh0cmE/LnVwZGF0ZT8uZGlzYWJsZWQudG9vbHRpcFxuICAgICAgICAgIHwgcHVyZTogZ2V0VmFsdWU6ZGF0YTpmaW5hbENvbnRleHRcbiAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJvblVwZGF0ZShkYXRhLCBjb2x1bW5EZWYpXCJcbiAgICA+XG4gICAgICA8YXVpLW1lbnUtaXRlbT57eyAndXBkYXRlJyB8IHRyYW5zbGF0ZSB9fTwvYXVpLW1lbnUtaXRlbT5cbiAgICA8L2FjbC1kaXNhYmxlZC1jb250YWluZXI+XG4gICAgPGFjbC1kaXNhYmxlZC1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiY29sdW1uRGVmLmV4dHJhPy5kZWxldGUgIT09IGZhbHNlXCJcbiAgICAgIFtpc0FsbG93ZWRdPVwiIXBlcm1pc3Npb25zIHx8IHBlcm1pc3Npb25zLmRlbGV0ZVwiXG4gICAgICBbaXNEaXNhYmxlZF09XCJcbiAgICAgICAgKGNvbHVtbkRlZi5leHRyYT8uZGVsZXRlPy5kaXNhYmxlZC5oYW5kbGVyIHwgcHVyZTogaXNGdW5jdGlvbikgJiZcbiAgICAgICAgKGRhdGEgfCBwdXJlOiBjb2x1bW5EZWYuZXh0cmEuZGVsZXRlLmRpc2FibGVkLmhhbmRsZXI6ZmluYWxDb250ZXh0KVxuICAgICAgXCJcbiAgICAgIFt0b29sdGlwXT1cIlxuICAgICAgICBjb2x1bW5EZWYuZXh0cmE/LmRlbGV0ZT8uZGlzYWJsZWQudG9vbHRpcFxuICAgICAgICAgIHwgcHVyZTogZ2V0VmFsdWU6ZGF0YTpmaW5hbENvbnRleHRcbiAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJkZWxldGUuZW1pdChkYXRhKVwiXG4gICAgPlxuICAgICAgPGF1aS1tZW51LWl0ZW0+e3sgJ2RlbGV0ZScgfCB0cmFuc2xhdGUgfX08L2F1aS1tZW51LWl0ZW0+XG4gICAgPC9hY2wtZGlzYWJsZWQtY29udGFpbmVyPlxuICA8L2F1aS1tZW51PjwvbmctdGVtcGxhdGVcbj5cblxuPG5nLXRlbXBsYXRlICNlbXB0eT57eyBudWxsIHwgYWNsRmllbGROb3RBdmFpbGFibGUgfX08L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI25vRGF0YT57eyAnbm9fZGF0YScgfCB0cmFuc2xhdGUgfX08L25nLXRlbXBsYXRlPlxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdGFibGUvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvcnQsIFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYWxhdWRhL3VpJztcblxuaW1wb3J0IHsgTGl0ZXJhbFVuaW9uLCBLdWJlcm5ldGVzUmVzb3VyY2UgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRpb24sIFRyYW5zbGF0aW9uVmFsdWUgfSBmcm9tICcuLi90cmFuc2xhdGUvdHlwZXMnO1xuXG5pbXBvcnQgeyBUYWJsZVV0aWxTZXJ2aWNlIH0gZnJvbSAnLi91dGlsLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24gPSBFeGNsdWRlPFNvcnREaXJlY3Rpb24sICcnPjtcblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5Tb3J0SGFuZGxlcjxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4gIFZhbHVlID0gc3RyaW5nIHwgbnVtYmVyLFxuPiA9ICh0aGlzOiBDb250ZXh0LCBhOiBWYWx1ZSwgYjogVmFsdWUpID0+IG51bWJlcjtcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtblNvcnQ8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuICBWYWx1ZSA9IHN0cmluZyB8IG51bWJlcixcbj4ge1xuICBkaXJlY3Rpb24/OiBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb247XG4gIGFjdGl2ZT86IHRydWU7XG4gIGhhbmRsZXI/OiBUYWJsZUNvbHVtblNvcnRIYW5kbGVyPEl0ZW0sIENvbnRleHQsIFZhbHVlPjtcbn1cblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5EZWZQYXRoPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0LFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbj4gPVxuICB8IHN0cmluZ1xuICB8IG51bWJlclxuICB8IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyPlxuICB8ICgodGhpczogQ29udGV4dCwgaXRlbTogSXRlbSkgPT4gc3RyaW5nIHwgbnVtYmVyKTtcblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5UcmFuc2xhdGVIYW5kbGVyPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0LFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbiAgVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIsXG4+ID0gKHZhbHVlOiBWYWx1ZSwgY29udGV4dDogQ29udGV4dCkgPT4gVHJhbnNsYXRpb25WYWx1ZTtcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbkRlZjxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4gIEV4dHJhIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0LFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICBWYWx1ZSA9IHN0cmluZyB8IG51bWJlcixcbj4ge1xuICBsYWJlbD86IHN0cmluZztcbiAgbmFtZTogTmFtZTtcbiAgcGF0aD86IFRhYmxlQ29sdW1uRGVmUGF0aDxJdGVtLCBDb250ZXh0PjtcbiAgZGlyZWN0aW9uPzogJ2NvbHVtbicgfCAncm93JztcbiAgdHJhbnNsYXRlPzpcbiAgICB8IHN0cmluZ1xuICAgIHwgVHJhbnNsYXRpb25cbiAgICB8IFRhYmxlQ29sdW1uVHJhbnNsYXRlSGFuZGxlcjxJdGVtLCBDb250ZXh0LCBWYWx1ZT5cbiAgICB8IHRydWU7XG4gIHNvcnQ/OlxuICAgIHwgVGFibGVDb2x1bW5Tb3J0RGlyZWN0aW9uXG4gICAgfCBUYWJsZUNvbHVtblNvcnRIYW5kbGVyPEl0ZW0sIENvbnRleHQ+XG4gICAgfCBUYWJsZUNvbHVtblNvcnQ8SXRlbSwgQ29udGV4dD5cbiAgICB8IHRydWU7XG4gIGZpbHRlcj8oXG4gICAgdGhpczogQ29udGV4dCxcbiAgICB2YWx1ZTogVmFsdWUsXG4gICAgZmlsdGVyVmFsdWU6IFZhbHVlLFxuICAgIGl0ZW06IEl0ZW0sXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICk6IGJvb2xlYW47XG4gIGVsbGlwc2lzPzogYm9vbGVhbjtcbiAgY2xhc3M/OiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgc3R5bGU/OiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+O1xuICBleHRyYT86IEV4dHJhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29sdW1uTmFtZUV4dHJhIHtcbiAgbGluazogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5BY3Rpb25EaXNhYmxlZEhhbmRsZXI8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuPiA9IChpdGVtOiBJdGVtLCB1dGlsOiBDb250ZXh0KSA9PiBib29sZWFuO1xuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5BY3Rpb25Ub29sdGlwSGFuZGxlcjxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4+ID0gKGl0ZW06IEl0ZW0sIHV0aWw6IENvbnRleHQpID0+IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbkFjdGlvbkNvbmZpZzxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4+IHtcbiAgaGFuZGxlcjogVGFibGVDb2x1bW5BY3Rpb25EaXNhYmxlZEhhbmRsZXI8SXRlbSwgQ29udGV4dD47XG4gIHRvb2x0aXA/OiBzdHJpbmcgfCBUYWJsZUNvbHVtbkFjdGlvblRvb2x0aXBIYW5kbGVyPEl0ZW0sIENvbnRleHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0LFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbj4ge1xuICBkaXNhYmxlZD86XG4gICAgfCBUYWJsZUNvbHVtbkFjdGlvbkRpc2FibGVkSGFuZGxlcjxJdGVtLCBDb250ZXh0PlxuICAgIHwgVGFibGVDb2x1bW5BY3Rpb25Db25maWc8SXRlbSwgQ29udGV4dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsaXplZFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0LFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbj4ge1xuICBkaXNhYmxlZDogVGFibGVDb2x1bW5BY3Rpb25Db25maWc8SXRlbSwgQ29udGV4dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb2x1bW5BY3Rpb25FeHRyYTxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4+IHtcbiAgdXBkYXRlPzpcbiAgICB8IChUYWJsZUNvbHVtbkFjdGlvbkV4dHJhSXRlbTxJdGVtLCBDb250ZXh0PiAmIHtcbiAgICAgICAgbGluaz86IGJvb2xlYW47XG4gICAgICB9KVxuICAgIHwgZmFsc2U7XG4gIGRlbGV0ZT86IFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPEl0ZW0sIENvbnRleHQ+IHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsaXplZFRhYmxlQ29sdW1uQWN0aW9uRXh0cmE8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuPiB7XG4gIHVwZGF0ZT86XG4gICAgfCAoTm9ybWFsaXplZFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPEl0ZW0sIENvbnRleHQ+ICYge1xuICAgICAgICBsaW5rPzogYm9vbGVhbjtcbiAgICAgIH0pXG4gICAgfCBmYWxzZTtcbiAgZGVsZXRlPzogTm9ybWFsaXplZFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPEl0ZW0sIENvbnRleHQ+IHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdEV4dHJhTWFwcGVyPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0LFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbj4ge1xuICBuYW1lOiBUYWJsZUNvbHVtbk5hbWVFeHRyYTtcbiAgYWN0aW9uOiBUYWJsZUNvbHVtbkFjdGlvbkV4dHJhPEl0ZW0sIENvbnRleHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vcm1hbGl6ZWREZWZhdWx0RXh0cmFNYXBwZXI8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuPiB7XG4gIG5hbWU6IFRhYmxlQ29sdW1uTmFtZUV4dHJhO1xuICBhY3Rpb246IE5vcm1hbGl6ZWRUYWJsZUNvbHVtbkFjdGlvbkV4dHJhPEl0ZW0sIENvbnRleHQ+O1xufVxuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkVGFibGVDb2x1bW5EZWY8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuICBFeHRyYSBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbj4gPSBUYWJsZUNvbHVtbkRlZjxJdGVtLCBDb250ZXh0LCBFeHRyYSwgTmFtZT4gJiB7XG4gIHNvcnQ/OiBUYWJsZUNvbHVtblNvcnQ8SXRlbT47XG4gIHRyYW5zbGF0ZT86IFRhYmxlQ29sdW1uVHJhbnNsYXRlSGFuZGxlcjxJdGVtLCBDb250ZXh0Pjtcbn07XG5cbmV4cG9ydCB0eXBlIFRhYmxlQ29sdW1uPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0ID0gS3ViZXJuZXRlc1Jlc291cmNlLFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbiAgRXh0cmEgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3QsXG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+ID0gc3RyaW5nIHwgVGFibGVDb2x1bW5EZWY8SXRlbSwgQ29udGV4dCwgRXh0cmEsIE5hbWU+O1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtbnM8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QgPSBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuICBFeHRlbmRFeHRyYU1hcHBlciBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcbiAgRXh0cmFNYXBwZXIgZXh0ZW5kcyBvYmplY3QgPSBEZWZhdWx0RXh0cmFNYXBwZXI8SXRlbSwgQ29udGV4dD4gJlxuICAgIEV4dGVuZEV4dHJhTWFwcGVyLFxuICBOYW1lIGV4dGVuZHMga2V5b2YgRXh0cmFNYXBwZXIgJiBzdHJpbmcgPSBrZXlvZiBFeHRyYU1hcHBlciAmIHN0cmluZyxcbj4gPSBSZWFkb25seUFycmF5PFxuICB8IExpdGVyYWxVbmlvbjxOYW1lLCBzdHJpbmc+XG4gIHwgVGFibGVDb2x1bW5EZWY8XG4gICAgICBJdGVtLFxuICAgICAgQ29udGV4dCxcbiAgICAgIEV4dHJhTWFwcGVyW05hbWVdICYgb2JqZWN0LFxuICAgICAgTGl0ZXJhbFVuaW9uPE5hbWUsIHN0cmluZz5cbiAgICA+XG4+O1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtbkRlZnM8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QgPSBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuICBFeHRlbmRFeHRyYU1hcHBlciBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcbiAgRXh0cmFNYXBwZXIgZXh0ZW5kcyBvYmplY3QgPSBOb3JtYWxpemVkRGVmYXVsdEV4dHJhTWFwcGVyPEl0ZW0sIENvbnRleHQ+ICZcbiAgICBFeHRlbmRFeHRyYU1hcHBlcixcbiAgTmFtZSBleHRlbmRzIGtleW9mIEV4dHJhTWFwcGVyICYgc3RyaW5nID0ga2V5b2YgRXh0cmFNYXBwZXIgJiBzdHJpbmcsXG4+ID0gQXJyYXk8XG4gIE5vcm1hbGl6ZWRUYWJsZUNvbHVtbkRlZjxcbiAgICBJdGVtLFxuICAgIENvbnRleHQsXG4gICAgRXh0cmFNYXBwZXJbTmFtZV0gJiBvYmplY3QsXG4gICAgTGl0ZXJhbFVuaW9uPE5hbWUsIHN0cmluZz5cbiAgPlxuPjtcblxuZXhwb3J0IHR5cGUgVGFibGVGaWx0ZXJGbjxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4+ID0gKFxuICB0aGlzOiBDb250ZXh0LFxuICBpdGVtczogSXRlbVtdLFxuICBjb2x1bW5EZWZzOiBBcnJheTxUYWJsZUNvbHVtbkRlZjxJdGVtLCBDb250ZXh0Pj4sXG4gIGFjdGl2ZVNvcnQ/OiBTb3J0LFxuICBmaWx0ZXJQYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgY29udGV4dD86IENvbnRleHQsXG4pID0+IEl0ZW1bXTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdGFibGUvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvcnQsIFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYWxhdWRhL3VpJztcblxuaW1wb3J0IHsgTGl0ZXJhbFVuaW9uLCBLdWJlcm5ldGVzUmVzb3VyY2UgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRpb24sIFRyYW5zbGF0aW9uVmFsdWUgfSBmcm9tICcuLi90cmFuc2xhdGUvdHlwZXMnO1xuXG5pbXBvcnQgeyBUYWJsZVV0aWxTZXJ2aWNlIH0gZnJvbSAnLi91dGlsLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24gPSBFeGNsdWRlPFNvcnREaXJlY3Rpb24sICcnPjtcblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5Tb3J0SGFuZGxlcjxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4gIFZhbHVlID0gc3RyaW5nIHwgbnVtYmVyLFxuPiA9ICh0aGlzOiBDb250ZXh0LCBhOiBWYWx1ZSwgYjogVmFsdWUpID0+IG51bWJlcjtcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtblNvcnQ8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuICBWYWx1ZSA9IHN0cmluZyB8IG51bWJlcixcbj4ge1xuICBkaXJlY3Rpb24/OiBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb247XG4gIGFjdGl2ZT86IHRydWU7XG4gIGhhbmRsZXI/OiBUYWJsZUNvbHVtblNvcnRIYW5kbGVyPEl0ZW0sIENvbnRleHQsIFZhbHVlPjtcbn1cblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5EZWZQYXRoPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0LFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbj4gPVxuICB8IHN0cmluZ1xuICB8IG51bWJlclxuICB8IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyPlxuICB8ICgodGhpczogQ29udGV4dCwgaXRlbTogSXRlbSkgPT4gc3RyaW5nIHwgbnVtYmVyKTtcblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5UcmFuc2xhdGVIYW5kbGVyPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0LFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbiAgVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIsXG4+ID0gKHZhbHVlOiBWYWx1ZSwgY29udGV4dDogQ29udGV4dCkgPT4gVHJhbnNsYXRpb25WYWx1ZTtcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbkRlZjxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4gIEV4dHJhIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0LFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICBWYWx1ZSA9IHN0cmluZyB8IG51bWJlcixcbj4ge1xuICBsYWJlbD86IHN0cmluZztcbiAgbmFtZTogTmFtZTtcbiAgcGF0aD86IFRhYmxlQ29sdW1uRGVmUGF0aDxJdGVtLCBDb250ZXh0PjtcbiAgZGlyZWN0aW9uPzogJ2NvbHVtbicgfCAncm93JztcbiAgdHJhbnNsYXRlPzpcbiAgICB8IHN0cmluZ1xuICAgIHwgVHJhbnNsYXRpb25cbiAgICB8IFRhYmxlQ29sdW1uVHJhbnNsYXRlSGFuZGxlcjxJdGVtLCBDb250ZXh0LCBWYWx1ZT5cbiAgICB8IHRydWU7XG4gIHNvcnQ/OlxuICAgIHwgVGFibGVDb2x1bW5Tb3J0RGlyZWN0aW9uXG4gICAgfCBUYWJsZUNvbHVtblNvcnRIYW5kbGVyPEl0ZW0sIENvbnRleHQ+XG4gICAgfCBUYWJsZUNvbHVtblNvcnQ8SXRlbSwgQ29udGV4dD5cbiAgICB8IHRydWU7XG4gIGZpbHRlcj8oXG4gICAgdGhpczogQ29udGV4dCxcbiAgICB2YWx1ZTogVmFsdWUsXG4gICAgZmlsdGVyVmFsdWU6IFZhbHVlLFxuICAgIGl0ZW06IEl0ZW0sXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICk6IGJvb2xlYW47XG4gIGVsbGlwc2lzPzogYm9vbGVhbjtcbiAgY2xhc3M/OiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgc3R5bGU/OiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+O1xuICBzdGlja3k/OiBib29sZWFuO1xuICBzdGlja3lFbmQ/OiBib29sZWFuO1xuICBleHRyYT86IEV4dHJhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29sdW1uTmFtZUV4dHJhIHtcbiAgbGluazogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5BY3Rpb25EaXNhYmxlZEhhbmRsZXI8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuPiA9IChpdGVtOiBJdGVtLCB1dGlsOiBDb250ZXh0KSA9PiBib29sZWFuO1xuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5BY3Rpb25Ub29sdGlwSGFuZGxlcjxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4+ID0gKGl0ZW06IEl0ZW0sIHV0aWw6IENvbnRleHQpID0+IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbkFjdGlvbkNvbmZpZzxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4+IHtcbiAgaGFuZGxlcjogVGFibGVDb2x1bW5BY3Rpb25EaXNhYmxlZEhhbmRsZXI8SXRlbSwgQ29udGV4dD47XG4gIHRvb2x0aXA/OiBzdHJpbmcgfCBUYWJsZUNvbHVtbkFjdGlvblRvb2x0aXBIYW5kbGVyPEl0ZW0sIENvbnRleHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0LFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbj4ge1xuICBkaXNhYmxlZD86XG4gICAgfCBUYWJsZUNvbHVtbkFjdGlvbkRpc2FibGVkSGFuZGxlcjxJdGVtLCBDb250ZXh0PlxuICAgIHwgVGFibGVDb2x1bW5BY3Rpb25Db25maWc8SXRlbSwgQ29udGV4dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsaXplZFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0LFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbj4ge1xuICBkaXNhYmxlZDogVGFibGVDb2x1bW5BY3Rpb25Db25maWc8SXRlbSwgQ29udGV4dD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb2x1bW5BY3Rpb25FeHRyYTxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4+IHtcbiAgdXBkYXRlPzpcbiAgICB8IChUYWJsZUNvbHVtbkFjdGlvbkV4dHJhSXRlbTxJdGVtLCBDb250ZXh0PiAmIHtcbiAgICAgICAgbGluaz86IGJvb2xlYW47XG4gICAgICB9KVxuICAgIHwgZmFsc2U7XG4gIGRlbGV0ZT86IFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPEl0ZW0sIENvbnRleHQ+IHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsaXplZFRhYmxlQ29sdW1uQWN0aW9uRXh0cmE8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuPiB7XG4gIHVwZGF0ZT86XG4gICAgfCAoTm9ybWFsaXplZFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPEl0ZW0sIENvbnRleHQ+ICYge1xuICAgICAgICBsaW5rPzogYm9vbGVhbjtcbiAgICAgIH0pXG4gICAgfCBmYWxzZTtcbiAgZGVsZXRlPzogTm9ybWFsaXplZFRhYmxlQ29sdW1uQWN0aW9uRXh0cmFJdGVtPEl0ZW0sIENvbnRleHQ+IHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdEV4dHJhTWFwcGVyPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0LFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbj4ge1xuICBuYW1lOiBUYWJsZUNvbHVtbk5hbWVFeHRyYTtcbiAgYWN0aW9uOiBUYWJsZUNvbHVtbkFjdGlvbkV4dHJhPEl0ZW0sIENvbnRleHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vcm1hbGl6ZWREZWZhdWx0RXh0cmFNYXBwZXI8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuPiB7XG4gIG5hbWU6IFRhYmxlQ29sdW1uTmFtZUV4dHJhO1xuICBhY3Rpb246IE5vcm1hbGl6ZWRUYWJsZUNvbHVtbkFjdGlvbkV4dHJhPEl0ZW0sIENvbnRleHQ+O1xufVxuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkVGFibGVDb2x1bW5EZWY8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuICBFeHRyYSBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbj4gPSBUYWJsZUNvbHVtbkRlZjxJdGVtLCBDb250ZXh0LCBFeHRyYSwgTmFtZT4gJiB7XG4gIHNvcnQ/OiBUYWJsZUNvbHVtblNvcnQ8SXRlbT47XG4gIHRyYW5zbGF0ZT86IFRhYmxlQ29sdW1uVHJhbnNsYXRlSGFuZGxlcjxJdGVtLCBDb250ZXh0Pjtcbn07XG5cbmV4cG9ydCB0eXBlIFRhYmxlQ29sdW1uPFxuICBJdGVtIGV4dGVuZHMgb2JqZWN0ID0gS3ViZXJuZXRlc1Jlc291cmNlLFxuICBDb250ZXh0ID0gVGFibGVVdGlsU2VydmljZTxJdGVtPixcbiAgRXh0cmEgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3QsXG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+ID0gc3RyaW5nIHwgVGFibGVDb2x1bW5EZWY8SXRlbSwgQ29udGV4dCwgRXh0cmEsIE5hbWU+O1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtbnM8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QgPSBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuICBFeHRlbmRFeHRyYU1hcHBlciBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcbiAgRXh0cmFNYXBwZXIgZXh0ZW5kcyBvYmplY3QgPSBEZWZhdWx0RXh0cmFNYXBwZXI8SXRlbSwgQ29udGV4dD4gJlxuICAgIEV4dGVuZEV4dHJhTWFwcGVyLFxuICBOYW1lIGV4dGVuZHMga2V5b2YgRXh0cmFNYXBwZXIgJiBzdHJpbmcgPSBrZXlvZiBFeHRyYU1hcHBlciAmIHN0cmluZyxcbj4gPSBSZWFkb25seUFycmF5PFxuICB8IExpdGVyYWxVbmlvbjxOYW1lLCBzdHJpbmc+XG4gIHwgVGFibGVDb2x1bW5EZWY8XG4gICAgICBJdGVtLFxuICAgICAgQ29udGV4dCxcbiAgICAgIEV4dHJhTWFwcGVyW05hbWVdICYgb2JqZWN0LFxuICAgICAgTGl0ZXJhbFVuaW9uPE5hbWUsIHN0cmluZz5cbiAgICA+XG4+O1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtbkRlZnM8XG4gIEl0ZW0gZXh0ZW5kcyBvYmplY3QgPSBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIENvbnRleHQgPSBUYWJsZVV0aWxTZXJ2aWNlPEl0ZW0+LFxuICBFeHRlbmRFeHRyYU1hcHBlciBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcbiAgRXh0cmFNYXBwZXIgZXh0ZW5kcyBvYmplY3QgPSBOb3JtYWxpemVkRGVmYXVsdEV4dHJhTWFwcGVyPEl0ZW0sIENvbnRleHQ+ICZcbiAgICBFeHRlbmRFeHRyYU1hcHBlcixcbiAgTmFtZSBleHRlbmRzIGtleW9mIEV4dHJhTWFwcGVyICYgc3RyaW5nID0ga2V5b2YgRXh0cmFNYXBwZXIgJiBzdHJpbmcsXG4+ID0gQXJyYXk8XG4gIE5vcm1hbGl6ZWRUYWJsZUNvbHVtbkRlZjxcbiAgICBJdGVtLFxuICAgIENvbnRleHQsXG4gICAgRXh0cmFNYXBwZXJbTmFtZV0gJiBvYmplY3QsXG4gICAgTGl0ZXJhbFVuaW9uPE5hbWUsIHN0cmluZz5cbiAgPlxuPjtcblxuZXhwb3J0IHR5cGUgVGFibGVGaWx0ZXJGbjxcbiAgSXRlbSBleHRlbmRzIG9iamVjdCxcbiAgQ29udGV4dCA9IFRhYmxlVXRpbFNlcnZpY2U8SXRlbT4sXG4+ID0gKFxuICB0aGlzOiBDb250ZXh0LFxuICBpdGVtczogSXRlbVtdLFxuICBjb2x1bW5EZWZzOiBBcnJheTxUYWJsZUNvbHVtbkRlZjxJdGVtLCBDb250ZXh0Pj4sXG4gIGFjdGl2ZVNvcnQ/OiBTb3J0LFxuICBmaWx0ZXJQYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgY29udGV4dD86IENvbnRleHQsXG4pID0+IEl0ZW1bXTtcbiJdfQ==
@@ -21,6 +21,12 @@ export class TranslateService {
21
21
  get remoteLoaded() {
22
22
  return this._remoteLoaded;
23
23
  }
24
+ get locales() {
25
+ return this.options.locales;
26
+ }
27
+ get fallbackLocale() {
28
+ return this.options.fallbackLocale;
29
+ }
24
30
  constructor(http, baseHref, options, translationList) {
25
31
  this.http = http;
26
32
  this.baseHref = baseHref;
@@ -292,4 +298,4 @@ __decorate([
292
298
  type: Inject,
293
299
  args: [TRANSLATIONS]
294
300
  }] }]; }, { remoteLoaded$: [], locale$: [] }); })();
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBRVYsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQVUzRCxNQUFNLE9BQU8sZ0JBQWdCO0lB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Qjs7c0JBRXhCLFFBQVE7O3NCQUFJLE1BQU07dUJBQUMsWUFBWTt3QkFwQnpCLGFBQWEsTUFXYixPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdHJhbnNsYXRlXG4gKi9cblxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgaXNEZXZNb2RlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCwgaGVhZCwgaXNQbGFpbk9iamVjdCwgdGVtcGxhdGUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgRU1QVFksXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIGZvcmtKb2luLFxuICB0aHJvd0Vycm9yLFxuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhamF4IH0gZnJvbSAncnhqcy9hamF4JztcblxuaW1wb3J0IHsgQVBJX0dBVEVXQVksIFRFTVBMQVRFX09QVElPTlMgfSBmcm9tICcuLi9jb3JlL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgVE9LRU5fQkFTRV9IUkVGIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICcuLi9jb3JlL3V0aWxzL2NvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi9jb3JlL3V0aWxzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tICcuLi9jb3JlL3V0aWxzL3lhbWwnO1xuXG5pbXBvcnQge1xuICBGQUxMQkFDS19MQU5HVUFHRSxcbiAgTE9DQUxFX1BMQUNFSE9MREVSX1JFR0VYLFxuICBMT0NBTEVfU1RPUkFHRSxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVFJBTlNMQVRFX09QVElPTlMsIFRSQU5TTEFUSU9OUyB9IGZyb20gJy4vdG9rZW5zJztcbmltcG9ydCB7XG4gIFRyYW5zbGF0ZUtleSxcbiAgVHJhbnNsYXRlT3B0aW9ucyxcbiAgVHJhbnNsYXRpb24sXG4gIFRyYW5zbGF0aW9uVmFsdWUsXG4gIFRyYW5zbGF0aW9ucyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIF9yZW1vdGVMb2FkZWQ/OiBib29sZWFuO1xuXG4gIGdldCByZW1vdGVMb2FkZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbW90ZUxvYWRlZDtcbiAgfVxuXG4gIEBPYnNlcnZhYmxlSW5wdXQoJ19yZW1vdGVMb2FkZWQnKVxuICByZWFkb25seSByZW1vdGVMb2FkZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCB1bmRlZmluZWQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uc0xpc3Q6IEFycmF5PFJlYWRvbmx5PFRyYW5zbGF0aW9ucz4+O1xuICBwcml2YXRlIHJlbW90ZVRyYW5zbGF0aW9uc0xpc3Q6IEFycmF5PFJlYWRvbmx5PFRyYW5zbGF0aW9ucz4+O1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFRyYW5zbGF0ZU9wdGlvbnM7XG5cbiAgbG9jYWxlOiBzdHJpbmc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHJlYWRvbmx5IGxvY2FsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdChUT0tFTl9CQVNFX0hSRUYpXG4gICAgcHJpdmF0ZSByZWFkb25seSBiYXNlSHJlZjogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChUUkFOU0xBVEVfT1BUSU9OUylcbiAgICBvcHRpb25zOiBUcmFuc2xhdGVPcHRpb25zLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVFJBTlNMQVRJT05TKSB0cmFuc2xhdGlvbkxpc3Q6IFRyYW5zbGF0aW9uc1tdLFxuICApIHtcbiAgICB0aGlzLmxvY2FsZSA9IG9wdGlvbnM/LmxvY2FsZSB8fCBuYXZpZ2F0b3IubGFuZ3VhZ2U7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgbG9jYWxlczogW3RoaXMubG9jYWxlXSxcbiAgICAgIGZhbGxiYWNrTG9jYWxlOiBGQUxMQkFDS19MQU5HVUFHRSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIHRoaXMudHJhbnNsYXRpb25zTGlzdCA9IFtcbiAgICAgIG9wdGlvbnMudHJhbnNsYXRpb25zLFxuICAgICAgLi4uKHRyYW5zbGF0aW9uTGlzdCB8fCBbXSksXG4gICAgXS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAob3B0aW9ucy5yZW1vdGVVcmwpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMucmVtb3RlVXJsKSkge1xuICAgICAgICBvcHRpb25zLnJlbW90ZVVybC5mb3JFYWNoKHVybCA9PiB0aGlzLmFkZFJlbW90ZVRyYW5zbGF0aW9ucyh1cmwpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkUmVtb3RlVHJhbnNsYXRpb25zKG9wdGlvbnMucmVtb3RlVXJsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ga2V5IC0g57+76K+Ra2V5XG4gICAqIEBwYXJhbSBkYXRhIC0g5qC55o2u57+76K+R5LiK5LiL5paH5pWw5o2u6I635Y+W57+76K+R5YaF5a6577yM57+76K+R6aG55LiN5a2Y5Zyo55u05o6l6L+U5ZueIGtleSDmlofmnKxcbiAgICogQHBhcmFtIGlnbm9yZU5vbkV4aXN0IC0g5byA5Y+R546v5aKD5piv5ZCm5b+96KeG5LiN5a2Y5Zyo55qE57+76K+R6aG5XG4gICAqL1xuICBnZXQoa2V5OiBUcmFuc2xhdGVLZXksIGRhdGE/OiB1bmtub3duLCBpZ25vcmVOb25FeGlzdCA9IGZhbHNlKSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb24gPSB0aGlzLmdldFJhdyhrZXksIGlnbm9yZU5vbkV4aXN0KTtcbiAgICBpZiAoZGF0YSAhPSBudWxsICYmIHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgICAgZGF0YSA9IFtkYXRhXTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZSh0cmFuc2xhdGlvbiwgVEVNUExBVEVfT1BUSU9OUykoZGF0YSBhcyBvYmplY3QpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGVbaXNEZXZNb2RlKCkgPyAnZXJyb3InIDogJ3dhcm4nXShcbiAgICAgICAgYFRoZSB0cmFuc2xhdGlvbiBrZXkgJyR7a2V5fScgaXMgbWlzc2luZyB0aGUgbmVjZXNzYXJ5IHBhcmFtZXRlcnMuYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOebtOaOpei/lOWbnue/u+ivkeaWh+acrOaooeadv1xuICAgKiBAcGFyYW0ga2V5IC0g57+76K+Ra2V5XG4gICAqIEBwYXJhbSBpZ25vcmVOb25FeGlzdCAtIOW8gOWPkeeOr+Wig+aYr+WQpuW/veinhuS4jeWtmOWcqOeahOe/u+ivkemhuVxuICAgKi9cbiAgZ2V0UmF3KGtleTogVHJhbnNsYXRlS2V5LCBpZ25vcmVOb25FeGlzdCA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnXG4gICAgICA/IHRoaXMuX2dldChrZXksIGlnbm9yZU5vbkV4aXN0KVxuICAgICAgOiAodGhpcy5fZ2V0VmFsdWUoa2V5KSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIOagueaNriBgbG9jYWxlc2Ag5b6q546v5YiH5o2i5b2T5YmN5Yy65Z+f6K6+572uXG4gICAqL1xuICB0b2dnbGVMb2NhbGUoKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm9wdGlvbnMubG9jYWxlcy5pbmRleE9mKHRoaXMubG9jYWxlKTtcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYGxvY2FsZXNgIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCBjb3JyZWN0bHknKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV4dExvY2FsZSA9XG4gICAgICB0aGlzLm9wdGlvbnMubG9jYWxlc1tcbiAgICAgICAgaW5kZXggPT09IHRoaXMub3B0aW9ucy5sb2NhbGVzLmxlbmd0aCAtIDEgPyAwIDogaW5kZXggKyAxXG4gICAgICBdO1xuXG4gICAgaWYgKCFuZXh0TG9jYWxlIHx8IHRoaXMubG9jYWxlID09PSBuZXh0TG9jYWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRMb2NhbGUobmV4dExvY2FsZSk7XG4gIH1cblxuICBzZXRMb2NhbGUobG9jYWxlOiBzdHJpbmcpIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShMT0NBTEVfU1RPUkFHRSwgbG9jYWxlKTtcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmiYvliqjmt7vliqDor63oqIDljIVcbiAgICovXG4gIGFkZFRyYW5zbGF0aW9ucyh0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9ucykge1xuICAgIHRoaXMudHJhbnNsYXRpb25zTGlzdC51bnNoaWZ0KE9iamVjdC5mcmVlemUodHJhbnNsYXRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICog5omL5Yqo5re75Yqg6K+t6KiA5YyFXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eVxuICBhZGRSZW1vdGVUcmFuc2xhdGlvbnMocmVtb3RlVXJsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXJlbW90ZVVybCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9yZW1vdGVMb2FkZWQgPSBmYWxzZTtcbiAgICByZW1vdGVVcmwgPSBoZWFkKHJlbW90ZVVybC5zcGxpdCgvIy8pKTtcbiAgICBjb25zdCBpc0Fic29sdXRlID0gaXNBYnNvbHV0ZVVybChyZW1vdGVVcmwpO1xuICAgIGNvbnN0IGlzQXBpR2F0ZVdheVJlcXVlc3QgPSByZW1vdGVVcmwuc3RhcnRzV2l0aChBUElfR0FURVdBWSk7XG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICBsZXQgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gICAgICBpZiAoIWlzQWJzb2x1dGUgJiYgKCF0aGlzLmJhc2VIcmVmIHx8ICFpc0Fic29sdXRlVXJsKHRoaXMuYmFzZUhyZWYpKSkge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSAnYWJzb2x1dGUgYmFzZSBocmVmIGlzIHJlcXVpcmVkIGZvciByZWxhdGl2ZSByZW1vdGUgdXJsJztcbiAgICAgIH0gZWxzZSBpZiAocmVtb3RlVXJsLnNwbGl0KCc/JylbMF0uaW5jbHVkZXMoJy4vJykpIHtcbiAgICAgICAgZXJyb3JNZXNzYWdlID1cbiAgICAgICAgICAnZG8gbm90IHVzZSBhbnkgZG90IHdpdGggc2xhc2ggZm9yIHJlbGF0aXZlIHVybCB3aGljaCBzaG91bGQgYWx3YXlzIGJhc2UgZnJvbSBiYXNlIGhyZWYnO1xuICAgICAgfVxuICAgICAgaWYgKGVycm9yTWVzc2FnZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghaXNBYnNvbHV0ZSAmJiAhaXNBcGlHYXRlV2F5UmVxdWVzdCkge1xuICAgICAgcmVtb3RlVXJsID1cbiAgICAgICAgKHRoaXMuYmFzZUhyZWYuZW5kc1dpdGgoJy8nKSA/IHRoaXMuYmFzZUhyZWYgOiB0aGlzLmJhc2VIcmVmICsgJy8nKSArXG4gICAgICAgIHJlbW90ZVVybDtcbiAgICB9XG4gICAgKExPQ0FMRV9QTEFDRUhPTERFUl9SRUdFWC50ZXN0KHJlbW90ZVVybClcbiAgICAgID8gZm9ya0pvaW4oXG4gICAgICAgICAgdGhpcy5vcHRpb25zLmxvY2FsZXMubWFwKGxvY2FsZSA9PlxuICAgICAgICAgICAgdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCwgbG9jYWxlKS5waXBlKFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvb3NlKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBsb29zZUxvY2FsZSA9IHRoaXMuX2dldExvb3NlTG9jYWxlKGxvY2FsZSk7XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZSAhPT0gbG9vc2VMb2NhbGUgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMub3B0aW9ucy5sb2NhbGVzLmluY2x1ZGVzKGxvb3NlTG9jYWxlKVxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoVHJhbnNsYXRpb24ocmVtb3RlVXJsLCBsb29zZUxvY2FsZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Rldk1vZGUoKSA/IHRocm93RXJyb3IoKCkgPT4gZXJyb3IpIDogRU1QVFk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBmaWx0ZXIoaXNQbGFpbk9iamVjdCksXG4gICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAodHJhbnNsYXRpb246IFRyYW5zbGF0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV06IHRyYW5zbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgfSBhcyBUcmFuc2xhdGlvbnMpLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICApLnBpcGUobWFwKF8gPT4gXy5yZWR1Y2UoT2JqZWN0LmFzc2lnbikpKVxuICAgICAgOiB0aGlzLmZldGNoVHJhbnNsYXRpb24ocmVtb3RlVXJsKS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gKGlzRGV2TW9kZSgpID8gdGhyb3dFcnJvcigoKSA9PiBlcnJvcikgOiBFTVBUWSkpLFxuICAgICAgICApXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLl9yZW1vdGVMb2FkZWQgPSB0cnVlKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlbW90ZVRyYW5zbGF0aW9ucyA9PiB7XG4gICAgICAgIGlmICghcmVtb3RlVHJhbnNsYXRpb25zKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0KSB7XG4gICAgICAgICAgdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0ID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0LnVuc2hpZnQoT2JqZWN0LmZyZWV6ZShyZW1vdGVUcmFuc2xhdGlvbnMpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOS7jui/nOeoiyB1cmwg5qih5p2/5ZKM5Yy65Z+f6I635Y+W57+76K+R5YyFXG4gICAqL1xuICBmZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUcmFuc2xhdGlvbnM+O1xuICBmZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybDogc3RyaW5nLCBsb2NhbGU6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb24+O1xuICBmZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybDogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpIHtcbiAgICBpZiAoaXNEZXZNb2RlKCkgJiYgTE9DQUxFX1BMQUNFSE9MREVSX1JFR0VYLnRlc3QocmVtb3RlVXJsKSAmJiAhbG9jYWxlKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAnYGxvY2FsZWAgaXMgcmVxdWlyZWQgc2luZSB0aGUgcHJvdmlkZWQgcmVtb3RlIHVybCBjb250YWlucyBsb2NhbGUgcGxhY2Vob2xkZXInLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgaXNKU09OID0gcmVtb3RlVXJsLmVuZHNXaXRoKCcuanNvbicpO1xuICAgIGNvbnN0IGlzQXBpR2F0ZVdheVJlcXVlc3QgPSByZW1vdGVVcmwuc3RhcnRzV2l0aChBUElfR0FURVdBWSk7XG4gICAgY29uc3QgdXJsID0gbG9jYWxlXG4gICAgICA/IHJlbW90ZVVybC5yZXBsYWNlKExPQ0FMRV9QTEFDRUhPTERFUl9SRUdFWCwgbG9jYWxlKVxuICAgICAgOiByZW1vdGVVcmw7XG4gICAgY29uc3QgcmVzcG9uc2VUeXBlID0gaXNKU09OID8gJ2pzb24nIDogJ3RleHQnO1xuICAgIGlmIChpc0FwaUdhdGVXYXlSZXF1ZXN0KSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5yZXF1ZXN0KCdHRVQnLCB1cmwsIHsgcmVzcG9uc2VUeXBlIH0pXG4gICAgICAgIC5waXBlKG1hcChib2R5ID0+IChpc0pTT04gPyBib2R5IDogcGFyc2UoYm9keSkpKSk7XG4gICAgfVxuICAgIHJldHVybiBhamF4KHtcbiAgICAgIHVybCxcbiAgICAgIHJlc3BvbnNlVHlwZSxcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKCh7IHJlc3BvbnNlIH0pID0+IChpc0pTT04gPyByZXNwb25zZSA6IHBhcnNlKHJlc3BvbnNlIGFzIHN0cmluZykpKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TG9vc2VMb2NhbGUobG9jYWxlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaGVhZChsb2NhbGUuc3BsaXQoL1tfLV0vKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRWYWx1ZShcbiAgICBzb3VyY2U6IFRyYW5zbGF0aW9uLFxuICAgIGxvY2FsZSA9IHRoaXMubG9jYWxlLFxuICApOiBUcmFuc2xhdGlvblZhbHVlIHtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgdmFsdWUgPSBzb3VyY2VbbG9jYWxlXTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMubG9vc2UpIHtcbiAgICAgIGNvbnN0IGxvb3NlTG9jYWxlID0gdGhpcy5fZ2V0TG9vc2VMb2NhbGUobG9jYWxlKTtcbiAgICAgIHZhbHVlID1cbiAgICAgICAgbG9jYWxlID09PSBsb29zZUxvY2FsZVxuICAgICAgICAgID8gT2JqZWN0LmVudHJpZXMoc291cmNlKS5maW5kKFxuICAgICAgICAgICAgICAoW2tleV0pID0+IGxvY2FsZSA9PT0gdGhpcy5fZ2V0TG9vc2VMb2NhbGUoa2V5KSxcbiAgICAgICAgICAgICk/LlsxXVxuICAgICAgICAgIDogc291cmNlW2xvb3NlTG9jYWxlXTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgbG9jYWxlICE9PSB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUpIHtcbiAgICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZShzb3VyY2UsIHRoaXMub3B0aW9ucy5mYWxsYmFja0xvY2FsZSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFdpdGhGYWxsYmFjayhcbiAgICBrZXk6IHN0cmluZyxcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgICB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9ucyxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZSA9IGdldCh0aGlzLl9nZXRWYWx1ZSh0cmFuc2xhdGlvbnMsIGxvY2FsZSksIGtleSk7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBpc0Rldk1vZGUoKSAmJlxuICAgICAgICB0eXBlb2YgZ2V0KHZhbHVlLCBTeW1ib2wudG9QcmltaXRpdmUpICE9PSAnZnVuY3Rpb24nXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBUaGUgdHJhbnNsYXRpb24gZm9yIGxvY2FsZTogXFxgJHtsb2NhbGV9XFxgIGFuZCBrZXk6XFxgJHtrZXl9XFxgIGlzIGFuIG9iamVjdCwgd2hpY2ggY291bGQgYmUgdW5leHBlY3RlZGAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGxvY2FsZSAhPT0gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0V2l0aEZhbGxiYWNrKFxuICAgICAgICBrZXksXG4gICAgICAgIHRoaXMub3B0aW9ucy5mYWxsYmFja0xvY2FsZSxcbiAgICAgICAgdHJhbnNsYXRpb25zLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRCYXNlKFxuICAgIGtleTogc3RyaW5nLFxuICAgIGxvY2FsZSA9IHRoaXMubG9jYWxlLFxuICAgIHRyYW5zbGF0aW9uc0xpc3Q6IFRyYW5zbGF0aW9uc1tdLFxuICApIHtcbiAgICBpZiAoIXRyYW5zbGF0aW9uc0xpc3QgfHwgdHJhbnNsYXRpb25zTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHRyYW5zbGF0aW9uc0xpc3QubGVuZ3RoOyBpID4gMDsgaS0tKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2dldFdpdGhGYWxsYmFjayhrZXksIGxvY2FsZSwgdHJhbnNsYXRpb25zTGlzdFtpIC0gMV0pO1xuICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldChrZXk6IHN0cmluZywgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSwgbG9jYWxlID0gdGhpcy5sb2NhbGUpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLl9nZXRCYXNlKGtleSwgbG9jYWxlLCB0aGlzLnJlbW90ZVRyYW5zbGF0aW9uc0xpc3QpO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuX2dldEJhc2Uoa2V5LCBsb2NhbGUsIHRoaXMudHJhbnNsYXRpb25zTGlzdCk7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGlzRGV2TW9kZSgpICYmXG4gICAgICAhaWdub3JlTm9uRXhpc3QgJiZcbiAgICAgIHR5cGVvZiBnZXQodmFsdWUsIFN5bWJvbC50b1ByaW1pdGl2ZSkgIT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYE5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBsb2NhbGU6IFxcYCR7bG9jYWxlfVxcYCBhbmQga2V5OiBcXGAke2tleX1cXGAsIHdoaWNoIGNvdWxkIGJlIHVuZXhwZWN0ZWRgLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBhcmVLZXlzKFxuICAgIGxvY2FsZTogc3RyaW5nLFxuICAgIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbixcbiAgICBwcmV2VHJhbnNsYXRpb246IFRyYW5zbGF0aW9uLFxuICAgIHBhdGg6IHN0cmluZ1tdID0gW10sXG4gICkge1xuICAgIGlmICh0cmFuc2xhdGlvbiA9PSBudWxsIHx8IHByZXZUcmFuc2xhdGlvbiA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgT2JqZWN0LmVudHJpZXModHJhbnNsYXRpb24pLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJldlRyYW5zbGF0aW9uLCBrZXkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJldlZhbHVlID0gcHJldlRyYW5zbGF0aW9uW2tleV07XG4gICAgICBjb25zdCB2YWx1ZUlzUGxhaW5PYmplY3QgPSBpc1BsYWluT2JqZWN0KHZhbHVlKTtcbiAgICAgIGNvbnN0IHByZXZWYWx1ZUlzUGxhaW5PYmplY3QgPSBpc1BsYWluT2JqZWN0KHByZXZWYWx1ZSk7XG5cbiAgICAgIGlmICh2YWx1ZUlzUGxhaW5PYmplY3QgJiYgcHJldlZhbHVlSXNQbGFpbk9iamVjdCkge1xuICAgICAgICB0aGlzLl9jb21wYXJlS2V5cyhcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgdmFsdWUgYXMgVHJhbnNsYXRpb24sXG4gICAgICAgICAgcHJldlZhbHVlIGFzIFRyYW5zbGF0aW9uLFxuICAgICAgICAgIFsuLi5wYXRoLCBrZXldLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghdmFsdWVJc1BsYWluT2JqZWN0ICYmICFwcmV2VmFsdWVJc1BsYWluT2JqZWN0KSB7XG4gICAgICAgIGNvbnN0IG91dHB1dFBhdGggPSBbLi4ucGF0aCwga2V5XS5qb2luKCcgLT4gJyk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gcHJldlZhbHVlKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFRoZSBjdXN0b21pemVkIHRyYW5zbGF0aW9uIGZvciBsb2NhbGU6IFxcYCR7bG9jYWxlfVxcYCBhbmQgcGF0aDogXFxgJHtvdXRwdXRQYXRofVxcYCBpcyBkdXBsaWNhdGVkIHdpdGggdGhlIG90aGVyIHRyYW5zbGF0aW9uLCBwbGVhc2UgcmVtb3ZlIGl0IGluIHlvdXIgdHJhbnNsYXRpb24gZmlsZS5gLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFR3byBrZXlzIHRoYXQgdGhlIGxvY2FsZSBpcyBcXGAke2xvY2FsZX1cXGAgYW5kIHRoZSBwYXRoIGlzIFxcYCR7b3V0cHV0UGF0aH1cXGAgYXJlIHNhbWUsICBidXQgdGhlaXIgdmFsdWVzIGFyZSBub3QgZXF1YWwgLCBwbGVhc2UgcmVtb3ZlIG9uZSBvZiB0aGVtIG9yIGNoYW5nZSBvbmUgb2YgdGhlIGtleXMuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBRVYsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQVUzRCxNQUFNLE9BQU8sZ0JBQWdCO0lB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OEJBQ0EsVUFBVTtpREFBUzt1RkFuQjFCLGdCQUFnQjtjQUQ1QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztzQkFnQzdCLE1BQU07dUJBQUMsZUFBZTs7c0JBRXRCLFFBQVE7O3NCQUNSLE1BQU07dUJBQUMsaUJBQWlCOztzQkFFeEIsUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxZQUFZO3dCQTVCekIsYUFBYSxNQVdiLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSB0cmFuc2xhdGVcbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBpc0Rldk1vZGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0LCBoZWFkLCBpc1BsYWluT2JqZWN0LCB0ZW1wbGF0ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBFTVBUWSxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgZm9ya0pvaW4sXG4gIHRocm93RXJyb3IsXG4gIGNhdGNoRXJyb3IsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFqYXggfSBmcm9tICdyeGpzL2FqYXgnO1xuXG5pbXBvcnQgeyBBUElfR0FURVdBWSwgVEVNUExBVEVfT1BUSU9OUyB9IGZyb20gJy4uL2NvcmUvY29uc3RhbnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUT0tFTl9CQVNFX0hSRUYgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCB9IGZyb20gJy4uL2NvcmUvdXRpbHMvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL2NvcmUvdXRpbHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJy4uL2NvcmUvdXRpbHMveWFtbCc7XG5cbmltcG9ydCB7XG4gIEZBTExCQUNLX0xBTkdVQUdFLFxuICBMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsXG4gIExPQ0FMRV9TVE9SQUdFLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUUkFOU0xBVEVfT1BUSU9OUywgVFJBTlNMQVRJT05TIH0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHtcbiAgVHJhbnNsYXRlS2V5LFxuICBUcmFuc2xhdGVPcHRpb25zLFxuICBUcmFuc2xhdGlvbixcbiAgVHJhbnNsYXRpb25WYWx1ZSxcbiAgVHJhbnNsYXRpb25zLFxufSBmcm9tICcuL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgX3JlbW90ZUxvYWRlZD86IGJvb2xlYW47XG5cbiAgZ2V0IHJlbW90ZUxvYWRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3RlTG9hZGVkO1xuICB9XG5cbiAgQE9ic2VydmFibGVJbnB1dCgnX3JlbW90ZUxvYWRlZCcpXG4gIHJlYWRvbmx5IHJlbW90ZUxvYWRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25zTGlzdDogQXJyYXk8UmVhZG9ubHk8VHJhbnNsYXRpb25zPj47XG4gIHByaXZhdGUgcmVtb3RlVHJhbnNsYXRpb25zTGlzdDogQXJyYXk8UmVhZG9ubHk8VHJhbnNsYXRpb25zPj47XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHJhbnNsYXRlT3B0aW9ucztcblxuICBsb2NhbGU6IHN0cmluZztcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVhZG9ubHkgbG9jYWxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGdldCBsb2NhbGVzKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubG9jYWxlcztcbiAgfVxuXG4gIGdldCBmYWxsYmFja0xvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoVE9LRU5fQkFTRV9IUkVGKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmFzZUhyZWY6IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMQVRFX09QVElPTlMpXG4gICAgb3B0aW9uczogVHJhbnNsYXRlT3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRSQU5TTEFUSU9OUykgdHJhbnNsYXRpb25MaXN0OiBUcmFuc2xhdGlvbnNbXSxcbiAgKSB7XG4gICAgdGhpcy5sb2NhbGUgPSBvcHRpb25zPy5sb2NhbGUgfHwgbmF2aWdhdG9yLmxhbmd1YWdlO1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIGxvY2FsZXM6IFt0aGlzLmxvY2FsZV0sXG4gICAgICBmYWxsYmFja0xvY2FsZTogRkFMTEJBQ0tfTEFOR1VBR0UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xpc3QgPSBbXG4gICAgICBvcHRpb25zLnRyYW5zbGF0aW9ucyxcbiAgICAgIC4uLih0cmFuc2xhdGlvbkxpc3QgfHwgW10pLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgaWYgKG9wdGlvbnMucmVtb3RlVXJsKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnJlbW90ZVVybCkpIHtcbiAgICAgICAgb3B0aW9ucy5yZW1vdGVVcmwuZm9yRWFjaCh1cmwgPT4gdGhpcy5hZGRSZW1vdGVUcmFuc2xhdGlvbnModXJsKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFJlbW90ZVRyYW5zbGF0aW9ucyhvcHRpb25zLnJlbW90ZVVybCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGtleSAtIOe/u+ivkWtleVxuICAgKiBAcGFyYW0gZGF0YSAtIOagueaNrue/u+ivkeS4iuS4i+aWh+aVsOaNruiOt+WPlue/u+ivkeWGheWuue+8jOe/u+ivkemhueS4jeWtmOWcqOebtOaOpei/lOWbniBrZXkg5paH5pysXG4gICAqIEBwYXJhbSBpZ25vcmVOb25FeGlzdCAtIOW8gOWPkeeOr+Wig+aYr+WQpuW/veinhuS4jeWtmOWcqOeahOe/u+ivkemhuVxuICAgKi9cbiAgZ2V0KGtleTogVHJhbnNsYXRlS2V5LCBkYXRhPzogdW5rbm93biwgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSkge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy5nZXRSYXcoa2V5LCBpZ25vcmVOb25FeGlzdCk7XG4gICAgaWYgKGRhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGVtcGxhdGUodHJhbnNsYXRpb24sIFRFTVBMQVRFX09QVElPTlMpKGRhdGEgYXMgb2JqZWN0KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlW2lzRGV2TW9kZSgpID8gJ2Vycm9yJyA6ICd3YXJuJ10oXG4gICAgICAgIGBUaGUgdHJhbnNsYXRpb24ga2V5ICcke2tleX0nIGlzIG1pc3NpbmcgdGhlIG5lY2Vzc2FyeSBwYXJhbWV0ZXJzLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDnm7TmjqXov5Tlm57nv7vor5HmlofmnKzmqKHmnb9cbiAgICogQHBhcmFtIGtleSAtIOe/u+ivkWtleVxuICAgKiBAcGFyYW0gaWdub3JlTm9uRXhpc3QgLSDlvIDlj5Hnjq/looPmmK/lkKblv73op4bkuI3lrZjlnKjnmoTnv7vor5HpoblcbiAgICovXG4gIGdldFJhdyhrZXk6IFRyYW5zbGF0ZUtleSwgaWdub3JlTm9uRXhpc3QgPSBmYWxzZSkge1xuICAgIHJldHVybiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJ1xuICAgICAgPyB0aGlzLl9nZXQoa2V5LCBpZ25vcmVOb25FeGlzdClcbiAgICAgIDogKHRoaXMuX2dldFZhbHVlKGtleSkgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja4gYGxvY2FsZXNgIOW+queOr+WIh+aNouW9k+WJjeWMuuWfn+iuvue9rlxuICAgKi9cbiAgdG9nZ2xlTG9jYWxlKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcHRpb25zLmxvY2FsZXMuaW5kZXhPZih0aGlzLmxvY2FsZSk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Bsb2NhbGVzYCBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgY29ycmVjdGx5Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRMb2NhbGUgPVxuICAgICAgdGhpcy5vcHRpb25zLmxvY2FsZXNbXG4gICAgICAgIGluZGV4ID09PSB0aGlzLm9wdGlvbnMubG9jYWxlcy5sZW5ndGggLSAxID8gMCA6IGluZGV4ICsgMVxuICAgICAgXTtcblxuICAgIGlmICghbmV4dExvY2FsZSB8fCB0aGlzLmxvY2FsZSA9PT0gbmV4dExvY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0TG9jYWxlKG5leHRMb2NhbGUpO1xuICB9XG5cbiAgc2V0TG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTE9DQUxFX1NUT1JBR0UsIGxvY2FsZSk7XG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7XG4gIH1cblxuICAvKipcbiAgICog5omL5Yqo5re75Yqg6K+t6KiA5YyFXG4gICAqL1xuICBhZGRUcmFuc2xhdGlvbnModHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMpIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xpc3QudW5zaGlmdChPYmplY3QuZnJlZXplKHRyYW5zbGF0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIOaJi+WKqOa3u+WKoOivreiogOWMhVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvY29nbml0aXZlLWNvbXBsZXhpdHlcbiAgYWRkUmVtb3RlVHJhbnNsYXRpb25zKHJlbW90ZVVybDogc3RyaW5nKSB7XG4gICAgaWYgKCFyZW1vdGVVcmwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcmVtb3RlTG9hZGVkID0gZmFsc2U7XG4gICAgcmVtb3RlVXJsID0gaGVhZChyZW1vdGVVcmwuc3BsaXQoLyMvKSk7XG4gICAgY29uc3QgaXNBYnNvbHV0ZSA9IGlzQWJzb2x1dGVVcmwocmVtb3RlVXJsKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgICAgaWYgKCFpc0Fic29sdXRlICYmICghdGhpcy5iYXNlSHJlZiB8fCAhaXNBYnNvbHV0ZVVybCh0aGlzLmJhc2VIcmVmKSkpIHtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gJ2Fic29sdXRlIGJhc2UgaHJlZiBpcyByZXF1aXJlZCBmb3IgcmVsYXRpdmUgcmVtb3RlIHVybCc7XG4gICAgICB9IGVsc2UgaWYgKHJlbW90ZVVybC5zcGxpdCgnPycpWzBdLmluY2x1ZGVzKCcuLycpKSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgJ2RvIG5vdCB1c2UgYW55IGRvdCB3aXRoIHNsYXNoIGZvciByZWxhdGl2ZSB1cmwgd2hpY2ggc2hvdWxkIGFsd2F5cyBiYXNlIGZyb20gYmFzZSBocmVmJztcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWlzQWJzb2x1dGUgJiYgIWlzQXBpR2F0ZVdheVJlcXVlc3QpIHtcbiAgICAgIHJlbW90ZVVybCA9XG4gICAgICAgICh0aGlzLmJhc2VIcmVmLmVuZHNXaXRoKCcvJykgPyB0aGlzLmJhc2VIcmVmIDogdGhpcy5iYXNlSHJlZiArICcvJykgK1xuICAgICAgICByZW1vdGVVcmw7XG4gICAgfVxuICAgIChMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgudGVzdChyZW1vdGVVcmwpXG4gICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgIHRoaXMub3B0aW9ucy5sb2NhbGVzLm1hcChsb2NhbGUgPT5cbiAgICAgICAgICAgIHRoaXMuZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmwsIGxvY2FsZSkucGlwZShcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb29zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbG9vc2VMb2NhbGUgPSB0aGlzLl9nZXRMb29zZUxvY2FsZShsb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGUgIT09IGxvb3NlTG9jYWxlICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLm9wdGlvbnMubG9jYWxlcy5pbmNsdWRlcyhsb29zZUxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCwgbG9vc2VMb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNEZXZNb2RlKCkgPyB0aHJvd0Vycm9yKCgpID0+IGVycm9yKSA6IEVNUFRZO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlsdGVyKGlzUGxhaW5PYmplY3QpLFxuICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdOiB0cmFuc2xhdGlvbixcbiAgICAgICAgICAgICAgICAgIH0gYXMgVHJhbnNsYXRpb25zKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKS5waXBlKG1hcChfID0+IF8ucmVkdWNlKE9iamVjdC5hc3NpZ24pKSlcbiAgICAgIDogdGhpcy5mZXRjaFRyYW5zbGF0aW9uKHJlbW90ZVVybCkucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IChpc0Rldk1vZGUoKSA/IHRocm93RXJyb3IoKCkgPT4gZXJyb3IpIDogRU1QVFkpKSxcbiAgICAgICAgKVxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5fcmVtb3RlTG9hZGVkID0gdHJ1ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZW1vdGVUcmFuc2xhdGlvbnMgPT4ge1xuICAgICAgICBpZiAoIXJlbW90ZVRyYW5zbGF0aW9ucykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCkge1xuICAgICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3RlVHJhbnNsYXRpb25zTGlzdC51bnNoaWZ0KE9iamVjdC5mcmVlemUocmVtb3RlVHJhbnNsYXRpb25zKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDku47ov5znqIsgdXJsIOaooeadv+WSjOWMuuWfn+iOt+WPlue/u+ivkeWMhVxuICAgKi9cbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb25zPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPjtcbiAgZmV0Y2hUcmFuc2xhdGlvbihyZW1vdGVVcmw6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKSB7XG4gICAgaWYgKGlzRGV2TW9kZSgpICYmIExPQ0FMRV9QTEFDRUhPTERFUl9SRUdFWC50ZXN0KHJlbW90ZVVybCkgJiYgIWxvY2FsZSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ2Bsb2NhbGVgIGlzIHJlcXVpcmVkIHNpbmUgdGhlIHByb3ZpZGVkIHJlbW90ZSB1cmwgY29udGFpbnMgbG9jYWxlIHBsYWNlaG9sZGVyJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGlzSlNPTiA9IHJlbW90ZVVybC5lbmRzV2l0aCgnLmpzb24nKTtcbiAgICBjb25zdCBpc0FwaUdhdGVXYXlSZXF1ZXN0ID0gcmVtb3RlVXJsLnN0YXJ0c1dpdGgoQVBJX0dBVEVXQVkpO1xuICAgIGNvbnN0IHVybCA9IGxvY2FsZVxuICAgICAgPyByZW1vdGVVcmwucmVwbGFjZShMT0NBTEVfUExBQ0VIT0xERVJfUkVHRVgsIGxvY2FsZSlcbiAgICAgIDogcmVtb3RlVXJsO1xuICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IGlzSlNPTiA/ICdqc29uJyA6ICd0ZXh0JztcbiAgICBpZiAoaXNBcGlHYXRlV2F5UmVxdWVzdCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAucmVxdWVzdCgnR0VUJywgdXJsLCB7IHJlc3BvbnNlVHlwZSB9KVxuICAgICAgICAucGlwZShtYXAoYm9keSA9PiAoaXNKU09OID8gYm9keSA6IHBhcnNlKGJvZHkpKSkpO1xuICAgIH1cbiAgICByZXR1cm4gYWpheCh7XG4gICAgICB1cmwsXG4gICAgICByZXNwb25zZVR5cGUsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyByZXNwb25zZSB9KSA9PiAoaXNKU09OID8gcmVzcG9uc2UgOiBwYXJzZShyZXNwb25zZSBhcyBzdHJpbmcpKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldExvb3NlTG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGhlYWQobG9jYWxlLnNwbGl0KC9bXy1dLykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VmFsdWUoXG4gICAgc291cmNlOiBUcmFuc2xhdGlvbixcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgKTogVHJhbnNsYXRpb25WYWx1ZSB7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHZhbHVlID0gc291cmNlW2xvY2FsZV07XG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgdGhpcy5vcHRpb25zLmxvb3NlKSB7XG4gICAgICBjb25zdCBsb29zZUxvY2FsZSA9IHRoaXMuX2dldExvb3NlTG9jYWxlKGxvY2FsZSk7XG4gICAgICB2YWx1ZSA9XG4gICAgICAgIGxvY2FsZSA9PT0gbG9vc2VMb2NhbGVcbiAgICAgICAgICA/IE9iamVjdC5lbnRyaWVzKHNvdXJjZSkuZmluZChcbiAgICAgICAgICAgICAgKFtrZXldKSA9PiBsb2NhbGUgPT09IHRoaXMuX2dldExvb3NlTG9jYWxlKGtleSksXG4gICAgICAgICAgICApPy5bMV1cbiAgICAgICAgICA6IHNvdXJjZVtsb29zZUxvY2FsZV07XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSBudWxsICYmIGxvY2FsZSAhPT0gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG9jYWxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWUoc291cmNlLCB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXaXRoRmFsbGJhY2soXG4gICAga2V5OiBzdHJpbmcsXG4gICAgbG9jYWxlID0gdGhpcy5sb2NhbGUsXG4gICAgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMsXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQodGhpcy5fZ2V0VmFsdWUodHJhbnNsYXRpb25zLCBsb2NhbGUpLCBrZXkpO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgaXNEZXZNb2RlKCkgJiZcbiAgICAgICAgdHlwZW9mIGdldCh2YWx1ZSwgU3ltYm9sLnRvUHJpbWl0aXZlKSAhPT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVGhlIHRyYW5zbGF0aW9uIGZvciBsb2NhbGU6IFxcYCR7bG9jYWxlfVxcYCBhbmQga2V5OlxcYCR7a2V5fVxcYCBpcyBhbiBvYmplY3QsIHdoaWNoIGNvdWxkIGJlIHVuZXhwZWN0ZWRgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmIChsb2NhbGUgIT09IHRoaXMub3B0aW9ucy5mYWxsYmFja0xvY2FsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2dldFdpdGhGYWxsYmFjayhcbiAgICAgICAga2V5LFxuICAgICAgICB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QmFzZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBsb2NhbGUgPSB0aGlzLmxvY2FsZSxcbiAgICB0cmFuc2xhdGlvbnNMaXN0OiBUcmFuc2xhdGlvbnNbXSxcbiAgKSB7XG4gICAgaWYgKCF0cmFuc2xhdGlvbnNMaXN0IHx8IHRyYW5zbGF0aW9uc0xpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSB0cmFuc2xhdGlvbnNMaXN0Lmxlbmd0aDsgaSA+IDA7IGktLSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9nZXRXaXRoRmFsbGJhY2soa2V5LCBsb2NhbGUsIHRyYW5zbGF0aW9uc0xpc3RbaSAtIDFdKTtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXQoa2V5OiBzdHJpbmcsIGlnbm9yZU5vbkV4aXN0ID0gZmFsc2UsIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5fZ2V0QmFzZShrZXksIGxvY2FsZSwgdGhpcy5yZW1vdGVUcmFuc2xhdGlvbnNMaXN0KTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLl9nZXRCYXNlKGtleSwgbG9jYWxlLCB0aGlzLnRyYW5zbGF0aW9uc0xpc3QpO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBpc0Rldk1vZGUoKSAmJlxuICAgICAgIWlnbm9yZU5vbkV4aXN0ICYmXG4gICAgICB0eXBlb2YgZ2V0KHZhbHVlLCBTeW1ib2wudG9QcmltaXRpdmUpICE9PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBObyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIGtleTogXFxgJHtrZXl9XFxgLCB3aGljaCBjb3VsZCBiZSB1bmV4cGVjdGVkYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBwcml2YXRlIF9jb21wYXJlS2V5cyhcbiAgICBsb2NhbGU6IHN0cmluZyxcbiAgICB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb24sXG4gICAgcHJldlRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbixcbiAgICBwYXRoOiBzdHJpbmdbXSA9IFtdLFxuICApIHtcbiAgICBpZiAodHJhbnNsYXRpb24gPT0gbnVsbCB8fCBwcmV2VHJhbnNsYXRpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIE9iamVjdC5lbnRyaWVzKHRyYW5zbGF0aW9uKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByZXZUcmFuc2xhdGlvbiwga2V5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHByZXZUcmFuc2xhdGlvbltrZXldO1xuICAgICAgY29uc3QgdmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gICAgICBjb25zdCBwcmV2VmFsdWVJc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdChwcmV2VmFsdWUpO1xuXG4gICAgICBpZiAodmFsdWVJc1BsYWluT2JqZWN0ICYmIHByZXZWYWx1ZUlzUGxhaW5PYmplY3QpIHtcbiAgICAgICAgdGhpcy5fY29tcGFyZUtleXMoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHZhbHVlIGFzIFRyYW5zbGF0aW9uLFxuICAgICAgICAgIHByZXZWYWx1ZSBhcyBUcmFuc2xhdGlvbixcbiAgICAgICAgICBbLi4ucGF0aCwga2V5XSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXZhbHVlSXNQbGFpbk9iamVjdCAmJiAhcHJldlZhbHVlSXNQbGFpbk9iamVjdCkge1xuICAgICAgICBjb25zdCBvdXRwdXRQYXRoID0gWy4uLnBhdGgsIGtleV0uam9pbignIC0+ICcpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHByZXZWYWx1ZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUaGUgY3VzdG9taXplZCB0cmFuc2xhdGlvbiBmb3IgbG9jYWxlOiBcXGAke2xvY2FsZX1cXGAgYW5kIHBhdGg6IFxcYCR7b3V0cHV0UGF0aH1cXGAgaXMgZHVwbGljYXRlZCB3aXRoIHRoZSBvdGhlciB0cmFuc2xhdGlvbiwgcGxlYXNlIHJlbW92ZSBpdCBpbiB5b3VyIHRyYW5zbGF0aW9uIGZpbGUuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUd28ga2V5cyB0aGF0IHRoZSBsb2NhbGUgaXMgXFxgJHtsb2NhbGV9XFxgIGFuZCB0aGUgcGF0aCBpcyBcXGAke291dHB1dFBhdGh9XFxgIGFyZSBzYW1lLCAgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbm90IGVxdWFsICwgcGxlYXNlIHJlbW92ZSBvbmUgb2YgdGhlbSBvciBjaGFuZ2Ugb25lIG9mIHRoZSBrZXlzLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -58,6 +58,6 @@ export class ViewChartModule {
58
58
  CheckboxModule,
59
59
  DropdownModule], exports: [ViewChartComponent] }); })();
60
60
  i0.ɵɵsetComponentScope(ViewChartComponent, [i1.NgIf, i1.NgTemplateOutlet, i2.IconComponent, i2.ButtonComponent, i3.E2eAttributeBindingDirective], [i1.AsyncPipe, i4.TranslatePipe]);
61
- i0.ɵɵsetComponentScope(LegendComponent, [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgSwitch, i1.NgSwitchCase, i3.E2eAttributeBindingDirective, i5.NgControlStatus, i5.NgModel, i2.CheckboxComponent, LegendDropdownComponent], [i4.TranslatePipe]);
61
+ i0.ɵɵsetComponentScope(LegendComponent, [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgSwitch, i1.NgSwitchCase, i5.NgControlStatus, i5.NgModel, i2.CheckboxComponent, i3.E2eAttributeBindingDirective, LegendDropdownComponent], [i4.TranslatePipe]);
62
62
  i0.ɵɵsetComponentScope(LegendDropdownComponent, [i1.NgIf, i1.NgTemplateOutlet, i2.IconComponent, i2.ButtonComponent, i2.TooltipDirective, i2.TooltipActiveDirective, i3.E2eAttributeBindingDirective], [i4.TranslatePipe]);
63
63
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jaGFydC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdmlldy1jaGFydC92aWV3LWNoYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxFQUNkLGNBQWMsR0FDZixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBa0I1RCxNQUFNLE9BQU8sZUFBZTtnRkFBZixlQUFlO21FQUFmLGVBQWU7dUVBZHhCLFlBQVk7WUFDWixXQUFXO1lBQ1gsZUFBZTtZQUNmLFVBQVU7WUFDVixZQUFZO1lBQ1osYUFBYTtZQUNiLFVBQVU7WUFDVixXQUFXO1lBQ1gsY0FBYztZQUNkLGNBQWM7O3VGQUtMLGVBQWU7Y0FoQjNCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLGVBQWU7b0JBQ2YsVUFBVTtvQkFDVixZQUFZO29CQUNaLGFBQWE7b0JBQ2IsVUFBVTtvQkFDVixXQUFXO29CQUNYLGNBQWM7b0JBQ2QsY0FBYztpQkFDZjtnQkFDRCxZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsdUJBQXVCLENBQUM7Z0JBQzVFLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO2FBQzlCOzt3RkFDWSxlQUFlLG1CQUhYLGtCQUFrQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsYUFYekUsWUFBWTtRQUNaLFdBQVc7UUFDWCxlQUFlO1FBQ2YsVUFBVTtRQUNWLFlBQVk7UUFDWixhQUFhO1FBQ2IsVUFBVTtRQUNWLFdBQVc7UUFDWCxjQUFjO1FBQ2QsY0FBYyxhQUdOLGtCQUFrQjt1QkFEYixrQkFBa0I7dUJBQUUsZUFBZSw4S0FBRSx1QkFBdUI7dUJBQXZCLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEljb25Nb2R1bGUsXG4gIFRvb2x0aXBNb2R1bGUsXG4gIEJ1dHRvbk1vZHVsZSxcbiAgQ2hlY2tib3hNb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxufSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENoYXJ0TW9kdWxlIH0gZnJvbSAnLi4vY2hhcnQvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgTGVnZW5kRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2N1c3RvbS10ZW1wbGF0ZS9kcm9wZG93bi1sZWdlbmQnO1xuaW1wb3J0IHsgTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaWV3Q2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3ZpZXctY2hhcnQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDaGFydE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENoZWNrYm94TW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtWaWV3Q2hhcnRDb21wb25lbnQsIExlZ2VuZENvbXBvbmVudCwgTGVnZW5kRHJvcGRvd25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbVmlld0NoYXJ0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlld0NoYXJ0TW9kdWxlIHt9XG4iXX0=
@@ -51,7 +51,7 @@ function LegendDropdownComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
51
51
  } }
52
52
  export class LegendDropdownComponent {
53
53
  static { this.ɵfac = function LegendDropdownComponent_Factory(t) { return new (t || LegendDropdownComponent)(); }; }
54
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LegendDropdownComponent, selectors: [["acl-legend-dropdown"]], inputs: { data: "data", legendTemplate: "legendTemplate", noData: "noData", isCard: "isCard" }, decls: 5, vars: 2, consts: [[4, "ngIf", "ngIfElse"], ["elseTemplate", ""], ["dropdownItemTemplate", ""], ["icon", "prod:chart_legend", "auiTooltipType", "info", "auiTooltipPosition", "bottom end", "auiTooltipTrigger", "click", "auiTooltipActive", "legendActive", 1, "btn", 3, "auiTooltip", "auiTooltipContext"], ["aui-button", "", "icon", "prod:chart_legend", "auiTooltipType", "info", "auiTooltipPosition", "bottom end", "auiTooltipTrigger", "click", "auiTooltipActive", "legendActive", 1, "btn", 3, "square", "auiTooltip", "auiTooltipContext"], ["icon", "prod:chart_legend"], ["noDataTemplate", ""], [1, "legend-vertical"], [3, "ngTemplateOutlet"], [1, "no-data"]], template: function LegendDropdownComponent_Template(rf, ctx) { if (rf & 1) {
54
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LegendDropdownComponent, selectors: [["acl-view-legend-dropdown"]], inputs: { data: "data", legendTemplate: "legendTemplate", noData: "noData", isCard: "isCard" }, decls: 5, vars: 2, consts: [[4, "ngIf", "ngIfElse"], ["elseTemplate", ""], ["dropdownItemTemplate", ""], ["icon", "prod:chart_legend", "auiTooltipType", "info", "auiTooltipPosition", "bottom end", "auiTooltipTrigger", "click", "auiTooltipActive", "legendActive", 1, "btn", 3, "auiTooltip", "auiTooltipContext"], ["aui-button", "", "icon", "prod:chart_legend", "auiTooltipType", "info", "auiTooltipPosition", "bottom end", "auiTooltipTrigger", "click", "auiTooltipActive", "legendActive", 1, "btn", 3, "square", "auiTooltip", "auiTooltipContext"], ["icon", "prod:chart_legend"], ["noDataTemplate", ""], [1, "legend-vertical"], [3, "ngTemplateOutlet"], [1, "no-data"]], template: function LegendDropdownComponent_Template(rf, ctx) { if (rf & 1) {
55
55
  i0.ɵɵtemplate(0, LegendDropdownComponent_ng_container_0_Template, 2, 5, "ng-container", 0);
56
56
  i0.ɵɵtemplate(1, LegendDropdownComponent_ng_template_1_Template, 2, 6, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
57
57
  i0.ɵɵtemplate(3, LegendDropdownComponent_ng_template_3_Template, 3, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
@@ -62,7 +62,7 @@ export class LegendDropdownComponent {
62
62
  }
63
63
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LegendDropdownComponent, [{
64
64
  type: Component,
65
- args: [{ selector: 'acl-legend-dropdown', template: `
65
+ args: [{ selector: 'acl-view-legend-dropdown', template: `
66
66
  <ng-container *ngIf="!isCard; else elseTemplate">
67
67
  <aui-icon
68
68
  class="btn"
@@ -112,4 +112,4 @@ export class LegendDropdownComponent {
112
112
  }], isCard: [{
113
113
  type: Input
114
114
  }] }); })();
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGVnZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctemNoYXJ0L2N1c3RvbS10ZW1wbGF0ZS9kcm9wZG93bi1sZWdlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQzs7Ozs7SUFPbkIsNkJBQWlEO0lBQy9DLDhCQVNZO0lBQ2QsMEJBQWU7Ozs7SUFQWCxlQUFtQztJQUFuQyxnQ0FBbUMsNkVBQUE7OztJQVNyQyxpQ0FXQztJQUNDLDhCQUE4QztJQUNoRCxpQkFBUzs7OztJQVhQLDZCQUFlLG1CQUFBLDZFQUFBOzs7SUFlakIsNkJBQWtFO0lBQ2hFLDhCQUE2QjtJQUMzQiwyQkFBaUU7SUFDbkUsaUJBQU07SUFDUiwwQkFBZTs7O0lBRkcsZUFBbUM7SUFBbkMsd0RBQW1DOzs7SUFJbkQsK0JBQXNCO0lBQUEsWUFBMkI7O0lBQUEsaUJBQU87O0lBQWxDLGVBQTJCO0lBQTNCLHFEQUEyQjs7O0lBTm5ELHdHQUllO0lBQ2YsdUlBRWM7Ozs7SUFQQywyREFBOEIsaUJBQUE7O0FBYW5ELE1BQU0sT0FBTyx1QkFBdUI7d0ZBQXZCLHVCQUF1QjtvRUFBdkIsdUJBQXVCO1lBM0NoQywwRkFXZTtZQUNmLHlIQWVjO1lBRWQseUhBU2M7OztZQXRDQyxrQ0FBZSxpQkFBQTs7O3VGQTJDckIsdUJBQXVCO2NBOUNuQyxTQUFTOzJCQUNFLHFCQUFxQixZQUNyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTtnQkFHdEMsSUFBSTtrQkFBWixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExlZ2VuZEl0ZW0gfSBmcm9tICcuLi8uLi9jaGFydC9jb21tb24vcHVibGljLWFwaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1sZWdlbmQtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNDYXJkOyBlbHNlIGVsc2VUZW1wbGF0ZVwiPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGNsYXNzPVwiYnRuXCJcbiAgICAgICAgaWNvbj1cInByb2Q6Y2hhcnRfbGVnZW5kXCJcbiAgICAgICAgW2F1aVRvb2x0aXBdPVwiZHJvcGRvd25JdGVtVGVtcGxhdGVcIlxuICAgICAgICBbYXVpVG9vbHRpcENvbnRleHRdPVwieyBkYXRhOiBbXSB9XCJcbiAgICAgICAgYXVpVG9vbHRpcFR5cGU9XCJpbmZvXCJcbiAgICAgICAgYXVpVG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tIGVuZFwiXG4gICAgICAgIGF1aVRvb2x0aXBUcmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICBhdWlUb29sdGlwQWN0aXZlPVwibGVnZW5kQWN0aXZlXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uXG4gICAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICAgIGNsYXNzPVwiYnRuXCJcbiAgICAgICAgaWNvbj1cInByb2Q6Y2hhcnRfbGVnZW5kXCJcbiAgICAgICAgW2F1aVRvb2x0aXBdPVwiZHJvcGRvd25JdGVtVGVtcGxhdGVcIlxuICAgICAgICBbYXVpVG9vbHRpcENvbnRleHRdPVwieyBkYXRhOiBbXSB9XCJcbiAgICAgICAgYXVpVG9vbHRpcFR5cGU9XCJpbmZvXCJcbiAgICAgICAgYXVpVG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tIGVuZFwiXG4gICAgICAgIGF1aVRvb2x0aXBUcmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICBhdWlUb29sdGlwQWN0aXZlPVwibGVnZW5kQWN0aXZlXCJcbiAgICAgID5cbiAgICAgICAgPGF1aS1pY29uIGljb249XCJwcm9kOmNoYXJ0X2xlZ2VuZFwiPjwvYXVpLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkl0ZW1UZW1wbGF0ZT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLmxlbmd0aCAmJiAhbm9EYXRhOyBlbHNlIG5vRGF0YVRlbXBsYXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmQtdmVydGljYWxcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxlZ2VuZFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI25vRGF0YVRlbXBsYXRlPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLWRhdGFcIj57eyAnbm9fZGF0YScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLWxlZ2VuZC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMZWdlbmREcm9wZG93bkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRhdGE6IExlZ2VuZEl0ZW1bXTtcbiAgQElucHV0KCkgbGVnZW5kVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBASW5wdXQoKSBub0RhdGE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzQ2FyZDogYm9vbGVhbjtcbn1cbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGVnZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctemNoYXJ0L2N1c3RvbS10ZW1wbGF0ZS9kcm9wZG93bi1sZWdlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQzs7Ozs7SUFPbkIsNkJBQWlEO0lBQy9DLDhCQVNZO0lBQ2QsMEJBQWU7Ozs7SUFQWCxlQUFtQztJQUFuQyxnQ0FBbUMsNkVBQUE7OztJQVNyQyxpQ0FXQztJQUNDLDhCQUE4QztJQUNoRCxpQkFBUzs7OztJQVhQLDZCQUFlLG1CQUFBLDZFQUFBOzs7SUFlakIsNkJBQWtFO0lBQ2hFLDhCQUE2QjtJQUMzQiwyQkFBaUU7SUFDbkUsaUJBQU07SUFDUiwwQkFBZTs7O0lBRkcsZUFBbUM7SUFBbkMsd0RBQW1DOzs7SUFJbkQsK0JBQXNCO0lBQUEsWUFBMkI7O0lBQUEsaUJBQU87O0lBQWxDLGVBQTJCO0lBQTNCLHFEQUEyQjs7O0lBTm5ELHdHQUllO0lBQ2YsdUlBRWM7Ozs7SUFQQywyREFBOEIsaUJBQUE7O0FBYW5ELE1BQU0sT0FBTyx1QkFBdUI7d0ZBQXZCLHVCQUF1QjtvRUFBdkIsdUJBQXVCO1lBM0NoQywwRkFXZTtZQUNmLHlIQWVjO1lBRWQseUhBU2M7OztZQXRDQyxrQ0FBZSxpQkFBQTs7O3VGQTJDckIsdUJBQXVCO2NBOUNuQyxTQUFTOzJCQUNFLDBCQUEwQixZQUMxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTtnQkFHdEMsSUFBSTtrQkFBWixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExlZ2VuZEl0ZW0gfSBmcm9tICcuLi8uLi9jaGFydC9jb21tb24vcHVibGljLWFwaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC12aWV3LWxlZ2VuZC1kcm9wZG93bicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0NhcmQ7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJidG5cIlxuICAgICAgICBpY29uPVwicHJvZDpjaGFydF9sZWdlbmRcIlxuICAgICAgICBbYXVpVG9vbHRpcF09XCJkcm9wZG93bkl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgIFthdWlUb29sdGlwQ29udGV4dF09XCJ7IGRhdGE6IFtdIH1cIlxuICAgICAgICBhdWlUb29sdGlwVHlwZT1cImluZm9cIlxuICAgICAgICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gZW5kXCJcbiAgICAgICAgYXVpVG9vbHRpcFRyaWdnZXI9XCJjbGlja1wiXG4gICAgICAgIGF1aVRvb2x0aXBBY3RpdmU9XCJsZWdlbmRBY3RpdmVcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbHNlVGVtcGxhdGU+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b25cbiAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgY2xhc3M9XCJidG5cIlxuICAgICAgICBpY29uPVwicHJvZDpjaGFydF9sZWdlbmRcIlxuICAgICAgICBbYXVpVG9vbHRpcF09XCJkcm9wZG93bkl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgIFthdWlUb29sdGlwQ29udGV4dF09XCJ7IGRhdGE6IFtdIH1cIlxuICAgICAgICBhdWlUb29sdGlwVHlwZT1cImluZm9cIlxuICAgICAgICBhdWlUb29sdGlwUG9zaXRpb249XCJib3R0b20gZW5kXCJcbiAgICAgICAgYXVpVG9vbHRpcFRyaWdnZXI9XCJjbGlja1wiXG4gICAgICAgIGF1aVRvb2x0aXBBY3RpdmU9XCJsZWdlbmRBY3RpdmVcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cInByb2Q6Y2hhcnRfbGVnZW5kXCI+PC9hdWktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duSXRlbVRlbXBsYXRlPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEubGVuZ3RoICYmICFub0RhdGE7IGVsc2Ugbm9EYXRhVGVtcGxhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZC12ZXJ0aWNhbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGVnZW5kVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EYXRhVGVtcGxhdGU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibm8tZGF0YVwiPnt7ICdub19kYXRhJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tbGVnZW5kLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExlZ2VuZERyb3Bkb3duQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YTogTGVnZW5kSXRlbVtdO1xuICBASW5wdXQoKSBsZWdlbmRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIEBJbnB1dCgpIG5vRGF0YTogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNDYXJkOiBib29sZWFuO1xufVxuIl19