@acorex/components 16.18.15 → 16.18.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. package/esm2022/lib/base/element.class.mjs +3 -3
  2. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +1 -1
  3. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +1 -1
  4. package/esm2022/lib/context-menu/context-menu.component.mjs +1 -1
  5. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +1 -1
  6. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +1 -1
  7. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +1 -1
  8. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +1 -1
  9. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +2 -2
  10. package/esm2022/lib/date-picker/date-picker.component.mjs +1 -1
  11. package/esm2022/lib/fieldset/fieldset.component.mjs +1 -1
  12. package/esm2022/lib/loading/loading-indicator.component.mjs +1 -1
  13. package/esm2022/lib/loading/loading-panel.component.mjs +1 -1
  14. package/esm2022/lib/menu/menu.component.mjs +1 -1
  15. package/esm2022/lib/panel-box/panel-box.component.mjs +1 -1
  16. package/esm2022/lib/popover/popover.component.mjs +1 -1
  17. package/esm2022/lib/popup/popup.component.mjs +1 -3
  18. package/esm2022/lib/progress-bar/progress-bar.component.mjs +2 -8
  19. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +1 -1
  20. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +1 -1
  21. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +1 -1
  22. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +1 -1
  23. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +1 -1
  24. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +1 -1
  25. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +1 -1
  26. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +1 -1
  27. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +1 -1
  28. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +1 -1
  29. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +1 -1
  30. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +1 -1
  31. package/esm2022/lib/search-bar/search-bar.component.mjs +1 -1
  32. package/esm2022/lib/searchbox/searchbox.component.mjs +2 -8
  33. package/esm2022/lib/selectbox/selectbox.component.mjs +3 -9
  34. package/esm2022/lib/selectbox/selectbox2.component.mjs +1 -1
  35. package/esm2022/lib/selection-list/selection-list.component.mjs +2 -8
  36. package/esm2022/lib/switch/switch.component.mjs +2 -8
  37. package/esm2022/lib/tab-strip/tab-strip.component.mjs +1 -1
  38. package/esm2022/lib/tab-view/tab-view.component.mjs +1 -1
  39. package/esm2022/lib/tab-view/tab.component.mjs +1 -1
  40. package/esm2022/lib/textarea/textarea.component.mjs +2 -8
  41. package/esm2022/lib/textbox/textbox.component.mjs +2 -8
  42. package/esm2022/lib/time-picker/time-picker.component.mjs +2 -8
  43. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +1 -1
  44. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +1 -1
  45. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +1 -1
  46. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +1 -1
  47. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +1 -1
  48. package/esm2022/lib/toolbar/toolbar.component.mjs +1 -1
  49. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +2 -8
  50. package/esm2022/lib/tree-view/tree-view.component.mjs +2 -8
  51. package/esm2022/lib/upload-file/upload-file.component.mjs +2 -8
  52. package/fesm2022/acorex-components.mjs +34 -102
  53. package/fesm2022/acorex-components.mjs.map +1 -1
  54. package/lib/base/element.class.d.ts +2 -2
  55. package/lib/calendar/calendar-box/calendar-box.component.d.ts +2 -2
  56. package/lib/context-menu/context-menu.component.d.ts +2 -2
  57. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +2 -2
  58. package/lib/fieldset/fieldset.component.d.ts +2 -2
  59. package/lib/loading/loading-indicator.component.d.ts +2 -2
  60. package/lib/loading/loading-panel.component.d.ts +2 -2
  61. package/lib/menu/menu.component.d.ts +2 -2
  62. package/lib/panel-box/panel-box.component.d.ts +2 -2
  63. package/lib/popover/popover.component.d.ts +2 -2
  64. package/lib/popup/popup.component.d.ts +0 -2
  65. package/lib/progress-bar/progress-bar.component.d.ts +1 -3
  66. package/lib/search-bar/search-bar.component.d.ts +2 -2
  67. package/lib/searchbox/searchbox.component.d.ts +1 -3
  68. package/lib/selectbox/selectbox.component.d.ts +1 -3
  69. package/lib/selection-list/selection-list.component.d.ts +1 -3
  70. package/lib/switch/switch.component.d.ts +1 -3
  71. package/lib/tab-strip/tab-strip.component.d.ts +2 -2
  72. package/lib/tab-view/tab-view.component.d.ts +2 -2
  73. package/lib/tab-view/tab.component.d.ts +2 -2
  74. package/lib/textarea/textarea.component.d.ts +1 -3
  75. package/lib/textbox/textbox.component.d.ts +1 -3
  76. package/lib/time-picker/time-picker.component.d.ts +1 -3
  77. package/lib/toast/toast-message/toast-message.component.d.ts +2 -2
  78. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +2 -2
  79. package/lib/toolbar/menu/toolbar-menu.component.d.ts +2 -2
  80. package/lib/toolbar/search/toolbar-search.component.d.ts +2 -2
  81. package/lib/toolbar/title/toolbar-title.component.d.ts +2 -2
  82. package/lib/toolbar/toolbar.component.d.ts +2 -2
  83. package/lib/tree-side-menu/tree-side-menu.component.d.ts +1 -3
  84. package/lib/tree-view/tree-view.component.d.ts +1 -3
  85. package/lib/upload-file/upload-file.component.d.ts +1 -3
  86. package/package.json +1 -1
@@ -5,8 +5,8 @@ import { AXValueEvent } from './events.class';
5
5
  import * as i0 from "@angular/core";
6
6
  export class AXBaseComponent {
7
7
  cssClass;
8
- axId = '';
9
- axClass = '';
8
+ axId;
9
+ axClass;
10
10
  uid = AXHtmlUtil.getUID();
11
11
  constructor() { }
12
12
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -310,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
310
310
  }], showDropDownButton: [{
311
311
  type: Input
312
312
  }] } });
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZWxlbWVudC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsWUFBWSxHQUNiLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQXdCLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUtwRSxNQUFNLE9BQWdCLGVBQWU7SUFDMUIsUUFBUSxDQUFTO0lBRWpCLElBQUksR0FBWSxFQUFFLENBQUM7SUFFbkIsT0FBTyxHQUFZLEVBQUUsQ0FBQztJQUUvQixHQUFHLEdBQVcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLGdCQUFlLENBQUM7dUdBUkksZUFBZTsyRkFBZixlQUFlOzsyRkFBZixlQUFlO2tCQURwQyxTQUFTO3dEQUVDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSzs7QUFNUixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBaUI7SUFDM0QsWUFBWSxDQUFXO0NBQ3hCO0FBMkJELE1BQU0sT0FBZ0Isc0JBQXVCLFNBQVEsZUFBZTtJQUMxRCxZQUFZLEdBQVcsT0FBTyxDQUFDO0lBQy9CLGVBQWUsQ0FBYztJQUM3QixZQUFZLENBQWU7SUFHbkMsUUFBUSxHQUFXLENBQUMsQ0FBQztJQUVYLGNBQWMsQ0FDdEIsVUFBc0IsRUFDdEIsVUFBa0IsRUFDbEIsVUFBd0I7UUFFeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEMsSUFDRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDaEMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRTFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFDRSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVM7WUFDL0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUMxQyxDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRVMsb0JBQW9CLENBQUMsT0FBb0IsRUFBRSxRQUFpQixLQUFLO1FBQ3pFLElBQ0UsSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTO1lBQy9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDMUMsQ0FBQztZQUNELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDakQsTUFBTSxRQUFRLEdBQ1osU0FBUyxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO2dCQUM3QixPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLFNBQVMsRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUM1RCxNQUFNLE1BQU0sR0FBRyxRQUFRLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFFaEUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDNUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDMUMsK0NBQStDO1lBQy9DLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBQ0QseUNBQXlDO1lBQ3pDLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7WUFDOUQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRVMsb0JBQW9CLENBQzVCLE9BQW9CLEVBQ3BCLENBQXlCO1FBRXpCLElBQ0UsSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTO1lBQy9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDMUMsQ0FBQztZQUNELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDakQsTUFBTSxRQUFRLEdBQ1osU0FBUyxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO2dCQUM3QixPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLFNBQVMsRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUM1RCxNQUFNLE1BQU0sR0FBRyxRQUFRLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDaEUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDNUMsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixDQUFDO1lBQ0Qsc0NBQXNDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO3VHQXJHbUIsc0JBQXNCOzJGQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRDNDLFNBQVM7OEJBT1IsUUFBUTtzQkFEUCxLQUFLOztBQW9HUixNQUFNLE9BQWdCLG1CQUNwQixTQUFRLHNCQUFzQjtJQTBFUjtJQUFrQztJQXZFeEQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxHQUFJLENBQUMsQ0FBQyxNQUFjLENBQUMsS0FBSyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBRXZCLElBQUksQ0FBQyxLQUFLLEdBQUksQ0FBQyxDQUFDLE1BQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFFdkIsSUFBSSxDQUFDLEtBQUssR0FBSSxDQUFDLENBQUMsTUFBYyxDQUFDLEtBQUssQ0FBQztnQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUdELFFBQVEsR0FBVyxDQUFDLENBQUM7SUFHckIsMkNBQTJDO0lBQzNDLEtBQUssQ0FBK0I7SUFHNUIsa0JBQWtCLENBQWU7SUFFakMsV0FBVyxDQUFlO0lBRWxDLElBQ1csVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBVyxVQUFVLENBQUMsQ0FBZTtRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFHRCxRQUFRLEdBQVksS0FBSyxDQUFDO0lBRzFCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFHMUIsU0FBUyxHQUE0QixJQUFJLENBQUM7SUFHMUMsSUFBSSxHQUFxQyxJQUFJLENBQUM7SUFHOUMsV0FBVyxDQUFTO0lBR3BCLFlBQVksQ0FBZTtJQUczQixJQUFJLENBQVM7SUFFYixVQUFVLEdBQVksS0FBSyxDQUFDO0lBRTVCLFlBQXNCLEdBQXNCLEVBQVksR0FBZTtRQUNyRSxLQUFLLEVBQUUsQ0FBQztRQURZLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVksUUFBRyxHQUFILEdBQUcsQ0FBWTtJQUV2RSxDQUFDO0lBR00sS0FBSyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUd2RSxNQUFNLEdBQXFDLElBQUksWUFBWSxFQUUvRCxDQUFDO0lBR0csT0FBTyxHQUFxQyxJQUFJLFlBQVksRUFFaEUsQ0FBQztJQUdHLGNBQWMsR0FDbkIsSUFBSSxZQUFZLEVBQTBCLENBQUM7SUFHN0MsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBR3pELElBQUksR0FBVyxFQUFFLENBQUM7SUFHbEIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUVwQixNQUFNLENBQVM7SUFDdkIsSUFDVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFXLEtBQUssQ0FBQyxDQUFTO1FBQ3hCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRWhCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsSUFBSTtnQkFDZixLQUFLLEVBQUUsQ0FBQztnQkFDUixRQUFRLEVBQUUsR0FBRztnQkFDYixZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDOUIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEtBQUssUUFBUSxDQUFDLGFBQWEsQ0FBQztJQUM3RCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM5QixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQy9CLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLENBQVE7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7WUFDbkMsU0FBUyxFQUFFLENBQUM7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsQ0FBUTtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7WUFDbkMsU0FBUyxFQUFFLENBQUM7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXRLbUIsbUJBQW1COzJGQUFuQixtQkFBbUIseWRBcUN6QixZQUFZOzsyRkFyQ04sbUJBQW1CO2tCQUR4QyxTQUFTOytHQWdDUixRQUFRO3NCQURQLEtBQUs7O1FBSU4sMkNBQTJDO1FBQzNDLEtBQUs7c0JBRkosU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUs1QixrQkFBa0I7c0JBRHpCLFlBQVk7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNakMsVUFBVTtzQkFEcEIsS0FBSztnQkFXTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBVUMsS0FBSztzQkFEWCxNQUFNO2dCQUlBLE1BQU07c0JBRFosTUFBTTtnQkFNQSxPQUFPO3NCQURiLE1BQU07Z0JBTUEsY0FBYztzQkFEcEIsTUFBTTtnQkFLUCxXQUFXO3NCQURWLE1BQU07Z0JBSVAsSUFBSTtzQkFESCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFLSyxLQUFLO3NCQURmLEtBQUs7O0FBZ0VSLE1BQU0sT0FBZ0IscUJBQ3BCLFNBQVEsZUFBZTtJQUl2QixRQUFRLENBQVU7SUFHbEIsS0FBSyxHQUEwQyxJQUFJLFlBQVksRUFFNUQsQ0FBQztJQUdKLElBQUksR0FBa0IsSUFBSSxDQUFDO0lBRzNCLFFBQVEsR0FBVyxDQUFDLENBQUM7dUdBaEJELHFCQUFxQjsyRkFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUQxQyxTQUFTOzhCQU1SLFFBQVE7c0JBRFAsS0FBSztnQkFJTixLQUFLO3NCQURKLE1BQU07Z0JBTVAsSUFBSTtzQkFESCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSzs7QUFLUixNQUFNLE9BQWdCLHVCQUNwQixTQUFRLGVBQWU7SUFJdkIsUUFBUSxDQUFVO0lBR2xCLElBQUksQ0FBZ0I7SUFHcEIsU0FBUyxHQUFZLElBQUksQ0FBQztJQUcxQixRQUFRLEdBQVcsQ0FBQyxDQUFDO0lBR3JCLGtCQUFrQixHQUFZLElBQUksQ0FBQzt1R0FqQmYsdUJBQXVCOzJGQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRDVDLFNBQVM7OEJBTVIsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhWYWxpZGF0aW9uQ29tcG9uZW50LFxuICBBWFZhbGlkYXRpb24sXG59IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYRXZlbnQsIEFYSHRtbEV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuL2V2ZW50cy5jbGFzcyc7XG5cbmV4cG9ydCB0eXBlIEFYRWxlbWVudFNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY3NzQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKSBheElkPzogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgYXhDbGFzcz86IHN0cmluZyA9ICcnO1xuXG4gIHVpZDogc3RyaW5nID0gQVhIdG1sVXRpbC5nZXRVSUQoKTtcbiAgY29uc3RydWN0b3IoKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgQVhCYXNlSW5wdXRDaGFuZ2VFdmVudCBleHRlbmRzIEFYVmFsdWVFdmVudDxhbnk+IHtcbiAgaXNVc2VyQ2hhbmdlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VTaXphYmxlQ29tcG9uZW50IHtcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VJbnRlcmFjdGl2ZUNvbXBvbmVudCB7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICB0YWJJbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYQmFzZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlSW50ZXJhY3RpdmVDb21wb25lbnQge1xuICByZWFkb25seTogYm9vbGVhbjtcbiAgZm9jdXMoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VWYWx1ZUNvbXBvbmVudDxUPiBleHRlbmRzIEFYQmFzZUlucHV0Q29tcG9uZW50IHtcbiAgb25WYWx1ZUNoYW5nZWQ/OiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PFQ+PjtcbiAgdmFsdWVDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8VD47XG4gIHZhbHVlOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYQmFzZUNsaWNrYWJsZUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZUludGVyYWN0aXZlQ29tcG9uZW50IHtcbiAgY2xpY2s6IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxNb3VzZUV2ZW50Pj47XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYVmFsaWRhdGFibGVDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQge1xuICBwcml2YXRlIF9fdmFsdWVGaWVsZDogc3RyaW5nID0gJ3ZhbHVlJztcbiAgcHJpdmF0ZSBfX25hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9fdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xuXG4gIHByb3RlY3RlZCBpbml0VmFsaWRhdGlvbihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHZhbHVlRmllbGQ6IHN0cmluZyxcbiAgICB2YWxpZGF0aW9uOiBBWFZhbGlkYXRpb25cbiAgKSB7XG4gICAgdGhpcy5fX25hdGl2ZUVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5fX3ZhbHVlRmllbGQgPSB2YWx1ZUZpZWxkO1xuICAgIHRoaXMuX192YWxpZGF0aW9uID0gdmFsaWRhdGlvbjtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXNbdGhpcy5fX3ZhbHVlRmllbGRdO1xuICAgIGlmIChcbiAgICAgICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUpIHx8XG4gICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMClcbiAgICApXG4gICAgICB0aGlzLnZhbGlkYXRlKCk7XG4gIH1cblxuICBnZXQgdmFsaWRhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fX3ZhbGlkYXRpb247XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+IHtcbiAgICBpZiAoXG4gICAgICB0aGlzLl9fdmFsaWRhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAodGhpcy5fX3ZhbGlkYXRpb24ucnVsZXMgfHwgW10pLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX192YWxpZGF0aW9uLnZhbGlkYXRlKHRoaXNbdGhpcy5fX3ZhbHVlRmllbGRdKTtcbiAgICAgIHJlc3VsdC50aGVuKChjKSA9PiB7XG4gICAgICAgIGlmIChjLnJlc3VsdCkge1xuICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5fX25hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYXBwbHlWYWxpZGF0aW9uU3R5bGUodGhpcy5fX25hdGl2ZUVsZW1lbnQsIGMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyByZXN1bHQ6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyVmFsaWRhdGlvblN0eWxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbGVhcjogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5fX3ZhbGlkYXRpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKHRoaXMuX192YWxpZGF0aW9uLnJ1bGVzIHx8IFtdKS5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCBmb3JtR3JvdXAgPSBlbGVtZW50LmNsb3Nlc3QoJy5mb3JtLWdyb3VwJyk7XG4gICAgICBjb25zdCBmb3JtSXRlbSA9XG4gICAgICAgIGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0taXRlbScpIHx8XG4gICAgICAgIGVsZW1lbnQuY2xvc2VzdCgnLmZvcm0taXRlbScpIHx8XG4gICAgICAgIGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0taXRlbScpO1xuICAgICAgY29uc3QgbGFiZWwgPSBmb3JtR3JvdXA/LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWdyb3VwLWxhYmVsJyk7XG4gICAgICBjb25zdCBwYXJlbnQgPSBmb3JtSXRlbT8ucGFyZW50RWxlbWVudCB8fCBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QucmVtb3ZlKCdzdWNjZXNzLXN0YXRlJyk7XG4gICAgICBmb3JtSXRlbT8uY2xhc3NMaXN0LnJlbW92ZSgnZXJyb3Itc3RhdGUnKTtcbiAgICAgIC8vZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ3JlcXVpcmVkLXN0YXRlJyk7XG4gICAgICBpZiAoIWNsZWFyKSB7XG4gICAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QuYWRkKCdzdWNjZXNzLXN0YXRlJyk7XG4gICAgICB9XG4gICAgICAvLyBsYWJlbD8uY2xhc3NMaXN0LnJlbW92ZSgnZXJyb3ItdGV4dCcpO1xuICAgICAgaWYgKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmVycm9yLXRleHQnKSkge1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQocGFyZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4uZXJyb3ItdGV4dCcpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXBwbHlWYWxpZGF0aW9uU3R5bGUoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgdjogQVhWYWxpZGF0aW9uUnVsZVJlc3VsdFxuICApOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLl9fdmFsaWRhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAodGhpcy5fX3ZhbGlkYXRpb24ucnVsZXMgfHwgW10pLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGVsZW1lbnQuY2xvc2VzdCgnLmZvcm0tZ3JvdXAnKTtcbiAgICAgIGNvbnN0IGZvcm1JdGVtID1cbiAgICAgICAgZm9ybUdyb3VwPy5xdWVyeVNlbGVjdG9yKCcuZm9ybS1pdGVtJykgfHxcbiAgICAgICAgZWxlbWVudC5jbG9zZXN0KCcuZm9ybS1pdGVtJykgfHxcbiAgICAgICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1pdGVtJyk7XG4gICAgICBjb25zdCBsYWJlbCA9IGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0tZ3JvdXAtbGFiZWwnKTtcbiAgICAgIGNvbnN0IHBhcmVudCA9IGZvcm1JdGVtPy5wYXJlbnRFbGVtZW50IHx8IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QuYWRkKCdlcnJvci1zdGF0ZScpO1xuICAgICAgZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ3N1Y2Nlc3Mtc3RhdGUnKTtcbiAgICAgIGlmIChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5lcnJvci10ZXh0JykpIHtcbiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmVycm9yLXRleHQnKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fX3ZhbGlkYXRpb24uc2hvd01lc3NhZ2UpIHtcbiAgICAgICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgc3Bhbi5pbm5lclRleHQgPSB2Lm1lc3NhZ2U7XG4gICAgICAgIHNwYW4uY2xhc3NMaXN0LmFkZCgnYXgnLCAnZXJyb3ItdGV4dCcpO1xuICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoc3Bhbik7XG4gICAgICB9XG4gICAgICAvLyBsYWJlbD8uY2xhc3NMaXN0LmFkZCgnZXJyb3ItdGV4dCcpO1xuICAgIH1cbiAgfVxufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEJhc2VUZXh0Q29tcG9uZW50XG4gIGV4dGVuZHMgQVhWYWxpZGF0YWJsZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYQmFzZVZhbHVlQ29tcG9uZW50PHN0cmluZz5cbntcbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQub25rZXl1cCA9IChlKSA9PiB7XG4gICAgICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsdWUgPSAoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcbiAgICAgICAgdGhpcy5vbmtleS5lbWl0KGUpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5vbmtleWRvd24gPSAoZSkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJDaGFuZ2UgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMudmFsdWUgPSAoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcbiAgICAgICAgdGhpcy5vbmtleS5lbWl0KGUpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5vbmtleXByZXNzID0gKGUpID0+IHtcbiAgICAgICAgdGhpcy51c2VyQ2hhbmdlID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnZhbHVlID0gKGUudGFyZ2V0IGFzIGFueSkudmFsdWU7XG4gICAgICAgIHRoaXMub25rZXkuZW1pdChlKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFZhbGlkYXRpb24odGhpcy5yZWYsICd2YWx1ZScsIHRoaXMudmFsaWRhdGlvbik7XG4gIH1cblxuICBASW5wdXQoKVxuICB0YWJJbmRleDogbnVtYmVyID0gMDtcblxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIC8vIEBDb250ZW50Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZChBWFZhbGlkYXRpb24sIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgX2NvbnRlbnRWYWxpZGF0aW9uOiBBWFZhbGlkYXRpb247XG5cbiAgcHJpdmF0ZSBfdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmFsaWRhdGlvbigpOiBBWFZhbGlkYXRpb24ge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uID8gdGhpcy5fdmFsaWRhdGlvbiA6IHRoaXMuX2NvbnRlbnRWYWxpZGF0aW9uO1xuICB9XG5cbiAgcHVibGljIHNldCB2YWxpZGF0aW9uKHY6IEFYVmFsaWRhdGlvbikge1xuICAgIHRoaXMuX3ZhbGlkYXRpb24gPSB2O1xuICAgIHRoaXMuaW5pdFZhbGlkYXRpb24odGhpcy5yZWYsICd2YWx1ZScsIHYpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHRleHRBbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ21kJztcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGF1dG9jb21wbGV0ZTogJ29uJyB8ICdvZmYnO1xuXG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZztcblxuICB1c2VyQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByb3RlY3RlZCByZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbmtleTogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25CbHVyOiBFdmVudEVtaXR0ZXI8QVhIdG1sRXZlbnQ8RXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQVhIdG1sRXZlbnQ8RXZlbnQ+XG4gID4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBWEh0bWxFdmVudDxFdmVudD5cbiAgPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWEJhc2VJbnB1dENoYW5nZUV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWEJhc2VJbnB1dENoYW5nZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASW5wdXQoKVxuICBpY29uOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBhbGxvd0NsZWFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcbiAgQElucHV0KClcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IHN0cmluZykge1xuICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWU7XG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XG5cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgIG9sZFZhbHVlOiBvbGQsXG4gICAgICAgIGlzVXNlckNoYW5nZTogdGhpcy51c2VyQ2hhbmdlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVzZXJDaGFuZ2UgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCB2ID8gZmFsc2UgOiB0cnVlKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XG5cbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuICB9XG5cbiAgaXNGb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBzZXRUZXh0QWxpZ24oKSB7XG4gICAgaWYgKHRoaXMudGV4dEFsaWduID09PSAnbGVmdCcpIHtcbiAgICAgIHJldHVybiAndGV4dC1sZWZ0JztcbiAgICB9XG4gICAgaWYgKHRoaXMudGV4dEFsaWduID09PSAncmlnaHQnKSB7XG4gICAgICByZXR1cm4gJ3RleHQtcmlnaHQnO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUlucHV0Qmx1cihlOiBFdmVudCkge1xuICAgIHRoaXMub25CbHVyLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBodG1sRXZlbnQ6IGUsXG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVJbnB1dEZvY3VzKGU6IEV2ZW50KSB7XG4gICAgdGhpcy5vbkZvY3VzLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBodG1sRXZlbnQ6IGUsXG4gICAgfSk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlQnV0dG9uQ29tcG9uZW50XG4gIGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQVhCYXNlQ2xpY2thYmxlQ29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50XG57XG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKVxuICBjbGljazogRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQVhIdG1sRXZlbnQ8TW91c2VFdmVudD5cbiAgPigpO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xuXG4gIEBJbnB1dCgpXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEJhc2VEcm9wZG93bkNvbXBvbmVudFxuICBleHRlbmRzIEFYQmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFYQmFzZUludGVyYWN0aXZlQ29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50XG57XG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IEFYRWxlbWVudFNpemU7XG5cbiAgQElucHV0KClcbiAgZml0UGFyZW50OiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICB0YWJJbmRleDogbnVtYmVyID0gMDtcblxuICBASW5wdXQoKVxuICBzaG93RHJvcERvd25CdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGFic3RyYWN0IGNsb3NlKCk7XG4gIGFic3RyYWN0IG9wZW4oKTtcbn1cbiJdfQ==
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZWxlbWVudC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsWUFBWSxHQUNiLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQXdCLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUtwRSxNQUFNLE9BQWdCLGVBQWU7SUFDMUIsUUFBUSxDQUFTO0lBRWpCLElBQUksQ0FBUztJQUViLE9BQU8sQ0FBUztJQUV6QixHQUFHLEdBQVcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLGdCQUFlLENBQUM7dUdBUkksZUFBZTsyRkFBZixlQUFlOzsyRkFBZixlQUFlO2tCQURwQyxTQUFTO3dEQUVDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSzs7QUFNUixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBaUI7SUFDM0QsWUFBWSxDQUFXO0NBQ3hCO0FBMkJELE1BQU0sT0FBZ0Isc0JBQXVCLFNBQVEsZUFBZTtJQUMxRCxZQUFZLEdBQVcsT0FBTyxDQUFDO0lBQy9CLGVBQWUsQ0FBYztJQUM3QixZQUFZLENBQWU7SUFHbkMsUUFBUSxHQUFXLENBQUMsQ0FBQztJQUVYLGNBQWMsQ0FDdEIsVUFBc0IsRUFDdEIsVUFBa0IsRUFDbEIsVUFBd0I7UUFFeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUMsYUFBYSxD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SztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhWYWxpZGF0aW9uQ29tcG9uZW50LFxuICBBWFZhbGlkYXRpb24sXG59IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYRXZlbnQsIEFYSHRtbEV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuL2V2ZW50cy5jbGFzcyc7XG5cbmV4cG9ydCB0eXBlIEFYRWxlbWVudFNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY3NzQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKSBheElkOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgYXhDbGFzczogc3RyaW5nO1xuXG4gIHVpZDogc3RyaW5nID0gQVhIdG1sVXRpbC5nZXRVSUQoKTtcbiAgY29uc3RydWN0b3IoKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgQVhCYXNlSW5wdXRDaGFuZ2VFdmVudCBleHRlbmRzIEFYVmFsdWVFdmVudDxhbnk+IHtcbiAgaXNVc2VyQ2hhbmdlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VTaXphYmxlQ29tcG9uZW50IHtcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VJbnRlcmFjdGl2ZUNvbXBvbmVudCB7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICB0YWJJbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYQmFzZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlSW50ZXJhY3RpdmVDb21wb25lbnQge1xuICByZWFkb25seTogYm9vbGVhbjtcbiAgZm9jdXMoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VWYWx1ZUNvbXBvbmVudDxUPiBleHRlbmRzIEFYQmFzZUlucHV0Q29tcG9uZW50IHtcbiAgb25WYWx1ZUNoYW5nZWQ/OiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PFQ+PjtcbiAgdmFsdWVDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8VD47XG4gIHZhbHVlOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYQmFzZUNsaWNrYWJsZUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZUludGVyYWN0aXZlQ29tcG9uZW50IHtcbiAgY2xpY2s6IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxNb3VzZUV2ZW50Pj47XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYVmFsaWRhdGFibGVDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQge1xuICBwcml2YXRlIF9fdmFsdWVGaWVsZDogc3RyaW5nID0gJ3ZhbHVlJztcbiAgcHJpdmF0ZSBfX25hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9fdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xuXG4gIHByb3RlY3RlZCBpbml0VmFsaWRhdGlvbihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHZhbHVlRmllbGQ6IHN0cmluZyxcbiAgICB2YWxpZGF0aW9uOiBBWFZhbGlkYXRpb25cbiAgKSB7XG4gICAgdGhpcy5fX25hdGl2ZUVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5fX3ZhbHVlRmllbGQgPSB2YWx1ZUZpZWxkO1xuICAgIHRoaXMuX192YWxpZGF0aW9uID0gdmFsaWRhdGlvbjtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXNbdGhpcy5fX3ZhbHVlRmllbGRdO1xuICAgIGlmIChcbiAgICAgICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUpIHx8XG4gICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMClcbiAgICApXG4gICAgICB0aGlzLnZhbGlkYXRlKCk7XG4gIH1cblxuICBnZXQgdmFsaWRhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fX3ZhbGlkYXRpb247XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+IHtcbiAgICBpZiAoXG4gICAgICB0aGlzLl9fdmFsaWRhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAodGhpcy5fX3ZhbGlkYXRpb24ucnVsZXMgfHwgW10pLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX192YWxpZGF0aW9uLnZhbGlkYXRlKHRoaXNbdGhpcy5fX3ZhbHVlRmllbGRdKTtcbiAgICAgIHJlc3VsdC50aGVuKChjKSA9PiB7XG4gICAgICAgIGlmIChjLnJlc3VsdCkge1xuICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5fX25hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYXBwbHlWYWxpZGF0aW9uU3R5bGUodGhpcy5fX25hdGl2ZUVsZW1lbnQsIGMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyByZXN1bHQ6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyVmFsaWRhdGlvblN0eWxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbGVhcjogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5fX3ZhbGlkYXRpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKHRoaXMuX192YWxpZGF0aW9uLnJ1bGVzIHx8IFtdKS5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCBmb3JtR3JvdXAgPSBlbGVtZW50LmNsb3Nlc3QoJy5mb3JtLWdyb3VwJyk7XG4gICAgICBjb25zdCBmb3JtSXRlbSA9XG4gICAgICAgIGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0taXRlbScpIHx8XG4gICAgICAgIGVsZW1lbnQuY2xvc2VzdCgnLmZvcm0taXRlbScpIHx8XG4gICAgICAgIGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0taXRlbScpO1xuICAgICAgY29uc3QgbGFiZWwgPSBmb3JtR3JvdXA/LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWdyb3VwLWxhYmVsJyk7XG4gICAgICBjb25zdCBwYXJlbnQgPSBmb3JtSXRlbT8ucGFyZW50RWxlbWVudCB8fCBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QucmVtb3ZlKCdzdWNjZXNzLXN0YXRlJyk7XG4gICAgICBmb3JtSXRlbT8uY2xhc3NMaXN0LnJlbW92ZSgnZXJyb3Itc3RhdGUnKTtcbiAgICAgIC8vZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ3JlcXVpcmVkLXN0YXRlJyk7XG4gICAgICBpZiAoIWNsZWFyKSB7XG4gICAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QuYWRkKCdzdWNjZXNzLXN0YXRlJyk7XG4gICAgICB9XG4gICAgICAvLyBsYWJlbD8uY2xhc3NMaXN0LnJlbW92ZSgnZXJyb3ItdGV4dCcpO1xuICAgICAgaWYgKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmVycm9yLXRleHQnKSkge1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQocGFyZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4uZXJyb3ItdGV4dCcpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXBwbHlWYWxpZGF0aW9uU3R5bGUoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgdjogQVhWYWxpZGF0aW9uUnVsZVJlc3VsdFxuICApOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLl9fdmFsaWRhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAodGhpcy5fX3ZhbGlkYXRpb24ucnVsZXMgfHwgW10pLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGVsZW1lbnQuY2xvc2VzdCgnLmZvcm0tZ3JvdXAnKTtcbiAgICAgIGNvbnN0IGZvcm1JdGVtID1cbiAgICAgICAgZm9ybUdyb3VwPy5xdWVyeVNlbGVjdG9yKCcuZm9ybS1pdGVtJykgfHxcbiAgICAgICAgZWxlbWVudC5jbG9zZXN0KCcuZm9ybS1pdGVtJykgfHxcbiAgICAgICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1pdGVtJyk7XG4gICAgICBjb25zdCBsYWJlbCA9IGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0tZ3JvdXAtbGFiZWwnKTtcbiAgICAgIGNvbnN0IHBhcmVudCA9IGZvcm1JdGVtPy5wYXJlbnRFbGVtZW50IHx8IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QuYWRkKCdlcnJvci1zdGF0ZScpO1xuICAgICAgZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ3N1Y2Nlc3Mtc3RhdGUnKTtcbiAgICAgIGlmIChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5lcnJvci10ZXh0JykpIHtcbiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmVycm9yLXRleHQnKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fX3ZhbGlkYXRpb24uc2hvd01lc3NhZ2UpIHtcbiAgICAgICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgc3Bhbi5pbm5lclRleHQgPSB2Lm1lc3NhZ2U7XG4gICAgICAgIHNwYW4uY2xhc3NMaXN0LmFkZCgnYXgnLCAnZXJyb3ItdGV4dCcpO1xuICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoc3Bhbik7XG4gICAgICB9XG4gICAgICAvLyBsYWJlbD8uY2xhc3NMaXN0LmFkZCgnZXJyb3ItdGV4dCcpO1xuICAgIH1cbiAgfVxufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEJhc2VUZXh0Q29tcG9uZW50XG4gIGV4dGVuZHMgQVhWYWxpZGF0YWJsZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYQmFzZVZhbHVlQ29tcG9uZW50PHN0cmluZz5cbntcbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQub25rZXl1cCA9IChlKSA9PiB7XG4gICAgICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsdWUgPSAoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcbiAgICAgICAgdGhpcy5vbmtleS5lbWl0KGUpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5vbmtleWRvd24gPSAoZSkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJDaGFuZ2UgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMudmFsdWUgPSAoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcbiAgICAgICAgdGhpcy5vbmtleS5lbWl0KGUpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5vbmtleXByZXNzID0gKGUpID0+IHtcbiAgICAgICAgdGhpcy51c2VyQ2hhbmdlID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnZhbHVlID0gKGUudGFyZ2V0IGFzIGFueSkudmFsdWU7XG4gICAgICAgIHRoaXMub25rZXkuZW1pdChlKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFZhbGlkYXRpb24odGhpcy5yZWYsICd2YWx1ZScsIHRoaXMudmFsaWRhdGlvbik7XG4gIH1cblxuICBASW5wdXQoKVxuICB0YWJJbmRleDogbnVtYmVyID0gMDtcblxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIC8vIEBDb250ZW50Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZChBWFZhbGlkYXRpb24sIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgX2NvbnRlbnRWYWxpZGF0aW9uOiBBWFZhbGlkYXRpb247XG5cbiAgcHJpdmF0ZSBfdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmFsaWRhdGlvbigpOiBBWFZhbGlkYXRpb24ge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uID8gdGhpcy5fdmFsaWRhdGlvbiA6IHRoaXMuX2NvbnRlbnRWYWxpZGF0aW9uO1xuICB9XG5cbiAgcHVibGljIHNldCB2YWxpZGF0aW9uKHY6IEFYVmFsaWRhdGlvbikge1xuICAgIHRoaXMuX3ZhbGlkYXRpb24gPSB2O1xuICAgIHRoaXMuaW5pdFZhbGlkYXRpb24odGhpcy5yZWYsICd2YWx1ZScsIHYpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHRleHRBbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ21kJztcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGF1dG9jb21wbGV0ZTogJ29uJyB8ICdvZmYnO1xuXG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZztcblxuICB1c2VyQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByb3RlY3RlZCByZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbmtleTogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25CbHVyOiBFdmVudEVtaXR0ZXI8QVhIdG1sRXZlbnQ8RXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQVhIdG1sRXZlbnQ8RXZlbnQ+XG4gID4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBWEh0bWxFdmVudDxFdmVudD5cbiAgPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWEJhc2VJbnB1dENoYW5nZUV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWEJhc2VJbnB1dENoYW5nZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASW5wdXQoKVxuICBpY29uOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBhbGxvd0NsZWFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcbiAgQElucHV0KClcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IHN0cmluZykge1xuICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWU7XG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XG5cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgIG9sZFZhbHVlOiBvbGQsXG4gICAgICAgIGlzVXNlckNoYW5nZTogdGhpcy51c2VyQ2hhbmdlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVzZXJDaGFuZ2UgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCB2ID8gZmFsc2UgOiB0cnVlKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XG5cbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuICB9XG5cbiAgaXNGb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBzZXRUZXh0QWxpZ24oKSB7XG4gICAgaWYgKHRoaXMudGV4dEFsaWduID09PSAnbGVmdCcpIHtcbiAgICAgIHJldHVybiAndGV4dC1sZWZ0JztcbiAgICB9XG4gICAgaWYgKHRoaXMudGV4dEFsaWduID09PSAncmlnaHQnKSB7XG4gICAgICByZXR1cm4gJ3RleHQtcmlnaHQnO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUlucHV0Qmx1cihlOiBFdmVudCkge1xuICAgIHRoaXMub25CbHVyLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBodG1sRXZlbnQ6IGUsXG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVJbnB1dEZvY3VzKGU6IEV2ZW50KSB7XG4gICAgdGhpcy5vbkZvY3VzLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBodG1sRXZlbnQ6IGUsXG4gICAgfSk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlQnV0dG9uQ29tcG9uZW50XG4gIGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQVhCYXNlQ2xpY2thYmxlQ29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50XG57XG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKVxuICBjbGljazogRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQVhIdG1sRXZlbnQ8TW91c2VFdmVudD5cbiAgPigpO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xuXG4gIEBJbnB1dCgpXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEJhc2VEcm9wZG93bkNvbXBvbmVudFxuICBleHRlbmRzIEFYQmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFYQmFzZUludGVyYWN0aXZlQ29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50XG57XG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IEFYRWxlbWVudFNpemU7XG5cbiAgQElucHV0KClcbiAgZml0UGFyZW50OiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICB0YWJJbmRleDogbnVtYmVyID0gMDtcblxuICBASW5wdXQoKVxuICBzaG93RHJvcERvd25CdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGFic3RyYWN0IGNsb3NlKCk7XG4gIGFic3RyYWN0IG9wZW4oKTtcbn1cbiJdfQ==
@@ -472,4 +472,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
472
472
  }], value: [{
473
473
  type: Input
474
474
  }] } });
475
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLWJveC9jYWxlbmRhci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXItYm94L2NhbGVuZGFyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsUUFBUSxFQUNSLFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxHQUNiLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7OztBQXNDdkIsTUFBTSxPQUFPLHNCQUFzQjtJQXVLYjtJQUFnQztJQXRLcEQsUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUVoQixDQUFDLEdBQUc7UUFDVixNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLElBQUk7WUFDdEQsR0FBRyxFQUFFLEtBQUs7WUFDVixNQUFNLEVBQUUsQ0FBQztTQUNWO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSxJQUFJO1lBQ3pELEdBQUcsRUFBRSxLQUFLO1lBQ1YsTUFBTSxFQUFFLENBQUM7U0FDVjtLQUNGLENBQUM7SUFFRixTQUFTLENBQVM7SUFHbEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsSUFBSSxDQUFpQjtJQUdyQixNQUFNLENBQVM7SUFHZixHQUFHLENBQVM7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QUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDO3FCQUN2QixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckIsQ0FBQztZQUNELEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELEVBQUU7UUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxFQUFFO1FBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzNELENBQUMsQ0FD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LFdBQVc7c0JBRFYsTUFBTTtnQkFLSSxLQUFLO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENhbGVuZGFyVHlwZSxcbiAgQVhDb25maWcsXG4gIEFYRGF0ZVRpbWUsXG4gIEFYRGF0ZVRpbWVSYW5nZSxcbiAgQVhUcmFuc2xhdG9yLFxufSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCxcbiAgQVhFbGVtZW50U2l6ZSxcbn0gZnJvbSAnLi4vLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYVmFsdWVFdmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcblxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhclZpZXdUeXBlID0gJ3llYXInIHwgJ21vbnRoJyB8ICdkYXknO1xuXG5leHBvcnQgdHlwZSBBWENhbGVuZGFySG9saWRheXMgPSBBWENhbGVuZGFySG9saWRheVtdO1xuZXhwb3J0IHR5cGUgQVhDYWxlbmRhckhvbGlkYXlzRnVuYyA9IChcbiAgc3RhcnQ6IERhdGUsXG4gIGVuZDogRGF0ZSxcbiAgdHlwZTogQVhDYWxlbmRhclR5cGVcbikgPT4gQVhDYWxlbmRhckhvbGlkYXlbXTtcbmV4cG9ydCBpbnRlcmZhY2UgQVhDYWxlbmRhckhvbGlkYXkge1xuICBkYXRlOiBEYXRlO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhcldlZWtlbmRzID0gQVhDYWxlbmRhcldlZWtlbmRbXTtcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJXZWVrZW5kc0Z1bmMgPSAoXG4gIHN0YXJ0OiBEYXRlLFxuICBlbmQ6IERhdGUsXG4gIHR5cGU6IEFYQ2FsZW5kYXJUeXBlXG4pID0+IEFYQ2FsZW5kYXJXZWVrZW5kW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhDYWxlbmRhcldlZWtlbmQge1xuICBpbmRleERheTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jYWxlbmRhci1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItYm94LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJCb3hDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50IHtcbiAgd2Vla2RheXM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSBkID0ge1xuICAgIGphbGFsaToge1xuICAgICAgbG9jYWxlOiBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLmphbGFsaS5sb2NhbGUnKSB8fCAnZmEnLFxuICAgICAgZGlyOiAncnRsJyxcbiAgICAgIG51bWJlcjogMSxcbiAgICB9LFxuICAgIGdyZWdvcmlhbjoge1xuICAgICAgbG9jYWxlOiBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLmdyZWdvcmlhbi5sb2NhbGUnKSB8fCAnZW4nLFxuICAgICAgZGlyOiAnbHRyJyxcbiAgICAgIG51bWJlcjogMCxcbiAgICB9LFxuICB9O1xuXG4gIG51bVJvdGF0ZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xuXG4gIEBJbnB1dCgpXG4gIHR5cGU6IEFYQ2FsZW5kYXJUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIGxvY2FsZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGRpcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGF4SWQ/OiBzdHJpbmc7XG4gIFxuICBASW5wdXQoKSBheENsYXNzPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgX21pbjogRGF0ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1pbih2KSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX21pbiA9IHY7XG4gICAgICB0aGlzLmZvY3VzZWRWYWx1ZSA9IHRoaXMudG9kYXk7XG4gICAgICB0aGlzLnZpZXdSYW5nZSA9IHRoaXMudG9kYXkubW9udGgucmFuZ2U7XG4gICAgICB0aGlzLm5hdmlnYXRlKDApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWluKCkge1xuICAgIHJldHVybiB0aGlzLl9taW47XG4gIH1cblxuICBwcml2YXRlIF9tYXg6IERhdGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtYXgodikge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9tYXggPSB2O1xuICAgICAgdGhpcy5mb2N1c2VkVmFsdWUgPSB0aGlzLnRvZGF5O1xuICAgICAgdGhpcy52aWV3UmFuZ2UgPSB0aGlzLnRvZGF5Lm1vbnRoLnJhbmdlO1xuICAgICAgdGhpcy5uYXZpZ2F0ZSgwKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1heCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xuICB9XG5cbiAgQElucHV0KClcbiAgc2VsZWN0YWJsZUhvbGlkYXk6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGRheVN0eWxlID0gW107XG5cbiAgQElucHV0KClcbiAgZGF5TWluTWF4UmVzb2FuID0gJyc7XG5cbiAgcHJpdmF0ZSBnZXRIb2xpZGF5OiBBWENhbGVuZGFySG9saWRheXMgfCBBWENhbGVuZGFySG9saWRheXNGdW5jO1xuXG4gIHByaXZhdGUgZ2V0V2Vla2VuZDogQVhDYWxlbmRhcldlZWtlbmRzIHwgQVhDYWxlbmRhcldlZWtlbmRzRnVuYztcblxuICBASW5wdXQoJ3Nob3dUb2RheUJ1dHRvbicpXG4gIHB1YmxpYyBzaG93VG9kYXlCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBtYXRyaXg6IGFueVtdID0gW107XG4gIHJvdGF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdmlldzogQVhDYWxlbmRhclZpZXdUeXBlID0gJ2RheSc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmlldygpOiBBWENhbGVuZGFyVmlld1R5cGUge1xuICAgIHJldHVybiB0aGlzLl92aWV3O1xuICB9XG4gIHB1YmxpYyBzZXQgdmlldyh2OiBBWENhbGVuZGFyVmlld1R5cGUpIHtcbiAgICB0aGlzLl92aWV3ID0gdjtcbiAgICB0aGlzLm5hdmlnYXRlKDApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVwdGg6IEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICdkYXknO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGVwdGgoKTogQVhDYWxlbmRhclZpZXdUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fZGVwdGg7XG4gIH1cbiAgcHVibGljIHNldCBkZXB0aCh2OiBBWENhbGVuZGFyVmlld1R5cGUpIHtcbiAgICB0aGlzLl9kZXB0aCA9IHY7XG4gICAgdGhpcy52aWV3ID0gdjtcbiAgfVxuXG4gIHZpZXdSYW5nZTogQVhEYXRlVGltZVJhbmdlO1xuICBwcml2YXRlIGhvbGlkYXlzOiBBWENhbGVuZGFySG9saWRheVtdID0gW107XG4gIHByaXZhdGUgd2Vla2VuZHM6IEFYQ2FsZW5kYXJXZWVrZW5kW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgb25WYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8RGF0ZT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBWFZhbHVlRXZlbnQ8RGF0ZT5cbiAgPigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQVhWYWx1ZUV2ZW50PERhdGU+XG4gID4oKTtcblxuICBAT3V0cHV0KClcbiAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICBwcml2YXRlIF92YWx1ZTogQVhEYXRlVGltZTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU/LmRhdGU7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZSh2OiBEYXRlKSB7XG4gICAgbGV0IHZ2OiBBWERhdGVUaW1lO1xuICAgIGlmICh2KSB7XG4gICAgICB2diA9IEFYRGF0ZVRpbWUuY29udmVydCh2KTtcbiAgICB9XG4gICAgbGV0IHVuVmFsaWREYXRlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuX21heCB8fCB0aGlzLl9taW4pIHtcbiAgICAgIHVuVmFsaWREYXRlID0gdGhpcy5pc0luTUluTWF4UmFuZ2UodnYpO1xuICAgIH1cbiAgICBpZiAoIXVuVmFsaWREYXRlKSB7XG4gICAgICBpZiAodnYgJiYgIXZ2LmVxdWFsKHRoaXMuX3ZhbHVlKSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZ2O1xuICAgICAgICB0aGlzLl92YWx1ZS50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICB0aGlzLnNldEZvY3VzKHRoaXMuX3ZhbHVlLmNsb25lKCkpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodnYuZGF0ZSk7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLl92YWx1ZT8uZGF0ZSxcbiAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLmZvY3VzZWRWYWx1ZSA9IHRoaXMudG9kYXk7XG4gICAgICAgIHRoaXMudmlld1JhbmdlID0gdGhpcy50b2RheS5tb250aC5yYW5nZTtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZSgwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICB2YWx1ZTogdGhpcy5fdmFsdWU/LmRhdGUsXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNlZFZhbHVlOiBBWERhdGVUaW1lO1xuICBnZXQgdG9kYXkoKTogQVhEYXRlVGltZSB7XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKCksIHRoaXMudHlwZSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmKSB7XG4gICAgLy8gc2V0IGRlZmF1bHRzXG4gICAgdGhpcy5nZXRIb2xpZGF5ID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS5ob2xpZGF5cycpO1xuICAgIHRoaXMuZ2V0V2Vla2VuZCA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUud2Vla2VuZHMnKTtcbiAgfVxuICBmaW5kRGF5KGRhdGU6IEFYRGF0ZVRpbWUpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmRheVN0eWxlLmZpbmQoXG4gICAgICAgIChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXVxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgZ2V0U3R5bGUoZGF0ZTogQVhEYXRlVGltZSkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZGF5U3R5bGUuZmluZChcbiAgICAgICAgKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXlTdHlsZS5maW5kKFxuICAgICAgICAoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF1cbiAgICAgICkuc3R5bGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBnZXRUaXRsZShkYXRlOiBBWERhdGVUaW1lKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5kYXlTdHlsZS5maW5kKFxuICAgICAgICAoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF1cbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmRheVN0eWxlLmZpbmQoXG4gICAgICAgIChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXVxuICAgICAgKS50ZXh0O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoXG4gICAgICAgICh0aGlzLl9taW4gJiZcbiAgICAgICAgICB0aGlzLl9tYXggJiZcbiAgICAgICAgICBkYXRlLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbWluLCB0aGlzLnR5cGUpLFxuICAgICAgICAgICAgJ1lNRCcsXG4gICAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgICApID09PSAtMSkgfHxcbiAgICAgICAgZGF0ZS5jb21wYWlyZU5ldyhcbiAgICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLl9tYXgsIHRoaXMudHlwZSksXG4gICAgICAgICAgJ1lNRCcsXG4gICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICkgPT09IDFcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXlNaW5NYXhSZXNvYW47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mb2N1c2VkVmFsdWUgPSBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSgpLCB0aGlzLnR5cGUpO1xuICAgIC8vXG4gICAgdGhpcy5pbml0TGF5b3V0KCk7XG4gICAgLy9cbiAgICB0aGlzLnZpZXdSYW5nZSA9IHRoaXMudG9kYXkubW9udGgucmFuZ2U7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0Rm9jdXMobmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0Rm9jdXModGhpcy50b2RheSk7XG4gICAgfVxuXG4gICAgdGhpcy52aWV3ID0gJ2RheSc7XG4gIH1cblxuICBnZXRWaWV3Q29tcGFpcmUodmlldzogQVhDYWxlbmRhclZpZXdUeXBlKSB7XG4gICAgc3dpdGNoICh2aWV3KSB7XG4gICAgICBjYXNlICdkYXknOlxuICAgICAgICByZXR1cm4gJ1lNRCc7XG4gICAgICBjYXNlICdtb250aCc6XG4gICAgICAgIHJldHVybiAnWU0nO1xuICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgIHJldHVybiAnWSc7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMubmF2aWdhdGUoMCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRMYXlvdXQoKSB7XG4gICAgaWYgKCF0aGlzLnR5cGUpIHtcbiAgICAgIHRoaXMudHlwZSA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUudHlwZScpIHx8ICdncmVnb3JpYW4nO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubG9jYWxlKSB7XG4gICAgICB0aGlzLmxvY2FsZSA9IHRoaXMuZFt0aGlzLnR5cGVdPy5sb2NhbGUgfHwgdGhpcy5sb2NhbGU7XG4gICAgfVxuICAgIGlmICghdGhpcy5kaXIpIHtcbiAgICAgIHRoaXMuZGlyID0gdGhpcy5kW3RoaXMudHlwZV0/LmRpciB8fCAnbHRyJztcbiAgICB9XG4gICAgdGhpcy5udW1Sb3RhdGUgPSB0aGlzLmRbdGhpcy50eXBlXT8ubnVtYmVyIHx8IDA7XG4gICAgY29uc3QgcGF0aCA9ICdkYXRlVGltZS53ZWVrZGF5c1Nob3J0JztcbiAgICB0aGlzLndlZWtkYXlzID0gW1xuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5zdW5gLCB0aGlzLmxvY2FsZSksXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9Lm1vbmAsIHRoaXMubG9jYWxlKSxcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0udHVlYCwgdGhpcy5sb2NhbGUpLFxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS53ZWRgLCB0aGlzLmxvY2FsZSksXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LnRodWAsIHRoaXMubG9jYWxlKSxcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0uZnJpYCwgdGhpcy5sb2NhbGUpLFxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5zYXRgLCB0aGlzLmxvY2FsZSksXG4gICAgXTtcbiAgfVxuXG4gIGdldFRvZGF5TmFtZSgpIHtcbiAgICByZXR1cm4gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUudG9kYXknLCB0aGlzLmxvY2FsZSk7XG4gIH1cblxuICBwcmV2KCkge1xuICAgIHRoaXMubmF2aWdhdGUoLTEpO1xuICB9XG5cbiAgbmV4dCgpIHtcbiAgICB0aGlzLm5hdmlnYXRlKDEpO1xuICB9XG5cbiAgcm90YXRlKGFycmF5LCBuKSB7XG4gICAgY29uc3QgbGVuID0gYXJyYXkubGVuZ3RoO1xuICAgIHJldHVybiAhKG4gJSBsZW4pXG4gICAgICA/IGFycmF5XG4gICAgICA6IG4gPiAwXG4gICAgICA/IGFycmF5Lm1hcCgoZSwgaSwgYSkgPT4gYVsoaSArIG4pICUgbGVuXSlcbiAgICAgIDogYXJyYXkubWFwKChlLCBpLCBhKSA9PiBhWyhsZW4gLSAoKGxlbiAtIGkgLSBuKSAlIGxlbikpICUgbGVuXSk7XG4gIH1cblxuICBuYXZpZ2F0ZSh2YWx1ZTogbnVtYmVyIHwgQVhEYXRlVGltZSkge1xuICAgIGxldCBzdGFydDogQVhEYXRlVGltZTtcbiAgICBsZXQgZW5kOiBBWERhdGVUaW1lO1xuICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XG4gICAgICBsZXQgZmQ6IEFYRGF0ZVRpbWU7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBWERhdGVUaW1lKSB7XG4gICAgICAgIGZkID0gdmFsdWUuc3RhcnRPZignbW9udGgnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZkID0gdGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lXG4gICAgICAgICAgLmFkZCgnZGF5JywgMTUpXG4gICAgICAgICAgLmFkZCgnbW9udGgnLCB2YWx1ZSlcbiAgICAgICAgICAuc3RhcnRPZignbW9udGgnKTtcbiAgICAgIH1cblxuICAgICAgc3RhcnQgPSBmZC5maXJzdERheU9mV2VlaztcbiAgICAgIGVuZCA9IGZkLmVuZE9mKCdtb250aCcpLmVuZERheU9mV2VlaztcblxuICAgICAgc3RhcnQgPSBzdGFydC5hZGQoJ2RheScsIC10aGlzLm51bVJvdGF0ZSk7XG4gICAgICBlbmQgPSBlbmQuYWRkKCdkYXknLCA3KS5hZGQoJ2RheScsIC10aGlzLm51bVJvdGF0ZSk7XG5cbiAgICAgIC8vIFRPRE86IGFwcGx5IHN0YXJ0IG9mIHdlZWtcbiAgICAgIGlmICghdGhpcy5yb3RhdGVkICYmIHRoaXMud2Vla2RheXMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnamFsYWxpJykge1xuICAgICAgICAgIHRoaXMud2Vla2RheXMgPSB0aGlzLnJvdGF0ZSh0aGlzLndlZWtkYXlzLCAtdGhpcy5udW1Sb3RhdGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMud2Vla2RheXMgPSB0aGlzLnJvdGF0ZSh0aGlzLndlZWtkYXlzLCB0aGlzLm51bVJvdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJvdGF0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICBsZXQgZmQ6IEFYRGF0ZVRpbWU7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBWERhdGVUaW1lKSB7XG4gICAgICAgIGZkID0gdmFsdWUuc3RhcnRPZigneWVhcicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmQgPSB0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWVcbiAgICAgICAgICAuYWRkKCdkYXknLCAxNSlcbiAgICAgICAgICAuYWRkKCd5ZWFyJywgdmFsdWUpXG4gICAgICAgICAgLnN0YXJ0T2YoJ3llYXInKTtcbiAgICAgIH1cbiAgICAgIHN0YXJ0ID0gZmQ7XG4gICAgICBlbmQgPSBmZC5lbmRPZigneWVhcicpO1xuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAneWVhcicpIHtcbiAgICAgIGxldCBmZDogQVhEYXRlVGltZTtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUpIHtcbiAgICAgICAgZmQgPSB2YWx1ZS5zdGFydE9mKCd5ZWFyJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmZCA9IHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZVxuICAgICAgICAgIC5hZGQoJ2RheScsIDE1KVxuICAgICAgICAgIC5hZGQoJ3llYXInLCB2YWx1ZSAqIDEwKVxuICAgICAgICAgIC5zdGFydE9mKCd5ZWFyJyk7XG4gICAgICB9XG4gICAgICBzdGFydCA9IGZkLmFkZCgneWVhcicsIC00KTtcbiAgICAgIGVuZCA9IHN0YXJ0LmFkZCgneWVhcicsIDgpLmVuZE9mKCd5ZWFyJyk7XG4gICAgfVxuICAgIHRoaXMudmlld1JhbmdlID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShzdGFydCwgZW5kKTtcbiAgICAvL1xuICAgIGlmICh0aGlzLmdldEhvbGlkYXkgJiYgdHlwZW9mIHRoaXMuZ2V0SG9saWRheSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5ob2xpZGF5cyA9IHRoaXMuZ2V0SG9saWRheShzdGFydC5kYXRlLCBlbmQuZGF0ZSwgdGhpcy50eXBlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXRXZWVrZW5kICYmIHR5cGVvZiB0aGlzLmdldFdlZWtlbmQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMud2Vla2VuZHMgPSB0aGlzLmdldFdlZWtlbmQoc3RhcnQuZGF0ZSwgZW5kLmRhdGUsIHRoaXMudHlwZSk7XG4gICAgfVxuXG4gICAgLy9cbiAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xuICAgICAgdGhpcy5tYXRyaXggPSB0aGlzLm1hdHJpeGlmeShcbiAgICAgICAgdGhpcy5hcHBseVN0eWxlKHRoaXMudmlld1JhbmdlLmVudW11cmF0ZSgnZGF5JywgdGhpcy50eXBlKSksXG4gICAgICAgIDdcbiAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubWF0cml4Lmxlbmd0aCA+IDAgJiZcbiAgICAgICAgdGhpcy5tYXRyaXhbMF0uZmluZCgoYykgPT4gYy5uZXh0TW9udGggPT09IGZhbHNlKSA9PT0gdW5kZWZpbmVkXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5tYXRyaXguc3BsaWNlKDAsIDEpO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLm1hdHJpeFt0aGlzLm1hdHJpeC5sZW5ndGggLSAxXS5maW5kKFxuICAgICAgICAgIChjKSA9PiBjLm5leHRNb250aCA9PT0gZmFsc2VcbiAgICAgICAgKSA9PT0gdW5kZWZpbmVkXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5tYXRyaXguc3BsaWNlKHRoaXMubWF0cml4Lmxlbmd0aCAtIDEsIDEpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICB0aGlzLm1hdHJpeCA9IHRoaXMubWF0cml4aWZ5KFxuICAgICAgICB0aGlzLmFwcGx5U3R5bGUodGhpcy52aWV3UmFuZ2UuZW51bXVyYXRlKCdtb250aCcsIHRoaXMudHlwZSkpLFxuICAgICAgICAzXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAneWVhcicpIHtcbiAgICAgIHRoaXMubWF0cml4ID0gdGhpcy5tYXRyaXhpZnkoXG4gICAgICAgIHRoaXMuYXBwbHlTdHlsZSh0aGlzLnZpZXdSYW5nZS5lbnVtdXJhdGUoJ3llYXInLCB0aGlzLnR5cGUpKSxcbiAgICAgICAgM1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVN0eWxlKGRhdGVzOiBBWERhdGVUaW1lW10pOiBhbnlbXSB7XG4gICAgY29uc3QgaXRlbXM6IGFueVtdID0gW107XG4gICAgZGF0ZXMuZm9yRWFjaCgoZCwgaSwgaikgPT4ge1xuICAgICAgY29uc3QgaXRlbTogYW55ID0ge307XG4gICAgICBpdGVtLmRhdGUgPSBkO1xuXG4gICAgICBpdGVtLnNlbGVjdGVkID1cbiAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpLFxuICAgICAgICAgIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksXG4gICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICkgPT09IDA7XG4gICAgICBpdGVtLmZvY3VzZWQgPVxuICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgIHRoaXMuZm9jdXNlZFZhbHVlLFxuICAgICAgICAgIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksXG4gICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICkgPT09IDA7XG4gICAgICBpdGVtLnRvZGF5ID1cbiAgICAgICAgdGhpcy50b2RheSAmJlxuICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgIHRoaXMudG9kYXksXG4gICAgICAgICAgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSxcbiAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgKSA9PT0gMDtcbiAgICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XG4gICAgICAgIC8vICBpdGVtLm5leHRNb250aCA9IGQuY29tcGFpcmVOZXcodGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lLmFkZCgnZGF5JywgMTApLCAnWU0nKSAhPT0gMDtcbiAgICAgICAgaXRlbS5uZXh0TW9udGggPVxuICAgICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgICB0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWUuYWRkKCdkYXknLCAxMCksXG4gICAgICAgICAgICAnWU0nLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKSAhPT0gMDtcblxuICAgICAgICBpdGVtLnVuc2VsZWN0ID0gdGhpcy5pc0luTUluTWF4UmFuZ2UoZCk7XG4gICAgICAgIHRoaXMuaG9saWRheXMuZm9yRWFjaCgoaCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbXAgPSBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgbmV3IEFYRGF0ZVRpbWUoaC5kYXRlLCB0aGlzLnR5cGUpLFxuICAgICAgICAgICAgJ1lNRCcsXG4gICAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChjb21wID09PSAwKSB7XG4gICAgICAgICAgICBpdGVtLmhvbGlkYXkgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZUhvbGlkYXkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIGl0ZW0udW5zZWxlY3QgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgaW5kZXhEYXkgPSBpIC0gTWF0aC5mbG9vcihpIC8gNykgKiA3O1xuICAgICAgICB0aGlzLndlZWtlbmRzLmZvckVhY2goKGNjKSA9PiB7XG4gICAgICAgICAgaWYgKE51bWJlcihjYykgPT09IGluZGV4RGF5KSB7XG4gICAgICAgICAgICBpdGVtLmhvbGlkYXkgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZUhvbGlkYXkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIGl0ZW0udW5zZWxlY3QgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH0pO1xuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIGNoYW5nZVZpZXcoKSB7XG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcbiAgICAgIHRoaXMudmlldyA9ICdtb250aCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICdtb250aCcpIHtcbiAgICAgIHRoaXMudmlldyA9ICd5ZWFyJztcbiAgICB9XG4gIH1cblxuICBtYXRyaXhpZnkoYXJyOiBhbnlbXSwgY29scykge1xuICAgIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwoYXJyLmxlbmd0aCAvIGNvbHMpO1xuICAgIGNvbnN0IG1hdHJpeCA9IFtdO1xuICAgIGlmIChyb3dzICogY29scyA9PT0gYXJyLmxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IGNvbHMpIHtcbiAgICAgICAgbWF0cml4LnB1c2goYXJyLnNsaWNlKGksIGNvbHMgKyBpKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYXRyaXg7XG4gIH1cblxuICBzZXREYXlDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbSkge1xuICAgIGlmIChpdGVtLnVuc2VsZWN0ICE9PSB0cnVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gaXRlbS5kYXRlLmRhdGU7XG4gICAgfVxuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBpc0luTUluTWF4UmFuZ2UoZCkge1xuICAgIGxldCByID0gZmFsc2U7XG4gICAgaWYgKGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMuX21pbiAmJiAhdGhpcy5fbWF4KSB7XG4gICAgICAgIHIgPVxuICAgICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLl9taW4sIHRoaXMudHlwZSksXG4gICAgICAgICAgICB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKSA9PT0gLTE7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fbWF4ICYmICF0aGlzLl9taW4pIHtcbiAgICAgICAgciA9XG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMuX21heCwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksXG4gICAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgICApID09PSAxO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX21pbiAmJiB0aGlzLl9tYXgpIHtcbiAgICAgICAgciA9XG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMuX21pbiwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksXG4gICAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgICApID09PSAtMSB8fFxuICAgICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLl9tYXgsIHRoaXMudHlwZSksXG4gICAgICAgICAgICB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKSA9PT0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH1cblxuICBzZXRNb250aENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBkYXRlOiBBWERhdGVUaW1lKSB7XG4gICAgaWYgKHRoaXMuZGVwdGggPT09ICdtb250aCcpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLmRhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlldyA9ICdkYXknO1xuICAgICAgdGhpcy5zZXRGb2N1cyhcbiAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKVxuICAgICAgICAgIC5zZXQoJ3llYXInLCBkYXRlLnllYXIpXG4gICAgICAgICAgLnNldCgnbW9udGgnLCBkYXRlLm1vbnRoT2ZZZWFyKVxuICAgICAgKTtcbiAgICB9XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBzZXRZZWFyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGRhdGU6IEFYRGF0ZVRpbWUpIHtcbiAgICBpZiAodGhpcy5kZXB0aCA9PT0gJ3llYXInKSB7XG4gICAgICB0aGlzLnZhbHVlID0gZGF0ZS5kYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpZXcgPSAnbW9udGgnO1xuICAgICAgdGhpcy5zZXRGb2N1cyhcbiAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKS5zZXQoJ3llYXInLCBkYXRlLnllYXIpXG4gICAgICApO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHNldEZvY3VzKGRhdGU6IEFYRGF0ZVRpbWUpIHtcbiAgICB0aGlzLmZvY3VzZWRWYWx1ZSA9IGRhdGU7XG4gICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLmZvY3VzZWRWYWx1ZSk7XG4gIH1cblxuICBzZXRUb2RheSgpIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy50b2RheS5kYXRlO1xuICAgIHRoaXMudmlldyA9ICdkYXknO1xuICB9XG5cbiAgdHJhY2tCeUZuKGluZGV4LCBpdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gaXRlbS5kYXRlLmRhdGUuZ2V0VGltZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItY29udGFpbmVyIHt7c2l6ZX19XCIgXG4gICAgW25nQ2xhc3NdPVwiW3R5cGUsIGF4Q2xhc3NdXCIgXG4gICAgW2F0dHIuaWRdPVwiYXhJZFwiPlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbnRyb2xsLWJ1dHRvblwiPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0eXBlPVwibGlnaHQgYmxhbmtcIiAoY2xpY2spPVwibmV4dCgpXCI+XG4gICAgICAgICAgICAgICAge3snY29tbW9uLm5leHQnIHwgdHJhbnN9fVxuICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbmF2LWJ1dHRvblwiIFtuZ1N3aXRjaF09XCJ2aWV3XCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIHR5cGU9XCJsaWdodCBibGFua1wiIChjbGljayk9XCJjaGFuZ2VWaWV3KClcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF5J1wiPlxuICAgICAgICAgICAgICAgICAgICB7e3ZpZXdSYW5nZS5zdGFydFRpbWUuYWRkKCdkYXknLCAxMCkgfCBkdDpcIk1NTSBZWVlZXCJ9fVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb250aCdcIj5cbiAgICAgICAgICAgICAgICAgICAge3t2aWV3UmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6XCJZWVlZXCJ9fVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAge3t2aWV3UmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6XCJZWVlZXCJ9fSAtIHt7dmlld1JhbmdlLmVuZFRpbWUgfCBkdDpcIllZWVlcIn19XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb250cm9sbC1idXR0b25cIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gdHlwZT1cImxpZ2h0IGJsYW5rXCIgKGNsaWNrKT1cInByZXYoKVwiPlxuICAgICAgICAgICAgICAgIHt7J2NvbW1vbi5wcmV2JyB8IHRyYW5zfX1cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItYm9keVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ2aWV3XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF5J1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tb250aC1pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB3IG9mIHdlZWtkYXlzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbW9udGgtaXRlbVwiPnt7d319PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1kYXktaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgciBvZiBtYXRyaXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1kYXktaXRlbSBheC1zdGF0ZS1ldmVudFwiICpuZ0Zvcj1cImxldCBkIG9mIHI7IHRyYWNrQnk6dHJhY2tCeUZuXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImdldFRpdGxlKGQuZGF0ZSlcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJzogZC5zZWxlY3RlZCwgJ2ZvY3VzZWQnOiBkLmZvY3VzZWQsICd0b2RheSc6IGQudG9kYXksICduZXh0LW1vbnRoJzogZC5uZXh0TW9udGgsICdob2xpZGF5JzogZC5ob2xpZGF5LCAndW5zZWxlY3QnOiBkLnVuc2VsZWN0fVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIihmaW5kRGF5KGQuZGF0ZSkpID8gZ2V0U3R5bGUoZC5kYXRlKSA6ICcnXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldERheUNsaWNrKCRldmVudCwgZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2QuZGF0ZS5kYXlJbk1vbnRofX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbW9udGgtY29udGFpbmVyXCIgKm5nU3dpdGNoQ2FzZT1cIidtb250aCdcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByIG9mIG1hdHJpeFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbW9udGgtaXRlbVwiICpuZ0Zvcj1cImxldCBkIG9mIHI7IHRyYWNrQnk6dHJhY2tCeUZuXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJzogZC5zZWxlY3RlZCwgJ2ZvY3VzZWQnOiBkLmZvY3VzZWQsICd0b2RheSc6IGQudG9kYXl9XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0TW9udGhDbGljaygkZXZlbnQsIGQuZGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3tkLmRhdGUgfCBkdDpcIk1NTVwifX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXllYXItY29udGFpbmVyXCIgKm5nU3dpdGNoQ2FzZT1cIid5ZWFyJ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJjYWxlbmRhci1yb3dcIiAqbmdGb3I9XCJsZXQgciBvZiBtYXRyaXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXllYXItaXRlbVwiICpuZ0Zvcj1cImxldCBkIG9mIHI7IHRyYWNrQnk6dHJhY2tCeUZuXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJzogZC5zZWxlY3RlZCwgJ2ZvY3VzZWQnOiBkLmZvY3VzZWQsICd0b2RheSc6IGQudG9kYXl9XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0WWVhckNsaWNrKCRldmVudCwgZC5kYXRlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57e2QuZGF0ZSB8IGR0OlwiWVlZWVwifX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWZvb3RlclwiPlxuICAgICAgICA8YXgtYnV0dG9uIChjbGljayk9XCJzZXRUb2RheSgpXCIgKm5nSWY9XCJzaG93VG9kYXlCdXR0b25cIiB0eXBlPVwiZGFya1wiPlxuICAgICAgICAgICAge3tnZXRUb2RheU5hbWUoKX19XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
475
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLWJveC9jYWxlbmRhci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXItYm94L2NhbGVuZGFyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsUUFBUSxFQUNSLFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxHQUNiLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7OztBQXNDdkIsTUFBTSxPQUFPLHNCQUFzQjtJQXVLYjtJQUFnQztJQXRLcEQsUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUVoQixDQUFDLEdBQUc7UUFDVixNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLElBQUk7WUFDdEQsR0FBRyxFQUFFLEtBQUs7WUFDVixNQUFNLEVBQUUsQ0FBQztTQUNWO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSxJQUFJO1lBQ3pELEdBQUcsRUFBRSxLQUFLO1lBQ1YsTUFBTSxFQUFFLENBQUM7U0FDVjtLQUNGLENBQUM7SUFFRixTQUFTLENBQVM7SUFHbEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsSUFBSSxDQUFpQjtJQUdyQixNQUFNLENBQVM7SUFHZixHQUFHLENBQVM7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QUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDO3FCQUN2QixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckIsQ0FBQztZQUNELEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELEVBQUU7UUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxFQUFFO1FBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzNELENBQUMsQ0FD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LFdBQVc7c0JBRFYsTUFBTTtnQkFLSSxLQUFLO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENhbGVuZGFyVHlwZSxcbiAgQVhDb25maWcsXG4gIEFYRGF0ZVRpbWUsXG4gIEFYRGF0ZVRpbWVSYW5nZSxcbiAgQVhUcmFuc2xhdG9yLFxufSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCxcbiAgQVhFbGVtZW50U2l6ZSxcbn0gZnJvbSAnLi4vLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYVmFsdWVFdmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcblxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhclZpZXdUeXBlID0gJ3llYXInIHwgJ21vbnRoJyB8ICdkYXknO1xuXG5leHBvcnQgdHlwZSBBWENhbGVuZGFySG9saWRheXMgPSBBWENhbGVuZGFySG9saWRheVtdO1xuZXhwb3J0IHR5cGUgQVhDYWxlbmRhckhvbGlkYXlzRnVuYyA9IChcbiAgc3RhcnQ6IERhdGUsXG4gIGVuZDogRGF0ZSxcbiAgdHlwZTogQVhDYWxlbmRhclR5cGVcbikgPT4gQVhDYWxlbmRhckhvbGlkYXlbXTtcbmV4cG9ydCBpbnRlcmZhY2UgQVhDYWxlbmRhckhvbGlkYXkge1xuICBkYXRlOiBEYXRlO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhcldlZWtlbmRzID0gQVhDYWxlbmRhcldlZWtlbmRbXTtcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJXZWVrZW5kc0Z1bmMgPSAoXG4gIHN0YXJ0OiBEYXRlLFxuICBlbmQ6IERhdGUsXG4gIHR5cGU6IEFYQ2FsZW5kYXJUeXBlXG4pID0+IEFYQ2FsZW5kYXJXZWVrZW5kW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhDYWxlbmRhcldlZWtlbmQge1xuICBpbmRleERheTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jYWxlbmRhci1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItYm94LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJCb3hDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50IHtcbiAgd2Vla2RheXM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSBkID0ge1xuICAgIGphbGFsaToge1xuICAgICAgbG9jYWxlOiBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLmphbGFsaS5sb2NhbGUnKSB8fCAnZmEnLFxuICAgICAgZGlyOiAncnRsJyxcbiAgICAgIG51bWJlcjogMSxcbiAgICB9LFxuICAgIGdyZWdvcmlhbjoge1xuICAgICAgbG9jYWxlOiBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLmdyZWdvcmlhbi5sb2NhbGUnKSB8fCAnZW4nLFxuICAgICAgZGlyOiAnbHRyJyxcbiAgICAgIG51bWJlcjogMCxcbiAgICB9LFxuICB9O1xuXG4gIG51bVJvdGF0ZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xuXG4gIEBJbnB1dCgpXG4gIHR5cGU6IEFYQ2FsZW5kYXJUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIGxvY2FsZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGRpcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGF4SWQ6IHN0cmluZztcbiAgXG4gIEBJbnB1dCgpIGF4Q2xhc3M6IHN0cmluZztcblxuICBwcml2YXRlIF9taW46IERhdGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtaW4odikge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9taW4gPSB2O1xuICAgICAgdGhpcy5mb2N1c2VkVmFsdWUgPSB0aGlzLnRvZGF5O1xuICAgICAgdGhpcy52aWV3UmFuZ2UgPSB0aGlzLnRvZGF5Lm1vbnRoLnJhbmdlO1xuICAgICAgdGhpcy5uYXZpZ2F0ZSgwKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1pbigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWluO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWF4OiBEYXRlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWF4KHYpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fbWF4ID0gdjtcbiAgICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gdGhpcy50b2RheTtcbiAgICAgIHRoaXMudmlld1JhbmdlID0gdGhpcy50b2RheS5tb250aC5yYW5nZTtcbiAgICAgIHRoaXMubmF2aWdhdGUoMCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBtYXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21heDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNlbGVjdGFibGVIb2xpZGF5OiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBkYXlTdHlsZSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGRheU1pbk1heFJlc29hbiA9ICcnO1xuXG4gIHByaXZhdGUgZ2V0SG9saWRheTogQVhDYWxlbmRhckhvbGlkYXlzIHwgQVhDYWxlbmRhckhvbGlkYXlzRnVuYztcblxuICBwcml2YXRlIGdldFdlZWtlbmQ6IEFYQ2FsZW5kYXJXZWVrZW5kcyB8IEFYQ2FsZW5kYXJXZWVrZW5kc0Z1bmM7XG5cbiAgQElucHV0KCdzaG93VG9kYXlCdXR0b24nKVxuICBwdWJsaWMgc2hvd1RvZGF5QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbWF0cml4OiBhbnlbXSA9IFtdO1xuICByb3RhdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICdkYXknO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZpZXcoKTogQVhDYWxlbmRhclZpZXdUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fdmlldztcbiAgfVxuICBwdWJsaWMgc2V0IHZpZXcodjogQVhDYWxlbmRhclZpZXdUeXBlKSB7XG4gICAgdGhpcy5fdmlldyA9IHY7XG4gICAgdGhpcy5uYXZpZ2F0ZSgwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlcHRoOiBBWENhbGVuZGFyVmlld1R5cGUgPSAnZGF5JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRlcHRoKCk6IEFYQ2FsZW5kYXJWaWV3VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlcHRoO1xuICB9XG4gIHB1YmxpYyBzZXQgZGVwdGgodjogQVhDYWxlbmRhclZpZXdUeXBlKSB7XG4gICAgdGhpcy5fZGVwdGggPSB2O1xuICAgIHRoaXMudmlldyA9IHY7XG4gIH1cblxuICB2aWV3UmFuZ2U6IEFYRGF0ZVRpbWVSYW5nZTtcbiAgcHJpdmF0ZSBob2xpZGF5czogQVhDYWxlbmRhckhvbGlkYXlbXSA9IFtdO1xuICBwcml2YXRlIHdlZWtlbmRzOiBBWENhbGVuZGFyV2Vla2VuZFtdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQVhWYWx1ZUV2ZW50PERhdGU+XG4gID4oKTtcblxuICBAT3V0cHV0KClcbiAgb25DbGljazogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxEYXRlPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFYVmFsdWVFdmVudDxEYXRlPlxuICA+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IEFYRGF0ZVRpbWU7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlPy5kYXRlO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUodjogRGF0ZSkge1xuICAgIGxldCB2djogQVhEYXRlVGltZTtcbiAgICBpZiAodikge1xuICAgICAgdnYgPSBBWERhdGVUaW1lLmNvbnZlcnQodik7XG4gICAgfVxuICAgIGxldCB1blZhbGlkRGF0ZSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLl9tYXggfHwgdGhpcy5fbWluKSB7XG4gICAgICB1blZhbGlkRGF0ZSA9IHRoaXMuaXNJbk1Jbk1heFJhbmdlKHZ2KTtcbiAgICB9XG4gICAgaWYgKCF1blZhbGlkRGF0ZSkge1xuICAgICAgaWYgKHZ2ICYmICF2di5lcXVhbCh0aGlzLl92YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2djtcbiAgICAgICAgdGhpcy5fdmFsdWUudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgdGhpcy5zZXRGb2N1cyh0aGlzLl92YWx1ZS5jbG9uZSgpKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZ2LmRhdGUpO1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICB2YWx1ZTogdGhpcy5fdmFsdWU/LmRhdGUsXG4gICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHYgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5mb2N1c2VkVmFsdWUgPSB0aGlzLnRvZGF5O1xuICAgICAgICB0aGlzLnZpZXdSYW5nZSA9IHRoaXMudG9kYXkubW9udGgucmFuZ2U7XG4gICAgICAgIHRoaXMubmF2aWdhdGUoMCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9uQ2xpY2suZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlPy5kYXRlLFxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZvY3VzZWRWYWx1ZTogQVhEYXRlVGltZTtcbiAgZ2V0IHRvZGF5KCk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSgpLCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xuICAgIC8vIHNldCBkZWZhdWx0c1xuICAgIHRoaXMuZ2V0SG9saWRheSA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUuaG9saWRheXMnKTtcbiAgICB0aGlzLmdldFdlZWtlbmQgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLndlZWtlbmRzJyk7XG4gIH1cbiAgZmluZERheShkYXRlOiBBWERhdGVUaW1lKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5kYXlTdHlsZS5maW5kKFxuICAgICAgICAoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF1cbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIGdldFN0eWxlKGRhdGU6IEFYRGF0ZVRpbWUpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmRheVN0eWxlLmZpbmQoXG4gICAgICAgIChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXVxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF5U3R5bGUuZmluZChcbiAgICAgICAgKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdXG4gICAgICApLnN0eWxlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGl0bGUoZGF0ZTogQVhEYXRlVGltZSkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZGF5U3R5bGUuZmluZChcbiAgICAgICAgKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXlTdHlsZS5maW5kKFxuICAgICAgICAoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF1cbiAgICAgICkudGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKFxuICAgICAgICAodGhpcy5fbWluICYmXG4gICAgICAgICAgdGhpcy5fbWF4ICYmXG4gICAgICAgICAgZGF0ZS5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMuX21pbiwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgICdZTUQnLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKSA9PT0gLTEpIHx8XG4gICAgICAgIGRhdGUuY29tcGFpcmVOZXcoXG4gICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbWF4LCB0aGlzLnR5cGUpLFxuICAgICAgICAgICdZTUQnLFxuICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICApID09PSAxXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF5TWluTWF4UmVzb2FuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSwgdGhpcy50eXBlKTtcbiAgICAvL1xuICAgIHRoaXMuaW5pdExheW91dCgpO1xuICAgIC8vXG4gICAgdGhpcy52aWV3UmFuZ2UgPSB0aGlzLnRvZGF5Lm1vbnRoLnJhbmdlO1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLnNldEZvY3VzKG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEZvY3VzKHRoaXMudG9kYXkpO1xuICAgIH1cblxuICAgIHRoaXMudmlldyA9ICdkYXknO1xuICB9XG5cbiAgZ2V0Vmlld0NvbXBhaXJlKHZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xuICAgIHN3aXRjaCAodmlldykge1xuICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgcmV0dXJuICdZTUQnO1xuICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICByZXR1cm4gJ1lNJztcbiAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICByZXR1cm4gJ1knO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm5hdmlnYXRlKDApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0TGF5b3V0KCkge1xuICAgIGlmICghdGhpcy50eXBlKSB7XG4gICAgICB0aGlzLnR5cGUgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLnR5cGUnKSB8fCAnZ3JlZ29yaWFuJztcbiAgICB9XG4gICAgaWYgKCF0aGlzLmxvY2FsZSkge1xuICAgICAgdGhpcy5sb2NhbGUgPSB0aGlzLmRbdGhpcy50eXBlXT8ubG9jYWxlIHx8IHRoaXMubG9jYWxlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZGlyKSB7XG4gICAgICB0aGlzLmRpciA9IHRoaXMuZFt0aGlzLnR5cGVdPy5kaXIgfHwgJ2x0cic7XG4gICAgfVxuICAgIHRoaXMubnVtUm90YXRlID0gdGhpcy5kW3RoaXMudHlwZV0/Lm51bWJlciB8fCAwO1xuICAgIGNvbnN0IHBhdGggPSAnZGF0ZVRpbWUud2Vla2RheXNTaG9ydCc7XG4gICAgdGhpcy53ZWVrZGF5cyA9IFtcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0uc3VuYCwgdGhpcy5sb2NhbGUpLFxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5tb25gLCB0aGlzLmxvY2FsZSksXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LnR1ZWAsIHRoaXMubG9jYWxlKSxcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0ud2VkYCwgdGhpcy5sb2NhbGUpLFxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS50aHVgLCB0aGlzLmxvY2FsZSksXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LmZyaWAsIHRoaXMubG9jYWxlKSxcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0uc2F0YCwgdGhpcy5sb2NhbGUpLFxuICAgIF07XG4gIH1cblxuICBnZXRUb2RheU5hbWUoKSB7XG4gICAgcmV0dXJuIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLnRvZGF5JywgdGhpcy5sb2NhbGUpO1xuICB9XG5cbiAgcHJldigpIHtcbiAgICB0aGlzLm5hdmlnYXRlKC0xKTtcbiAgfVxuXG4gIG5leHQoKSB7XG4gICAgdGhpcy5uYXZpZ2F0ZSgxKTtcbiAgfVxuXG4gIHJvdGF0ZShhcnJheSwgbikge1xuICAgIGNvbnN0IGxlbiA9IGFycmF5Lmxlbmd0aDtcbiAgICByZXR1cm4gIShuICUgbGVuKVxuICAgICAgPyBhcnJheVxuICAgICAgOiBuID4gMFxuICAgICAgPyBhcnJheS5tYXAoKGUsIGksIGEpID0+IGFbKGkgKyBuKSAlIGxlbl0pXG4gICAgICA6IGFycmF5Lm1hcCgoZSwgaSwgYSkgPT4gYVsobGVuIC0gKChsZW4gLSBpIC0gbikgJSBsZW4pKSAlIGxlbl0pO1xuICB9XG5cbiAgbmF2aWdhdGUodmFsdWU6IG51bWJlciB8IEFYRGF0ZVRpbWUpIHtcbiAgICBsZXQgc3RhcnQ6IEFYRGF0ZVRpbWU7XG4gICAgbGV0IGVuZDogQVhEYXRlVGltZTtcbiAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xuICAgICAgbGV0IGZkOiBBWERhdGVUaW1lO1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xuICAgICAgICBmZCA9IHZhbHVlLnN0YXJ0T2YoJ21vbnRoJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmZCA9IHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZVxuICAgICAgICAgIC5hZGQoJ2RheScsIDE1KVxuICAgICAgICAgIC5hZGQoJ21vbnRoJywgdmFsdWUpXG4gICAgICAgICAgLnN0YXJ0T2YoJ21vbnRoJyk7XG4gICAgICB9XG5cbiAgICAgIHN0YXJ0ID0gZmQuZmlyc3REYXlPZldlZWs7XG4gICAgICBlbmQgPSBmZC5lbmRPZignbW9udGgnKS5lbmREYXlPZldlZWs7XG5cbiAgICAgIHN0YXJ0ID0gc3RhcnQuYWRkKCdkYXknLCAtdGhpcy5udW1Sb3RhdGUpO1xuICAgICAgZW5kID0gZW5kLmFkZCgnZGF5JywgNykuYWRkKCdkYXknLCAtdGhpcy5udW1Sb3RhdGUpO1xuXG4gICAgICAvLyBUT0RPOiBhcHBseSBzdGFydCBvZiB3ZWVrXG4gICAgICBpZiAoIXRoaXMucm90YXRlZCAmJiB0aGlzLndlZWtkYXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2phbGFsaScpIHtcbiAgICAgICAgICB0aGlzLndlZWtkYXlzID0gdGhpcy5yb3RhdGUodGhpcy53ZWVrZGF5cywgLXRoaXMubnVtUm90YXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLndlZWtkYXlzID0gdGhpcy5yb3RhdGUodGhpcy53ZWVrZGF5cywgdGhpcy5udW1Sb3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yb3RhdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xuICAgICAgbGV0IGZkOiBBWERhdGVUaW1lO1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xuICAgICAgICBmZCA9IHZhbHVlLnN0YXJ0T2YoJ3llYXInKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZkID0gdGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lXG4gICAgICAgICAgLmFkZCgnZGF5JywgMTUpXG4gICAgICAgICAgLmFkZCgneWVhcicsIHZhbHVlKVxuICAgICAgICAgIC5zdGFydE9mKCd5ZWFyJyk7XG4gICAgICB9XG4gICAgICBzdGFydCA9IGZkO1xuICAgICAgZW5kID0gZmQuZW5kT2YoJ3llYXInKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ3llYXInKSB7XG4gICAgICBsZXQgZmQ6IEFYRGF0ZVRpbWU7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBWERhdGVUaW1lKSB7XG4gICAgICAgIGZkID0gdmFsdWUuc3RhcnRPZigneWVhcicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmQgPSB0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWVcbiAgICAgICAgICAuYWRkKCdkYXknLCAxNSlcbiAgICAgICAgICAuYWRkKCd5ZWFyJywgdmFsdWUgKiAxMClcbiAgICAgICAgICAuc3RhcnRPZigneWVhcicpO1xuICAgICAgfVxuICAgICAgc3RhcnQgPSBmZC5hZGQoJ3llYXInLCAtNCk7XG4gICAgICBlbmQgPSBzdGFydC5hZGQoJ3llYXInLCA4KS5lbmRPZigneWVhcicpO1xuICAgIH1cbiAgICB0aGlzLnZpZXdSYW5nZSA9IG5ldyBBWERhdGVUaW1lUmFuZ2Uoc3RhcnQsIGVuZCk7XG4gICAgLy9cbiAgICBpZiAodGhpcy5nZXRIb2xpZGF5ICYmIHR5cGVvZiB0aGlzLmdldEhvbGlkYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuaG9saWRheXMgPSB0aGlzLmdldEhvbGlkYXkoc3RhcnQuZGF0ZSwgZW5kLmRhdGUsIHRoaXMudHlwZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0V2Vla2VuZCAmJiB0eXBlb2YgdGhpcy5nZXRXZWVrZW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLndlZWtlbmRzID0gdGhpcy5nZXRXZWVrZW5kKHN0YXJ0LmRhdGUsIGVuZC5kYXRlLCB0aGlzLnR5cGUpO1xuICAgIH1cblxuICAgIC8vXG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcbiAgICAgIHRoaXMubWF0cml4ID0gdGhpcy5tYXRyaXhpZnkoXG4gICAgICAgIHRoaXMuYXBwbHlTdHlsZSh0aGlzLnZpZXdSYW5nZS5lbnVtdXJhdGUoJ2RheScsIHRoaXMudHlwZSkpLFxuICAgICAgICA3XG4gICAgICApO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLm1hdHJpeC5sZW5ndGggPiAwICYmXG4gICAgICAgIHRoaXMubWF0cml4WzBdLmZpbmQoKGMpID0+IGMubmV4dE1vbnRoID09PSBmYWxzZSkgPT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubWF0cml4LnNwbGljZSgwLCAxKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5tYXRyaXhbdGhpcy5tYXRyaXgubGVuZ3RoIC0gMV0uZmluZChcbiAgICAgICAgICAoYykgPT4gYy5uZXh0TW9udGggPT09IGZhbHNlXG4gICAgICAgICkgPT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubWF0cml4LnNwbGljZSh0aGlzLm1hdHJpeC5sZW5ndGggLSAxLCAxKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5tYXRyaXggPSB0aGlzLm1hdHJpeGlmeShcbiAgICAgICAgdGhpcy5hcHBseVN0eWxlKHRoaXMudmlld1JhbmdlLmVudW11cmF0ZSgnbW9udGgnLCB0aGlzLnR5cGUpKSxcbiAgICAgICAgM1xuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ3llYXInKSB7XG4gICAgICB0aGlzLm1hdHJpeCA9IHRoaXMubWF0cml4aWZ5KFxuICAgICAgICB0aGlzLmFwcGx5U3R5bGUodGhpcy52aWV3UmFuZ2UuZW51bXVyYXRlKCd5ZWFyJywgdGhpcy50eXBlKSksXG4gICAgICAgIDNcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTdHlsZShkYXRlczogQVhEYXRlVGltZVtdKTogYW55W10ge1xuICAgIGNvbnN0IGl0ZW1zOiBhbnlbXSA9IFtdO1xuICAgIGRhdGVzLmZvckVhY2goKGQsIGksIGopID0+IHtcbiAgICAgIGNvbnN0IGl0ZW06IGFueSA9IHt9O1xuICAgICAgaXRlbS5kYXRlID0gZDtcblxuICAgICAgaXRlbS5zZWxlY3RlZCA9XG4gICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKSxcbiAgICAgICAgICB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLFxuICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICApID09PSAwO1xuICAgICAgaXRlbS5mb2N1c2VkID1cbiAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICB0aGlzLmZvY3VzZWRWYWx1ZSxcbiAgICAgICAgICB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLFxuICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICApID09PSAwO1xuICAgICAgaXRlbS50b2RheSA9XG4gICAgICAgIHRoaXMudG9kYXkgJiZcbiAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICB0aGlzLnRvZGF5LFxuICAgICAgICAgIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksXG4gICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICkgPT09IDA7XG4gICAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xuICAgICAgICAvLyAgaXRlbS5uZXh0TW9udGggPSBkLmNvbXBhaXJlTmV3KHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsIDEwKSwgJ1lNJykgIT09IDA7XG4gICAgICAgIGl0ZW0ubmV4dE1vbnRoID1cbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgdGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lLmFkZCgnZGF5JywgMTApLFxuICAgICAgICAgICAgJ1lNJyxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICkgIT09IDA7XG5cbiAgICAgICAgaXRlbS51bnNlbGVjdCA9IHRoaXMuaXNJbk1Jbk1heFJhbmdlKGQpO1xuICAgICAgICB0aGlzLmhvbGlkYXlzLmZvckVhY2goKGgpID0+IHtcbiAgICAgICAgICBjb25zdCBjb21wID0gZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKGguZGF0ZSwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgICdZTUQnLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoY29tcCA9PT0gMCkge1xuICAgICAgICAgICAgaXRlbS5ob2xpZGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGVIb2xpZGF5ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICBpdGVtLnVuc2VsZWN0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGluZGV4RGF5ID0gaSAtIE1hdGguZmxvb3IoaSAvIDcpICogNztcbiAgICAgICAgdGhpcy53ZWVrZW5kcy5mb3JFYWNoKChjYykgPT4ge1xuICAgICAgICAgIGlmIChOdW1iZXIoY2MpID09PSBpbmRleERheSkge1xuICAgICAgICAgICAgaXRlbS5ob2xpZGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGVIb2xpZGF5ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICBpdGVtLnVuc2VsZWN0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBjaGFuZ2VWaWV3KCkge1xuICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLnZpZXcgPSAnbW9udGgnO1xuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICB0aGlzLnZpZXcgPSAneWVhcic7XG4gICAgfVxuICB9XG5cbiAgbWF0cml4aWZ5KGFycjogYW55W10sIGNvbHMpIHtcbiAgICBjb25zdCByb3dzID0gTWF0aC5jZWlsKGFyci5sZW5ndGggLyBjb2xzKTtcbiAgICBjb25zdCBtYXRyaXggPSBbXTtcbiAgICBpZiAocm93cyAqIGNvbHMgPT09IGFyci5sZW5ndGgpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBjb2xzKSB7XG4gICAgICAgIG1hdHJpeC5wdXNoKGFyci5zbGljZShpLCBjb2xzICsgaSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWF0cml4O1xuICB9XG5cbiAgc2V0RGF5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW0pIHtcbiAgICBpZiAoaXRlbS51bnNlbGVjdCAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IGl0ZW0uZGF0ZS5kYXRlO1xuICAgIH1cblxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgaXNJbk1Jbk1heFJhbmdlKGQpIHtcbiAgICBsZXQgciA9IGZhbHNlO1xuICAgIGlmIChkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLl9taW4gJiYgIXRoaXMuX21heCkge1xuICAgICAgICByID1cbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbWluLCB0aGlzLnR5cGUpLFxuICAgICAgICAgICAgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICkgPT09IC0xO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX21heCAmJiAhdGhpcy5fbWluKSB7XG4gICAgICAgIHIgPVxuICAgICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLl9tYXgsIHRoaXMudHlwZSksXG4gICAgICAgICAgICB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKSA9PT0gMTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9taW4gJiYgdGhpcy5fbWF4KSB7XG4gICAgICAgIHIgPVxuICAgICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLl9taW4sIHRoaXMudHlwZSksXG4gICAgICAgICAgICB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKSA9PT0gLTEgfHxcbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbWF4LCB0aGlzLnR5cGUpLFxuICAgICAgICAgICAgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICkgPT09IDE7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9XG5cbiAgc2V0TW9udGhDbGljayhldmVudDogTW91c2VFdmVudCwgZGF0ZTogQVhEYXRlVGltZSkge1xuICAgIGlmICh0aGlzLmRlcHRoID09PSAnbW9udGgnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gZGF0ZS5kYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpZXcgPSAnZGF5JztcbiAgICAgIHRoaXMuc2V0Rm9jdXMoXG4gICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSlcbiAgICAgICAgICAuc2V0KCd5ZWFyJywgZGF0ZS55ZWFyKVxuICAgICAgICAgIC5zZXQoJ21vbnRoJywgZGF0ZS5tb250aE9mWWVhcilcbiAgICAgICk7XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgc2V0WWVhckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBkYXRlOiBBWERhdGVUaW1lKSB7XG4gICAgaWYgKHRoaXMuZGVwdGggPT09ICd5ZWFyJykge1xuICAgICAgdGhpcy52YWx1ZSA9IGRhdGUuZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3ID0gJ21vbnRoJztcbiAgICAgIHRoaXMuc2V0Rm9jdXMoXG4gICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSkuc2V0KCd5ZWFyJywgZGF0ZS55ZWFyKVxuICAgICAgKTtcbiAgICB9XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBzZXRGb2N1cyhkYXRlOiBBWERhdGVUaW1lKSB7XG4gICAgdGhpcy5mb2N1c2VkVmFsdWUgPSBkYXRlO1xuICAgIHRoaXMubmF2aWdhdGUodGhpcy5mb2N1c2VkVmFsdWUpO1xuICB9XG5cbiAgc2V0VG9kYXkoKSB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudG9kYXkuZGF0ZTtcbiAgICB0aGlzLnZpZXcgPSAnZGF5JztcbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleCwgaXRlbTogYW55KSB7XG4gICAgcmV0dXJuIGl0ZW0uZGF0ZS5kYXRlLmdldFRpbWUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWNvbnRhaW5lciB7e3NpemV9fVwiIFxuICAgIFtuZ0NsYXNzXT1cIlt0eXBlLCBheENsYXNzXVwiIFxuICAgIFthdHRyLmlkXT1cImF4SWRcIj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb250cm9sbC1idXR0b25cIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gdHlwZT1cImxpZ2h0IGJsYW5rXCIgKGNsaWNrKT1cIm5leHQoKVwiPlxuICAgICAgICAgICAgICAgIHt7J2NvbW1vbi5uZXh0JyB8IHRyYW5zfX1cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LW5hdi1idXR0b25cIiBbbmdTd2l0Y2hdPVwidmlld1wiPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0eXBlPVwibGlnaHQgYmxhbmtcIiAoY2xpY2spPVwiY2hhbmdlVmlldygpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RheSdcIj5cbiAgICAgICAgICAgICAgICAgICAge3t2aWV3UmFuZ2Uuc3RhcnRUaW1lLmFkZCgnZGF5JywgMTApIHwgZHQ6XCJNTU0gWVlZWVwifX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7dmlld1JhbmdlLnN0YXJ0VGltZSB8IGR0OlwiWVlZWVwifX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgIHt7dmlld1JhbmdlLnN0YXJ0VGltZSB8IGR0OlwiWVlZWVwifX0gLSB7e3ZpZXdSYW5nZS5lbmRUaW1lIHwgZHQ6XCJZWVlZXCJ9fVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29udHJvbGwtYnV0dG9uXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIHR5cGU9XCJsaWdodCBibGFua1wiIChjbGljayk9XCJwcmV2KClcIj5cbiAgICAgICAgICAgICAgICB7eydjb21tb24ucHJldicgfCB0cmFuc319XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidmlld1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RheSdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbW9udGgtaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdyBvZiB3ZWVrZGF5c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1vbnRoLWl0ZW1cIj57e3d9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF5LWl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHIgb2YgbWF0cml4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF5LWl0ZW0gYXgtc3RhdGUtZXZlbnRcIiAqbmdGb3I9XCJsZXQgZCBvZiByOyB0cmFja0J5OnRyYWNrQnlGblwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJnZXRUaXRsZShkLmRhdGUpXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydzZWxlY3RlZCc6IGQuc2VsZWN0ZWQsICdmb2N1c2VkJzogZC5mb2N1c2VkLCAndG9kYXknOiBkLnRvZGF5LCAnbmV4dC1tb250aCc6IGQubmV4dE1vbnRoLCAnaG9saWRheSc6IGQuaG9saWRheSwgJ3Vuc2VsZWN0JzogZC51bnNlbGVjdH1cIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCIoZmluZERheShkLmRhdGUpKSA/IGdldFN0eWxlKGQuZGF0ZSkgOiAnJ1wiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXREYXlDbGljaygkZXZlbnQsIGQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkLmRhdGUuZGF5SW5Nb250aH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1vbnRoLWNvbnRhaW5lclwiICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgciBvZiBtYXRyaXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1vbnRoLWl0ZW1cIiAqbmdGb3I9XCJsZXQgZCBvZiByOyB0cmFja0J5OnRyYWNrQnlGblwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydzZWxlY3RlZCc6IGQuc2VsZWN0ZWQsICdmb2N1c2VkJzogZC5mb2N1c2VkLCAndG9kYXknOiBkLnRvZGF5fVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldE1vbnRoQ2xpY2soJGV2ZW50LCBkLmRhdGUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7ZC5kYXRlIHwgZHQ6XCJNTU1cIn19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC15ZWFyLWNvbnRhaW5lclwiICpuZ1N3aXRjaENhc2U9XCIneWVhcidcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwiY2FsZW5kYXItcm93XCIgKm5nRm9yPVwibGV0IHIgb2YgbWF0cml4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC15ZWFyLWl0ZW1cIiAqbmdGb3I9XCJsZXQgZCBvZiByOyB0cmFja0J5OnRyYWNrQnlGblwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydzZWxlY3RlZCc6IGQuc2VsZWN0ZWQsICdmb2N1c2VkJzogZC5mb2N1c2VkLCAndG9kYXknOiBkLnRvZGF5fVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFllYXJDbGljaygkZXZlbnQsIGQuZGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3tkLmRhdGUgfCBkdDpcIllZWVlcIn19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1mb290ZXJcIj5cbiAgICAgICAgPGF4LWJ1dHRvbiAoY2xpY2spPVwic2V0VG9kYXkoKVwiICpuZ0lmPVwic2hvd1RvZGF5QnV0dG9uXCIgdHlwZT1cImRhcmtcIj5cbiAgICAgICAgICAgIHt7Z2V0VG9kYXlOYW1lKCl9fVxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -406,7 +406,7 @@ export class AXColorBoxComponent extends AXValidatableComponent {
406
406
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXColorBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
407
407
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXColorBoxComponent, selector: "ax-color-box", inputs: { value: "value" }, outputs: { onColorSelect: "onColorSelect", valueChange: "valueChange" }, providers: [
408
408
  { provide: AXValidatableComponent, useExisting: AXColorBoxComponent },
409
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"color-box\">\n <div class=\"color-box-pallet\">\n <div class=\"color-item\" *ngFor=\"let item of colors\" [style.background-color]=\"item.code\" [title]=\"item.code\"\n (click)=\"onColorClick(item)\">\n <i class=\"fas fa-check-circle color-active\" *ngIf=\"item.active\"></i>\n </div>\n </div>\n <div class=\"text-input\">\n <ng-container *ngIf=\"inputFormat=='rgb';else hexTemplate\">\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"rColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"gColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"bColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part switch\" (click)=\"inputFormat='hex'\">\n <span>RGB</span>\n </div>\n </ng-container>\n <ng-template #hexTemplate>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"value\" size=\"sm\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <!-- <div class=\"color-part switch\" (click)=\"inputFormat='rgb'\">\n <span>HEX</span>\n </div> -->\n </ng-template>\n\n </div>\n</div>", styles: [".color-box{border:1px solid var(--ax-border-color);max-width:300px;padding:5px}.color-box .color-box-pallet{display:flex;width:100%;height:auto;flex-wrap:wrap;justify-content:space-between;align-items:center}.color-box .color-box-pallet div{width:18px;height:18px;cursor:pointer;display:flex;justify-content:center;align-items:center;border:1px solid var(--ax-border-color);margin:1px}.color-box .color-box-pallet .color-active{color:#fff;box-shadow:1px 1px 4px #5a5a5a;border-radius:50%;font-size:.875rem}.color-box .text-input{display:flex;justify-content:space-between}.color-box .text-input .color-part{padding:2px;display:flex;align-items:center;flex-direction:column;justify-content:center}.color-box .text-input .color-part.switch{cursor:pointer;font-weight:700}.color-box .text-input .color-part.switch:hover{text-decoration:underline}.color-box .text-input .color-part .ax-field-set .no-label input{margin-top:0!important;text-align:center;height:var(--ax-size-md)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions", "axId", "axClass"] }] });
409
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"color-box\">\n <div class=\"color-box-pallet\">\n <div class=\"color-item\" *ngFor=\"let item of colors\" [style.background-color]=\"item.code\" [title]=\"item.code\"\n (click)=\"onColorClick(item)\">\n <i class=\"fas fa-check-circle color-active\" *ngIf=\"item.active\"></i>\n </div>\n </div>\n <div class=\"text-input\">\n <ng-container *ngIf=\"inputFormat=='rgb';else hexTemplate\">\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"rColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"gColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"bColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part switch\" (click)=\"inputFormat='hex'\">\n <span>RGB</span>\n </div>\n </ng-container>\n <ng-template #hexTemplate>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"value\" size=\"sm\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <!-- <div class=\"color-part switch\" (click)=\"inputFormat='rgb'\">\n <span>HEX</span>\n </div> -->\n </ng-template>\n\n </div>\n</div>", styles: [".color-box{border:1px solid var(--ax-border-color);max-width:300px;padding:5px}.color-box .color-box-pallet{display:flex;width:100%;height:auto;flex-wrap:wrap;justify-content:space-between;align-items:center}.color-box .color-box-pallet div{width:18px;height:18px;cursor:pointer;display:flex;justify-content:center;align-items:center;border:1px solid var(--ax-border-color);margin:1px}.color-box .color-box-pallet .color-active{color:#fff;box-shadow:1px 1px 4px #5a5a5a;border-radius:50%;font-size:.875rem}.color-box .text-input{display:flex;justify-content:space-between}.color-box .text-input .color-part{padding:2px;display:flex;align-items:center;flex-direction:column;justify-content:center}.color-box .text-input .color-part.switch{cursor:pointer;font-weight:700}.color-box .text-input .color-part.switch:hover{text-decoration:underline}.color-box .text-input .color-part .ax-field-set .no-label input{margin-top:0!important;text-align:center;height:var(--ax-size-md)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }] });
410
410
  }
411
411
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXColorBoxComponent, decorators: [{
412
412
  type: Component,
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
71
71
  }], axClass: [{
72
72
  type: Input
73
73
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVNUcsTUFBTSxPQUFPLHNCQUFzQjtJQTBCYjtJQXhCcEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsS0FBSyxDQUFTO0lBR2QsS0FBSyxHQUFpQixFQUFFLENBQUM7SUFHekIsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBR3pELFFBQVEsR0FBOEIsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUd0RSxNQUFNLENBQStCO0lBRTVCLElBQUksQ0FBVTtJQUVkLE9BQU8sQ0FBVTtJQUcxQixJQUFJLEdBQVksS0FBSyxDQUFDO0lBRXRCLFlBQW9CLFNBQXFCO1FBQXJCLGNBQVMsR0FBVCxTQUFTLENBQVk7SUFDekMsQ0FBQztJQUVELGVBQWU7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFJRCxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsS0FBSztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN4RSxJQUFJLElBQUksR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQzdELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQztZQUNmLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25FLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDOUMsQ0FBQztpQkFBTSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELElBQUksR0FBRyxDQUFDLENBQUM7WUFDWCxDQUFDO1lBQ0QsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pELEdBQUcsR0FBRyxJQUFJLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQUV0RCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFHUixDQUFDO0lBSUQsZUFBZSxDQUFDLElBQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7dUdBckVVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLDJXQ1ZuQyw2N0RBeUNjOzsyRkQvQkQsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQixRQUVyQixFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTsrRUFJNUMsSUFBSTtzQkFESCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNO2dCQUlQLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxNQUFNO3NCQURMLFNBQVM7dUJBQUMsUUFBUTtnQkFHVixJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhCYXNlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnYXggY29udGV4dC1tZW51LWNvbnRhaW5lcicgfVxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgd2lkdGg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBpdGVtczogQVhNZW51SXRlbVtdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsb3NlZDogRXZlbnRFbWl0dGVyPEFYQmFzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhCYXNlRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY29udGV4JylcbiAgY29udGV4OiBFbGVtZW50UmVmPEhUTUxVTGlzdEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGF4SWQ/OiBzdHJpbmc7XG4gIFxuICBASW5wdXQoKSBheENsYXNzPzogc3RyaW5nO1xuXG5cbiAgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGFpbmVyOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLnNob3cgPSBmYWxzZTtcbiAgICB0aGlzLm9uQ2xvc2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzXG4gICAgfSk7XG4gIH1cblxuXG5cbiAgb3BlbihfbGVmdCwgX3RvcCwgX3J0bCA9IGZhbHNlKSB7XG4gICAgdGhpcy5zaG93ID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5SZWMgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgbGV0IGxlZnQgPSBfcnRsID09PSBmYWxzZSA/IF9sZWZ0IDogX2xlZnQgLSBjb250YWluUmVjLndpZHRoO1xuICAgICAgbGV0IHRvcCA9IF90b3A7XG4gICAgICBpZiAoX3J0bCA9PT0gZmFsc2UgJiYgX2xlZnQgKyBjb250YWluUmVjLndpZHRoID4gd2luZG93LmlubmVyV2lkdGgpIHtcbiAgICAgICAgbGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY29udGFpblJlYy53aWR0aDtcbiAgICAgIH0gZWxzZSBpZiAoX3J0bCA9PT0gdHJ1ZSAmJiBfbGVmdCAtIGNvbnRhaW5SZWMud2lkdGggPCAwKSB7XG4gICAgICAgIGxlZnQgPSAwO1xuICAgICAgfVxuICAgICAgaWYgKHRvcCArIGNvbnRhaW5SZWMuaGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICAgIHRvcCA9IF90b3AgLSBjb250YWluUmVjLmhlaWdodDtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgnO1xuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0b3AgKyAncHgnO1xuXG4gICAgfSwgNSk7XG5cblxuICB9XG5cblxuXG4gIGhhbmRsZUNsaWNrSXRlbShpdGVtOiBBWE1lbnVJdGVtKSB7XG4gICAgaWYgKCFpdGVtLmRpc2FibGUgfHwgaXRlbS5kaXNhYmxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdChpdGVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIjwhLS0gPHVsIGNsYXNzPVwiYXggY29udGV4dC1tZW51IHt7c2l6ZX19XCIgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxuICAgICAgICA8bGkgY2xhc3M9XCJjb250ZXh0LW1lbnUtaXRlbVwiIFtjbGFzcy5kaXZpZGVyXT1cIml0ZW0uZGl2aWRlclwiIFtjbGFzcy5kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFydEljb25cIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5pY29ufX1cIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uc3RhcnRJY29ufX1cIiAqbmdJZj1cIiFpdGVtLmljb24gJiYgaXRlbS5zdGFydEljb25cIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuPnt7aXRlbS50ZXh0fX08L3NwYW4+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbmRJY29uXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uZW5kSWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWFuZ2xlLWxlZnQgYXgtbWVudS1pdGVtLWRyb3AtaWNvblwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG48L3VsPiAtLT5cblxuPHVsICNjb250ZXggY2xhc3M9XCJheCBjb250ZXh0LW1lbnUge3tzaXplfX1cIiBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhcIlxuICAgIFtuZ0NsYXNzXT1cInsnYW5pbWF0ZV9fYW5pbWF0ZWQgYW5pbWF0ZV9fZmFzdGVyIGFuaW1hdGVfX2ZhZGVJbic6IHNob3csIGF4Q2xhc3N9XCIgW2F0dHIuaWRdPVwiYXhJZFwiPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUNvbnRleHRNZW51OyBjb250ZXh0OnsgJGltcGxpY2l0OiBpdGVtcyB9XCI+PC9uZy1jb250YWluZXI+XG48L3VsPlxuXG48bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZUNvbnRleHRNZW51IGxldC1pdGVtcz5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIiBjbGFzcz1cImNvbnRleHQtbWVudS1pdGVtXCIgW2NsYXNzLmRpdmlkZXJdPVwiaXRlbS5kaXZpZGVyXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZVwiIChjbGljayk9XCJoYW5kbGVDbGlja0l0ZW0oaXRlbSlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXJ0SWNvblwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uaWNvbn19XCI+PC9pPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uc3RhcnRJY29ufX1cIiAqbmdJZj1cIiFpdGVtLmljb24gJiYgaXRlbS5zdGFydEljb25cIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3Bhbj57e2l0ZW0udGV4dH19PC9zcGFuPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbmRJY29uXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5lbmRJY29ufX1cIiAqbmdJZj1cIiFpdGVtLmljb24gJiYgaXRlbS5zdGFydEljb25cIj48L2k+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1hbmdsZS1sZWZ0IGF4LW1lbnUtaXRlbS1kcm9wLWljb25cIiAqbmdJZj1cIml0ZW0uaXRlbXM/Lmxlbmd0aCA+IDBcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dWwgY2xhc3M9XCJheCBjb250ZXh0LW1lbnUgY2hpbGRcIiAqbmdJZj1cIml0ZW0uaXRlbXM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWN1cnNpdmVDb250ZXh0TWVudTsgY29udGV4dDp7ICRpbXBsaWNpdDogaXRlbS5pdGVtcyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdWw+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+Il19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVNUcsTUFBTSxPQUFPLHNCQUFzQjtJQTBCYjtJQXhCcEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsS0FBSyxDQUFTO0lBR2QsS0FBSyxHQUFpQixFQUFFLENBQUM7SUFHekIsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBR3pELFFBQVEsR0FBOEIsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUd0RSxNQUFNLENBQStCO0lBRTVCLElBQUksQ0FBUztJQUViLE9BQU8sQ0FBUztJQUd6QixJQUFJLEdBQVksS0FBSyxDQUFDO0lBRXRCLFlBQW9CLFNBQXFCO1FBQXJCLGNBQVMsR0FBVCxTQUFTLENBQVk7SUFDekMsQ0FBQztJQUVELGVBQWU7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFJRCxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsS0FBSztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN4RSxJQUFJLElBQUksR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQzdELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQztZQUNmLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25FLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDOUMsQ0FBQztpQkFBTSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELElBQUksR0FBRyxDQUFDLENBQUM7WUFDWCxDQUFDO1lBQ0QsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pELEdBQUcsR0FBRyxJQUFJLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQUV0RCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFHUixDQUFDO0lBSUQsZUFBZSxDQUFDLElBQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7dUdBckVVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLDJXQ1ZuQyw2N0RBeUNjOzsyRkQvQkQsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQixRQUVyQixFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTsrRUFJNUMsSUFBSTtzQkFESCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNO2dCQUlQLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxNQUFNO3NCQURMLFNBQVM7dUJBQUMsUUFBUTtnQkFHVixJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhCYXNlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnYXggY29udGV4dC1tZW51LWNvbnRhaW5lcicgfVxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgd2lkdGg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBpdGVtczogQVhNZW51SXRlbVtdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsb3NlZDogRXZlbnRFbWl0dGVyPEFYQmFzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhCYXNlRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY29udGV4JylcbiAgY29udGV4OiBFbGVtZW50UmVmPEhUTUxVTGlzdEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGF4SWQ6IHN0cmluZztcbiAgXG4gIEBJbnB1dCgpIGF4Q2xhc3M6IHN0cmluZztcblxuXG4gIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRhaW5lcjogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5zaG93ID0gZmFsc2U7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpc1xuICAgIH0pO1xuICB9XG5cblxuXG4gIG9wZW4oX2xlZnQsIF90b3AsIF9ydGwgPSBmYWxzZSkge1xuICAgIHRoaXMuc2hvdyA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluUmVjID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGxldCBsZWZ0ID0gX3J0bCA9PT0gZmFsc2UgPyBfbGVmdCA6IF9sZWZ0IC0gY29udGFpblJlYy53aWR0aDtcbiAgICAgIGxldCB0b3AgPSBfdG9wO1xuICAgICAgaWYgKF9ydGwgPT09IGZhbHNlICYmIF9sZWZ0ICsgY29udGFpblJlYy53aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKSB7XG4gICAgICAgIGxlZnQgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGNvbnRhaW5SZWMud2lkdGg7XG4gICAgICB9IGVsc2UgaWYgKF9ydGwgPT09IHRydWUgJiYgX2xlZnQgLSBjb250YWluUmVjLndpZHRoIDwgMCkge1xuICAgICAgICBsZWZ0ID0gMDtcbiAgICAgIH1cbiAgICAgIGlmICh0b3AgKyBjb250YWluUmVjLmhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgICB0b3AgPSBfdG9wIC0gY29udGFpblJlYy5oZWlnaHQ7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcblxuICAgIH0sIDUpO1xuXG5cbiAgfVxuXG5cblxuICBoYW5kbGVDbGlja0l0ZW0oaXRlbTogQVhNZW51SXRlbSkge1xuICAgIGlmICghaXRlbS5kaXNhYmxlIHx8IGl0ZW0uZGlzYWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoaXRlbSk7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tIDx1bCBjbGFzcz1cImF4IGNvbnRleHQtbWVudSB7e3NpemV9fVwiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwiY29udGV4dC1tZW51LWl0ZW1cIiBbY2xhc3MuZGl2aWRlcl09XCJpdGVtLmRpdmlkZXJcIiBbY2xhc3MuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRJY29uXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uaWNvbn19XCI+PC9pPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLnN0YXJ0SWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3Bhbj57e2l0ZW0udGV4dH19PC9zcGFuPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW5kSWNvblwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLmVuZEljb259fVwiICpuZ0lmPVwiIWl0ZW0uaWNvbiAmJiBpdGVtLnN0YXJ0SWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1hbmdsZS1sZWZ0IGF4LW1lbnUtaXRlbS1kcm9wLWljb25cIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuPC91bD4gLS0+XG5cbjx1bCAjY29udGV4IGNsYXNzPVwiYXggY29udGV4dC1tZW51IHt7c2l6ZX19XCIgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCJcbiAgICBbbmdDbGFzc109XCJ7J2FuaW1hdGVfX2FuaW1hdGVkIGFuaW1hdGVfX2Zhc3RlciBhbmltYXRlX19mYWRlSW4nOiBzaG93LCBheENsYXNzfVwiIFthdHRyLmlkXT1cImF4SWRcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWN1cnNpdmVDb250ZXh0TWVudTsgY29udGV4dDp7ICRpbXBsaWNpdDogaXRlbXMgfVwiPjwvbmctY29udGFpbmVyPlxuPC91bD5cblxuPG5nLXRlbXBsYXRlICNyZWN1cnNpdmVDb250ZXh0TWVudSBsZXQtaXRlbXM+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCIgY2xhc3M9XCJjb250ZXh0LW1lbnUtaXRlbVwiIFtjbGFzcy5kaXZpZGVyXT1cIml0ZW0uZGl2aWRlclwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVcIiAoY2xpY2spPVwiaGFuZGxlQ2xpY2tJdGVtKGl0ZW0pXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGFydEljb25cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLmljb259fVwiPjwvaT5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLnN0YXJ0SWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4+e3tpdGVtLnRleHR9fTwvc3Bhbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW5kSWNvblwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uZW5kSWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtYW5nbGUtbGVmdCBheC1tZW51LWl0ZW0tZHJvcC1pY29uXCIgKm5nSWY9XCJpdGVtLml0ZW1zPy5sZW5ndGggPiAwXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHVsIGNsYXNzPVwiYXggY29udGV4dC1tZW51IGNoaWxkXCIgKm5nSWY9XCJpdGVtLml0ZW1zPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlQ29udGV4dE1lbnU7IGNvbnRleHQ6eyAkaW1wbGljaXQ6IGl0ZW0uaXRlbXMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -109,7 +109,7 @@ export class AXFilterColumnDateComponent extends AXFilterColumnComponent {
109
109
  <div class="ax-filter-section-value" [hidden]="!showSpecific">
110
110
  <ax-date-picker label="Date" [(value)]="fromDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
111
111
  </div>
112
- `, isInline: true, dependencies: [{ kind: "component", type: i1.AXDatePickerComponent, selector: "ax-date-picker", inputs: ["dayStyle", "dayMinMaxResoan", "validation", "placeholder", "min", "max", "readonly", "disabled", "allowClear", "textAlign", "showToday", "selectableHoliday", "dateType", "showTodayButton", "openByClick", "size", "type", "value"], outputs: ["typeChange", "onValueChanged", "valueChange"] }, { kind: "component", type: i2.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["readonly", "value", "disabled", "size", "direction", "items", "mode", "textField", "valueField", "axId", "axClass", "selectedItems", "selectedValues"], outputs: ["selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
112
+ `, isInline: true, dependencies: [{ kind: "component", type: i1.AXDatePickerComponent, selector: "ax-date-picker", inputs: ["dayStyle", "dayMinMaxResoan", "validation", "placeholder", "min", "max", "readonly", "disabled", "allowClear", "textAlign", "showToday", "selectableHoliday", "dateType", "showTodayButton", "openByClick", "size", "type", "value"], outputs: ["typeChange", "onValueChanged", "valueChange"] }, { kind: "component", type: i2.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["readonly", "value", "disabled", "size", "direction", "items", "mode", "textField", "valueField", "selectedItems", "selectedValues"], outputs: ["selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
113
113
  }
114
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXFilterColumnDateComponent, decorators: [{
115
115
  type: Component,
@@ -90,7 +90,7 @@ export class AXFilterColumnNumberComponent extends AXFilterColumnComponent {
90
90
  </ax-text-box>
91
91
  </div>
92
92
  </div>
93
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions", "axId", "axClass"] }] });
93
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }] });
94
94
  }
95
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXFilterColumnNumberComponent, decorators: [{
96
96
  type: Component,
@@ -48,7 +48,7 @@ export class AXFilterColumnSelectionComponent extends AXFilterColumnComponent {
48
48
  <ax-selection-list [items]="items" (selectedItemsChange)="onSelectChange($event)" [mode]="mode" direction="vertical" [(selectedItems)]="selectedItems">
49
49
  </ax-selection-list>
50
50
  </div>
51
- `, isInline: true, dependencies: [{ kind: "component", type: i1.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["readonly", "value", "disabled", "size", "direction", "items", "mode", "textField", "valueField", "axId", "axClass", "selectedItems", "selectedValues"], outputs: ["selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
+ `, isInline: true, dependencies: [{ kind: "component", type: i1.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["readonly", "value", "disabled", "size", "direction", "items", "mode", "textField", "valueField", "selectedItems", "selectedValues"], outputs: ["selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXFilterColumnSelectionComponent, decorators: [{
54
54
  type: Component,
@@ -90,7 +90,7 @@ export class AXFilterColumnStringComponent extends AXFilterColumnComponent {
90
90
  </ax-text-box>
91
91
  </div>
92
92
  </div>
93
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions", "axId", "axClass"] }] });
93
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }] });
94
94
  }
95
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXFilterColumnStringComponent, decorators: [{
96
96
  type: Component,