@energinet/watt 4.0.22 → 4.0.23

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 (116) hide show
  1. package/esm2022/badge/watt-badge.component.js +4 -4
  2. package/esm2022/breadcrumbs/watt-breadcrumbs.component.js +9 -9
  3. package/esm2022/button/watt-button.component.js +4 -4
  4. package/esm2022/card/watt-card-title.component.js +3 -3
  5. package/esm2022/card/watt-card.component.js +4 -4
  6. package/esm2022/checkbox/watt-checkbox.component.js +4 -4
  7. package/esm2022/chip/watt-action-chip.component.js +4 -4
  8. package/esm2022/chip/watt-chip.component.js +4 -4
  9. package/esm2022/chip/watt-chip.directive.js +3 -3
  10. package/esm2022/chip/watt-date-chip.component.js +4 -4
  11. package/esm2022/chip/watt-date-range-chip.component.js +7 -7
  12. package/esm2022/chip/watt-filter-chip.component.js +4 -4
  13. package/esm2022/chip/watt-menu-chip.component.js +4 -4
  14. package/esm2022/clipboard/watt-clipboard-intl.service.js +3 -3
  15. package/esm2022/clipboard/watt-copy-to-clipboard.directive.js +4 -4
  16. package/esm2022/code/watt-code-intl.service.js +3 -3
  17. package/esm2022/code/watt-code.component.js +5 -5
  18. package/esm2022/core/breakpoints/breakpoints-observer.js +3 -3
  19. package/esm2022/core/color/color-helper.service.js +3 -3
  20. package/esm2022/core/date/watt-date.pipe.js +3 -3
  21. package/esm2022/core/date/watt-locale.service.js +3 -3
  22. package/esm2022/data/watt-data-actions.component.js +3 -3
  23. package/esm2022/data/watt-data-filters.component.js +3 -3
  24. package/esm2022/data/watt-data-intl.service.js +3 -3
  25. package/esm2022/data/watt-data-table.component.js +5 -5
  26. package/esm2022/datetime-field/watt-datetime-field.component.js +5 -5
  27. package/esm2022/description-list/watt-description-list-item.component.js +5 -5
  28. package/esm2022/description-list/watt-description-list.component.js +5 -5
  29. package/esm2022/drawer/watt-drawer-actions.component.js +3 -3
  30. package/esm2022/drawer/watt-drawer-content.component.js +3 -3
  31. package/esm2022/drawer/watt-drawer-heading.component.js +3 -3
  32. package/esm2022/drawer/watt-drawer-topbar.component.js +3 -3
  33. package/esm2022/drawer/watt-drawer.component.js +5 -5
  34. package/esm2022/dropdown/watt-dropdown.component.js +5 -5
  35. package/esm2022/dropzone/watt-dropzone-intl.js +3 -3
  36. package/esm2022/dropzone/watt-dropzone-validators.js +6 -6
  37. package/esm2022/dropzone/watt-dropzone.js +4 -4
  38. package/esm2022/empty-state/icons/explore.js +3 -3
  39. package/esm2022/empty-state/icons/no-results.js +3 -3
  40. package/esm2022/empty-state/icons/not-found.js +3 -3
  41. package/esm2022/empty-state/icons/power.js +3 -3
  42. package/esm2022/empty-state/watt-empty-state.component.js +4 -4
  43. package/esm2022/expandable-card/watt-expandable-card.component.js +11 -11
  44. package/esm2022/field/watt-field-error.component.js +3 -3
  45. package/esm2022/field/watt-field-hint.component.js +3 -3
  46. package/esm2022/field/watt-field-intl.service.js +3 -3
  47. package/esm2022/field/watt-field-warning.component.js +3 -3
  48. package/esm2022/field/watt-field.component.js +5 -5
  49. package/esm2022/file-field/watt-file-field.component.js +4 -4
  50. package/esm2022/icon/flags/watt-flag-ch.js +3 -3
  51. package/esm2022/icon/flags/watt-flag-de.js +3 -3
  52. package/esm2022/icon/flags/watt-flag-dk.js +3 -3
  53. package/esm2022/icon/flags/watt-flag-fi.js +3 -3
  54. package/esm2022/icon/flags/watt-flag-nl.js +3 -3
  55. package/esm2022/icon/flags/watt-flag-no.js +3 -3
  56. package/esm2022/icon/flags/watt-flag-pl.js +3 -3
  57. package/esm2022/icon/flags/watt-flag-se.js +3 -3
  58. package/esm2022/icon/flags/watt-flag.js +4 -4
  59. package/esm2022/icon/icon.component.js +4 -4
  60. package/esm2022/menu/watt-menu-group.component.js +4 -4
  61. package/esm2022/menu/watt-menu-item.component.js +4 -4
  62. package/esm2022/menu/watt-menu-trigger.directive.js +4 -4
  63. package/esm2022/menu/watt-menu.component.js +5 -5
  64. package/esm2022/modal/watt-modal.component.js +8 -8
  65. package/esm2022/modal/watt-modal.service.js +3 -3
  66. package/esm2022/paginator/watt-paginator-intl.service.js +3 -3
  67. package/esm2022/paginator/watt-paginator.component.js +5 -5
  68. package/esm2022/phone-field/watt-phone-field-intl.service.js +3 -3
  69. package/esm2022/phone-field/watt-phone-field.component.js +5 -5
  70. package/esm2022/picker/__shared/placeholder-mask/watt-placeholder-mask.component.js +4 -4
  71. package/esm2022/picker/__shared/watt-picker-base.js +5 -5
  72. package/esm2022/picker/datepicker/watt-datepicker-intl.service.js +3 -3
  73. package/esm2022/picker/datepicker/watt-datepicker.component.js +7 -7
  74. package/esm2022/picker/timepicker/watt-timepicker.component.js +5 -5
  75. package/esm2022/progress-tracker/watt-progress-tracker-step.component.js +4 -4
  76. package/esm2022/progress-tracker/watt-progress-tracker.component.js +3 -3
  77. package/esm2022/query-params/watt-query-params.directive.js +3 -3
  78. package/esm2022/radio/watt-radio.component.js +4 -4
  79. package/esm2022/search/watt-search.component.js +5 -5
  80. package/esm2022/segmented-buttons/watt-segmented-button.component.js +5 -5
  81. package/esm2022/segmented-buttons/watt-segmented-buttons.component.js +5 -5
  82. package/esm2022/shell/nav-list/watt-expand-on-active-link.directive.js +4 -4
  83. package/esm2022/shell/nav-list/watt-nav-list-item.component.js +4 -4
  84. package/esm2022/shell/nav-list/watt-nav-list.component.js +5 -5
  85. package/esm2022/shell/shell.component.js +5 -5
  86. package/esm2022/slide-toggle/watt-slide-toggle.component.js +4 -4
  87. package/esm2022/slider/watt-slider.component.js +4 -4
  88. package/esm2022/spinner/watt-spinner.component.js +4 -4
  89. package/esm2022/stepper/watt-stepper-step.component.js +5 -5
  90. package/esm2022/stepper/watt-stepper.component.js +4 -4
  91. package/esm2022/table/watt-table-expand-animation.js +17 -12
  92. package/esm2022/table/watt-table.component.js +12 -12
  93. package/esm2022/tabs/watt-link-tab.component.js +4 -4
  94. package/esm2022/tabs/watt-link-tabs.component.js +5 -5
  95. package/esm2022/tabs/watt-tab.component.js +5 -5
  96. package/esm2022/tabs/watt-tabs-action.component.js +3 -3
  97. package/esm2022/tabs/watt-tabs.component.js +6 -6
  98. package/esm2022/text-field/watt-text-field.component.js +6 -6
  99. package/esm2022/textarea-field/watt-textarea-field.component.js +4 -4
  100. package/esm2022/toast/watt-toast.component.js +4 -4
  101. package/esm2022/toast/watt-toast.service.js +3 -3
  102. package/esm2022/tooltip/watt-tooltip.component.js +4 -4
  103. package/esm2022/tooltip/watt-tooltip.directive.js +4 -4
  104. package/esm2022/utils/css/css-custom-properties.service.js +3 -3
  105. package/esm2022/utils/intersection-observer/watt-intersection-observer.service.js +3 -3
  106. package/esm2022/utils/resize-observer/watt-resize-observer.directive.js +4 -4
  107. package/esm2022/utils/resize-observer/watt-resize-observer.service.js +3 -3
  108. package/esm2022/validation-message/watt-validation-message.component.js +4 -4
  109. package/esm2022/vater/vater-flex.component.js +4 -4
  110. package/esm2022/vater/vater-layout.directive.js +4 -4
  111. package/esm2022/vater/vater-spacer.component.js +3 -3
  112. package/esm2022/vater/vater-stack.component.js +3 -3
  113. package/esm2022/vater/vater-utility.directive.js +4 -4
  114. package/esm2022/year-field/watt-year-field.component.js +4 -4
  115. package/esm2022/yearmonth-field/watt-yearmonth-field.component.js +4 -4
  116. package/package.json +9 -9
@@ -39,14 +39,14 @@ class WattDescriptionListComponent {
39
39
  };
40
40
  });
41
41
  }
42
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDescriptionListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattDescriptionListComponent, isStandalone: true, selector: "watt-description-list", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, groupsPerRow: { classPropertyName: "groupsPerRow", publicName: "groupsPerRow", isSignal: true, isRequired: false, transformFunction: null }, itemSeparators: { classPropertyName: "itemSeparators", publicName: "itemSeparators", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--watt-description-list-groups-per-row": "groupsPerRow()", "class": "descriptionVariant()" } }, queries: [{ propertyName: "descriptionItems", predicate: (WattDescriptionListItemComponent), isSignal: true }], hostDirectives: [{ directive: i1.NgClass }], ngImport: i0, template: `<dl>
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDescriptionListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattDescriptionListComponent, isStandalone: true, selector: "watt-description-list", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, groupsPerRow: { classPropertyName: "groupsPerRow", publicName: "groupsPerRow", isSignal: true, isRequired: false, transformFunction: null }, itemSeparators: { classPropertyName: "itemSeparators", publicName: "itemSeparators", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--watt-description-list-groups-per-row": "groupsPerRow()", "class": "descriptionVariant()" } }, queries: [{ propertyName: "descriptionItems", predicate: (WattDescriptionListItemComponent), isSignal: true }], hostDirectives: [{ directive: i1.NgClass }], ngImport: i0, template: `<dl>
44
44
  @for (item of descriptionItems(); track item) {
45
45
  <ng-container *ngTemplateOutlet="item.templateRef()" />
46
46
  }
47
47
  </dl>`, isInline: true, styles: ["watt-description-list{display:block}watt-description-list.watt-description-list-flow dl{display:grid;gap:var(--watt-space-ml);grid-template-columns:repeat(var(--watt-description-list-groups-per-row, 3),1fr)}watt-description-list.watt-description-list-flow dl dd{margin:0}watt-description-list.watt-description-list-flow dl .force-new-row{grid-column-start:1}watt-description-list.watt-description-list-stack dl{display:grid;gap:var(--watt-space-m);grid-template-columns:1fr}watt-description-list.watt-description-list-stack dl dd{margin:0;flex:1}watt-description-list.watt-description-list-stack dl dt{width:240px}watt-description-list.watt-description-list-stack dl div{display:flex;align-items:baseline}watt-description-list.watt-description-list-stack.item-separators dl div{border-bottom:1px solid var(--watt-color-neutral-grey-300);padding-bottom:var(--watt-space-m)}watt-description-list.watt-description-list-compact dl{display:grid;gap:var(--watt-space-m) var(--watt-space-l);grid-template-columns:max-content max-content}watt-description-list.watt-description-list-compact dl dd{margin:0}watt-description-list.watt-description-list-compact dl div{display:contents}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDescriptionListComponent, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDescriptionListComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{ encapsulation: ViewEncapsulation.None, selector: 'watt-description-list', imports: [NgTemplateOutlet], template: `<dl>
52
52
  @for (item of descriptionItems(); track item) {
@@ -56,10 +56,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
56
56
  '[style.--watt-description-list-groups-per-row]': 'groupsPerRow()',
57
57
  '[class]': 'descriptionVariant()',
58
58
  }, styles: ["watt-description-list{display:block}watt-description-list.watt-description-list-flow dl{display:grid;gap:var(--watt-space-ml);grid-template-columns:repeat(var(--watt-description-list-groups-per-row, 3),1fr)}watt-description-list.watt-description-list-flow dl dd{margin:0}watt-description-list.watt-description-list-flow dl .force-new-row{grid-column-start:1}watt-description-list.watt-description-list-stack dl{display:grid;gap:var(--watt-space-m);grid-template-columns:1fr}watt-description-list.watt-description-list-stack dl dd{margin:0;flex:1}watt-description-list.watt-description-list-stack dl dt{width:240px}watt-description-list.watt-description-list-stack dl div{display:flex;align-items:baseline}watt-description-list.watt-description-list-stack.item-separators dl div{border-bottom:1px solid var(--watt-color-neutral-grey-300);padding-bottom:var(--watt-space-m)}watt-description-list.watt-description-list-compact dl{display:grid;gap:var(--watt-space-m) var(--watt-space-l);grid-template-columns:max-content max-content}watt-description-list.watt-description-list-compact dl dd{margin:0}watt-description-list.watt-description-list-compact dl div{display:contents}\n"] }]
59
- }], ctorParameters: () => [] });
59
+ }], ctorParameters: () => [], propDecorators: { descriptionItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => WattDescriptionListItemComponent), { isSignal: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], groupsPerRow: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupsPerRow", required: false }] }], itemSeparators: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemSeparators", required: false }] }] } });
60
60
  export { WattDescriptionListItemComponent, WattDescriptionListComponent };
61
61
  export const WATT_DESCRIPTION_LIST = [
62
62
  WattDescriptionListComponent,
63
63
  WattDescriptionListItemComponent,
64
64
  ];
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kZXNjcmlwdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Rlc2NyaXB0aW9uLWxpc3Qvd2F0dC1kZXNjcmlwdGlvbi1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFDMUY7OztHQUdHO0FBQ0gsTUFnQk0sNEJBQTRCO0lBQ3hCLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLENBQUEsZ0NBQW1DLENBQUEsNERBQUMsQ0FBQztJQUN4RSxPQUFPLEdBQUcsS0FBSyxDQUErQixNQUFNLG1EQUFDLENBQUM7SUFDdEQsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsOERBQUMsQ0FBQztJQUMvRSxZQUFZLEdBQUcsS0FBSyxDQUFTLENBQUMsd0RBQUMsQ0FBQztJQUNoQyxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksMERBQUMsQ0FBQztJQUU3QjtRQUNFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRztnQkFDckIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7YUFDM0MsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FkRyw0QkFBNEI7MkZBQTVCLDRCQUE0Qix5cEJBRUcsQ0FBQSxnQ0FBbUMsQ0FBQSwwRkFiNUQ7Ozs7UUFJSixpdUNBTEksZ0JBQWdCOzsyRkFZdEIsNEJBQTRCO2tCQWhCakMsU0FBUztvQ0FDTyxpQkFBaUIsQ0FBQyxJQUFJLFlBQzNCLHVCQUF1QixXQUV4QixDQUFDLGdCQUFnQixDQUFDLFlBQ2pCOzs7O1FBSUosa0JBQ1UsQ0FBQyxPQUFPLENBQUMsUUFDbkI7d0JBQ0osZ0RBQWdELEVBQUUsZ0JBQWdCO3dCQUNsRSxTQUFTLEVBQUUsc0JBQXNCO3FCQUNsQzs7QUFtQkgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLDRCQUE0QixFQUFFLENBQUM7QUFDMUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsNEJBQTRCO0lBQzVCLGdDQUFnQztDQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBXYXR0RGVzY3JpcHRpb25MaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vd2F0dC1kZXNjcmlwdGlvbi1saXN0LWl0ZW0uY29tcG9uZW50Jztcbi8qKlxuICogVXNhZ2U6XG4gKiBgaW1wb3J0IHsgV2F0dERlc2NyaXB0aW9uTGlzdENvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQtZGF0YWh1Yi93YXR0L2Rlc2NyaXB0aW9uLWxpc3QnO2BcbiAqL1xuQENvbXBvbmVudCh7XG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHNlbGVjdG9yOiAnd2F0dC1kZXNjcmlwdGlvbi1saXN0JyxcbiAgc3R5bGVVcmxzOiBbJy4vd2F0dC1kZXNjcmlwdGlvbi1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgdGVtcGxhdGU6IGA8ZGw+XG4gICAgQGZvciAoaXRlbSBvZiBkZXNjcmlwdGlvbkl0ZW1zKCk7IHRyYWNrIGl0ZW0pIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtLnRlbXBsYXRlUmVmKClcIiAvPlxuICAgIH1cbiAgPC9kbD5gLFxuICBob3N0RGlyZWN0aXZlczogW05nQ2xhc3NdLFxuICBob3N0OiB7XG4gICAgJ1tzdHlsZS4tLXdhdHQtZGVzY3JpcHRpb24tbGlzdC1ncm91cHMtcGVyLXJvd10nOiAnZ3JvdXBzUGVyUm93KCknLFxuICAgICdbY2xhc3NdJzogJ2Rlc2NyaXB0aW9uVmFyaWFudCgpJyxcbiAgfSxcbn0pXG5jbGFzcyBXYXR0RGVzY3JpcHRpb25MaXN0Q29tcG9uZW50PFQ+IHtcbiAgcHJpdmF0ZSBuZ0NsYXNzID0gaW5qZWN0KE5nQ2xhc3MpO1xuICBkZXNjcmlwdGlvbkl0ZW1zID0gY29udGVudENoaWxkcmVuKFdhdHREZXNjcmlwdGlvbkxpc3RJdGVtQ29tcG9uZW50PFQ+KTtcbiAgdmFyaWFudCA9IGlucHV0PCdmbG93JyB8ICdzdGFjaycgfCAnY29tcGFjdCc+KCdmbG93Jyk7XG4gIGRlc2NyaXB0aW9uVmFyaWFudCA9IGNvbXB1dGVkKCgpID0+IGB3YXR0LWRlc2NyaXB0aW9uLWxpc3QtJHt0aGlzLnZhcmlhbnQoKX1gKTtcbiAgZ3JvdXBzUGVyUm93ID0gaW5wdXQ8bnVtYmVyPigzKTtcbiAgaXRlbVNlcGFyYXRvcnMgPSBpbnB1dCh0cnVlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5uZ0NsYXNzLm5nQ2xhc3MgPSB7XG4gICAgICAgIFtgaXRlbS1zZXBhcmF0b3JzYF06IHRoaXMuaXRlbVNlcGFyYXRvcnMoKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgV2F0dERlc2NyaXB0aW9uTGlzdEl0ZW1Db21wb25lbnQsIFdhdHREZXNjcmlwdGlvbkxpc3RDb21wb25lbnQgfTtcbmV4cG9ydCBjb25zdCBXQVRUX0RFU0NSSVBUSU9OX0xJU1QgPSBbXG4gIFdhdHREZXNjcmlwdGlvbkxpc3RDb21wb25lbnQsXG4gIFdhdHREZXNjcmlwdGlvbkxpc3RJdGVtQ29tcG9uZW50LFxuXSBhcyBjb25zdDtcbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kZXNjcmlwdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Rlc2NyaXB0aW9uLWxpc3Qvd2F0dC1kZXNjcmlwdGlvbi1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFDMUY7OztHQUdHO0FBQ0gsTUFnQk0sNEJBQTRCO0lBQ3hCLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLENBQUEsZ0NBQW1DLENBQUEsNERBQUMsQ0FBQztJQUN4RSxPQUFPLEdBQUcsS0FBSyxDQUErQixNQUFNLG1EQUFDLENBQUM7SUFDdEQsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsOERBQUMsQ0FBQztJQUMvRSxZQUFZLEdBQUcsS0FBSyxDQUFTLENBQUMsd0RBQUMsQ0FBQztJQUNoQyxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksMERBQUMsQ0FBQztJQUU3QjtRQUNFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRztnQkFDckIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7YUFDM0MsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FkRyw0QkFBNEI7MkZBQTVCLDRCQUE0Qix5cEJBRUcsQ0FBQSxnQ0FBbUMsQ0FBQSwwRkFiNUQ7Ozs7UUFJSixpdUNBTEksZ0JBQWdCOzsyRkFZdEIsNEJBQTRCO2tCQWhCakMsU0FBUztvQ0FDTyxpQkFBaUIsQ0FBQyxJQUFJLFlBQzNCLHVCQUF1QixXQUV4QixDQUFDLGdCQUFnQixDQUFDLFlBQ2pCOzs7O1FBSUosa0JBQ1UsQ0FBQyxPQUFPLENBQUMsUUFDbkI7d0JBQ0osZ0RBQWdELEVBQUUsZ0JBQWdCO3dCQUNsRSxTQUFTLEVBQUUsc0JBQXNCO3FCQUNsQztrSUFJa0MsZ0NBQW1DO0FBZXhFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSw0QkFBNEIsRUFBRSxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBQ25DLDRCQUE0QjtJQUM1QixnQ0FBZ0M7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkcmVuLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgV2F0dERlc2NyaXB0aW9uTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3dhdHQtZGVzY3JpcHRpb24tbGlzdC1pdGVtLmNvbXBvbmVudCc7XG4vKipcbiAqIFVzYWdlOlxuICogYGltcG9ydCB7IFdhdHREZXNjcmlwdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0LWRhdGFodWIvd2F0dC9kZXNjcmlwdGlvbi1saXN0JztgXG4gKi9cbkBDb21wb25lbnQoe1xuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzZWxlY3RvcjogJ3dhdHQtZGVzY3JpcHRpb24tbGlzdCcsXG4gIHN0eWxlVXJsczogWycuL3dhdHQtZGVzY3JpcHRpb24tbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXG4gIHRlbXBsYXRlOiBgPGRsPlxuICAgIEBmb3IgKGl0ZW0gb2YgZGVzY3JpcHRpb25JdGVtcygpOyB0cmFjayBpdGVtKSB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS50ZW1wbGF0ZVJlZigpXCIgLz5cbiAgICB9XG4gIDwvZGw+YCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtOZ0NsYXNzXSxcbiAgaG9zdDoge1xuICAgICdbc3R5bGUuLS13YXR0LWRlc2NyaXB0aW9uLWxpc3QtZ3JvdXBzLXBlci1yb3ddJzogJ2dyb3Vwc1BlclJvdygpJyxcbiAgICAnW2NsYXNzXSc6ICdkZXNjcmlwdGlvblZhcmlhbnQoKScsXG4gIH0sXG59KVxuY2xhc3MgV2F0dERlc2NyaXB0aW9uTGlzdENvbXBvbmVudDxUPiB7XG4gIHByaXZhdGUgbmdDbGFzcyA9IGluamVjdChOZ0NsYXNzKTtcbiAgZGVzY3JpcHRpb25JdGVtcyA9IGNvbnRlbnRDaGlsZHJlbihXYXR0RGVzY3JpcHRpb25MaXN0SXRlbUNvbXBvbmVudDxUPik7XG4gIHZhcmlhbnQgPSBpbnB1dDwnZmxvdycgfCAnc3RhY2snIHwgJ2NvbXBhY3QnPignZmxvdycpO1xuICBkZXNjcmlwdGlvblZhcmlhbnQgPSBjb21wdXRlZCgoKSA9PiBgd2F0dC1kZXNjcmlwdGlvbi1saXN0LSR7dGhpcy52YXJpYW50KCl9YCk7XG4gIGdyb3Vwc1BlclJvdyA9IGlucHV0PG51bWJlcj4oMyk7XG4gIGl0ZW1TZXBhcmF0b3JzID0gaW5wdXQodHJ1ZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMubmdDbGFzcy5uZ0NsYXNzID0ge1xuICAgICAgICBbYGl0ZW0tc2VwYXJhdG9yc2BdOiB0aGlzLml0ZW1TZXBhcmF0b3JzKCksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCB7IFdhdHREZXNjcmlwdGlvbkxpc3RJdGVtQ29tcG9uZW50LCBXYXR0RGVzY3JpcHRpb25MaXN0Q29tcG9uZW50IH07XG5leHBvcnQgY29uc3QgV0FUVF9ERVNDUklQVElPTl9MSVNUID0gW1xuICBXYXR0RGVzY3JpcHRpb25MaXN0Q29tcG9uZW50LFxuICBXYXR0RGVzY3JpcHRpb25MaXN0SXRlbUNvbXBvbmVudCxcbl0gYXMgY29uc3Q7XG4iXX0=
@@ -19,10 +19,10 @@
19
19
  import { Component } from '@angular/core';
20
20
  import * as i0 from "@angular/core";
21
21
  export class WattDrawerActionsComponent {
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDrawerActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: WattDrawerActionsComponent, isStandalone: true, selector: "watt-drawer-actions", ngImport: i0, template: `<ng-content select="watt-button" />`, isInline: true });
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDrawerActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: WattDrawerActionsComponent, isStandalone: true, selector: "watt-drawer-actions", ngImport: i0, template: `<ng-content select="watt-button" />`, isInline: true });
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDrawerActionsComponent, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDrawerActionsComponent, decorators: [{
26
26
  type: Component,
27
27
  args: [{
28
28
  selector: 'watt-drawer-actions',
@@ -19,10 +19,10 @@
19
19
  import { Component } from '@angular/core';
20
20
  import * as i0 from "@angular/core";
21
21
  export class WattDrawerContentComponent {
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDrawerContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: WattDrawerContentComponent, isStandalone: true, selector: "watt-drawer-content", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host{overflow:auto;padding:var(--watt-space-ml)}\n"] });
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDrawerContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: WattDrawerContentComponent, isStandalone: true, selector: "watt-drawer-content", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host{overflow:auto;padding:var(--watt-space-ml)}\n"] });
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDrawerContentComponent, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDrawerContentComponent, decorators: [{
26
26
  type: Component,
27
27
  args: [{ selector: 'watt-drawer-content', template: `<ng-content />`, styles: [":host{overflow:auto;padding:var(--watt-space-ml)}\n"] }]
28
28
  }] });
@@ -19,10 +19,10 @@
19
19
  import { Component, ViewEncapsulation } from '@angular/core';
20
20
  import * as i0 from "@angular/core";
21
21
  export class WattDrawerHeadingComponent {
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDrawerHeadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: WattDrawerHeadingComponent, isStandalone: true, selector: "watt-drawer-heading", ngImport: i0, template: `<ng-content />`, isInline: true, styles: ["watt-drawer-heading h1,watt-drawer-heading h2,watt-drawer-heading h3,watt-drawer-heading h4,watt-drawer-heading h5,watt-drawer-heading h6{margin:0;line-height:48px!important}\n"], encapsulation: i0.ViewEncapsulation.None });
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDrawerHeadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: WattDrawerHeadingComponent, isStandalone: true, selector: "watt-drawer-heading", ngImport: i0, template: `<ng-content />`, isInline: true, styles: ["watt-drawer-heading h1,watt-drawer-heading h2,watt-drawer-heading h3,watt-drawer-heading h4,watt-drawer-heading h5,watt-drawer-heading h6{margin:0;line-height:48px!important}\n"], encapsulation: i0.ViewEncapsulation.None });
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDrawerHeadingComponent, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDrawerHeadingComponent, decorators: [{
26
26
  type: Component,
27
27
  args: [{ selector: 'watt-drawer-heading', encapsulation: ViewEncapsulation.None, template: `<ng-content />`, styles: ["watt-drawer-heading h1,watt-drawer-heading h2,watt-drawer-heading h3,watt-drawer-heading h4,watt-drawer-heading h5,watt-drawer-heading h6{margin:0;line-height:48px!important}\n"] }]
28
28
  }] });
@@ -19,10 +19,10 @@
19
19
  import { Component } from '@angular/core';
20
20
  import * as i0 from "@angular/core";
21
21
  export class WattDrawerTopbarComponent {
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDrawerTopbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: WattDrawerTopbarComponent, isStandalone: true, selector: "watt-drawer-topbar", ngImport: i0, template: `<ng-content />`, isInline: true });
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDrawerTopbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: WattDrawerTopbarComponent, isStandalone: true, selector: "watt-drawer-topbar", ngImport: i0, template: `<ng-content />`, isInline: true });
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDrawerTopbarComponent, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDrawerTopbarComponent, decorators: [{
26
26
  type: Component,
27
27
  args: [{
28
28
  selector: 'watt-drawer-topbar',
@@ -160,10 +160,10 @@ export class WattDrawerComponent {
160
160
  WattDrawerComponent.currentDrawer = undefined;
161
161
  this.writableIsOpen.set(false);
162
162
  }
163
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
164
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattDrawerComponent, isStandalone: true, selector: "watt-drawer", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, autoOpen: { classPropertyName: "autoOpen", publicName: "autoOpen", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, animateOnKeyChange: { classPropertyName: "animateOnKeyChange", publicName: "animateOnKeyChange", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, host: { listeners: { "document:click": "handleDocumentClick($event)", "keydown.escape": "handleEscKeyPressed()" } }, queries: [{ propertyName: "content", first: true, predicate: WattDrawerContentComponent, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "heading", first: true, predicate: WattDrawerHeadingComponent, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "topBar", first: true, predicate: WattDrawerTopbarComponent, descendants: true, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "cdkTrapFocus", first: true, predicate: CdkTrapFocus, descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<mat-drawer-container class=\"watt-drawer-container\" [hasBackdrop]=\"false\">\n <mat-drawer\n class=\"watt-drawer watt-drawer--{{ size() }}\"\n mode=\"side\"\n position=\"end\"\n [opened]=\"isOpen()\"\n (closed)=\"closed.emit()\"\n [disableClose]=\"true\"\n [autoFocus]=\"true\"\n [cdkTrapFocus]=\"true\"\n >\n <article vater-flex fill=\"vertical\">\n <header vater-stack align=\"stretch\" offset=\"m\" gap=\"s\">\n <vater-stack direction=\"row\" offset=\"ml\" gap=\"s\" align=\"center\">\n <ng-content select=\"watt-drawer-topbar\" />\n <vater-spacer />\n <watt-button variant=\"icon\" icon=\"close\" (click)=\"close()\" />\n </vater-stack>\n <vater-stack direction=\"row\" offset=\"ml\" justify=\"space-between\" gap=\"s\" align=\"center\">\n <ng-content select=\"watt-drawer-heading\" />\n <ng-content select=\"watt-drawer-actions\" />\n </vater-stack>\n </header>\n <ng-content />\n <ng-content select=\"watt-drawer-content\" />\n </article>\n\n @if (loading()) {\n <div class=\"watt-drawer__spinner\">\n <watt-spinner />\n </div>\n }\n </mat-drawer>\n</mat-drawer-container>\n", styles: [":host{display:block}.watt-drawer-container{box-shadow:0 4px 64px 3px #2e323440;height:100vh;position:fixed;right:0;top:0;width:auto;z-index:500}.watt-drawer--small{width:460px;max-width:100vw}.watt-drawer--normal{width:906px;max-width:100vw}.watt-drawer--large{width:1174px;max-width:100vw}.watt-drawer header{flex:0;border-bottom:1px solid var(--watt-color-neutral-grey-300)}.watt-drawer__spinner{z-index:1;position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background-color:var(--watt-color-neutral-white);opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i2.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i2.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: VaterFlexComponent, selector: "vater-flex, [vater-flex]", inputs: ["autoSize"] }, { kind: "component", type: VaterStackComponent, selector: "vater-stack, [vater-stack]" }, { kind: "component", type: VaterSpacerComponent, selector: "vater-spacer, [vater-spacer]" }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattSpinnerComponent, selector: "watt-spinner", inputs: ["diameter", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
163
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
164
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattDrawerComponent, isStandalone: true, selector: "watt-drawer", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, autoOpen: { classPropertyName: "autoOpen", publicName: "autoOpen", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, animateOnKeyChange: { classPropertyName: "animateOnKeyChange", publicName: "animateOnKeyChange", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, host: { listeners: { "document:click": "handleDocumentClick($event)", "keydown.escape": "handleEscKeyPressed()" } }, queries: [{ propertyName: "content", first: true, predicate: WattDrawerContentComponent, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "heading", first: true, predicate: WattDrawerHeadingComponent, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "topBar", first: true, predicate: WattDrawerTopbarComponent, descendants: true, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "cdkTrapFocus", first: true, predicate: CdkTrapFocus, descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<mat-drawer-container class=\"watt-drawer-container\" [hasBackdrop]=\"false\">\n <mat-drawer\n class=\"watt-drawer watt-drawer--{{ size() }}\"\n mode=\"side\"\n position=\"end\"\n [opened]=\"isOpen()\"\n (closed)=\"closed.emit()\"\n [disableClose]=\"true\"\n [autoFocus]=\"true\"\n [cdkTrapFocus]=\"true\"\n >\n <article vater-flex fill=\"vertical\">\n <header vater-stack align=\"stretch\" offset=\"m\" gap=\"s\">\n <vater-stack direction=\"row\" offset=\"ml\" gap=\"s\" align=\"center\">\n <ng-content select=\"watt-drawer-topbar\" />\n <vater-spacer />\n <watt-button variant=\"icon\" icon=\"close\" (click)=\"close()\" />\n </vater-stack>\n <vater-stack direction=\"row\" offset=\"ml\" justify=\"space-between\" gap=\"s\" align=\"center\">\n <ng-content select=\"watt-drawer-heading\" />\n <ng-content select=\"watt-drawer-actions\" />\n </vater-stack>\n </header>\n <ng-content />\n <ng-content select=\"watt-drawer-content\" />\n </article>\n\n @if (loading()) {\n <div class=\"watt-drawer__spinner\">\n <watt-spinner />\n </div>\n }\n </mat-drawer>\n</mat-drawer-container>\n", styles: [":host{display:block}.watt-drawer-container{box-shadow:0 4px 64px 3px #2e323440;height:100vh;position:fixed;right:0;top:0;width:auto;z-index:500}.watt-drawer--small{width:460px;max-width:100vw}.watt-drawer--normal{width:906px;max-width:100vw}.watt-drawer--large{width:1174px;max-width:100vw}.watt-drawer header{flex:0;border-bottom:1px solid var(--watt-color-neutral-grey-300)}.watt-drawer__spinner{z-index:1;position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background-color:var(--watt-color-neutral-white);opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i2.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i2.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: VaterFlexComponent, selector: "vater-flex, [vater-flex]", inputs: ["autoSize"] }, { kind: "component", type: VaterStackComponent, selector: "vater-stack, [vater-stack]" }, { kind: "component", type: VaterSpacerComponent, selector: "vater-spacer, [vater-spacer]" }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattSpinnerComponent, selector: "watt-spinner", inputs: ["diameter", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
165
165
  }
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDrawerComponent, decorators: [{
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDrawerComponent, decorators: [{
167
167
  type: Component,
168
168
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'watt-drawer', host: {
169
169
  '(document:click)': 'handleDocumentClick($event)',
@@ -178,7 +178,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
178
178
  WattButtonComponent,
179
179
  WattSpinnerComponent,
180
180
  ], template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<mat-drawer-container class=\"watt-drawer-container\" [hasBackdrop]=\"false\">\n <mat-drawer\n class=\"watt-drawer watt-drawer--{{ size() }}\"\n mode=\"side\"\n position=\"end\"\n [opened]=\"isOpen()\"\n (closed)=\"closed.emit()\"\n [disableClose]=\"true\"\n [autoFocus]=\"true\"\n [cdkTrapFocus]=\"true\"\n >\n <article vater-flex fill=\"vertical\">\n <header vater-stack align=\"stretch\" offset=\"m\" gap=\"s\">\n <vater-stack direction=\"row\" offset=\"ml\" gap=\"s\" align=\"center\">\n <ng-content select=\"watt-drawer-topbar\" />\n <vater-spacer />\n <watt-button variant=\"icon\" icon=\"close\" (click)=\"close()\" />\n </vater-stack>\n <vater-stack direction=\"row\" offset=\"ml\" justify=\"space-between\" gap=\"s\" align=\"center\">\n <ng-content select=\"watt-drawer-heading\" />\n <ng-content select=\"watt-drawer-actions\" />\n </vater-stack>\n </header>\n <ng-content />\n <ng-content select=\"watt-drawer-content\" />\n </article>\n\n @if (loading()) {\n <div class=\"watt-drawer__spinner\">\n <watt-spinner />\n </div>\n }\n </mat-drawer>\n</mat-drawer-container>\n", styles: [":host{display:block}.watt-drawer-container{box-shadow:0 4px 64px 3px #2e323440;height:100vh;position:fixed;right:0;top:0;width:auto;z-index:500}.watt-drawer--small{width:460px;max-width:100vw}.watt-drawer--normal{width:906px;max-width:100vw}.watt-drawer--large{width:1174px;max-width:100vw}.watt-drawer header{flex:0;border-bottom:1px solid var(--watt-color-neutral-grey-300)}.watt-drawer__spinner{z-index:1;position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background-color:var(--watt-color-neutral-white);opacity:.5}\n"] }]
181
- }], ctorParameters: () => [] });
181
+ }], ctorParameters: () => [], propDecorators: { content: [{ type: i0.ContentChild, args: [i0.forwardRef(() => WattDrawerContentComponent), { ...{ read: ElementRef }, isSignal: true }] }], heading: [{ type: i0.ContentChild, args: [i0.forwardRef(() => WattDrawerHeadingComponent), { ...{ read: ElementRef }, isSignal: true }] }], topBar: [{ type: i0.ContentChild, args: [i0.forwardRef(() => WattDrawerTopbarComponent), { ...{ read: ElementRef }, isSignal: true }] }], cdkTrapFocus: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkTrapFocus), { isSignal: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], autoOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoOpen", required: false }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], animateOnKeyChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "animateOnKeyChange", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
182
182
  export const WATT_DRAWER = [
183
183
  WattDrawerComponent,
184
184
  WattDrawerTopbarComponent,
@@ -186,4 +186,4 @@ export const WATT_DRAWER = [
186
186
  WattDrawerContentComponent,
187
187
  WattDrawerHeadingComponent,
188
188
  ];
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy93YXR0L3BhY2thZ2UvZHJhd2VyL3dhdHQtZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2RyYXdlci93YXR0LWRyYXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULFVBQVUsRUFDVix1QkFBdUIsRUFDdkIsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFD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LG1CQUFtQix1RUFDbkIsb0JBQW9CLHlFQUVwQixtQkFBbUIsc0lBQ25CLG9CQUFvQjs7MkZBR1gsbUJBQW1CO2tCQXBCL0IsU0FBUztzQ0FDUyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGFBQWEsUUFHakI7d0JBQ0osa0JBQWtCLEVBQUUsNkJBQTZCO3dCQUNqRCxrQkFBa0IsRUFBRSx1QkFBdUI7cUJBQzVDLFdBQ1E7d0JBQ1AsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixvQkFBb0I7cUJBQ3JCOztBQThJSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6QiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDBCQUEwQjtDQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgdmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgc2lnbmFsLFxuICB1bnRyYWNrZWQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbnRlbnRDaGlsZCxcbiAgZWZmZWN0LFxuICBhZnRlclJlbmRlckVmZmVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtUcmFwRm9jdXMsIEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5cbmltcG9ydCB7XG4gIFZhdGVyRmxleENvbXBvbmVudCxcbiAgVmF0ZXJTcGFjZXJDb21wb25lbnQsXG4gIFZhdGVyU3RhY2tDb21wb25lbnQsXG4gIFZhdGVyVXRpbGl0eURpcmVjdGl2ZSxcbn0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3ZhdGVyJztcbmltcG9ydCB7IFdhdHRCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvYnV0dG9uJztcbmltcG9ydCB7IFdhdHRTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3NwaW5uZXInO1xuXG5pbXBvcnQgeyBXYXR0RHJhd2VyVG9wYmFyQ29tcG9uZW50IH0gZnJvbSAnLi93YXR0LWRyYXdlci10b3BiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdhdHREcmF3ZXJBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi93YXR0LWRyYXdlci1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXYXR0RHJhd2VyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vd2F0dC1kcmF3ZXItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2F0dERyYXdlckhlYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL3dhdHQtZHJhd2VyLWhlYWRpbmcuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgV2F0dERyYXdlclNpemUgPSAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xuXG5jb25zdCBBUFBFQVJfQU5JTUFUSU9OX0RFTEFZID0gMjUwO1xuY29uc3QgQVBQRUFSX0FOSU1BVElPTl9GUkFNRVMgPSB7XG4gIHRyYW5zZm9ybTogWyd0cmFuc2xhdGVYKDMwcHgpJywgJ3RyYW5zbGF0ZVgoMCknXSxcbiAgb3BhY2l0eTogWycwJywgJzEnXSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc2VsZWN0b3I6ICd3YXR0LWRyYXdlcicsXG4gIHN0eWxlVXJsczogWycuL3dhdHQtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi93YXR0LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICAnKGRvY3VtZW50OmNsaWNrKSc6ICdoYW5kbGVEb2N1bWVudENsaWNrKCRldmVudCknLFxuICAgICcoa2V5ZG93bi5lc2NhcGUpJzogJ2hhbmRsZUVzY0tleVByZXNzZWQoKScsXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBBMTF5TW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgVmF0ZXJGbGV4Q29tcG9uZW50LFxuICAgIFZhdGVyU3RhY2tDb21wb25lbnQsXG4gICAgVmF0ZXJTcGFjZXJDb21wb25lbnQsXG4gICAgVmF0ZXJVdGlsaXR5RGlyZWN0aXZlLFxuICAgIFdhdHRCdXR0b25Db21wb25lbnQsXG4gICAgV2F0dFNwaW5uZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdhdHREcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgb3ZlcmxheUNvbnRhaW5lciA9IGluamVjdChPdmVybGF5Q29udGFpbmVyKTtcbiAgcHJpdmF0ZSBjb250ZW50ID0gY29udGVudENoaWxkKFdhdHREcmF3ZXJDb250ZW50Q29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gIHByaXZhdGUgaGVhZGluZyA9IGNvbnRlbnRDaGlsZChXYXR0RHJhd2VySGVhZGluZ0NvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICBwcml2YXRlIHRvcEJhciA9IGNvbnRlbnRDaGlsZChXYXR0RHJhd2VyVG9wYmFyQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gIHByaXZhdGUgY2RrVHJhcEZvY3VzID0gdmlld0NoaWxkLnJlcXVpcmVkKENka1RyYXBGb2N1cyk7XG4gIHByaXZhdGUgYnlwYXNzQ2xpY2tDaGVjayA9IGZhbHNlO1xuICBwcml2YXRlIHdyaXRhYmxlSXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcblxuICAvLyBNdWx0aXBsZSBkcmF3ZXJzIG9wZW4gYXQgdGhlIHNhbWUgdGltZSBhcmUgbm90IGFsbG93ZWQuIFRoaXMga2VlcHMgdHJhY2sgb2ZcbiAgLy8gdGhlIGN1cnJlbnRseSBvcGVuZWQgZHJhd2VyIGFuZCBjbG9zZXMgaXQgd2hlbiBhIG5ldyBkcmF3ZXIgaXMgb3BlbmVkLlxuICBwcml2YXRlIHN0YXRpYyBjdXJyZW50RHJhd2VyPzogV2F0dERyYXdlckNvbXBvbmVudDtcblxuICAvKiogVXNlZCB0byBhZGp1c3QgZHJhd2VyIHNpemUgdG8gYmVzdCBmaXQgdGhlIGNvbnRlbnQuICovXG4gIHNpemUgPSBpbnB1dDxXYXR0RHJhd2VyU2l6ZT4oJ25vcm1hbCcpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBkcmF3ZXIgc2hvdWxkIG9wZW4gYXV0b21hdGljYWxseS4gSWYgYGtleWAgaXMgcHJvdmlkZWQgYW5kXG4gICAqIGBhdXRvT3BlbmAgaXMgdHJ1ZSwgdGhlIGRyYXdlciB3aWxsIG9wZW4gZXZlcnkgdGltZSB0aGUga2V5IGNoYW5nZXMuXG4gICAqL1xuICBhdXRvT3BlbiA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogVXNlZCB0byB0cmFjayB0aGUgY3VycmVudCBkcmF3ZXIgd2hlbiByZXVzaW5nIHRoZSBzYW1lIGRyYXdlciBpbnN0YW5jZSB0b1xuICAgKiByZW5kZXIgZGlmZmVyZW50IGNvbnRlbnQuIFRoaXMgaXMgcmVxdWlyZWQgd2hlbiBpbnRlcmFjdGlvbnMgb3V0c2lkZSB0aGVcbiAgICogZHJhd2VyIHNob3VsZCByZXN1bHQgaW4gdXBkYXRpbmcgdGhlIGRyYXdlcidzIGNvbnRlbnQgaW5zdGVhZCBvZiBjbG9zaW5nIGl0LlxuICAgKi9cbiAga2V5ID0gaW5wdXQ8dW5rbm93bj4oKTtcblxuICAvKiogV2hldGhlciB0aGUgZHJhd2VyIHNob3VsZCBzaG93IGEgbG9hZGluZyBzdGF0ZS4gKi9cbiAgbG9hZGluZyA9IGlucHV0KGZhbHNlKTtcblxuICAvKiogQWRkcyBhIGJyaWVmIGFuaW1hdGlvbiB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjb250ZW50IGhhcyBjaGFuZ2VkLiAqL1xuICBhbmltYXRlT25LZXlDaGFuZ2UgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBkcmF3ZXIgaXMgZnVsbHkgY2xvc2VkLiAqL1xuICBjbG9zZWQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAvKiogV2hldGhlciB0aGUgZHJhd2VyIGlzIG9wZW4uICAqL1xuICBpc09wZW4gPSB0aGlzLndyaXRhYmxlSXNPcGVuLmFzUmVhZG9ubHkoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlclJlbmRlckVmZmVjdCh7XG4gICAgICByZWFkOiAoKSA9PiB7XG4gICAgICAgIHRoaXMua2V5KCk7XG4gICAgICAgIGlmICh0aGlzLmF1dG9PcGVuKCkpIHRoaXMub3BlbigpO1xuICAgICAgICBpZiAoIXRoaXMuYW5pbWF0ZU9uS2V5Q2hhbmdlKCkpIHJldHVybjtcbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKCkpIHJldHVybjtcbiAgICAgICAgICB0aGlzLmNvbnRlbnQoKT8ubmF0aXZlRWxlbWVudC5hbmltYXRlKEFQUEVBUl9BTklNQVRJT05fRlJBTUVTLCBBUFBFQVJfQU5JTUFUSU9OX0RFTEFZKTtcbiAgICAgICAgICB0aGlzLmhlYWRpbmcoKT8ubmF0aXZlRWxlbWVudC5hbmltYXRlKEFQUEVBUl9BTklNQVRJT05fRlJBTUVTLCBBUFBFQVJfQU5JTUFUSU9OX0RFTEFZKTtcbiAgICAgICAgICB0aGlzLnRvcEJhcigpPy5uYXRpdmVFbGVtZW50LmFuaW1hdGUoQVBQRUFSX0FOSU1BVElPTl9GUkFNRVMsIEFQUEVBUl9BTklNQVRJT05fREVMQVkpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBXaG8gZG9lc24ndCBsb3ZlIGEgZ29vZCB3b3JrYXJvdW5kLCByaWdodD9cbiAgICAvLyBMZXQncyBtYWtlIHRoZSBkcmF3ZXIgcmVzaXplIGl0c2VsZiB3aGVuZXZlciB0aGUgYHNpemVgIGlucHV0IGNoYW5nZXMuXG4gICAgLy9cbiAgICAvLyBUaGUgYG1hdC1kcmF3ZXJgIGNvbXBvbmVudCBvZmZlcnMgdGhlIGBhdXRvc2l6ZWAgaW5wdXQgZm9yIHRoaXMuXG4gICAgLy8gSG93ZXZlciwgaXQgaXMgc3BlY2lmaWNhbGx5IG1lbnRpb25lZCB0aGF0IHRoaXMgb3B0aW9ucyBzaG91bGQgYmUgdXNlZCBhdCBvd24gcmlzayxcbiAgICAvLyBhcyBpdCBjb3VsZCBjYXVzZSBwZXJmb3JtYW5jZSBpc3N1ZXMuXG4gICAgLy8gU2VlOiBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuZGV2L2NvbXBvbmVudHMvc2lkZW5hdi9vdmVydmlldyNyZXNpemluZy1hbi1vcGVuLXNpZGVuYXZcbiAgICAvL1xuICAgIC8vIFNvIHRvIHdvcmsgYXJvdW5kIHRoaXMsIGEgc2ltcGxlIGByZXNpemVgIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIGBzaXplYCBpbnB1dCBjaGFuZ2VzLlxuICAgIC8vIFRoaXMgd29ya3MgYmVjYXVzZSBgbWF0LWRyYXdlcmAgdXNlcyBgVmlld3BvcnRSdWxlcmAgZnJvbSBgQGFuZ3VsYXIvY2RrL3Njcm9sbGluZ2BcbiAgICAvLyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi8xOS4yLjEvc3JjL21hdGVyaWFsL3NpZGVuYXYvZHJhd2VyLnRzI0w4MTEtTDgxNilcbiAgICAvLyB0byBsaXN0ZW4gdG8gYHJlc2l6ZWAgZXZlbnRzIGFuZCByZS1jYWxjdWxhdGVzIG1hcmdpbnMgYXBwbGllZCB0byB0aGUgZHJhd2VyIGNvbnRlbnRcbiAgICAvLyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi8yMC4wLjAtcmMuMi9zcmMvY2RrL3Njcm9sbGluZy92aWV3cG9ydC1ydWxlci50cyNMNTAtTDUzKS5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5zaXplKCk7XG5cbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgaGFuZGxlRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIC8vIFByZXZlbnQgY2xvc2luZyB3aGVuIHRoZSBjbGljayB0cmlnZ2VyZWQgYSBjYWxsIHRvIGBvcGVuYFxuICAgIGlmICh0aGlzLmJ5cGFzc0NsaWNrQ2hlY2spIHJldHVybjtcblxuICAgIC8vIENoZWNrIGlmIHRoZSBjbGljayBvcmlnaW5hdGVkIGZyb20gd2l0aGluIHRoZSBkcmF3ZXIgZWxlbWVudFxuICAgIGNvbnN0IGlzQ2xpY2tJbnNpZGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgIGlmIChpc0NsaWNrSW5zaWRlKSByZXR1cm47XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY2xpY2sgb3JpZ2luYXRlZCBmcm9tIHdpdGhpbiBhbiBvdmVybGF5IChzdWNoIGFzIGEgbW9kYWwpXG4gICAgY29uc3Qgb3ZlcmxheUNvbnRhaW5lckVsID0gdGhpcy5vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKTtcbiAgICBjb25zdCBpc092ZXJsYXlDbGljayA9IG92ZXJsYXlDb250YWluZXJFbC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSk7XG4gICAgaWYgKGlzT3ZlcmxheUNsaWNrKSByZXR1cm47XG5cbiAgICAvLyBDbGljayBpcyBhbGxvd2VkIHRvIGNsb3NlIHRoZSBkcmF3ZXIgbm93XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgaGFuZGxlRXNjS2V5UHJlc3NlZCgpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoV2F0dERyYXdlckNvbXBvbmVudC5jdXJyZW50RHJhd2VyID09PSB0aGlzKSB7XG4gICAgICBXYXR0RHJhd2VyQ29tcG9uZW50LmN1cnJlbnREcmF3ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBkcmF3ZXIuIFN1YnNlcXVlbnQgY2FsbHMgYXJlIGlnbm9yZWQgd2hpbGUgdGhlIGRyYXdlciBpcyBvcGVuZWQuICovXG4gIG9wZW4oKSB7XG4gICAgLy8gVHJhcCBmb2N1cyB3aGVuZXZlciBvcGVuIGlzIGNhbGxlZC4gVGhpcyBkb2Vzbid0IHdvcmsgb24gdGhlXG4gICAgLy8gaW5pdGlhbCBjYWxsICh3aGVuIGZpcnN0IG9wZW5pbmcgdGhlIGRyYXdlciksIGJ1dCB0aGlzIGlzXG4gICAgLy8gaGFuZGxlZCBieSB0aGUgYXV0b0ZvY3VzIHByb3BlcnR5IG9uIG1hdC1kcmF3ZXIuXG4gICAgdGhpcy5jZGtUcmFwRm9jdXMoKS5mb2N1c1RyYXAuZm9jdXNJbml0aWFsRWxlbWVudFdoZW5SZWFkeSgpO1xuXG4gICAgLy8gRGlzYWJsZSBjbGljayBvdXRzaWRlIGNoZWNrIHVudGlsIHRoZSBjdXJyZW50IGV2ZW50IGxvb3AgaXMgZmluaXNoZWQuXG4gICAgLy8gVGhpcyBtaWdodCBzZWVtIGhhY2tpc2gsIGJ1dCB0aGUgb3JkZXIgb2YgZXhlY3V0aW9uIGlzIHN0YWJsZSBoZXJlLlxuICAgIC8vIEFsc28gcHJldmVudHMgYW4gaXNzdWUgd2hlbiB0aGUgZHJhd2VyIGlzIGRlc3Ryb3llZCBhbmQgdGhlbiByZWNyZWF0ZWQsXG4gICAgLy8gY2F1c2luZyB0aGUgY2xpY2sgb3V0c2lkZSBjaGVjayB0byB0cmlnZ2VyIGltbWVkaWF0ZWx5IGlmIHRoZSBkcmF3ZXJcbiAgICAvLyBpcyBjcmVhdGVkIGFuZCBvcGVuZWQgaW4gcmVzcG9uc2UgdG8gYSBjbGljayBldmVudC5cbiAgICB0aGlzLmJ5cGFzc0NsaWNrQ2hlY2sgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5ieXBhc3NDbGlja0NoZWNrID0gZmFsc2U7XG4gICAgfSwgMCk7XG5cbiAgICAvLyBXaXRob3V0IGB1bnRyYWNrZWRgLCBpZiB0aGlzIGlzIGNhbGxlZCBpbiBhIHJlYWN0aXZlIGNvbnRleHQgKHN1Y2ggYXMgYW4gYGVmZmVjdGApLFxuICAgIC8vIGl0IHdpbGwgYmUgdHJpZ2dlcmVkIHR3aWNlIGR1ZSB0byBgaXNPcGVuYCBiZWluZyB0cmFja2VkIGFuZCBpbW1lZGlhdGVseSB1cGRhdGVkLlxuICAgIGlmICh1bnRyYWNrZWQodGhpcy5pc09wZW4pKSByZXR1cm47XG4gICAgV2F0dERyYXdlckNvbXBvbmVudC5jdXJyZW50RHJhd2VyPy5jbG9zZSgpO1xuICAgIFdhdHREcmF3ZXJDb21wb25lbnQuY3VycmVudERyYXdlciA9IHRoaXM7XG4gICAgdGhpcy53cml0YWJsZUlzT3Blbi5zZXQodHJ1ZSk7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBkcmF3ZXIuICovXG4gIGNsb3NlKCkge1xuICAgIGlmICghdW50cmFja2VkKHRoaXMuaXNPcGVuKSkgcmV0dXJuO1xuICAgIFdhdHREcmF3ZXJDb21wb25lbnQuY3VycmVudERyYXdlciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLndyaXRhYmxlSXNPcGVuLnNldChmYWxzZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFdBVFRfRFJBV0VSID0gW1xuICBXYXR0RHJhd2VyQ29tcG9uZW50LFxuICBXYXR0RHJhd2VyVG9wYmFyQ29tcG9uZW50LFxuICBXYXR0RHJhd2VyQWN0aW9uc0NvbXBvbmVudCxcbiAgV2F0dERyYXdlckNvbnRlbnRDb21wb25lbnQsXG4gIFdhdHREcmF3ZXJIZWFkaW5nQ29tcG9uZW50LFxuXTtcbiIsIjwhLS1cbkBsaWNlbnNlXG5Db3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuLS0+XG48bWF0LWRyYXdlci1jb250YWluZXIgY2xhc3M9XCJ3YXR0LWRyYXdlci1jb250YWluZXJcIiBbaGFzQmFja2Ryb3BdPVwiZmFsc2VcIj5cbiAgPG1hdC1kcmF3ZXJcbiAgICBjbGFzcz1cIndhdHQtZHJhd2VyIHdhdHQtZHJhd2VyLS17eyBzaXplKCkgfX1cIlxuICAgIG1vZGU9XCJzaWRlXCJcbiAgICBwb3NpdGlvbj1cImVuZFwiXG4gICAgW29wZW5lZF09XCJpc09wZW4oKVwiXG4gICAgKGNsb3NlZCk9XCJjbG9zZWQuZW1pdCgpXCJcbiAgICBbZGlzYWJsZUNsb3NlXT1cInRydWVcIlxuICAgIFthdXRvRm9jdXNdPVwidHJ1ZVwiXG4gICAgW2Nka1RyYXBGb2N1c109XCJ0cnVlXCJcbiAgPlxuICAgIDxhcnRpY2xlIHZhdGVyLWZsZXggZmlsbD1cInZlcnRpY2FsXCI+XG4gICAgICA8aGVhZGVyIHZhdGVyLXN0YWNrIGFsaWduPVwic3RyZXRjaFwiIG9mZnNldD1cIm1cIiBnYXA9XCJzXCI+XG4gICAgICAgIDx2YXRlci1zdGFjayBkaXJlY3Rpb249XCJyb3dcIiBvZmZzZXQ9XCJtbFwiIGdhcD1cInNcIiBhbGlnbj1cImNlbnRlclwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZHJhd2VyLXRvcGJhclwiIC8+XG4gICAgICAgICAgPHZhdGVyLXNwYWNlciAvPlxuICAgICAgICAgIDx3YXR0LWJ1dHRvbiB2YXJpYW50PVwiaWNvblwiIGljb249XCJjbG9zZVwiIChjbGljayk9XCJjbG9zZSgpXCIgLz5cbiAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgICAgPHZhdGVyLXN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIG9mZnNldD1cIm1sXCIganVzdGlmeT1cInNwYWNlLWJldHdlZW5cIiBnYXA9XCJzXCIgYWxpZ249XCJjZW50ZXJcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWRyYXdlci1oZWFkaW5nXCIgLz5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWRyYXdlci1hY3Rpb25zXCIgLz5cbiAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgIDwvaGVhZGVyPlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZHJhd2VyLWNvbnRlbnRcIiAvPlxuICAgIDwvYXJ0aWNsZT5cblxuICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwid2F0dC1kcmF3ZXJfX3NwaW5uZXJcIj5cbiAgICAgICAgPHdhdHQtc3Bpbm5lciAvPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L21hdC1kcmF3ZXI+XG48L21hdC1kcmF3ZXItY29udGFpbmVyPlxuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy93YXR0L3BhY2thZ2UvZHJhd2VyL3dhdHQtZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2RyYXdlci93YXR0LWRyYXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULFVBQVUsRUFDVix1QkFBdUIsRUFDdkIsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFD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LG1CQUFtQix1RUFDbkIsb0JBQW9CLHlFQUVwQixtQkFBbUIsc0lBQ25CLG9CQUFvQjs7MkZBR1gsbUJBQW1CO2tCQXBCL0IsU0FBUztzQ0FDUyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGFBQWEsUUFHakI7d0JBQ0osa0JBQWtCLEVBQUUsNkJBQTZCO3dCQUNqRCxrQkFBa0IsRUFBRSx1QkFBdUI7cUJBQzVDLFdBQ1E7d0JBQ1AsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixvQkFBb0I7cUJBQ3JCO3NIQUs4QiwwQkFBMEIsUUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsc0ZBQ2hELDBCQUEwQixRQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxxRkFDakQseUJBQXlCLFFBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLHdGQUNuQyxZQUFZO0FBc0l4RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6QiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDBCQUEwQjtDQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgdmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgc2lnbmFsLFxuICB1bnRyYWNrZWQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbnRlbnRDaGlsZCxcbiAgZWZmZWN0LFxuICBhZnRlclJlbmRlckVmZmVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtUcmFwRm9jdXMsIEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5cbmltcG9ydCB7XG4gIFZhdGVyRmxleENvbXBvbmVudCxcbiAgVmF0ZXJTcGFjZXJDb21wb25lbnQsXG4gIFZhdGVyU3RhY2tDb21wb25lbnQsXG4gIFZhdGVyVXRpbGl0eURpcmVjdGl2ZSxcbn0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3ZhdGVyJztcbmltcG9ydCB7IFdhdHRCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvYnV0dG9uJztcbmltcG9ydCB7IFdhdHRTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3NwaW5uZXInO1xuXG5pbXBvcnQgeyBXYXR0RHJhd2VyVG9wYmFyQ29tcG9uZW50IH0gZnJvbSAnLi93YXR0LWRyYXdlci10b3BiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdhdHREcmF3ZXJBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi93YXR0LWRyYXdlci1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXYXR0RHJhd2VyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vd2F0dC1kcmF3ZXItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2F0dERyYXdlckhlYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL3dhdHQtZHJhd2VyLWhlYWRpbmcuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgV2F0dERyYXdlclNpemUgPSAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xuXG5jb25zdCBBUFBFQVJfQU5JTUFUSU9OX0RFTEFZID0gMjUwO1xuY29uc3QgQVBQRUFSX0FOSU1BVElPTl9GUkFNRVMgPSB7XG4gIHRyYW5zZm9ybTogWyd0cmFuc2xhdGVYKDMwcHgpJywgJ3RyYW5zbGF0ZVgoMCknXSxcbiAgb3BhY2l0eTogWycwJywgJzEnXSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc2VsZWN0b3I6ICd3YXR0LWRyYXdlcicsXG4gIHN0eWxlVXJsczogWycuL3dhdHQtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi93YXR0LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICAnKGRvY3VtZW50OmNsaWNrKSc6ICdoYW5kbGVEb2N1bWVudENsaWNrKCRldmVudCknLFxuICAgICcoa2V5ZG93bi5lc2NhcGUpJzogJ2hhbmRsZUVzY0tleVByZXNzZWQoKScsXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBBMTF5TW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgVmF0ZXJGbGV4Q29tcG9uZW50LFxuICAgIFZhdGVyU3RhY2tDb21wb25lbnQsXG4gICAgVmF0ZXJTcGFjZXJDb21wb25lbnQsXG4gICAgVmF0ZXJVdGlsaXR5RGlyZWN0aXZlLFxuICAgIFdhdHRCdXR0b25Db21wb25lbnQsXG4gICAgV2F0dFNwaW5uZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdhdHREcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgb3ZlcmxheUNvbnRhaW5lciA9IGluamVjdChPdmVybGF5Q29udGFpbmVyKTtcbiAgcHJpdmF0ZSBjb250ZW50ID0gY29udGVudENoaWxkKFdhdHREcmF3ZXJDb250ZW50Q29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gIHByaXZhdGUgaGVhZGluZyA9IGNvbnRlbnRDaGlsZChXYXR0RHJhd2VySGVhZGluZ0NvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICBwcml2YXRlIHRvcEJhciA9IGNvbnRlbnRDaGlsZChXYXR0RHJhd2VyVG9wYmFyQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gIHByaXZhdGUgY2RrVHJhcEZvY3VzID0gdmlld0NoaWxkLnJlcXVpcmVkKENka1RyYXBGb2N1cyk7XG4gIHByaXZhdGUgYnlwYXNzQ2xpY2tDaGVjayA9IGZhbHNlO1xuICBwcml2YXRlIHdyaXRhYmxlSXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcblxuICAvLyBNdWx0aXBsZSBkcmF3ZXJzIG9wZW4gYXQgdGhlIHNhbWUgdGltZSBhcmUgbm90IGFsbG93ZWQuIFRoaXMga2VlcHMgdHJhY2sgb2ZcbiAgLy8gdGhlIGN1cnJlbnRseSBvcGVuZWQgZHJhd2VyIGFuZCBjbG9zZXMgaXQgd2hlbiBhIG5ldyBkcmF3ZXIgaXMgb3BlbmVkLlxuICBwcml2YXRlIHN0YXRpYyBjdXJyZW50RHJhd2VyPzogV2F0dERyYXdlckNvbXBvbmVudDtcblxuICAvKiogVXNlZCB0byBhZGp1c3QgZHJhd2VyIHNpemUgdG8gYmVzdCBmaXQgdGhlIGNvbnRlbnQuICovXG4gIHNpemUgPSBpbnB1dDxXYXR0RHJhd2VyU2l6ZT4oJ25vcm1hbCcpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBkcmF3ZXIgc2hvdWxkIG9wZW4gYXV0b21hdGljYWxseS4gSWYgYGtleWAgaXMgcHJvdmlkZWQgYW5kXG4gICAqIGBhdXRvT3BlbmAgaXMgdHJ1ZSwgdGhlIGRyYXdlciB3aWxsIG9wZW4gZXZlcnkgdGltZSB0aGUga2V5IGNoYW5nZXMuXG4gICAqL1xuICBhdXRvT3BlbiA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogVXNlZCB0byB0cmFjayB0aGUgY3VycmVudCBkcmF3ZXIgd2hlbiByZXVzaW5nIHRoZSBzYW1lIGRyYXdlciBpbnN0YW5jZSB0b1xuICAgKiByZW5kZXIgZGlmZmVyZW50IGNvbnRlbnQuIFRoaXMgaXMgcmVxdWlyZWQgd2hlbiBpbnRlcmFjdGlvbnMgb3V0c2lkZSB0aGVcbiAgICogZHJhd2VyIHNob3VsZCByZXN1bHQgaW4gdXBkYXRpbmcgdGhlIGRyYXdlcidzIGNvbnRlbnQgaW5zdGVhZCBvZiBjbG9zaW5nIGl0LlxuICAgKi9cbiAga2V5ID0gaW5wdXQ8dW5rbm93bj4oKTtcblxuICAvKiogV2hldGhlciB0aGUgZHJhd2VyIHNob3VsZCBzaG93IGEgbG9hZGluZyBzdGF0ZS4gKi9cbiAgbG9hZGluZyA9IGlucHV0KGZhbHNlKTtcblxuICAvKiogQWRkcyBhIGJyaWVmIGFuaW1hdGlvbiB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjb250ZW50IGhhcyBjaGFuZ2VkLiAqL1xuICBhbmltYXRlT25LZXlDaGFuZ2UgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBkcmF3ZXIgaXMgZnVsbHkgY2xvc2VkLiAqL1xuICBjbG9zZWQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAvKiogV2hldGhlciB0aGUgZHJhd2VyIGlzIG9wZW4uICAqL1xuICBpc09wZW4gPSB0aGlzLndyaXRhYmxlSXNPcGVuLmFzUmVhZG9ubHkoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlclJlbmRlckVmZmVjdCh7XG4gICAgICByZWFkOiAoKSA9PiB7XG4gICAgICAgIHRoaXMua2V5KCk7XG4gICAgICAgIGlmICh0aGlzLmF1dG9PcGVuKCkpIHRoaXMub3BlbigpO1xuICAgICAgICBpZiAoIXRoaXMuYW5pbWF0ZU9uS2V5Q2hhbmdlKCkpIHJldHVybjtcbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKCkpIHJldHVybjtcbiAgICAgICAgICB0aGlzLmNvbnRlbnQoKT8ubmF0aXZlRWxlbWVudC5hbmltYXRlKEFQUEVBUl9BTklNQVRJT05fRlJBTUVTLCBBUFBFQVJfQU5JTUFUSU9OX0RFTEFZKTtcbiAgICAgICAgICB0aGlzLmhlYWRpbmcoKT8ubmF0aXZlRWxlbWVudC5hbmltYXRlKEFQUEVBUl9BTklNQVRJT05fRlJBTUVTLCBBUFBFQVJfQU5JTUFUSU9OX0RFTEFZKTtcbiAgICAgICAgICB0aGlzLnRvcEJhcigpPy5uYXRpdmVFbGVtZW50LmFuaW1hdGUoQVBQRUFSX0FOSU1BVElPTl9GUkFNRVMsIEFQUEVBUl9BTklNQVRJT05fREVMQVkpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBXaG8gZG9lc24ndCBsb3ZlIGEgZ29vZCB3b3JrYXJvdW5kLCByaWdodD9cbiAgICAvLyBMZXQncyBtYWtlIHRoZSBkcmF3ZXIgcmVzaXplIGl0c2VsZiB3aGVuZXZlciB0aGUgYHNpemVgIGlucHV0IGNoYW5nZXMuXG4gICAgLy9cbiAgICAvLyBUaGUgYG1hdC1kcmF3ZXJgIGNvbXBvbmVudCBvZmZlcnMgdGhlIGBhdXRvc2l6ZWAgaW5wdXQgZm9yIHRoaXMuXG4gICAgLy8gSG93ZXZlciwgaXQgaXMgc3BlY2lmaWNhbGx5IG1lbnRpb25lZCB0aGF0IHRoaXMgb3B0aW9ucyBzaG91bGQgYmUgdXNlZCBhdCBvd24gcmlzayxcbiAgICAvLyBhcyBpdCBjb3VsZCBjYXVzZSBwZXJmb3JtYW5jZSBpc3N1ZXMuXG4gICAgLy8gU2VlOiBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuZGV2L2NvbXBvbmVudHMvc2lkZW5hdi9vdmVydmlldyNyZXNpemluZy1hbi1vcGVuLXNpZGVuYXZcbiAgICAvL1xuICAgIC8vIFNvIHRvIHdvcmsgYXJvdW5kIHRoaXMsIGEgc2ltcGxlIGByZXNpemVgIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIGBzaXplYCBpbnB1dCBjaGFuZ2VzLlxuICAgIC8vIFRoaXMgd29ya3MgYmVjYXVzZSBgbWF0LWRyYXdlcmAgdXNlcyBgVmlld3BvcnRSdWxlcmAgZnJvbSBgQGFuZ3VsYXIvY2RrL3Njcm9sbGluZ2BcbiAgICAvLyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi8xOS4yLjEvc3JjL21hdGVyaWFsL3NpZGVuYXYvZHJhd2VyLnRzI0w4MTEtTDgxNilcbiAgICAvLyB0byBsaXN0ZW4gdG8gYHJlc2l6ZWAgZXZlbnRzIGFuZCByZS1jYWxjdWxhdGVzIG1hcmdpbnMgYXBwbGllZCB0byB0aGUgZHJhd2VyIGNvbnRlbnRcbiAgICAvLyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi8yMC4wLjAtcmMuMi9zcmMvY2RrL3Njcm9sbGluZy92aWV3cG9ydC1ydWxlci50cyNMNTAtTDUzKS5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5zaXplKCk7XG5cbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgaGFuZGxlRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIC8vIFByZXZlbnQgY2xvc2luZyB3aGVuIHRoZSBjbGljayB0cmlnZ2VyZWQgYSBjYWxsIHRvIGBvcGVuYFxuICAgIGlmICh0aGlzLmJ5cGFzc0NsaWNrQ2hlY2spIHJldHVybjtcblxuICAgIC8vIENoZWNrIGlmIHRoZSBjbGljayBvcmlnaW5hdGVkIGZyb20gd2l0aGluIHRoZSBkcmF3ZXIgZWxlbWVudFxuICAgIGNvbnN0IGlzQ2xpY2tJbnNpZGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgIGlmIChpc0NsaWNrSW5zaWRlKSByZXR1cm47XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY2xpY2sgb3JpZ2luYXRlZCBmcm9tIHdpdGhpbiBhbiBvdmVybGF5IChzdWNoIGFzIGEgbW9kYWwpXG4gICAgY29uc3Qgb3ZlcmxheUNvbnRhaW5lckVsID0gdGhpcy5vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKTtcbiAgICBjb25zdCBpc092ZXJsYXlDbGljayA9IG92ZXJsYXlDb250YWluZXJFbC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSk7XG4gICAgaWYgKGlzT3ZlcmxheUNsaWNrKSByZXR1cm47XG5cbiAgICAvLyBDbGljayBpcyBhbGxvd2VkIHRvIGNsb3NlIHRoZSBkcmF3ZXIgbm93XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgaGFuZGxlRXNjS2V5UHJlc3NlZCgpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoV2F0dERyYXdlckNvbXBvbmVudC5jdXJyZW50RHJhd2VyID09PSB0aGlzKSB7XG4gICAgICBXYXR0RHJhd2VyQ29tcG9uZW50LmN1cnJlbnREcmF3ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBkcmF3ZXIuIFN1YnNlcXVlbnQgY2FsbHMgYXJlIGlnbm9yZWQgd2hpbGUgdGhlIGRyYXdlciBpcyBvcGVuZWQuICovXG4gIG9wZW4oKSB7XG4gICAgLy8gVHJhcCBmb2N1cyB3aGVuZXZlciBvcGVuIGlzIGNhbGxlZC4gVGhpcyBkb2Vzbid0IHdvcmsgb24gdGhlXG4gICAgLy8gaW5pdGlhbCBjYWxsICh3aGVuIGZpcnN0IG9wZW5pbmcgdGhlIGRyYXdlciksIGJ1dCB0aGlzIGlzXG4gICAgLy8gaGFuZGxlZCBieSB0aGUgYXV0b0ZvY3VzIHByb3BlcnR5IG9uIG1hdC1kcmF3ZXIuXG4gICAgdGhpcy5jZGtUcmFwRm9jdXMoKS5mb2N1c1RyYXAuZm9jdXNJbml0aWFsRWxlbWVudFdoZW5SZWFkeSgpO1xuXG4gICAgLy8gRGlzYWJsZSBjbGljayBvdXRzaWRlIGNoZWNrIHVudGlsIHRoZSBjdXJyZW50IGV2ZW50IGxvb3AgaXMgZmluaXNoZWQuXG4gICAgLy8gVGhpcyBtaWdodCBzZWVtIGhhY2tpc2gsIGJ1dCB0aGUgb3JkZXIgb2YgZXhlY3V0aW9uIGlzIHN0YWJsZSBoZXJlLlxuICAgIC8vIEFsc28gcHJldmVudHMgYW4gaXNzdWUgd2hlbiB0aGUgZHJhd2VyIGlzIGRlc3Ryb3llZCBhbmQgdGhlbiByZWNyZWF0ZWQsXG4gICAgLy8gY2F1c2luZyB0aGUgY2xpY2sgb3V0c2lkZSBjaGVjayB0byB0cmlnZ2VyIGltbWVkaWF0ZWx5IGlmIHRoZSBkcmF3ZXJcbiAgICAvLyBpcyBjcmVhdGVkIGFuZCBvcGVuZWQgaW4gcmVzcG9uc2UgdG8gYSBjbGljayBldmVudC5cbiAgICB0aGlzLmJ5cGFzc0NsaWNrQ2hlY2sgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5ieXBhc3NDbGlja0NoZWNrID0gZmFsc2U7XG4gICAgfSwgMCk7XG5cbiAgICAvLyBXaXRob3V0IGB1bnRyYWNrZWRgLCBpZiB0aGlzIGlzIGNhbGxlZCBpbiBhIHJlYWN0aXZlIGNvbnRleHQgKHN1Y2ggYXMgYW4gYGVmZmVjdGApLFxuICAgIC8vIGl0IHdpbGwgYmUgdHJpZ2dlcmVkIHR3aWNlIGR1ZSB0byBgaXNPcGVuYCBiZWluZyB0cmFja2VkIGFuZCBpbW1lZGlhdGVseSB1cGRhdGVkLlxuICAgIGlmICh1bnRyYWNrZWQodGhpcy5pc09wZW4pKSByZXR1cm47XG4gICAgV2F0dERyYXdlckNvbXBvbmVudC5jdXJyZW50RHJhd2VyPy5jbG9zZSgpO1xuICAgIFdhdHREcmF3ZXJDb21wb25lbnQuY3VycmVudERyYXdlciA9IHRoaXM7XG4gICAgdGhpcy53cml0YWJsZUlzT3Blbi5zZXQodHJ1ZSk7XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBkcmF3ZXIuICovXG4gIGNsb3NlKCkge1xuICAgIGlmICghdW50cmFja2VkKHRoaXMuaXNPcGVuKSkgcmV0dXJuO1xuICAgIFdhdHREcmF3ZXJDb21wb25lbnQuY3VycmVudERyYXdlciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLndyaXRhYmxlSXNPcGVuLnNldChmYWxzZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFdBVFRfRFJBV0VSID0gW1xuICBXYXR0RHJhd2VyQ29tcG9uZW50LFxuICBXYXR0RHJhd2VyVG9wYmFyQ29tcG9uZW50LFxuICBXYXR0RHJhd2VyQWN0aW9uc0NvbXBvbmVudCxcbiAgV2F0dERyYXdlckNvbnRlbnRDb21wb25lbnQsXG4gIFdhdHREcmF3ZXJIZWFkaW5nQ29tcG9uZW50LFxuXTtcbiIsIjwhLS1cbkBsaWNlbnNlXG5Db3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuLS0+XG48bWF0LWRyYXdlci1jb250YWluZXIgY2xhc3M9XCJ3YXR0LWRyYXdlci1jb250YWluZXJcIiBbaGFzQmFja2Ryb3BdPVwiZmFsc2VcIj5cbiAgPG1hdC1kcmF3ZXJcbiAgICBjbGFzcz1cIndhdHQtZHJhd2VyIHdhdHQtZHJhd2VyLS17eyBzaXplKCkgfX1cIlxuICAgIG1vZGU9XCJzaWRlXCJcbiAgICBwb3NpdGlvbj1cImVuZFwiXG4gICAgW29wZW5lZF09XCJpc09wZW4oKVwiXG4gICAgKGNsb3NlZCk9XCJjbG9zZWQuZW1pdCgpXCJcbiAgICBbZGlzYWJsZUNsb3NlXT1cInRydWVcIlxuICAgIFthdXRvRm9jdXNdPVwidHJ1ZVwiXG4gICAgW2Nka1RyYXBGb2N1c109XCJ0cnVlXCJcbiAgPlxuICAgIDxhcnRpY2xlIHZhdGVyLWZsZXggZmlsbD1cInZlcnRpY2FsXCI+XG4gICAgICA8aGVhZGVyIHZhdGVyLXN0YWNrIGFsaWduPVwic3RyZXRjaFwiIG9mZnNldD1cIm1cIiBnYXA9XCJzXCI+XG4gICAgICAgIDx2YXRlci1zdGFjayBkaXJlY3Rpb249XCJyb3dcIiBvZmZzZXQ9XCJtbFwiIGdhcD1cInNcIiBhbGlnbj1cImNlbnRlclwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZHJhd2VyLXRvcGJhclwiIC8+XG4gICAgICAgICAgPHZhdGVyLXNwYWNlciAvPlxuICAgICAgICAgIDx3YXR0LWJ1dHRvbiB2YXJpYW50PVwiaWNvblwiIGljb249XCJjbG9zZVwiIChjbGljayk9XCJjbG9zZSgpXCIgLz5cbiAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgICAgPHZhdGVyLXN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIG9mZnNldD1cIm1sXCIganVzdGlmeT1cInNwYWNlLWJldHdlZW5cIiBnYXA9XCJzXCIgYWxpZ249XCJjZW50ZXJcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWRyYXdlci1oZWFkaW5nXCIgLz5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWRyYXdlci1hY3Rpb25zXCIgLz5cbiAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgIDwvaGVhZGVyPlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZHJhd2VyLWNvbnRlbnRcIiAvPlxuICAgIDwvYXJ0aWNsZT5cblxuICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwid2F0dC1kcmF3ZXJfX3NwaW5uZXJcIj5cbiAgICAgICAgPHdhdHQtc3Bpbm5lciAvPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L21hdC1kcmF3ZXI+XG48L21hdC1kcmF3ZXItY29udGFpbmVyPlxuIl19
@@ -323,10 +323,10 @@ export class WattDropdownComponent {
323
323
  }
324
324
  });
325
325
  }
326
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
327
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattDropdownComponent, isStandalone: true, selector: "watt-dropdown", inputs: { hideSearch: { classPropertyName: "hideSearch", publicName: "hideSearch", isSignal: true, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: true, isRequired: false, transformFunction: null }, getCustomTrigger: { classPropertyName: "getCustomTrigger", publicName: "getCustomTrigger", isSignal: true, isRequired: false, transformFunction: null }, chipMode: { classPropertyName: "chipMode", publicName: "chipMode", isSignal: true, isRequired: false, transformFunction: null }, disableSelectedMode: { classPropertyName: "disableSelectedMode", publicName: "disableSelectedMode", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showResetOption: { classPropertyName: "showResetOption", publicName: "showResetOption", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, noOptionsFoundLabel: { classPropertyName: "noOptionsFoundLabel", publicName: "noOptionsFoundLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { options: "optionsChange" }, host: { properties: { "attr.watt-field-disabled": "isDisabled()", "class.watt-chip-mode": "chipMode()" } }, viewQueries: [{ propertyName: "matSelect", first: true, predicate: ["matSelect"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode()\"\n [label]=\"label()\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode()) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggle)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode()\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder() }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder()) {\n :\n }\n {{ getCustomTrigger()?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label()\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder()\"\n #matSelect\n [panelWidth]=\"panelWidth()\"\n [multiple]=\"multiple()\"\n [ngClass]=\"{ chip: chipMode(), 'mat-mdc-select-multiple': multiple() }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode(),\n 'mat-mdc-select-panel-multiple': multiple(),\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch() ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder()\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple()\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel()\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple() && showResetOption()) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @if (hasGroups()) {\n @for (item of filteredGroupedOptions$ | push; track item) {\n @if (\"options\" in item) {\n <mat-optgroup [label]=\"item.label\" [disabled]=\"item.disabled\">\n @for (option of item.options; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @for (option of filteredOptions$ | push; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-optgroup-label{font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-mdc-option-multiple .mat-pseudo-checkbox{display:inline-block}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i1.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i3.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName", "autoFocus", "showErrors"] }, { kind: "component", type: WattMenuChipComponent, selector: "watt-menu-chip", inputs: ["opened", "disabled", "name", "value", "selected", "hasPopup"], outputs: ["toggle"] }, { kind: "pipe", type: RxPush, name: "push" }], encapsulation: i0.ViewEncapsulation.None });
326
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
327
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattDropdownComponent, isStandalone: true, selector: "watt-dropdown", inputs: { hideSearch: { classPropertyName: "hideSearch", publicName: "hideSearch", isSignal: true, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: true, isRequired: false, transformFunction: null }, getCustomTrigger: { classPropertyName: "getCustomTrigger", publicName: "getCustomTrigger", isSignal: true, isRequired: false, transformFunction: null }, chipMode: { classPropertyName: "chipMode", publicName: "chipMode", isSignal: true, isRequired: false, transformFunction: null }, disableSelectedMode: { classPropertyName: "disableSelectedMode", publicName: "disableSelectedMode", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showResetOption: { classPropertyName: "showResetOption", publicName: "showResetOption", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, noOptionsFoundLabel: { classPropertyName: "noOptionsFoundLabel", publicName: "noOptionsFoundLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { options: "optionsChange" }, host: { properties: { "attr.watt-field-disabled": "isDisabled()", "class.watt-chip-mode": "chipMode()" } }, viewQueries: [{ propertyName: "matSelect", first: true, predicate: ["matSelect"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode()\"\n [label]=\"label()\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode()) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggle)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode()\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder() }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder()) {\n :\n }\n {{ getCustomTrigger()?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label()\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder()\"\n #matSelect\n [panelWidth]=\"panelWidth()\"\n [multiple]=\"multiple()\"\n [ngClass]=\"{ chip: chipMode(), 'mat-mdc-select-multiple': multiple() }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode(),\n 'mat-mdc-select-panel-multiple': multiple(),\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch() ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder()\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple()\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel()\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple() && showResetOption()) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @if (hasGroups()) {\n @for (item of filteredGroupedOptions$ | push; track item) {\n @if (\"options\" in item) {\n <mat-optgroup [label]=\"item.label\" [disabled]=\"item.disabled\">\n @for (option of item.options; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @for (option of filteredOptions$ | push; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-optgroup-label{font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-mdc-option-multiple .mat-pseudo-checkbox{display:inline-block}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i1.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i3.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName", "autoFocus", "showErrors"] }, { kind: "component", type: WattMenuChipComponent, selector: "watt-menu-chip", inputs: ["opened", "disabled", "name", "value", "selected", "hasPopup"], outputs: ["toggle"] }, { kind: "pipe", type: RxPush, name: "push" }], encapsulation: i0.ViewEncapsulation.None });
328
328
  }
329
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropdownComponent, decorators: [{
329
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDropdownComponent, decorators: [{
330
330
  type: Component,
331
331
  args: [{ selector: 'watt-dropdown', encapsulation: ViewEncapsulation.None, imports: [
332
332
  RxPush,
@@ -342,5 +342,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
342
342
  '[attr.watt-field-disabled]': 'isDisabled()',
343
343
  '[class.watt-chip-mode]': 'chipMode()',
344
344
  }, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode()\"\n [label]=\"label()\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode()) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggle)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode()\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder() }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder()) {\n :\n }\n {{ getCustomTrigger()?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label()\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder()\"\n #matSelect\n [panelWidth]=\"panelWidth()\"\n [multiple]=\"multiple()\"\n [ngClass]=\"{ chip: chipMode(), 'mat-mdc-select-multiple': multiple() }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode(),\n 'mat-mdc-select-panel-multiple': multiple(),\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch() ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder()\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple()\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel()\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple() && showResetOption()) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @if (hasGroups()) {\n @for (item of filteredGroupedOptions$ | push; track item) {\n @if (\"options\" in item) {\n <mat-optgroup [label]=\"item.label\" [disabled]=\"item.disabled\">\n @for (option of item.options; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @for (option of filteredOptions$ | push; track option) {\n <mat-option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [class.mat-mdc-option-multiple]=\"multiple()\"\n >\n {{ option.displayValue }}\n </mat-option>\n }\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-optgroup-label{font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-mdc-option-multiple .mat-pseudo-checkbox{display:inline-block}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"] }]
345
- }], ctorParameters: () => [] });
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9kcm9wZG93bi93YXR0LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Ryb3Bkb3duL3dhdHQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixpQkFBaUIsRUFDakIsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxTQUFTLEVBRVQsV0FBVyxFQUdYLGtCQUFrQixFQUNsQixtQkFBbUIsR0FFcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWEsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBK0I3RCxNQUFNLE9BQU8scUJBQXFCO0lBQ3hCLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRCxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLGNBQWMsQ0FBZTtJQUM3QixtQkFBbUIsQ0FBb0I7SUFDdkMsUUFBUSxHQUF3QixFQUFFLENBQUM7SUFDbkMsZUFBZSxHQUErQixFQUFFLENBQUM7SUFDekQsYUFBYSxHQUF1QixJQUFJLENBQUM7SUFDekMsZ0JBQWdCLEdBQUcsSUFBSSxXQUFXLENBQXVDLElBQUksQ0FBQyxDQUFDO0lBRS9FOztPQUVHO0lBQ0gsYUFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUV6Qzs7T0FFRztJQUNILGdCQUFnQixHQUFHLElBQUksYUFBYSxDQUFzQixDQUFDLENBQUMsQ0FBQztJQUU3RDs7T0FFRztJQUNILHVCQUF1QixHQUFHLElBQUksYUFBYSxDQUE2QixDQUFDLENBQUMsQ0FBQztJQUUzRSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUNqRCxTQUFTLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQ3ZDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNkLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBUSxPQUFzQztpQkFDM0MsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUM3RCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsT0FBUSxPQUErQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUMsQ0FBQyxDQUNILENBQUM7SUFFRixNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ2Isa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQzNCLHdCQUF3QixHQUFHLEtBQUssQ0FBQztJQUNqQyxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssc0RBQUMsQ0FBQztJQUUzQixJQUFJLGdCQUFnQjtRQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsT0FBTyxDQUFDLFFBQVE7WUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLFlBQVksQ0FBQztZQUM3QyxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDWixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzdGLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNaLENBQUM7SUFFRCxTQUFTLEdBQUcsU0FBUyxDQUFZLFdBQVcscURBQUMsQ0FBQztJQUM5QyxVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssc0RBQUMsQ0FBQztJQUMxQixVQUFVLEdBQUcsS0FBSyxDQUFnQixJQUFJLHNEQUFDLENBQUM7SUFDeEMsZ0JBQWdCLEdBQUcsS0FBSyxzRUFBd0MsQ0FBQztJQUVqRTs7T0FFRztJQUNILFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxvREFBQyxDQUFDO0lBQ3hCLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxLQUFLLCtEQUFDLENBQUM7SUFDbkMsYUFBYSxHQUFHLEtBQUssbUVBQWtCLENBQUM7SUFFeEM7OztPQUdHO0lBQ0gsT0FBTyxHQUFHLEtBQUssQ0FBbUQsRUFBRSxtREFBQyxDQUFDO0lBRXRFOztPQUVHO0lBQ0gsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLG9EQUFDLENBQUM7SUFFeEI7O09BRUc7SUFDSCxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksMkRBQUMsQ0FBQztJQUU5Qjs7T0FFRztJQUNILFdBQVcsR0FBRyxLQUFLLENBQUMsRUFBRSx1REFBQyxDQUFDO0lBRXhCOztPQUVHO0lBQ0gsS0FBSyxHQUFHLEtBQUssQ0FBQyxFQUFFLGlEQUFDLENBQUM7SUFFbEI7Ozs7T0FJRztJQUNILG1CQUFtQixHQUFHLEtBQUssQ0FBQyxFQUFFLCtEQUFDLENBQUM7SUFFaEMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFNBQVMsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBRSxNQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUM5RixDQUFDO0lBQ0osQ0FBQyxxREFBQyxDQUFDO0lBRUg7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUMzQixNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7Z0JBRWpDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBeUMsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFrQyxDQUFDLENBQUM7Z0JBQ3RELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUNuRCxDQUFDO0lBRU8sVUFBVSxDQUFDLFdBQWdDO1FBQ2pELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDekIsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxXQUFXLENBQUMsV0FBdUM7UUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLHFCQUFxQixDQUFDLE9BQW1DO1FBQy9ELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEQsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBd0I7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBOEM7UUFDN0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBcUI7UUFDckMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFNBQVMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsYUFBc0I7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkMsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsY0FBdUI7UUFDakMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQXlCLEVBQUUsRUFBRTtZQUNsRSxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQTRCO1FBQzdDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxLQUFLO2dCQUNuQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztnQkFDOUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQ0FBZ0M7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkYsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXJCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw2REFBNkQ7SUFDckQsaUJBQWlCLEdBQUcsQ0FBQyxLQUF3QixFQUFFLEVBQUU7UUFDdkQsMkJBQTJCO0lBQzdCLENBQUMsQ0FBQztJQUVNLDBCQUEwQixHQUFHLEdBQUcsRUFBRTtRQUN4QywyQkFBMkI7SUFDN0IsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSyw4QkFBOEI7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBNkIsQ0FBQztRQUUvRSxJQUFJLENBQUMsY0FBYztZQUNqQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3ZGLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsbUJBQW1CO1lBQ3RCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjO2dCQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssNkJBQTZCO1FBQ25DLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVM7WUFDakQsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN2QixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO2dCQUM5QyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDM0QsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRCxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjO1lBQzNELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUM1QixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO2dCQUNuRCxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUNyRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYTthQUM5QixJQUFJLENBQ0gsR0FBRyxDQUNELEdBQUcsRUFBRSxDQUNILENBQUM7WUFDQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTTtTQUM5QixDQUFxQixDQUN6QixFQUNELEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDakUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNwQzthQUNBLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZO2FBQy9CLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNwRCxHQUFHLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDL0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQy9DLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLEVBQ0Ysa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNwQzthQUNBLFNBQVMsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRTtZQUN0QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztZQUN6QyxDQUFDO1lBRUQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV6RSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUVsRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNsRSxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUM5QyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ25FLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFaEQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQWM7UUFDakMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWU7YUFDeEMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWixJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQ0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDOUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNuRSxDQUFDO1lBRUYsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0YsQ0FBQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBK0IsQ0FBQztRQUVqRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTywrQkFBK0I7UUFDckMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQXlCLEVBQUUsRUFBRTtZQUNsRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1lBRXBELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLHVCQUF1QixHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNoRSxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUNqQyxDQUFDO2dCQUVGLElBQUksQ0FBQyx3QkFBd0I7b0JBQzNCLHVCQUF1QixDQUFDLE1BQU0sR0FBRyxDQUFDO3dCQUNsQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQztnQkFFMUQsSUFBSSxDQUFDLGtCQUFrQjtvQkFDckIsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUM7d0JBQ2xDLHVCQUF1QixDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsTUFBTSxDQUFDO1lBQzlELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBbFhVLHFCQUFxQjsyRkFBckIscUJBQXFCLG0vREN0RmxDLDR4SEE4R0EseXNLRHZDSSxPQUFPLG1GQUNQLGVBQWUsZzFCQUNmLGVBQWUsOEJBQ2YsbUJBQW1CLHlUQUNuQix3QkFBd0IsbXZCQUV4QixpQkFBaUIsa0dBQ2pCLGtCQUFrQiwwS0FDbEIscUJBQXFCLG9KQVRyQixNQUFNOzsyRkFnQkcscUJBQXFCO2tCQXRCakMsU0FBUzsrQkFDRSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksV0FDNUI7d0JBQ1AsTUFBTTt3QkFDTixPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFFeEIsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjtxQkFDdEIsUUFDSzt3QkFDSiw0QkFBNEIsRUFBRSxjQUFjO3dCQUM1Qyx3QkFBd0IsRUFBRSxZQUFZO3FCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIGlucHV0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxuICBlZmZlY3QsXG4gIE9uSW5pdCxcbiAgaW5qZWN0LFxuICBDb21wb25lbnQsXG4gIHZpZXdDaGlsZCxcbiAgRGVzdHJveVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgTmdDb250cm9sLFxuICBWYWxpZGF0b3JGbixcbiAgRm9ybUNvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIEFzeW5jVmFsaWRhdG9yRm4sXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IFJ4UHVzaCB9IGZyb20gJ0ByeC1hbmd1bGFyL3RlbXBsYXRlL3B1c2gnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBvZiwgUmVwbGF5U3ViamVjdCwgbWFwLCB0YWtlLCBtZXJnZVdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5neE1hdFNlbGVjdFNlYXJjaE1vZHVsZSB9IGZyb20gJ25neC1tYXQtc2VsZWN0LXNlYXJjaCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUsIE1hdFNlbGVjdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuaW1wb3J0IHsgV2F0dEljb25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvaWNvbic7XG5pbXBvcnQgeyBXYXR0RmllbGRDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvZmllbGQnO1xuaW1wb3J0IHsgV2F0dE1lbnVDaGlwQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2NoaXAnO1xuXG5pbXBvcnQgdHlwZSB7IFdhdHREcm9wZG93blZhbHVlIH0gZnJvbSAnLi93YXR0LWRyb3Bkb3duLXZhbHVlJztcbmltcG9ydCB0eXBlIHtcbiAgV2F0dERyb3Bkb3duT3B0aW9ucyxcbiAgV2F0dERyb3Bkb3duT3B0aW9uR3JvdXAsXG4gIFdhdHREcm9wZG93bkdyb3VwZWRPcHRpb25zLFxufSBmcm9tICcuL3dhdHQtZHJvcGRvd24tb3B0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2F0dC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi93YXR0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2F0dC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgUnhQdXNoLFxuICAgIE5nQ2xhc3MsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5neE1hdFNlbGVjdFNlYXJjaE1vZHVsZSxcblxuICAgIFdhdHRJY29uQ29tcG9uZW50LFxuICAgIFdhdHRGaWVsZENvbXBvbmVudCxcbiAgICBXYXR0TWVudUNoaXBDb21wb25lbnQsXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIud2F0dC1maWVsZC1kaXNhYmxlZF0nOiAnaXNEaXNhYmxlZCgpJyxcbiAgICAnW2NsYXNzLndhdHQtY2hpcC1tb2RlXSc6ICdjaGlwTW9kZSgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIHByaXZhdGUgcGFyZW50Q29udHJvbERpcmVjdGl2ZSA9IGluamVjdChOZ0NvbnRyb2wsIHsgaG9zdDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcml2YXRlIHZhbGlkYXRlUGFyZW50PzogVmFsaWRhdG9yRm47XG4gIHByaXZhdGUgdmFsaWRhdGVQYXJlbnRBc3luYz86IEFzeW5jVmFsaWRhdG9yRm47XG4gIHByaXZhdGUgX29wdGlvbnM6IFdhdHREcm9wZG93bk9wdGlvbnMgPSBbXTtcbiAgcHJpdmF0ZSBfZ3JvdXBlZE9wdGlvbnM6IFdhdHREcm9wZG93bkdyb3VwZWRPcHRpb25zID0gW107XG4gIHBhcmVudENvbnRyb2w6IEZvcm1Db250cm9sIHwgbnVsbCA9IG51bGw7XG4gIG1hdFNlbGVjdENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogQ29udHJvbCBmb3IgdGhlIE1hdFNlbGVjdCBmaWx0ZXIga2V5d29yZFxuICAgKi9cbiAgZmlsdGVyQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcblxuICAvKipcbiAgICogTGlzdCBvZiBvcHRpb25zIGZpbHRlcmVkIGJ5IHNlYXJjaCBrZXl3b3JkXG4gICAqL1xuICBmaWx0ZXJlZE9wdGlvbnMkID0gbmV3IFJlcGxheVN1YmplY3Q8V2F0dERyb3Bkb3duT3B0aW9ucz4oMSk7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZ3JvdXBlZCBvcHRpb25zIGZpbHRlcmVkIGJ5IHNlYXJjaCBrZXl3b3JkXG4gICAqL1xuICBmaWx0ZXJlZEdyb3VwZWRPcHRpb25zJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFdhdHREcm9wZG93bkdyb3VwZWRPcHRpb25zPigxKTtcblxuICBtZXJnZWRGaWx0ZXJlZE9wdGlvbnMkID0gdGhpcy5maWx0ZXJlZE9wdGlvbnMkLnBpcGUoXG4gICAgbWVyZ2VXaXRoKHRoaXMuZmlsdGVyZWRHcm91cGVkT3B0aW9ucyQpLFxuICAgIHRha2UoMSksXG4gICAgbWFwKChvcHRpb25zKSA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNHcm91cHMoKSkge1xuICAgICAgICByZXR1cm4gKG9wdGlvbnMgYXMgV2F0dERyb3Bkb3duR3JvdXBlZE9wdGlvbnMpXG4gICAgICAgICAgLmZsYXRNYXAoKGdyb3VwKSA9PiAoJ29wdGlvbnMnIGluIGdyb3VwID8gZ3JvdXAub3B0aW9ucyA6IFtdKSlcbiAgICAgICAgICAubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAob3B0aW9ucyBhcyBXYXR0RHJvcGRvd25PcHRpb25zKS5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlKTtcbiAgICB9KVxuICApO1xuXG4gIGVtRGFzaCA9ICfigJQnO1xuICBpc1RvZ2dsZUFsbENoZWNrZWQgPSBmYWxzZTtcbiAgaXNUb2dnbGVBbGxJbmRldGVybWluYXRlID0gZmFsc2U7XG4gIGlzRGlzYWJsZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGdldCBzaG93VHJpZ2dlclZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG11bHRpcGxlID0gdGhpcy5tdWx0aXBsZSgpO1xuICAgIHJldHVybiAobXVsdGlwbGUgJiZcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZT8ubGVuZ3RoID09PSAxICYmXG4gICAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWVbMF0gIT09ICcnKSB8fFxuICAgICAgKCFtdWx0aXBsZSAmJiB0aGlzLm1hdFNlbGVjdCgpPy50cmlnZ2VyVmFsdWUpXG4gICAgICA/IHRydWVcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICBnZXQgc2hvd0NoaXBMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSgpICYmIHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZSAmJiB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWUubGVuZ3RoID4gMVxuICAgICAgPyB0cnVlXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgbWF0U2VsZWN0ID0gdmlld0NoaWxkPE1hdFNlbGVjdD4oJ21hdFNlbGVjdCcpO1xuICBoaWRlU2VhcmNoID0gaW5wdXQoZmFsc2UpO1xuICBwYW5lbFdpZHRoID0gaW5wdXQ8bnVsbCB8ICdhdXRvJz4obnVsbCk7XG4gIGdldEN1c3RvbVRyaWdnZXIgPSBpbnB1dDwodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiBzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbW9kZSBvZiB0aGUgZHJvcGRvd24uXG4gICAqL1xuICBjaGlwTW9kZSA9IGlucHV0KGZhbHNlKTtcbiAgZGlzYWJsZVNlbGVjdGVkTW9kZSA9IGlucHV0KGZhbHNlKTtcbiAgc29ydERpcmVjdGlvbiA9IGlucHV0PCdhc2MnIHwgJ2Rlc2MnPigpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBvcHRpb25zIGZvciB0aGUgZHJvcGRvd24uXG4gICAqIENhbiBiZSBhIGZsYXQgYXJyYXkgb2Ygb3B0aW9ucyBvciBhbiBhcnJheSBjb250YWluaW5nIGJvdGggb3B0aW9ucyBhbmQgb3B0aW9uIGdyb3Vwcy5cbiAgICovXG4gIG9wdGlvbnMgPSBtb2RlbDxXYXR0RHJvcGRvd25PcHRpb25zIHwgV2F0dERyb3Bkb3duR3JvdXBlZE9wdGlvbnM+KFtdKTtcblxuICAvKipcbiAgICogU2V0cyBzdXBwb3J0IGZvciBzZWxlY3RpbmcgbXVsdGlwbGUgZHJvcGRvd24gb3B0aW9ucy5cbiAgICovXG4gIG11bHRpcGxlID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHN1cHBvcnQgZm9yIGhpZGluZyB0aGUgcmVzZXQgb3B0aW9uIGluIFwic2luZ2xlXCIgc2VsZWN0IG1vZGUuXG4gICAqL1xuICBzaG93UmVzZXRPcHRpb24gPSBpbnB1dCh0cnVlKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgZm9yIHRoZSBkcm9wZG93bi5cbiAgICovXG4gIHBsYWNlaG9sZGVyID0gaW5wdXQoJycpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsYWJlbCBmb3IgdGhlIGRyb3Bkb3duLlxuICAgKi9cbiAgbGFiZWwgPSBpbnB1dCgnJyk7XG5cbiAgLyoqXG4gICAqIExhYmVsIHRvIGJlIHNob3duIHdoZW4gbm8gb3B0aW9ucyBhcmUgZm91bmQgYWZ0ZXIgZmlsdGVyaW5nLlxuICAgKlxuICAgKiBOb3RlOiBUaGUgbGFiZWwgaXMgdmlzaWJsZSBpbiBcIm11bHRpcGxlXCIgbW9kZSBvbmx5LlxuICAgKi9cbiAgbm9PcHRpb25zRm91bmRMYWJlbCA9IGlucHV0KCcnKTtcblxuICBoYXNHcm91cHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucygpO1xuICAgIHJldHVybiBvcHRpb25zLnNvbWUoXG4gICAgICAob3B0aW9uKSA9PiAnb3B0aW9ucycgaW4gb3B0aW9uICYmIEFycmF5LmlzQXJyYXkoKG9wdGlvbiBhcyBXYXR0RHJvcGRvd25PcHRpb25Hcm91cCkub3B0aW9ucylcbiAgICApO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucygpO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uc0NvcHkgPSBbLi4ub3B0aW9uc107XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzR3JvdXBzKCkpIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUdyb3VwKG9wdGlvbnNDb3B5IGFzIFdhdHREcm9wZG93bkdyb3VwZWRPcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUZsYXQob3B0aW9uc0NvcHkgYXMgV2F0dERyb3Bkb3duT3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnBhcmVudENvbnRyb2xEaXJlY3RpdmUudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZsYXQob3B0aW9uc0NvcHk6IFdhdHREcm9wZG93bk9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy5zb3J0RGlyZWN0aW9uKCkpIHtcbiAgICAgIG9wdGlvbnNDb3B5ID0gdGhpcy5zb3J0T3B0aW9ucyhvcHRpb25zQ29weSk7XG4gICAgfVxuXG4gICAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnNDb3B5O1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zJC5uZXh0KHRoaXMuX29wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVHcm91cChvcHRpb25zQ29weTogV2F0dERyb3Bkb3duR3JvdXBlZE9wdGlvbnMpIHtcbiAgICB0aGlzLl9ncm91cGVkT3B0aW9ucyA9IHRoaXMucHJvY2Vzc0dyb3VwZWRPcHRpb25zKG9wdGlvbnNDb3B5KTtcbiAgICB0aGlzLmZpbHRlcmVkR3JvdXBlZE9wdGlvbnMkLm5leHQodGhpcy5fZ3JvdXBlZE9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzR3JvdXBlZE9wdGlvbnMob3B0aW9uczogV2F0dERyb3Bkb3duR3JvdXBlZE9wdGlvbnMpOiBXYXR0RHJvcGRvd25Hcm91cGVkT3B0aW9ucyB7XG4gICAgcmV0dXJuIG9wdGlvbnMubWFwKChncm91cCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc29ydERpcmVjdGlvbigpKSB7XG4gICAgICAgIGdyb3VwLm9wdGlvbnMgPSB0aGlzLnNvcnRPcHRpb25zKGdyb3VwLm9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdyb3VwO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5saXN0ZW5Gb3JGaWx0ZXJGaWVsZFZhbHVlQ2hhbmdlcygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVByb3BlcnRpZXNGcm9tUGFyZW50KCk7XG4gICAgdGhpcy5iaW5kUGFyZW50VmFsaWRhdG9yc1RvQ29udHJvbCgpO1xuICAgIHRoaXMuYmluZENvbnRyb2xUb1BhcmVudCgpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogV2F0dERyb3Bkb3duVmFsdWUpIHtcbiAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZUZuOiAodmFsdWU6IFdhdHREcm9wZG93blZhbHVlKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jaGFuZ2VQYXJlbnRWYWx1ZSA9IG9uQ2hhbmdlRm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoRm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm1hcmtQYXJlbnRDb250cm9sQXNUb3VjaGVkID0gb25Ub3VjaEZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShzaG91bGREaXNhYmxlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc0Rpc2FibGVkLnNldChzaG91bGREaXNhYmxlKTtcbiAgICBpZiAoc2hvdWxkRGlzYWJsZSkge1xuICAgICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uVG9nZ2xlQWxsKHRvZ2dsZUFsbFN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5tZXJnZWRGaWx0ZXJlZE9wdGlvbnMkLnN1YnNjcmliZSgoZmlsdGVyZWRPcHRpb25zOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgY29uc3Qgb3B0aW9uc1RvU2VsZWN0ID0gdG9nZ2xlQWxsU3RhdGUgPyBmaWx0ZXJlZE9wdGlvbnMgOiBbXTtcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5wYXRjaFZhbHVlKG9wdGlvbnNUb1NlbGVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc29ydE9wdGlvbnMob3B0aW9uczogV2F0dERyb3Bkb3duT3B0aW9ucyk6IFdhdHREcm9wZG93bk9wdGlvbnMge1xuICAgIHJldHVybiBbLi4ub3B0aW9uc10uc29ydCgoYSwgYikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbigpID09PSAnYXNjJ1xuICAgICAgICA/IGEuZGlzcGxheVZhbHVlLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5VmFsdWUpXG4gICAgICAgIDogYi5kaXNwbGF5VmFsdWUubG9jYWxlQ29tcGFyZShhLmRpc3BsYXlWYWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvckZpbHRlckZpZWxkVmFsdWVDaGFuZ2VzKCkge1xuICAgIHRoaXMuZmlsdGVyQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyT3B0aW9ucygpO1xuXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgIHRoaXMuZGV0ZXJtaW5lVG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcml2YXRlIGNoYW5nZVBhcmVudFZhbHVlID0gKHZhbHVlOiBXYXR0RHJvcGRvd25WYWx1ZSkgPT4ge1xuICAgIC8vIEludGVudGlvbmFsbHkgbGVmdCBlbXB0eVxuICB9O1xuXG4gIHByaXZhdGUgbWFya1BhcmVudENvbnRyb2xBc1RvdWNoZWQgPSAoKSA9PiB7XG4gICAgLy8gSW50ZW50aW9uYWxseSBsZWZ0IGVtcHR5XG4gIH07XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICpcbiAgICogU3RvcmUgdGhlIHBhcmVudCBjb250cm9sLCBpdHMgdmFsaWRhdG9ycyBhbmQgYXN5bmMgdmFsaWRhdG9ycyBpbiBwcm9wZXJ0aWVzXG4gICAqIG9mIHRoaXMgY29tcG9uZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplUHJvcGVydGllc0Zyb21QYXJlbnQoKSB7XG4gICAgdGhpcy5wYXJlbnRDb250cm9sID0gdGhpcy5wYXJlbnRDb250cm9sRGlyZWN0aXZlLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuXG4gICAgdGhpcy52YWxpZGF0ZVBhcmVudCA9XG4gICAgICAodGhpcy5wYXJlbnRDb250cm9sLnZhbGlkYXRvciAmJiB0aGlzLnBhcmVudENvbnRyb2wudmFsaWRhdG9yLmJpbmQodGhpcy5wYXJlbnRDb250cm9sKSkgfHxcbiAgICAgICgoKSA9PiBudWxsKTtcblxuICAgIHRoaXMudmFsaWRhdGVQYXJlbnRBc3luYyA9XG4gICAgICAodGhpcy5wYXJlbnRDb250cm9sLmFzeW5jVmFsaWRhdG9yICYmXG4gICAgICAgIHRoaXMucGFyZW50Q29udHJvbC5hc3luY1ZhbGlkYXRvci5iaW5kKHRoaXMucGFyZW50Q29udHJvbCkpIHx8XG4gICAgICAoKCkgPT4gb2YobnVsbCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICpcbiAgICogSW5oZXJpdCB2YWxpZGF0b3JzIGZyb20gcGFyZW50IGZvcm0gY29udHJvbC5cbiAgICovXG4gIHByaXZhdGUgYmluZFBhcmVudFZhbGlkYXRvcnNUb0NvbnRyb2woKSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9ICF0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsaWRhdG9yXG4gICAgICA/IFt0aGlzLnZhbGlkYXRlUGFyZW50XVxuICAgICAgOiBBcnJheS5pc0FycmF5KHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWxpZGF0b3IpXG4gICAgICAgID8gWy4uLnRoaXMubWF0U2VsZWN0Q29udHJvbC52YWxpZGF0b3IsIHRoaXMudmFsaWRhdGVQYXJlbnRdXG4gICAgICAgIDogW3RoaXMubWF0U2VsZWN0Q29udHJvbC52YWxpZGF0b3IsIHRoaXMudmFsaWRhdGVQYXJlbnRdO1xuICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuXG4gICAgY29uc3QgYXN5bmNWYWxpZGF0b3JzID0gIXRoaXMubWF0U2VsZWN0Q29udHJvbC5hc3luY1ZhbGlkYXRvclxuICAgICAgPyBbdGhpcy52YWxpZGF0ZVBhcmVudEFzeW5jXVxuICAgICAgOiBBcnJheS5pc0FycmF5KHRoaXMubWF0U2VsZWN0Q29udHJvbC5hc3luY1ZhbGlkYXRvcilcbiAgICAgICAgPyBbLi4udGhpcy5tYXRTZWxlY3RDb250cm9sLmFzeW5jVmFsaWRhdG9yLCB0aGlzLnZhbGlkYXRlUGFyZW50QXN5bmNdXG4gICAgICAgIDogW3RoaXMubWF0U2VsZWN0Q29udHJvbC5hc3luY1ZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZVBhcmVudEFzeW5jXTtcbiAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9ycyk7XG5cbiAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICpcbiAgICogRW1pdCB2YWx1ZXMgdG8gdGhlIHBhcmVudCBmb3JtIGNvbnRyb2wgd2hlbiBvdXIgZm9ybSBjb250cm9sJ3MgdmFsdWVcbiAgICogY2hhbmdlcy5cbiAgICpcbiAgICogUmVmbGVjdCBwYXJlbnQgdmFsaWRhdGlvbiBlcnJvcnMgaW4gb3VyIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHByaXZhdGUgYmluZENvbnRyb2xUb1BhcmVudCgpIHtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKCk7XG4gICAgdGhpcy5oYW5kbGVTdGF0dXNDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3RhdHVzQ2hhbmdlKCkge1xuICAgIHRoaXMucGFyZW50Q29udHJvbD8uc3RhdHVzQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgLi4udGhpcy5wYXJlbnRDb250cm9sPy5lcnJvcnMsXG4gICAgICAgICAgICB9KSBhcyBWYWxpZGF0aW9uRXJyb3JzXG4gICAgICAgICksXG4gICAgICAgIG1hcCgoZXJyb3JzKSA9PiAoT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPiAwID8gZXJyb3JzIDogbnVsbCkpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXJyb3JzKSA9PiB7XG4gICAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVWYWx1ZUNoYW5nZSgpIHtcbiAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh2YWx1ZSkgPT4gKHZhbHVlID09PSB1bmRlZmluZWQgPyBudWxsIDogdmFsdWUpKSxcbiAgICAgICAgbWFwKCh2YWx1ZTogV2F0dERyb3Bkb3duVmFsdWUpID0+IHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWU6IFdhdHREcm9wZG93blZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcbiAgICAgICAgICB0aGlzLmRldGVybWluZVRvZ2dsZUFsbENoZWNrYm94U3RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWFya1BhcmVudENvbnRyb2xBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRWYWx1ZSh2YWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyT3B0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuX29wdGlvbnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWFyY2ggPSAodGhpcy5maWx0ZXJDb250cm9sLnZhbHVlIGFzIHN0cmluZykudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoIXNlYXJjaCkge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMkLm5leHQodGhpcy5fb3B0aW9ucy5zbGljZSgpKTtcblxuICAgICAgaWYgKHRoaXMuaGFzR3JvdXBzKCkpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZEdyb3VwZWRPcHRpb25zJC5uZXh0KHRoaXMuX2dyb3VwZWRPcHRpb25zLnNsaWNlKCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlcmVkRmxhdE9wdGlvbnMgPSB0aGlzLl9vcHRpb25zLmZpbHRlcihcbiAgICAgIChvcHRpb24pID0+IG9wdGlvbi5kaXNwbGF5VmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaCkgPiAtMVxuICAgICk7XG5cbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyQubmV4dChmaWx0ZXJlZEZsYXRPcHRpb25zKTtcblxuICAgIGlmICh0aGlzLmhhc0dyb3VwcygpKSB7XG4gICAgICB0aGlzLmZpbHRlckdyb3VwcyhzZWFyY2gpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyR3JvdXBzKHNlYXJjaDogc3RyaW5nKSB7XG4gICAgY29uc3QgZmlsdGVyZWRHcm91cHMgPSB0aGlzLl9ncm91cGVkT3B0aW9uc1xuICAgICAgLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoISgnb3B0aW9ucycgaW4gaXRlbSkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWx0ZXJlZEdyb3VwT3B0aW9ucyA9IGl0ZW0ub3B0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmRpc3BsYXlWYWx1ZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoKSA+IC0xXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkR3JvdXBPcHRpb25zLmxlbmd0aCA+IDAgPyB7IC4uLml0ZW0sIG9wdGlvbnM6IGZpbHRlcmVkR3JvdXBPcHRpb25zIH0gOiBudWxsO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgV2F0dERyb3Bkb3duR3JvdXBlZE9wdGlvbnM7XG5cbiAgICB0aGlzLmZpbHRlcmVkR3JvdXBlZE9wdGlvbnMkLm5leHQoZmlsdGVyZWRHcm91cHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVUb2dnbGVBbGxDaGVja2JveFN0YXRlKCkge1xuICAgIHRoaXMubWVyZ2VkRmlsdGVyZWRPcHRpb25zJC5zdWJzY3JpYmUoKGZpbHRlcmVkT3B0aW9uczogc3RyaW5nW10pID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZWN0ZWRPcHRpb25zKSkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEZpbHRlcmVkT3B0aW9ucyA9IGZpbHRlcmVkT3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT5cbiAgICAgICAgICBzZWxlY3RlZE9wdGlvbnMuaW5jbHVkZXMob3B0aW9uKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuaXNUb2dnbGVBbGxJbmRldGVybWluYXRlID1cbiAgICAgICAgICBzZWxlY3RlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoIDwgZmlsdGVyZWRPcHRpb25zLmxlbmd0aDtcblxuICAgICAgICB0aGlzLmlzVG9nZ2xlQWxsQ2hlY2tlZCA9XG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgIHNlbGVjdGVkRmlsdGVyZWRPcHRpb25zLmxlbmd0aCA9PT0gZmlsdGVyZWRPcHRpb25zLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuQGxpY2Vuc2VcbkNvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxubGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4tLT5cbjx3YXR0LWZpZWxkXG4gIFtjb250cm9sXT1cInBhcmVudENvbnRyb2xcIlxuICBbY2hpcE1vZGVdPVwiY2hpcE1vZGUoKVwiXG4gIFtsYWJlbF09XCJsYWJlbCgpXCJcbiAgKGNsaWNrKT1cIm1hdFNlbGVjdC5vcGVuKClcIlxuPlxuICBAaWYgKGNoaXBNb2RlKCkpIHtcbiAgICA8d2F0dC1tZW51LWNoaXBcbiAgICAgIFtvcGVuZWRdPVwibWF0U2VsZWN0LnBhbmVsT3BlblwiXG4gICAgICAodG9nZ2xlKT1cIm1hdFNlbGVjdC5vcGVuKClcIlxuICAgICAgW3NlbGVjdGVkXT1cIiEhbWF0U2VsZWN0Py50cmlnZ2VyVmFsdWUgJiYgIWRpc2FibGVTZWxlY3RlZE1vZGUoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwibWF0U2VsZWN0Q29udHJvbC5kaXNhYmxlZFwiXG4gICAgPlxuICAgICAge3sgcGxhY2Vob2xkZXIoKSB9fVxuICAgICAgQGlmIChzaG93VHJpZ2dlclZhbHVlKSB7XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIEBpZiAocGxhY2Vob2xkZXIoKSkge1xuICAgICAgICAgICAgOlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyBnZXRDdXN0b21UcmlnZ2VyKCk/LihtYXRTZWxlY3QudmFsdWUpID8/IG1hdFNlbGVjdD8udHJpZ2dlclZhbHVlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2hvd0NoaXBMYWJlbCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cIndhdHQtY2hpcC1sYWJlbFwiPnt7IG1hdFNlbGVjdENvbnRyb2wudmFsdWU/Lmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L3dhdHQtbWVudS1jaGlwPlxuICB9XG5cbiAgPG1hdC1zZWxlY3RcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsKClcIlxuICAgIFtmb3JtQ29udHJvbF09XCJtYXRTZWxlY3RDb250cm9sXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgI21hdFNlbGVjdFxuICAgIFtwYW5lbFdpZHRoXT1cInBhbmVsV2lkdGgoKVwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlKClcIlxuICAgIFtuZ0NsYXNzXT1cInsgY2hpcDogY2hpcE1vZGUoKSwgJ21hdC1tZGMtc2VsZWN0LW11bHRpcGxlJzogbXVsdGlwbGUoKSB9XCJcbiAgICBbcGFuZWxDbGFzc109XCJ7XG4gICAgICAnd2F0dC1kcm9wZG93bi1wYW5lbCc6IHRydWUsXG4gICAgICAnd2F0dC1kcm9wZG93bi1wYW5lbC1jaGlwLW1vZGUnOiBjaGlwTW9kZSgpLFxuICAgICAgJ21hdC1tZGMtc2VsZWN0LXBhbmVsLW11bHRpcGxlJzogbXVsdGlwbGUoKSxcbiAgICB9XCJcbiAgPlxuICAgIDwhLS0gV2UgdXNlIHRoaXMgaW5zdGVhZCBvZiBuZ0lmLCBzaW5jZSBpdCB3aWxsIHRyaWdnZXIgYSBORzAxMDA6IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3I6IEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWQuIC0tPlxuICAgIDxtYXQtb3B0aW9uIFtzdHlsZS5kaXNwbGF5XT1cIiFoaWRlU2VhcmNoKCkgPyAnYmxvY2snIDogJ25vbmUnXCI+XG4gICAgICA8bmd4LW1hdC1zZWxlY3Qtc2VhcmNoXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmaWx0ZXJDb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyTGFiZWxdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgICAgIGNsb3NlSWNvbj1cImNsb3NlXCJcbiAgICAgICAgW3Nob3dUb2dnbGVBbGxDaGVja2JveF09XCJtdWx0aXBsZSgpXCJcbiAgICAgICAgKHRvZ2dsZUFsbCk9XCJvblRvZ2dsZUFsbCgkZXZlbnQpXCJcbiAgICAgICAgW3RvZ2dsZUFsbENoZWNrYm94Q2hlY2tlZF09XCJpc1RvZ2dsZUFsbENoZWNrZWRcIlxuICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzVG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgIFtub0VudHJpZXNGb3VuZExhYmVsXT1cIm5vT3B0aW9uc0ZvdW5kTGFiZWwoKVwiXG4gICAgICA+XG4gICAgICAgIDx3YXR0LWljb24gbmd4TWF0U2VsZWN0U2VhcmNoQ2xlYXIgbmFtZT1cImNsb3NlXCIgc2l6ZT1cInNcIiAvPlxuICAgICAgPC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XG4gICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgQGlmICghbXVsdGlwbGUoKSAmJiBzaG93UmVzZXRPcHRpb24oKSkge1xuICAgICAgPG1hdC1vcHRpb24+e3sgZW1EYXNoIH19PC9tYXQtb3B0aW9uPlxuICAgIH1cblxuICAgIEBpZiAoaGFzR3JvdXBzKCkpIHtcbiAgICAgIEBmb3IgKGl0ZW0gb2YgZmlsdGVyZWRHcm91cGVkT3B0aW9ucyQgfCBwdXNoOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIEBpZiAoXCJvcHRpb25zXCIgaW4gaXRlbSkge1xuICAgICAgICAgIDxtYXQtb3B0Z3JvdXAgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIiBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiPlxuICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGl0ZW0ub3B0aW9uczsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLm1hdC1tZGMtb3B0aW9uLW11bHRpcGxlXT1cIm11bHRpcGxlKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgb3B0aW9uLmRpc3BsYXlWYWx1ZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBmb3IgKG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMkIHwgcHVzaDsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICAgICAgW2NsYXNzLm1hdC1tZGMtb3B0aW9uLW11bHRpcGxlXT1cIm11bHRpcGxlKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgb3B0aW9uLmRpc3BsYXlWYWx1ZSB9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICB9XG4gICAgfVxuICA8L21hdC1zZWxlY3Q+XG4gIDxuZy1jb250ZW50IC8+XG4gIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1oaW50XCIgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgLz5cbiAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWVycm9yXCIgc2VsZWN0PVwid2F0dC1maWVsZC1lcnJvclwiIC8+XG48L3dhdHQtZmllbGQ+XG4iXX0=
345
+ }], ctorParameters: () => [], propDecorators: { matSelect: [{ type: i0.ViewChild, args: ['matSelect', { isSignal: true }] }], hideSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideSearch", required: false }] }], panelWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelWidth", required: false }] }], getCustomTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "getCustomTrigger", required: false }] }], chipMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "chipMode", required: false }] }], disableSelectedMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableSelectedMode", required: false }] }], sortDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDirection", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }, { type: i0.Output, args: ["optionsChange"] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], showResetOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "showResetOption", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], noOptionsFoundLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "noOptionsFoundLabel", required: false }] }] } });
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9kcm9wZG93bi93YXR0LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Ryb3Bkb3duL3dhdHQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixpQkFBaUIsRUFDakIsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxTQUFTLEVBRVQsV0FBVyxFQUdYLGtCQUFrQixFQUNsQixtQkFBbUIsR0FFcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWEsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFF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ZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQge1xuICBpbnB1dCxcbiAgbW9kZWwsXG4gIHNpZ25hbCxcbiAgZWZmZWN0LFxuICBPbkluaXQsXG4gIGluamVjdCxcbiAgQ29tcG9uZW50LFxuICB2aWV3Q2hpbGQsXG4gIERlc3Ryb3lSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIE5nQ29udHJvbCxcbiAgVmFsaWRhdG9yRm4sXG4gIEZvcm1Db250cm9sLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBBc3luY1ZhbGlkYXRvckZuLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBSeFB1c2ggfSBmcm9tICdAcngtYW5ndWxhci90ZW1wbGF0ZS9wdXNoJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHsgb2YsIFJlcGxheVN1YmplY3QsIG1hcCwgdGFrZSwgbWVyZ2VXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUgfSBmcm9tICduZ3gtbWF0LXNlbGVjdC1zZWFyY2gnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmltcG9ydCB7IFdhdHRJY29uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ljb24nO1xuaW1wb3J0IHsgV2F0dEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ZpZWxkJztcbmltcG9ydCB7IFdhdHRNZW51Q2hpcENvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9jaGlwJztcblxuaW1wb3J0IHR5cGUgeyBXYXR0RHJvcGRvd25WYWx1ZSB9IGZyb20gJy4vd2F0dC1kcm9wZG93bi12YWx1ZSc7XG5pbXBvcnQgdHlwZSB7XG4gIFdhdHREcm9wZG93bk9wdGlvbnMsXG4gIFdhdHREcm9wZG93bk9wdGlvbkdyb3VwLFxuICBXYXR0RHJvcGRvd25Hcm91cGVkT3B0aW9ucyxcbn0gZnJvbSAnLi93YXR0LWRyb3Bkb3duLW9wdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhdHQtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vd2F0dC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dhdHQtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIFJ4UHVzaCxcbiAgICBOZ0NsYXNzLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUsXG5cbiAgICBXYXR0SWNvbkNvbXBvbmVudCxcbiAgICBXYXR0RmllbGRDb21wb25lbnQsXG4gICAgV2F0dE1lbnVDaGlwQ29tcG9uZW50LFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLndhdHQtZmllbGQtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQoKScsXG4gICAgJ1tjbGFzcy53YXR0LWNoaXAtbW9kZV0nOiAnY2hpcE1vZGUoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFdhdHREcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBwcml2YXRlIHBhcmVudENvbnRyb2xEaXJlY3RpdmUgPSBpbmplY3QoTmdDb250cm9sLCB7IGhvc3Q6IHRydWUgfSk7XG4gIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSB2YWxpZGF0ZVBhcmVudD86IFZhbGlkYXRvckZuO1xuICBwcml2YXRlIHZhbGlkYXRlUGFyZW50QXN5bmM/OiBBc3luY1ZhbGlkYXRvckZuO1xuICBwcml2YXRlIF9vcHRpb25zOiBXYXR0RHJvcGRvd25PcHRpb25zID0gW107XG4gIHByaXZhdGUgX2dyb3VwZWRPcHRpb25zOiBXYXR0RHJvcGRvd25Hcm91cGVkT3B0aW9ucyA9IFtdO1xuICBwYXJlbnRDb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwgPSBudWxsO1xuICBtYXRTZWxlY3RDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2wgZm9yIHRoZSBNYXRTZWxlY3QgZmlsdGVyIGtleXdvcmRcbiAgICovXG4gIGZpbHRlckNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2Ygb3B0aW9ucyBmaWx0ZXJlZCBieSBzZWFyY2gga2V5d29yZFxuICAgKi9cbiAgZmlsdGVyZWRPcHRpb25zJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFdhdHREcm9wZG93bk9wdGlvbnM+KDEpO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGdyb3VwZWQgb3B0aW9ucyBmaWx0ZXJlZCBieSBzZWFyY2gga2V5d29yZFxuICAgKi9cbiAgZmlsdGVyZWRHcm91cGVkT3B0aW9ucyQgPSBuZXcgUmVwbGF5U3ViamVjdDxXYXR0RHJvcGRvd25Hcm91cGVkT3B0aW9ucz4oMSk7XG5cbiAgbWVyZ2VkRmlsdGVyZWRPcHRpb25zJCA9IHRoaXMuZmlsdGVyZWRPcHRpb25zJC5waXBlKFxuICAgIG1lcmdlV2l0aCh0aGlzLmZpbHRlcmVkR3JvdXBlZE9wdGlvbnMkKSxcbiAgICB0YWtlKDEpLFxuICAgIG1hcCgob3B0aW9ucykgPT4ge1xuICAgICAgaWYgKHRoaXMuaGFzR3JvdXBzKCkpIHtcbiAgICAgICAgcmV0dXJuIChvcHRpb25zIGFzIFdhdHREcm9wZG93bkdyb3VwZWRPcHRpb25zKVxuICAgICAgICAgIC5mbGF0TWFwKChncm91cCkgPT4gKCdvcHRpb25zJyBpbiBncm91cCA/IGdyb3VwLm9wdGlvbnMgOiBbXSkpXG4gICAgICAgICAgLm1hcCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKG9wdGlvbnMgYXMgV2F0dERyb3Bkb3duT3B0aW9ucykubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSk7XG4gICAgfSlcbiAgKTtcblxuICBlbURhc2ggPSAn4oCUJztcbiAgaXNUb2dnbGVBbGxDaGVja2VkID0gZmFsc2U7XG4gIGlzVG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICBpc0Rpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICBnZXQgc2hvd1RyaWdnZXJWYWx1ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBtdWx0aXBsZSA9IHRoaXMubXVsdGlwbGUoKTtcbiAgICByZXR1cm4gKG11bHRpcGxlICYmXG4gICAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWU/Lmxlbmd0aCA9PT0gMSAmJlxuICAgICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbHVlWzBdICE9PSAnJykgfHxcbiAgICAgICghbXVsdGlwbGUgJiYgdGhpcy5tYXRTZWxlY3QoKT8udHJpZ2dlclZhbHVlKVxuICAgICAgPyB0cnVlXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHNob3dDaGlwTGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUoKSAmJiB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWUgJiYgdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbHVlLmxlbmd0aCA+IDFcbiAgICAgID8gdHJ1ZVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIG1hdFNlbGVjdCA9IHZpZXdDaGlsZDxNYXRTZWxlY3Q+KCdtYXRTZWxlY3QnKTtcbiAgaGlkZVNlYXJjaCA9IGlucHV0KGZhbHNlKTtcbiAgcGFuZWxXaWR0aCA9IGlucHV0PG51bGwgfCAnYXV0byc+KG51bGwpO1xuICBnZXRDdXN0b21UcmlnZ2VyID0gaW5wdXQ8KHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gc3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIG1vZGUgb2YgdGhlIGRyb3Bkb3duLlxuICAgKi9cbiAgY2hpcE1vZGUgPSBpbnB1dChmYWxzZSk7XG4gIGRpc2FibGVTZWxlY3RlZE1vZGUgPSBpbnB1dChmYWxzZSk7XG4gIHNvcnREaXJlY3Rpb24gPSBpbnB1dDwnYXNjJyB8ICdkZXNjJz4oKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgb3B0aW9ucyBmb3IgdGhlIGRyb3Bkb3duLlxuICAgKiBDYW4gYmUgYSBmbGF0IGFycmF5IG9mIG9wdGlvbnMgb3IgYW4gYXJyYXkgY29udGFpbmluZyBib3RoIG9wdGlvbnMgYW5kIG9wdGlvbiBncm91cHMuXG4gICAqL1xuICBvcHRpb25zID0gbW9kZWw8V2F0dERyb3Bkb3duT3B0aW9ucyB8IFdhdHREcm9wZG93bkdyb3VwZWRPcHRpb25zPihbXSk7XG5cbiAgLyoqXG4gICAqIFNldHMgc3VwcG9ydCBmb3Igc2VsZWN0aW5nIG11bHRpcGxlIGRyb3Bkb3duIG9wdGlvbnMuXG4gICAqL1xuICBtdWx0aXBsZSA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogU2V0cyBzdXBwb3J0IGZvciBoaWRpbmcgdGhlIHJlc2V0IG9wdGlvbiBpbiBcInNpbmdsZVwiIHNlbGVjdCBtb2RlLlxuICAgKi9cbiAgc2hvd1Jlc2V0T3B0aW9uID0gaW5wdXQodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBsYWNlaG9sZGVyIGZvciB0aGUgZHJvcGRvd24uXG4gICAqL1xuICBwbGFjZWhvbGRlciA9IGlucHV0KCcnKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgbGFiZWwgZm9yIHRoZSBkcm9wZG93bi5cbiAgICovXG4gIGxhYmVsID0gaW5wdXQoJycpO1xuXG4gIC8qKlxuICAgKiBMYWJlbCB0byBiZSBzaG93biB3aGVuIG5vIG9wdGlvbnMgYXJlIGZvdW5kIGFmdGVyIGZpbHRlcmluZy5cbiAgICpcbiAgICogTm90ZTogVGhlIGxhYmVsIGlzIHZpc2libGUgaW4gXCJtdWx0aXBsZVwiIG1vZGUgb25seS5cbiAgICovXG4gIG5vT3B0aW9uc0ZvdW5kTGFiZWwgPSBpbnB1dCgnJyk7XG5cbiAgaGFzR3JvdXBzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcbiAgICByZXR1cm4gb3B0aW9ucy5zb21lKFxuICAgICAgKG9wdGlvbikgPT4gJ29wdGlvbnMnIGluIG9wdGlvbiAmJiBBcnJheS5pc0FycmF5KChvcHRpb24gYXMgV2F0dERyb3Bkb3duT3B0aW9uR3JvdXApLm9wdGlvbnMpXG4gICAgKTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNDb3B5ID0gWy4uLm9wdGlvbnNdO1xuXG4gICAgICAgIGlmICh0aGlzLmhhc0dyb3VwcygpKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVHcm91cChvcHRpb25zQ29weSBhcyBXYXR0RHJvcGRvd25Hcm91cGVkT3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVGbGF0KG9wdGlvbnNDb3B5IGFzIFdhdHREcm9wZG93bk9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5wYXJlbnRDb250cm9sRGlyZWN0aXZlLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVGbGF0KG9wdGlvbnNDb3B5OiBXYXR0RHJvcGRvd25PcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuc29ydERpcmVjdGlvbigpKSB7XG4gICAgICBvcHRpb25zQ29weSA9IHRoaXMuc29ydE9wdGlvbnMob3B0aW9uc0NvcHkpO1xuICAgIH1cblxuICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zQ29weTtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyQubmV4dCh0aGlzLl9vcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlR3JvdXAob3B0aW9uc0NvcHk6IFdhdHREcm9wZG93bkdyb3VwZWRPcHRpb25zKSB7XG4gICAgdGhpcy5fZ3JvdXBlZE9wdGlvbnMgPSB0aGlzLnByb2Nlc3NHcm91cGVkT3B0aW9ucyhvcHRpb25zQ29weSk7XG4gICAgdGhpcy5maWx0ZXJlZEdyb3VwZWRPcHRpb25zJC5uZXh0KHRoaXMuX2dyb3VwZWRPcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0dyb3VwZWRPcHRpb25zKG9wdGlvbnM6IFdhdHREcm9wZG93bkdyb3VwZWRPcHRpb25zKTogV2F0dERyb3Bkb3duR3JvdXBlZE9wdGlvbnMge1xuICAgIHJldHVybiBvcHRpb25zLm1hcCgoZ3JvdXApID0+IHtcbiAgICAgIGlmICh0aGlzLnNvcnREaXJlY3Rpb24oKSkge1xuICAgICAgICBncm91cC5vcHRpb25zID0gdGhpcy5zb3J0T3B0aW9ucyhncm91cC5vcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubGlzdGVuRm9yRmlsdGVyRmllbGRWYWx1ZUNoYW5nZXMoKTtcbiAgICB0aGlzLmluaXRpYWxpemVQcm9wZXJ0aWVzRnJvbVBhcmVudCgpO1xuICAgIHRoaXMuYmluZFBhcmVudFZhbGlkYXRvcnNUb0NvbnRyb2woKTtcbiAgICB0aGlzLmJpbmRDb250cm9sVG9QYXJlbnQoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFdhdHREcm9wZG93blZhbHVlKSB7XG4gICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2VGbjogKHZhbHVlOiBXYXR0RHJvcGRvd25WYWx1ZSkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2hhbmdlUGFyZW50VmFsdWUgPSBvbkNoYW5nZUZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaEZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5tYXJrUGFyZW50Q29udHJvbEFzVG91Y2hlZCA9IG9uVG91Y2hGbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoc2hvdWxkRGlzYWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXNEaXNhYmxlZC5zZXQoc2hvdWxkRGlzYWJsZSk7XG4gICAgaWYgKHNob3VsZERpc2FibGUpIHtcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICBvblRvZ2dsZUFsbCh0b2dnbGVBbGxTdGF0ZTogYm9vbGVhbikge1xuICAgIHRoaXMubWVyZ2VkRmlsdGVyZWRPcHRpb25zJC5zdWJzY3JpYmUoKGZpbHRlcmVkT3B0aW9uczogc3RyaW5nW10pID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnNUb1NlbGVjdCA9IHRvZ2dsZUFsbFN0YXRlID8gZmlsdGVyZWRPcHRpb25zIDogW107XG4gICAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wucGF0Y2hWYWx1ZShvcHRpb25zVG9TZWxlY3QpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNvcnRPcHRpb25zKG9wdGlvbnM6IFdhdHREcm9wZG93bk9wdGlvbnMpOiBXYXR0RHJvcGRvd25PcHRpb25zIHtcbiAgICByZXR1cm4gWy4uLm9wdGlvbnNdLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnNvcnREaXJlY3Rpb24oKSA9PT0gJ2FzYydcbiAgICAgICAgPyBhLmRpc3BsYXlWYWx1ZS5sb2NhbGVDb21wYXJlKGIuZGlzcGxheVZhbHVlKVxuICAgICAgICA6IGIuZGlzcGxheVZhbHVlLmxvY2FsZUNvbXBhcmUoYS5kaXNwbGF5VmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JGaWx0ZXJGaWVsZFZhbHVlQ2hhbmdlcygpIHtcbiAgICB0aGlzLmZpbHRlckNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlck9wdGlvbnMoKTtcblxuICAgICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xuICAgICAgICB0aGlzLmRldGVybWluZVRvZ2dsZUFsbENoZWNrYm94U3RhdGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHJpdmF0ZSBjaGFuZ2VQYXJlbnRWYWx1ZSA9ICh2YWx1ZTogV2F0dERyb3Bkb3duVmFsdWUpID0+IHtcbiAgICAvLyBJbnRlbnRpb25hbGx5IGxlZnQgZW1wdHlcbiAgfTtcblxuICBwcml2YXRlIG1hcmtQYXJlbnRDb250cm9sQXNUb3VjaGVkID0gKCkgPT4ge1xuICAgIC8vIEludGVudGlvbmFsbHkgbGVmdCBlbXB0eVxuICB9O1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqXG4gICAqIFN0b3JlIHRoZSBwYXJlbnQgY29udHJvbCwgaXRzIHZhbGlkYXRvcnMgYW5kIGFzeW5jIHZhbGlkYXRvcnMgaW4gcHJvcGVydGllc1xuICAgKiBvZiB0aGlzIGNvbXBvbmVudC5cbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVByb3BlcnRpZXNGcm9tUGFyZW50KCkge1xuICAgIHRoaXMucGFyZW50Q29udHJvbCA9IHRoaXMucGFyZW50Q29udHJvbERpcmVjdGl2ZS5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcblxuICAgIHRoaXMudmFsaWRhdGVQYXJlbnQgPVxuICAgICAgKHRoaXMucGFyZW50Q29udHJvbC52YWxpZGF0b3IgJiYgdGhpcy5wYXJlbnRDb250cm9sLnZhbGlkYXRvci5iaW5kKHRoaXMucGFyZW50Q29udHJvbCkpIHx8XG4gICAgICAoKCkgPT4gbnVsbCk7XG5cbiAgICB0aGlzLnZhbGlkYXRlUGFyZW50QXN5bmMgPVxuICAgICAgKHRoaXMucGFyZW50Q29udHJvbC5hc3luY1ZhbGlkYXRvciAmJlxuICAgICAgICB0aGlzLnBhcmVudENvbnRyb2wuYXN5bmNWYWxpZGF0b3IuYmluZCh0aGlzLnBhcmVudENvbnRyb2wpKSB8fFxuICAgICAgKCgpID0+IG9mKG51bGwpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqXG4gICAqIEluaGVyaXQgdmFsaWRhdG9ycyBmcm9tIHBhcmVudCBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICBwcml2YXRlIGJpbmRQYXJlbnRWYWxpZGF0b3JzVG9Db250cm9sKCkge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSAhdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbGlkYXRvclxuICAgICAgPyBbdGhpcy52YWxpZGF0ZVBhcmVudF1cbiAgICAgIDogQXJyYXkuaXNBcnJheSh0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsaWRhdG9yKVxuICAgICAgICA/IFsuLi50aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsaWRhdG9yLCB0aGlzLnZhbGlkYXRlUGFyZW50XVxuICAgICAgICA6IFt0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsaWRhdG9yLCB0aGlzLnZhbGlkYXRlUGFyZW50XTtcbiAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcblxuICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9ycyA9ICF0aGlzLm1hdFNlbGVjdENvbnRyb2wuYXN5bmNWYWxpZGF0b3JcbiAgICAgID8gW3RoaXMudmFsaWRhdGVQYXJlbnRBc3luY11cbiAgICAgIDogQXJyYXkuaXNBcnJheSh0aGlzLm1hdFNlbGVjdENvbnRyb2wuYXN5bmNWYWxpZGF0b3IpXG4gICAgICAgID8gWy4uLnRoaXMubWF0U2VsZWN0Q29udHJvbC5hc3luY1ZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZVBhcmVudEFzeW5jXVxuICAgICAgICA6IFt0aGlzLm1hdFNlbGVjdENvbnRyb2wuYXN5bmNWYWxpZGF0b3IsIHRoaXMudmFsaWRhdGVQYXJlbnRBc3luY107XG4gICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnMpO1xuXG4gICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqXG4gICAqIEVtaXQgdmFsdWVzIHRvIHRoZSBwYXJlbnQgZm9ybSBjb250cm9sIHdoZW4gb3VyIGZvcm0gY29udHJvbCdzIHZhbHVlXG4gICAqIGNoYW5nZXMuXG4gICAqXG4gICAqIFJlZmxlY3QgcGFyZW50IHZhbGlkYXRpb24gZXJyb3JzIGluIG91ciBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICBwcml2YXRlIGJpbmRDb250cm9sVG9QYXJlbnQoKSB7XG4gICAgdGhpcy5oYW5kbGVWYWx1ZUNoYW5nZSgpO1xuICAgIHRoaXMuaGFuZGxlU3RhdHVzQ2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVN0YXR1c0NoYW5nZSgpIHtcbiAgICB0aGlzLnBhcmVudENvbnRyb2w/LnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgIC4uLnRoaXMucGFyZW50Q29udHJvbD8uZXJyb3JzLFxuICAgICAgICAgICAgfSkgYXMgVmFsaWRhdGlvbkVycm9yc1xuICAgICAgICApLFxuICAgICAgICBtYXAoKGVycm9ycykgPT4gKE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID4gMCA/IGVycm9ycyA6IG51bGwpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGVycm9ycykgPT4ge1xuICAgICAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wuc2V0RXJyb3JzKGVycm9ycyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVmFsdWVDaGFuZ2UoKSB7XG4gICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodmFsdWUpID0+ICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IHZhbHVlKSksXG4gICAgICAgIG1hcCgodmFsdWU6IFdhdHREcm9wZG93blZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBXYXR0RHJvcGRvd25WYWx1ZSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgICAgdGhpcy5kZXRlcm1pbmVUb2dnbGVBbGxDaGVja2JveFN0YXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1hcmtQYXJlbnRDb250cm9sQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlUGFyZW50VmFsdWUodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlck9wdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLl9vcHRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VhcmNoID0gKHRoaXMuZmlsdGVyQ29udHJvbC52YWx1ZSBhcyBzdHJpbmcpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKCFzZWFyY2gpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zJC5uZXh0KHRoaXMuX29wdGlvbnMuc2xpY2UoKSk7XG5cbiAgICAgIGlmICh0aGlzLmhhc0dyb3VwcygpKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRHcm91cGVkT3B0aW9ucyQubmV4dCh0aGlzLl9ncm91cGVkT3B0aW9ucy5zbGljZSgpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXJlZEZsYXRPcHRpb25zID0gdGhpcy5fb3B0aW9ucy5maWx0ZXIoXG4gICAgICAob3B0aW9uKSA9PiBvcHRpb24uZGlzcGxheVZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpID4gLTFcbiAgICApO1xuXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMkLm5leHQoZmlsdGVyZWRGbGF0T3B0aW9ucyk7XG5cbiAgICBpZiAodGhpcy5oYXNHcm91cHMoKSkge1xuICAgICAgdGhpcy5maWx0ZXJHcm91cHMoc2VhcmNoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckdyb3VwcyhzZWFyY2g6IHN0cmluZykge1xuICAgIGNvbnN0IGZpbHRlcmVkR3JvdXBzID0gdGhpcy5fZ3JvdXBlZE9wdGlvbnNcbiAgICAgIC5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKCEoJ29wdGlvbnMnIGluIGl0ZW0pKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsdGVyZWRHcm91cE9wdGlvbnMgPSBpdGVtLm9wdGlvbnMuZmlsdGVyKFxuICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5kaXNwbGF5VmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaCkgPiAtMVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZEdyb3VwT3B0aW9ucy5sZW5ndGggPiAwID8geyAuLi5pdGVtLCBvcHRpb25zOiBmaWx0ZXJlZEdyb3VwT3B0aW9ucyB9IDogbnVsbDtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIFdhdHREcm9wZG93bkdyb3VwZWRPcHRpb25zO1xuXG4gICAgdGhpcy5maWx0ZXJlZEdyb3VwZWRPcHRpb25zJC5uZXh0KGZpbHRlcmVkR3JvdXBzKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZXJtaW5lVG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpIHtcbiAgICB0aGlzLm1lcmdlZEZpbHRlcmVkT3B0aW9ucyQuc3Vic2NyaWJlKChmaWx0ZXJlZE9wdGlvbnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWU7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdGVkT3B0aW9ucykpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBmaWx0ZXJlZE9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+XG4gICAgICAgICAgc2VsZWN0ZWRPcHRpb25zLmluY2x1ZGVzKG9wdGlvbilcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmlzVG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZSA9XG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgIHNlbGVjdGVkRmlsdGVyZWRPcHRpb25zLmxlbmd0aCA8IGZpbHRlcmVkT3B0aW9ucy5sZW5ndGg7XG5cbiAgICAgICAgdGhpcy5pc1RvZ2dsZUFsbENoZWNrZWQgPVxuICAgICAgICAgIHNlbGVjdGVkRmlsdGVyZWRPcHRpb25zLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICBzZWxlY3RlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPT09IGZpbHRlcmVkT3B0aW9ucy5sZW5ndGg7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cbkBsaWNlbnNlXG5Db3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuLS0+XG48d2F0dC1maWVsZFxuICBbY29udHJvbF09XCJwYXJlbnRDb250cm9sXCJcbiAgW2NoaXBNb2RlXT1cImNoaXBNb2RlKClcIlxuICBbbGFiZWxdPVwibGFiZWwoKVwiXG4gIChjbGljayk9XCJtYXRTZWxlY3Qub3BlbigpXCJcbj5cbiAgQGlmIChjaGlwTW9kZSgpKSB7XG4gICAgPHdhdHQtbWVudS1jaGlwXG4gICAgICBbb3BlbmVkXT1cIm1hdFNlbGVjdC5wYW5lbE9wZW5cIlxuICAgICAgKHRvZ2dsZSk9XCJtYXRTZWxlY3Qub3BlbigpXCJcbiAgICAgIFtzZWxlY3RlZF09XCIhIW1hdFNlbGVjdD8udHJpZ2dlclZhbHVlICYmICFkaXNhYmxlU2VsZWN0ZWRNb2RlKClcIlxuICAgICAgW2Rpc2FibGVkXT1cIm1hdFNlbGVjdENvbnRyb2wuZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIHt7IHBsYWNlaG9sZGVyKCkgfX1cbiAgICAgIEBpZiAoc2hvd1RyaWdnZXJWYWx1ZSkge1xuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICBAaWYgKHBsYWNlaG9sZGVyKCkpIHtcbiAgICAgICAgICAgIDpcbiAgICAgICAgICB9XG4gICAgICAgICAge3sgZ2V0Q3VzdG9tVHJpZ2dlcigpPy4obWF0U2VsZWN0LnZhbHVlKSA/PyBtYXRTZWxlY3Q/LnRyaWdnZXJWYWx1ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKHNob3dDaGlwTGFiZWwpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3YXR0LWNoaXAtbGFiZWxcIj57eyBtYXRTZWxlY3RDb250cm9sLnZhbHVlPy5sZW5ndGggfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC93YXR0LW1lbnUtY2hpcD5cbiAgfVxuXG4gIDxtYXQtc2VsZWN0XG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCgpXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwibWF0U2VsZWN0Q29udHJvbFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICNtYXRTZWxlY3RcbiAgICBbcGFuZWxXaWR0aF09XCJwYW5lbFdpZHRoKClcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcbiAgICBbbmdDbGFzc109XCJ7IGNoaXA6IGNoaXBNb2RlKCksICdtYXQtbWRjLXNlbGVjdC1tdWx0aXBsZSc6IG11bHRpcGxlKCkgfVwiXG4gICAgW3BhbmVsQ2xhc3NdPVwie1xuICAgICAgJ3dhdHQtZHJvcGRvd24tcGFuZWwnOiB0cnVlLFxuICAgICAgJ3dhdHQtZHJvcGRvd24tcGFuZWwtY2hpcC1tb2RlJzogY2hpcE1vZGUoKSxcbiAgICAgICdtYXQtbWRjLXNlbGVjdC1wYW5lbC1tdWx0aXBsZSc6IG11bHRpcGxlKCksXG4gICAgfVwiXG4gID5cbiAgICA8IS0tIFdlIHVzZSB0aGlzIGluc3RlYWQgb2YgbmdJZiwgc2luY2UgaXQgd2lsbCB0cmlnZ2VyIGEgTkcwMTAwOiBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yOiBFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkLiAtLT5cbiAgICA8bWF0LW9wdGlvbiBbc3R5bGUuZGlzcGxheV09XCIhaGlkZVNlYXJjaCgpID8gJ2Jsb2NrJyA6ICdub25lJ1wiPlxuICAgICAgPG5neC1tYXQtc2VsZWN0LXNlYXJjaFxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZmlsdGVyQ29udHJvbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgICBjbG9zZUljb249XCJjbG9zZVwiXG4gICAgICAgIFtzaG93VG9nZ2xlQWxsQ2hlY2tib3hdPVwibXVsdGlwbGUoKVwiXG4gICAgICAgICh0b2dnbGVBbGwpPVwib25Ub2dnbGVBbGwoJGV2ZW50KVwiXG4gICAgICAgIFt0b2dnbGVBbGxDaGVja2JveENoZWNrZWRdPVwiaXNUb2dnbGVBbGxDaGVja2VkXCJcbiAgICAgICAgW3RvZ2dsZUFsbENoZWNrYm94SW5kZXRlcm1pbmF0ZV09XCJpc1RvZ2dsZUFsbEluZGV0ZXJtaW5hdGVcIlxuICAgICAgICBbbm9FbnRyaWVzRm91bmRMYWJlbF09XCJub09wdGlvbnNGb3VuZExhYmVsKClcIlxuICAgICAgPlxuICAgICAgICA8d2F0dC1pY29uIG5neE1hdFNlbGVjdFNlYXJjaENsZWFyIG5hbWU9XCJjbG9zZVwiIHNpemU9XCJzXCIgLz5cbiAgICAgIDwvbmd4LW1hdC1zZWxlY3Qtc2VhcmNoPlxuICAgIDwvbWF0LW9wdGlvbj5cblxuICAgIEBpZiAoIW11bHRpcGxlKCkgJiYgc2hvd1Jlc2V0T3B0aW9uKCkpIHtcbiAgICAgIDxtYXQtb3B0aW9uPnt7IGVtRGFzaCB9fTwvbWF0LW9wdGlvbj5cbiAgICB9XG5cbiAgICBAaWYgKGhhc0dyb3VwcygpKSB7XG4gICAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkR3JvdXBlZE9wdGlvbnMkIHwgcHVzaDsgdHJhY2sgaXRlbSkge1xuICAgICAgICBAaWYgKFwib3B0aW9uc1wiIGluIGl0ZW0pIHtcbiAgICAgICAgICA8bWF0LW9wdGdyb3VwIFtsYWJlbF09XCJpdGVtLmxhYmVsXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBpdGVtLm9wdGlvbnM7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtbWRjLW9wdGlvbi1tdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5kaXNwbGF5VmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LW9wdGdyb3VwPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAZm9yIChvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zJCB8IHB1c2g7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIlxuICAgICAgICAgIFtjbGFzcy5tYXQtbWRjLW9wdGlvbi1tdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IG9wdGlvbi5kaXNwbGF5VmFsdWUgfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgfVxuICAgIH1cbiAgPC9tYXQtc2VsZWN0PlxuICA8bmctY29udGVudCAvPlxuICA8bmctY29udGVudCBuZ1Byb2plY3RBcz1cIndhdHQtZmllbGQtaGludFwiIHNlbGVjdD1cIndhdHQtZmllbGQtaGludFwiIC8+XG4gIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1lcnJvclwiIHNlbGVjdD1cIndhdHQtZmllbGQtZXJyb3JcIiAvPlxuPC93YXR0LWZpZWxkPlxuIl19