@fundamental-ngx/core 0.43.0-rc.8 → 0.43.0

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 (107) hide show
  1. package/dialog/dialog-container/dialog-container.component.d.ts +4 -2
  2. package/esm2020/button/button.component.mjs +3 -3
  3. package/esm2020/combobox/combobox-mobile/combobox-mobile.component.mjs +3 -3
  4. package/esm2020/combobox/combobox.component.mjs +1 -1
  5. package/esm2020/dialog/dialog-container/dialog-container.component.mjs +8 -2
  6. package/esm2020/dialog/dialog-default/dialog-default.component.mjs +3 -3
  7. package/esm2020/form/form-input-message-group/form-input-message-group.component.mjs +18 -5
  8. package/esm2020/list/list-item/list-item.component.mjs +11 -2
  9. package/esm2020/menu/menu-mobile/menu-mobile.component.mjs +3 -3
  10. package/esm2020/message-box/message-box-container/message-box-container.component.mjs +3 -4
  11. package/esm2020/message-box/message-box-default/message-box-default.component.mjs +3 -3
  12. package/esm2020/multi-combobox/multi-combobox.component.mjs +1 -1
  13. package/esm2020/multi-input/multi-input.component.mjs +1 -1
  14. package/esm2020/popover/base/base-popover.class.mjs +4 -2
  15. package/esm2020/popover/popover-body/popover-body.component.mjs +12 -2
  16. package/esm2020/popover/popover-service/popover.service.mjs +12 -2
  17. package/esm2020/popover/popover.component.mjs +5 -2
  18. package/esm2020/scrollbar/scrollbar.directive.mjs +6 -2
  19. package/esm2020/select/select.component.mjs +3 -3
  20. package/esm2020/step-input/step-input.component.mjs +1 -1
  21. package/esm2020/switch/switch.component.mjs +11 -3
  22. package/esm2020/tabs/tab-list.component.mjs +9 -2
  23. package/esm2020/tabs/tab-panel/tab-panel.component.mjs +7 -1
  24. package/esm2020/token/tokenizer.component.mjs +1 -1
  25. package/esm2020/wizard/wizard.module.mjs +5 -3
  26. package/fesm2015/fundamental-ngx-core-button.mjs +2 -2
  27. package/fesm2015/fundamental-ngx-core-button.mjs.map +1 -1
  28. package/fesm2015/fundamental-ngx-core-combobox.mjs +3 -3
  29. package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
  30. package/fesm2015/fundamental-ngx-core-dialog.mjs +9 -3
  31. package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
  32. package/fesm2015/fundamental-ngx-core-form.mjs +18 -6
  33. package/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
  34. package/fesm2015/fundamental-ngx-core-list.mjs +10 -1
  35. package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  36. package/fesm2015/fundamental-ngx-core-menu.mjs +2 -2
  37. package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
  38. package/fesm2015/fundamental-ngx-core-message-box.mjs +3 -4
  39. package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
  40. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +1 -1
  41. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  42. package/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  43. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  44. package/fesm2015/fundamental-ngx-core-popover.mjs +29 -5
  45. package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
  46. package/fesm2015/fundamental-ngx-core-scrollbar.mjs +5 -1
  47. package/fesm2015/fundamental-ngx-core-scrollbar.mjs.map +1 -1
  48. package/fesm2015/fundamental-ngx-core-select.mjs +2 -2
  49. package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  50. package/fesm2015/fundamental-ngx-core-step-input.mjs +1 -1
  51. package/fesm2015/fundamental-ngx-core-step-input.mjs.map +1 -1
  52. package/fesm2015/fundamental-ngx-core-switch.mjs +11 -3
  53. package/fesm2015/fundamental-ngx-core-switch.mjs.map +1 -1
  54. package/fesm2015/fundamental-ngx-core-tabs.mjs +14 -1
  55. package/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
  56. package/fesm2015/fundamental-ngx-core-token.mjs +1 -1
  57. package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
  58. package/fesm2015/fundamental-ngx-core-wizard.mjs +66 -65
  59. package/fesm2015/fundamental-ngx-core-wizard.mjs.map +1 -1
  60. package/fesm2020/fundamental-ngx-core-button.mjs +2 -2
  61. package/fesm2020/fundamental-ngx-core-button.mjs.map +1 -1
  62. package/fesm2020/fundamental-ngx-core-combobox.mjs +3 -3
  63. package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
  64. package/fesm2020/fundamental-ngx-core-dialog.mjs +9 -3
  65. package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
  66. package/fesm2020/fundamental-ngx-core-form.mjs +18 -6
  67. package/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
  68. package/fesm2020/fundamental-ngx-core-list.mjs +10 -1
  69. package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  70. package/fesm2020/fundamental-ngx-core-menu.mjs +2 -2
  71. package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
  72. package/fesm2020/fundamental-ngx-core-message-box.mjs +3 -4
  73. package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
  74. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +1 -1
  75. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  76. package/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  77. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  78. package/fesm2020/fundamental-ngx-core-popover.mjs +29 -5
  79. package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
  80. package/fesm2020/fundamental-ngx-core-scrollbar.mjs +5 -1
  81. package/fesm2020/fundamental-ngx-core-scrollbar.mjs.map +1 -1
  82. package/fesm2020/fundamental-ngx-core-select.mjs +2 -2
  83. package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  84. package/fesm2020/fundamental-ngx-core-step-input.mjs +1 -1
  85. package/fesm2020/fundamental-ngx-core-step-input.mjs.map +1 -1
  86. package/fesm2020/fundamental-ngx-core-switch.mjs +11 -3
  87. package/fesm2020/fundamental-ngx-core-switch.mjs.map +1 -1
  88. package/fesm2020/fundamental-ngx-core-tabs.mjs +14 -1
  89. package/fesm2020/fundamental-ngx-core-tabs.mjs.map +1 -1
  90. package/fesm2020/fundamental-ngx-core-token.mjs +1 -1
  91. package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
  92. package/fesm2020/fundamental-ngx-core-wizard.mjs +61 -60
  93. package/fesm2020/fundamental-ngx-core-wizard.mjs.map +1 -1
  94. package/form/form-input-message-group/form-input-message-group.component.d.ts +11 -2
  95. package/fundamental-ngx-core-v0.43.0.tgz +0 -0
  96. package/list/list-item/list-item.component.d.ts +5 -1
  97. package/package.json +3 -3
  98. package/popover/base/base-popover.class.d.ts +3 -1
  99. package/popover/popover-body/popover-body.component.d.ts +7 -2
  100. package/popover/popover-service/popover.service.d.ts +2 -0
  101. package/popover/popover.component.d.ts +2 -2
  102. package/schematics/add-dependencies/index.js +4 -4
  103. package/scrollbar/scrollbar.directive.d.ts +2 -0
  104. package/switch/switch.component.d.ts +2 -0
  105. package/tabs/tab-list.component.d.ts +3 -1
  106. package/tabs/tab-panel/tab-panel.component.d.ts +2 -0
  107. package/fundamental-ngx-core-v0.43.0-rc.8.tgz +0 -0
@@ -49,6 +49,8 @@ export class TabListComponent {
49
49
  this.collapsibleTabs = false;
50
50
  /** Whether to try to keep selected tab (default value) on tabs change or to select default one (first if not specified). */
51
51
  this.selectDefaultOnTabsChange = false;
52
+ /** Whether to focus the first focusable element in a tab panel when using stacked tabs. */
53
+ this.focusFirstFocusableElement = true;
52
54
  /** Event emitted when the selected panel changes. */
53
55
  this.selectedTabChange = new EventEmitter();
54
56
  /** Event emitted when visible items count has been changed. */
@@ -226,6 +228,9 @@ export class TabListComponent {
226
228
  .subscribe(() => (this._disableScrollSpy = false));
227
229
  scrollTop(containerElement, distanceToScroll);
228
230
  }
231
+ if (this.focusFirstFocusableElement) {
232
+ tabPanel._focusFirstFocusableElement();
233
+ }
229
234
  }
230
235
  /** @hidden Whether tab can be expanded/collapsed */
231
236
  _canChangeExpandState(tabPanel, expand) {
@@ -233,7 +238,7 @@ export class TabListComponent {
233
238
  }
234
239
  }
235
240
  TabListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TabListComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.ContentDensityObserver }, { token: i2.DestroyedService }], target: i0.ɵɵFactoryTarget.Component });
236
- TabListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TabListComponent, selector: "fd-tab-list", inputs: { size: "size", mode: "mode", collapseOverflow: "collapseOverflow", maxVisibleTabs: "maxVisibleTabs", stackContent: "stackContent", maxContentHeight: "maxContentHeight", collapsibleTabs: "collapsibleTabs", expandOverflowText: "expandOverflowText", defaultTab: "defaultTab", selectDefaultOnTabsChange: "selectDefaultOnTabsChange" }, outputs: { selectedTabChange: "selectedTabChange", visibleItemsCount: "visibleItemsCount", hiddenItemsCount: "hiddenItemsCount" }, host: { classAttribute: "fd-tabs-custom" }, providers: [
241
+ TabListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TabListComponent, selector: "fd-tab-list", inputs: { size: "size", mode: "mode", collapseOverflow: "collapseOverflow", maxVisibleTabs: "maxVisibleTabs", stackContent: "stackContent", maxContentHeight: "maxContentHeight", collapsibleTabs: "collapsibleTabs", expandOverflowText: "expandOverflowText", defaultTab: "defaultTab", selectDefaultOnTabsChange: "selectDefaultOnTabsChange", focusFirstFocusableElement: "focusFirstFocusableElement" }, outputs: { selectedTabChange: "selectedTabChange", visibleItemsCount: "visibleItemsCount", hiddenItemsCount: "hiddenItemsCount" }, host: { classAttribute: "fd-tabs-custom" }, providers: [
237
242
  contentDensityObserverProviders(),
238
243
  DestroyedService,
239
244
  {
@@ -273,6 +278,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
273
278
  type: Input
274
279
  }], selectDefaultOnTabsChange: [{
275
280
  type: Input
281
+ }], focusFirstFocusableElement: [{
282
+ type: Input
276
283
  }], selectedTabChange: [{
277
284
  type: Output
278
285
  }], visibleItemsCount: [{
@@ -304,4 +311,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
304
311
  type: ViewChild,
305
312
  args: ['menu', { read: MenuComponent }]
306
313
  }] } });
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdGFicy90YWItbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90YWJzL3RhYi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0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LENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBS3BELGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBSzlCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBSzlCLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS3ZELGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS2xELGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUt6RCxlQUFlO3NCQUR0QixTQUFTO3VCQUFDLHVCQUF1QjtnQkFLbEMsSUFBSTtzQkFESCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJmbG93TGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL292ZXJmbG93LWxheW91dCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGVsYXksIGZpbHRlciwgZmlyc3QsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERlc3Ryb3llZFNlcnZpY2UsIEtleVV0aWwsIHNjcm9sbFRvcCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFRhYkl0ZW1FeHBhbmRDb21wb25lbnQgfSBmcm9tICcuL3RhYi1pdGVtLWV4cGFuZC90YWItaXRlbS1leHBhbmQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkxpbmtEaXJlY3RpdmUgfSBmcm9tICcuL3RhYi1saW5rL3RhYi1saW5rLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi90YWItaXRlbS90YWItaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFiUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL3RhYi1wYW5lbC90YWItcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkluZm8gfSBmcm9tICcuL3RhYi11dGlscy90YWItaW5mby5jbGFzcyc7XG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZW51JztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlPYnNlcnZlciwgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgTElTVF9DT01QT05FTlQgfSBmcm9tICcuL3RhYi1saXN0LnRva2VuJztcbmltcG9ydCB7IFRhYkxpc3RDb21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICcuL3RhYi1saXN0LWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBUYWJNb2RlcyA9ICdpY29uLW9ubHknIHwgJ3Byb2Nlc3MnIHwgJ2ZpbHRlcic7XG5cbmV4cG9ydCB0eXBlIFRhYlNpemVzID0gJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJyB8ICd4eGwnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBsaXN0IG9mIHRhYi1wYW5lbHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtdGFiLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFiLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtdGFicy1jdXN0b20nXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKCksXG4gICAgICAgIERlc3Ryb3llZFNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExJU1RfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGFiTGlzdENvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFiTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIFRhYkxpc3RDb21wb25lbnRJbnRlcmZhY2UsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIFNpemUgb2YgdGFiLCBpdCdzIG1vc3RseSBhYm91dCBhZGRpbmcgc3BhY2luZyBvbiB0YWIgY29udGFpbmVyLCBhdmFpbGFibGUgc2l6ZXMgJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJyB8ICd4eGwnICovXG4gICAgQElucHV0KClcbiAgICBzaXplOiBUYWJTaXplcyA9ICdtJztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdXNlciB3YW50cyB0byB1c2UgdGFiIGNvbXBvbmVudCBpbiBjZXJ0YWluIG1vZGUuIE1vZGVzIGF2YWlsYWJsZTpcbiAgICAgKiAnaWNvbi1vbmx5JyB8ICdwcm9jZXNzJyB8ICdmaWx0ZXInXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtb2RlOiBUYWJNb2RlcztcblxuICAgIC8qKiBXaGV0aGVyIHRvIG1vdmUgdGFicyBvdmVyZmxvd2luZyBpbiB0aGUgdGFiIGJhciB0byB0aGUgZHJvcGRvd24gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbGxhcHNlT3ZlcmZsb3cgPSB0cnVlO1xuXG4gICAgLyoqIExpbWl0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGFicyB2aXNpYmxlIGluIHRoZSB0YWIgYmFyIGluIGNvbGxhcHNlT3ZlcmZsb3cgbW9kZS5cbiAgICAgKiBPdGhlciB0YWJzIHdpbGwgYmUgbW92ZWQgdG8gdGhlIGNvbGxhcHNlZCB0YWJzIGRyb3Bkb3duICovXG4gICAgQElucHV0KClcbiAgICBtYXhWaXNpYmxlVGFicyA9IEluZmluaXR5O1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gb3BlbiB0YWIgY29udGVudCBvbmUgdW5kZXIgYW5vdGhlciB3aXRob3V0IGNvbGxhcHNpbmcgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YWNrQ29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBjb250ZW50ICovXG4gICAgQElucHV0KClcbiAgICBtYXhDb250ZW50SGVpZ2h0ID0gJzEwMCUnO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZW5hYmxlIGNvbGxhcHNpbmcgZXhwYW5kZWQgdGFiIG9uIGV4cGFuZGVkIHRhYiBjbGljayAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sbGFwc2libGVUYWJzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZFxuICAgICAqIFRleHQgdmlzaWJsZSBpbiBleHBhbmQgb3ZlcmZsb3cgdHJpZ2dlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXhwYW5kT3ZlcmZsb3dUZXh0OiBzdHJpbmc7XG5cbiAgICAvKiogSW5pdGlhbGx5IHNlbGVjdGVkIHRhYiAoYnkgaWQpLiBGaXJzdCBub3QgZGlzYWJsZWQgb25lIGlmIG5vdCBzcGVjaWZpZWQuICovXG4gICAgQElucHV0KClcbiAgICBkZWZhdWx0VGFiOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gdHJ5IHRvIGtlZXAgc2VsZWN0ZWQgdGFiIChkZWZhdWx0IHZhbHVlKSBvbiB0YWJzIGNoYW5nZSBvciB0byBzZWxlY3QgZGVmYXVsdCBvbmUgKGZpcnN0IGlmIG5vdCBzcGVjaWZpZWQpLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0RGVmYXVsdE9uVGFic0NoYW5nZSA9IGZhbHNlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgcGFuZWwgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWxlY3RlZFRhYkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGFiUGFuZWxDb21wb25lbnQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHZpc2libGUgaXRlbXMgY291bnQgaGFzIGJlZW4gY2hhbmdlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB2aXNpYmxlSXRlbXNDb3VudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBoaWRkZW4gaXRlbXMgY291bnQgaGFzIGJlZW4gY2hhbmdlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBoaWRkZW5JdGVtc0NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBUYWJQYW5lbENvbXBvbmVudCkpXG4gICAgdGFiUGFuZWxzOiBRdWVyeUxpc3Q8VGFiUGFuZWxDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKFRhYkxpbmtEaXJlY3RpdmUpXG4gICAgdGFiSGVhZGVyTGlua3M6IFF1ZXJ5TGlzdDxUYWJMaW5rRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihUYWJJdGVtRGlyZWN0aXZlKVxuICAgIHRhYkhlYWRlcnM6IFF1ZXJ5TGlzdDxUYWJJdGVtRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChUYWJJdGVtRXhwYW5kQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBvdmVyZmxvd1RyaWdnZXI6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlckNvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIGhlYWRlckNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnY29udGVudENvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgY29udGVudENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChPdmVyZmxvd0xheW91dENvbXBvbmVudClcbiAgICBwcml2YXRlIF9vdmVyZmxvd0xheW91dDogT3ZlcmZsb3dMYXlvdXRDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ21lbnUnLCB7IHJlYWQ6IE1lbnVDb21wb25lbnQgfSlcbiAgICBtZW51OiBNZW51Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gQ29sbGVjdGlvbiBvZiB0YWJzIGluIG9yaWdpbmFsIG9yZGVyICovXG4gICAgX3RhYkFycmF5OiBUYWJJbmZvW107XG5cbiAgICAvKiogQGhpZGRlbiBXaGV0aGVyIHRvIGRpc2FibGUgc2Nyb2xsIHNweSAqL1xuICAgIF9kaXNhYmxlU2Nyb2xsU3B5ID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pbml0ID0gdHJ1ZTtcblxuICAgIC8qKiBFdmVudCBpcyB0aHJvd24gYWx3YXlzIHdoZW4gdGFiIGlzIHNlbGVjdGVkIGJ5IGtleWJvYXJkIGFjdGlvbnMgKi9cbiAgICByZWFkb25seSB0YWJTZWxlY3RlZDogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgLyoqIEV2ZW50IGlzIHRocm93biBhbHdheXMsIHdoZW4gc29tZSBwcm9wZXJ0eSBpcyBjaGFuZ2VkICovXG4gICAgcmVhZG9ubHkgdGFiUGFuZWxQcm9wZXJ0eUNoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcmVhZG9ubHkgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQ6IERlc3Ryb3llZFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0dXBUYWJQYW5lbHNDaGFuZ2VMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25Qcm9wZXJ0aWVzQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RhYkhlYWRlckNsaWNrSGFuZGxlcih0YWJQYW5lbDogVGFiUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kVGFiKHRhYlBhbmVsLCAhdGFiUGFuZWwuZXhwYW5kZWQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RhYkhlYWRlcktleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50LCB0YWJQYW5lbDogVGFiUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLl90YWJIZWFkZXJDbGlja0hhbmRsZXIodGFiUGFuZWwpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX292ZXJmbG93aW5nVGFiSGVhZGVyQ2xpY2tIYW5kbGVyKHRhYlBhbmVsOiBUYWJQYW5lbENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJBcnJheS5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgICAgIHRhYi5wYW5lbC5fZm9yY2VkVmlzaWJpbGl0eSA9IHRhYi5wYW5lbCA9PT0gdGFiUGFuZWw7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2V4cGFuZFRhYih0YWJQYW5lbCwgdHJ1ZSwgZmFsc2UpO1xuXG4gICAgICAgIHRoaXMuX292ZXJmbG93TGF5b3V0LnRyaWdnZXJSZWNhbGN1bGF0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hpZ2hsaWdodEFjdGl2ZVRhYih7IGlkIH06IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYiA9IHRoaXMuX3RhYkFycmF5LmZpbmQoKF90YWIpID0+IF90YWIucGFuZWwuX3BhbmVsSWQgPT09IGlkKTtcbiAgICAgICAgaWYgKHRhYikge1xuICAgICAgICAgICAgY29uc3QgX3RhYldhc0FjdGl2ZSA9IHRhYi5hY3RpdmU7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmF0ZVN0YWNrZWRUYWIodGFiLnBhbmVsLCBmYWxzZSk7XG4gICAgICAgICAgICBpZiAoIV90YWJXYXNBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiQ2hhbmdlLmVtaXQodGFiLnBhbmVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uVHJpZ2dlcktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIG1lbnVSZWY6IE1lbnVDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBtZW51UmVmLnRvZ2dsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldCBfdGFiUGFuZWxzQ2hhbmdlJCgpOiBPYnNlcnZhYmxlPFRhYlBhbmVsQ29tcG9uZW50W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFiUGFuZWxzLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLnRhYlBhbmVscyksXG4gICAgICAgICAgICBtYXAoKHRhYlBhbmVscykgPT4gdGFiUGFuZWxzLnRvQXJyYXkoKSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZiAmJiAhdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWZbJ2Rlc3Ryb3llZCddKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldHVwVGFiUGFuZWxzQ2hhbmdlTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PblRhYlBhbmVsc0FuZFVwZGF0ZVN0b3JhZ2VTdHJ1Y3R1cmVzKCk7XG4gICAgICAgIHRoaXMuX2luaXRTdGFja0NvbnRlbnRTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25UYWJQYW5lbHNFeHBhbmRlZENoYW5nZSgpO1xuICAgICAgICB0aGlzLl9saXN0ZW5PblRhYlBhbmVsc0FuZEluaXRpYWxseUV4cGFuZFRhYlBhbmVsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gU2V0dXAgbWVjaGFuaXNtcyByZXF1aXJlZCBmb3IgaGFuZGxpbmcgdGhlIHN0YWNrZWQgY29udGVudCBiZWhhdmlvciAqL1xuICAgIHByaXZhdGUgX2luaXRTdGFja0NvbnRlbnRTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYlBhbmVsc0NoYW5nZSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YWNrQ29udGVudCksXG4gICAgICAgICAgICAgICAgZGVsYXkoMCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFiQXJyYXkuZmlsdGVyKCh0YWIpID0+ICF0YWIucGFuZWwuZGlzYWJsZWQpLmZvckVhY2goKHRhYikgPT4gdGFiLnBhbmVsLl9leHBhbmQodHJ1ZSkpXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25UYWJQYW5lbHNBbmRVcGRhdGVTdG9yYWdlU3RydWN0dXJlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiUGFuZWxzQ2hhbmdlJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh0YWJQYW5lbHMpID0+IHRhYlBhbmVscy5tYXAoKGVsKSA9PiBuZXcgVGFiSW5mbyhlbCkpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHRhYnMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YWJBcnJheSA9IHRhYnM7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uVGFiUGFuZWxzRXhwYW5kZWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYlBhbmVsc0NoYW5nZSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgodGFiUGFuZWxzKSA9PiB0YWJQYW5lbHMubWFwKCh0YWIpID0+IHRhYi5fZXhwYW5kZWRTdGF0ZUNoYW5nZS5hc09ic2VydmFibGUoKSkpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgodGFiUGFuZWxzKSA9PiBtZXJnZSguLi50YWJQYW5lbHMpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLl9leHBhbmRUYWIoZXZlbnQudGFyZ2V0LCBldmVudC5zdGF0ZSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25UYWJQYW5lbHNBbmRJbml0aWFsbHlFeHBhbmRUYWJQYW5lbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiUGFuZWxzQ2hhbmdlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMuX3RhYkFycmF5LmZpbmQoKF90YWIpID0+IF90YWIuYWN0aXZlKTtcbiAgICAgICAgICAgIGxldCB0YWI6IE51bGxhYmxlPFRhYkluZm8+O1xuXG4gICAgICAgICAgICBpZiAoIWFjdGl2ZVRhYiB8fCB0aGlzLnNlbGVjdERlZmF1bHRPblRhYnNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZWZhdWx0VGFiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhYiA9IHRoaXMuX3RhYkFycmF5LmZpbmQoKF90YWIpID0+ICFfdGFiLmRpc2FibGVkICYmIF90YWIuaWQgPT09IHRoaXMuZGVmYXVsdFRhYik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCF0YWIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFiID0gdGhpcy5fdGFiQXJyYXkuZmluZCgoX3RhYikgPT4gIV90YWIuZGlzYWJsZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRhYiAmJiBhY3RpdmVUYWIgIT09IHRhYikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2V4cGFuZFRhYih0YWIucGFuZWwsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uUHJvcGVydGllc0NoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgbWVyZ2UodGhpcy50YWJQYW5lbFByb3BlcnR5Q2hhbmdlZCwgdGhpcy50YWJQYW5lbHMuY2hhbmdlcylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZGV0ZWN0Q2hhbmdlcygpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FjdGl2YXRlU3RhY2tlZFRhYih0YWJQYW5lbDogVGFiUGFuZWxDb21wb25lbnQsIHNjcm9sbCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHNjcm9sbCkge1xuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsVG9QYW5lbCh0YWJQYW5lbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdGFiQXJyYXkuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgICAgICB0YWIuYWN0aXZlID0gdGFiLnBhbmVsID09PSB0YWJQYW5lbDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hY3RpdmF0ZUV4cGFuZGFibGVUYWIodGFiUGFuZWw6IFRhYlBhbmVsQ29tcG9uZW50LCBleHBhbmQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sbGFwc2UgPSB0aGlzLmNvbGxhcHNpYmxlVGFicyAmJiAhZXhwYW5kO1xuXG4gICAgICAgIHRoaXMuX3RhYkFycmF5LmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSB0YWIucGFuZWwgPT09IHRhYlBhbmVsICYmICFjb2xsYXBzZTtcblxuICAgICAgICAgICAgdGFiLnBhbmVsLl9leHBhbmQoaXNBY3RpdmUpO1xuICAgICAgICAgICAgdGFiLmFjdGl2ZSA9IGlzQWN0aXZlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2V4cGFuZFRhYih0YWJQYW5lbDogVGFiUGFuZWxDb21wb25lbnQsIGV4cGFuZDogYm9vbGVhbiwgZGV0ZWN0Q2hhbmdlcyA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhY2tDb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmF0ZVN0YWNrZWRUYWIodGFiUGFuZWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW5DaGFuZ2VFeHBhbmRTdGF0ZSh0YWJQYW5lbCwgZXhwYW5kKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fYWN0aXZhdGVFeHBhbmRhYmxlVGFiKHRhYlBhbmVsLCBleHBhbmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRldGVjdENoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2UuZW1pdCh0YWJQYW5lbCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zY3JvbGxUb1BhbmVsKHRhYlBhbmVsOiBUYWJQYW5lbENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYW5lbEVsZW1lbnQgPSB0YWJQYW5lbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VUb1Njcm9sbCA9IHBhbmVsRWxlbWVudC5vZmZzZXRUb3AgLSBjb250YWluZXJFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgY29uc3QgbWF4aW11bVNjcm9sbFRvcCA9IGNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyRWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IE1hdGguY2VpbChjb250YWluZXJFbGVtZW50LnNjcm9sbFRvcCk7XG5cbiAgICAgICAgaWYgKCEoY3VycmVudFNjcm9sbFBvc2l0aW9uID09PSBtYXhpbXVtU2Nyb2xsVG9wICYmIGRpc3RhbmNlVG9TY3JvbGwgPiBtYXhpbXVtU2Nyb2xsVG9wKSkge1xuICAgICAgICAgICAgIXRoaXMuX2luaXQgPyAodGhpcy5fZGlzYWJsZVNjcm9sbFNweSA9IHRydWUpIDogKHRoaXMuX2luaXQgPSBmYWxzZSk7XG4gICAgICAgICAgICBmcm9tRXZlbnQoY29udGFpbmVyRWxlbWVudCwgJ3Njcm9sbCcpXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpcnN0KCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+ICh0aGlzLl9kaXNhYmxlU2Nyb2xsU3B5ID0gZmFsc2UpKTtcbiAgICAgICAgICAgIHNjcm9sbFRvcChjb250YWluZXJFbGVtZW50LCBkaXN0YW5jZVRvU2Nyb2xsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFdoZXRoZXIgdGFiIGNhbiBiZSBleHBhbmRlZC9jb2xsYXBzZWQgKi9cbiAgICBwcml2YXRlIF9jYW5DaGFuZ2VFeHBhbmRTdGF0ZSh0YWJQYW5lbDogVGFiUGFuZWxDb21wb25lbnQsIGV4cGFuZDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRhYlBhbmVsLmRpc2FibGVkICYmIGV4cGFuZCAhPT0gdGFiUGFuZWwuZXhwYW5kZWQgJiYgZXhwYW5kID09PSBmYWxzZSA/IHRoaXMuY29sbGFwc2libGVUYWJzIDogdHJ1ZTtcbiAgICB9XG59XG4iLCI8ZGl2ICNoZWFkZXJDb250YWluZXIgcm9sZT1cInRhYmxpc3RcIiBjbGFzcz1cImZkLXRhYnNcIiBbY2xhc3NdPVwiKG1vZGUgPyAnZmQtdGFicy0tJyArIG1vZGUgOiAnJykgKyAoJyBmZC10YWJzLS0nICsgc2l6ZSlcIj5cbiAgICA8ZmQtb3ZlcmZsb3ctbGF5b3V0XG4gICAgICAgIFttYXhWaXNpYmxlSXRlbXNdPVwibWF4VmlzaWJsZVRhYnNcIlxuICAgICAgICBbZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uXT1cInRydWVcIlxuICAgICAgICBuYXZpZ2F0aW9uVHJpZ2dlcj1cImtleWRvd25cIlxuICAgICAgICAoaGlkZGVuSXRlbXNDb3VudCk9XCJoaWRkZW5JdGVtc0NvdW50LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICh2aXNpYmxlSXRlbXNDb3VudCk9XCJ2aXNpYmxlSXRlbXNDb3VudC5lbWl0KCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIF90YWJBcnJheTsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgZmQtdGFiLWl0ZW1cbiAgICAgICAgICAgICAgICAqZmRPdmVyZmxvd0l0ZW1SZWY9XCJ0YWJcIlxuICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dMYXlvdXRJdGVtXG4gICAgICAgICAgICAgICAgW2ZvcmNlVmlzaWJpbGl0eV09XCJ0YWIucGFuZWwuX2ZvcmNlZFZpc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwidGFiLmlzSGVhZGVyXCJcbiAgICAgICAgICAgICAgICBbdGFiSXRlbVN0YXRlXT1cInRhYi50YWJTdGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgZmQtdGFiLWxpbmtcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJ0YWIuaWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cInRhYi5wYW5lbElkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0YWIuYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiIXRhYi5hcmlhTGFiZWwgJiYgdGFiLmFyaWFMYWJlbGxlZEJ5ID8gdGFiLmFyaWFMYWJlbGxlZEJ5IDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dMYXlvdXRGb2N1c2FibGVJdGVtXG4gICAgICAgICAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidGFiLmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYXZpZ2FibGVdPVwiIXRhYi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthY3RpdmVdPVwidGFiLmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0YWIuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJfdGFiSGVhZGVyS2V5ZG93bkhhbmRsZXIoJGV2ZW50LCB0YWIucGFuZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl90YWJIZWFkZXJDbGlja0hhbmRsZXIodGFiLnBhbmVsKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiLnRpdGxlVGVtcGxhdGUgfHwgbnVsbFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGFiLnRpdGxlVGVtcGxhdGVcIiBbbmdTd2l0Y2hdPVwibW9kZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbHRlcidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC10YWItaGVhZGVyICpuZ0lmPVwidGFiLmlzSGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLXRhYi1jb3VudGVyLWhlYWRlciAqbmdJZj1cInRhYi5jb3VudFwiPnt7IHRhYi5jb3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtdGFiLWxhYmVsICpuZ0lmPVwidGFiLnRpdGxlXCI+e3sgdGFiLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRhYi5pc0hlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC10YWItaWNvbiBbaWNvbl09XCJ0YWIuZ2x5cGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGZkLXRhYi1jb3VudD57eyB0YWIuY291bnQgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtdGFiLWxhYmVsPnt7IHRhYi50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaWNvbi1vbmx5J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLXRhYi1pY29uIFtpY29uXT1cInRhYi5nbHlwaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBmZC10YWItY291bnQ+e3sgdGFiLmNvdW50IH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncHJvY2VzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC10YWItaWNvbiAqbmdJZj1cInRhYi5nbHlwaFwiIFtpY29uXT1cInRhYi5nbHlwaFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLXRhYi1wcm9jZXNzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC10YWItbGFiZWwgKm5nSWY9XCJ0YWIuY291bnRcIj57eyB0YWIuY291bnQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLXRhYi1sYWJlbCAqbmdJZj1cInRhYi50aXRsZVwiPnt7IHRhYi50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgZmQtdGFiLWNvdW50ICpuZ0lmPVwidGFiLmNvdW50XCI+e3sgdGFiLmNvdW50IH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLXRhYi10YWc+e3sgdGFiLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICAgIDxkaXYgZmQtdGFiLXByb2Nlc3MtaWNvbiAqbmdJZj1cIm1vZGUgPT09ICdwcm9jZXNzJyAmJiAhbGFzdFwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YWIuaXNIZWFkZXJcIiBmZC10YWItc2VwYXJhdG9yPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpmZE92ZXJmbG93RXhwYW5kPVwibGV0IHRhYnM7IGl0ZW1zOiBfdGFiQXJyYXlcIj5cbiAgICAgICAgICAgIDxmZC1pdGVtLWV4cGFuZFxuICAgICAgICAgICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJleHBhbmRPdmVyZmxvd1RleHRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidGFicy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJfb25UcmlnZ2VyS2V5ZG93bigkZXZlbnQsIG1lbnUpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZmQtaXRlbS1leHBhbmQ+XG5cbiAgICAgICAgICAgIDxmZC1tZW51ICNtZW51PlxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICBmZC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIl9vdmVyZmxvd2luZ1RhYkhlYWRlckNsaWNrSGFuZGxlcih0YWIuaXRlbS5wYW5lbClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0YWIuaXRlbS50aXRsZVRlbXBsYXRlICYmIG1vZGUgPT09ICdpY29uLW9ubHknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGljb25Pbmx5VGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGFiLml0ZW0udGl0bGVUZW1wbGF0ZSB8fCB0ZXh0VGl0bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiB0YWIuaXRlbSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvZmQtbWVudT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9mZC1vdmVyZmxvdy1sYXlvdXQ+XG48L2Rpdj5cblxuPGRpdlxuICAgICNjb250ZW50Q29udGFpbmVyXG4gICAgY2xhc3M9XCJmZC10YWJzX19jb250ZW50XCJcbiAgICBbc3R5bGUubWF4SGVpZ2h0XT1cIm1heENvbnRlbnRIZWlnaHRcIlxuICAgIGZkU2Nyb2xsU3B5XG4gICAgZmQtc2Nyb2xsYmFyXG4gICAgW3RyYWNrZWRUYWdzXT1cIlsnZmQtdGFiJ11cIlxuICAgIFtzY3JvbGxTcHlEaXNhYmxlZF09XCJfZGlzYWJsZVNjcm9sbFNweVwiXG4gICAgKHNweUNoYW5nZSk9XCJfaGlnaGxpZ2h0QWN0aXZlVGFiKCRldmVudClcIlxuPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RleHRUaXRsZSBsZXQtdGFiPlxuICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgdGFiLnRpdGxlIH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpY29uT25seVRlbXBsYXRlIGxldC10YWI+XG4gICAgPHNwYW4gZmQtdGFiLWljb24gW2ljb25dPVwidGFiLmdseXBoXCI+XG4gICAgICAgIDxwIGZkLXRhYi1jb3VudD57eyB0YWIuY291bnQgfX08L3A+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdGFicy90YWItbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90YWJzL3RhYi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0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LEtBQUs7Z0JBS04sMEJBQTBCO3NCQUR6QixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFLUCxpQkFBaUI7c0JBRGhCLE1BQU07Z0JBS1AsZ0JBQWdCO3NCQURmLE1BQU07Z0JBS1AsU0FBUztzQkFEUixlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFLcEQsY0FBYztzQkFEYixZQUFZO3VCQUFDLGdCQUFnQjtnQkFLOUIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGdCQUFnQjtnQkFLOUIsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFLdkQsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFLbEQsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS3pELGVBQWU7c0JBRHRCLFNBQVM7dUJBQUMsdUJBQXVCO2dCQUtsQyxJQUFJO3NCQURILFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmZsb3dMYXlvdXRDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvb3ZlcmZsb3ctbGF5b3V0JztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkZWxheSwgZmlsdGVyLCBmaXJzdCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGVzdHJveWVkU2VydmljZSwgS2V5VXRpbCwgc2Nyb2xsVG9wIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgVGFiSXRlbUV4cGFuZENvbXBvbmVudCB9IGZyb20gJy4vdGFiLWl0ZW0tZXhwYW5kL3RhYi1pdGVtLWV4cGFuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vdGFiLWxpbmsvdGFiLWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRhYkl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL3RhYi1pdGVtL3RhYi1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vdGFiLXBhbmVsL3RhYi1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiSW5mbyB9IGZyb20gJy4vdGFiLXV0aWxzL3RhYi1pbmZvLmNsYXNzJztcbmltcG9ydCB7IEVOVEVSLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21lbnUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBMSVNUX0NPTVBPTkVOVCB9IGZyb20gJy4vdGFiLWxpc3QudG9rZW4nO1xuaW1wb3J0IHsgVGFiTGlzdENvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4vdGFiLWxpc3QtY29tcG9uZW50LmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIFRhYk1vZGVzID0gJ2ljb24tb25seScgfCAncHJvY2VzcycgfCAnZmlsdGVyJztcblxuZXhwb3J0IHR5cGUgVGFiU2l6ZXMgPSAncycgfCAnbScgfCAnbCcgfCAneGwnIHwgJ3h4bCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGxpc3Qgb2YgdGFiLXBhbmVscy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC10YWItbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWItbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC10YWJzLWN1c3RvbSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKSxcbiAgICAgICAgRGVzdHJveWVkU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTElTVF9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUYWJMaXN0Q29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgVGFiTGlzdENvbXBvbmVudEludGVyZmFjZSwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogU2l6ZSBvZiB0YWIsIGl0J3MgbW9zdGx5IGFib3V0IGFkZGluZyBzcGFjaW5nIG9uIHRhYiBjb250YWluZXIsIGF2YWlsYWJsZSBzaXplcyAncycgfCAnbScgfCAnbCcgfCAneGwnIHwgJ3h4bCcgKi9cbiAgICBASW5wdXQoKVxuICAgIHNpemU6IFRhYlNpemVzID0gJ20nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIHVzZSB0YWIgY29tcG9uZW50IGluIGNlcnRhaW4gbW9kZS4gTW9kZXMgYXZhaWxhYmxlOlxuICAgICAqICdpY29uLW9ubHknIHwgJ3Byb2Nlc3MnIHwgJ2ZpbHRlcidcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1vZGU6IFRhYk1vZGVzO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gbW92ZSB0YWJzIG92ZXJmbG93aW5nIGluIHRoZSB0YWIgYmFyIHRvIHRoZSBkcm9wZG93biAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sbGFwc2VPdmVyZmxvdyA9IHRydWU7XG5cbiAgICAvKiogTGltaXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiB0YWJzIHZpc2libGUgaW4gdGhlIHRhYiBiYXIgaW4gY29sbGFwc2VPdmVyZmxvdyBtb2RlLlxuICAgICAqIE90aGVyIHRhYnMgd2lsbCBiZSBtb3ZlZCB0byB0aGUgY29sbGFwc2VkIHRhYnMgZHJvcGRvd24gKi9cbiAgICBASW5wdXQoKVxuICAgIG1heFZpc2libGVUYWJzID0gSW5maW5pdHk7XG5cbiAgICAvKiogV2hldGhlciB0byBvcGVuIHRhYiBjb250ZW50IG9uZSB1bmRlciBhbm90aGVyIHdpdGhvdXQgY29sbGFwc2luZyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhY2tDb250ZW50ID0gZmFsc2U7XG5cbiAgICAvKiogTWF4aW11bSBoZWlnaHQgb2YgdGhlIGNvbnRlbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heENvbnRlbnRIZWlnaHQgPSAnMTAwJSc7XG5cbiAgICAvKiogV2hldGhlciB0byBlbmFibGUgY29sbGFwc2luZyBleHBhbmRlZCB0YWIgb24gZXhwYW5kZWQgdGFiIGNsaWNrICovXG4gICAgQElucHV0KClcbiAgICBjb2xsYXBzaWJsZVRhYnMgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpMThuIGNhcGFiaWxpdGllcyBpbnN0ZWFkXG4gICAgICogVGV4dCB2aXNpYmxlIGluIGV4cGFuZCBvdmVyZmxvdyB0cmlnZ2VyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBleHBhbmRPdmVyZmxvd1RleHQ6IHN0cmluZztcblxuICAgIC8qKiBJbml0aWFsbHkgc2VsZWN0ZWQgdGFiIChieSBpZCkuIEZpcnN0IG5vdCBkaXNhYmxlZCBvbmUgaWYgbm90IHNwZWNpZmllZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRlZmF1bHRUYWI6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogV2hldGhlciB0byB0cnkgdG8ga2VlcCBzZWxlY3RlZCB0YWIgKGRlZmF1bHQgdmFsdWUpIG9uIHRhYnMgY2hhbmdlIG9yIHRvIHNlbGVjdCBkZWZhdWx0IG9uZSAoZmlyc3QgaWYgbm90IHNwZWNpZmllZCkuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3REZWZhdWx0T25UYWJzQ2hhbmdlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0byBmb2N1cyB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgaW4gYSB0YWIgcGFuZWwgd2hlbiB1c2luZyBzdGFja2VkIHRhYnMuICovXG4gICAgQElucHV0KClcbiAgICBmb2N1c0ZpcnN0Rm9jdXNhYmxlRWxlbWVudCA9IHRydWU7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCBwYW5lbCBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNlbGVjdGVkVGFiQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJQYW5lbENvbXBvbmVudD4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdmlzaWJsZSBpdGVtcyBjb3VudCBoYXMgYmVlbiBjaGFuZ2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHZpc2libGVJdGVtc0NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGhpZGRlbiBpdGVtcyBjb3VudCBoYXMgYmVlbiBjaGFuZ2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGhpZGRlbkl0ZW1zQ291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFRhYlBhbmVsQ29tcG9uZW50KSlcbiAgICB0YWJQYW5lbHM6IFF1ZXJ5TGlzdDxUYWJQYW5lbENvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oVGFiTGlua0RpcmVjdGl2ZSlcbiAgICB0YWJIZWFkZXJMaW5rczogUXVlcnlMaXN0PFRhYkxpbmtEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKFRhYkl0ZW1EaXJlY3RpdmUpXG4gICAgdGFiSGVhZGVyczogUXVlcnlMaXN0PFRhYkl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKFRhYkl0ZW1FeHBhbmRDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIG92ZXJmbG93VHJpZ2dlcjogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyQ29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgaGVhZGVyQ29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdjb250ZW50Q29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBjb250ZW50Q29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKE92ZXJmbG93TGF5b3V0Q29tcG9uZW50KVxuICAgIHByaXZhdGUgX292ZXJmbG93TGF5b3V0OiBPdmVyZmxvd0xheW91dENvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbWVudScsIHsgcmVhZDogTWVudUNvbXBvbmVudCB9KVxuICAgIG1lbnU6IE1lbnVDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiBDb2xsZWN0aW9uIG9mIHRhYnMgaW4gb3JpZ2luYWwgb3JkZXIgKi9cbiAgICBfdGFiQXJyYXk6IFRhYkluZm9bXTtcblxuICAgIC8qKiBAaGlkZGVuIFdoZXRoZXIgdG8gZGlzYWJsZSBzY3JvbGwgc3B5ICovXG4gICAgX2Rpc2FibGVTY3JvbGxTcHkgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2luaXQgPSB0cnVlO1xuXG4gICAgLyoqIEV2ZW50IGlzIHRocm93biBhbHdheXMgd2hlbiB0YWIgaXMgc2VsZWN0ZWQgYnkga2V5Ym9hcmQgYWN0aW9ucyAqL1xuICAgIHJlYWRvbmx5IHRhYlNlbGVjdGVkOiBTdWJqZWN0PG51bWJlcj4gPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgICAvKiogRXZlbnQgaXMgdGhyb3duIGFsd2F5cywgd2hlbiBzb21lIHByb3BlcnR5IGlzIGNoYW5nZWQgKi9cbiAgICByZWFkb25seSB0YWJQYW5lbFByb3BlcnR5Q2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogRGVzdHJveWVkU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXR1cFRhYlBhbmVsc0NoYW5nZUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PblByb3BlcnRpZXNDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdGFiSGVhZGVyQ2xpY2tIYW5kbGVyKHRhYlBhbmVsOiBUYWJQYW5lbENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9leHBhbmRUYWIodGFiUGFuZWwsICF0YWJQYW5lbC5leHBhbmRlZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdGFiSGVhZGVyS2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHRhYlBhbmVsOiBUYWJQYW5lbENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuX3RhYkhlYWRlckNsaWNrSGFuZGxlcih0YWJQYW5lbCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb3ZlcmZsb3dpbmdUYWJIZWFkZXJDbGlja0hhbmRsZXIodGFiUGFuZWw6IFRhYlBhbmVsQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYkFycmF5LmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICAgICAgdGFiLnBhbmVsLl9mb3JjZWRWaXNpYmlsaXR5ID0gdGFiLnBhbmVsID09PSB0YWJQYW5lbDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZXhwYW5kVGFiKHRhYlBhbmVsLCB0cnVlLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy5fb3ZlcmZsb3dMYXlvdXQudHJpZ2dlclJlY2FsY3VsYXRpb24oKTtcblxuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGlnaGxpZ2h0QWN0aXZlVGFiKHsgaWQgfTogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFiID0gdGhpcy5fdGFiQXJyYXkuZmluZCgoX3RhYikgPT4gX3RhYi5wYW5lbC5fcGFuZWxJZCA9PT0gaWQpO1xuICAgICAgICBpZiAodGFiKSB7XG4gICAgICAgICAgICBjb25zdCBfdGFiV2FzQWN0aXZlID0gdGFiLmFjdGl2ZTtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2YXRlU3RhY2tlZFRhYih0YWIucGFuZWwsIGZhbHNlKTtcbiAgICAgICAgICAgIGlmICghX3RhYldhc0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2UuZW1pdCh0YWIucGFuZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25UcmlnZ2VyS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgbWVudVJlZjogTWVudUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIG1lbnVSZWYudG9nZ2xlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF90YWJQYW5lbHNDaGFuZ2UkKCk6IE9ic2VydmFibGU8VGFiUGFuZWxDb21wb25lbnRbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YWJQYW5lbHMuY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMudGFiUGFuZWxzKSxcbiAgICAgICAgICAgIG1hcCgodGFiUGFuZWxzKSA9PiB0YWJQYW5lbHMudG9BcnJheSgpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2NoYW5nZURldGVjdG9yUmVmICYmICF0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZlsnZGVzdHJveWVkJ10pIHtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0dXBUYWJQYW5lbHNDaGFuZ2VMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uVGFiUGFuZWxzQW5kVXBkYXRlU3RvcmFnZVN0cnVjdHVyZXMoKTtcbiAgICAgICAgdGhpcy5faW5pdFN0YWNrQ29udGVudFN1YnNjcmlwdGlvbigpO1xuICAgICAgICB0aGlzLl9saXN0ZW5PblRhYlBhbmVsc0V4cGFuZGVkQ2hhbmdlKCk7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uVGFiUGFuZWxzQW5kSW5pdGlhbGx5RXhwYW5kVGFiUGFuZWwoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBTZXR1cCBtZWNoYW5pc21zIHJlcXVpcmVkIGZvciBoYW5kbGluZyB0aGUgc3RhY2tlZCBjb250ZW50IGJlaGF2aW9yICovXG4gICAgcHJpdmF0ZSBfaW5pdFN0YWNrQ29udGVudFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiUGFuZWxzQ2hhbmdlJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuc3RhY2tDb250ZW50KSxcbiAgICAgICAgICAgICAgICBkZWxheSgwKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLl90YWJBcnJheS5maWx0ZXIoKHRhYikgPT4gIXRhYi5wYW5lbC5kaXNhYmxlZCkuZm9yRWFjaCgodGFiKSA9PiB0YWIucGFuZWwuX2V4cGFuZCh0cnVlKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PblRhYlBhbmVsc0FuZFVwZGF0ZVN0b3JhZ2VTdHJ1Y3R1cmVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJQYW5lbHNDaGFuZ2UkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHRhYlBhbmVscykgPT4gdGFiUGFuZWxzLm1hcCgoZWwpID0+IG5ldyBUYWJJbmZvKGVsKSkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodGFicykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYkFycmF5ID0gdGFicztcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25UYWJQYW5lbHNFeHBhbmRlZENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiUGFuZWxzQ2hhbmdlJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh0YWJQYW5lbHMpID0+IHRhYlBhbmVscy5tYXAoKHRhYikgPT4gdGFiLl9leHBhbmRlZFN0YXRlQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpKSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh0YWJQYW5lbHMpID0+IG1lcmdlKC4uLnRhYlBhbmVscykpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuX2V4cGFuZFRhYihldmVudC50YXJnZXQsIGV2ZW50LnN0YXRlKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PblRhYlBhbmVsc0FuZEluaXRpYWxseUV4cGFuZFRhYlBhbmVsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJQYW5lbHNDaGFuZ2UkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlVGFiID0gdGhpcy5fdGFiQXJyYXkuZmluZCgoX3RhYikgPT4gX3RhYi5hY3RpdmUpO1xuICAgICAgICAgICAgbGV0IHRhYjogTnVsbGFibGU8VGFiSW5mbz47XG5cbiAgICAgICAgICAgIGlmICghYWN0aXZlVGFiIHx8IHRoaXMuc2VsZWN0RGVmYXVsdE9uVGFic0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZmF1bHRUYWIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFiID0gdGhpcy5fdGFiQXJyYXkuZmluZCgoX3RhYikgPT4gIV90YWIuZGlzYWJsZWQgJiYgX3RhYi5pZCA9PT0gdGhpcy5kZWZhdWx0VGFiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRhYikge1xuICAgICAgICAgICAgICAgICAgICB0YWIgPSB0aGlzLl90YWJBcnJheS5maW5kKChfdGFiKSA9PiAhX3RhYi5kaXNhYmxlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGFiICYmIGFjdGl2ZVRhYiAhPT0gdGFiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kVGFiKHRhYi5wYW5lbCwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25Qcm9wZXJ0aWVzQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBtZXJnZSh0aGlzLnRhYlBhbmVsUHJvcGVydHlDaGFuZ2VkLCB0aGlzLnRhYlBhbmVscy5jaGFuZ2VzKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9kZXRlY3RDaGFuZ2VzKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWN0aXZhdGVTdGFja2VkVGFiKHRhYlBhbmVsOiBUYWJQYW5lbENvbXBvbmVudCwgc2Nyb2xsID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAoc2Nyb2xsKSB7XG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxUb1BhbmVsKHRhYlBhbmVsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90YWJBcnJheS5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgICAgIHRhYi5hY3RpdmUgPSB0YWIucGFuZWwgPT09IHRhYlBhbmVsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FjdGl2YXRlRXhwYW5kYWJsZVRhYih0YWJQYW5lbDogVGFiUGFuZWxDb21wb25lbnQsIGV4cGFuZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2xsYXBzZSA9IHRoaXMuY29sbGFwc2libGVUYWJzICYmICFleHBhbmQ7XG5cbiAgICAgICAgdGhpcy5fdGFiQXJyYXkuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IHRhYi5wYW5lbCA9PT0gdGFiUGFuZWwgJiYgIWNvbGxhcHNlO1xuXG4gICAgICAgICAgICB0YWIucGFuZWwuX2V4cGFuZChpc0FjdGl2ZSk7XG4gICAgICAgICAgICB0YWIuYWN0aXZlID0gaXNBY3RpdmU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZXhwYW5kVGFiKHRhYlBhbmVsOiBUYWJQYW5lbENvbXBvbmVudCwgZXhwYW5kOiBib29sZWFuLCBkZXRlY3RDaGFuZ2VzID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdGFja0NvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2YXRlU3RhY2tlZFRhYih0YWJQYW5lbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2NhbkNoYW5nZUV4cGFuZFN0YXRlKHRhYlBhbmVsLCBleHBhbmQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9hY3RpdmF0ZUV4cGFuZGFibGVUYWIodGFiUGFuZWwsIGV4cGFuZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGV0ZWN0Q2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYkNoYW5nZS5lbWl0KHRhYlBhbmVsKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Njcm9sbFRvUGFuZWwodGFiUGFuZWw6IFRhYlBhbmVsQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IHRhYlBhbmVsLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBkaXN0YW5jZVRvU2Nyb2xsID0gcGFuZWxFbGVtZW50Lm9mZnNldFRvcCAtIGNvbnRhaW5lckVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICBjb25zdCBtYXhpbXVtU2Nyb2xsVG9wID0gY29udGFpbmVyRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBjb250YWluZXJFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgY29uc3QgY3VycmVudFNjcm9sbFBvc2l0aW9uID0gTWF0aC5jZWlsKGNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wKTtcblxuICAgICAgICBpZiAoIShjdXJyZW50U2Nyb2xsUG9zaXRpb24gPT09IG1heGltdW1TY3JvbGxUb3AgJiYgZGlzdGFuY2VUb1Njcm9sbCA+IG1heGltdW1TY3JvbGxUb3ApKSB7XG4gICAgICAgICAgICAhdGhpcy5faW5pdCA/ICh0aGlzLl9kaXNhYmxlU2Nyb2xsU3B5ID0gdHJ1ZSkgOiAodGhpcy5faW5pdCA9IGZhbHNlKTtcbiAgICAgICAgICAgIGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnc2Nyb2xsJylcbiAgICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gKHRoaXMuX2Rpc2FibGVTY3JvbGxTcHkgPSBmYWxzZSkpO1xuICAgICAgICAgICAgc2Nyb2xsVG9wKGNvbnRhaW5lckVsZW1lbnQsIGRpc3RhbmNlVG9TY3JvbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9jdXNGaXJzdEZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRhYlBhbmVsLl9mb2N1c0ZpcnN0Rm9jdXNhYmxlRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gV2hldGhlciB0YWIgY2FuIGJlIGV4cGFuZGVkL2NvbGxhcHNlZCAqL1xuICAgIHByaXZhdGUgX2NhbkNoYW5nZUV4cGFuZFN0YXRlKHRhYlBhbmVsOiBUYWJQYW5lbENvbXBvbmVudCwgZXhwYW5kOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGFiUGFuZWwuZGlzYWJsZWQgJiYgZXhwYW5kICE9PSB0YWJQYW5lbC5leHBhbmRlZCAmJiBleHBhbmQgPT09IGZhbHNlID8gdGhpcy5jb2xsYXBzaWJsZVRhYnMgOiB0cnVlO1xuICAgIH1cbn1cbiIsIjxkaXYgI2hlYWRlckNvbnRhaW5lciByb2xlPVwidGFibGlzdFwiIGNsYXNzPVwiZmQtdGFic1wiIFtjbGFzc109XCIobW9kZSA/ICdmZC10YWJzLS0nICsgbW9kZSA6ICcnKSArICgnIGZkLXRhYnMtLScgKyBzaXplKVwiPlxuICAgIDxmZC1vdmVyZmxvdy1sYXlvdXRcbiAgICAgICAgW21heFZpc2libGVJdGVtc109XCJtYXhWaXNpYmxlVGFic1wiXG4gICAgICAgIFtlbmFibGVLZXlib2FyZE5hdmlnYXRpb25dPVwidHJ1ZVwiXG4gICAgICAgIG5hdmlnYXRpb25UcmlnZ2VyPVwia2V5ZG93blwiXG4gICAgICAgIChoaWRkZW5JdGVtc0NvdW50KT1cImhpZGRlbkl0ZW1zQ291bnQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKHZpc2libGVJdGVtc0NvdW50KT1cInZpc2libGVJdGVtc0NvdW50LmVtaXQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgX3RhYkFycmF5OyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBmZC10YWItaXRlbVxuICAgICAgICAgICAgICAgICpmZE92ZXJmbG93SXRlbVJlZj1cInRhYlwiXG4gICAgICAgICAgICAgICAgZmRPdmVyZmxvd0xheW91dEl0ZW1cbiAgICAgICAgICAgICAgICBbZm9yY2VWaXNpYmlsaXR5XT1cInRhYi5wYW5lbC5fZm9yY2VkVmlzaWJpbGl0eVwiXG4gICAgICAgICAgICAgICAgW2hlYWRlcl09XCJ0YWIuaXNIZWFkZXJcIlxuICAgICAgICAgICAgICAgIFt0YWJJdGVtU3RhdGVdPVwidGFiLnRhYlN0YXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBmZC10YWItbGlua1xuICAgICAgICAgICAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cInRhYi5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwidGFiLnBhbmVsSWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRhYi5hcmlhTGFiZWwgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIhdGFiLmFyaWFMYWJlbCAmJiB0YWIuYXJpYUxhYmVsbGVkQnkgPyB0YWIuYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd0xheW91dEZvY3VzYWJsZUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJ0YWIuYWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgW25hdmlnYWJsZV09XCIhdGFiLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJ0YWIuYWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRhYi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl90YWJIZWFkZXJLZXlkb3duSGFuZGxlcigkZXZlbnQsIHRhYi5wYW5lbClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3RhYkhlYWRlckNsaWNrSGFuZGxlcih0YWIucGFuZWwpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWIudGl0bGVUZW1wbGF0ZSB8fCBudWxsXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0YWIudGl0bGVUZW1wbGF0ZVwiIFtuZ1N3aXRjaF09XCJtb2RlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmlsdGVyJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLXRhYi1oZWFkZXIgKm5nSWY9XCJ0YWIuaXNIZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtdGFiLWNvdW50ZXItaGVhZGVyICpuZ0lmPVwidGFiLmNvdW50XCI+e3sgdGFiLmNvdW50IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC10YWItbGFiZWwgKm5nSWY9XCJ0YWIudGl0bGVcIj57eyB0YWIudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGFiLmlzSGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLXRhYi1pY29uIFtpY29uXT1cInRhYi5nbHlwaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgZmQtdGFiLWNvdW50Pnt7IHRhYi5jb3VudCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC10YWItbGFiZWw+e3sgdGFiLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpY29uLW9ubHknXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtdGFiLWljb24gW2ljb25dPVwidGFiLmdseXBoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGZkLXRhYi1jb3VudD57eyB0YWIuY291bnQgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwcm9jZXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLXRhYi1pY29uICpuZ0lmPVwidGFiLmdseXBoXCIgW2ljb25dPVwidGFiLmdseXBoXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtdGFiLXByb2Nlc3M+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLXRhYi1sYWJlbCAqbmdJZj1cInRhYi5jb3VudFwiPnt7IHRhYi5jb3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtdGFiLWxhYmVsICpuZ0lmPVwidGFiLnRpdGxlXCI+e3sgdGFiLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBmZC10YWItY291bnQgKm5nSWY9XCJ0YWIuY291bnRcIj57eyB0YWIuY291bnQgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtdGFiLXRhZz57eyB0YWIudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9hPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBmZC10YWItcHJvY2Vzcy1pY29uICpuZ0lmPVwibW9kZSA9PT0gJ3Byb2Nlc3MnICYmICFsYXN0XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRhYi5pc0hlYWRlclwiIGZkLXRhYi1zZXBhcmF0b3I+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKmZkT3ZlcmZsb3dFeHBhbmQ9XCJsZXQgdGFiczsgaXRlbXM6IF90YWJBcnJheVwiPlxuICAgICAgICAgICAgPGZkLWl0ZW0tZXhwYW5kXG4gICAgICAgICAgICAgICAgW2ZkTWVudVRyaWdnZXJdPVwibWVudVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImV4cGFuZE92ZXJmbG93VGV4dFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0YWJzLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9vblRyaWdnZXJLZXlkb3duKCRldmVudCwgbWVudSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1pdGVtLWV4cGFuZD5cblxuICAgICAgICAgICAgPGZkLW1lbnUgI21lbnU+XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgIGZkLW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIlxuICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwiX292ZXJmbG93aW5nVGFiSGVhZGVyQ2xpY2tIYW5kbGVyKHRhYi5pdGVtLnBhbmVsKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXRhYi5pdGVtLnRpdGxlVGVtcGxhdGUgJiYgbW9kZSA9PT0gJ2ljb24tb25seSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaWNvbk9ubHlUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0YWIuaXRlbS50aXRsZVRlbXBsYXRlIHx8IHRleHRUaXRsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHRhYi5pdGVtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9mZC1tZW51PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2ZkLW92ZXJmbG93LWxheW91dD5cbjwvZGl2PlxuXG48ZGl2XG4gICAgI2NvbnRlbnRDb250YWluZXJcbiAgICBjbGFzcz1cImZkLXRhYnNfX2NvbnRlbnRcIlxuICAgIFtzdHlsZS5tYXhIZWlnaHRdPVwibWF4Q29udGVudEhlaWdodFwiXG4gICAgZmRTY3JvbGxTcHlcbiAgICBmZC1zY3JvbGxiYXJcbiAgICBbdHJhY2tlZFRhZ3NdPVwiWydmZC10YWInXVwiXG4gICAgW3Njcm9sbFNweURpc2FibGVkXT1cIl9kaXNhYmxlU2Nyb2xsU3B5XCJcbiAgICAoc3B5Q2hhbmdlKT1cIl9oaWdobGlnaHRBY3RpdmVUYWIoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGV4dFRpdGxlIGxldC10YWI+XG4gICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyB0YWIudGl0bGUgfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ljb25Pbmx5VGVtcGxhdGUgbGV0LXRhYj5cbiAgICA8c3BhbiBmZC10YWItaWNvbiBbaWNvbl09XCJ0YWIuZ2x5cGhcIj5cbiAgICAgICAgPHAgZmQtdGFiLWNvdW50Pnt7IHRhYi5jb3VudCB9fTwvcD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -78,6 +78,12 @@ export class TabPanelComponent {
78
78
  }
79
79
  }
80
80
  /** @hidden */
81
+ _focusFirstFocusableElement() {
82
+ this.elementRef.nativeElement
83
+ .querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')
84
+ ?.focus({ preventScroll: true });
85
+ }
86
+ /** @hidden */
81
87
  _updateHost() {
82
88
  this._expandedClass = this.expanded;
83
89
  }
@@ -126,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
126
132
  type: HostBinding,
127
133
  args: ['class.is-expanded']
128
134
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3RhYnMvdGFiLXBhbmVsL3RhYi1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90YWJzL3RhYi1wYW5lbC90YWItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFFTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFHbkQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFFekIsTUFBTSxPQUFPLG1CQUFtQjtJQUM1Qjs7OztPQUlHO0lBQ0gsWUFBbUIsTUFBeUIsRUFBUyxLQUFjO1FBQWhELFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBUztJQUFHLENBQUM7Q0FDMUU7QUFFRDs7R0FFRztBQWFILE1BQU0sT0FBTyxpQkFBaUI7SUE4RDFCLGNBQWM7SUFDZCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjO0lBQ2QsWUFDVyxVQUFzQixFQUNyQixhQUFnQyxFQUNoQyxPQUFlLEVBQzhC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Z0JBS04sTUFBTTtzQkFETCxNQUFNO2dCQUtQLE1BQU07c0JBREwsTUFBTTtnQkFLUCxhQUFhO3NCQURaLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQVd0RCxjQUFjO3NCQURiLFdBQVc7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYlRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vdGFiLXV0aWxzL3RhYi1kaXJlY3RpdmVzJztcbmltcG9ydCB7IFRhYkl0ZW1TdGF0ZSB9IGZyb20gJy4uL3RhYi1pdGVtL3RhYi1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBmaXJzdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBMSVNUX0NPTVBPTkVOVCB9IGZyb20gJy4uL3RhYi1saXN0LnRva2VuJztcbmltcG9ydCB7IFRhYkxpc3RDb21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICcuLi90YWItbGlzdC1jb21wb25lbnQuaW50ZXJmYWNlJztcblxubGV0IHRhYlBhbmVsVW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgY2xhc3MgVGFiUGFuZWxTdGF0ZUNoYW5nZSB7XG4gICAgLyoqXG4gICAgICogVGFiIHBhbmVsIHN0YXRlIGNoYW5nZSBldmVudFxuICAgICAqIEBwYXJhbSB0YXJnZXQgVGFiIHBhbmVsIHRoYXQgaXMgYmVpbmcgY2hhbmdlZFxuICAgICAqIEBwYXJhbSBzdGF0ZSBOZXcgc3RhdGUgb2YgdGhlIHRhYiBwYW5lbFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0YXJnZXQ6IFRhYlBhbmVsQ29tcG9uZW50LCBwdWJsaWMgc3RhdGU6IGJvb2xlYW4pIHt9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgYm9keSBvZiBhIHRhYiBlbGVtZW50LiBJdCBhbHNvIGNvbnRhaW5zIGVsZW1lbnRzIHBlcnRhaW5pbmcgdG8gdGhlIGFzc29jaWF0ZWQgdGFiIGhlYWRlci5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC10YWInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ3RhYnBhbmVsJyxcbiAgICAgICAgY2xhc3M6ICdmZC10YWJzX19wYW5lbCcsXG4gICAgICAgICdbaWRdJzogJ19wYW5lbElkJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnaWQnXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYlBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKiogSWQgb2YgdGhlIHRhYi4gSWYgbm9uZSBpcyBwcm92aWRlZCwgb25lIHdpbGwgYmUgZ2VuZXJhdGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZyA9ICdmZC10YWItcGFuZWwnICsgdGFiUGFuZWxVbmlxdWVJZCsrO1xuXG4gICAgLyoqIEFyaWEtbGFiZWwgb2YgdGhlIHRhYi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBJZCBvZiB0aGUgZWxlbWVudCB0aGF0IGxhYmVscyB0aGUgdGFiLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogVGhlIHRpdGxlIG9mIHRhYiwgZGVwZW5kaW5nIG9uIG1vZGUgdXNlZCwgaXQgd2lsbCBiZSBwbGFjZWQgaW4gZGlmZmVyZW50IHBvc2l0aW9uICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBUaGUgY291bnQgb2YgdGFiLCBkZXBlbmRpbmcgb24gbW9kZSB1c2VkLCBpdCB3aWxsIGJlIHBsYWNlZCBpbiBkaWZmZXJlbnQgcG9zaXRpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvdW50OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEdseXBoIGljb24sIGl0IGNhbiBiZSB1c2VkIG9ubHkgb24gICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaDogc3RyaW5nO1xuXG4gICAgLyoqIEdseXBoIGljb24sIGl0IGNhbiBiZSB1c2VkIG9ubHkgb24gICovXG4gICAgQElucHV0KClcbiAgICBoZWFkZXIgPSBmYWxzZTtcblxuICAgIC8qKiBEaXNhYmxlZCBzdGF0ZSBmb3IgdGFiIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogU2VtYW50aWMgdHlwZSBvZiB0aGUgdGFiIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIHRhYlN0YXRlOiBOdWxsYWJsZTxUYWJJdGVtU3RhdGU+O1xuXG4gICAgLyoqIEV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSB0YWIgcGFuZWwgaGFzIGJlZW4gb3BlbmVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgdGFiIHBhbmVsIGhhcyBiZWVuIGNsb3NlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVGFiVGl0bGVEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICB0aXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gRXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gdGhlIHRhYiBwYW5lbCAuICovXG4gICAgX2V4cGFuZGVkU3RhdGVDaGFuZ2UgPSBuZXcgU3ViamVjdDxUYWJQYW5lbFN0YXRlQ2hhbmdlPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9yY2VkVmlzaWJpbGl0eSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLWV4cGFuZGVkJylcbiAgICBfZXhwYW5kZWRDbGFzcyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gV2hldGhlciB0byBkaXNwbGF5IHRhYiBwYW5lbCBjb250ZW50ICovXG4gICAgcHJpdmF0ZSBfZXhwYW5kZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9wYW5lbElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkICsgJy1wYW5lbCc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExJU1RfQ09NUE9ORU5UKSBwcml2YXRlIHJlYWRvbmx5IF90YWJzQ29tcG9uZW50OiBUYWJMaXN0Q29tcG9uZW50SW50ZXJmYWNlIHwgbnVsbFxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogVGhhbmtzIHRvIE9uUHVzaCBjaGFuZ2Ugc3RyYXRlZ3kgZGV0ZWN0aW9uIG9uIHRhYi1saXN0IHBhcmVudCBjb21wb25lbnQsXG4gICAgICogZXZlcnkgY2hhbmdlIG9mIGFueSBwcm9wZXJ0eSBzaG91bGQgYmUgcmVwb3J0ZWQuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYnNDb21wb25lbnQ/LnRhYlBhbmVsUHJvcGVydHlDaGFuZ2VkLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0YWIgcGFuZWwgY29udGVudCBpcyBleHBhbmRlZCAqL1xuICAgIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRvIGV4cGFuZCB0YWIgcGFuZWwgY29udGVudCAqL1xuICAgIG9wZW4ob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9leHBhbmRlZFN0YXRlQ2hhbmdlLm5leHQobmV3IFRhYlBhbmVsU3RhdGVDaGFuZ2UodGhpcywgb3BlbikpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNldCBuZXcgZXhwYW5kIHN0YXRlICovXG4gICAgX2V4cGFuZChleHBhbmRlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWQgIT09IGV4cGFuZGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9leHBhbmRlZCA9IGV4cGFuZGVkO1xuXG4gICAgICAgICAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5lZC5lbWl0KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgdGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3VwZGF0ZUhvc3QoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZUhvc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2V4cGFuZGVkQ2xhc3MgPSB0aGlzLmV4cGFuZGVkO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJleHBhbmRlZFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3RhYnMvdGFiLXBhbmVsL3RhYi1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90YWJzL3RhYi1wYW5lbC90YWItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFFTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFHbkQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFFekIsTUFBTSxPQUFPLG1CQUFtQjtJQUM1Qjs7OztPQUlHO0lBQ0gsWUFBbUIsTUFBeUIsRUFBUyxLQUFjO1FBQWhELFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBUztJQUFHLENBQUM7Q0FDMUU7QUFFRDs7R0FFRztBQWFILE1BQU0sT0FBTyxpQkFBaUI7SUE4RDFCLGNBQWM7SUFDZCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjO0lBQ2QsWUFDVyxVQUFzQixFQUNyQixhQUFnQyxFQUNoQyxPQUFlLEVBQzhC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Y0FBYztzQkFEYixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLE1BQU07c0JBREwsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLE1BQU07c0JBREwsTUFBTTtnQkFLUCxNQUFNO3NCQURMLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFXdEQsY0FBYztzQkFEYixXQUFXO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4uL3RhYi11dGlscy90YWItZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBUYWJJdGVtU3RhdGUgfSBmcm9tICcuLi90YWItaXRlbS90YWItaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZmlyc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTElTVF9DT01QT05FTlQgfSBmcm9tICcuLi90YWItbGlzdC50b2tlbic7XG5pbXBvcnQgeyBUYWJMaXN0Q29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi4vdGFiLWxpc3QtY29tcG9uZW50LmludGVyZmFjZSc7XG5cbmxldCB0YWJQYW5lbFVuaXF1ZUlkID0gMDtcblxuZXhwb3J0IGNsYXNzIFRhYlBhbmVsU3RhdGVDaGFuZ2Uge1xuICAgIC8qKlxuICAgICAqIFRhYiBwYW5lbCBzdGF0ZSBjaGFuZ2UgZXZlbnRcbiAgICAgKiBAcGFyYW0gdGFyZ2V0IFRhYiBwYW5lbCB0aGF0IGlzIGJlaW5nIGNoYW5nZWRcbiAgICAgKiBAcGFyYW0gc3RhdGUgTmV3IHN0YXRlIG9mIHRoZSB0YWIgcGFuZWxcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGFyZ2V0OiBUYWJQYW5lbENvbXBvbmVudCwgcHVibGljIHN0YXRlOiBib29sZWFuKSB7fVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGJvZHkgb2YgYSB0YWIgZWxlbWVudC4gSXQgYWxzbyBjb250YWlucyBlbGVtZW50cyBwZXJ0YWluaW5nIHRvIHRoZSBhc3NvY2lhdGVkIHRhYiBoZWFkZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtdGFiJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFiLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICd0YWJwYW5lbCcsXG4gICAgICAgIGNsYXNzOiAnZmQtdGFic19fcGFuZWwnLFxuICAgICAgICAnW2lkXSc6ICdfcGFuZWxJZCcsXG4gICAgICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ2lkJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUYWJQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgLyoqIElkIG9mIHRoZSB0YWIuIElmIG5vbmUgaXMgcHJvdmlkZWQsIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmcgPSAnZmQtdGFiLXBhbmVsJyArIHRhYlBhbmVsVW5pcXVlSWQrKztcblxuICAgIC8qKiBBcmlhLWxhYmVsIG9mIHRoZSB0YWIuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogSWQgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHMgdGhlIHRhYi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFRoZSB0aXRsZSBvZiB0YWIsIGRlcGVuZGluZyBvbiBtb2RlIHVzZWQsIGl0IHdpbGwgYmUgcGxhY2VkIGluIGRpZmZlcmVudCBwb3NpdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogVGhlIGNvdW50IG9mIHRhYiwgZGVwZW5kaW5nIG9uIG1vZGUgdXNlZCwgaXQgd2lsbCBiZSBwbGFjZWQgaW4gZGlmZmVyZW50IHBvc2l0aW9uICovXG4gICAgQElucHV0KClcbiAgICBjb3VudDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBHbHlwaCBpY29uLCBpdCBjYW4gYmUgdXNlZCBvbmx5IG9uICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IHN0cmluZztcblxuICAgIC8qKiBHbHlwaCBpY29uLCBpdCBjYW4gYmUgdXNlZCBvbmx5IG9uICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGVhZGVyID0gZmFsc2U7XG5cbiAgICAvKiogRGlzYWJsZWQgc3RhdGUgZm9yIHRhYiBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFNlbWFudGljIHR5cGUgb2YgdGhlIHRhYiBpdGVtICovXG4gICAgQElucHV0KClcbiAgICB0YWJTdGF0ZTogTnVsbGFibGU8VGFiSXRlbVN0YXRlPjtcblxuICAgIC8qKiBFdmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgdGFiIHBhbmVsIGhhcyBiZWVuIG9wZW5lZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gdGhlIHRhYiBwYW5lbCBoYXMgYmVlbiBjbG9zZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRhYlRpdGxlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgdGl0bGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuIEV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSB0YWIgcGFuZWwgLiAqL1xuICAgIF9leHBhbmRlZFN0YXRlQ2hhbmdlID0gbmV3IFN1YmplY3Q8VGFiUGFuZWxTdGF0ZUNoYW5nZT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ZvcmNlZFZpc2liaWxpdHkgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1leHBhbmRlZCcpXG4gICAgX2V4cGFuZGVkQ2xhc3MgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuIFdoZXRoZXIgdG8gZGlzcGxheSB0YWIgcGFuZWwgY29udGVudCAqL1xuICAgIHByaXZhdGUgX2V4cGFuZGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfcGFuZWxJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pZCArICctcGFuZWwnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMSVNUX0NPTVBPTkVOVCkgcHJpdmF0ZSByZWFkb25seSBfdGFic0NvbXBvbmVudDogVGFiTGlzdENvbXBvbmVudEludGVyZmFjZSB8IG51bGxcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFRoYW5rcyB0byBPblB1c2ggY2hhbmdlIHN0cmF0ZWd5IGRldGVjdGlvbiBvbiB0YWItbGlzdCBwYXJlbnQgY29tcG9uZW50LFxuICAgICAqIGV2ZXJ5IGNoYW5nZSBvZiBhbnkgcHJvcGVydHkgc2hvdWxkIGJlIHJlcG9ydGVkLiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJzQ29tcG9uZW50Py50YWJQYW5lbFByb3BlcnR5Q2hhbmdlZC5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGFiIHBhbmVsIGNvbnRlbnQgaXMgZXhwYW5kZWQgKi9cbiAgICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9leHBhbmRlZDtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0byBleHBhbmQgdGFiIHBhbmVsIGNvbnRlbnQgKi9cbiAgICBvcGVuKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWRTdGF0ZUNoYW5nZS5uZXh0KG5ldyBUYWJQYW5lbFN0YXRlQ2hhbmdlKHRoaXMsIG9wZW4pKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBTZXQgbmV3IGV4cGFuZCBzdGF0ZSAqL1xuICAgIF9leHBhbmQoZXhwYW5kZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2V4cGFuZGVkICE9PSBleHBhbmRlZCkge1xuICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWQgPSBleHBhbmRlZDtcblxuICAgICAgICAgICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuZWQuZW1pdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl91cGRhdGVIb3N0KCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9jdXNGaXJzdEZvY3VzYWJsZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvcignYnV0dG9uLCBbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknKVxuICAgICAgICAgICAgPy5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91cGRhdGVIb3N0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9leHBhbmRlZENsYXNzID0gdGhpcy5leHBhbmRlZDtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZXhwYW5kZWRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -632,7 +632,7 @@ export class TokenizerComponent {
632
632
  }
633
633
  }
634
634
  TokenizerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TokenizerComponent, deps: [{ token: i1.ContentDensityObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.RtlService, optional: true }, { token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
635
- TokenizerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TokenizerComponent, selector: "fd-tokenizer", inputs: { class: "class", disableKeyboardDeletion: "disableKeyboardDeletion", compactCollapse: "compactCollapse", tokenizerFocusable: "tokenizerFocusable", inputValue: "inputValue", glyph: "glyph", moreTerm: "moreTerm", open: "open" }, outputs: { moreClickedEvent: "moreClickedEvent" }, host: { listeners: { "keydown": "keyDown($event)" } }, providers: [contentDensityObserverProviders()], queries: [{ propertyName: "input", first: true, predicate: i0.forwardRef(function () { return FormControlComponent; }), descendants: true, read: ElementRef }, { propertyName: "tokenList", predicate: i0.forwardRef(function () { return TokenComponent; }) }], viewQueries: [{ propertyName: "tokenizerInnerEl", first: true, predicate: ["tokenizerInner"], descendants: true }, { propertyName: "moreElement", first: true, predicate: ["moreElementSpan"], descendants: true }, { propertyName: "content", first: true, predicate: ["inputGroupAddOn"], descendants: true }, { propertyName: "_viewContainer", predicate: ["viewContainer"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fd-tokenizer fd-tokenizer--scrollable\" [class.is-focus]=\"_tokenizerHasFocus\">\n <div class=\"fd-tokenizer__inner\" #tokenizerInner>\n <div role=\"listbox\" [style.width]=\"_tokensContainerWidth\">\n <ng-content select=\"fd-token\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"_showOverflowPopover && ((_compact$ | async) || compactCollapse); else moreElement\">\n <ng-container *ngTemplateOutlet=\"tokensOverflow\"></ng-container>\n </ng-container>\n\n <ng-content select=\"[fd-form-control]\"></ng-content>\n </div>\n <span fd-input-group-addon *ngIf=\"glyph\" #inputGroupAddOn [button]=\"true\" placement=\"after\">\n <button fd-button class=\"fd-tokenizer-addon\" fdType=\"transparent\" [glyph]=\"glyph\" type=\"button\"></button>\n </span>\n</div>\n\n<ng-template #tokensOverflow>\n <fd-popover placement=\"bottom-start\" title=\"\" [noArrow]=\"false\" [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"moreElement\"></ng-container>\n </fd-popover-control>\n\n <fd-popover-body>\n <ul fd-list class=\"fd-tokenizer__overflow-list\">\n <li fd-list-item class=\"fd-tokenizer__overflow-list-item\" *ngFor=\"let token of _hiddenTokens\">\n <ng-container #viewContainer></ng-container>\n\n <span\n *ngIf=\"!token.readOnly\"\n class=\"fd-token__close\"\n role=\"button\"\n [attr.aria-label]=\"token.deleteButtonLabel || ('coreToken.deleteButtonLabel' | fdTranslate)\"\n (click)=\"token.closeClickHandler($event)\"\n ></span>\n </li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #moreElement>\n <span\n (click)=\"moreClicked()\"\n *ngIf=\"_showMoreElement && _hiddenTokens.length > 0\"\n #moreElementSpan\n class=\"fd-tokenizer-more\"\n role=\"button\"\n tabindex=\"0\"\n >\n <ng-container *ngIf=\"(_compact$ | async) || compactCollapse\">\n {{ 'coreTokenizer.moreLabel' | fdTranslate : { count: moreTokensLeft.length + moreTokensRight.length } }}\n </ng-container>\n <ng-container *ngIf=\"(_compact$ | async) === false && !compactCollapse\">\n {{ 'coreTokenizer.moreLabel' | fdTranslate : { count: hiddenCozyTokenCount } }}\n </ng-container>\n </span>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-tokenizer{-webkit-box-sizing:border-box;-webkit-box-shadow:none;-moz-appearance:none;-webkit-appearance:none;align-items:center;appearance:none;background:var(--sapField_BackgroundStyle, var(--sapField_BackgroundStyle));background-color:var(--sapField_Background, var(--sapField_Background));border:none;border-radius:var(--sapField_BorderCornerRadius);box-shadow:none;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.25rem;height:auto;line-height:var(--sapContent_LineHeight);margin:0;min-height:2.25rem;min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-tokenizer:after,.fd-tokenizer:before{box-sizing:inherit;font-size:inherit}.fd-tokenizer::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-tokenizer[dir=rtl]::placeholder,[dir=rtl] .fd-tokenizer::placeholder{text-indent:.125rem}.fd-tokenizer::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-tokenizer::-ms-clear{display:none}.fd-tokenizer.is-hover,.fd-tokenizer:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--sapField_Hover_BackgroundStyle, var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-tokenizer.is-focus,.fd-tokenizer:focus{background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-tokenizer.is-hover,.fd-tokenizer:hover{box-shadow:none}.fd-tokenizer__inner{-ms-overflow-style:none;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:end;-ms-flex-pack:end;align-items:center;display:flex;float:right;justify-content:flex-end;overflow:hidden;padding:var(--fdTokenizer_Inner_Padding, 0 .3125rem);scrollbar-width:none;white-space:nowrap;width:100%}.fd-tokenizer__inner::-webkit-scrollbar{display:none}.fd-tokenizer .fd-token{margin-right:.3125rem;max-width:calc(100% - 3.3125rem)}.fd-tokenizer .fd-token[dir=rtl],[dir=rtl] .fd-tokenizer .fd-token{margin:0 0 0 .3125rem}.fd-tokenizer__indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-tokenizer__indicator:after,.fd-tokenizer__indicator:before{box-sizing:inherit;font-size:inherit}.fd-tokenizer .fd-tokenizer__input{background:transparent}.fd-tokenizer .fd-tokenizer__input.fd-input{border:none;min-width:var(--fdTokenizer_Input_Width, 3rem);padding:0}.fd-tokenizer .fd-tokenizer__input:first-child{padding:0 .3125rem}.fd-tokenizer .fd-tokenizer__input:last-child{flex-basis:100%}.fd-tokenizer .fd-tokenizer__input.is-focus,.fd-tokenizer .fd-tokenizer__input:focus{border:none;outline:none;z-index:5}.fd-tokenizer .fd-tokenizer__input.is-focus,.fd-tokenizer .fd-tokenizer__input.is-hover,.fd-tokenizer .fd-tokenizer__input:focus,.fd-tokenizer .fd-tokenizer__input:hover{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none}.fd-tokenizer.is-focus,.fd-tokenizer:focus{-webkit-box-shadow:none;border:none;box-shadow:none;outline-color:var(--sapContent_FocusColor);outline-offset:-.0625rem;outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:5}.fd-tokenizer[class*=-compact],.fd-tokenizer[class*=-condensed],[class*=-compact] .fd-tokenizer:not([class*=-cozy]),[class*=-condensed] .fd-tokenizer:not([class*=-cozy]){--fdTokenizer_Inner_Padding:0 .25rem;--fdInput_Field_Compact_Min_Width:2rem;height:1.625rem;min-height:1.625rem}.fd-tokenizer[class*=-compact] .fd-tokenizer__input:first-child,.fd-tokenizer[class*=-condensed] .fd-tokenizer__input:first-child,[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-tokenizer__input:first-child,[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-tokenizer__input:first-child{padding:0 .25rem}.fd-tokenizer[class*=-compact] .fd-token,.fd-tokenizer[class*=-condensed] .fd-token,[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token,[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token{margin-right:.25rem;max-width:calc(100% - 2.25rem)}.fd-tokenizer[class*=-compact] .fd-token[dir=rtl],.fd-tokenizer[class*=-condensed] .fd-token[dir=rtl],[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token[dir=rtl],[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token[dir=rtl],[dir=rtl] .fd-tokenizer[class*=-compact] .fd-token,[dir=rtl] .fd-tokenizer[class*=-condensed] .fd-token,[dir=rtl] [class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token,[dir=rtl] [class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token{margin:0 0 0 .3125rem}.fd-tokenizer--readonly{background-color:var(--sapField_ReadOnly_Background);overflow:visible}.fd-tokenizer--readonly .fd-tokenizer__inner{overflow:visible}.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true],.fd-tokenizer--readonly .fd-tokenizer__input[readonly]{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none}.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly.is-focus,.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly:focus,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true].is-focus,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true]:focus,.fd-tokenizer--readonly .fd-tokenizer__input[readonly].is-focus,.fd-tokenizer--readonly .fd-tokenizer__input[readonly]:focus{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none;z-index:5}.fd-tokenizer--scrollable .fd-tokenizer__inner{justify-content:normal;overflow:scroll}.fd-tokenizer .fd-token{max-width:inherit!important}input.fd-input.fd-tokenizer__input{background-color:transparent;margin-right:1px;border:none;outline:none}.fd-tokenizer-more{padding-right:.5rem;color:var(--sapLinkColor);cursor:pointer}[dir=rtl] .fd-tokenizer-more,.fd-tokenizer-more[dir=rtl]{padding-left:.5rem;padding-right:0}.fd-input-group__addon--button .fd-input-group__button.fd-tokenizer-addon{height:2.25rem}.fd-input-group__addon--button .fd-input-group__button.fd-tokenizer-addon--compact{height:1.625rem}.fd-tokenizer__overflow-list-item{display:flex;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.InputGroupAddOnDirective, selector: "[fdInputGroupAddon], [fd-input-group-addon]", inputs: ["class", "placement", "type", "state", "button"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
635
+ TokenizerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TokenizerComponent, selector: "fd-tokenizer", inputs: { class: "class", disableKeyboardDeletion: "disableKeyboardDeletion", compactCollapse: "compactCollapse", tokenizerFocusable: "tokenizerFocusable", inputValue: "inputValue", glyph: "glyph", moreTerm: "moreTerm", open: "open" }, outputs: { moreClickedEvent: "moreClickedEvent" }, host: { listeners: { "keydown": "keyDown($event)" } }, providers: [contentDensityObserverProviders()], queries: [{ propertyName: "input", first: true, predicate: i0.forwardRef(function () { return FormControlComponent; }), descendants: true, read: ElementRef }, { propertyName: "tokenList", predicate: i0.forwardRef(function () { return TokenComponent; }) }], viewQueries: [{ propertyName: "tokenizerInnerEl", first: true, predicate: ["tokenizerInner"], descendants: true }, { propertyName: "moreElement", first: true, predicate: ["moreElementSpan"], descendants: true }, { propertyName: "content", first: true, predicate: ["inputGroupAddOn"], descendants: true }, { propertyName: "_viewContainer", predicate: ["viewContainer"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fd-tokenizer fd-tokenizer--scrollable\" [class.is-focus]=\"_tokenizerHasFocus\">\n <div class=\"fd-tokenizer__inner\" #tokenizerInner>\n <div role=\"listbox\" [style.width]=\"_tokensContainerWidth\">\n <ng-content select=\"fd-token\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"_showOverflowPopover && ((_compact$ | async) || compactCollapse); else moreElement\">\n <ng-container *ngTemplateOutlet=\"tokensOverflow\"></ng-container>\n </ng-container>\n\n <ng-content select=\"[fd-form-control]\"></ng-content>\n </div>\n <span fd-input-group-addon *ngIf=\"glyph\" #inputGroupAddOn [button]=\"true\" placement=\"after\">\n <button fd-button class=\"fd-tokenizer-addon\" fdType=\"transparent\" [glyph]=\"glyph\" type=\"button\"></button>\n </span>\n</div>\n\n<ng-template #tokensOverflow>\n <fd-popover placement=\"bottom-start\" title=\"\" [noArrow]=\"false\" [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"moreElement\"></ng-container>\n </fd-popover-control>\n\n <fd-popover-body>\n <ul fd-list class=\"fd-tokenizer__overflow-list\">\n <li fd-list-item class=\"fd-tokenizer__overflow-list-item\" *ngFor=\"let token of _hiddenTokens\">\n <ng-container #viewContainer></ng-container>\n\n <span\n *ngIf=\"!token.readOnly\"\n class=\"fd-token__close\"\n role=\"button\"\n [attr.aria-label]=\"token.deleteButtonLabel || ('coreToken.deleteButtonLabel' | fdTranslate)\"\n (click)=\"token.closeClickHandler($event)\"\n ></span>\n </li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #moreElement>\n <span\n (click)=\"moreClicked()\"\n *ngIf=\"_showMoreElement && _hiddenTokens.length > 0\"\n #moreElementSpan\n class=\"fd-tokenizer-more\"\n role=\"button\"\n tabindex=\"0\"\n >\n <ng-container *ngIf=\"(_compact$ | async) || compactCollapse\">\n {{ 'coreTokenizer.moreLabel' | fdTranslate : { count: moreTokensLeft.length + moreTokensRight.length } }}\n </ng-container>\n <ng-container *ngIf=\"(_compact$ | async) === false && !compactCollapse\">\n {{ 'coreTokenizer.moreLabel' | fdTranslate : { count: hiddenCozyTokenCount } }}\n </ng-container>\n </span>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-tokenizer{-webkit-box-sizing:border-box;-webkit-box-shadow:none;-moz-appearance:none;-webkit-appearance:none;align-items:center;appearance:none;background:var(--sapField_BackgroundStyle, var(--sapField_BackgroundStyle));background-color:var(--sapField_Background, var(--sapField_Background));border:none;border-radius:var(--sapField_BorderCornerRadius);box-shadow:none;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.25rem;height:auto;line-height:var(--sapContent_LineHeight);margin:0;min-height:2.25rem;min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-tokenizer:after,.fd-tokenizer:before{box-sizing:inherit;font-size:inherit}.fd-tokenizer::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-tokenizer[dir=rtl]::placeholder,[dir=rtl] .fd-tokenizer::placeholder{text-indent:.125rem}.fd-tokenizer::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-tokenizer::-ms-clear{display:none}.fd-tokenizer.is-hover,.fd-tokenizer:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--sapField_Hover_BackgroundStyle, var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-tokenizer.is-focus,.fd-tokenizer:focus{background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-tokenizer.is-hover,.fd-tokenizer:hover{box-shadow:none}.fd-tokenizer__inner{-ms-overflow-style:none;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:end;-ms-flex-pack:end;align-items:center;display:flex;float:right;justify-content:flex-end;overflow:hidden;padding:var(--fdTokenizer_Inner_Padding, 0 .3125rem);scrollbar-width:none;white-space:nowrap;width:100%}.fd-tokenizer__inner::-webkit-scrollbar{display:none}.fd-tokenizer .fd-token{margin-right:.3125rem;max-width:calc(100% - 3.3125rem)}.fd-tokenizer .fd-token[dir=rtl],[dir=rtl] .fd-tokenizer .fd-token{margin:0 0 0 .3125rem}.fd-tokenizer__indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-tokenizer__indicator:after,.fd-tokenizer__indicator:before{box-sizing:inherit;font-size:inherit}.fd-tokenizer .fd-tokenizer__input{background:transparent}.fd-tokenizer .fd-tokenizer__input.fd-input{border:none;min-width:var(--fdTokenizer_Input_Width, 3rem);padding:0}.fd-tokenizer .fd-tokenizer__input:first-child{padding:0 .3125rem}.fd-tokenizer .fd-tokenizer__input:last-child{flex-basis:100%}.fd-tokenizer .fd-tokenizer__input.is-focus,.fd-tokenizer .fd-tokenizer__input:focus{border:none;outline:none;z-index:5}.fd-tokenizer .fd-tokenizer__input.is-focus,.fd-tokenizer .fd-tokenizer__input.is-hover,.fd-tokenizer .fd-tokenizer__input:focus,.fd-tokenizer .fd-tokenizer__input:hover{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none}.fd-tokenizer.is-focus,.fd-tokenizer:focus{-webkit-box-shadow:none;border:none;box-shadow:none;outline-color:var(--sapContent_FocusColor);outline-offset:-.0625rem;outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:5}.fd-tokenizer[class*=-compact],.fd-tokenizer[class*=-condensed],[class*=-compact] .fd-tokenizer:not([class*=-cozy]),[class*=-condensed] .fd-tokenizer:not([class*=-cozy]){--fdTokenizer_Inner_Padding:0 .25rem;--fdInput_Field_Compact_Min_Width:2rem;height:1.625rem;min-height:1.625rem}.fd-tokenizer[class*=-compact] .fd-tokenizer__input:first-child,.fd-tokenizer[class*=-condensed] .fd-tokenizer__input:first-child,[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-tokenizer__input:first-child,[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-tokenizer__input:first-child{padding:0 .25rem}.fd-tokenizer[class*=-compact] .fd-token,.fd-tokenizer[class*=-condensed] .fd-token,[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token,[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token{margin-right:.25rem;max-width:calc(100% - 2.25rem)}.fd-tokenizer[class*=-compact] .fd-token[dir=rtl],.fd-tokenizer[class*=-condensed] .fd-token[dir=rtl],[class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token[dir=rtl],[class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token[dir=rtl],[dir=rtl] .fd-tokenizer[class*=-compact] .fd-token,[dir=rtl] .fd-tokenizer[class*=-condensed] .fd-token,[dir=rtl] [class*=-compact] .fd-tokenizer:not([class*=-cozy]) .fd-token,[dir=rtl] [class*=-condensed] .fd-tokenizer:not([class*=-cozy]) .fd-token{margin:0 0 0 .3125rem}.fd-tokenizer--readonly{background-color:var(--sapField_ReadOnly_Background);overflow:visible}.fd-tokenizer--readonly .fd-tokenizer__inner{overflow:visible}.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true],.fd-tokenizer--readonly .fd-tokenizer__input[readonly]{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none}.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly.is-focus,.fd-tokenizer--readonly .fd-tokenizer__input.is-readonly:focus,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true].is-focus,.fd-tokenizer--readonly .fd-tokenizer__input[aria-readonly=true]:focus,.fd-tokenizer--readonly .fd-tokenizer__input[readonly].is-focus,.fd-tokenizer--readonly .fd-tokenizer__input[readonly]:focus{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none;z-index:5}.fd-tokenizer--scrollable .fd-tokenizer__inner{justify-content:normal;overflow:scroll}.fd-tokenizer .fd-token{max-width:inherit!important}input.fd-input.fd-tokenizer__input{background-color:transparent;margin-right:1px;border:none;outline:none}.fd-tokenizer-more{padding-right:.5rem;color:var(--sapLinkColor);cursor:pointer}[dir=rtl] .fd-tokenizer-more,.fd-tokenizer-more[dir=rtl]{padding-left:.5rem;padding-right:0}.fd-input-group__addon--button .fd-input-group__button.fd-tokenizer-addon{height:2.25rem}.fd-input-group__addon--button .fd-input-group__button.fd-tokenizer-addon--compact{height:1.625rem}.fd-tokenizer__overflow-list-item{display:flex;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.InputGroupAddOnDirective, selector: "[fdInputGroupAddon], [fd-input-group-addon]", inputs: ["class", "placement", "type", "state", "button"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
636
636
  __decorate([
637
637
  applyCssClass,
638
638
  __metadata("design:type", Function),
@@ -14,6 +14,7 @@ import { ScrollSpyModule } from '@fundamental-ngx/core/scroll-spy';
14
14
  import { DeprecatedWizardCompactDirective } from './deprecated-wizard-compact.directive';
15
15
  import { ContentDensityModule } from '@fundamental-ngx/core/content-density';
16
16
  import { ScrollbarModule } from '@fundamental-ngx/core/scrollbar';
17
+ import { WizardService } from './wizard.service';
17
18
  import * as i0 from "@angular/core";
18
19
  export class WizardModule {
19
20
  }
@@ -40,7 +41,7 @@ WizardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
40
41
  WizardContentComponent,
41
42
  DeprecatedWizardCompactDirective,
42
43
  ContentDensityModule] });
43
- WizardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardModule, imports: [CommonModule,
44
+ WizardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardModule, providers: [WizardService], imports: [CommonModule,
44
45
  IconModule,
45
46
  ScrollSpyModule,
46
47
  ActionSheetModule,
@@ -79,7 +80,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
79
80
  WizardContentComponent,
80
81
  DeprecatedWizardCompactDirective,
81
82
  ContentDensityModule
82
- ]
83
+ ],
84
+ providers: [WizardService]
83
85
  }]
84
86
  }] });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3dpemFyZC93aXphcmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBa0NsRSxNQUFNLE9BQU8sWUFBWTs7eUdBQVosWUFBWTswR0FBWixZQUFZLGlCQTlCakIsZUFBZTtRQUNmLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsbUJBQW1CO1FBQ25CLDRCQUE0QjtRQUM1QixzQkFBc0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLGdDQUFnQyxhQUdoQyxZQUFZO1FBQ1osVUFBVTtRQUNWLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLG9CQUFvQjtRQUNwQixlQUFlLGFBR2YsZUFBZTtRQUNmLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsbUJBQW1CO1FBQ25CLDRCQUE0QjtRQUM1Qix1QkFBdUI7UUFDdkIsc0JBQXNCO1FBQ3RCLGdDQUFnQztRQUNoQyxvQkFBb0I7MEdBR2YsWUFBWSxZQXBCakIsWUFBWTtRQUNaLFVBQVU7UUFDVixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsZUFBZSxFQVdmLG9CQUFvQjsyRkFHZixZQUFZO2tCQWhDeEIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsZUFBZTt3QkFDZix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQiw0QkFBNEI7d0JBQzVCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixnQ0FBZ0M7cUJBQ25DO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixlQUFlO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsZUFBZTt3QkFDZix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQiw0QkFBNEI7d0JBQzVCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixnQ0FBZ0M7d0JBQ2hDLG9CQUFvQjtxQkFDdkI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgV2l6YXJkQ29tcG9uZW50IH0gZnJvbSAnLi93aXphcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZE5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3dpemFyZC1uYXZpZ2F0aW9uL3dpemFyZC1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXphcmRQcm9ncmVzc0JhckRpcmVjdGl2ZSB9IGZyb20gJy4vd2l6YXJkLXByb2dyZXNzLWJhci93aXphcmQtcHJvZ3Jlc3MtYmFyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXaXphcmRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi93aXphcmQtc3RlcC93aXphcmQtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkU3RlcEluZGljYXRvckNvbXBvbmVudCB9IGZyb20gJy4vd2l6YXJkLXN0ZXAtaW5kaWNhdG9yL3dpemFyZC1zdGVwLWluZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vd2l6YXJkLWNvbnRlbnQvd2l6YXJkLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZE5leHRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi93aXphcmQtbmV4dC1zdGVwL3dpemFyZC1uZXh0LXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBBY3Rpb25TaGVldE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9hY3Rpb24tc2hlZXQnO1xuaW1wb3J0IHsgU2Nyb2xsU3B5TW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbC1zcHknO1xuaW1wb3J0IHsgRGVwcmVjYXRlZFdpemFyZENvbXBhY3REaXJlY3RpdmUgfSBmcm9tICcuL2RlcHJlY2F0ZWQtd2l6YXJkLWNvbXBhY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5TW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBTY3JvbGxiYXJNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgV2l6YXJkQ29tcG9uZW50LFxuICAgICAgICBXaXphcmROYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRQcm9ncmVzc0JhckRpcmVjdGl2ZSxcbiAgICAgICAgV2l6YXJkU3RlcENvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkU3RlcEluZGljYXRvckNvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkQ29udGVudENvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkTmV4dFN0ZXBDb21wb25lbnQsXG4gICAgICAgIERlcHJlY2F0ZWRXaXphcmRDb21wYWN0RGlyZWN0aXZlXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgSWNvbk1vZHVsZSxcbiAgICAgICAgU2Nyb2xsU3B5TW9kdWxlLFxuICAgICAgICBBY3Rpb25TaGVldE1vZHVsZSxcbiAgICAgICAgU2Nyb2xsaW5nTW9kdWxlLFxuICAgICAgICBDb250ZW50RGVuc2l0eU1vZHVsZSxcbiAgICAgICAgU2Nyb2xsYmFyTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFdpemFyZENvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkUHJvZ3Jlc3NCYXJEaXJlY3RpdmUsXG4gICAgICAgIFdpemFyZFN0ZXBDb21wb25lbnQsXG4gICAgICAgIFdpemFyZFN0ZXBJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgICAgIFdpemFyZE5leHRTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBEZXByZWNhdGVkV2l6YXJkQ29tcGFjdERpcmVjdGl2ZSxcbiAgICAgICAgQ29udGVudERlbnNpdHlNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZE1vZHVsZSB7fVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3dpemFyZC93aXphcmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQW1DakQsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxpQkEvQmpCLGVBQWU7UUFDZix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLG1CQUFtQjtRQUNuQiw0QkFBNEI7UUFDNUIsc0JBQXNCO1FBQ3RCLHVCQUF1QjtRQUN2QixnQ0FBZ0MsYUFHaEMsWUFBWTtRQUNaLFVBQVU7UUFDVixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsZUFBZSxhQUdmLGVBQWU7UUFDZix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLG1CQUFtQjtRQUNuQiw0QkFBNEI7UUFDNUIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0QixnQ0FBZ0M7UUFDaEMsb0JBQW9COzBHQUlmLFlBQVksYUFGVixDQUFDLGFBQWEsQ0FBQyxZQW5CdEIsWUFBWTtRQUNaLFVBQVU7UUFDVixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsZUFBZSxFQVdmLG9CQUFvQjsyRkFJZixZQUFZO2tCQWpDeEIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsZUFBZTt3QkFDZix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQiw0QkFBNEI7d0JBQzVCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixnQ0FBZ0M7cUJBQ25DO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixlQUFlO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsZUFBZTt3QkFDZix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQiw0QkFBNEI7d0JBQzVCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixnQ0FBZ0M7d0JBQ2hDLG9CQUFvQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBXaXphcmRDb21wb25lbnQgfSBmcm9tICcuL3dpemFyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vd2l6YXJkLW5hdmlnYXRpb24vd2l6YXJkLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZFByb2dyZXNzQmFyRGlyZWN0aXZlIH0gZnJvbSAnLi93aXphcmQtcHJvZ3Jlc3MtYmFyL3dpemFyZC1wcm9ncmVzcy1iYXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFdpemFyZFN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3dpemFyZC1zdGVwL3dpemFyZC1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXphcmRTdGVwSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi93aXphcmQtc3RlcC1pbmRpY2F0b3Ivd2l6YXJkLXN0ZXAtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXphcmRDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi93aXphcmQtY29udGVudC93aXphcmQtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkTmV4dFN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3dpemFyZC1uZXh0LXN0ZXAvd2l6YXJkLW5leHQtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IEFjdGlvblNoZWV0TW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2FjdGlvbi1zaGVldCc7XG5pbXBvcnQgeyBTY3JvbGxTcHlNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsLXNweSc7XG5pbXBvcnQgeyBEZXByZWNhdGVkV2l6YXJkQ29tcGFjdERpcmVjdGl2ZSB9IGZyb20gJy4vZGVwcmVjYXRlZC13aXphcmQtY29tcGFjdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IFNjcm9sbGJhck1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGxiYXInO1xuaW1wb3J0IHsgV2l6YXJkU2VydmljZSB9IGZyb20gJy4vd2l6YXJkLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBXaXphcmRDb21wb25lbnQsXG4gICAgICAgIFdpemFyZE5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgICAgIFdpemFyZFByb2dyZXNzQmFyRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRTdGVwSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBXaXphcmROZXh0U3RlcENvbXBvbmVudCxcbiAgICAgICAgRGVwcmVjYXRlZFdpemFyZENvbXBhY3REaXJlY3RpdmVcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBJY29uTW9kdWxlLFxuICAgICAgICBTY3JvbGxTcHlNb2R1bGUsXG4gICAgICAgIEFjdGlvblNoZWV0TW9kdWxlLFxuICAgICAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgICAgIENvbnRlbnREZW5zaXR5TW9kdWxlLFxuICAgICAgICBTY3JvbGxiYXJNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgV2l6YXJkQ29tcG9uZW50LFxuICAgICAgICBXaXphcmROYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRQcm9ncmVzc0JhckRpcmVjdGl2ZSxcbiAgICAgICAgV2l6YXJkU3RlcENvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkU3RlcEluZGljYXRvckNvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkTmV4dFN0ZXBDb21wb25lbnQsXG4gICAgICAgIFdpemFyZENvbnRlbnRDb21wb25lbnQsXG4gICAgICAgIERlcHJlY2F0ZWRXaXphcmRDb21wYWN0RGlyZWN0aXZlLFxuICAgICAgICBDb250ZW50RGVuc2l0eU1vZHVsZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbV2l6YXJkU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkTW9kdWxlIHt9XG4iXX0=