mis-crystal-design-system 18.1.6-signal → 18.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/async-search-dropdown/async-dropdown.component.d.ts +44 -3
  2. package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +4 -0
  3. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +14 -5
  4. package/esm2022/async-search-dropdown/async-dropdown.component.mjs +147 -37
  5. package/esm2022/checkbox/checkbox.component.mjs +4 -4
  6. package/esm2022/chip/chip.component.mjs +4 -4
  7. package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +2 -34
  8. package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +87 -32
  9. package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +6 -3
  10. package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +324 -142
  11. package/esm2022/drawer/drawer-body/drawer-body.component.mjs +4 -4
  12. package/esm2022/fab/fab.component.mjs +4 -4
  13. package/esm2022/input/mis-input.component.mjs +3 -11
  14. package/esm2022/loader/loader.component.mjs +13 -7
  15. package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +4 -4
  16. package/esm2022/phone-input/phone-input.component.mjs +4 -4
  17. package/esm2022/radio-button/radio-button.component.mjs +4 -4
  18. package/esm2022/ske-loader/ske-loader.component.mjs +4 -4
  19. package/esm2022/slider/slider.component.mjs +4 -4
  20. package/esm2022/snackbar/snackbar/snackbar.component.mjs +4 -4
  21. package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +23 -19
  22. package/esm2022/table/sort-icons.directive.mjs +24 -5
  23. package/esm2022/table/sub-table/sub-table.component.mjs +18 -5
  24. package/esm2022/table/table.component.mjs +236 -101
  25. package/esm2022/table/table.module.mjs +7 -5
  26. package/esm2022/timepicker/timepicker.component.mjs +41 -14
  27. package/esm2022/timerangepicker/timerangepicker.component.mjs +29 -21
  28. package/esm2022/toast/toast.component.mjs +4 -4
  29. package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +4 -4
  30. package/esm2022/virtual-scroll/virtual-scroll.component.mjs +4 -4
  31. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +146 -36
  32. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  33. package/fesm2022/mis-crystal-design-system-checkbox.mjs +3 -3
  34. package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
  35. package/fesm2022/mis-crystal-design-system-chip.mjs +3 -3
  36. package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
  37. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +87 -64
  38. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  39. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +328 -143
  40. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  41. package/fesm2022/mis-crystal-design-system-drawer.mjs +3 -3
  42. package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
  43. package/fesm2022/mis-crystal-design-system-fab.mjs +3 -3
  44. package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
  45. package/fesm2022/mis-crystal-design-system-input.mjs +2 -10
  46. package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
  47. package/fesm2022/mis-crystal-design-system-loader.mjs +12 -6
  48. package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
  49. package/fesm2022/mis-crystal-design-system-modal.mjs +3 -3
  50. package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
  51. package/fesm2022/mis-crystal-design-system-phone-input.mjs +3 -3
  52. package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
  53. package/fesm2022/mis-crystal-design-system-radio-button.mjs +3 -3
  54. package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
  55. package/fesm2022/mis-crystal-design-system-ske-loader.mjs +3 -3
  56. package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
  57. package/fesm2022/mis-crystal-design-system-slider.mjs +3 -3
  58. package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
  59. package/fesm2022/mis-crystal-design-system-snackbar.mjs +3 -3
  60. package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
  61. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +22 -18
  62. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  63. package/fesm2022/mis-crystal-design-system-table.mjs +279 -111
  64. package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
  65. package/fesm2022/mis-crystal-design-system-timepicker.mjs +40 -13
  66. package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
  67. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +28 -20
  68. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  69. package/fesm2022/mis-crystal-design-system-toast.mjs +3 -3
  70. package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
  71. package/fesm2022/mis-crystal-design-system-tooltip.mjs +3 -3
  72. package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
  73. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +3 -3
  74. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
  75. package/input/mis-input.component.scss +2 -3
  76. package/loader/loader.component.d.ts +7 -1
  77. package/package.json +7 -7
  78. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +2 -2
  79. package/table/table.component.d.ts +14 -1
  80. package/table/table.module.d.ts +2 -1
  81. package/timepicker/timepicker.component.d.ts +3 -1
  82. package/timerangepicker/timerangepicker.component.d.ts +3 -1
@@ -44,6 +44,8 @@ export class TimeRangePickerComponent {
44
44
  this.gap = input('1rem');
45
45
  this.disableStartTime = input(false);
46
46
  this.disableEndTime = input(false);
47
+ this.fontSize = input("14px");
48
+ this.disableUserInput = input(false);
47
49
  // --- Output Signal ---
48
50
  this.timeRangeEmitter = output();
49
51
  // --- Internal Writable Signals ---
@@ -151,15 +153,16 @@ export class TimeRangePickerComponent {
151
153
  // Calculate start time epoch for comparison
152
154
  const startTimeEpoch = dayjs.tz(`${this.getStartDate()} ${this.startTime().time}`, `DD-MM-YYYY ${this.getTimeFormat()}`, this.timezone()).valueOf();
153
155
  const endTimeEpoch = dayjs.tz(`${this.getEndDate()} ${this.endTime().time}`, `DD-MM-YYYY ${this.getTimeFormat()}`, this.timezone()).valueOf();
154
- // Auto-adjust end time if start time >= end time (for both same and different dates)
155
- if (startTimeEpoch >= endTimeEpoch) {
156
+ // Auto-adjust end time if start time > end time (for both same and different dates)
157
+ // This ensures end time is always after start time
158
+ if (startTimeEpoch > endTimeEpoch) {
156
159
  // Calculate new end time as start time + interval
157
160
  let newEndTimeEpoch = dayjs.tz(startTimeEpoch, this.timezone()).add(this.interval(), "m").valueOf();
158
161
  // If same date, check if the new end time would go beyond end of day
159
162
  if (this.getStartDate() === this.getEndDate()) {
160
163
  const endOfDay = dayjs.tz(this.startDateEpoch(), this.timezone()).endOf("d").valueOf();
161
164
  if (newEndTimeEpoch > endOfDay) {
162
- // NEW: Set end time to 11:59 PM (end of day) when start time is last interval
165
+ // Set end time to 11:59 PM (end of day) when start time is last interval
163
166
  newEndTimeEpoch = endOfDay;
164
167
  }
165
168
  }
@@ -174,26 +177,37 @@ export class TimeRangePickerComponent {
174
177
  start: this._firstIntervals().start,
175
178
  end: newEndTimeEpoch
176
179
  });
180
+ // Trigger change to force end timepicker to update its display with the new end time
181
+ // This is necessary when we reset the end time due to conflict
182
+ this.triggerChange.update(value => !value);
177
183
  }
178
- // NEW: Update end timepicker's firstInterval when both timepickers are on the same day
179
- // BUT only if there was a conflict (start >= end) or if we need to adjust for end of day
184
+ // Update end timepicker's firstInterval when both timepickers are on the same day
185
+ // ALWAYS update to ensure dropdown starts from next interval after start time
186
+ // This fixes the bug where selecting an earlier start time doesn't update end picker intervals
187
+ // NOTE: We only update firstInterval (dropdown options), NOT the selected end time value
188
+ // The timepicker component now handles firstInterval changes separately and won't reset chosenTime
180
189
  if (this.getStartDate() === this.getEndDate()) {
181
- // Only update firstInterval if there was a conflict or if we're at end of day
182
- if (startTimeEpoch >= endTimeEpoch) {
190
+ // Only update firstInterval if there's no conflict (start < end)
191
+ // If there's a conflict, it's already handled above and firstInterval was updated there
192
+ if (startTimeEpoch < endTimeEpoch) {
183
193
  // Calculate the next interval after the selected start time
184
194
  let nextIntervalAfterStart = dayjs.tz(startTimeEpoch, this.timezone()).add(this.interval(), "m").valueOf();
185
- // NEW: If next interval would go beyond end of day, use end of day instead
195
+ // If next interval would go beyond end of day, use end of day instead
186
196
  const endOfDay = dayjs.tz(this.startDateEpoch(), this.timezone()).endOf("d").valueOf();
187
197
  if (nextIntervalAfterStart > endOfDay) {
188
198
  nextIntervalAfterStart = endOfDay;
189
199
  }
190
200
  // Update the firstIntervals to make end timepicker dropdown start from next interval after start time
201
+ // This ensures users can always select times between the new start time and the current end time
202
+ // The timepicker component will update the dropdown but preserve the selected end time value
191
203
  this._firstIntervals.set({
192
204
  start: this._firstIntervals().start,
193
205
  end: nextIntervalAfterStart
194
206
  });
207
+ // NOTE: We don't call triggerChange here because we only want to update the dropdown,
208
+ // not reset the selected end time. The timepicker's separate effect for firstInterval
209
+ // will handle updating the dropdown without resetting chosenTime.
195
210
  }
196
- // If start < end, don't update firstIntervals - let the end timepicker keep its current dropdown
197
211
  }
198
212
  // Always validate and emit the time range
199
213
  const validity = this.checkTimeValidity(this.startTime().time.trim(), this.startDateEpoch()) &&
@@ -206,12 +220,6 @@ export class TimeRangePickerComponent {
206
220
  startEpoch: dayjs.tz(`${this.getStartDate()} ${this.startTime().time}`, `DD-MM-YYYY ${this.getTimeFormat()}`, this.timezone()).valueOf(),
207
221
  endEpoch: dayjs.tz(`${this.getEndDate()} ${this.endTime().time}`, `DD-MM-YYYY ${this.getTimeFormat()}`, this.timezone()).valueOf()
208
222
  });
209
- // FIXED: Only trigger change when there was a conflict (start >= end) that required end time update
210
- const currentStartTimeEpoch = dayjs.tz(`${this.getStartDate()} ${this.startTime().time}`, `DD-MM-YYYY ${this.getTimeFormat()}`, this.timezone()).valueOf();
211
- const currentEndTimeEpoch = dayjs.tz(`${this.getEndDate()} ${this.endTime().time}`, `DD-MM-YYYY ${this.getTimeFormat()}`, this.timezone()).valueOf();
212
- if (currentStartTimeEpoch >= currentEndTimeEpoch) {
213
- this.triggerChange.update(value => !value);
214
- }
215
223
  }
216
224
  endPickerHandler(time) {
217
225
  this.endTime.set(time);
@@ -252,7 +260,7 @@ export class TimeRangePickerComponent {
252
260
  }
253
261
  }
254
262
  static { this.ɵfac = function TimeRangePickerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimeRangePickerComponent)(); }; }
255
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimeRangePickerComponent, selectors: [["mis-timerangepicker"]], inputs: { inputWidth: [1, "inputWidth"], dropdownWidth: [1, "dropdownWidth"], height: [1, "height"], timezone: [1, "timezone"], startDateEpoch: [1, "startDateEpoch"], endDateEpoch: [1, "endDateEpoch"], givenStartTime: [1, "givenStartTime"], givenEndTime: [1, "givenEndTime"], clockFormat: [1, "clockFormat"], interval: [1, "interval"], showTooltip: [1, "showTooltip"], direction: [1, "direction"], gap: [1, "gap"], disableStartTime: [1, "disableStartTime"], disableEndTime: [1, "disableEndTime"] }, outputs: { timeRangeEmitter: "timeRangeEmitter" }, decls: 4, vars: 29, consts: [[1, "rangepicker-container", 3, "ngStyle"], [3, "timeEmitter", "clockFormat", "interval", "dateAsEpoch", "firstInterval", "timezone", "height", "inputWidth", "dropdownWidth", "showTooltip", "givenTime", "disable"], [4, "ngIf"], [3, "timeEmitter", "clockFormat", "interval", "dateAsEpoch", "firstInterval", "rangeValidity", "timezone", "height", "inputWidth", "dropdownWidth", "showTooltip", "givenTime", "triggerChange", "disable"]], template: function TimeRangePickerComponent_Template(rf, ctx) { if (rf & 1) {
263
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimeRangePickerComponent, selectors: [["mis-timerangepicker"]], inputs: { inputWidth: [1, "inputWidth"], dropdownWidth: [1, "dropdownWidth"], height: [1, "height"], timezone: [1, "timezone"], startDateEpoch: [1, "startDateEpoch"], endDateEpoch: [1, "endDateEpoch"], givenStartTime: [1, "givenStartTime"], givenEndTime: [1, "givenEndTime"], clockFormat: [1, "clockFormat"], interval: [1, "interval"], showTooltip: [1, "showTooltip"], direction: [1, "direction"], gap: [1, "gap"], disableStartTime: [1, "disableStartTime"], disableEndTime: [1, "disableEndTime"], fontSize: [1, "fontSize"], disableUserInput: [1, "disableUserInput"] }, outputs: { timeRangeEmitter: "timeRangeEmitter" }, decls: 4, vars: 33, consts: [[1, "rangepicker-container", 3, "ngStyle"], [3, "timeEmitter", "clockFormat", "interval", "dateAsEpoch", "firstInterval", "timezone", "height", "inputWidth", "dropdownWidth", "showTooltip", "givenTime", "disable", "disableUserInput", "fontSize"], [4, "ngIf"], [3, "timeEmitter", "clockFormat", "interval", "dateAsEpoch", "firstInterval", "rangeValidity", "timezone", "height", "inputWidth", "dropdownWidth", "showTooltip", "givenTime", "triggerChange", "disable", "disableUserInput", "fontSize"]], template: function TimeRangePickerComponent_Template(rf, ctx) { if (rf & 1) {
256
264
  i0.ɵɵelementStart(0, "div", 0)(1, "mis-timepicker", 1);
257
265
  i0.ɵɵlistener("timeEmitter", function TimeRangePickerComponent_Template_mis_timepicker_timeEmitter_1_listener($event) { return ctx.startPickerHandler($event); });
258
266
  i0.ɵɵelementEnd();
@@ -261,18 +269,18 @@ export class TimeRangePickerComponent {
261
269
  i0.ɵɵlistener("timeEmitter", function TimeRangePickerComponent_Template_mis_timepicker_timeEmitter_3_listener($event) { return ctx.endPickerHandler($event); });
262
270
  i0.ɵɵelementEnd()();
263
271
  } if (rf & 2) {
264
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(26, _c0, ctx.direction(), ctx.gap()));
272
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(30, _c0, ctx.direction(), ctx.gap()));
265
273
  i0.ɵɵadvance();
266
- i0.ɵɵproperty("clockFormat", ctx.clockFormat())("interval", ctx.interval())("dateAsEpoch", ctx.startDateEpoch())("firstInterval", ctx.firstIntervals().start)("timezone", ctx.timezone())("height", ctx.height())("inputWidth", ctx.inputWidth())("dropdownWidth", ctx.dropdownWidth())("showTooltip", ctx.showTooltip())("givenTime", ctx.givenStartTime())("disable", ctx.disableStartTime());
274
+ i0.ɵɵproperty("clockFormat", ctx.clockFormat())("interval", ctx.interval())("dateAsEpoch", ctx.startDateEpoch())("firstInterval", ctx.firstIntervals().start)("timezone", ctx.timezone())("height", ctx.height())("inputWidth", ctx.inputWidth())("dropdownWidth", ctx.dropdownWidth())("showTooltip", ctx.showTooltip())("givenTime", ctx.givenStartTime())("disable", ctx.disableStartTime())("disableUserInput", ctx.disableUserInput())("fontSize", ctx.fontSize());
267
275
  i0.ɵɵadvance();
268
276
  i0.ɵɵproperty("ngIf", ctx.direction() === "row");
269
277
  i0.ɵɵadvance();
270
- i0.ɵɵproperty("clockFormat", ctx.clockFormat())("interval", ctx.interval())("dateAsEpoch", ctx.endDateEpoch())("firstInterval", ctx.firstIntervals().end)("rangeValidity", ctx.rangeValidity())("timezone", ctx.timezone())("height", ctx.height())("inputWidth", ctx.inputWidth())("dropdownWidth", ctx.dropdownWidth())("showTooltip", ctx.showTooltip())("givenTime", ctx.givenEndTime())("triggerChange", ctx.triggerChange())("disable", ctx.disableEndTime());
278
+ i0.ɵɵproperty("clockFormat", ctx.clockFormat())("interval", ctx.interval())("dateAsEpoch", ctx.endDateEpoch())("firstInterval", ctx.firstIntervals().end)("rangeValidity", ctx.rangeValidity())("timezone", ctx.timezone())("height", ctx.height())("inputWidth", ctx.inputWidth())("dropdownWidth", ctx.dropdownWidth())("showTooltip", ctx.showTooltip())("givenTime", ctx.givenEndTime())("triggerChange", ctx.triggerChange())("disable", ctx.disableEndTime())("disableUserInput", ctx.disableUserInput())("fontSize", ctx.fontSize());
271
279
  } }, dependencies: [i1.NgIf, i1.NgStyle, i2.TimePickerComponent], styles: [".rangepicker-container[_ngcontent-%COMP%]{display:flex;gap:1rem;align-items:center}p[_ngcontent-%COMP%]{margin:0;display:inline-flex;align-items:center}"] }); }
272
280
  }
273
281
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeRangePickerComponent, [{
274
282
  type: Component,
275
- args: [{ selector: "mis-timerangepicker", template: "<div class=\"rangepicker-container\" [ngStyle]=\"{'flexDirection': direction(), 'gap': gap()}\">\n <mis-timepicker\n [clockFormat]=\"clockFormat()\"\n [interval]=\"interval()\"\n [dateAsEpoch]=\"startDateEpoch()\"\n [firstInterval]=\"firstIntervals().start\"\n (timeEmitter)=\"startPickerHandler($event)\"\n [timezone]=\"timezone()\"\n [height]=\"height()\"\n [inputWidth]=\"inputWidth()\"\n [dropdownWidth]=\"dropdownWidth()\"\n [showTooltip]=\"showTooltip()\"\n [givenTime]=\"givenStartTime()\"\n [disable]=\"disableStartTime()\"\n ></mis-timepicker>\n <p *ngIf=\"direction() === 'row'\">-</p>\n <mis-timepicker\n [clockFormat]=\"clockFormat()\"\n [interval]=\"interval()\"\n [dateAsEpoch]=\"endDateEpoch()\"\n [firstInterval]=\"firstIntervals().end\"\n (timeEmitter)=\"endPickerHandler($event)\"\n [rangeValidity]=\"rangeValidity()\"\n [timezone]=\"timezone()\"\n [height]=\"height()\"\n [inputWidth]=\"inputWidth()\"\n [dropdownWidth]=\"dropdownWidth()\"\n [showTooltip]=\"showTooltip()\"\n [givenTime]=\"givenEndTime()\"\n [triggerChange]=\"triggerChange()\"\n [disable]=\"disableEndTime()\"\n ></mis-timepicker>\n</div>\n\n", styles: [".rangepicker-container{display:flex;gap:1rem;align-items:center}p{margin:0;display:inline-flex;align-items:center}\n"] }]
283
+ args: [{ selector: "mis-timerangepicker", template: "<div class=\"rangepicker-container\" [ngStyle]=\"{'flexDirection': direction(), 'gap': gap()}\">\n <mis-timepicker\n [clockFormat]=\"clockFormat()\"\n [interval]=\"interval()\"\n [dateAsEpoch]=\"startDateEpoch()\"\n [firstInterval]=\"firstIntervals().start\"\n (timeEmitter)=\"startPickerHandler($event)\"\n [timezone]=\"timezone()\"\n [height]=\"height()\"\n [inputWidth]=\"inputWidth()\"\n [dropdownWidth]=\"dropdownWidth()\"\n [showTooltip]=\"showTooltip()\"\n [givenTime]=\"givenStartTime()\"\n [disable]=\"disableStartTime()\"\n [disableUserInput]=\"disableUserInput()\"\n [fontSize]=\"fontSize()\"\n ></mis-timepicker>\n <p *ngIf=\"direction() === 'row'\">-</p>\n <mis-timepicker\n [clockFormat]=\"clockFormat()\"\n [interval]=\"interval()\"\n [dateAsEpoch]=\"endDateEpoch()\"\n [firstInterval]=\"firstIntervals().end\"\n (timeEmitter)=\"endPickerHandler($event)\"\n [rangeValidity]=\"rangeValidity()\"\n [timezone]=\"timezone()\"\n [height]=\"height()\"\n [inputWidth]=\"inputWidth()\"\n [dropdownWidth]=\"dropdownWidth()\"\n [showTooltip]=\"showTooltip()\"\n [givenTime]=\"givenEndTime()\"\n [triggerChange]=\"triggerChange()\"\n [disable]=\"disableEndTime()\"\n [disableUserInput]=\"disableUserInput()\"\n [fontSize]=\"fontSize()\"\n ></mis-timepicker>\n</div>\n\n", styles: [".rangepicker-container{display:flex;gap:1rem;align-items:center}p{margin:0;display:inline-flex;align-items:center}\n"] }]
276
284
  }], () => [], null); })();
277
285
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimeRangePickerComponent, { className: "TimeRangePickerComponent" }); })();
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RpbWVyYW5nZXBpY2tlci90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGltZXJhbmdlcGlja2VyL3RpbWVyYW5nZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7SUNXakMseUJBQWlDO0lBQUEsaUJBQUM7SUFBQSxpQkFBSTs7QURUeEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBT3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUFnQ25DLDZFQUE2RTtJQUNyRSxhQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDekQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVPLFVBQVU7UUFDaEIsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZ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QSxBQURBLEFBREEsK0NBQTZCLDRCQUNOLHFDQUNTLDZDQUNRLDRCQUVqQix3QkFDSixnQ0FDUSxzQ0FDTSxrQ0FDSixtQ0FDQyxtQ0FDQTtZQUU1QixjQUEyQjtZQUEzQixnREFBMkI7WUFFN0IsY0FBNkI7WUFhN0IsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBRkEsQUFEQSxBQURBLEFBREEsK0NBQTZCLDRCQUNOLG1DQUNPLDJDQUNRLHNDQUVMLDRCQUNWLHdCQUNKLGdDQUNRLHNDQUNNLGtDQUNKLGlDQUNELHNDQUNLLGlDQUNMOzs7aUZEaEJuQix3QkFBd0I7Y0FMcEMsU0FBUzsyQkFDRSxxQkFBcUI7O2tGQUlwQix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElUaW1lUmFuZ2UsIElUaW1lLCBURGlyZWN0aW9uIH0gZnJvbSBcIi4vdGltZXJhbmdlLm5hbWVzcGFjZVwiO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB0aW1lem9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUnO1xuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcblxuZGF5anMuZXh0ZW5kKHV0Yyk7XG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWlzLXRpbWVyYW5nZXBpY2tlclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RpbWVyYW5nZXBpY2tlci5jb21wb25lbnQuaHRtbFwiLCAvLyBDb3JyZWN0ZWQgZmlsZSBuYW1lXG4gIHN0eWxlVXJsczogW1wiLi90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgVGltZVJhbmdlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gLS0tIElucHV0IFNpZ25hbHMgKHJlYWQtb25seSkgLS0tXG4gIGlucHV0V2lkdGggPSBpbnB1dDxzdHJpbmc+KFwiMTAwcHhcIik7XG4gIGRyb3Bkb3duV2lkdGggPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGhlaWdodCA9IGlucHV0PHN0cmluZz4oXCI0NnB4XCIpO1xuICB0aW1lem9uZSA9IGlucHV0PHN0cmluZz4oXCJBc2lhL0tvbGthdGFcIik7XG4gIHN0YXJ0RGF0ZUVwb2NoID0gaW5wdXQ8bnVtYmVyPihkYXlqcy50eihkYXlqcygpLCB0aGlzLnRpbWV6b25lKCkpLnZhbHVlT2YoKSk7XG4gIGVuZERhdGVFcG9jaCA9IGlucHV0PG51bWJlcj4oZGF5anMudHooZGF5anMoKSwgdGhpcy50aW1lem9uZSgpKS52YWx1ZU9mKCkpO1xuICBnaXZlblN0YXJ0VGltZSA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgZ2l2ZW5FbmRUaW1lID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjbG9ja0Zvcm1hdCA9IGlucHV0PG51bWJlcj4oMTIpO1xuICBpbnRlcnZhbCA9IGlucHV0PG51bWJlcj4oMTUpO1xuICBzaG93VG9vbHRpcCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICBkaXJlY3Rpb24gPSBpbnB1dDxURGlyZWN0aW9uPigncm93Jyk7XG4gIGdhcCA9IGlucHV0PHN0cmluZz4oJzFyZW0nKTtcbiAgZGlzYWJsZVN0YXJ0VGltZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGlzYWJsZUVuZFRpbWUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIFxuICAvLyAtLS0gT3V0cHV0IFNpZ25hbCAtLS1cbiAgdGltZVJhbmdlRW1pdHRlciA9IG91dHB1dDxJVGltZVJhbmdlPigpO1xuXG4gIC8vIC0tLSBJbnRlcm5hbCBXcml0YWJsZSBTaWduYWxzIC0tLVxuICBzdGFydFRpbWUgPSBzaWduYWw8SVRpbWUgfCBudWxsPihudWxsKTtcbiAgZW5kVGltZSA9IHNpZ25hbDxJVGltZSB8IG51bGw+KG51bGwpO1xuICByYW5nZVZhbGlkaXR5ID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xuICB0cmlnZ2VyQ2hhbmdlID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xuICBwcml2YXRlIF9maXJzdEludGVydmFscyA9IHNpZ25hbDx7IHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyIH0+KHsgc3RhcnQ6IDAsIGVuZDogMCB9KTtcbiAgcHJpdmF0ZSBfaXNJbml0aWFsaXppbmcgPSBmYWxzZTtcblxuICAvLyAtLS0gQ29tcHV0ZWQgU2lnbmFscyAoRGVyaXZlZCBTdGF0ZSkgLS0tXG4gIGZpcnN0SW50ZXJ2YWxzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZmlyc3RJbnRlcnZhbHMoKSk7IC8vIEEgcHVibGljIGNvbXB1dGVkIHNpZ25hbCB0byBhY2Nlc3MgdGhlIHdyaXRhYmxlIG9uZVxuICBcbiAgLy8gSGVscGVyIG1ldGhvZHMgaW5zdGVhZCBvZiBjb21wdXRlZCBzaWduYWxzIHRvIGF2b2lkIHNpZ25hbCB3cml0ZSBjb25mbGljdHNcbiAgcHJpdmF0ZSBnZXRUaW1lRm9ybWF0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2xvY2tGb3JtYXQoKSA9PT0gMTIgPyBcImhoOm1tIGFcIiA6IFwiSEg6bW1cIjtcbiAgfVxuICBcbiAgcHJpdmF0ZSBnZXRTdGFydERhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF5anMudHoodGhpcy5zdGFydERhdGVFcG9jaCgpLCB0aGlzLnRpbWV6b25lKCkpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XG4gIH1cbiAgXG4gIHByaXZhdGUgZ2V0RW5kRGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXlqcy50eih0aGlzLmVuZERhdGVFcG9jaCgpLCB0aGlzLnRpbWV6b25lKCkpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XG4gIH1cbiAgXG4gIHByaXZhdGUgZ2V0Q3VyckRhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF5anMudHooZGF5anMoKSwgdGhpcy50aW1lem9uZSgpKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xuICB9XG4gIFxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBTaW1wbGUgY29uc3RydWN0b3IgLSBubyBlZmZlY3RzIGhlcmVcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEluaXRpYWxpemUgdGhlIGNvbXBvbmVudCBvbmNlXG4gICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50KCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVDb21wb25lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5faXNJbml0aWFsaXppbmcgPSB0cnVlO1xuICAgIFxuICAgIHRoaXMuc2V0Rmlyc3RJbnRlcnZhbHMoKTtcbiAgICBjb25zdCBmaXJzdEludGVydmFscyA9IHRoaXMuX2ZpcnN0SW50ZXJ2YWxzKCk7XG5cbiAgICB0aGlzLnN0YXJ0VGltZS5zZXQoe1xuICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICB0aW1lOiBkYXlqcy50eihmaXJzdEludGVydmFscy5zdGFydCwgdGhpcy50aW1lem9uZSgpKS5mb3JtYXQodGhpcy5nZXRUaW1lRm9ybWF0KCkpLFxuICAgICAgZXBvY2g6IGRheWpzLnR6KGZpcnN0SW50ZXJ2YWxzLnN0YXJ0LCB0aGlzLnRpbWV6b25lKCkpLnZhbHVlT2YoKVxuICAgIH0pO1xuICAgIFxuICAgIC8vIEVuc3VyZSBlbmQgdGltZSBpcyBhbHdheXMgYWZ0ZXIgc3RhcnQgdGltZVxuICAgIGxldCBlbmRUaW1lRXBvY2ggPSBmaXJzdEludGVydmFscy5lbmQ7XG4gICAgY29uc3Qgc3RhcnRUaW1lRXBvY2ggPSBmaXJzdEludGVydmFscy5zdGFydDtcbiAgICBcbiAgICAvLyBJZiBlbmQgdGltZSBpcyBzYW1lIG9yIGJlZm9yZSBzdGFydCB0aW1lLCBhZGQgb25lIGludGVydmFsIHRvIGVuZCB0aW1lXG4gICAgaWYgKGVuZFRpbWVFcG9jaCA8PSBzdGFydFRpbWVFcG9jaCkge1xuICAgICAgZW5kVGltZUVwb2NoID0gZGF5anMudHooc3RhcnRUaW1lRXBvY2gsIHRoaXMudGltZXpvbmUoKSkuYWRkKHRoaXMuaW50ZXJ2YWwoKSwgJ20nKS52YWx1ZU9mKCk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSB0aGUgZmlyc3RJbnRlcnZhbHMgdG8gcmVmbGVjdCB0aGUgYWRqdXN0ZWQgZW5kIHRpbWVcbiAgICAgIHRoaXMuX2ZpcnN0SW50ZXJ2YWxzLnNldCh7XG4gICAgICAgIHN0YXJ0OiBmaXJzdEludGVydmFscy5zdGFydCxcbiAgICAgICAgZW5kOiBlbmRUaW1lRXBvY2hcbiAgICAgIH0pO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmVuZFRpbWUuc2V0KHtcbiAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgdGltZTogZGF5anMudHooZW5kVGltZUVwb2NoLCB0aGlzLnRpbWV6b25lKCkpLmZvcm1hdCh0aGlzLmdldFRpbWVGb3JtYXQoKSksXG4gICAgICBlcG9jaDogZW5kVGltZUVwb2NoXG4gICAgfSk7XG4gICAgXG4gICAgdGhpcy5faXNJbml0aWFsaXppbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8vIGNhbGN1bGF0ZSB0aGUgZmlyc3QgaW50ZXJ2YWwgb2YgdGhlIHBpY2tlclxuICBwcml2YXRlIHNldEZpcnN0SW50ZXJ2YWxzKCk6IHZvaWQge1xuICAgIGxldCBmaXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXI6IG51bWJlcjtcbiAgICBsZXQgZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlcjogbnVtYmVyO1xuXG4gICAgY29uc3QgbWludXRlcyA9IGRheWpzLnR6KGRheWpzKCksIHRoaXMudGltZXpvbmUoKSkubWludXRlKCk7XG4gICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5pbnRlcnZhbCgpIC0gKG1pbnV0ZXMgJSB0aGlzLmludGVydmFsKCkpO1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gZGF5anMudHooZGF5anMoKSwgdGhpcy50aW1lem9uZSgpKS52YWx1ZU9mKCk7XG5cbiAgICBpZiggdGhpcy5nZXRTdGFydERhdGUoKSA9PT0gdGhpcy5nZXRDdXJyRGF0ZSgpICl7XG4gICAgICBpZih0aGlzLmdldFN0YXJ0RGF0ZSgpID09PSB0aGlzLmdldEVuZERhdGUoKSl7XG4gICAgICAgIGlmKGN1cnJlbnRUaW1lID49IGRheWpzLnR6KHRoaXMuc3RhcnREYXRlRXBvY2goKSwgdGhpcy50aW1lem9uZSgpKS5lbmRPZihcImRcIikuc3VidHJhY3QodGhpcy5pbnRlcnZhbCgpLFwibVwiKS52YWx1ZU9mKCkpe1xuICAgICAgICAgIGZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IGN1cnJlbnRUaW1lO1xuICAgICAgICAgIGZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSBkYXlqcy50eih0aGlzLmVuZERhdGVFcG9jaCgpLCB0aGlzLnRpbWV6b25lKCkpLmVuZE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gZGF5anMudHooZGF5anMoKSwgdGhpcy50aW1lem9uZSgpKS5hZGQob2Zmc2V0LCBcIm1cIikudmFsdWVPZigpO1xuICAgICAgICAgIC8vIEZvciBzYW1lIGRhdGUsIGVuZCBwaWNrZXIgc2hvdWxkIHN0YXJ0IGZyb20gYmVnaW5uaW5nIG9mIGRheSB0byBhdm9pZCB2YWxpZGF0aW9uIGlzc3Vlc1xuICAgICAgICAgIGZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSBkYXlqcy50eih0aGlzLmVuZERhdGVFcG9jaCgpLCB0aGlzLnRpbWV6b25lKCkpLnN0YXJ0T2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYoY3VycmVudFRpbWUgPj0gZGF5anMudHoodGhpcy5zdGFydERhdGVFcG9jaCgpLCB0aGlzLnRpbWV6b25lKCkpLmVuZE9mKFwiZFwiKS5zdWJ0cmFjdCh0aGlzLmludGVydmFsKCksXCJtXCIpLnZhbHVlT2YoKSl7XG4gICAgICAgICAgZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gY3VycmVudFRpbWU7XG4gICAgICAgICAgZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9IGRheWpzLnR6KHRoaXMuZW5kRGF0ZUVwb2NoKCksIHRoaXMudGltZXpvbmUoKSkuZW5kT2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSBkYXlqcy50eihkYXlqcygpLCB0aGlzLnRpbWV6b25lKCkpLmFkZChvZmZzZXQsIFwibVwiKS52YWx1ZU9mKCk7XG4gICAgICAgICAgZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9IGRheWpzLnR6KHRoaXMuZW5kRGF0ZUVwb2NoKCksIHRoaXMudGltZXpvbmUoKSkuc3RhcnRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZih0aGlzLmdldFN0YXJ0RGF0ZSgpID09PSB0aGlzLmdldEVuZERhdGUoKSl7XG4gICAgICAgIGZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IGRheWpzLnR6KHRoaXMuc3RhcnREYXRlRXBvY2goKSwgdGhpcy50aW1lem9uZSgpKS5zdGFydE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICAgIGZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSBkYXlqcy50eih0aGlzLmVuZERhdGVFcG9jaCgpLCB0aGlzLnRpbWV6b25lKCkpLmFkZCh0aGlzLmludGVydmFsKCksIFwibVwiKS52YWx1ZU9mKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSBkYXlqcy50eih0aGlzLnN0YXJ0RGF0ZUVwb2NoKCksIHRoaXMudGltZXpvbmUoKSkuc3RhcnRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICBmaXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gZGF5anMudHoodGhpcy5lbmREYXRlRXBvY2goKSwgdGhpcy50aW1lem9uZSgpKS5zdGFydE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYodGhpcy5naXZlblN0YXJ0VGltZSgpKSB7XG4gICAgICBmaXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSB0aGlzLmdpdmVuU3RhcnRUaW1lKCkhO1xuICAgIH1cbiAgICBcbiAgICBpZih0aGlzLmdpdmVuRW5kVGltZSgpKSB7XG4gICAgICBmaXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gdGhpcy5naXZlbkVuZFRpbWUoKSE7XG4gICAgfVxuICAgICAgXG4gICAgdGhpcy5fZmlyc3RJbnRlcnZhbHMuc2V0KHsgc3RhcnQ6IGZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciwgZW5kOiBmaXJzdEludGVydmFsRm9yRW5kUGlja2VyIH0pO1xuICB9XG5cbiAgLy8gLS0tIFB1YmxpYyBNZXRob2RzIC0tLVxuICBlbWl0VGltZVJhbmdlKGRhdGE6IElUaW1lUmFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWVSYW5nZUVtaXR0ZXIuZW1pdChkYXRhKTtcbiAgfVxuXG4gIHN0YXJ0UGlja2VySGFuZGxlcih0aW1lOiBJVGltZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnRUaW1lLnNldCh0aW1lKTtcbiAgICB0aGlzLnJhbmdlVmFsaWRpdHkuc2V0KHRydWUpO1xuICAgIFxuICAgIC8vIERvbid0IGVtaXQgZHVyaW5nIGluaXRpYWxpemF0aW9uXG4gICAgaWYgKHRoaXMuX2lzSW5pdGlhbGl6aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2FsY3VsYXRlIHN0YXJ0IHRpbWUgZXBvY2ggZm9yIGNvbXBhcmlzb25cbiAgICBjb25zdCBzdGFydFRpbWVFcG9jaCA9IGRheWpzLnR6KGAke3RoaXMuZ2V0U3RhcnREYXRlKCl9ICR7dGhpcy5zdGFydFRpbWUoKSEudGltZX1gLCBgREQtTU0tWVlZWSAke3RoaXMuZ2V0VGltZUZvcm1hdCgpfWAsIHRoaXMudGltZXpvbmUoKSkudmFsdWVPZigpO1xuICAgIGNvbnN0IGVuZFRpbWVFcG9jaCA9IGRheWpzLnR6KGAke3RoaXMuZ2V0RW5kRGF0ZSgpfSAke3RoaXMuZW5kVGltZSgpIS50aW1lfWAsIGBERC1NTS1ZWVlZICR7dGhpcy5nZXRUaW1lRm9ybWF0KCl9YCwgdGhpcy50aW1lem9uZSgpKS52YWx1ZU9mKCk7XG5cbiAgICAvLyBBdXRvLWFkanVzdCBlbmQgdGltZSBpZiBzdGFydCB0aW1lID49IGVuZCB0aW1lIChmb3IgYm90aCBzYW1lIGFuZCBkaWZmZXJlbnQgZGF0ZXMpXG4gICAgaWYgKHN0YXJ0VGltZUVwb2NoID49IGVuZFRpbWVFcG9jaCkge1xuICAgICAgLy8gQ2FsY3VsYXRlIG5ldyBlbmQgdGltZSBhcyBzdGFydCB0aW1lICsgaW50ZXJ2YWxcbiAgICAgIGxldCBuZXdFbmRUaW1lRXBvY2ggPSBkYXlqcy50eihzdGFydFRpbWVFcG9jaCwgdGhpcy50aW1lem9uZSgpKS5hZGQodGhpcy5pbnRlcnZhbCgpLCBcIm1cIikudmFsdWVPZigpO1xuICAgICAgXG4gICAgICAvLyBJZiBzYW1lIGRhdGUsIGNoZWNrIGlmIHRoZSBuZXcgZW5kIHRpbWUgd291bGQgZ28gYmV5b25kIGVuZCBvZiBkYXlcbiAgICAgIGlmICh0aGlzLmdldFN0YXJ0RGF0ZSgpID09PSB0aGlzLmdldEVuZERhdGUoKSkge1xuICAgICAgICBjb25zdCBlbmRPZkRheSA9IGRheWpzLnR6KHRoaXMuc3RhcnREYXRlRXBvY2goKSwgdGhpcy50aW1lem9uZSgpKS5lbmRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICBpZiAobmV3RW5kVGltZUVwb2NoID4gZW5kT2ZEYXkpIHtcbiAgICAgICAgICAvLyBORVc6IFNldCBlbmQgdGltZSB0byAxMTo1OSBQTSAoZW5kIG9mIGRheSkgd2hlbiBzdGFydCB0aW1lIGlzIGxhc3QgaW50ZXJ2YWxcbiAgICAgICAgICBuZXdFbmRUaW1lRXBvY2ggPSBlbmRPZkRheTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBVcGRhdGUgdGhlIGVuZCB0aW1lIHNpZ25hbFxuICAgICAgdGhpcy5lbmRUaW1lLnNldCh7XG4gICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICB0aW1lOiBkYXlqcy50eihuZXdFbmRUaW1lRXBvY2gsIHRoaXMudGltZXpvbmUoKSkuZm9ybWF0KHRoaXMuZ2V0VGltZUZvcm1hdCgpKSxcbiAgICAgICAgZXBvY2g6IG5ld0VuZFRpbWVFcG9jaFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSB0aGUgZmlyc3RJbnRlcnZhbHMgdG8gcmVmbGVjdCB0aGUgbmV3IGVuZCB0aW1lXG4gICAgICB0aGlzLl9maXJzdEludGVydmFscy5zZXQoeyBcbiAgICAgICAgc3RhcnQ6IHRoaXMuX2ZpcnN0SW50ZXJ2YWxzKCkuc3RhcnQsIFxuICAgICAgICBlbmQ6IG5ld0VuZFRpbWVFcG9jaCBcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE5FVzogVXBkYXRlIGVuZCB0aW1lcGlja2VyJ3MgZmlyc3RJbnRlcnZhbCB3aGVuIGJvdGggdGltZXBpY2tlcnMgYXJlIG9uIHRoZSBzYW1lIGRheVxuICAgIC8vIEJVVCBvbmx5IGlmIHRoZXJlIHdhcyBhIGNvbmZsaWN0IChzdGFydCA+PSBlbmQpIG9yIGlmIHdlIG5lZWQgdG8gYWRqdXN0IGZvciBlbmQgb2YgZGF5XG4gICAgaWYgKHRoaXMuZ2V0U3RhcnREYXRlKCkgPT09IHRoaXMuZ2V0RW5kRGF0ZSgpKSB7XG4gICAgICAvLyBPbmx5IHVwZGF0ZSBmaXJzdEludGVydmFsIGlmIHRoZXJlIHdhcyBhIGNvbmZsaWN0IG9yIGlmIHdlJ3JlIGF0IGVuZCBvZiBkYXlcbiAgICAgIGlmIChzdGFydFRpbWVFcG9jaCA+PSBlbmRUaW1lRXBvY2gpIHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXh0IGludGVydmFsIGFmdGVyIHRoZSBzZWxlY3RlZCBzdGFydCB0aW1lXG4gICAgICAgIGxldCBuZXh0SW50ZXJ2YWxBZnRlclN0YXJ0ID0gZGF5anMudHooc3RhcnRUaW1lRXBvY2gsIHRoaXMudGltZXpvbmUoKSkuYWRkKHRoaXMuaW50ZXJ2YWwoKSwgXCJtXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgXG4gICAgICAgIC8vIE5FVzogSWYgbmV4dCBpbnRlcnZhbCB3b3VsZCBnbyBiZXlvbmQgZW5kIG9mIGRheSwgdXNlIGVuZCBvZiBkYXkgaW5zdGVhZFxuICAgICAgICBjb25zdCBlbmRPZkRheSA9IGRheWpzLnR6KHRoaXMuc3RhcnREYXRlRXBvY2goKSwgdGhpcy50aW1lem9uZSgpKS5lbmRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICBpZiAobmV4dEludGVydmFsQWZ0ZXJTdGFydCA+IGVuZE9mRGF5KSB7XG4gICAgICAgICAgbmV4dEludGVydmFsQWZ0ZXJTdGFydCA9IGVuZE9mRGF5O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBVcGRhdGUgdGhlIGZpcnN0SW50ZXJ2YWxzIHRvIG1ha2UgZW5kIHRpbWVwaWNrZXIgZHJvcGRvd24gc3RhcnQgZnJvbSBuZXh0IGludGVydmFsIGFmdGVyIHN0YXJ0IHRpbWVcbiAgICAgICAgdGhpcy5fZmlyc3RJbnRlcnZhbHMuc2V0KHsgXG4gICAgICAgICAgc3RhcnQ6IHRoaXMuX2ZpcnN0SW50ZXJ2YWxzKCkuc3RhcnQsIFxuICAgICAgICAgIGVuZDogbmV4dEludGVydmFsQWZ0ZXJTdGFydCBcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICAvLyBJZiBzdGFydCA8IGVuZCwgZG9uJ3QgdXBkYXRlIGZpcnN0SW50ZXJ2YWxzIC0gbGV0IHRoZSBlbmQgdGltZXBpY2tlciBrZWVwIGl0cyBjdXJyZW50IGRyb3Bkb3duXG4gICAgfVxuXG4gICAgLy8gQWx3YXlzIHZhbGlkYXRlIGFuZCBlbWl0IHRoZSB0aW1lIHJhbmdlXG4gICAgY29uc3QgdmFsaWRpdHkgPVxuICAgICAgdGhpcy5jaGVja1RpbWVWYWxpZGl0eSh0aGlzLnN0YXJ0VGltZSgpIS50aW1lLnRyaW0oKSwgdGhpcy5zdGFydERhdGVFcG9jaCgpKSAmJlxuICAgICAgdGhpcy5jaGVja1RpbWVWYWxpZGl0eSh0aGlzLmVuZFRpbWUoKSEudGltZS50cmltKCksIHRoaXMuZW5kRGF0ZUVwb2NoKCkpO1xuXG4gICAgdGhpcy5yYW5nZVZhbGlkYXRpb24odmFsaWRpdHkpO1xuICAgIHRoaXMuZW1pdFRpbWVSYW5nZSh7XG4gICAgICB2YWxpZDogdmFsaWRpdHkgJiYgdGhpcy5yYW5nZVZhbGlkaXR5KCksXG4gICAgICBzdGFydFRpbWU6IHRoaXMuc3RhcnRUaW1lKCkhLnRpbWUsXG4gICAgICBlbmRUaW1lOiB0aGlzLmVuZFRpbWUoKSEudGltZSxcbiAgICAgIHN0YXJ0RXBvY2g6IGRheWpzLnR6KGAke3RoaXMuZ2V0U3RhcnREYXRlKCl9ICR7dGhpcy5zdGFydFRpbWUoKSEudGltZX1gLCBgREQtTU0tWVlZWSAke3RoaXMuZ2V0VGltZUZvcm1hdCgpfWAsIHRoaXMudGltZXpvbmUoKSkudmFsdWVPZigpLFxuICAgICAgZW5kRXBvY2g6IGRheWpzLnR6KGAke3RoaXMuZ2V0RW5kRGF0ZSgpfSAke3RoaXMuZW5kVGltZSgpIS50aW1lfWAsIGBERC1NTS1ZWVlZICR7dGhpcy5nZXRUaW1lRm9ybWF0KCl9YCwgdGhpcy50aW1lem9uZSgpKS52YWx1ZU9mKClcbiAgICB9KTtcblxuICAgIC8vIEZJWEVEOiBPbmx5IHRyaWdnZXIgY2hhbmdlIHdoZW4gdGhlcmUgd2FzIGEgY29uZmxpY3QgKHN0YXJ0ID49IGVuZCkgdGhhdCByZXF1aXJlZCBlbmQgdGltZSB1cGRhdGVcbiAgICBjb25zdCBjdXJyZW50U3RhcnRUaW1lRXBvY2ggPSBkYXlqcy50eihgJHt0aGlzLmdldFN0YXJ0RGF0ZSgpfSAke3RoaXMuc3RhcnRUaW1lKCkhLnRpbWV9YCwgYERELU1NLVlZWVkgJHt0aGlzLmdldFRpbWVGb3JtYXQoKX1gLCB0aGlzLnRpbWV6b25lKCkpLnZhbHVlT2YoKTtcbiAgICBjb25zdCBjdXJyZW50RW5kVGltZUVwb2NoID0gZGF5anMudHooYCR7dGhpcy5nZXRFbmREYXRlKCl9ICR7dGhpcy5lbmRUaW1lKCkhLnRpbWV9YCwgYERELU1NLVlZWVkgJHt0aGlzLmdldFRpbWVGb3JtYXQoKX1gLCB0aGlzLnRpbWV6b25lKCkpLnZhbHVlT2YoKTtcbiAgICBcbiAgICBpZiAoY3VycmVudFN0YXJ0VGltZUVwb2NoID49IGN1cnJlbnRFbmRUaW1lRXBvY2gpIHtcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZS51cGRhdGUodmFsdWUgPT4gIXZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBlbmRQaWNrZXJIYW5kbGVyKHRpbWU6IElUaW1lKTogdm9pZCB7XG4gICAgdGhpcy5lbmRUaW1lLnNldCh0aW1lKTtcbiAgICBcbiAgICAvLyBEb24ndCBlbWl0IGR1cmluZyBpbml0aWFsaXphdGlvblxuICAgIGlmICh0aGlzLl9pc0luaXRpYWxpemluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkaXR5ID1cbiAgICAgIHRoaXMuY2hlY2tUaW1lVmFsaWRpdHkodGhpcy5zdGFydFRpbWUoKSEudGltZS50cmltKCksIHRoaXMuc3RhcnREYXRlRXBvY2goKSkgJiYgXG4gICAgICB0aGlzLmNoZWNrVGltZVZhbGlkaXR5KHRoaXMuZW5kVGltZSgpIS50aW1lLnRyaW0oKSwgdGhpcy5lbmREYXRlRXBvY2goKSk7XG5cbiAgICB0aGlzLnJhbmdlVmFsaWRhdGlvbih2YWxpZGl0eSk7XG4gICAgdGhpcy5lbWl0VGltZVJhbmdlKHtcbiAgICAgIHZhbGlkOiB2YWxpZGl0eSAmJiB0aGlzLnJhbmdlVmFsaWRpdHkoKSxcbiAgICAgIHN0YXJ0VGltZTogdGhpcy5zdGFydFRpbWUoKSEudGltZSxcbiAgICAgIGVuZFRpbWU6IHRoaXMuZW5kVGltZSgpIS50aW1lLFxuICAgICAgc3RhcnRFcG9jaDogZGF5anMudHooYCR7dGhpcy5nZXRTdGFydERhdGUoKX0gJHt0aGlzLnN0YXJ0VGltZSgpIS50aW1lfWAsIGBERC1NTS1ZWVlZICR7dGhpcy5nZXRUaW1lRm9ybWF0KCl9YCwgdGhpcy50aW1lem9uZSgpKS52YWx1ZU9mKCksXG4gICAgICBlbmRFcG9jaDogZGF5anMudHooYCR7dGhpcy5nZXRFbmREYXRlKCl9ICR7dGhpcy5lbmRUaW1lKCkhLnRpbWV9YCwgYERELU1NLVlZWVkgJHt0aGlzLmdldFRpbWVGb3JtYXQoKX1gLCB0aGlzLnRpbWV6b25lKCkpLnZhbHVlT2YoKVxuICAgIH0pO1xuICB9XG5cbiAgY2hlY2tUaW1lVmFsaWRpdHkodGltZTogc3RyaW5nLCBkYXRlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBSRTEyID0gL14oKFswXVsxLTldfDFbMC0yXSk6KFswLTVdWzAtOV0pKCApPyhhbXxwbXxBTXxQTSkpJC9pO1xuICAgIGNvbnN0IFJFMjQgPSAvXihbMDFdWzAtOV18MlswLTNdKTpbMC01XVswLTldJC87XG4gICAgY29uc3QgUkUgPSB0aGlzLmNsb2NrRm9ybWF0KCkgPT09IDEyID8gUkUxMiA6IFJFMjQ7XG5cbiAgICBjb25zdCB0aW1lZGF5anMgPSBkYXlqcy50eihgJHtkYXlqcy50eihkYXRlLCB0aGlzLnRpbWV6b25lKCkpLmZvcm1hdChcIkRELU1NLVlZWVlcIil9ICR7dGltZX1gLCBgJ0RELU1NLVlZWVknICR7dGhpcy5nZXRUaW1lRm9ybWF0KCl9YCwgdGhpcy50aW1lem9uZSgpKTtcbiAgICBsZXQgZmxhZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgaWYgKCh0aGlzLmdpdmVuU3RhcnRUaW1lKCkgJiYgdGhpcy5naXZlbkVuZFRpbWUoKSkgfHwgKHRoaXMuZ2V0U3RhcnREYXRlKCkgIT09IHRoaXMuZ2V0RW5kRGF0ZSgpICYmIHRoaXMuZ2V0U3RhcnREYXRlKCkgIT09IHRoaXMuZ2V0Q3VyckRhdGUoKSkpIHtcbiAgICAgIGZsYWcgPSB0aW1lLm1hdGNoKFJFKSA/IHRydWUgOiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmxhZyA9IHRpbWUubWF0Y2goUkUpICYmIHRpbWVkYXlqcy5kaWZmKGRheWpzLnR6KGRheWpzKCksIHRoaXMudGltZXpvbmUoKSksIFwibVwiKSA+PSAwID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZmxhZztcbiAgfVxuXG4gIHJhbmdlVmFsaWRhdGlvbih2YWxpZGl0eTogYm9vbGVhbikge1xuICAgIGlmICh2YWxpZGl0eSAmJiB0aGlzLmdldFN0YXJ0RGF0ZSgpID09PSB0aGlzLmdldEVuZERhdGUoKSkge1xuICAgICAgY29uc3Qgc3RhcnRkYXlqcyA9IGRheWpzLnR6KHRoaXMuc3RhcnRUaW1lKCkhLnRpbWUsIHRoaXMuZ2V0VGltZUZvcm1hdCgpLCB0aGlzLnRpbWV6b25lKCkpO1xuICAgICAgY29uc3QgZW5kZGF5anMgPSBkYXlqcy50eih0aGlzLmVuZFRpbWUoKSEudGltZSwgdGhpcy5nZXRUaW1lRm9ybWF0KCksIHRoaXMudGltZXpvbmUoKSk7XG4gICAgICB0aGlzLnJhbmdlVmFsaWRpdHkuc2V0KGVuZGRheWpzLmRpZmYoc3RhcnRkYXlqcywgXCJtXCIpID49IDEpO1xuICAgIH1cbiAgfVxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJyYW5nZXBpY2tlci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7J2ZsZXhEaXJlY3Rpb24nOiBkaXJlY3Rpb24oKSwgJ2dhcCc6IGdhcCgpfVwiPlxuICA8bWlzLXRpbWVwaWNrZXJcbiAgICBbY2xvY2tGb3JtYXRdPVwiY2xvY2tGb3JtYXQoKVwiXG4gICAgW2ludGVydmFsXT1cImludGVydmFsKClcIlxuICAgIFtkYXRlQXNFcG9jaF09XCJzdGFydERhdGVFcG9jaCgpXCJcbiAgICBbZmlyc3RJbnRlcnZhbF09XCJmaXJzdEludGVydmFscygpLnN0YXJ0XCJcbiAgICAodGltZUVtaXR0ZXIpPVwic3RhcnRQaWNrZXJIYW5kbGVyKCRldmVudClcIlxuICAgIFt0aW1lem9uZV09XCJ0aW1lem9uZSgpXCJcbiAgICBbaGVpZ2h0XT1cImhlaWdodCgpXCJcbiAgICBbaW5wdXRXaWR0aF09XCJpbnB1dFdpZHRoKClcIlxuICAgIFtkcm9wZG93bldpZHRoXT1cImRyb3Bkb3duV2lkdGgoKVwiXG4gICAgW3Nob3dUb29sdGlwXT1cInNob3dUb29sdGlwKClcIlxuICAgIFtnaXZlblRpbWVdPVwiZ2l2ZW5TdGFydFRpbWUoKVwiXG4gICAgW2Rpc2FibGVdPVwiZGlzYWJsZVN0YXJ0VGltZSgpXCJcbiAgPjwvbWlzLXRpbWVwaWNrZXI+XG4gIDxwICpuZ0lmPVwiZGlyZWN0aW9uKCkgPT09ICdyb3cnXCI+LTwvcD5cbiAgPG1pcy10aW1lcGlja2VyXG4gICAgW2Nsb2NrRm9ybWF0XT1cImNsb2NrRm9ybWF0KClcIlxuICAgIFtpbnRlcnZhbF09XCJpbnRlcnZhbCgpXCJcbiAgICBbZGF0ZUFzRXBvY2hdPVwiZW5kRGF0ZUVwb2NoKClcIlxuICAgIFtmaXJzdEludGVydmFsXT1cImZpcnN0SW50ZXJ2YWxzKCkuZW5kXCJcbiAgICAodGltZUVtaXR0ZXIpPVwiZW5kUGlja2VySGFuZGxlcigkZXZlbnQpXCJcbiAgICBbcmFuZ2VWYWxpZGl0eV09XCJyYW5nZVZhbGlkaXR5KClcIlxuICAgIFt0aW1lem9uZV09XCJ0aW1lem9uZSgpXCJcbiAgICBbaGVpZ2h0XT1cImhlaWdodCgpXCJcbiAgICBbaW5wdXRXaWR0aF09XCJpbnB1dFdpZHRoKClcIlxuICAgIFtkcm9wZG93bldpZHRoXT1cImRyb3Bkb3duV2lkdGgoKVwiXG4gICAgW3Nob3dUb29sdGlwXT1cInNob3dUb29sdGlwKClcIlxuICAgIFtnaXZlblRpbWVdPVwiZ2l2ZW5FbmRUaW1lKClcIlxuICAgIFt0cmlnZ2VyQ2hhbmdlXT1cInRyaWdnZXJDaGFuZ2UoKVwiXG4gICAgW2Rpc2FibGVdPVwiZGlzYWJsZUVuZFRpbWUoKVwiXG4gID48L21pcy10aW1lcGlja2VyPlxuPC9kaXY+XG5cbiJdfQ==
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RpbWVyYW5nZXBpY2tlci90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGltZXJhbmdlcGlja2VyL3RpbWVyYW5nZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7SUNhakMseUJBQWlDO0lBQUEsaUJBQUM7SUFBQSxpQkFBSTs7QURYeEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBT3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUFrQ25DLDZFQUE2RTtJQUNyRSxhQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDekQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVPLFVBQVU7UUFDaEIsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZ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LCtDQUE2Qiw0QkFDTixtQ0FDTywyQ0FDUSxzQ0FFTCw0QkFDVix3QkFDSixnQ0FDUSxzQ0FDTSxrQ0FDSixpQ0FDRCxzQ0FDSyxpQ0FDTCw0Q0FDVyw0QkFDaEI7OztpRkRwQmQsd0JBQXdCO2NBTHBDLFNBQVM7MkJBQ0UscUJBQXFCOztrRkFJcEIsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJVGltZVJhbmdlLCBJVGltZSwgVERpcmVjdGlvbiB9IGZyb20gXCIuL3RpbWVyYW5nZS5uYW1lc3BhY2VcIjtcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgdGltZXpvbmUgZnJvbSAnZGF5anMvcGx1Z2luL3RpbWV6b25lJztcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XG5cbmRheWpzLmV4dGVuZCh1dGMpO1xuZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10aW1lcmFuZ2VwaWNrZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50Lmh0bWxcIiwgLy8gQ29ycmVjdGVkIGZpbGUgbmFtZVxuICBzdHlsZVVybHM6IFtcIi4vdGltZXJhbmdlcGlja2VyLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIC0tLSBJbnB1dCBTaWduYWxzIChyZWFkLW9ubHkpIC0tLVxuICBpbnB1dFdpZHRoID0gaW5wdXQ8c3RyaW5nPihcIjEwMHB4XCIpO1xuICBkcm9wZG93bldpZHRoID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBoZWlnaHQgPSBpbnB1dDxzdHJpbmc+KFwiNDZweFwiKTtcbiAgdGltZXpvbmUgPSBpbnB1dDxzdHJpbmc+KFwiQXNpYS9Lb2xrYXRhXCIpO1xuICBzdGFydERhdGVFcG9jaCA9IGlucHV0PG51bWJlcj4oZGF5anMudHooZGF5anMoKSwgdGhpcy50aW1lem9uZSgpKS52YWx1ZU9mKCkpO1xuICBlbmREYXRlRXBvY2ggPSBpbnB1dDxudW1iZXI+KGRheWpzLnR6KGRheWpzKCksIHRoaXMudGltZXpvbmUoKSkudmFsdWVPZigpKTtcbiAgZ2l2ZW5TdGFydFRpbWUgPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGdpdmVuRW5kVGltZSA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY2xvY2tGb3JtYXQgPSBpbnB1dDxudW1iZXI+KDEyKTtcbiAgaW50ZXJ2YWwgPSBpbnB1dDxudW1iZXI+KDE1KTtcbiAgc2hvd1Rvb2x0aXAgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgZGlyZWN0aW9uID0gaW5wdXQ8VERpcmVjdGlvbj4oJ3JvdycpO1xuICBnYXAgPSBpbnB1dDxzdHJpbmc+KCcxcmVtJyk7XG4gIGRpc2FibGVTdGFydFRpbWUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGRpc2FibGVFbmRUaW1lID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBmb250U2l6ZSA9IGlucHV0PHN0cmluZz4oXCIxNHB4XCIpO1xuICBkaXNhYmxlVXNlcklucHV0ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8vIC0tLSBPdXRwdXQgU2lnbmFsIC0tLVxuICB0aW1lUmFuZ2VFbWl0dGVyID0gb3V0cHV0PElUaW1lUmFuZ2U+KCk7XG5cbiAgLy8gLS0tIEludGVybmFsIFdyaXRhYmxlIFNpZ25hbHMgLS0tXG4gIHN0YXJ0VGltZSA9IHNpZ25hbDxJVGltZSB8IG51bGw+KG51bGwpO1xuICBlbmRUaW1lID0gc2lnbmFsPElUaW1lIHwgbnVsbD4obnVsbCk7XG4gIHJhbmdlVmFsaWRpdHkgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG4gIHRyaWdnZXJDaGFuZ2UgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgX2ZpcnN0SW50ZXJ2YWxzID0gc2lnbmFsPHsgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIgfT4oeyBzdGFydDogMCwgZW5kOiAwIH0pO1xuICBwcml2YXRlIF9pc0luaXRpYWxpemluZyA9IGZhbHNlO1xuXG4gIC8vIC0tLSBDb21wdXRlZCBTaWduYWxzIChEZXJpdmVkIFN0YXRlKSAtLS1cbiAgZmlyc3RJbnRlcnZhbHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9maXJzdEludGVydmFscygpKTsgLy8gQSBwdWJsaWMgY29tcHV0ZWQgc2lnbmFsIHRvIGFjY2VzcyB0aGUgd3JpdGFibGUgb25lXG4gIFxuICAvLyBIZWxwZXIgbWV0aG9kcyBpbnN0ZWFkIG9mIGNvbXB1dGVkIHNpZ25hbHMgdG8gYXZvaWQgc2lnbmFsIHdyaXRlIGNvbmZsaWN0c1xuICBwcml2YXRlIGdldFRpbWVGb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jbG9ja0Zvcm1hdCgpID09PSAxMiA/IFwiaGg6bW0gYVwiIDogXCJISDptbVwiO1xuICB9XG4gIFxuICBwcml2YXRlIGdldFN0YXJ0RGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXlqcy50eih0aGlzLnN0YXJ0RGF0ZUVwb2NoKCksIHRoaXMudGltZXpvbmUoKSkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBnZXRFbmREYXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRheWpzLnR6KHRoaXMuZW5kRGF0ZUVwb2NoKCksIHRoaXMudGltZXpvbmUoKSkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBnZXRDdXJyRGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXlqcy50eihkYXlqcygpLCB0aGlzLnRpbWV6b25lKCkpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XG4gIH1cbiAgXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFNpbXBsZSBjb25zdHJ1Y3RvciAtIG5vIGVmZmVjdHMgaGVyZVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50IG9uY2VcbiAgICB0aGlzLmluaXRpYWxpemVDb21wb25lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbXBvbmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pc0luaXRpYWxpemluZyA9IHRydWU7XG4gICAgXG4gICAgdGhpcy5zZXRGaXJzdEludGVydmFscygpO1xuICAgIGNvbnN0IGZpcnN0SW50ZXJ2YWxzID0gdGhpcy5fZmlyc3RJbnRlcnZhbHMoKTtcblxuICAgIHRoaXMuc3RhcnRUaW1lLnNldCh7XG4gICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgIHRpbWU6IGRheWpzLnR6KGZpcnN0SW50ZXJ2YWxzLnN0YXJ0LCB0aGlzLnRpbWV6b25lKCkpLmZvcm1hdCh0aGlzLmdldFRpbWVGb3JtYXQoKSksXG4gICAgICBlcG9jaDogZGF5anMudHooZmlyc3RJbnRlcnZhbHMuc3RhcnQsIHRoaXMudGltZXpvbmUoKSkudmFsdWVPZigpXG4gICAgfSk7XG4gICAgXG4gICAgLy8gRW5zdXJlIGVuZCB0aW1lIGlzIGFsd2F5cyBhZnRlciBzdGFydCB0aW1lXG4gICAgbGV0IGVuZFRpbWVFcG9jaCA9IGZpcnN0SW50ZXJ2YWxzLmVuZDtcbiAgICBjb25zdCBzdGFydFRpbWVFcG9jaCA9IGZpcnN0SW50ZXJ2YWxzLnN0YXJ0O1xuICAgIFxuICAgIC8vIElmIGVuZCB0aW1lIGlzIHNhbWUgb3IgYmVmb3JlIHN0YXJ0IHRpbWUsIGFkZCBvbmUgaW50ZXJ2YWwgdG8gZW5kIHRpbWVcbiAgICBpZiAoZW5kVGltZUVwb2NoIDw9IHN0YXJ0VGltZUVwb2NoKSB7XG4gICAgICBlbmRUaW1lRXBvY2ggPSBkYXlqcy50eihzdGFydFRpbWVFcG9jaCwgdGhpcy50aW1lem9uZSgpKS5hZGQodGhpcy5pbnRlcnZhbCgpLCAnbScpLnZhbHVlT2YoKTtcbiAgICAgIFxuICAgICAgLy8gVXBkYXRlIHRoZSBmaXJzdEludGVydmFscyB0byByZWZsZWN0IHRoZSBhZGp1c3RlZCBlbmQgdGltZVxuICAgICAgdGhpcy5fZmlyc3RJbnRlcnZhbHMuc2V0KHtcbiAgICAgICAgc3RhcnQ6IGZpcnN0SW50ZXJ2YWxzLnN0YXJ0LFxuICAgICAgICBlbmQ6IGVuZFRpbWVFcG9jaFxuICAgICAgfSk7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuZW5kVGltZS5zZXQoe1xuICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICB0aW1lOiBkYXlqcy50eihlbmRUaW1lRXBvY2gsIHRoaXMudGltZXpvbmUoKSkuZm9ybWF0KHRoaXMuZ2V0VGltZUZvcm1hdCgpKSxcbiAgICAgIGVwb2NoOiBlbmRUaW1lRXBvY2hcbiAgICB9KTtcbiAgICBcbiAgICB0aGlzLl9pc0luaXRpYWxpemluZyA9IGZhbHNlO1xuICB9XG5cbiAgLy8gY2FsY3VsYXRlIHRoZSBmaXJzdCBpbnRlcnZhbCBvZiB0aGUgcGlja2VyXG4gIHByaXZhdGUgc2V0Rmlyc3RJbnRlcnZhbHMoKTogdm9pZCB7XG4gICAgbGV0IGZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlcjogbnVtYmVyO1xuICAgIGxldCBmaXJzdEludGVydmFsRm9yRW5kUGlja2VyOiBudW1iZXI7XG5cbiAgICBjb25zdCBtaW51dGVzID0gZGF5anMudHooZGF5anMoKSwgdGhpcy50aW1lem9uZSgpKS5taW51dGUoKTtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmludGVydmFsKCkgLSAobWludXRlcyAlIHRoaXMuaW50ZXJ2YWwoKSk7XG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBkYXlqcy50eihkYXlqcygpLCB0aGlzLnRpbWV6b25lKCkpLnZhbHVlT2YoKTtcblxuICAgIGlmKCB0aGlzLmdldFN0YXJ0RGF0ZSgpID09PSB0aGlzLmdldEN1cnJEYXRlKCkgKXtcbiAgICAgIGlmKHRoaXMuZ2V0U3RhcnREYXRlKCkgPT09IHRoaXMuZ2V0RW5kRGF0ZSgpKXtcbiAgICAgICAgaWYoY3VycmVudFRpbWUgPj0gZGF5anMudHoodGhpcy5zdGFydERhdGVFcG9jaCgpLCB0aGlzLnRpbWV6b25lKCkpLmVuZE9mKFwiZFwiKS5zdWJ0cmFjdCh0aGlzLmludGVydmFsKCksXCJtXCIpLnZhbHVlT2YoKSl7XG4gICAgICAgICAgZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gY3VycmVudFRpbWU7XG4gICAgICAgICAgZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9IGRheWpzLnR6KHRoaXMuZW5kRGF0ZUVwb2NoKCksIHRoaXMudGltZXpvbmUoKSkuZW5kT2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSBkYXlqcy50eihkYXlqcygpLCB0aGlzLnRpbWV6b25lKCkpLmFkZChvZmZzZXQsIFwibVwiKS52YWx1ZU9mKCk7XG4gICAgICAgICAgLy8gRm9yIHNhbWUgZGF0ZSwgZW5kIHBpY2tlciBzaG91bGQgc3RhcnQgZnJvbSBiZWdpbm5pbmcgb2YgZGF5IHRvIGF2b2lkIHZhbGlkYXRpb24gaXNzdWVzXG4gICAgICAgICAgZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9IGRheWpzLnR6KHRoaXMuZW5kRGF0ZUVwb2NoKCksIHRoaXMudGltZXpvbmUoKSkuc3RhcnRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZihjdXJyZW50VGltZSA+PSBkYXlqcy50eih0aGlzLnN0YXJ0RGF0ZUVwb2NoKCksIHRoaXMudGltZXpvbmUoKSkuZW5kT2YoXCJkXCIpLnN1YnRyYWN0KHRoaXMuaW50ZXJ2YWwoKSxcIm1cIikudmFsdWVPZigpKXtcbiAgICAgICAgICBmaXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSBjdXJyZW50VGltZTtcbiAgICAgICAgICBmaXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gZGF5anMudHoodGhpcy5lbmREYXRlRXBvY2goKSwgdGhpcy50aW1lem9uZSgpKS5lbmRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IGRheWpzLnR6KGRheWpzKCksIHRoaXMudGltZXpvbmUoKSkuYWRkKG9mZnNldCwgXCJtXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgICBmaXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gZGF5anMudHoodGhpcy5lbmREYXRlRXBvY2goKSwgdGhpcy50aW1lem9uZSgpKS5zdGFydE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmKHRoaXMuZ2V0U3RhcnREYXRlKCkgPT09IHRoaXMuZ2V0RW5kRGF0ZSgpKXtcbiAgICAgICAgZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gZGF5anMudHoodGhpcy5zdGFydERhdGVFcG9jaCgpLCB0aGlzLnRpbWV6b25lKCkpLnN0YXJ0T2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9IGRheWpzLnR6KHRoaXMuZW5kRGF0ZUVwb2NoKCksIHRoaXMudGltZXpvbmUoKSkuYWRkKHRoaXMuaW50ZXJ2YWwoKSwgXCJtXCIpLnZhbHVlT2YoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IGRheWpzLnR6KHRoaXMuc3RhcnREYXRlRXBvY2goKSwgdGhpcy50aW1lem9uZSgpKS5zdGFydE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICAgIGZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSBkYXlqcy50eih0aGlzLmVuZERhdGVFcG9jaCgpLCB0aGlzLnRpbWV6b25lKCkpLnN0YXJ0T2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZih0aGlzLmdpdmVuU3RhcnRUaW1lKCkpIHtcbiAgICAgIGZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IHRoaXMuZ2l2ZW5TdGFydFRpbWUoKSE7XG4gICAgfVxuICAgIFxuICAgIGlmKHRoaXMuZ2l2ZW5FbmRUaW1lKCkpIHtcbiAgICAgIGZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSB0aGlzLmdpdmVuRW5kVGltZSgpITtcbiAgICB9XG4gICAgICBcbiAgICB0aGlzLl9maXJzdEludGVydmFscy5zZXQoeyBzdGFydDogZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyLCBlbmQ6IGZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgfSk7XG4gIH1cblxuICAvLyAtLS0gUHVibGljIE1ldGhvZHMgLS0tXG4gIGVtaXRUaW1lUmFuZ2UoZGF0YTogSVRpbWVSYW5nZSk6IHZvaWQge1xuICAgIHRoaXMudGltZVJhbmdlRW1pdHRlci5lbWl0KGRhdGEpO1xuICB9XG5cbiAgc3RhcnRQaWNrZXJIYW5kbGVyKHRpbWU6IElUaW1lKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydFRpbWUuc2V0KHRpbWUpO1xuICAgIHRoaXMucmFuZ2VWYWxpZGl0eS5zZXQodHJ1ZSk7XG4gICAgXG4gICAgLy8gRG9uJ3QgZW1pdCBkdXJpbmcgaW5pdGlhbGl6YXRpb25cbiAgICBpZiAodGhpcy5faXNJbml0aWFsaXppbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhdGUgc3RhcnQgdGltZSBlcG9jaCBmb3IgY29tcGFyaXNvblxuICAgIGNvbnN0IHN0YXJ0VGltZUVwb2NoID0gZGF5anMudHooYCR7dGhpcy5nZXRTdGFydERhdGUoKX0gJHt0aGlzLnN0YXJ0VGltZSgpIS50aW1lfWAsIGBERC1NTS1ZWVlZICR7dGhpcy5nZXRUaW1lRm9ybWF0KCl9YCwgdGhpcy50aW1lem9uZSgpKS52YWx1ZU9mKCk7XG4gICAgY29uc3QgZW5kVGltZUVwb2NoID0gZGF5anMudHooYCR7dGhpcy5nZXRFbmREYXRlKCl9ICR7dGhpcy5lbmRUaW1lKCkhLnRpbWV9YCwgYERELU1NLVlZWVkgJHt0aGlzLmdldFRpbWVGb3JtYXQoKX1gLCB0aGlzLnRpbWV6b25lKCkpLnZhbHVlT2YoKTtcblxuICAgIC8vIEF1dG8tYWRqdXN0IGVuZCB0aW1lIGlmIHN0YXJ0IHRpbWUgPiBlbmQgdGltZSAoZm9yIGJvdGggc2FtZSBhbmQgZGlmZmVyZW50IGRhdGVzKVxuICAgIC8vIFRoaXMgZW5zdXJlcyBlbmQgdGltZSBpcyBhbHdheXMgYWZ0ZXIgc3RhcnQgdGltZVxuICAgIGlmIChzdGFydFRpbWVFcG9jaCA+IGVuZFRpbWVFcG9jaCkge1xuICAgICAgLy8gQ2FsY3VsYXRlIG5ldyBlbmQgdGltZSBhcyBzdGFydCB0aW1lICsgaW50ZXJ2YWxcbiAgICAgIGxldCBuZXdFbmRUaW1lRXBvY2ggPSBkYXlqcy50eihzdGFydFRpbWVFcG9jaCwgdGhpcy50aW1lem9uZSgpKS5hZGQodGhpcy5pbnRlcnZhbCgpLCBcIm1cIikudmFsdWVPZigpO1xuICAgICAgXG4gICAgICAvLyBJZiBzYW1lIGRhdGUsIGNoZWNrIGlmIHRoZSBuZXcgZW5kIHRpbWUgd291bGQgZ28gYmV5b25kIGVuZCBvZiBkYXlcbiAgICAgIGlmICh0aGlzLmdldFN0YXJ0RGF0ZSgpID09PSB0aGlzLmdldEVuZERhdGUoKSkge1xuICAgICAgICBjb25zdCBlbmRPZkRheSA9IGRheWpzLnR6KHRoaXMuc3RhcnREYXRlRXBvY2goKSwgdGhpcy50aW1lem9uZSgpKS5lbmRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICBpZiAobmV3RW5kVGltZUVwb2NoID4gZW5kT2ZEYXkpIHtcbiAgICAgICAgICAvLyBTZXQgZW5kIHRpbWUgdG8gMTE6NTkgUE0gKGVuZCBvZiBkYXkpIHdoZW4gc3RhcnQgdGltZSBpcyBsYXN0IGludGVydmFsXG4gICAgICAgICAgbmV3RW5kVGltZUVwb2NoID0gZW5kT2ZEYXk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gVXBkYXRlIHRoZSBlbmQgdGltZSBzaWduYWxcbiAgICAgIHRoaXMuZW5kVGltZS5zZXQoe1xuICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgdGltZTogZGF5anMudHoobmV3RW5kVGltZUVwb2NoLCB0aGlzLnRpbWV6b25lKCkpLmZvcm1hdCh0aGlzLmdldFRpbWVGb3JtYXQoKSksXG4gICAgICAgIGVwb2NoOiBuZXdFbmRUaW1lRXBvY2hcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgdGhlIGZpcnN0SW50ZXJ2YWxzIHRvIHJlZmxlY3QgdGhlIG5ldyBlbmQgdGltZVxuICAgICAgdGhpcy5fZmlyc3RJbnRlcnZhbHMuc2V0KHsgXG4gICAgICAgIHN0YXJ0OiB0aGlzLl9maXJzdEludGVydmFscygpLnN0YXJ0LCBcbiAgICAgICAgZW5kOiBuZXdFbmRUaW1lRXBvY2ggXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gVHJpZ2dlciBjaGFuZ2UgdG8gZm9yY2UgZW5kIHRpbWVwaWNrZXIgdG8gdXBkYXRlIGl0cyBkaXNwbGF5IHdpdGggdGhlIG5ldyBlbmQgdGltZVxuICAgICAgLy8gVGhpcyBpcyBuZWNlc3Nhcnkgd2hlbiB3ZSByZXNldCB0aGUgZW5kIHRpbWUgZHVlIHRvIGNvbmZsaWN0XG4gICAgICB0aGlzLnRyaWdnZXJDaGFuZ2UudXBkYXRlKHZhbHVlID0+ICF2YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIGVuZCB0aW1lcGlja2VyJ3MgZmlyc3RJbnRlcnZhbCB3aGVuIGJvdGggdGltZXBpY2tlcnMgYXJlIG9uIHRoZSBzYW1lIGRheVxuICAgIC8vIEFMV0FZUyB1cGRhdGUgdG8gZW5zdXJlIGRyb3Bkb3duIHN0YXJ0cyBmcm9tIG5leHQgaW50ZXJ2YWwgYWZ0ZXIgc3RhcnQgdGltZVxuICAgIC8vIFRoaXMgZml4ZXMgdGhlIGJ1ZyB3aGVyZSBzZWxlY3RpbmcgYW4gZWFybGllciBzdGFydCB0aW1lIGRvZXNuJ3QgdXBkYXRlIGVuZCBwaWNrZXIgaW50ZXJ2YWxzXG4gICAgLy8gTk9URTogV2Ugb25seSB1cGRhdGUgZmlyc3RJbnRlcnZhbCAoZHJvcGRvd24gb3B0aW9ucyksIE5PVCB0aGUgc2VsZWN0ZWQgZW5kIHRpbWUgdmFsdWVcbiAgICAvLyBUaGUgdGltZXBpY2tlciBjb21wb25lbnQgbm93IGhhbmRsZXMgZmlyc3RJbnRlcnZhbCBjaGFuZ2VzIHNlcGFyYXRlbHkgYW5kIHdvbid0IHJlc2V0IGNob3NlblRpbWVcbiAgICBpZiAodGhpcy5nZXRTdGFydERhdGUoKSA9PT0gdGhpcy5nZXRFbmREYXRlKCkpIHtcbiAgICAgIC8vIE9ubHkgdXBkYXRlIGZpcnN0SW50ZXJ2YWwgaWYgdGhlcmUncyBubyBjb25mbGljdCAoc3RhcnQgPCBlbmQpXG4gICAgICAvLyBJZiB0aGVyZSdzIGEgY29uZmxpY3QsIGl0J3MgYWxyZWFkeSBoYW5kbGVkIGFib3ZlIGFuZCBmaXJzdEludGVydmFsIHdhcyB1cGRhdGVkIHRoZXJlXG4gICAgICBpZiAoc3RhcnRUaW1lRXBvY2ggPCBlbmRUaW1lRXBvY2gpIHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXh0IGludGVydmFsIGFmdGVyIHRoZSBzZWxlY3RlZCBzdGFydCB0aW1lXG4gICAgICAgIGxldCBuZXh0SW50ZXJ2YWxBZnRlclN0YXJ0ID0gZGF5anMudHooc3RhcnRUaW1lRXBvY2gsIHRoaXMudGltZXpvbmUoKSkuYWRkKHRoaXMuaW50ZXJ2YWwoKSwgXCJtXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgXG4gICAgICAgIC8vIElmIG5leHQgaW50ZXJ2YWwgd291bGQgZ28gYmV5b25kIGVuZCBvZiBkYXksIHVzZSBlbmQgb2YgZGF5IGluc3RlYWRcbiAgICAgICAgY29uc3QgZW5kT2ZEYXkgPSBkYXlqcy50eih0aGlzLnN0YXJ0RGF0ZUVwb2NoKCksIHRoaXMudGltZXpvbmUoKSkuZW5kT2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgaWYgKG5leHRJbnRlcnZhbEFmdGVyU3RhcnQgPiBlbmRPZkRheSkge1xuICAgICAgICAgIG5leHRJbnRlcnZhbEFmdGVyU3RhcnQgPSBlbmRPZkRheTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gVXBkYXRlIHRoZSBmaXJzdEludGVydmFscyB0byBtYWtlIGVuZCB0aW1lcGlja2VyIGRyb3Bkb3duIHN0YXJ0IGZyb20gbmV4dCBpbnRlcnZhbCBhZnRlciBzdGFydCB0aW1lXG4gICAgICAgIC8vIFRoaXMgZW5zdXJlcyB1c2VycyBjYW4gYWx3YXlzIHNlbGVjdCB0aW1lcyBiZXR3ZWVuIHRoZSBuZXcgc3RhcnQgdGltZSBhbmQgdGhlIGN1cnJlbnQgZW5kIHRpbWVcbiAgICAgICAgLy8gVGhlIHRpbWVwaWNrZXIgY29tcG9uZW50IHdpbGwgdXBkYXRlIHRoZSBkcm9wZG93biBidXQgcHJlc2VydmUgdGhlIHNlbGVjdGVkIGVuZCB0aW1lIHZhbHVlXG4gICAgICAgIHRoaXMuX2ZpcnN0SW50ZXJ2YWxzLnNldCh7IFxuICAgICAgICAgIHN0YXJ0OiB0aGlzLl9maXJzdEludGVydmFscygpLnN0YXJ0LCBcbiAgICAgICAgICBlbmQ6IG5leHRJbnRlcnZhbEFmdGVyU3RhcnQgXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBOT1RFOiBXZSBkb24ndCBjYWxsIHRyaWdnZXJDaGFuZ2UgaGVyZSBiZWNhdXNlIHdlIG9ubHkgd2FudCB0byB1cGRhdGUgdGhlIGRyb3Bkb3duLFxuICAgICAgICAvLyBub3QgcmVzZXQgdGhlIHNlbGVjdGVkIGVuZCB0aW1lLiBUaGUgdGltZXBpY2tlcidzIHNlcGFyYXRlIGVmZmVjdCBmb3IgZmlyc3RJbnRlcnZhbFxuICAgICAgICAvLyB3aWxsIGhhbmRsZSB1cGRhdGluZyB0aGUgZHJvcGRvd24gd2l0aG91dCByZXNldHRpbmcgY2hvc2VuVGltZS5cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbHdheXMgdmFsaWRhdGUgYW5kIGVtaXQgdGhlIHRpbWUgcmFuZ2VcbiAgICBjb25zdCB2YWxpZGl0eSA9XG4gICAgICB0aGlzLmNoZWNrVGltZVZhbGlkaXR5KHRoaXMuc3RhcnRUaW1lKCkhLnRpbWUudHJpbSgpLCB0aGlzLnN0YXJ0RGF0ZUVwb2NoKCkpICYmXG4gICAgICB0aGlzLmNoZWNrVGltZVZhbGlkaXR5KHRoaXMuZW5kVGltZSgpIS50aW1lLnRyaW0oKSwgdGhpcy5lbmREYXRlRXBvY2goKSk7XG5cbiAgICB0aGlzLnJhbmdlVmFsaWRhdGlvbih2YWxpZGl0eSk7XG4gICAgdGhpcy5lbWl0VGltZVJhbmdlKHtcbiAgICAgIHZhbGlkOiB2YWxpZGl0eSAmJiB0aGlzLnJhbmdlVmFsaWRpdHkoKSxcbiAgICAgIHN0YXJ0VGltZTogdGhpcy5zdGFydFRpbWUoKSEudGltZSxcbiAgICAgIGVuZFRpbWU6IHRoaXMuZW5kVGltZSgpIS50aW1lLFxuICAgICAgc3RhcnRFcG9jaDogZGF5anMudHooYCR7dGhpcy5nZXRTdGFydERhdGUoKX0gJHt0aGlzLnN0YXJ0VGltZSgpIS50aW1lfWAsIGBERC1NTS1ZWVlZICR7dGhpcy5nZXRUaW1lRm9ybWF0KCl9YCwgdGhpcy50aW1lem9uZSgpKS52YWx1ZU9mKCksXG4gICAgICBlbmRFcG9jaDogZGF5anMudHooYCR7dGhpcy5nZXRFbmREYXRlKCl9ICR7dGhpcy5lbmRUaW1lKCkhLnRpbWV9YCwgYERELU1NLVlZWVkgJHt0aGlzLmdldFRpbWVGb3JtYXQoKX1gLCB0aGlzLnRpbWV6b25lKCkpLnZhbHVlT2YoKVxuICAgIH0pO1xuICB9XG5cbiAgZW5kUGlja2VySGFuZGxlcih0aW1lOiBJVGltZSk6IHZvaWQge1xuICAgIHRoaXMuZW5kVGltZS5zZXQodGltZSk7XG4gICAgXG4gICAgLy8gRG9uJ3QgZW1pdCBkdXJpbmcgaW5pdGlhbGl6YXRpb25cbiAgICBpZiAodGhpcy5faXNJbml0aWFsaXppbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZGl0eSA9XG4gICAgICB0aGlzLmNoZWNrVGltZVZhbGlkaXR5KHRoaXMuc3RhcnRUaW1lKCkhLnRpbWUudHJpbSgpLCB0aGlzLnN0YXJ0RGF0ZUVwb2NoKCkpICYmIFxuICAgICAgdGhpcy5jaGVja1RpbWVWYWxpZGl0eSh0aGlzLmVuZFRpbWUoKSEudGltZS50cmltKCksIHRoaXMuZW5kRGF0ZUVwb2NoKCkpO1xuXG4gICAgdGhpcy5yYW5nZVZhbGlkYXRpb24odmFsaWRpdHkpO1xuICAgIHRoaXMuZW1pdFRpbWVSYW5nZSh7XG4gICAgICB2YWxpZDogdmFsaWRpdHkgJiYgdGhpcy5yYW5nZVZhbGlkaXR5KCksXG4gICAgICBzdGFydFRpbWU6IHRoaXMuc3RhcnRUaW1lKCkhLnRpbWUsXG4gICAgICBlbmRUaW1lOiB0aGlzLmVuZFRpbWUoKSEudGltZSxcbiAgICAgIHN0YXJ0RXBvY2g6IGRheWpzLnR6KGAke3RoaXMuZ2V0U3RhcnREYXRlKCl9ICR7dGhpcy5zdGFydFRpbWUoKSEudGltZX1gLCBgREQtTU0tWVlZWSAke3RoaXMuZ2V0VGltZUZvcm1hdCgpfWAsIHRoaXMudGltZXpvbmUoKSkudmFsdWVPZigpLFxuICAgICAgZW5kRXBvY2g6IGRheWpzLnR6KGAke3RoaXMuZ2V0RW5kRGF0ZSgpfSAke3RoaXMuZW5kVGltZSgpIS50aW1lfWAsIGBERC1NTS1ZWVlZICR7dGhpcy5nZXRUaW1lRm9ybWF0KCl9YCwgdGhpcy50aW1lem9uZSgpKS52YWx1ZU9mKClcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrVGltZVZhbGlkaXR5KHRpbWU6IHN0cmluZywgZGF0ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgUkUxMiA9IC9eKChbMF1bMS05XXwxWzAtMl0pOihbMC01XVswLTldKSggKT8oYW18cG18QU18UE0pKSQvaTtcbiAgICBjb25zdCBSRTI0ID0gL14oWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSQvO1xuICAgIGNvbnN0IFJFID0gdGhpcy5jbG9ja0Zvcm1hdCgpID09PSAxMiA/IFJFMTIgOiBSRTI0O1xuXG4gICAgY29uc3QgdGltZWRheWpzID0gZGF5anMudHooYCR7ZGF5anMudHooZGF0ZSwgdGhpcy50aW1lem9uZSgpKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpfSAke3RpbWV9YCwgYCdERC1NTS1ZWVlZJyAke3RoaXMuZ2V0VGltZUZvcm1hdCgpfWAsIHRoaXMudGltZXpvbmUoKSk7XG4gICAgbGV0IGZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGlmICgodGhpcy5naXZlblN0YXJ0VGltZSgpICYmIHRoaXMuZ2l2ZW5FbmRUaW1lKCkpIHx8ICh0aGlzLmdldFN0YXJ0RGF0ZSgpICE9PSB0aGlzLmdldEVuZERhdGUoKSAmJiB0aGlzLmdldFN0YXJ0RGF0ZSgpICE9PSB0aGlzLmdldEN1cnJEYXRlKCkpKSB7XG4gICAgICBmbGFnID0gdGltZS5tYXRjaChSRSkgPyB0cnVlIDogZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsYWcgPSB0aW1lLm1hdGNoKFJFKSAmJiB0aW1lZGF5anMuZGlmZihkYXlqcy50eihkYXlqcygpLCB0aGlzLnRpbWV6b25lKCkpLCBcIm1cIikgPj0gMCA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGZsYWc7XG4gIH1cblxuICByYW5nZVZhbGlkYXRpb24odmFsaWRpdHk6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsaWRpdHkgJiYgdGhpcy5nZXRTdGFydERhdGUoKSA9PT0gdGhpcy5nZXRFbmREYXRlKCkpIHtcbiAgICAgIGNvbnN0IHN0YXJ0ZGF5anMgPSBkYXlqcy50eih0aGlzLnN0YXJ0VGltZSgpIS50aW1lLCB0aGlzLmdldFRpbWVGb3JtYXQoKSwgdGhpcy50aW1lem9uZSgpKTtcbiAgICAgIGNvbnN0IGVuZGRheWpzID0gZGF5anMudHoodGhpcy5lbmRUaW1lKCkhLnRpbWUsIHRoaXMuZ2V0VGltZUZvcm1hdCgpLCB0aGlzLnRpbWV6b25lKCkpO1xuICAgICAgdGhpcy5yYW5nZVZhbGlkaXR5LnNldChlbmRkYXlqcy5kaWZmKHN0YXJ0ZGF5anMsIFwibVwiKSA+PSAxKTtcbiAgICB9XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGNsYXNzPVwicmFuZ2VwaWNrZXItY29udGFpbmVyXCIgW25nU3R5bGVdPVwieydmbGV4RGlyZWN0aW9uJzogZGlyZWN0aW9uKCksICdnYXAnOiBnYXAoKX1cIj5cbiAgPG1pcy10aW1lcGlja2VyXG4gICAgW2Nsb2NrRm9ybWF0XT1cImNsb2NrRm9ybWF0KClcIlxuICAgIFtpbnRlcnZhbF09XCJpbnRlcnZhbCgpXCJcbiAgICBbZGF0ZUFzRXBvY2hdPVwic3RhcnREYXRlRXBvY2goKVwiXG4gICAgW2ZpcnN0SW50ZXJ2YWxdPVwiZmlyc3RJbnRlcnZhbHMoKS5zdGFydFwiXG4gICAgKHRpbWVFbWl0dGVyKT1cInN0YXJ0UGlja2VySGFuZGxlcigkZXZlbnQpXCJcbiAgICBbdGltZXpvbmVdPVwidGltZXpvbmUoKVwiXG4gICAgW2hlaWdodF09XCJoZWlnaHQoKVwiXG4gICAgW2lucHV0V2lkdGhdPVwiaW5wdXRXaWR0aCgpXCJcbiAgICBbZHJvcGRvd25XaWR0aF09XCJkcm9wZG93bldpZHRoKClcIlxuICAgIFtzaG93VG9vbHRpcF09XCJzaG93VG9vbHRpcCgpXCJcbiAgICBbZ2l2ZW5UaW1lXT1cImdpdmVuU3RhcnRUaW1lKClcIlxuICAgIFtkaXNhYmxlXT1cImRpc2FibGVTdGFydFRpbWUoKVwiXG4gICAgW2Rpc2FibGVVc2VySW5wdXRdPVwiZGlzYWJsZVVzZXJJbnB1dCgpXCJcbiAgICBbZm9udFNpemVdPVwiZm9udFNpemUoKVwiXG4gID48L21pcy10aW1lcGlja2VyPlxuICA8cCAqbmdJZj1cImRpcmVjdGlvbigpID09PSAncm93J1wiPi08L3A+XG4gIDxtaXMtdGltZXBpY2tlclxuICAgIFtjbG9ja0Zvcm1hdF09XCJjbG9ja0Zvcm1hdCgpXCJcbiAgICBbaW50ZXJ2YWxdPVwiaW50ZXJ2YWwoKVwiXG4gICAgW2RhdGVBc0Vwb2NoXT1cImVuZERhdGVFcG9jaCgpXCJcbiAgICBbZmlyc3RJbnRlcnZhbF09XCJmaXJzdEludGVydmFscygpLmVuZFwiXG4gICAgKHRpbWVFbWl0dGVyKT1cImVuZFBpY2tlckhhbmRsZXIoJGV2ZW50KVwiXG4gICAgW3JhbmdlVmFsaWRpdHldPVwicmFuZ2VWYWxpZGl0eSgpXCJcbiAgICBbdGltZXpvbmVdPVwidGltZXpvbmUoKVwiXG4gICAgW2hlaWdodF09XCJoZWlnaHQoKVwiXG4gICAgW2lucHV0V2lkdGhdPVwiaW5wdXRXaWR0aCgpXCJcbiAgICBbZHJvcGRvd25XaWR0aF09XCJkcm9wZG93bldpZHRoKClcIlxuICAgIFtzaG93VG9vbHRpcF09XCJzaG93VG9vbHRpcCgpXCJcbiAgICBbZ2l2ZW5UaW1lXT1cImdpdmVuRW5kVGltZSgpXCJcbiAgICBbdHJpZ2dlckNoYW5nZV09XCJ0cmlnZ2VyQ2hhbmdlKClcIlxuICAgIFtkaXNhYmxlXT1cImRpc2FibGVFbmRUaW1lKClcIlxuICAgIFtkaXNhYmxlVXNlcklucHV0XT1cImRpc2FibGVVc2VySW5wdXQoKVwiXG4gICAgW2ZvbnRTaXplXT1cImZvbnRTaXplKClcIlxuICA+PC9taXMtdGltZXBpY2tlcj5cbjwvZGl2PlxuXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { animate, style, transition, trigger } from "@angular/animations";
2
- import { Component, ChangeDetectionStrategy } from "@angular/core";
2
+ import { Component } from "@angular/core";
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "./toast.data.service";
5
5
  import * as i2 from "@angular/platform-browser";
@@ -87,11 +87,11 @@ export class ToastComponent {
87
87
  animate("300ms ease-in", style({ opacity: "0", transform: "translateY(50%)" }))
88
88
  ])
89
89
  ])
90
- ] }, changeDetection: 0 }); }
90
+ ] } }); }
91
91
  }
92
92
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToastComponent, [{
93
93
  type: Component,
94
- args: [{ selector: "mis-teams-toast", changeDetection: ChangeDetectionStrategy.OnPush, animations: [
94
+ args: [{ selector: "mis-teams-toast", animations: [
95
95
  trigger("fadeInOut", [
96
96
  transition(":enter", [
97
97
  style({ opacity: "0", transform: "translateY(-50%)", height: "0" }),
@@ -104,4 +104,4 @@ export class ToastComponent {
104
104
  ], template: "<div class=\"toast-container\">\n <div *ngFor=\"let toast of data.messages()\" @fadeInOut>\n <div class=\"toast-wrapper\" [ngClass]=\"toast?.state\">\n <div class=\"icon\" *ngIf=\"toast?.state\" [innerHTML]=\"getStateIcon(toast?.state)\"></div>\n <div class=\"msg\">{{ getMessage(toast) }}</div>\n </div>\n </div>\n</div>\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.toast-container{transition:max-height .3s ease-in}.toast-container>div{position:relative;display:flex;justify-content:center}.toast-wrapper{display:flex;flex-direction:row;align-items:center;gap:16px;padding:14px 12px;background:var(--text-primary, #181F33);box-shadow:0 12px 17px #00000024,0 5px 22px #0000001f,0 7px 8px #0003;border-radius:4px;transition:all .3s ease-in;min-height:44px;transform-origin:top}.toast-wrapper .msg{color:var(--bg-primary, #FFFFFF);max-width:314px;flex:1 1 314px;font-size:14px;line-height:20px;letter-spacing:.2px}@media screen and (max-width: 360px){.toast-wrapper .msg{max-width:90vw;flex:1 1 90vw}}.toast-wrapper .icon{display:flex;justify-content:center;align-items:center}\n"] }]
105
105
  }], () => [{ type: i1.ToastDataService }, { type: i2.DomSanitizer }], null); })();
106
106
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ToastComponent, { className: "ToastComponent" }); })();
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztJQ0U3RCx5QkFBc0Y7Ozs7SUFBL0MsNEdBQXdDOzs7SUFEakYsQUFERiwyQkFBc0QsYUFDQTtJQUNsRCxxRUFBZ0Y7SUFDaEYsOEJBQWlCO0lBQUEsWUFBdUI7SUFFNUMsQUFERSxBQUQwQyxpQkFBTSxFQUMxQyxFQUNGOzs7O0lBTHFDLHNDQUFVO0lBQ3hCLGNBQXdCO0lBQXhCLGtFQUF3QjtJQUM5QixjQUFrQjtJQUFsQiwrREFBa0I7SUFDcEIsZUFBdUI7SUFBdkIsaURBQXVCOztBRHFCOUMsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDUyxJQUFzQixFQUNyQixTQUF1QjtRQUR4QixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQzlCLENBQUM7SUFFSixVQUFVLENBQUMsS0FBWTtRQUNyQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3hELENBQUM7SUFFRCxjQUFjLENBQUMsS0FBWTtRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUNyRCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWtCO1FBQzdCLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdEIsTUFBTSxLQUFLLEdBQStCO1lBQ3hDLE9BQU8sRUFBRTs7Ozs7T0FLUjtZQUNELE9BQU8sRUFBRTs7Ozs7O09BTVI7WUFDRCxLQUFLLEVBQUU7Ozs7OztPQU1OO1NBQ0YsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFZO1FBQ2hDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO0lBQ25DLENBQUM7K0dBN0NVLGNBQWM7b0VBQWQsY0FBYztZQ3pCM0IsOEJBQTZCO1lBQzNCLCtEQUFzRDtZQU14RCxpQkFBTTs7WUFObUIsY0FBa0I7WUFBbEIsNkNBQWtCO3duSkRZN0I7Z0JBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTtvQkFDbkIsVUFBVSxDQUFDLFFBQVEsRUFBRTt3QkFDbkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO3dCQUNuRSxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztxQkFDM0YsQ0FBQztvQkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO3dCQUNuQixPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztxQkFDaEYsQ0FBQztpQkFDSCxDQUFDO2FBQ0g7O2lGQUVVLGNBQWM7Y0FqQjFCLFNBQVM7MkJBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0sY0FDbkM7b0JBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTt3QkFDbkIsVUFBVSxDQUFDLFFBQVEsRUFBRTs0QkFDbkIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDOzRCQUNuRSxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzt5QkFDM0YsQ0FBQzt3QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFOzRCQUNuQixPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzt5QkFDaEYsQ0FBQztxQkFDSCxDQUFDO2lCQUNIOztrRkFFVSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7IFRvYXN0RGF0YVNlcnZpY2UgfSBmcm9tIFwiLi90b2FzdC5kYXRhLnNlcnZpY2VcIjtcbmltcG9ydCB7IFRvYXN0U3RhdGUgfSBmcm9tIFwiLi90b2FzdC5pbnRlcmZhY2VcIjtcblxudHlwZSBUb2FzdCA9IHN0cmluZyB8IHsgdGV4dDogc3RyaW5nOyBzdGF0ZT86IFRvYXN0U3RhdGUgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10ZWFtcy10b2FzdFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RvYXN0LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi90b2FzdC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFwiZmFkZUluT3V0XCIsIFtcbiAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXJcIiwgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IFwiMFwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgtNTAlKVwiLCBoZWlnaHQ6IFwiMFwiIH0pLFxuICAgICAgICBhbmltYXRlKFwiMzAwbXMgZWFzZS1pblwiLCBzdHlsZSh7IG9wYWNpdHk6IFwiMVwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgwKVwiLCBoZWlnaHQ6IFwiKlwiIH0pKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKFwiOmxlYXZlXCIsIFtcbiAgICAgICAgYW5pbWF0ZShcIjMwMG1zIGVhc2UtaW5cIiwgc3R5bGUoeyBvcGFjaXR5OiBcIjBcIiwgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVkoNTAlKVwiIH0pKVxuICAgICAgXSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRhdGE6IFRvYXN0RGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplclxuICApIHt9XG5cbiAgZ2V0TWVzc2FnZSh0b2FzdDogVG9hc3QpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdG9hc3QgPT09IFwic3RyaW5nXCIgPyB0b2FzdCA6IHRvYXN0LnRleHQ7XG4gIH1cblxuICBzaG91bGRTaG93SWNvbih0b2FzdDogVG9hc3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNTdHJpbmdUb2FzdCh0b2FzdCkgJiYgISF0b2FzdC5zdGF0ZTtcbiAgfVxuXG4gIGdldFN0YXRlSWNvbihzdGF0ZT86IFRvYXN0U3RhdGUpOiBTYWZlSHRtbCB7XG4gICAgaWYgKCFzdGF0ZSkgcmV0dXJuIFwiXCI7XG5cbiAgICBjb25zdCBpY29uczogUmVjb3JkPFRvYXN0U3RhdGUsIHN0cmluZz4gPSB7XG4gICAgICBzdWNjZXNzOiBgXG4gICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMTBcIiByPVwiMTBcIiBmaWxsPVwiIzRDQUY1MFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTguNiAxMy40TDUuMiAxMEw0IDExLjJMOC42IDE1LjhMMTYuNiA3LjhMMTUuNCA2LjZMOC42IDEzLjRaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIGAsXG4gICAgICB3YXJuaW5nOiBgXG4gICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgMEwyMCAxNy4zMjA1SDBMMTAgMFpcIiBmaWxsPVwiI0ZGOTgwMFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTkgNkgxMVYxMkg5VjZaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNOSAxM0gxMVYxNUg5VjEzWlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICBgLFxuICAgICAgZXJyb3I6IGBcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxMFwiIHI9XCIxMFwiIGZpbGw9XCIjRDMyRjJGXCIvPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNOSA1SDExVjExSDlWNVpcIiBmaWxsPVwid2hpdGVcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk05IDEzSDExVjE1SDlWMTNaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIGBcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGljb25zW3N0YXRlXSB8fCBcIlwiKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTdHJpbmdUb2FzdCh0b2FzdDogVG9hc3QpOiB0b2FzdCBpcyBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdG9hc3QgPT09IFwic3RyaW5nXCI7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b2FzdC1jb250YWluZXJcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgdG9hc3Qgb2YgZGF0YS5tZXNzYWdlcygpXCIgQGZhZGVJbk91dD5cbiAgICA8ZGl2IGNsYXNzPVwidG9hc3Qtd3JhcHBlclwiIFtuZ0NsYXNzXT1cInRvYXN0Py5zdGF0ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb25cIiAqbmdJZj1cInRvYXN0Py5zdGF0ZVwiIFtpbm5lckhUTUxdPVwiZ2V0U3RhdGVJY29uKHRvYXN0Py5zdGF0ZSlcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtc2dcIj57eyBnZXRNZXNzYWdlKHRvYXN0KSB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQTJCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7SUNFN0QseUJBQXNGOzs7O0lBQS9DLDRHQUF3Qzs7O0lBRGpGLEFBREYsMkJBQXNELGFBQ0E7SUFDbEQscUVBQWdGO0lBQ2hGLDhCQUFpQjtJQUFBLFlBQXVCO0lBRTVDLEFBREUsQUFEMEMsaUJBQU0sRUFDMUMsRUFDRjs7OztJQUxxQyxzQ0FBVTtJQUN4QixjQUF3QjtJQUF4QixrRUFBd0I7SUFDOUIsY0FBa0I7SUFBbEIsK0RBQWtCO0lBQ3BCLGVBQXVCO0lBQXZCLGlEQUF1Qjs7QURvQjlDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1MsSUFBc0IsRUFDckIsU0FBdUI7UUFEeEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUM5QixDQUFDO0lBRUosVUFBVSxDQUFDLEtBQVk7UUFDckIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUN4RCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVk7UUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDckQsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFrQjtRQUM3QixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXRCLE1BQU0sS0FBSyxHQUErQjtZQUN4QyxPQUFPLEVBQUU7Ozs7O09BS1I7WUFDRCxPQUFPLEVBQUU7Ozs7OztPQU1SO1lBQ0QsS0FBSyxFQUFFOzs7Ozs7T0FNTjtTQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBWTtRQUNoQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNuQyxDQUFDOytHQTdDVSxjQUFjO29FQUFkLGNBQWM7WUN4QjNCLDhCQUE2QjtZQUMzQiwrREFBc0Q7WUFNeEQsaUJBQU07O1lBTm1CLGNBQWtCO1lBQWxCLDZDQUFrQjt3bkpEVzdCO2dCQUNWLE9BQU8sQ0FBQyxXQUFXLEVBQUU7b0JBQ25CLFVBQVUsQ0FBQyxRQUFRLEVBQUU7d0JBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQzt3QkFDbkUsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7cUJBQzNGLENBQUM7b0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTt3QkFDbkIsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7cUJBQ2hGLENBQUM7aUJBQ0gsQ0FBQzthQUNIOztpRkFFVSxjQUFjO2NBaEIxQixTQUFTOzJCQUNFLGlCQUFpQixjQUdmO29CQUNWLE9BQU8sQ0FBQyxXQUFXLEVBQUU7d0JBQ25CLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQzs0QkFDbkUsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7eUJBQzNGLENBQUM7d0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTs0QkFDbkIsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7eUJBQ2hGLENBQUM7cUJBQ0gsQ0FBQztpQkFDSDs7a0ZBRVUsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQgeyBUb2FzdERhdGFTZXJ2aWNlIH0gZnJvbSBcIi4vdG9hc3QuZGF0YS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUb2FzdFN0YXRlIH0gZnJvbSBcIi4vdG9hc3QuaW50ZXJmYWNlXCI7XG5cbnR5cGUgVG9hc3QgPSBzdHJpbmcgfCB7IHRleHQ6IHN0cmluZzsgc3RhdGU/OiBUb2FzdFN0YXRlIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtdGVhbXMtdG9hc3RcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90b2FzdC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdG9hc3QuY29tcG9uZW50LnNjc3NcIl0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFwiZmFkZUluT3V0XCIsIFtcbiAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXJcIiwgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IFwiMFwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgtNTAlKVwiLCBoZWlnaHQ6IFwiMFwiIH0pLFxuICAgICAgICBhbmltYXRlKFwiMzAwbXMgZWFzZS1pblwiLCBzdHlsZSh7IG9wYWNpdHk6IFwiMVwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgwKVwiLCBoZWlnaHQ6IFwiKlwiIH0pKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKFwiOmxlYXZlXCIsIFtcbiAgICAgICAgYW5pbWF0ZShcIjMwMG1zIGVhc2UtaW5cIiwgc3R5bGUoeyBvcGFjaXR5OiBcIjBcIiwgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVkoNTAlKVwiIH0pKVxuICAgICAgXSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRhdGE6IFRvYXN0RGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplclxuICApIHt9XG5cbiAgZ2V0TWVzc2FnZSh0b2FzdDogVG9hc3QpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdG9hc3QgPT09IFwic3RyaW5nXCIgPyB0b2FzdCA6IHRvYXN0LnRleHQ7XG4gIH1cblxuICBzaG91bGRTaG93SWNvbih0b2FzdDogVG9hc3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNTdHJpbmdUb2FzdCh0b2FzdCkgJiYgISF0b2FzdC5zdGF0ZTtcbiAgfVxuXG4gIGdldFN0YXRlSWNvbihzdGF0ZT86IFRvYXN0U3RhdGUpOiBTYWZlSHRtbCB7XG4gICAgaWYgKCFzdGF0ZSkgcmV0dXJuIFwiXCI7XG5cbiAgICBjb25zdCBpY29uczogUmVjb3JkPFRvYXN0U3RhdGUsIHN0cmluZz4gPSB7XG4gICAgICBzdWNjZXNzOiBgXG4gICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMTBcIiByPVwiMTBcIiBmaWxsPVwiIzRDQUY1MFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTguNiAxMy40TDUuMiAxMEw0IDExLjJMOC42IDE1LjhMMTYuNiA3LjhMMTUuNCA2LjZMOC42IDEzLjRaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIGAsXG4gICAgICB3YXJuaW5nOiBgXG4gICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgMEwyMCAxNy4zMjA1SDBMMTAgMFpcIiBmaWxsPVwiI0ZGOTgwMFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTkgNkgxMVYxMkg5VjZaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNOSAxM0gxMVYxNUg5VjEzWlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICBgLFxuICAgICAgZXJyb3I6IGBcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxMFwiIHI9XCIxMFwiIGZpbGw9XCIjRDMyRjJGXCIvPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNOSA1SDExVjExSDlWNVpcIiBmaWxsPVwid2hpdGVcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk05IDEzSDExVjE1SDlWMTNaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIGBcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGljb25zW3N0YXRlXSB8fCBcIlwiKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTdHJpbmdUb2FzdCh0b2FzdDogVG9hc3QpOiB0b2FzdCBpcyBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdG9hc3QgPT09IFwic3RyaW5nXCI7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b2FzdC1jb250YWluZXJcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgdG9hc3Qgb2YgZGF0YS5tZXNzYWdlcygpXCIgQGZhZGVJbk91dD5cbiAgICA8ZGl2IGNsYXNzPVwidG9hc3Qtd3JhcHBlclwiIFtuZ0NsYXNzXT1cInRvYXN0Py5zdGF0ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb25cIiAqbmdJZj1cInRvYXN0Py5zdGF0ZVwiIFtpbm5lckhUTUxdPVwiZ2V0U3RhdGVJY29uKHRvYXN0Py5zdGF0ZSlcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtc2dcIj57eyBnZXRNZXNzYWdlKHRvYXN0KSB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, ViewChild, ChangeDetectionStrategy, signal } from "@angular/core";
1
+ import { Component, ViewChild, signal } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  const _c0 = ["container"];
@@ -66,14 +66,14 @@ export class ToolTipComponent {
66
66
  i0.ɵɵtemplate(0, ToolTipComponent_div_0_Template, 7, 8, "div", 2);
67
67
  } if (rf & 2) {
68
68
  i0.ɵɵproperty("ngIf", ctx.toolTipText().length > 0 || ctx.templateRef);
69
- } }, dependencies: [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle], styles: ["[_ngcontent-%COMP%]:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}#tooltip-container[_ngcontent-%COMP%]{position:absolute;z-index:1}#tooltip[_ngcontent-%COMP%]{position:relative;display:block;padding:8px 12px;border-radius:8px;color:var(--bg-primary, #FFFFFF);background:var(--text-primary, #181F33);font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text[_ngcontent-%COMP%]{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow[_ngcontent-%COMP%]{position:absolute;height:12px;width:12px;background:var(--text-primary, #181F33);z-index:1}.arrow-top[_ngcontent-%COMP%]{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom[_ngcontent-%COMP%]{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left[_ngcontent-%COMP%]{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right[_ngcontent-%COMP%]{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}"], changeDetection: 0 }); }
69
+ } }, dependencies: [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle], styles: ["[_ngcontent-%COMP%]:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}#tooltip-container[_ngcontent-%COMP%]{position:absolute;z-index:1}#tooltip[_ngcontent-%COMP%]{position:relative;display:block;padding:8px 12px;border-radius:8px;color:var(--bg-primary, #FFFFFF);background:var(--text-primary, #181F33);font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text[_ngcontent-%COMP%]{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow[_ngcontent-%COMP%]{position:absolute;height:12px;width:12px;background:var(--text-primary, #181F33);z-index:1}.arrow-top[_ngcontent-%COMP%]{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom[_ngcontent-%COMP%]{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left[_ngcontent-%COMP%]{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right[_ngcontent-%COMP%]{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}"] }); }
70
70
  }
71
71
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToolTipComponent, [{
72
72
  type: Component,
73
- args: [{ selector: "mis-tooltip", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"tooltip-container\" *ngIf=\"toolTipText().length > 0 || templateRef\" #container>\n <div id=\"tooltip\">\n <div *ngIf=\"templateRef; else tooltipText\">\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: templateContext}\"></ng-container>\n </div>\n\n <ng-template #tooltipText>\n <div id=\"tooltip-text\" [innerHTML]=\"toolTipText()\" \n [ngStyle]=\"{'text-align' : toolTipTextAlignment() ? toolTipTextAlignment() : '' }\"></div>\n </ng-template>\n\n <span\n id=\"arrow\"\n [ngClass]=\"{\n 'arrow-left': toolTipPosition() === 'left',\n 'arrow-right': toolTipPosition() === 'right',\n 'arrow-top': toolTipPosition() === 'top',\n 'arrow-bottom': toolTipPosition() === 'bottom'\n }\"\n ></span>\n </div>\n</div>\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}#tooltip-container{position:absolute;z-index:1}#tooltip{position:relative;display:block;padding:8px 12px;border-radius:8px;color:var(--bg-primary, #FFFFFF);background:var(--text-primary, #181F33);font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow{position:absolute;height:12px;width:12px;background:var(--text-primary, #181F33);z-index:1}.arrow-top{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}\n"] }]
73
+ args: [{ selector: "mis-tooltip", template: "<div id=\"tooltip-container\" *ngIf=\"toolTipText().length > 0 || templateRef\" #container>\n <div id=\"tooltip\">\n <div *ngIf=\"templateRef; else tooltipText\">\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: templateContext}\"></ng-container>\n </div>\n\n <ng-template #tooltipText>\n <div id=\"tooltip-text\" [innerHTML]=\"toolTipText()\" \n [ngStyle]=\"{'text-align' : toolTipTextAlignment() ? toolTipTextAlignment() : '' }\"></div>\n </ng-template>\n\n <span\n id=\"arrow\"\n [ngClass]=\"{\n 'arrow-left': toolTipPosition() === 'left',\n 'arrow-right': toolTipPosition() === 'right',\n 'arrow-top': toolTipPosition() === 'top',\n 'arrow-bottom': toolTipPosition() === 'bottom'\n }\"\n ></span>\n </div>\n</div>\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}#tooltip-container{position:absolute;z-index:1}#tooltip{position:relative;display:block;padding:8px 12px;border-radius:8px;color:var(--bg-primary, #FFFFFF);background:var(--text-primary, #181F33);font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow{position:absolute;height:12px;width:12px;background:var(--text-primary, #181F33);z-index:1}.arrow-top{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}\n"] }]
74
74
  }], () => [], { container: [{
75
75
  type: ViewChild,
76
76
  args: ["container"]
77
77
  }] }); })();
78
78
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ToolTipComponent, { className: "ToolTipComponent" }); })();
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAtY29udGFpbmVyL3Rvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLWNvbnRhaW5lci90b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUEyQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7SUNHeEosd0JBQW9HOzs7SUFEdEcsMkJBQTJDO0lBQ3pDLCtGQUFxRjtJQUN2RixpQkFBTTs7O0lBRFcsY0FBK0I7SUFBQSxBQUEvQixxREFBK0IsK0VBQXFDOzs7SUFJbkYseUJBQzhGOzs7SUFBekYsQUFEa0IsbUVBQTJCLDJHQUNxQzs7O0lBUDNGLEFBREYsaUNBQXVGLGFBQ25FO0lBS2hCLEFBSkEsdUVBQTJDLDJHQUlqQjtJQUsxQiwwQkFRUTtJQUVaLEFBREUsaUJBQU0sRUFDRjs7OztJQW5CSSxlQUFtQjtJQUFBLEFBQW5CLHlDQUFtQiw0QkFBZ0I7SUFXdkMsZUFLRTtJQUxGLDBNQUtFOztBRFRSLE1BQU0sT0FBTyxnQkFBZ0I7SUFTM0I7UUFSTyxnQkFBVyxHQUEyQixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakQsb0JBQWUsR0FBc0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RFLHlCQUFvQixHQUEyQixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFNbEQsQ0FBQztJQUNoQixRQUFRLEtBQUksQ0FBQztJQUNiLGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhO1lBQUUsT0FBTztRQUMzQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDdEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNyRSxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDdEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO2lIQXRCVSxnQkFBZ0I7b0VBQWhCLGdCQUFnQjs7Ozs7O1lDVDdCLGlFQUF1Rjs7WUFBMUQsc0VBQTZDOzs7aUZEUzdELGdCQUFnQjtjQU41QixTQUFTOzJCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTtvQkFTdkIsU0FBUztrQkFBaEMsU0FBUzttQkFBQyxXQUFXOztrRkFQWCxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJVG9vbHRpcFBvc2l0aW9ucyB9IGZyb20gXCIuLi9tb2RlbHMvdG9vbHRpcC5tb2RlbFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWlzLXRvb2x0aXBcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90b29sdGlwLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi90b29sdGlwLmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUb29sVGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIHRvb2xUaXBUZXh0OiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+ID0gc2lnbmFsKFwiXCIpO1xuICBwdWJsaWMgdG9vbFRpcFBvc2l0aW9uOiBXcml0YWJsZVNpZ25hbDxJVG9vbHRpcFBvc2l0aW9ucz4gPSBzaWduYWwoXCJib3R0b21cIik7XG4gIHB1YmxpYyB0b29sVGlwVGV4dEFsaWdubWVudDogV3JpdGFibGVTaWduYWw8c3RyaW5nPiA9IHNpZ25hbChcIlwiKTtcbiAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT5cbiAgdGVtcGxhdGVDb250ZXh0OiBhbnk7XG5cbiAgQFZpZXdDaGlsZChcImNvbnRhaW5lclwiKSBjb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuICBuZ09uSW5pdCgpIHt9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuY29udGFpbmVyPy5uYXRpdmVFbGVtZW50KSByZXR1cm47XG4gICAgaWYgKHRoaXMudG9vbFRpcFBvc2l0aW9uKCkgPT09IFwidG9wXCIgfHwgdGhpcy50b29sVGlwUG9zaXRpb24oKSA9PT0gXCJib3R0b21cIikge1xuICAgICAgY29uc3QgZWxlV2lkdGggPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gZWxlV2lkdGgud2lkdGggLyAtMiArIFwicHhcIjtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9vbFRpcFBvc2l0aW9uKCkgPT09IFwibGVmdFwiKSB7XG4gICAgICBjb25zdCBlbGVXaWR0aCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAtZWxlV2lkdGgud2lkdGggKyBcInB4XCI7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgaWQ9XCJ0b29sdGlwLWNvbnRhaW5lclwiICpuZ0lmPVwidG9vbFRpcFRleHQoKS5sZW5ndGggPiAwIHx8IHRlbXBsYXRlUmVmXCIgI2NvbnRhaW5lcj5cbiAgPGRpdiBpZD1cInRvb2x0aXBcIj5cbiAgICA8ZGl2ICpuZ0lmPVwidGVtcGxhdGVSZWY7IGVsc2UgdG9vbHRpcFRleHRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZVJlZjsgY29udGV4dDogeyRpbXBsaWNpdDogdGVtcGxhdGVDb250ZXh0fVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVGV4dD5cbiAgICAgIDxkaXYgaWQ9XCJ0b29sdGlwLXRleHRcIiBbaW5uZXJIVE1MXT1cInRvb2xUaXBUZXh0KClcIiBcbiAgICAgICAgICAgW25nU3R5bGVdPVwieyd0ZXh0LWFsaWduJyA6IHRvb2xUaXBUZXh0QWxpZ25tZW50KCkgPyB0b29sVGlwVGV4dEFsaWdubWVudCgpIDogJycgfVwiPjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8c3BhblxuICAgICAgaWQ9XCJhcnJvd1wiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdhcnJvdy1sZWZ0JzogdG9vbFRpcFBvc2l0aW9uKCkgPT09ICdsZWZ0JyxcbiAgICAgICAgJ2Fycm93LXJpZ2h0JzogdG9vbFRpcFBvc2l0aW9uKCkgPT09ICdyaWdodCcsXG4gICAgICAgICdhcnJvdy10b3AnOiB0b29sVGlwUG9zaXRpb24oKSA9PT0gJ3RvcCcsXG4gICAgICAgICdhcnJvdy1ib3R0b20nOiB0b29sVGlwUG9zaXRpb24oKSA9PT0gJ2JvdHRvbSdcbiAgICAgIH1cIlxuICAgID48L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAtY29udGFpbmVyL3Rvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLWNvbnRhaW5lci90b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUEyQyxTQUFTLEVBQTJCLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0lDR3hKLHdCQUFvRzs7O0lBRHRHLDJCQUEyQztJQUN6QywrRkFBcUY7SUFDdkYsaUJBQU07OztJQURXLGNBQStCO0lBQUEsQUFBL0IscURBQStCLCtFQUFxQzs7O0lBSW5GLHlCQUM4Rjs7O0lBQXpGLEFBRGtCLG1FQUEyQiwyR0FDcUM7OztJQVAzRixBQURGLGlDQUF1RixhQUNuRTtJQUtoQixBQUpBLHVFQUEyQywyR0FJakI7SUFLMUIsMEJBUVE7SUFFWixBQURFLGlCQUFNLEVBQ0Y7Ozs7SUFuQkksZUFBbUI7SUFBQSxBQUFuQix5Q0FBbUIsNEJBQWdCO0lBV3ZDLGVBS0U7SUFMRiwwTUFLRTs7QURWUixNQUFNLE9BQU8sZ0JBQWdCO0lBUzNCO1FBUk8sZ0JBQVcsR0FBMkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELG9CQUFlLEdBQXNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RSx5QkFBb0IsR0FBMkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBTWxELENBQUM7SUFDaEIsUUFBUSxLQUFJLENBQUM7SUFDYixlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYTtZQUFFLE9BQU87UUFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDckUsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztpSEF0QlUsZ0JBQWdCO29FQUFoQixnQkFBZ0I7Ozs7OztZQ1I3QixpRUFBdUY7O1lBQTFELHNFQUE2Qzs7O2lGRFE3RCxnQkFBZ0I7Y0FMNUIsU0FBUzsyQkFDRSxhQUFhO29CQVdDLFNBQVM7a0JBQWhDLFNBQVM7bUJBQUMsV0FBVzs7a0ZBUFgsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSVRvb2x0aXBQb3NpdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWxzL3Rvb2x0aXAubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10b29sdGlwXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdG9vbHRpcC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdG9vbHRpcC5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbFRpcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyB0b29sVGlwVGV4dDogV3JpdGFibGVTaWduYWw8c3RyaW5nPiA9IHNpZ25hbChcIlwiKTtcbiAgcHVibGljIHRvb2xUaXBQb3NpdGlvbjogV3JpdGFibGVTaWduYWw8SVRvb2x0aXBQb3NpdGlvbnM+ID0gc2lnbmFsKFwiYm90dG9tXCIpO1xuICBwdWJsaWMgdG9vbFRpcFRleHRBbGlnbm1lbnQ6IFdyaXRhYmxlU2lnbmFsPHN0cmluZz4gPSBzaWduYWwoXCJcIik7XG4gIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+XG4gIHRlbXBsYXRlQ29udGV4dDogYW55O1xuXG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIikgY29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbiAgbmdPbkluaXQoKSB7fVxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnRvb2xUaXBQb3NpdGlvbigpID09PSBcInRvcFwiIHx8IHRoaXMudG9vbFRpcFBvc2l0aW9uKCkgPT09IFwiYm90dG9tXCIpIHtcbiAgICAgIGNvbnN0IGVsZVdpZHRoID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGVsZVdpZHRoLndpZHRoIC8gLTIgKyBcInB4XCI7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnRvb2xUaXBQb3NpdGlvbigpID09PSBcImxlZnRcIikge1xuICAgICAgY29uc3QgZWxlV2lkdGggPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gLWVsZVdpZHRoLndpZHRoICsgXCJweFwiO1xuICAgIH1cbiAgfVxufVxuXG4iLCI8ZGl2IGlkPVwidG9vbHRpcC1jb250YWluZXJcIiAqbmdJZj1cInRvb2xUaXBUZXh0KCkubGVuZ3RoID4gMCB8fCB0ZW1wbGF0ZVJlZlwiICNjb250YWluZXI+XG4gIDxkaXYgaWQ9XCJ0b29sdGlwXCI+XG4gICAgPGRpdiAqbmdJZj1cInRlbXBsYXRlUmVmOyBlbHNlIHRvb2x0aXBUZXh0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVSZWY7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHRlbXBsYXRlQ29udGV4dH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcFRleHQ+XG4gICAgICA8ZGl2IGlkPVwidG9vbHRpcC10ZXh0XCIgW2lubmVySFRNTF09XCJ0b29sVGlwVGV4dCgpXCIgXG4gICAgICAgICAgIFtuZ1N0eWxlXT1cInsndGV4dC1hbGlnbicgOiB0b29sVGlwVGV4dEFsaWdubWVudCgpID8gdG9vbFRpcFRleHRBbGlnbm1lbnQoKSA6ICcnIH1cIj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPHNwYW5cbiAgICAgIGlkPVwiYXJyb3dcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnYXJyb3ctbGVmdCc6IHRvb2xUaXBQb3NpdGlvbigpID09PSAnbGVmdCcsXG4gICAgICAgICdhcnJvdy1yaWdodCc6IHRvb2xUaXBQb3NpdGlvbigpID09PSAncmlnaHQnLFxuICAgICAgICAnYXJyb3ctdG9wJzogdG9vbFRpcFBvc2l0aW9uKCkgPT09ICd0b3AnLFxuICAgICAgICAnYXJyb3ctYm90dG9tJzogdG9vbFRpcFBvc2l0aW9uKCkgPT09ICdib3R0b20nXG4gICAgICB9XCJcbiAgICA+PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, ContentChild, EventEmitter, Output, ViewChild, ChangeDetectionStrategy, input, signal, effect } from "@angular/core";
1
+ import { Component, ContentChild, EventEmitter, Output, ViewChild, input, signal, effect } from "@angular/core";
2
2
  import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
3
3
  import { BehaviorSubject, of } from "rxjs";
4
4
  import { catchError, mergeMap, scan, tap, throttleTime } from "rxjs/operators";
@@ -168,11 +168,11 @@ export class VirtualScrollComponent {
168
168
  i0.ɵɵproperty("ngIf", !ctx.loading() && ctx.error());
169
169
  i0.ɵɵadvance();
170
170
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(3, 3, ctx.data$));
171
- } }, dependencies: [i1.NgIf, i1.NgTemplateOutlet, i2.CdkFixedSizeVirtualScroll, i2.CdkVirtualForOf, i2.CdkVirtualScrollViewport, i3.LoaderComponent, i1.AsyncPipe], styles: ["cdk-virtual-scroll-viewport[_ngcontent-%COMP%]{height:100%}#main-container[_ngcontent-%COMP%]{height:100%;width:100%}.state-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;justify-content:center;align-items:center}#loader-container[_ngcontent-%COMP%]{width:100%;height:56px;display:flex;justify-content:center;align-items:center} #spinner{position:relative!important}"], changeDetection: 0 }); }
171
+ } }, dependencies: [i1.NgIf, i1.NgTemplateOutlet, i2.CdkFixedSizeVirtualScroll, i2.CdkVirtualForOf, i2.CdkVirtualScrollViewport, i3.LoaderComponent, i1.AsyncPipe], styles: ["cdk-virtual-scroll-viewport[_ngcontent-%COMP%]{height:100%}#main-container[_ngcontent-%COMP%]{height:100%;width:100%}.state-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;justify-content:center;align-items:center}#loader-container[_ngcontent-%COMP%]{width:100%;height:56px;display:flex;justify-content:center;align-items:center} #spinner{position:relative!important}"] }); }
172
172
  }
173
173
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VirtualScrollComponent, [{
174
174
  type: Component,
175
- args: [{ selector: "mis-virtual-scroll", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"state-container\" *ngIf=\"loading()\">\n <mis-loader></mis-loader>\n</div>\n<div class=\"state-container\" *ngIf=\"!loading() && error()\">\n <span>Unknown error has occurred.</span>\n</div>\n<ng-container *ngIf=\"data$ | async as data\">\n <cdk-virtual-scroll-viewport\n *ngIf=\"!loading() && !error()\"\n #viewport\n [minBufferPx]=\"config().minBufferPx\"\n [maxBufferPx]=\"config().maxBufferPx\"\n [itemSize]=\"config().rowHeight\"\n (scrolledIndexChange)=\"nextBatch(data.length)\"\n >\n <ng-container *cdkVirtualFor=\"let item of data; let i = index\">\n <ng-container\n [ngTemplateOutlet]=\"customItem\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\"\n ></ng-container>\n </ng-container>\n <div id=\"loader-container\" *ngIf=\"rowsLoading()\">\n <mis-loader></mis-loader>\n </div>\n </cdk-virtual-scroll-viewport>\n</ng-container>", styles: ["cdk-virtual-scroll-viewport{height:100%}#main-container{height:100%;width:100%}.state-container{height:100%;width:100%;display:flex;justify-content:center;align-items:center}#loader-container{width:100%;height:56px;display:flex;justify-content:center;align-items:center}::ng-deep #spinner{position:relative!important}\n"] }]
175
+ args: [{ selector: "mis-virtual-scroll", template: "<div class=\"state-container\" *ngIf=\"loading()\">\n <mis-loader></mis-loader>\n</div>\n<div class=\"state-container\" *ngIf=\"!loading() && error()\">\n <span>Unknown error has occurred.</span>\n</div>\n<ng-container *ngIf=\"data$ | async as data\">\n <cdk-virtual-scroll-viewport\n *ngIf=\"!loading() && !error()\"\n #viewport\n [minBufferPx]=\"config().minBufferPx\"\n [maxBufferPx]=\"config().maxBufferPx\"\n [itemSize]=\"config().rowHeight\"\n (scrolledIndexChange)=\"nextBatch(data.length)\"\n >\n <ng-container *cdkVirtualFor=\"let item of data; let i = index\">\n <ng-container\n [ngTemplateOutlet]=\"customItem\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\"\n ></ng-container>\n </ng-container>\n <div id=\"loader-container\" *ngIf=\"rowsLoading()\">\n <mis-loader></mis-loader>\n </div>\n </cdk-virtual-scroll-viewport>\n</ng-container>", styles: ["cdk-virtual-scroll-viewport{height:100%}#main-container{height:100%;width:100%}.state-container{height:100%;width:100%;display:flex;justify-content:center;align-items:center}#loader-container{width:100%;height:56px;display:flex;justify-content:center;align-items:center}::ng-deep #spinner{position:relative!important}\n"] }]
176
176
  }], () => [{ type: i0.ChangeDetectorRef }], { viewPort: [{
177
177
  type: ViewChild,
178
178
  args: [CdkVirtualScrollViewport]
@@ -183,4 +183,4 @@ export class VirtualScrollComponent {
183
183
  type: Output
184
184
  }] }); })();
185
185
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(VirtualScrollComponent, { className: "VirtualScrollComponent" }); })();
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTRCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuTSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztJQ0ovRSw4QkFBK0M7SUFDM0MsNkJBQXlCO0lBQzdCLGlCQUFNOzs7SUFFRixBQURKLDhCQUEyRCxXQUNqRDtJQUFBLDJDQUEyQjtJQUNyQyxBQURxQyxpQkFBTyxFQUN0Qzs7O0lBVUUsNkJBQWdFO0lBQzVELDJCQUdnQjs7Ozs7O0lBRmhCLGNBQStCO0lBQy9CLEFBREEsb0RBQStCLHNFQUMwQjs7O0lBRzdELDhCQUFpRDtJQUM3Qyw2QkFBeUI7SUFDN0IsaUJBQU07Ozs7SUFoQlYseURBT0M7SUFERyxtVEFBdUIsZ0NBQXNCLEtBQUM7SUFROUMsQUFOQSxzSUFBZ0UsdUdBTWY7SUFHckQsaUJBQThCOzs7O0lBWjFCLEFBREEsQUFEQSx5REFBb0MsNENBQ0EsdUNBQ0w7SUFH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QUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7dUhBckhRLHNCQUFzQjtvRUFBdEIsc0JBQXNCOzs7Ozs7MkJBdUJwQix3QkFBd0I7Ozs7O1lDOUJ2QyxBQUhBLEFBSEEsdUVBQStDLDBEQUdZLDRFQUdmOzs7WUFOZCxvQ0FBZTtZQUdmLGNBQTJCO1lBQTNCLG9EQUEyQjtZQUcxQyxjQUFvQjtZQUFwQixzREFBb0I7OztpRkRPdEIsc0JBQXNCO2NBTmxDLFNBQVM7MkJBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU07a0RBeUJWLFFBQVE7a0JBQTVDLFNBQVM7bUJBQUMsd0JBQXdCO1lBRW5DLFVBQVU7a0JBRFQsWUFBWTttQkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFFMUMsVUFBVTtrQkFBbkIsTUFBTTs7a0ZBMUJFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbnB1dCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3Njcm9sbGluZ1wiO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1lcmdlTWFwLCBzY2FuLCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgSVZpcnR1YWxTY3JvbGxDb25maWcgfSBmcm9tIFwiLi92aXJ0dWFsLXNjcm9sbC5jb25zdGFudHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibWlzLXZpcnR1YWwtc2Nyb2xsXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi92aXJ0dWFsLXNjcm9sbC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi92aXJ0dWFsLXNjcm9sbC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50IHtcblxuICAgIC8vIElucHV0IHNpZ25hbHNcbiAgICBjb25maWcgPSBpbnB1dDxJVmlydHVhbFNjcm9sbENvbmZpZz4oe1xuICAgICAgICBtaW5CdWZmZXJQeDogMjQwMCxcbiAgICAgICAgbWF4QnVmZmVyUHg6IDI0MDAsXG4gICAgICAgIHJvd0hlaWdodDogMTI4LFxuICAgICAgICBwYWdlU2l6ZTogNSxcbiAgICAgICAgaW5maW5pdGVTY3JvbGxEYXRhRnVuY3Rpb246IChvZmZzZXQsIHBhZ2VTaXplKSA9PiBvZihbMSwyLDMsNCw1XSlcbiAgICB9KTtcblxuICAgIC8vIEluZmluaXRlIHNjcm9sbCByZWxhdGVkIHZhcmlhYmxlc1xuICAgIG9mZnNldCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gICAgZW5kT2ZJbmZpbml0ZURhdGE6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgICByb3dzTG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICAgIFxuICAgIC8vIE1haW4gc3RhdGUgbWFuYWdpbmcgdmFyaWFibGVzXG4gICAgbG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICAgIGVycm9yOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG4gICAgXG4gICAgLy8gU2Nyb2xsIGRhdGEgcmVsYXRlZCB2YXJpYWJsZXNcbiAgICBkYXRhJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIFxuICAgIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KSB2aWV3UG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuICAgIEBDb250ZW50Q2hpbGQoXCJ2aXJ0dWFsU2Nyb2xsSXRlbVwiLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBjdXN0b21JdGVtOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgICBAT3V0cHV0KCkgaW50aWFsaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgdmlydHVhbFNjcm9sbEFwaTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50IHdpdGggc2lnbmFsc1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zd2l0Y2hPbkluZmluaXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxBcGkgPSB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlTG9hZGVyOiAoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KCF0aGlzLmxvYWRpbmcoKSksXG4gICAgICAgICAgICAgICAgdG9nZ2xlRXJyb3I6ICgpID0+IHRoaXMuZXJyb3Iuc2V0KCF0aGlzLmVycm9yKCkpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE9uSW5maW5pdGVTY3JvbGw6IHRoaXMuc3dpdGNoT25JbmZpbml0ZVNjcm9sbCxcbiAgICAgICAgICAgICAgICBzd2l0Y2hPZmZJbmZpbml0ZVNjcm9sbDogdGhpcy5zd2l0Y2hPZmZJbmZpbml0ZVNjcm9sbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIEtlZXAgdGhpcyBvbmUgLSBuZWVkZWQgZm9yIGV4dGVybmFsIEFQSSBlbWlzc2lvblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmludGlhbGl6ZWQuZW1pdCh0aGlzLnZpcnR1YWxTY3JvbGxBcGkpO1xuICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHN3aXRjaE9mZkluZmluaXRlU2Nyb2xsID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmVycm9yLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGF0YSQgPSB0aGlzLmNvbmZpZygpLmRhdGEkLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIC8vIFJlbW92ZWQgZGV0ZWN0Q2hhbmdlcygpIC0gc2lnbmFscyBoYW5kbGUgdGhpcyBhdXRvbWF0aWNhbGx5XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6IFVua25vd24gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgY2FsZW5kYXIgZGF0YVwiLCBlcnIpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHN3aXRjaE9uSW5maW5pdGVTY3JvbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5lbmRPZkluZmluaXRlRGF0YS5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLm9mZnNldC5uZXh0KDApO1xuICAgICAgICB0aGlzLnNldHVwSW5maW5pdGVTY3JvbGwoKTtcbiAgICB9O1xuXG4gICAgc2V0dXBJbmZpbml0ZVNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmF0Y2hNYXAgPSB0aGlzLm9mZnNldC5waXBlKFxuICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDUwMCksXG4gICAgICAgICAgICBtZXJnZU1hcChvZmZzZXQgPT4gdGhpcy5nZXRCYXRjaChvZmZzZXQpKSxcbiAgICAgICAgICAgIHNjYW4oKGFjYzogQXJyYXk8YW55PiwgYmF0Y2g6IEFycmF5PGFueT4pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmFjYywgLi4uYmF0Y2hdO1xuICAgICAgICAgICAgfSwgW10pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YSQgPSBiYXRjaE1hcC5waXBlKFxuICAgICAgICAgICAgdGFwKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucm93c0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmVkIHNldFRpbWVvdXQgYW5kIGRldGVjdENoYW5nZXMoKSAtIHNpZ25hbHMgaGFuZGxlIHRoaXMgYXV0b21hdGljYWxseVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZXh0QmF0Y2gob2Zmc2V0KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVuZE9mSW5maW5pdGVEYXRhKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnZpZXdQb3J0LmdldFJlbmRlcmVkUmFuZ2UoKS5lbmQ7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gdGhpcy52aWV3UG9ydC5nZXREYXRhTGVuZ3RoKCk7XG4gICAgICAgIG9mZnNldCA9IE1hdGguY2VpbChvZmZzZXQgLyB0aGlzLmNvbmZpZygpLnBhZ2VTaXplKTtcbiAgICAgICAgaWYgKGVuZCA9PT0gdG90YWwgJiYgIXRoaXMucm93c0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQubmV4dChvZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QmF0Y2gob2Zmc2V0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgdGhpcy5yb3dzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIGlmIChvZmZzZXQgPT0gbnVsbCkgb2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnKClcbiAgICAgICAgICAgIC5pbmZpbml0ZVNjcm9sbERhdGFGdW5jdGlvbihvZmZzZXQsIHRoaXMuY29uZmlnKCkucGFnZVNpemUpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKGFycjogQXJyYXk8YW55PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhcnIubGVuZ3RoIDwgdGhpcy5jb25maWcoKS5wYWdlU2l6ZSA/IHRoaXMuZW5kT2ZJbmZpbml0ZURhdGEuc2V0KHRydWUpIDogbnVsbDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvcjogVW5rbm93biBlcnJvciBvY2N1cnJlZCB3aGlsZSBmZXRjaGluZyBjYWxlbmRhciBkYXRhXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93c0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgfVxufSIsIjxkaXYgY2xhc3M9XCJzdGF0ZS1jb250YWluZXJcIiAqbmdJZj1cImxvYWRpbmcoKVwiPlxuICAgIDxtaXMtbG9hZGVyPjwvbWlzLWxvYWRlcj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInN0YXRlLWNvbnRhaW5lclwiICpuZ0lmPVwiIWxvYWRpbmcoKSAmJiBlcnJvcigpXCI+XG4gICAgPHNwYW4+VW5rbm93biBlcnJvciBoYXMgb2NjdXJyZWQuPC9zcGFuPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YSQgfCBhc3luYyBhcyBkYXRhXCI+XG4gICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICAgICAqbmdJZj1cIiFsb2FkaW5nKCkgJiYgIWVycm9yKClcIlxuICAgICAgICAjdmlld3BvcnRcbiAgICAgICAgW21pbkJ1ZmZlclB4XT1cImNvbmZpZygpLm1pbkJ1ZmZlclB4XCJcbiAgICAgICAgW21heEJ1ZmZlclB4XT1cImNvbmZpZygpLm1heEJ1ZmZlclB4XCJcbiAgICAgICAgW2l0ZW1TaXplXT1cImNvbmZpZygpLnJvd0hlaWdodFwiXG4gICAgICAgIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cIm5leHRCYXRjaChkYXRhLmxlbmd0aClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGRhdGE7ICBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21JdGVtXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSwgaW5kZXg6IGkgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGlkPVwibG9hZGVyLWNvbnRhaW5lclwiICpuZ0lmPVwicm93c0xvYWRpbmcoKVwiPlxuICAgICAgICAgICAgPG1pcy1sb2FkZXI+PC9taXMtbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjwvbmctY29udGFpbmVyPiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUEyQixLQUFLLEVBQUUsTUFBTSxFQUE0QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbk0sT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7SUNKL0UsOEJBQStDO0lBQzNDLDZCQUF5QjtJQUM3QixpQkFBTTs7O0lBRUYsQUFESiw4QkFBMkQsV0FDakQ7SUFBQSwyQ0FBMkI7SUFDckMsQUFEcUMsaUJBQU8sRUFDdEM7OztJQVVFLDZCQUFnRTtJQUM1RCwyQkFHZ0I7Ozs7OztJQUZoQixjQUErQjtJQUMvQixBQURBLG9EQUErQixzRUFDMEI7OztJQUc3RCw4QkFBaUQ7SUFDN0MsNkJBQXlCO0lBQzdCLGlCQUFNOzs7O0lBaEJWLHlEQU9DO0lBREcsbVRBQXVCLGdDQUFzQixLQUFDO0lBUTlDLEFBTkEsc0lBQWdFLHVHQU1mO0lBR3JELGlCQUE4Qjs7OztJQVoxQixBQURBLEFBREEseURBQW9DLDRDQUNBLHVDQUNMO0lBR1EsZUFBVTtJQUFW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QUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO3VIQXJIUSxzQkFBc0I7b0VBQXRCLHNCQUFzQjs7Ozs7OzJCQXVCcEIsd0JBQXdCOzs7OztZQzdCdkMsQUFIQSxBQUhBLHVFQUErQywwREFHWSw0RUFHZjs7O1lBTmQsb0NBQWU7WUFHZixjQUEyQjtZQUEzQixvREFBMkI7WUFHMUMsY0FBb0I7WUFBcEIsc0RBQW9COzs7aUZETXRCLHNCQUFzQjtjQUxsQyxTQUFTOzJCQUNJLG9CQUFvQjtrREEyQk8sUUFBUTtrQkFBNUMsU0FBUzttQkFBQyx3QkFBd0I7WUFFbkMsVUFBVTtrQkFEVCxZQUFZO21CQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUUxQyxVQUFVO2tCQUFuQixNQUFNOztrRkExQkUsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIGlucHV0LCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gXCJAYW5ndWxhci9jZGsvc2Nyb2xsaW5nXCI7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWVyZ2VNYXAsIHNjYW4sIHRhcCwgdGhyb3R0bGVUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBJVmlydHVhbFNjcm9sbENvbmZpZyB9IGZyb20gXCIuL3ZpcnR1YWwtc2Nyb2xsLmNvbnN0YW50c1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJtaXMtdmlydHVhbC1zY3JvbGxcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3ZpcnR1YWwtc2Nyb2xsLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3ZpcnR1YWwtc2Nyb2xsLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50IHtcblxuICAgIC8vIElucHV0IHNpZ25hbHNcbiAgICBjb25maWcgPSBpbnB1dDxJVmlydHVhbFNjcm9sbENvbmZpZz4oe1xuICAgICAgICBtaW5CdWZmZXJQeDogMjQwMCxcbiAgICAgICAgbWF4QnVmZmVyUHg6IDI0MDAsXG4gICAgICAgIHJvd0hlaWdodDogMTI4LFxuICAgICAgICBwYWdlU2l6ZTogNSxcbiAgICAgICAgaW5maW5pdGVTY3JvbGxEYXRhRnVuY3Rpb246IChvZmZzZXQsIHBhZ2VTaXplKSA9PiBvZihbMSwyLDMsNCw1XSlcbiAgICB9KTtcblxuICAgIC8vIEluZmluaXRlIHNjcm9sbCByZWxhdGVkIHZhcmlhYmxlc1xuICAgIG9mZnNldCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gICAgZW5kT2ZJbmZpbml0ZURhdGE6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgICByb3dzTG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICAgIFxuICAgIC8vIE1haW4gc3RhdGUgbWFuYWdpbmcgdmFyaWFibGVzXG4gICAgbG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICAgIGVycm9yOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG4gICAgXG4gICAgLy8gU2Nyb2xsIGRhdGEgcmVsYXRlZCB2YXJpYWJsZXNcbiAgICBkYXRhJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIFxuICAgIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KSB2aWV3UG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuICAgIEBDb250ZW50Q2hpbGQoXCJ2aXJ0dWFsU2Nyb2xsSXRlbVwiLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBjdXN0b21JdGVtOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgICBAT3V0cHV0KCkgaW50aWFsaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgdmlydHVhbFNjcm9sbEFwaTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50IHdpdGggc2lnbmFsc1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zd2l0Y2hPbkluZmluaXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxBcGkgPSB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlTG9hZGVyOiAoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KCF0aGlzLmxvYWRpbmcoKSksXG4gICAgICAgICAgICAgICAgdG9nZ2xlRXJyb3I6ICgpID0+IHRoaXMuZXJyb3Iuc2V0KCF0aGlzLmVycm9yKCkpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE9uSW5maW5pdGVTY3JvbGw6IHRoaXMuc3dpdGNoT25JbmZpbml0ZVNjcm9sbCxcbiAgICAgICAgICAgICAgICBzd2l0Y2hPZmZJbmZpbml0ZVNjcm9sbDogdGhpcy5zd2l0Y2hPZmZJbmZpbml0ZVNjcm9sbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIEtlZXAgdGhpcyBvbmUgLSBuZWVkZWQgZm9yIGV4dGVybmFsIEFQSSBlbWlzc2lvblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmludGlhbGl6ZWQuZW1pdCh0aGlzLnZpcnR1YWxTY3JvbGxBcGkpO1xuICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHN3aXRjaE9mZkluZmluaXRlU2Nyb2xsID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmVycm9yLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGF0YSQgPSB0aGlzLmNvbmZpZygpLmRhdGEkLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIC8vIFJlbW92ZWQgZGV0ZWN0Q2hhbmdlcygpIC0gc2lnbmFscyBoYW5kbGUgdGhpcyBhdXRvbWF0aWNhbGx5XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6IFVua25vd24gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgY2FsZW5kYXIgZGF0YVwiLCBlcnIpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHN3aXRjaE9uSW5maW5pdGVTY3JvbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5lbmRPZkluZmluaXRlRGF0YS5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLm9mZnNldC5uZXh0KDApO1xuICAgICAgICB0aGlzLnNldHVwSW5maW5pdGVTY3JvbGwoKTtcbiAgICB9O1xuXG4gICAgc2V0dXBJbmZpbml0ZVNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmF0Y2hNYXAgPSB0aGlzLm9mZnNldC5waXBlKFxuICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDUwMCksXG4gICAgICAgICAgICBtZXJnZU1hcChvZmZzZXQgPT4gdGhpcy5nZXRCYXRjaChvZmZzZXQpKSxcbiAgICAgICAgICAgIHNjYW4oKGFjYzogQXJyYXk8YW55PiwgYmF0Y2g6IEFycmF5PGFueT4pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmFjYywgLi4uYmF0Y2hdO1xuICAgICAgICAgICAgfSwgW10pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YSQgPSBiYXRjaE1hcC5waXBlKFxuICAgICAgICAgICAgdGFwKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucm93c0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmVkIHNldFRpbWVvdXQgYW5kIGRldGVjdENoYW5nZXMoKSAtIHNpZ25hbHMgaGFuZGxlIHRoaXMgYXV0b21hdGljYWxseVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZXh0QmF0Y2gob2Zmc2V0KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVuZE9mSW5maW5pdGVEYXRhKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnZpZXdQb3J0LmdldFJlbmRlcmVkUmFuZ2UoKS5lbmQ7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gdGhpcy52aWV3UG9ydC5nZXREYXRhTGVuZ3RoKCk7XG4gICAgICAgIG9mZnNldCA9IE1hdGguY2VpbChvZmZzZXQgLyB0aGlzLmNvbmZpZygpLnBhZ2VTaXplKTtcbiAgICAgICAgaWYgKGVuZCA9PT0gdG90YWwgJiYgIXRoaXMucm93c0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQubmV4dChvZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QmF0Y2gob2Zmc2V0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgdGhpcy5yb3dzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIGlmIChvZmZzZXQgPT0gbnVsbCkgb2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnKClcbiAgICAgICAgICAgIC5pbmZpbml0ZVNjcm9sbERhdGFGdW5jdGlvbihvZmZzZXQsIHRoaXMuY29uZmlnKCkucGFnZVNpemUpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKGFycjogQXJyYXk8YW55PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhcnIubGVuZ3RoIDwgdGhpcy5jb25maWcoKS5wYWdlU2l6ZSA/IHRoaXMuZW5kT2ZJbmZpbml0ZURhdGEuc2V0KHRydWUpIDogbnVsbDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvcjogVW5rbm93biBlcnJvciBvY2N1cnJlZCB3aGlsZSBmZXRjaGluZyBjYWxlbmRhciBkYXRhXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93c0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgfVxufSIsIjxkaXYgY2xhc3M9XCJzdGF0ZS1jb250YWluZXJcIiAqbmdJZj1cImxvYWRpbmcoKVwiPlxuICAgIDxtaXMtbG9hZGVyPjwvbWlzLWxvYWRlcj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInN0YXRlLWNvbnRhaW5lclwiICpuZ0lmPVwiIWxvYWRpbmcoKSAmJiBlcnJvcigpXCI+XG4gICAgPHNwYW4+VW5rbm93biBlcnJvciBoYXMgb2NjdXJyZWQuPC9zcGFuPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YSQgfCBhc3luYyBhcyBkYXRhXCI+XG4gICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICAgICAqbmdJZj1cIiFsb2FkaW5nKCkgJiYgIWVycm9yKClcIlxuICAgICAgICAjdmlld3BvcnRcbiAgICAgICAgW21pbkJ1ZmZlclB4XT1cImNvbmZpZygpLm1pbkJ1ZmZlclB4XCJcbiAgICAgICAgW21heEJ1ZmZlclB4XT1cImNvbmZpZygpLm1heEJ1ZmZlclB4XCJcbiAgICAgICAgW2l0ZW1TaXplXT1cImNvbmZpZygpLnJvd0hlaWdodFwiXG4gICAgICAgIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cIm5leHRCYXRjaChkYXRhLmxlbmd0aClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGRhdGE7ICBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21JdGVtXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSwgaW5kZXg6IGkgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGlkPVwibG9hZGVyLWNvbnRhaW5lclwiICpuZ0lmPVwicm93c0xvYWRpbmcoKVwiPlxuICAgICAgICAgICAgPG1pcy1sb2FkZXI+PC9taXMtbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjwvbmctY29udGFpbmVyPiJdfQ==