@fundamental-ngx/core 0.47.0-rc.2 → 0.47.0-rc.21

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 (128) hide show
  1. package/breadcrumb/breadcrumb.component.d.ts +1 -1
  2. package/carousel/carousel-item/carousel-item.component.d.ts +4 -4
  3. package/carousel/carousel-item.directive.d.ts +4 -4
  4. package/checkbox/checkbox/checkbox.component.d.ts +10 -10
  5. package/esm2022/breadcrumb/breadcrumb.component.mjs +2 -2
  6. package/esm2022/calendar/calendar-header/calendar-header.component.mjs +4 -5
  7. package/esm2022/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +4 -5
  8. package/esm2022/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +4 -5
  9. package/esm2022/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +4 -5
  10. package/esm2022/carousel/carousel-item/carousel-item.component.mjs +1 -1
  11. package/esm2022/carousel/carousel-item.directive.mjs +1 -1
  12. package/esm2022/checkbox/checkbox/checkbox.component.mjs +1 -1
  13. package/esm2022/combobox/combobox.component.mjs +2 -2
  14. package/esm2022/date-picker/date-picker.component.mjs +4 -5
  15. package/esm2022/datetime-picker/datetime-picker.component.mjs +8 -10
  16. package/esm2022/form/form-label/form-label.component.mjs +5 -6
  17. package/esm2022/input-group/input-group.component.mjs +7 -5
  18. package/esm2022/menu/menu-mobile/menu-mobile.component.mjs +4 -5
  19. package/esm2022/message-box/directives/message-box-template.directive.mjs +3 -3
  20. package/esm2022/message-strip/message-strip.component.mjs +8 -10
  21. package/esm2022/multi-combobox/base-multi-combobox.class.mjs +4 -4
  22. package/esm2022/multi-combobox/helpers.mjs +1 -1
  23. package/esm2022/multi-combobox/multi-announcer/multi-announcer.directive.mjs +11 -5
  24. package/esm2022/multi-combobox/multi-combobox.component.mjs +3 -3
  25. package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +4 -5
  26. package/esm2022/multi-input/multi-input.component.mjs +3 -3
  27. package/esm2022/notification/notification-utils/notification-config.mjs +1 -1
  28. package/esm2022/notification/notification-utils/notification-ref.mjs +1 -1
  29. package/esm2022/overflow-layout/overflow-layout.component.mjs +18 -5
  30. package/esm2022/overflow-layout/overflow-layout.service.mjs +3 -3
  31. package/esm2022/pagination/pagination.component.mjs +1 -1
  32. package/esm2022/popover/popover-mobile/popover-mobile.module.mjs +6 -6
  33. package/esm2022/radio/radio-button/radio-button.component.mjs +2 -2
  34. package/esm2022/select/select-mobile/select-mobile.module.mjs +5 -5
  35. package/esm2022/select/select.component.mjs +3 -3
  36. package/esm2022/select/select.interface.mjs +1 -1
  37. package/esm2022/shellbar/product-menu/product-menu.component.mjs +8 -11
  38. package/esm2022/shellbar/shellbar-action/shellbar-action.component.mjs +6 -7
  39. package/esm2022/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +6 -7
  40. package/esm2022/shellbar/user-menu/shellbar-user-menu.component.mjs +5 -6
  41. package/esm2022/splitter/splitter-pane-container/splitter-pane-container.component.mjs +1 -1
  42. package/esm2022/switch/switch.component.mjs +1 -1
  43. package/esm2022/tabs/tab-list.component.mjs +2 -2
  44. package/esm2022/time/time-column/time-column.component.mjs +1 -1
  45. package/esm2022/time/time.component.mjs +1 -1
  46. package/esm2022/time-picker/time-picker.component.mjs +2 -2
  47. package/esm2022/token/tokenizer.component.mjs +6 -7
  48. package/esm2022/toolbar/toolbar.component.mjs +10 -12
  49. package/esm2022/tree/components/tree-item/tree-item.component.mjs +5 -6
  50. package/esm2022/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +4 -6
  51. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +1 -1
  52. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-core-calendar.mjs +9 -10
  54. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  56. package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
  57. package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
  58. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  59. package/fesm2022/fundamental-ngx-core-date-picker.mjs +3 -4
  60. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  61. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +8 -10
  62. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  63. package/fesm2022/fundamental-ngx-core-form.mjs +4 -5
  64. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  65. package/fesm2022/fundamental-ngx-core-input-group.mjs +6 -4
  66. package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
  67. package/fesm2022/fundamental-ngx-core-menu.mjs +3 -4
  68. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  69. package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
  70. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  71. package/fesm2022/fundamental-ngx-core-message-strip.mjs +7 -9
  72. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  73. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +12 -7
  74. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  75. package/fesm2022/fundamental-ngx-core-multi-input.mjs +6 -7
  76. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  77. package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
  78. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +18 -5
  79. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  80. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  81. package/fesm2022/fundamental-ngx-core-popover.mjs +4 -4
  82. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  83. package/fesm2022/fundamental-ngx-core-radio.mjs +1 -1
  84. package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
  85. package/fesm2022/fundamental-ngx-core-select.mjs +6 -6
  86. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  87. package/fesm2022/fundamental-ngx-core-shellbar.mjs +12 -14
  88. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  89. package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
  90. package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
  91. package/fesm2022/fundamental-ngx-core-tabs.mjs +1 -1
  92. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  93. package/fesm2022/fundamental-ngx-core-time-picker.mjs +1 -1
  94. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  95. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  96. package/fesm2022/fundamental-ngx-core-token.mjs +5 -6
  97. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  98. package/fesm2022/fundamental-ngx-core-toolbar.mjs +7 -8
  99. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  100. package/fesm2022/fundamental-ngx-core-tree.mjs +4 -5
  101. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  102. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +6 -7
  103. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  104. package/fundamental-ngx-core-v0.47.0-rc.21.tgz +0 -0
  105. package/input-group/input-group.component.d.ts +10 -4
  106. package/message-box/directives/message-box-template.directive.d.ts +2 -2
  107. package/message-strip/message-strip.component.d.ts +2 -2
  108. package/multi-combobox/base-multi-combobox.class.d.ts +7 -7
  109. package/multi-combobox/helpers.d.ts +3 -3
  110. package/multi-combobox/multi-announcer/multi-announcer.directive.d.ts +4 -2
  111. package/notification/notification-utils/notification-config.d.ts +2 -2
  112. package/notification/notification-utils/notification-ref.d.ts +5 -5
  113. package/overflow-layout/overflow-layout.component.d.ts +9 -1
  114. package/overflow-layout/overflow-layout.service.d.ts +1 -1
  115. package/package.json +3 -3
  116. package/pagination/pagination.component.d.ts +2 -2
  117. package/popover/popover-mobile/popover-mobile.module.d.ts +1 -1
  118. package/radio/radio-button/radio-button.component.d.ts +12 -12
  119. package/schematics/add-dependencies/index.js +4 -4
  120. package/select/select-mobile/select-mobile.module.d.ts +1 -1
  121. package/select/select.interface.d.ts +8 -8
  122. package/shellbar/product-menu/product-menu.component.d.ts +3 -3
  123. package/splitter/splitter-pane-container/splitter-pane-container.component.d.ts +1 -1
  124. package/switch/switch.component.d.ts +1 -1
  125. package/time/time-column/time-column.component.d.ts +3 -3
  126. package/time/time.component.d.ts +1 -1
  127. package/toolbar/toolbar.component.d.ts +2 -2
  128. package/fundamental-ngx-core-v0.47.0-rc.2.tgz +0 -0
@@ -3,14 +3,13 @@ import { Subject } from 'rxjs';
3
3
  import { takeUntil } from 'rxjs/operators';
4
4
  import { DATE_TIME_FORMATS, DatetimeAdapter } from '@fundamental-ngx/core/datetime';
5
5
  import { NgFor } from '@angular/common';
6
- import { ButtonModule } from '@fundamental-ngx/core/button';
6
+ import { ButtonComponent } from '@fundamental-ngx/core/button';
7
7
  import { FdTranslatePipe } from '@fundamental-ngx/i18n';
8
8
  import { CalendarService } from '../../calendar.service';
9
9
  import { DefaultCalendarActiveCellStrategy } from '../../models/common';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "../../calendar.service";
12
12
  import * as i2 from "@fundamental-ngx/core/datetime";
13
- import * as i3 from "@fundamental-ngx/core/button";
14
13
  /** Component representing the YearView of the Calendar Component. */
15
14
  export class CalendarYearViewComponent {
16
15
  /** View ID */
@@ -251,13 +250,13 @@ export class CalendarYearViewComponent {
251
250
  this._focusElementBySelector(`#${this._getId(index)}`);
252
251
  }
253
252
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CalendarYearViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.CalendarService }, { token: i2.DatetimeAdapter }, { token: DATE_TIME_FORMATS }], target: i0.ɵɵFactoryTarget.Component }); }
254
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: CalendarYearViewComponent, isStandalone: true, selector: "fd-calendar-year-view", inputs: { id: "id", focusEscapeFunction: "focusEscapeFunction", yearSelected: "yearSelected", yearViewGrid: "yearViewGrid" }, outputs: { yearClicked: "yearClicked" }, host: { properties: { "attr.id": "viewId" } }, usesOnChanges: true, ngImport: i0, template: "<table\n class=\"fd-calendar__content fd-calendar__content--years\"\n role=\"grid\"\n [attr.aria-roledescription]=\"'coreCalendar.calendarYearsViewDescription' | fdTranslate\"\n>\n <tbody class=\"fd-calendar__group\" role=\"rowgroup\">\n <tr class=\"fd-calendar__row\" role=\"row\" *ngFor=\"let colYears of _calendarYearListGrid; let rowIndex = index\">\n <td\n class=\"fd-calendar__my-item\"\n role=\"gridcell\"\n *ngFor=\"let yearCell of colYears; let colIndex = index\"\n [class.fd-calendar__my-item--current]=\"yearCell.current\"\n [class.is-active]=\"yearCell.selected\"\n [attr.id]=\"yearCell.id\"\n [attr.tabindex]=\"yearCell.tabIndex\"\n [attr.aria-selected]=\"yearCell.selected\"\n [attr.aria-disabled]=\"yearCell.disabled\"\n [attr.data-fd-calendar-year]=\"yearCell.year\"\n (keydown)=\"_onKeydownYearHandler($event, yearCell.index)\"\n (click)=\"selectYear(yearCell, $event)\"\n >\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-calendar__item-button\"\n [class.is-active]=\"yearCell.current\"\n tabindex=\"-1\"\n >\n <span\n class=\"fd-calendar__text\"\n [attr.aria-labelledby]=\"\n yearCell.id +\n '-aria-label ' +\n (yearCell.current ? _todayLabelId + ' ' : '') +\n (yearCell.selected ? _selectedDateLabelId : '')\n \"\n >\n {{ yearCell.label }}\n </span>\n </button>\n\n <span hidden aria-hidden=\"true\" [attr.id]=\"yearCell.id + '-aria-label'\">\n {{ yearCell.ariaLabel }}\n </span>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- Hidden elements for aria purposes -->\n<div hidden aria-hidden=\"true\">\n <div [attr.id]=\"_todayLabelId\">{{ 'coreCalendar.todayLabel' | fdTranslate }}</div>\n <div [attr.id]=\"_selectedDateLabelId\">{{ 'coreCalendar.dateSelectedLabel' | fdTranslate }}</div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: CalendarYearViewComponent, isStandalone: true, selector: "fd-calendar-year-view", inputs: { id: "id", focusEscapeFunction: "focusEscapeFunction", yearSelected: "yearSelected", yearViewGrid: "yearViewGrid" }, outputs: { yearClicked: "yearClicked" }, host: { properties: { "attr.id": "viewId" } }, usesOnChanges: true, ngImport: i0, template: "<table\n class=\"fd-calendar__content fd-calendar__content--years\"\n role=\"grid\"\n [attr.aria-roledescription]=\"'coreCalendar.calendarYearsViewDescription' | fdTranslate\"\n>\n <tbody class=\"fd-calendar__group\" role=\"rowgroup\">\n <tr class=\"fd-calendar__row\" role=\"row\" *ngFor=\"let colYears of _calendarYearListGrid; let rowIndex = index\">\n <td\n class=\"fd-calendar__my-item\"\n role=\"gridcell\"\n *ngFor=\"let yearCell of colYears; let colIndex = index\"\n [class.fd-calendar__my-item--current]=\"yearCell.current\"\n [class.is-active]=\"yearCell.selected\"\n [attr.id]=\"yearCell.id\"\n [attr.tabindex]=\"yearCell.tabIndex\"\n [attr.aria-selected]=\"yearCell.selected\"\n [attr.aria-disabled]=\"yearCell.disabled\"\n [attr.data-fd-calendar-year]=\"yearCell.year\"\n (keydown)=\"_onKeydownYearHandler($event, yearCell.index)\"\n (click)=\"selectYear(yearCell, $event)\"\n >\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-calendar__item-button\"\n [class.is-active]=\"yearCell.current\"\n tabindex=\"-1\"\n >\n <span\n class=\"fd-calendar__text\"\n [attr.aria-labelledby]=\"\n yearCell.id +\n '-aria-label ' +\n (yearCell.current ? _todayLabelId + ' ' : '') +\n (yearCell.selected ? _selectedDateLabelId : '')\n \"\n >\n {{ yearCell.label }}\n </span>\n </button>\n\n <span hidden aria-hidden=\"true\" [attr.id]=\"yearCell.id + '-aria-label'\">\n {{ yearCell.ariaLabel }}\n </span>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- Hidden elements for aria purposes -->\n<div hidden aria-hidden=\"true\">\n <div [attr.id]=\"_todayLabelId\">{{ 'coreCalendar.todayLabel' | fdTranslate }}</div>\n <div [attr.id]=\"_selectedDateLabelId\">{{ 'coreCalendar.dateSelectedLabel' | fdTranslate }}</div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
255
254
  }
256
255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CalendarYearViewComponent, decorators: [{
257
256
  type: Component,
258
257
  args: [{ selector: 'fd-calendar-year-view', encapsulation: ViewEncapsulation.None, host: {
259
258
  '[attr.id]': 'viewId'
260
- }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, ButtonModule, FdTranslatePipe], template: "<table\n class=\"fd-calendar__content fd-calendar__content--years\"\n role=\"grid\"\n [attr.aria-roledescription]=\"'coreCalendar.calendarYearsViewDescription' | fdTranslate\"\n>\n <tbody class=\"fd-calendar__group\" role=\"rowgroup\">\n <tr class=\"fd-calendar__row\" role=\"row\" *ngFor=\"let colYears of _calendarYearListGrid; let rowIndex = index\">\n <td\n class=\"fd-calendar__my-item\"\n role=\"gridcell\"\n *ngFor=\"let yearCell of colYears; let colIndex = index\"\n [class.fd-calendar__my-item--current]=\"yearCell.current\"\n [class.is-active]=\"yearCell.selected\"\n [attr.id]=\"yearCell.id\"\n [attr.tabindex]=\"yearCell.tabIndex\"\n [attr.aria-selected]=\"yearCell.selected\"\n [attr.aria-disabled]=\"yearCell.disabled\"\n [attr.data-fd-calendar-year]=\"yearCell.year\"\n (keydown)=\"_onKeydownYearHandler($event, yearCell.index)\"\n (click)=\"selectYear(yearCell, $event)\"\n >\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-calendar__item-button\"\n [class.is-active]=\"yearCell.current\"\n tabindex=\"-1\"\n >\n <span\n class=\"fd-calendar__text\"\n [attr.aria-labelledby]=\"\n yearCell.id +\n '-aria-label ' +\n (yearCell.current ? _todayLabelId + ' ' : '') +\n (yearCell.selected ? _selectedDateLabelId : '')\n \"\n >\n {{ yearCell.label }}\n </span>\n </button>\n\n <span hidden aria-hidden=\"true\" [attr.id]=\"yearCell.id + '-aria-label'\">\n {{ yearCell.ariaLabel }}\n </span>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- Hidden elements for aria purposes -->\n<div hidden aria-hidden=\"true\">\n <div [attr.id]=\"_todayLabelId\">{{ 'coreCalendar.todayLabel' | fdTranslate }}</div>\n <div [attr.id]=\"_selectedDateLabelId\">{{ 'coreCalendar.dateSelectedLabel' | fdTranslate }}</div>\n</div>\n" }]
259
+ }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, ButtonComponent, FdTranslatePipe], template: "<table\n class=\"fd-calendar__content fd-calendar__content--years\"\n role=\"grid\"\n [attr.aria-roledescription]=\"'coreCalendar.calendarYearsViewDescription' | fdTranslate\"\n>\n <tbody class=\"fd-calendar__group\" role=\"rowgroup\">\n <tr class=\"fd-calendar__row\" role=\"row\" *ngFor=\"let colYears of _calendarYearListGrid; let rowIndex = index\">\n <td\n class=\"fd-calendar__my-item\"\n role=\"gridcell\"\n *ngFor=\"let yearCell of colYears; let colIndex = index\"\n [class.fd-calendar__my-item--current]=\"yearCell.current\"\n [class.is-active]=\"yearCell.selected\"\n [attr.id]=\"yearCell.id\"\n [attr.tabindex]=\"yearCell.tabIndex\"\n [attr.aria-selected]=\"yearCell.selected\"\n [attr.aria-disabled]=\"yearCell.disabled\"\n [attr.data-fd-calendar-year]=\"yearCell.year\"\n (keydown)=\"_onKeydownYearHandler($event, yearCell.index)\"\n (click)=\"selectYear(yearCell, $event)\"\n >\n <button\n fd-button\n fdType=\"transparent\"\n class=\"fd-calendar__item-button\"\n [class.is-active]=\"yearCell.current\"\n tabindex=\"-1\"\n >\n <span\n class=\"fd-calendar__text\"\n [attr.aria-labelledby]=\"\n yearCell.id +\n '-aria-label ' +\n (yearCell.current ? _todayLabelId + ' ' : '') +\n (yearCell.selected ? _selectedDateLabelId : '')\n \"\n >\n {{ yearCell.label }}\n </span>\n </button>\n\n <span hidden aria-hidden=\"true\" [attr.id]=\"yearCell.id + '-aria-label'\">\n {{ yearCell.ariaLabel }}\n </span>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- Hidden elements for aria purposes -->\n<div hidden aria-hidden=\"true\">\n <div [attr.id]=\"_todayLabelId\">{{ 'coreCalendar.todayLabel' | fdTranslate }}</div>\n <div [attr.id]=\"_selectedDateLabelId\">{{ 'coreCalendar.dateSelectedLabel' | fdTranslate }}</div>\n</div>\n" }]
261
260
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.CalendarService }, { type: i2.DatetimeAdapter }, { type: undefined, decorators: [{
262
261
  type: Inject,
263
262
  args: [DATE_TIME_FORMATS]
@@ -272,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
272
271
  }], yearClicked: [{
273
272
  type: Output
274
273
  }] } });
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLXZpZXdzL2NhbGVuZGFyLXllYXItdmlldy9jYWxlbmRhci15ZWFyLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXItdmlld3MvY2FsZW5kYXIteWVhci12aWV3L2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLE1BQU0sRUFFTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFtQixlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlDQUFpQyxFQUE4QyxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUVwSCxxRUFBcUU7QUFhckUsTUFBTSxPQUFPLHlCQUF5QjtJQStDbEMsY0FBYztJQUNkLElBQUksTUFBTTtRQUNOLE9B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QztJQUNQLENBQUM7SUFFRCxjQUFjO0lBQ04sbUJBQW1CLENBQUMsS0FBYTtRQUNyQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDOzhHQWxVUSx5QkFBeUIsMklBbUZ0QixpQkFBaUI7a0dBbkZwQix5QkFBeUIsNFRDeEN0Qyx1M0VBc0RBLDBERGhCYyxLQUFLLGtIQUFFLFlBQVksb0tBQUUsZUFBZTs7MkZBRXJDLHlCQUF5QjtrQkFackMsU0FBUzsrQkFDSSx1QkFBdUIsaUJBR2xCLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsV0FBVyxFQUFFLFFBQVE7cUJBQ3hCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxDQUFDOzswQkFxRjFDLE1BQU07MkJBQUMsaUJBQWlCOzRDQWhGN0IsRUFBRTtzQkFERCxLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBT04sWUFBWTtzQkFEWCxLQUFLO2dCQUtHLFdBQVc7c0JBRG5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRlVGltZUZvcm1hdHMsIERhdGV0aW1lQWRhcHRlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5cbmltcG9ydCB7IE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FsZW5kYXJZZWFyLCBDYWxlbmRhclllYXJHcmlkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NhbGVuZGFyLXllYXItZ3JpZCc7XG5pbXBvcnQgeyBEZWZhdWx0Q2FsZW5kYXJBY3RpdmVDZWxsU3RyYXRlZ3ksIEVzY2FwZUZvY3VzRnVuY3Rpb24sIEZvY3VzYWJsZUNhbGVuZGFyVmlldyB9IGZyb20gJy4uLy4uL21vZGVscy9jb21tb24nO1xuXG4vKiogQ29tcG9uZW50IHJlcHJlc2VudGluZyB0aGUgWWVhclZpZXcgb2YgdGhlIENhbGVuZGFyIENvbXBvbmVudC4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtY2FsZW5kYXIteWVhci12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIteWVhci12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci15ZWFyLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmlkXSc6ICd2aWV3SWQnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0ZvciwgQnV0dG9uTW9kdWxlLCBGZFRyYW5zbGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyWWVhclZpZXdDb21wb25lbnQ8RD4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBGb2N1c2FibGVDYWxlbmRhclZpZXcge1xuICAgIC8qKiBUaGUgaWQgb2YgdGhlIGNhbGVuZGFyIHBhc3NlZCBmcm9tIHRoZSBwYXJlbnQgY29tcG9uZW50ICovXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIGZvY3VzIHdvdWxkIGVzY2FwZSB0aGUgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZvY3VzRXNjYXBlRnVuY3Rpb246IEVzY2FwZUZvY3VzRnVuY3Rpb247XG5cbiAgICAvKiogUGFyYW1ldGVyIGhvbGRpbmcgdGhlIHllYXIgdGhhdCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuICovXG4gICAgQElucHV0KClcbiAgICB5ZWFyU2VsZWN0ZWQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB0byBjdXN0b21pemUgeWVhciBncmlkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB5ZWFyVmlld0dyaWQ6IENhbGVuZGFyWWVhckdyaWQ7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBhIHllYXIgaXMgc2VsZWN0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgeWVhckNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogVGhpcyB2YXJpYWJsZSBpcyB1c2VkIHRvIGRlZmluZSB3aGljaCB5ZWFyIGZyb20gY2FsZW5kYXJZZWFyTGlzdCBzaG91bGQgYmUgZm9jdXNhYmxlIGJ5IHRhYiBrZXlcbiAgICAgKi9cbiAgICBfYWN0aXZlWWVhcjogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFBhcmFtZXRlciB0aGF0IHN0b3JlcyB0aGUgZG96ZW4gb2YgeWVhcnMgdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIGRpc3BsYXllZC5cbiAgICAgKi9cbiAgICBfY2FsZW5kYXJZZWFyTGlzdEdyaWQ6IENhbGVuZGFyWWVhcltdW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUGFyYW1ldGVyIHN0b3JpbmcgdGhlIHllYXIgb2YgdGhlIHByZXNlbnQgZGF5LlxuICAgICAqL1xuICAgIF9jdXJyZW50WWVhcjogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFBhcmFtZXRlciBzdG9yaW5nIGZpcnN0IHNob3duIHllYXIgb24gbGlzdFxuICAgICAqL1xuICAgIF9maXJzdFllYXJJbkxpc3Q6IG51bWJlcjtcblxuICAgIC8qKiBWaWV3IElEICovXG4gICAgZ2V0IHZpZXdJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pZCArICcteWVhci12aWV3JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogVG9kYXkgY2VsbCBsYWJlbCBJRFxuICAgICAqL1xuICAgIGdldCBfdG9kYXlMYWJlbElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdJZCArICctdG9kYXktbGFiZWwnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBTZWxlY3RlZCBkYXRlIGxhYmVsIElEXG4gICAgICovXG4gICAgZ2V0IF9zZWxlY3RlZERhdGVMYWJlbElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdJZCArICctc2VsZWN0ZWQtZGF0ZS1sYWJlbCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaW5pdGlhdGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX2NhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9kYXRlVGltZUFkYXB0ZXI6IERhdGV0aW1lQWRhcHRlcjxEPixcbiAgICAgICAgQEluamVjdChEQVRFX1RJTUVfRk9STUFUUykgcHJpdmF0ZSBfZGF0ZVRpbWVGb3JtYXRzOiBEYXRlVGltZUZvcm1hdHNcbiAgICApIHtcbiAgICAgICAgLy8gZGVmYXVsdCB2YWx1ZXNcbiAgICAgICAgdGhpcy5fY3VycmVudFllYXIgPSBfZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIoX2RhdGVUaW1lQWRhcHRlci50b2RheSgpKTtcbiAgICAgICAgdGhpcy5fZmlyc3RZZWFySW5MaXN0ID0gdGhpcy5fY3VycmVudFllYXI7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5pdGlhdGVkID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLl9zZXR1cEtleWJvYXJkU2VydmljZSgpO1xuICAgICAgICB0aGlzLl9maXJzdFllYXJJbkxpc3QgPSB0aGlzLnllYXJTZWxlY3RlZDtcbiAgICAgICAgdGhpcy5fY29uc3RydWN0WWVhckdyaWQoKTtcblxuICAgICAgICB0aGlzLl9kYXRlVGltZUFkYXB0ZXIubG9jYWxlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnN0cnVjdFllYXJHcmlkKCk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pbml0aWF0ZWQgJiYgKCd5ZWFyVmlld0dyaWQnIGluIGNoYW5nZXMgfHwgJ3llYXJTZWxlY3RlZCcgaW4gY2hhbmdlcyB8fCAnaWQnIGluIGNoYW5nZXMpKSB7XG4gICAgICAgICAgICB0aGlzLl9jb25zdHJ1Y3RZZWFyR3JpZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHVzZWQgdG8gbG9hZCB0aGUgcHJldmlvdXMge3tjb2wgKiByb3d9fSB5ZWFycyB0byBiZSBkaXNwbGF5ZWQuICovXG4gICAgbG9hZE5leHRZZWFyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZmlyc3RZZWFySW5MaXN0ICs9IHRoaXMuX2dldEFtb3VudE9mWWVhcnNTaG93bkF0T25jZSgpO1xuICAgICAgICB0aGlzLl9jb25zdHJ1Y3RZZWFyR3JpZCgpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdXNlZCB0byBsb2FkIHRoZSBuZXh0IHt7Y29sICogcm93fX0geWVhcnMgdG8gYmUgZGlzcGxheWVkLiAqL1xuICAgIGxvYWRQcmV2aW91c1llYXJMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9maXJzdFllYXJJbkxpc3QgLT0gdGhpcy5fZ2V0QW1vdW50T2ZZZWFyc1Nob3duQXRPbmNlKCk7XG4gICAgICAgIHRoaXMuX2NvbnN0cnVjdFllYXJHcmlkKCk7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0aGF0IHNlbmRzIHRoZSB5ZWFyIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50IHdoZW4gaXQgaXMgY2xpY2tlZC4gKi9cbiAgICBzZWxlY3RZZWFyKHNlbGVjdGVkWWVhcjogQ2FsZW5kYXJZZWFyLCBldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnllYXJTZWxlY3RlZCA9IHNlbGVjdGVkWWVhci55ZWFyO1xuICAgICAgICB0aGlzLnllYXJDbGlja2VkLmVtaXQodGhpcy55ZWFyU2VsZWN0ZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBmb2N1cyBvbiBtb250aCBjZWxsLlxuICAgICAqIEl0IGNhbiBiZSBhIHNlbGVjdGVkIGNlbGwsIGN1cnJlbnQgbW9udGggY2VsbCBvciBmaXJzdCBjZWxsIGluIHRoZSBsaXN0XG4gICAgICovXG4gICAgc2V0Rm9jdXNPbkNlbGwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNlbGxUb0ZvY3VzID0gbmV3IERlZmF1bHRDYWxlbmRhckFjdGl2ZUNlbGxTdHJhdGVneSgpLmdldEFjdGl2ZUNlbGwodGhpcy5fZ2V0WWVhckxpc3QoKSk7XG4gICAgICAgIGlmICghY2VsbFRvRm9jdXM/LmlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZm9jdXNFbGVtZW50QnlTZWxlY3RvcihgIyR7Y2VsbFRvRm9jdXMuaWR9YCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1ldGhvZCBmb3IgaGFuZGxpbmcgdGhlIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAgICovXG4gICAgX29uS2V5ZG93blllYXJIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5vbktleWRvd25IYW5kbGVyKGV2ZW50LCBpbmRleCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1ldGhvZCB0aGF0IGFsbG93cyB0byBmb2N1cyBlbGVtZW50cyBpbnNpZGUgdGhpcyBjb21wb25lbnRcbiAgICAgKi9cbiAgICBfZm9jdXNFbGVtZW50QnlTZWxlY3RvcihlbGVtZW50U2VsZWN0b3I6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1czogSFRNTEVsZW1lbnQgPSB0aGlzLl9lUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihlbGVtZW50U2VsZWN0b3IpO1xuICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXM/LmZvY3VzKSB7XG4gICAgICAgICAgICBlbGVtZW50VG9Gb2N1cy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFN0YW5kYXJkaXplZCBtZXRob2QgdG8gY2FsY3VsYXRlIGdyaWQgW3hdW3ldIHRvIGluZGV4IG51bWJlciBvZiBmbGF0dGVuIGxpc3RcbiAgICAgKi9cbiAgICBfZ2V0SW5kZXgocm93SW5kZXg6IG51bWJlciwgY29sSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYWxlbmRhclNlcnZpY2UuZ2V0SWQocm93SW5kZXgsIGNvbEluZGV4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogR2V0IGdyaWQgY2VsbCBpZCBiZSBpbmRleFxuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqL1xuICAgIF9nZXRJZChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0lkICsgJy15ZWFyLScgKyBpbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgcmV0dXJucyBhY3RpdmUgY2VsbCwgd2hpY2ggbWVhbnM6XG4gICAgICogaWYgdGhlcmUgaXMgYW55IHNlbGVjdGVkIHllYXIsIHJldHVybiBzZWxlY3RlZCB5ZWFyXG4gICAgICogaWYgdGhlcmUgaXMgbm8gc2VsZWN0ZWQgeWVhciwgYnV0IHRoZXJlIGlzIGN1cnJlbnQgeWVhciwgcmV0dXJuIGN1cnJlbnQgeWVhclxuICAgICAqIGlmIHRoZXJlIGlzIG5vIGN1cnJlbnQgeWVhciwgb3Igc2VsZWN0ZWQsIHJldHVybiBmaXJzdCBvbmVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRBY3RpdmVZZWFyKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkWWVhckNlbGwgPSB0aGlzLl9nZXRZZWFyTGlzdCgpLmZpbmQoKHsgeWVhciB9KSA9PiB5ZWFyID09PSB0aGlzLnllYXJTZWxlY3RlZCk7XG4gICAgICAgIGlmIChzZWxlY3RlZFllYXJDZWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRZZWFyQ2VsbC55ZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFllYXJDZWxsID0gdGhpcy5fZ2V0WWVhckxpc3QoKS5maW5kKCh7IHllYXIgfSkgPT4geWVhciA9PT0gdGhpcy5fY3VycmVudFllYXIpO1xuICAgICAgICBpZiAoY3VycmVudFllYXJDZWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudFllYXJDZWxsLnllYXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXJZZWFyTGlzdEdyaWRbMF1bMF0ueWVhcjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbnN0cnVjdFllYXJHcmlkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkaXNwbGF5ZWRZZWFyc0Ftb3VudDogbnVtYmVyID0gdGhpcy55ZWFyVmlld0dyaWQuY29scyAqIHRoaXMueWVhclZpZXdHcmlkLnJvd3M7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyWWVhckxpc3Q6IENhbGVuZGFyWWVhcltdID0gW107XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyWWVhckxpc3RHcmlkID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCBkaXNwbGF5ZWRZZWFyc0Ftb3VudDsgKyt4KSB7XG4gICAgICAgICAgICBjb25zdCB5ZWFyID0gdGhpcy5fZmlyc3RZZWFySW5MaXN0ICsgeDtcbiAgICAgICAgICAgIGNhbGVuZGFyWWVhckxpc3QucHVzaCh7XG4gICAgICAgICAgICAgICAgeWVhcixcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5fZ2V0WWVhck5hbWUoeWVhciksXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLl9nZXRBcmlhWWVhck5hbWUoeWVhciksXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHllYXIgPT09IHRoaXMueWVhclNlbGVjdGVkLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHllYXIgPT09IHRoaXMuX2N1cnJlbnRZZWFyLFxuICAgICAgICAgICAgICAgIGluZGV4OiB4XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvKiogQ3JlYXRpbmcgMmQgZ3JpZCAqL1xuICAgICAgICB3aGlsZSAoY2FsZW5kYXJZZWFyTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyWWVhckxpc3RHcmlkLnB1c2goY2FsZW5kYXJZZWFyTGlzdC5zcGxpY2UoMCwgdGhpcy55ZWFyVmlld0dyaWQuY29scykpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYWN0aXZlWWVhciA9IHRoaXMuX2dldEFjdGl2ZVllYXIoKTtcblxuICAgICAgICB0aGlzLl9jYWxlbmRhclllYXJMaXN0R3JpZC5mb3JFYWNoKChyb3csIHJvd0luZGV4KSA9PiB7XG4gICAgICAgICAgICByb3cuZm9yRWFjaCgoY2VsbCwgY29sSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjZWxsLmlkID0gdGhpcy5fZ2V0SWQodGhpcy5fZ2V0SW5kZXgocm93SW5kZXgsIGNvbEluZGV4KSk7XG4gICAgICAgICAgICAgICAgY2VsbC50YWJJbmRleCA9IGNlbGwueWVhciA9PT0gdGhpcy5fYWN0aXZlWWVhciA/IDAgOiAtMTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmV0dXJucyB5ZWFyIG5hbWUgYXMgYSBzdHJpbmcuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0WWVhck5hbWUoeWVhcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldFllYXJOYW1lKHRoaXMuX2RhdGVUaW1lQWRhcHRlci5jcmVhdGVEYXRlKHllYXIsIDEsIDEpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFllYXJTdHJpbmcoeWVhciwgZm9ybWF0dGVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmV0dXJucyBhcmlhIHllYXIgbmFtZSBhcyBhIHN0cmluZy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRBcmlhWWVhck5hbWUoeWVhcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmZvcm1hdChcbiAgICAgICAgICAgIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5jcmVhdGVEYXRlKHllYXIsIDEsIDEpLFxuICAgICAgICAgICAgdGhpcy5fZGF0ZVRpbWVGb3JtYXRzLmRpc3BsYXkueWVhckExMXlMYWJlbFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0WWVhclN0cmluZyh5ZWFyLCBmb3JtYXR0ZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZXR1cm5zIHllYXIgbmFtZSB0YWtpbmcgaW50byBhY2NvdW50IHllYXJNYXBwaW5nLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldFllYXJTdHJpbmcoeWVhcjogbnVtYmVyLCBkZWZhdWx0U3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMueWVhclZpZXdHcmlkLnllYXJNYXBwaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy55ZWFyVmlld0dyaWQueWVhck1hcHBpbmcoeWVhcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlZmF1bHRTdHI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFJldHVybnMgdHJhbnNmb3JtZWQgMWQgYXJyYXkgZnJvbSAyZCB5ZWFyIGdyaWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0WWVhckxpc3QoKTogQ2FsZW5kYXJZZWFyW10ge1xuICAgICAgICByZXR1cm4gKDxDYWxlbmRhclllYXJbXT5bXSkuY29uY2F0KC4uLnRoaXMuX2NhbGVuZGFyWWVhckxpc3RHcmlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQW1vdW50IG9mIHllYXJzIGRpc3BsYXllZCBpbiB5ZWFyIHZpZXdcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRBbW91bnRPZlllYXJzU2hvd25BdE9uY2UoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhclZpZXdHcmlkLnJvd3MgKiB0aGlzLnllYXJWaWV3R3JpZC5jb2xzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNZXRob2QgdG8gcHV0IGNvbmZpZ3VyYXRpb24gYW5kIGxpc3RlbmVycyBvbiBjYWxlbmRhciBrZXlib2FyZCBzZXJ2aWNlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2V0dXBLZXlib2FyZFNlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5jb2xBbW91bnQgPSB0aGlzLnllYXJWaWV3R3JpZC5jb2xzO1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2Uucm93QW1vdW50ID0gdGhpcy55ZWFyVmlld0dyaWQucm93cztcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmZvY3VzRXNjYXBlRnVuY3Rpb24gPSB0aGlzLmZvY3VzRXNjYXBlRnVuY3Rpb247XG5cbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLm9uRm9jdXNJZENoYW5nZVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaW5kZXgpID0+IHRoaXMuX2ZvY3VzT25DZWxsQnlJbmRleChpbmRleCkpO1xuXG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5vbktleVNlbGVjdFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaW5kZXgpID0+IHRoaXMuc2VsZWN0WWVhcih0aGlzLl9nZXRZZWFyTGlzdCgpW2luZGV4XSkpO1xuXG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5vbkxpc3RTdGFydEFwcHJvYWNoLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGluZGV4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRQcmV2aW91c1llYXJMaXN0KCk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c09uQ2VsbEJ5SW5kZXgoaW5kZXgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2Uub25MaXN0RW5kQXBwcm9hY2gucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZE5leHRZZWFyTGlzdCgpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNPbkNlbGxCeUluZGV4KGluZGV4KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c09uQ2VsbEJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb2N1c0VsZW1lbnRCeVNlbGVjdG9yKGAjJHt0aGlzLl9nZXRJZChpbmRleCl9YCk7XG4gICAgfVxufVxuIiwiPHRhYmxlXG4gICAgY2xhc3M9XCJmZC1jYWxlbmRhcl9fY29udGVudCBmZC1jYWxlbmRhcl9fY29udGVudC0teWVhcnNcIlxuICAgIHJvbGU9XCJncmlkXCJcbiAgICBbYXR0ci5hcmlhLXJvbGVkZXNjcmlwdGlvbl09XCInY29yZUNhbGVuZGFyLmNhbGVuZGFyWWVhcnNWaWV3RGVzY3JpcHRpb24nIHwgZmRUcmFuc2xhdGVcIlxuPlxuICAgIDx0Ym9keSBjbGFzcz1cImZkLWNhbGVuZGFyX19ncm91cFwiIHJvbGU9XCJyb3dncm91cFwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJmZC1jYWxlbmRhcl9fcm93XCIgcm9sZT1cInJvd1wiICpuZ0Zvcj1cImxldCBjb2xZZWFycyBvZiBfY2FsZW5kYXJZZWFyTGlzdEdyaWQ7IGxldCByb3dJbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWNhbGVuZGFyX19teS1pdGVtXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB5ZWFyQ2VsbCBvZiBjb2xZZWFyczsgbGV0IGNvbEluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1jYWxlbmRhcl9fbXktaXRlbS0tY3VycmVudF09XCJ5ZWFyQ2VsbC5jdXJyZW50XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cInllYXJDZWxsLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJ5ZWFyQ2VsbC5pZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwieWVhckNlbGwudGFiSW5kZXhcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwieWVhckNlbGwuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwieWVhckNlbGwuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtZmQtY2FsZW5kYXIteWVhcl09XCJ5ZWFyQ2VsbC55ZWFyXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJfb25LZXlkb3duWWVhckhhbmRsZXIoJGV2ZW50LCB5ZWFyQ2VsbC5pbmRleClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RZZWFyKHllYXJDZWxsLCAkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtY2FsZW5kYXJfX2l0ZW0tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJ5ZWFyQ2VsbC5jdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1jYWxlbmRhcl9fdGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVhckNlbGwuaWQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICctYXJpYS1sYWJlbCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeWVhckNlbGwuY3VycmVudCA/IF90b2RheUxhYmVsSWQgKyAnICcgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh5ZWFyQ2VsbC5zZWxlY3RlZCA/IF9zZWxlY3RlZERhdGVMYWJlbElkIDogJycpXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB5ZWFyQ2VsbC5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiBoaWRkZW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgW2F0dHIuaWRdPVwieWVhckNlbGwuaWQgKyAnLWFyaWEtbGFiZWwnXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHllYXJDZWxsLmFyaWFMYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbjwvdGFibGU+XG5cbjwhLS0gSGlkZGVuIGVsZW1lbnRzIGZvciBhcmlhIHB1cnBvc2VzIC0tPlxuPGRpdiBoaWRkZW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgPGRpdiBbYXR0ci5pZF09XCJfdG9kYXlMYWJlbElkXCI+e3sgJ2NvcmVDYWxlbmRhci50b2RheUxhYmVsJyB8IGZkVHJhbnNsYXRlIH19PC9kaXY+XG4gICAgPGRpdiBbYXR0ci5pZF09XCJfc2VsZWN0ZWREYXRlTGFiZWxJZFwiPnt7ICdjb3JlQ2FsZW5kYXIuZGF0ZVNlbGVjdGVkTGFiZWwnIHwgZmRUcmFuc2xhdGUgfX08L2Rpdj5cbjwvZGl2PlxuIl19
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLXZpZXdzL2NhbGVuZGFyLXllYXItdmlldy9jYWxlbmRhci15ZWFyLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXItdmlld3MvY2FsZW5kYXIteWVhci12aWV3L2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLE1BQU0sRUFFTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFtQixlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlDQUFpQyxFQUE4QyxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRXBILHFFQUFxRTtBQWFyRSxNQUFNLE9BQU8seUJBQXlCO0lBK0NsQyxjQUFjO0lBQ2QsSUFBSSxNQUFNO1FBQ04sT0FB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O0lBQ1AsQ0FBQztJQUVELGNBQWM7SUFDTixtQkFBbUIsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7OEdBbFVRLHlCQUF5QiwySUFtRnRCLGlCQUFpQjtrR0FuRnBCLHlCQUF5Qiw0VEN4Q3RDLHUzRUFzREEsMEREaEJjLEtBQUssbUhBQUUsZUFBZSxtSEFBRSxlQUFlOzsyRkFFeEMseUJBQXlCO2tCQVpyQyxTQUFTOytCQUNJLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixXQUFXLEVBQUUsUUFBUTtxQkFDeEIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUM7OzBCQXFGN0MsTUFBTTsyQkFBQyxpQkFBaUI7NENBaEY3QixFQUFFO3NCQURELEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFPTixZQUFZO3NCQURYLEtBQUs7Z0JBS0csV0FBVztzQkFEbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgREFURV9USU1FX0ZPUk1BVFMsIERhdGVUaW1lRm9ybWF0cywgRGF0ZXRpbWVBZGFwdGVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RhdGV0aW1lJztcblxuaW1wb3J0IHsgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBDYWxlbmRhclllYXIsIENhbGVuZGFyWWVhckdyaWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FsZW5kYXIteWVhci1ncmlkJztcbmltcG9ydCB7IERlZmF1bHRDYWxlbmRhckFjdGl2ZUNlbGxTdHJhdGVneSwgRXNjYXBlRm9jdXNGdW5jdGlvbiwgRm9jdXNhYmxlQ2FsZW5kYXJWaWV3IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbW1vbic7XG5cbi8qKiBDb21wb25lbnQgcmVwcmVzZW50aW5nIHRoZSBZZWFyVmlldyBvZiB0aGUgQ2FsZW5kYXIgQ29tcG9uZW50LiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1jYWxlbmRhci15ZWFyLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci15ZWFyLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuaWRdJzogJ3ZpZXdJZCdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nRm9yLCBCdXR0b25Db21wb25lbnQsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudDxEPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEZvY3VzYWJsZUNhbGVuZGFyVmlldyB7XG4gICAgLyoqIFRoZSBpZCBvZiB0aGUgY2FsZW5kYXIgcGFzc2VkIGZyb20gdGhlIHBhcmVudCBjb21wb25lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgZm9jdXMgd291bGQgZXNjYXBlIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9jdXNFc2NhcGVGdW5jdGlvbjogRXNjYXBlRm9jdXNGdW5jdGlvbjtcblxuICAgIC8qKiBQYXJhbWV0ZXIgaG9sZGluZyB0aGUgeWVhciB0aGF0IGlzIGN1cnJlbnRseSBzZWxlY3RlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHllYXJTZWxlY3RlZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogT2JqZWN0IHRvIGN1c3RvbWl6ZSB5ZWFyIGdyaWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHllYXJWaWV3R3JpZDogQ2FsZW5kYXJZZWFyR3JpZDtcblxuICAgIC8qKiBFdmVudCBmaXJlZCB3aGVuIGEgeWVhciBpcyBzZWxlY3RlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB5ZWFyQ2xpY2tlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBUaGlzIHZhcmlhYmxlIGlzIHVzZWQgdG8gZGVmaW5lIHdoaWNoIHllYXIgZnJvbSBjYWxlbmRhclllYXJMaXN0IHNob3VsZCBiZSBmb2N1c2FibGUgYnkgdGFiIGtleVxuICAgICAqL1xuICAgIF9hY3RpdmVZZWFyOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUGFyYW1ldGVyIHRoYXQgc3RvcmVzIHRoZSBkb3plbiBvZiB5ZWFycyB0aGF0IGFyZSBjdXJyZW50bHkgYmVpbmcgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIF9jYWxlbmRhclllYXJMaXN0R3JpZDogQ2FsZW5kYXJZZWFyW11bXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBQYXJhbWV0ZXIgc3RvcmluZyB0aGUgeWVhciBvZiB0aGUgcHJlc2VudCBkYXkuXG4gICAgICovXG4gICAgX2N1cnJlbnRZZWFyOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUGFyYW1ldGVyIHN0b3JpbmcgZmlyc3Qgc2hvd24geWVhciBvbiBsaXN0XG4gICAgICovXG4gICAgX2ZpcnN0WWVhckluTGlzdDogbnVtYmVyO1xuXG4gICAgLyoqIFZpZXcgSUQgKi9cbiAgICBnZXQgdmlld0lkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkICsgJy15ZWFyLXZpZXcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBUb2RheSBjZWxsIGxhYmVsIElEXG4gICAgICovXG4gICAgZ2V0IF90b2RheUxhYmVsSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0lkICsgJy10b2RheS1sYWJlbCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFNlbGVjdGVkIGRhdGUgbGFiZWwgSURcbiAgICAgKi9cbiAgICBnZXQgX3NlbGVjdGVkRGF0ZUxhYmVsSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0lkICsgJy1zZWxlY3RlZC1kYXRlLWxhYmVsJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWF0ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2RhdGVUaW1lQWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPEQ+LFxuICAgICAgICBASW5qZWN0KERBVEVfVElNRV9GT1JNQVRTKSBwcml2YXRlIF9kYXRlVGltZUZvcm1hdHM6IERhdGVUaW1lRm9ybWF0c1xuICAgICkge1xuICAgICAgICAvLyBkZWZhdWx0IHZhbHVlc1xuICAgICAgICB0aGlzLl9jdXJyZW50WWVhciA9IF9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcihfZGF0ZVRpbWVBZGFwdGVyLnRvZGF5KCkpO1xuICAgICAgICB0aGlzLl9maXJzdFllYXJJbkxpc3QgPSB0aGlzLl9jdXJyZW50WWVhcjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0aWF0ZWQgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuX3NldHVwS2V5Ym9hcmRTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMuX2ZpcnN0WWVhckluTGlzdCA9IHRoaXMueWVhclNlbGVjdGVkO1xuICAgICAgICB0aGlzLl9jb25zdHJ1Y3RZZWFyR3JpZCgpO1xuXG4gICAgICAgIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5sb2NhbGVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY29uc3RydWN0WWVhckdyaWQoKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYXRlZCAmJiAoJ3llYXJWaWV3R3JpZCcgaW4gY2hhbmdlcyB8fCAneWVhclNlbGVjdGVkJyBpbiBjaGFuZ2VzIHx8ICdpZCcgaW4gY2hhbmdlcykpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnN0cnVjdFllYXJHcmlkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdXNlZCB0byBsb2FkIHRoZSBwcmV2aW91cyB7e2NvbCAqIHJvd319IHllYXJzIHRvIGJlIGRpc3BsYXllZC4gKi9cbiAgICBsb2FkTmV4dFllYXJMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9maXJzdFllYXJJbkxpc3QgKz0gdGhpcy5fZ2V0QW1vdW50T2ZZZWFyc1Nob3duQXRPbmNlKCk7XG4gICAgICAgIHRoaXMuX2NvbnN0cnVjdFllYXJHcmlkKCk7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB1c2VkIHRvIGxvYWQgdGhlIG5leHQge3tjb2wgKiByb3d9fSB5ZWFycyB0byBiZSBkaXNwbGF5ZWQuICovXG4gICAgbG9hZFByZXZpb3VzWWVhckxpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZpcnN0WWVhckluTGlzdCAtPSB0aGlzLl9nZXRBbW91bnRPZlllYXJzU2hvd25BdE9uY2UoKTtcbiAgICAgICAgdGhpcy5fY29uc3RydWN0WWVhckdyaWQoKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgc2VuZHMgdGhlIHllYXIgdG8gdGhlIHBhcmVudCBjb21wb25lbnQgd2hlbiBpdCBpcyBjbGlja2VkLiAqL1xuICAgIHNlbGVjdFllYXIoc2VsZWN0ZWRZZWFyOiBDYWxlbmRhclllYXIsIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueWVhclNlbGVjdGVkID0gc2VsZWN0ZWRZZWFyLnllYXI7XG4gICAgICAgIHRoaXMueWVhckNsaWNrZWQuZW1pdCh0aGlzLnllYXJTZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGZvY3VzIG9uIG1vbnRoIGNlbGwuXG4gICAgICogSXQgY2FuIGJlIGEgc2VsZWN0ZWQgY2VsbCwgY3VycmVudCBtb250aCBjZWxsIG9yIGZpcnN0IGNlbGwgaW4gdGhlIGxpc3RcbiAgICAgKi9cbiAgICBzZXRGb2N1c09uQ2VsbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2VsbFRvRm9jdXMgPSBuZXcgRGVmYXVsdENhbGVuZGFyQWN0aXZlQ2VsbFN0cmF0ZWd5KCkuZ2V0QWN0aXZlQ2VsbCh0aGlzLl9nZXRZZWFyTGlzdCgpKTtcbiAgICAgICAgaWYgKCFjZWxsVG9Gb2N1cz8uaWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb2N1c0VsZW1lbnRCeVNlbGVjdG9yKGAjJHtjZWxsVG9Gb2N1cy5pZH1gKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIGZvciBoYW5kbGluZyB0aGUga2V5Ym9hcmQgbmF2aWdhdGlvbi5cbiAgICAgKi9cbiAgICBfb25LZXlkb3duWWVhckhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLm9uS2V5ZG93bkhhbmRsZXIoZXZlbnQsIGluZGV4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgYWxsb3dzIHRvIGZvY3VzIGVsZW1lbnRzIGluc2lkZSB0aGlzIGNvbXBvbmVudFxuICAgICAqL1xuICAgIF9mb2N1c0VsZW1lbnRCeVNlbGVjdG9yKGVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzOiBIVE1MRWxlbWVudCA9IHRoaXMuX2VSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGVsZW1lbnRTZWxlY3Rvcik7XG4gICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cz8uZm9jdXMpIHtcbiAgICAgICAgICAgIGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogU3RhbmRhcmRpemVkIG1ldGhvZCB0byBjYWxjdWxhdGUgZ3JpZCBbeF1beV0gdG8gaW5kZXggbnVtYmVyIG9mIGZsYXR0ZW4gbGlzdFxuICAgICAqL1xuICAgIF9nZXRJbmRleChyb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyU2VydmljZS5nZXRJZChyb3dJbmRleCwgY29sSW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBHZXQgZ3JpZCBjZWxsIGlkIGJlIGluZGV4XG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICovXG4gICAgX2dldElkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3SWQgKyAnLXllYXItJyArIGluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNZXRob2QgdGhhdCByZXR1cm5zIGFjdGl2ZSBjZWxsLCB3aGljaCBtZWFuczpcbiAgICAgKiBpZiB0aGVyZSBpcyBhbnkgc2VsZWN0ZWQgeWVhciwgcmV0dXJuIHNlbGVjdGVkIHllYXJcbiAgICAgKiBpZiB0aGVyZSBpcyBubyBzZWxlY3RlZCB5ZWFyLCBidXQgdGhlcmUgaXMgY3VycmVudCB5ZWFyLCByZXR1cm4gY3VycmVudCB5ZWFyXG4gICAgICogaWYgdGhlcmUgaXMgbm8gY3VycmVudCB5ZWFyLCBvciBzZWxlY3RlZCwgcmV0dXJuIGZpcnN0IG9uZVxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEFjdGl2ZVllYXIoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRZZWFyQ2VsbCA9IHRoaXMuX2dldFllYXJMaXN0KCkuZmluZCgoeyB5ZWFyIH0pID0+IHllYXIgPT09IHRoaXMueWVhclNlbGVjdGVkKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkWWVhckNlbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZFllYXJDZWxsLnllYXI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50WWVhckNlbGwgPSB0aGlzLl9nZXRZZWFyTGlzdCgpLmZpbmQoKHsgeWVhciB9KSA9PiB5ZWFyID09PSB0aGlzLl9jdXJyZW50WWVhcik7XG4gICAgICAgIGlmIChjdXJyZW50WWVhckNlbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50WWVhckNlbGwueWVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9jYWxlbmRhclllYXJMaXN0R3JpZFswXVswXS55ZWFyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29uc3RydWN0WWVhckdyaWQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRpc3BsYXllZFllYXJzQW1vdW50OiBudW1iZXIgPSB0aGlzLnllYXJWaWV3R3JpZC5jb2xzICogdGhpcy55ZWFyVmlld0dyaWQucm93cztcbiAgICAgICAgY29uc3QgY2FsZW5kYXJZZWFyTGlzdDogQ2FsZW5kYXJZZWFyW10gPSBbXTtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJZZWFyTGlzdEdyaWQgPSBbXTtcblxuICAgICAgICBmb3IgKGxldCB4ID0gMDsgeCA8IGRpc3BsYXllZFllYXJzQW1vdW50OyArK3gpIHtcbiAgICAgICAgICAgIGNvbnN0IHllYXIgPSB0aGlzLl9maXJzdFllYXJJbkxpc3QgKyB4O1xuICAgICAgICAgICAgY2FsZW5kYXJZZWFyTGlzdC5wdXNoKHtcbiAgICAgICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLl9nZXRZZWFyTmFtZSh5ZWFyKSxcbiAgICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuX2dldEFyaWFZZWFyTmFtZSh5ZWFyKSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogeWVhciA9PT0gdGhpcy55ZWFyU2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgY3VycmVudDogeWVhciA9PT0gdGhpcy5fY3VycmVudFllYXIsXG4gICAgICAgICAgICAgICAgaW5kZXg6IHhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8qKiBDcmVhdGluZyAyZCBncmlkICovXG4gICAgICAgIHdoaWxlIChjYWxlbmRhclllYXJMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJZZWFyTGlzdEdyaWQucHVzaChjYWxlbmRhclllYXJMaXN0LnNwbGljZSgwLCB0aGlzLnllYXJWaWV3R3JpZC5jb2xzKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9hY3RpdmVZZWFyID0gdGhpcy5fZ2V0QWN0aXZlWWVhcigpO1xuXG4gICAgICAgIHRoaXMuX2NhbGVuZGFyWWVhckxpc3RHcmlkLmZvckVhY2goKHJvdywgcm93SW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJvdy5mb3JFYWNoKChjZWxsLCBjb2xJbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNlbGwuaWQgPSB0aGlzLl9nZXRJZCh0aGlzLl9nZXRJbmRleChyb3dJbmRleCwgY29sSW5kZXgpKTtcbiAgICAgICAgICAgICAgICBjZWxsLnRhYkluZGV4ID0gY2VsbC55ZWFyID09PSB0aGlzLl9hY3RpdmVZZWFyID8gMCA6IC0xO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZXR1cm5zIHllYXIgbmFtZSBhcyBhIHN0cmluZy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRZZWFyTmFtZSh5ZWFyOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmNyZWF0ZURhdGUoeWVhciwgMSwgMSkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0WWVhclN0cmluZyh5ZWFyLCBmb3JtYXR0ZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZXR1cm5zIGFyaWEgeWVhciBuYW1lIGFzIGEgc3RyaW5nLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEFyaWFZZWFyTmFtZSh5ZWFyOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZm9ybWF0KFxuICAgICAgICAgICAgdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmNyZWF0ZURhdGUoeWVhciwgMSwgMSksXG4gICAgICAgICAgICB0aGlzLl9kYXRlVGltZUZvcm1hdHMuZGlzcGxheS55ZWFyQTExeUxhYmVsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRZZWFyU3RyaW5nKHllYXIsIGZvcm1hdHRlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFJldHVybnMgeWVhciBuYW1lIHRha2luZyBpbnRvIGFjY291bnQgeWVhck1hcHBpbmcuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0WWVhclN0cmluZyh5ZWFyOiBudW1iZXIsIGRlZmF1bHRTdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy55ZWFyVmlld0dyaWQueWVhck1hcHBpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnllYXJWaWV3R3JpZC55ZWFyTWFwcGluZyh5ZWFyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVmYXVsdFN0cjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmV0dXJucyB0cmFuc2Zvcm1lZCAxZCBhcnJheSBmcm9tIDJkIHllYXIgZ3JpZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRZZWFyTGlzdCgpOiBDYWxlbmRhclllYXJbXSB7XG4gICAgICAgIHJldHVybiAoPENhbGVuZGFyWWVhcltdPltdKS5jb25jYXQoLi4udGhpcy5fY2FsZW5kYXJZZWFyTGlzdEdyaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBbW91bnQgb2YgeWVhcnMgZGlzcGxheWVkIGluIHllYXIgdmlld1xuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEFtb3VudE9mWWVhcnNTaG93bkF0T25jZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyVmlld0dyaWQucm93cyAqIHRoaXMueWVhclZpZXdHcmlkLmNvbHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1ldGhvZCB0byBwdXQgY29uZmlndXJhdGlvbiBhbmQgbGlzdGVuZXJzIG9uIGNhbGVuZGFyIGtleWJvYXJkIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZXR1cEtleWJvYXJkU2VydmljZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNvbEFtb3VudCA9IHRoaXMueWVhclZpZXdHcmlkLmNvbHM7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5yb3dBbW91bnQgPSB0aGlzLnllYXJWaWV3R3JpZC5yb3dzO1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UuZm9jdXNFc2NhcGVGdW5jdGlvbiA9IHRoaXMuZm9jdXNFc2NhcGVGdW5jdGlvbjtcblxuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2Uub25Gb2N1c0lkQ2hhbmdlXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpbmRleCkgPT4gdGhpcy5fZm9jdXNPbkNlbGxCeUluZGV4KGluZGV4KSk7XG5cbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLm9uS2V5U2VsZWN0XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpbmRleCkgPT4gdGhpcy5zZWxlY3RZZWFyKHRoaXMuX2dldFllYXJMaXN0KClbaW5kZXhdKSk7XG5cbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLm9uTGlzdFN0YXJ0QXBwcm9hY2gucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZFByZXZpb3VzWWVhckxpc3QoKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzT25DZWxsQnlJbmRleChpbmRleCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5vbkxpc3RFbmRBcHByb2FjaC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkTmV4dFllYXJMaXN0KCk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c09uQ2VsbEJ5SW5kZXgoaW5kZXgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzT25DZWxsQnlJbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzRWxlbWVudEJ5U2VsZWN0b3IoYCMke3RoaXMuX2dldElkKGluZGV4KX1gKTtcbiAgICB9XG59XG4iLCI8dGFibGVcbiAgICBjbGFzcz1cImZkLWNhbGVuZGFyX19jb250ZW50IGZkLWNhbGVuZGFyX19jb250ZW50LS15ZWFyc1wiXG4gICAgcm9sZT1cImdyaWRcIlxuICAgIFthdHRyLmFyaWEtcm9sZWRlc2NyaXB0aW9uXT1cIidjb3JlQ2FsZW5kYXIuY2FsZW5kYXJZZWFyc1ZpZXdEZXNjcmlwdGlvbicgfCBmZFRyYW5zbGF0ZVwiXG4+XG4gICAgPHRib2R5IGNsYXNzPVwiZmQtY2FsZW5kYXJfX2dyb3VwXCIgcm9sZT1cInJvd2dyb3VwXCI+XG4gICAgICAgIDx0ciBjbGFzcz1cImZkLWNhbGVuZGFyX19yb3dcIiByb2xlPVwicm93XCIgKm5nRm9yPVwibGV0IGNvbFllYXJzIG9mIF9jYWxlbmRhclllYXJMaXN0R3JpZDsgbGV0IHJvd0luZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtY2FsZW5kYXJfX215LWl0ZW1cIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJncmlkY2VsbFwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHllYXJDZWxsIG9mIGNvbFllYXJzOyBsZXQgY29sSW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmZkLWNhbGVuZGFyX19teS1pdGVtLS1jdXJyZW50XT1cInllYXJDZWxsLmN1cnJlbnRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1hY3RpdmVdPVwieWVhckNlbGwuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cInllYXJDZWxsLmlkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ5ZWFyQ2VsbC50YWJJbmRleFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ5ZWFyQ2VsbC5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJ5ZWFyQ2VsbC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1mZC1jYWxlbmRhci15ZWFyXT1cInllYXJDZWxsLnllYXJcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9vbktleWRvd25ZZWFySGFuZGxlcigkZXZlbnQsIHllYXJDZWxsLmluZGV4KVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFllYXIoeWVhckNlbGwsICRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1jYWxlbmRhcl9faXRlbS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cInllYXJDZWxsLmN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWNhbGVuZGFyX190ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZWFyQ2VsbC5pZCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1hcmlhLWxhYmVsICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh5ZWFyQ2VsbC5jdXJyZW50ID8gX3RvZGF5TGFiZWxJZCArICcgJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHllYXJDZWxsLnNlbGVjdGVkID8gX3NlbGVjdGVkRGF0ZUxhYmVsSWQgOiAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHllYXJDZWxsLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuIGhpZGRlbiBhcmlhLWhpZGRlbj1cInRydWVcIiBbYXR0ci5pZF09XCJ5ZWFyQ2VsbC5pZCArICctYXJpYS1sYWJlbCdcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgeWVhckNlbGwuYXJpYUxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPCEtLSBIaWRkZW4gZWxlbWVudHMgZm9yIGFyaWEgcHVycG9zZXMgLS0+XG48ZGl2IGhpZGRlbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICA8ZGl2IFthdHRyLmlkXT1cIl90b2RheUxhYmVsSWRcIj57eyAnY29yZUNhbGVuZGFyLnRvZGF5TGFiZWwnIHwgZmRUcmFuc2xhdGUgfX08L2Rpdj5cbiAgICA8ZGl2IFthdHRyLmlkXT1cIl9zZWxlY3RlZERhdGVMYWJlbElkXCI+e3sgJ2NvcmVDYWxlbmRhci5kYXRlU2VsZWN0ZWRMYWJlbCcgfCBmZFRyYW5zbGF0ZSB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
89
89
  type: HostBinding,
90
90
  args: ['style.visibility']
91
91
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC1pdGVtL2Nhcm91c2VsLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2Fyb3VzZWwvY2Fyb3VzZWwtaXRlbS9jYXJvdXNlbC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBSzlFLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBcUI1QixNQUFNLE9BQU8scUJBQXFCO0lBd0Q5QixjQUFjO0lBQ2QsSUFBSSxVQUFVLENBQUMsVUFBc0I7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNkLFlBQTZCLFdBQW9DO1FBQXBDLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQWpFakUsZ0NBQWdDO1FBR2hDLE9BQUUsR0FBRyxvQkFBb0IsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1FBaUJqRDs7V0FFRztRQUVILFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIscUNBQXFDO1FBR3JDLFVBQUssR0FBRyxJQUFJLENBQUM7UUFjYixjQUFjO1FBRWQsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFcEIsY0FBYztRQUVkLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQiw2REFBNkQ7UUFFN0QsZ0JBQVcsR0FBZSxTQUFTLENBQUM7SUFZZ0MsQ0FBQztJQUVyRSxzQkFBc0I7SUFDdEIsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzRSxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM3RSxDQUFDOzhHQWpGUSxxQkFBcUI7a0dBQXJCLHFCQUFxQix5cEJDNUJsQyw4SEFHQSxvS0R1QmMsc0JBQXNCOzsyRkFFdkIscUJBQXFCO2tCQW5CakMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBYVgsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1AsQ0FBQyxzQkFBc0IsQ0FBQztpR0FNakMsRUFBRTtzQkFGRCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLFNBQVM7Z0JBTXRCLFNBQVM7c0JBRlIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBTTlCLGNBQWM7c0JBRmIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBTW5DLGVBQWU7c0JBRmQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBT3BDLE9BQU87c0JBRE4sS0FBSztnQkFNTixLQUFLO3NCQUZKLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsWUFBWTtnQkFLekIsYUFBYTtzQkFEWixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxXQUFXO3VCQUFDLHlCQUF5QjtnQkFLdEMsa0JBQWtCO3NCQURqQixXQUFXO3VCQUFDLGlDQUFpQztnQkFLOUMsV0FBVztzQkFEVixXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnVzeUluZGljYXRvckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXN5LWluZGljYXRvcic7XG5pbXBvcnQgeyBDYXJvdXNlbEl0ZW1JbnRlcmZhY2UgfSBmcm9tICcuLi9jYXJvdXNlbC5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgVmlzaWJpbGl0eSA9ICd2aXNpYmxlJyB8ICdoaWRkZW4nO1xuXG5sZXQgY2Fyb3VzZWxJdGVtQ291bnRlciA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtY2Fyb3VzZWwtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICAuZmQtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuZmQtY2Fyb3VzZWxfX2l0ZW0tLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQnVzeUluZGljYXRvckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQ2Fyb3VzZWxJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgQ2Fyb3VzZWxJdGVtSW50ZXJmYWNlIHtcbiAgICAvKiogSWQgb2YgdGhlIENhcm91c2VsIGl0ZW1zLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBpZCA9IGBmZC1jYXJvdXNlbC1pdGVtLSR7Y2Fyb3VzZWxJdGVtQ291bnRlcisrfWA7XG5cbiAgICAvKiogU2V0cyBhcmlhLWxhYmVsIGF0dHJpYnV0ZSBmb3IgY2Fyb3VzZWwgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBTZXRzIGFyaWEtbGFiZWxsZWRieSBhdHRyaWJ1dGUgZm9yIGNhcm91c2VsIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsbGVkYnknKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgZm9yIGNhcm91c2VsIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JylcbiAgICBhcmlhRGVzY3JpYmVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBMb2FkaW5nIGluZGljYXRvciB3aGVuIGl0ZW0gaXMgbm90IHlldCBsb2FkZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBTZXRzIHRvb2x0aXAgZm9yIGNhcm91c2VsIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci50aXRsZScpXG4gICAgdGl0bGUgPSBudWxsO1xuXG4gICAgLyoqIEluaXRpYWwgaGVpZ2h0IHZhbHVlLCBuZWVkZWQgd2hlbiBjYXJvdXNlbCBpcyBpbnNpZGUgcG9wb3ZlciAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5pdGlhbEhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqIEluaXRpYWwgaGVpZ2h0IHZhbHVlLCBuZWVkZWQgd2hlbiBjYXJvdXNlbCBpcyBpbnNpZGUgcG9wb3ZlciAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5pdGlhbFdpZHRoOiBudW1iZXI7XG5cbiAgICAvKiogVmFsdWUgb2YgY2Fyb3VzZWwgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmFsdWU6IGFueTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1jYXJvdXNlbF9faXRlbScpXG4gICAgY2Fyb3VzZWxJdGVtID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1jYXJvdXNlbF9faXRlbS0tYWN0aXZlJylcbiAgICBjYXJvdXNlbEl0ZW1BY3RpdmUgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gSGlkZS9zaG93IHNsaWRlLCB1c2VmdWwgZm9yIG1hbmFnaW5nIHRhYiBvcmRlciAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUudmlzaWJpbGl0eScpXG4gICAgX3Zpc2liaWxpdHk6IFZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldCB2aXNpYmlsaXR5KHZpc2liaWxpdHk6IFZpc2liaWxpdHkpIHtcbiAgICAgICAgdGhpcy5fdmlzaWJpbGl0eSA9IHZpc2liaWxpdHk7XG4gICAgfVxuXG4gICAgZ2V0IHZpc2liaWxpdHkoKTogVmlzaWJpbGl0eSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmlsaXR5O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgICAvKiogTmF0aXZlIGVsZW1lbnQgICovXG4gICAgZ2V0IGVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBXaWR0aCBvZiBlbGVtZW50ICovXG4gICAgZ2V0V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB8fCB0aGlzLmluaXRpYWxXaWR0aDtcbiAgICB9XG5cbiAgICAvKiogSGVpZ2h0IG9mIGVsZW1lbnQgKi9cbiAgICBnZXRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgfHwgdGhpcy5pbml0aWFsSGVpZ2h0O1xuICAgIH1cbn1cbiIsIjxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJsb2FkaW5nXCIgW3N0eWxlLm1heC13aWR0aC4lXT1cIjEwMFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZmQtYnVzeS1pbmRpY2F0b3I+XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC1pdGVtL2Nhcm91c2VsLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2Fyb3VzZWwvY2Fyb3VzZWwtaXRlbS9jYXJvdXNlbC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBSzlFLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBcUI1QixNQUFNLE9BQU8scUJBQXFCO0lBd0Q5QixjQUFjO0lBQ2QsSUFBSSxVQUFVLENBQUMsVUFBc0I7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNkLFlBQTZCLFdBQW9DO1FBQXBDLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQWpFakUsZ0NBQWdDO1FBR2hDLE9BQUUsR0FBRyxvQkFBb0IsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1FBaUJqRDs7V0FFRztRQUVILFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIscUNBQXFDO1FBR3JDLFVBQUssR0FBRyxJQUFJLENBQUM7UUFjYixjQUFjO1FBRWQsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFcEIsY0FBYztRQUVkLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQiw2REFBNkQ7UUFFN0QsZ0JBQVcsR0FBZSxTQUFTLENBQUM7SUFZZ0MsQ0FBQztJQUVyRSxzQkFBc0I7SUFDdEIsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzRSxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM3RSxDQUFDOzhHQWpGUSxxQkFBcUI7a0dBQXJCLHFCQUFxQix5cEJDNUJsQyw4SEFHQSxvS0R1QmMsc0JBQXNCOzsyRkFFdkIscUJBQXFCO2tCQW5CakMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBYVgsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1AsQ0FBQyxzQkFBc0IsQ0FBQztpR0FNakMsRUFBRTtzQkFGRCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLFNBQVM7Z0JBTXRCLFNBQVM7c0JBRlIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBTTlCLGNBQWM7c0JBRmIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBTW5DLGVBQWU7c0JBRmQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBT3BDLE9BQU87c0JBRE4sS0FBSztnQkFNTixLQUFLO3NCQUZKLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsWUFBWTtnQkFLekIsYUFBYTtzQkFEWixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxXQUFXO3VCQUFDLHlCQUF5QjtnQkFLdEMsa0JBQWtCO3NCQURqQixXQUFXO3VCQUFDLGlDQUFpQztnQkFLOUMsV0FBVztzQkFEVixXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnVzeUluZGljYXRvckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXN5LWluZGljYXRvcic7XG5pbXBvcnQgeyBDYXJvdXNlbEl0ZW1JbnRlcmZhY2UgfSBmcm9tICcuLi9jYXJvdXNlbC5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgVmlzaWJpbGl0eSA9ICd2aXNpYmxlJyB8ICdoaWRkZW4nO1xuXG5sZXQgY2Fyb3VzZWxJdGVtQ291bnRlciA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtY2Fyb3VzZWwtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICAuZmQtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuZmQtY2Fyb3VzZWxfX2l0ZW0tLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQnVzeUluZGljYXRvckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQ2Fyb3VzZWxJdGVtQ29tcG9uZW50PFQgPSBhbnk+IGltcGxlbWVudHMgQ2Fyb3VzZWxJdGVtSW50ZXJmYWNlIHtcbiAgICAvKiogSWQgb2YgdGhlIENhcm91c2VsIGl0ZW1zLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBpZCA9IGBmZC1jYXJvdXNlbC1pdGVtLSR7Y2Fyb3VzZWxJdGVtQ291bnRlcisrfWA7XG5cbiAgICAvKiogU2V0cyBhcmlhLWxhYmVsIGF0dHJpYnV0ZSBmb3IgY2Fyb3VzZWwgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBTZXRzIGFyaWEtbGFiZWxsZWRieSBhdHRyaWJ1dGUgZm9yIGNhcm91c2VsIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsbGVkYnknKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgZm9yIGNhcm91c2VsIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JylcbiAgICBhcmlhRGVzY3JpYmVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBMb2FkaW5nIGluZGljYXRvciB3aGVuIGl0ZW0gaXMgbm90IHlldCBsb2FkZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBTZXRzIHRvb2x0aXAgZm9yIGNhcm91c2VsIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci50aXRsZScpXG4gICAgdGl0bGUgPSBudWxsO1xuXG4gICAgLyoqIEluaXRpYWwgaGVpZ2h0IHZhbHVlLCBuZWVkZWQgd2hlbiBjYXJvdXNlbCBpcyBpbnNpZGUgcG9wb3ZlciAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5pdGlhbEhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqIEluaXRpYWwgaGVpZ2h0IHZhbHVlLCBuZWVkZWQgd2hlbiBjYXJvdXNlbCBpcyBpbnNpZGUgcG9wb3ZlciAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5pdGlhbFdpZHRoOiBudW1iZXI7XG5cbiAgICAvKiogVmFsdWUgb2YgY2Fyb3VzZWwgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmFsdWU6IFQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtY2Fyb3VzZWxfX2l0ZW0nKVxuICAgIGNhcm91c2VsSXRlbSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtY2Fyb3VzZWxfX2l0ZW0tLWFjdGl2ZScpXG4gICAgY2Fyb3VzZWxJdGVtQWN0aXZlID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuIEhpZGUvc2hvdyBzbGlkZSwgdXNlZnVsIGZvciBtYW5hZ2luZyB0YWIgb3JkZXIgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnZpc2liaWxpdHknKVxuICAgIF92aXNpYmlsaXR5OiBWaXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXQgdmlzaWJpbGl0eSh2aXNpYmlsaXR5OiBWaXNpYmlsaXR5KSB7XG4gICAgICAgIHRoaXMuX3Zpc2liaWxpdHkgPSB2aXNpYmlsaXR5O1xuICAgIH1cblxuICAgIGdldCB2aXNpYmlsaXR5KCk6IFZpc2liaWxpdHkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJpbGl0eTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gICAgLyoqIE5hdGl2ZSBlbGVtZW50ICAqL1xuICAgIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKiogV2lkdGggb2YgZWxlbWVudCAqL1xuICAgIGdldFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgdGhpcy5pbml0aWFsV2lkdGg7XG4gICAgfVxuXG4gICAgLyoqIEhlaWdodCBvZiBlbGVtZW50ICovXG4gICAgZ2V0SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IHx8IHRoaXMuaW5pdGlhbEhlaWdodDtcbiAgICB9XG59XG4iLCI8ZmQtYnVzeS1pbmRpY2F0b3IgW2xvYWRpbmddPVwibG9hZGluZ1wiIFtzdHlsZS5tYXgtd2lkdGguJV09XCIxMDBcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2ZkLWJ1c3ktaW5kaWNhdG9yPlxuIl19
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
42
42
  type: HostBinding,
43
43
  args: ['attr.id']
44
44
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxRSxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQU81QixNQUFNLE9BQU8scUJBQXFCO0lBa0I5QixjQUFjO0lBQ2QsWUFBNkIsV0FBb0M7UUFBcEMsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBTmpFLDBEQUEwRDtRQUcxRCxPQUFFLEdBQVcsbUJBQW1CLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztJQUdXLENBQUM7SUFFckUsc0JBQXNCO0lBQ3RCLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDMUMsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0UsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixTQUFTO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDN0UsQ0FBQzs4R0FsQ1EscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO2lHQUlHLEtBQUs7c0JBREosS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQU1OLEVBQUU7c0JBRkQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxubGV0IGNhcm91c2VsSXRlbUNvdW50ZXIgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZC1jYXJvdXNlbC1pdGVtXSwgW2ZkQ2Fyb3VzZWxJdGVtXScsXG4gICAgZXhwb3J0QXM6ICdmZENhcm91c2VsSXRlbScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbEl0ZW1EaXJlY3RpdmUge1xuICAgIC8qKiBWYWx1ZSBvZiB0aGUgaXRlbSAsIHRvIGtlZXAgc29tZSBpbmZvcm1hdGlvbiBpbnNpZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBhbnk7XG5cbiAgICAvKiogSW5pdGlhbCBoZWlnaHQgdmFsdWUsIG5lZWRlZCB3aGVuIGNhcm91c2VsIGlzIGluc2lkZSBwb3BvdmVyICovXG4gICAgQElucHV0KClcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXI7XG5cbiAgICAvKiogSW5pdGlhbCBoZWlnaHQgdmFsdWUsIG5lZWRlZCB3aGVuIGNhcm91c2VsIGlzIGluc2lkZSBwb3BvdmVyICovXG4gICAgQElucHV0KClcbiAgICBpbml0aWFsV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBDYXJvdXNlbCBJZCwgaXQgaGFzIHNvbWUgZGVmYXVsdCB2YWx1ZSBpZiBub3Qgc2V0LCAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgaWQ6IHN0cmluZyA9ICdjYXJvdXNlbC1pdGVtLWlkLScgKyBjYXJvdXNlbEl0ZW1Db3VudGVyKys7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gICAgLyoqIE5hdGl2ZSBlbGVtZW50ICAqL1xuICAgIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKiogV2lkdGggb2YgZWxlbWVudCAqL1xuICAgIGdldFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgdGhpcy5pbml0aWFsV2lkdGg7XG4gICAgfVxuXG4gICAgLyoqIEhlaWdodCBvZiBlbGVtZW50ICovXG4gICAgZ2V0SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IHx8IHRoaXMuaW5pdGlhbEhlaWdodDtcbiAgICB9XG59XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxRSxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQU81QixNQUFNLE9BQU8scUJBQXFCO0lBa0I5QixjQUFjO0lBQ2QsWUFBNkIsV0FBb0M7UUFBcEMsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBTmpFLDBEQUEwRDtRQUcxRCxPQUFFLEdBQVcsbUJBQW1CLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztJQUdXLENBQUM7SUFFckUsc0JBQXNCO0lBQ3RCLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDMUMsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0UsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixTQUFTO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDN0UsQ0FBQzs4R0FsQ1EscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO2lHQUlHLEtBQUs7c0JBREosS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQU1OLEVBQUU7c0JBRkQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxubGV0IGNhcm91c2VsSXRlbUNvdW50ZXIgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZC1jYXJvdXNlbC1pdGVtXSwgW2ZkQ2Fyb3VzZWxJdGVtXScsXG4gICAgZXhwb3J0QXM6ICdmZENhcm91c2VsSXRlbScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbEl0ZW1EaXJlY3RpdmU8VCA9IHVua25vd24+IHtcbiAgICAvKiogVmFsdWUgb2YgdGhlIGl0ZW0gLCB0byBrZWVwIHNvbWUgaW5mb3JtYXRpb24gaW5zaWRlICovXG4gICAgQElucHV0KClcbiAgICB2YWx1ZTogVDtcblxuICAgIC8qKiBJbml0aWFsIGhlaWdodCB2YWx1ZSwgbmVlZGVkIHdoZW4gY2Fyb3VzZWwgaXMgaW5zaWRlIHBvcG92ZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIGluaXRpYWxIZWlnaHQ6IG51bWJlcjtcblxuICAgIC8qKiBJbml0aWFsIGhlaWdodCB2YWx1ZSwgbmVlZGVkIHdoZW4gY2Fyb3VzZWwgaXMgaW5zaWRlIHBvcG92ZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIGluaXRpYWxXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqIENhcm91c2VsIElkLCBpdCBoYXMgc29tZSBkZWZhdWx0IHZhbHVlIGlmIG5vdCBzZXQsICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBpZDogc3RyaW5nID0gJ2Nhcm91c2VsLWl0ZW0taWQtJyArIGNhcm91c2VsSXRlbUNvdW50ZXIrKztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgICAvKiogTmF0aXZlIGVsZW1lbnQgICovXG4gICAgZ2V0IGVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBXaWR0aCBvZiBlbGVtZW50ICovXG4gICAgZ2V0V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB8fCB0aGlzLmluaXRpYWxXaWR0aDtcbiAgICB9XG5cbiAgICAvKiogSGVpZ2h0IG9mIGVsZW1lbnQgKi9cbiAgICBnZXRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgfHwgdGhpcy5pbml0aWFsSGVpZ2h0O1xuICAgIH1cbn1cbiJdfQ==
@@ -308,4 +308,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
308
308
  type: ViewChild,
309
309
  args: [CdkPortalOutlet, { static: false }]
310
310
  }] } });
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQVUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBRUgsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEYsT0FBTyxFQUNILG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsK0JBQStCLEVBQ2xDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RGLE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBRSwwQkFBMEIsRUFBb0IsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUU5RixJQUFJLGdCQUFnQixHQUFH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QUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1BvcnRhbE91dGxldCwgRG9tUG9ydGFsLCBQb3J0YWwsIFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtU3RhdGVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQge1xuICAgIENvbnRlbnREZW5zaXR5TW9kdWxlLFxuICAgIENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsXG4gICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVyc1xufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IEZvcm1JdGVtQ29udHJvbCwgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRkRfQ0hFQ0tCT1hfQ09NUE9ORU5UIH0gZnJvbSAnLi4vdG9rZW5zJztcbmltcG9ydCB7IEZEX0NIRUNLQk9YX1ZBTFVFU19ERUZBVUxULCBGZENoZWNrYm94VmFsdWVzIH0gZnJvbSAnLi9mZC1jaGVja2JveC12YWx1ZXMuaW50ZXJmYWNlJztcblxubGV0IGNoZWNrYm94VW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgdHlwZSBGZENoZWNrYm94VHlwZXMgPSAnY2hlY2tlZCcgfCAndW5jaGVja2VkJyB8ICdpbmRldGVybWluYXRlJyB8ICdmb3JjZS1jaGVja2VkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1jaGVja2JveCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hlY2tib3hDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfQ0hFQ0tCT1hfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IENoZWNrYm94Q29tcG9uZW50XG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lzdGVyRm9ybUl0ZW1Db250cm9sKENoZWNrYm94Q29tcG9uZW50KSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXG4gICAgXSxcbiAgICBob3N0OiB7ICdbYXR0ci50YWJpbmRleF0nOiAnLTEnIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgRm9ybXNNb2R1bGUsIE5nQ2xhc3MsIENvbnRlbnREZW5zaXR5TW9kdWxlLCBQb3J0YWxNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgRm9ybUl0ZW1Db250cm9sIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpXG4gICAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdsYWJlbEVsZW1lbnQnKVxuICAgIGxhYmVsRWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBXaGV0aGVyIGlucHV0IGxhYmVsIHNob3VsZCBiZSB3cmFwcGVkICovXG4gICAgQElucHV0KCkgd3JhcExhYmVsOiBib29sZWFuO1xuXG4gICAgLyoqIFZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBsYWJlbCBjb21wYXJlZCB0byB0aGUgY2hlY2tib3ggYm94ICovXG4gICAgQElucHV0KCkgdmFsaWduTGFiZWw6ICd0b3AnIHwgJ21pZGRsZScgPSAnbWlkZGxlJztcblxuICAgIC8qKiBTZXRzIHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEN1cnJlbnQgc2VsZWN0aW9uIHN0YXRlIG9mIHRoZSBjaGVja2JveCBjb21wb25lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrYm94VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWRlc2NyaWJlZGJ5YCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhRGVzY3JpYmVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogc2V0cyBjaGVja2JveCB0b29sdGlwICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBTZXRzIFtpZF0gcHJvcGVydHkgb2YgaW5wdXQsIGJpbmRzIGlucHV0IHdpdGggaW5wdXQgbGFiZWwgdXNpbmcgW2Zvcl0gcHJvcGVydHkuICovXG4gICAgQElucHV0KClcbiAgICBpbnB1dElkID0gYGZkLWNoZWNrYm94LSR7Y2hlY2tib3hVbmlxdWVJZCsrfWA7XG5cbiAgICAvKiogU3RhdGUgb2YgY29udHJvbCwgY2hhbmdlcyB2aXN1YWwgYXBwZWFyYW5jZSBvZiBjb250cm9sLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGU/OiBGb3JtU3RhdGVzO1xuXG4gICAgLyoqIFNldHMgW25hbWVdIHByb3BlcnR5IG9mIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFNldHMgdGV4dCBvZiBjb250cm9sIGxhYmVsLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBBbGxvd3MgdG8gZGlzYWJsZS9lbmFibGUgY29udHJvbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqIEVuYWJsZXMgY29udHJvbHMgdGhpcmQgc3RhdGUuICovXG4gICAgQElucHV0KClcbiAgICB0cmlzdGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEFsbG93cyB0byBwcmV2ZW50IHVzZXIgZnJvbSBtYW51YWxseSBzZWxlY3RpbmcgY29udHJvbHMgdGhpcmQgc3RhdGUuICovXG4gICAgQElucHV0KClcbiAgICB0cmlzdGF0ZVNlbGVjdGFibGUgPSBmYWxzZTtcblxuICAgIC8qKiBBc3NpZ25zIGdpdmVuIGNsYXNzIHRvIGNoZWNrYm94IGxhYmVsIGVsZW1lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsQ2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBJZiBpdCBpcyBtYW5kYXRvcnkgZmllbGQgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY2hlY2tib3ggc2hvdWxkIGJlIHJlbmRlcmVkIGluIGRpc3BsYXktb25seSBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheU9ubHkgPSBmYWxzZTtcblxuICAgIC8qKiBTZXRzIHZhbHVlcyByZXR1cm5lZCBieSBjb250cm9sLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlcyhjaGVja2JveFZhbHVlczogRmRDaGVja2JveFZhbHVlcykge1xuICAgICAgICB0aGlzLl92YWx1ZXMgPSB7IC4uLkZEX0NIRUNLQk9YX1ZBTFVFU19ERUZBVUxULCAuLi4oY2hlY2tib3hWYWx1ZXMgPz8ge30pIH07XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlcygpOiBGZENoZWNrYm94VmFsdWVzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciBjaGVja2JveCBzaG91bGQgYmUgcmVuZGVyZWQgc3RhbmRhbG9uZSAod2l0aG91dCBhbnkgdGV4dCkuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1jaGVja2JveC0tc3RhbmRhbG9uZScpXG4gICAgQElucHV0KClcbiAgICBzdGFuZGFsb25lID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUucG9zaXRpb24nKVxuICAgIHJlYWRvbmx5IHBvc2l0aW9uID0gJ3JlbGF0aXZlJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5vdXRsaW5lJylcbiAgICByZWFkb25seSBvdXRsaW5lID0gJ25vbmUnO1xuXG4gICAgLyoqIEVtaXRzIGV2ZW50IG9uIGZvY3VzIGNoYW5nZSAqL1xuICAgIEBPdXRwdXQoKSBmb2N1c0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdkb21Qb3J0YWwnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RvbVBvcnRhbENvbnRlbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcG9ydGFsT3V0bGV0OiBDZGtQb3J0YWxPdXRsZXQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wcm9qZWN0ZWREb21Qb3J0YWw6IFBvcnRhbDxhbnk+O1xuXG4gICAgLyoqIFN0b3JlcyBjdXJyZW50IGNoZWNrYm94IHZhbHVlLiAqL1xuICAgIGNoZWNrYm94VmFsdWU6IGFueTtcbiAgICAvKiogU3RvcmVzIGN1cnJlbnQgY2hlY2tib3ggc3RhdGUuICovXG4gICAgY2hlY2tib3hTdGF0ZTogRmRDaGVja2JveFR5cGVzO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcHJvamVjdGVkQ29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gVXNlZCB0byBkZWZpbmUgaWYgY29udHJvbCBpcyBpbiAnaW5kZXRlcm1pbmF0ZScgc3RhdGUuKi9cbiAgICBnZXQgaXNJbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2JveFN0YXRlID09PSAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVXNlZCB0byBkZWZpbmUgaWYgY29udHJvbCBpcyBpbiAnY2hlY2tlZCcgLyAndW5jaGVja2VkJyBzdGF0ZS4gKi9cbiAgICBnZXQgaXNDaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2JveFN0YXRlID09PSAnY2hlY2tlZCcgfHwgdGhpcy5jaGVja2JveFN0YXRlID09PSAnZm9yY2UtY2hlY2tlZCc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gdmFsdWVzIHJldHVybmVkIGJ5IGNvbnRyb2wuICovXG4gICAgcHJpdmF0ZSBfdmFsdWVzOiBGZENoZWNrYm94VmFsdWVzID0geyAuLi5GRF9DSEVDS0JPWF9WQUxVRVNfREVGQVVMVCB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZG9tUG9ydGFsOiBEb21Qb3J0YWw8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudD4sXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3RhYkluZGV4VmFsdWUnKSBwdWJsaWMgdGFiSW5kZXhWYWx1ZTogbnVtYmVyID0gMCxcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHJlYWRvbmx5IF9jb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMudGFiSW5kZXhWYWx1ZSA9IHRhYkluZGV4VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gUmVmZXJlbmNlIHRvIGNhbGxiYWNrIHByb3ZpZGVkIGJ5IEZvcm1Db250cm9sLiovXG4gICAgcHVibGljIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuICAgIC8qKiBAaGlkZGVuIFJlZmVyZW5jZSB0byBjYWxsYmFjayBwcm92aWRlZCBieSBGb3JtQ29udHJvbC4qL1xuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuY29uc3VtZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50UmVmOiB0aGlzLmlucHV0RWxlbWVudFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50UmVmOiB0aGlzLmxhYmVsRWxlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2RvbVBvcnRhbCA9IG5ldyBEb21Qb3J0YWwodGhpcy5fZG9tUG9ydGFsQ29udGVudCk7XG4gICAgICAgIHRoaXMuX3Byb2plY3RlZENvbnRlbnQgPSAhIXRoaXMuX2RvbVBvcnRhbC5lbGVtZW50LmlubmVySFRNTC50cmltKCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fcG9ydGFsT3V0bGV0Py5hdHRhY2godGhpcy5fZG9tUG9ydGFsKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICAgKiAtIHNldHMgbmV3IGNvbnRyb2wgdmFsdWVcbiAgICAgKiAtIHVwZGF0ZXMgY29udHJvbCBzdGF0ZVxuICAgICAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoZWNrYm94VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fc2V0U3RhdGUoKTtcbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZSBtZXRob2QgLSBzZXRzIG9uVmFsdWVDaGFuZ2UgY2FsbGJhY2suKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIG1ldGhvZCAtIHNldHMgb25Ub3VjaGVkIGNhbGxiYWNrLiovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIENhbGxlZCBieSBGb3JtQ29udHJvbCAtIHVzZWQgdG8gZGlzYWJsZSAvIGVuYWJsZSBjb250cm9sLiovXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQmFzZWQgb24gY3VycmVudCBjb250cm9sIHN0YXRlOlxuICAgICAqIC0gc2V0cyBuZXh0IGNvbnRyb2wgdmFsdWVcbiAgICAgKiAtIGVtaXRzIG5ldyBjb250cm9sIHZhbHVlXG4gICAgICogLSB1cGRhdGVzIGNvbnRyb2wgc3RhdGUgYmFzZWQgb24gbmV3IGNvbnRyb2wgdmFsdWVcbiAgICAgKiAqL1xuICAgIG5leHRWYWx1ZShwcmV2aW91c1ZhbHVlPzogRmRDaGVja2JveFR5cGVzKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAocHJldmlvdXNWYWx1ZSB8fCB0aGlzLmNoZWNrYm94U3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2NoZWNrZWQnOlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hWYWx1ZSA9IHRoaXMudmFsdWVzLmZhbHNlVmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd1bmNoZWNrZWQnOlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hWYWx1ZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJpc3RhdGUgJiYgdGhpcy50cmlzdGF0ZVNlbGVjdGFibGUgPyB0aGlzLnZhbHVlcy50aGlyZFN0YXRlVmFsdWUgOiB0aGlzLnZhbHVlcy50cnVlVmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdpbmRldGVybWluYXRlJzpcbiAgICAgICAgICAgIGNhc2UgJ2ZvcmNlLWNoZWNrZWQnOlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hWYWx1ZSA9IHRoaXMudmFsdWVzLnRydWVWYWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdjaGVja2VkJywgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveFZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlzdGF0ZSAmJiB0aGlzLnRyaXN0YXRlU2VsZWN0YWJsZSA/IHRoaXMudmFsdWVzLnRoaXJkU3RhdGVWYWx1ZSA6IHRoaXMudmFsdWVzLnRydWVWYWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXRTdGF0ZSgpO1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UodGhpcy5jaGVja2JveFZhbHVlKTtcbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGhhbmRsZXMgYmx1ciBldmVudCAqL1xuICAgIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vblRvdWNoZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb2N1c0NoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBoYW5kbGVzIGZvY3VzIGV2ZW50ICovXG4gICAgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBoYW5kbGVzIGNsaWNrIG9uIHRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggbmF0aXZlIGNoZWNrYm94IGlucHV0ICovXG4gICAgX29uTGFiZWxDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBXZSBoYXZlIHRvIHN0b3AgcHJvcGFnYXRpb24gZm9yIGNsaWNrIGV2ZW50cyBvbiB0aGUgaW5wdXQgbGFiZWwuXG4gICAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gYSB1c2VyIGNsaWNrcyBvbiBhIGxhYmVsIGVsZW1lbnQsIGEgZ2VuZXJhdGVkIGNsaWNrIGV2ZW50IHdpbGwgYmVcbiAgICAgICAgLy8gZGlzcGF0Y2hlZCBvbiB0aGUgYXNzb2NpYXRlZCBpbnB1dCBlbGVtZW50LiBUaGlzIHdpbGwgbGVhZCB0byBkdXBsaWNhdGVkIFwiY2xpY2tcIiBldmVudCBkaXNwYXRjaGVkIGZyb20gdGhlIGNvbXBvbmVudFxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAvLyBJZiB3ZSBoYXZlIGRpc3BsYXktb25seSBtb2RlLCBzdG9wIGFueSBwb3NzaWJsZSBhY3Rpb25zIGJ5IGxhYmVsIGNsaWNrIGV2ZW50LlxuICAgICAgICB0aGlzLl9oYW5kbGVEaXNwbGF5T25seU1vZGUoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBFdmVudCBoYW5kbGVyIGZvciBjYXNlcyB3aGVuIGNoZWNrYm94IHdhcyB0b2dnbGVkIHdpdGggdGhlIGhlbHAgb2Yga2V5Ym9hcmQuXG4gICAgICogQHBhcmFtIGV2ZW50XG4gICAgICovXG4gICAgX29uTGFiZWxLZXlkb3duKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGRpc3BsYXktb25seSBtb2RlLCBzdG9wIGFueSBwb3NzaWJsZSBhY3Rpb25zIGJ5IGxhYmVsIGNsaWNrIGV2ZW50LlxuICAgICAgICB0aGlzLl9oYW5kbGVEaXNwbGF5T25seU1vZGUoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGhhbmRsZXMgY2xpY2sgb24gdGhlIG5hdGl2ZSBjaGVja2JveCBpbnB1dCAqL1xuICAgIF9vbklucHV0Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gV2hlbiB0aGVyZSdzIGEgY2xpY2sgZXZlbnQgZGlzcGF0Y2hlZCBmcm9tIHRoZSBpbnB1dCwgd2UgaGF2ZSB0byBjYXRjaCBpdCwgcHJvY2VzcyBhbmQgdGhlbiByZS1kaXNwYXRjaCBpdCBmdXJ0aGVyLlxuICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCBpbiBvcmRlciB0byBzZXQgdGhlIHZhbHVlIHRvIHRoZSBjb21wb25lbnQgYmVmb3JlIGFueSBleHRlcm5hbCBsaXN0ZW5lcnMgd2lsbCByZWNlaXZlIGl0LlxuICAgICAgICAvLyBPdGhlcndpc2UgY2hlY2tib3ggbWlnaHQgYmUgb3V0IG9mIHN5bmMuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5T25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmV4dFZhbHVlKCk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoZXZlbnQudHlwZSwgZXZlbnQpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZURpc3BsYXlPbmx5TW9kZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc3BsYXlPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQmFzZWQgb24gY3VycmVudCBjb250cm9sIHZhbHVlIHNldHMgbmV3IGNvbnRyb2wgc3RhdGUuICovXG4gICAgcHJpdmF0ZSBfc2V0U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmIChlcXVhbCh0aGlzLmNoZWNrYm94VmFsdWUsIHRoaXMudmFsdWVzLnRydWVWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3hTdGF0ZSA9ICdjaGVja2VkJztcbiAgICAgICAgfSBlbHNlIGlmIChlcXVhbCh0aGlzLmNoZWNrYm94VmFsdWUsIHRoaXMudmFsdWVzLmZhbHNlVmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRyaXN0YXRlICYmIGVxdWFsKHRoaXMuY2hlY2tib3hWYWx1ZSwgdGhpcy52YWx1ZXMudGhpcmRTdGF0ZVZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2JveFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmNoZWNrYm94VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gaW4gY29tcG9uZW50ICovXG4gICAgcHJpdmF0ZSBfZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZlsnZGVzdHJveWVkJ10pIHtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxpbnB1dFxuICAgICNpbnB1dEVsZW1lbnRcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIGNsYXNzPVwiZmQtY2hlY2tib3hcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtpbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleFZhbHVlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW25nQ2xhc3NdPVwiW2Rpc3BsYXlPbmx5ID8gJ2lzLWRpc3BsYXknIDogJycsIHN0YXRlID8gJ2lzLScgKyBzdGF0ZSA6ICcnXVwiXG4gICAgKGNsaWNrKT1cIl9vbklucHV0Q2xpY2soJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwiX29uQmx1cigpXCJcbiAgICAoZm9jdXMpPVwiX29uRm9jdXMoKVwiXG4gICAgKGtleXVwLmVudGVyKT1cIl9vbkxhYmVsS2V5ZG93bigkZXZlbnQpXCJcbiAgICAoa2V5dXAuc3BhY2UpPVwiX29uTGFiZWxLZXlkb3duKCRldmVudClcIlxuLz5cblxuPGxhYmVsXG4gICAgY2xhc3M9XCJmZC1jaGVja2JveF9fbGFiZWxcIlxuICAgICNsYWJlbEVsZW1lbnRcbiAgICBbZm9yXT1cImlucHV0SWRcIlxuICAgIFtjbGFzc109XCJsYWJlbENsYXNzXCJcbiAgICBbYXR0ci50aXRsZV09XCJ0aXRsZVwiXG4gICAgW2NsYXNzLmZkLWNoZWNrYm94X19sYWJlbC0tcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtjbGFzcy5mZC1jaGVja2JveF9fbGFiZWwtLXdyYXBdPVwid3JhcExhYmVsICYmIHZhbGlnbkxhYmVsID09PSAnbWlkZGxlJ1wiXG4gICAgW2NsYXNzLmZkLWNoZWNrYm94X19sYWJlbC0td3JhcC10b3AtYWxpZ25lZF09XCJ3cmFwTGFiZWwgJiYgdmFsaWduTGFiZWwgPT09ICd0b3AnXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwiX29uTGFiZWxLZXlkb3duKCRldmVudClcIlxuICAgIChrZXl1cC5zcGFjZSk9XCJfb25MYWJlbEtleWRvd24oJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cIl9vbkxhYmVsQ2xpY2soJGV2ZW50KVwiXG4+XG4gICAgPHNwYW4gY2xhc3M9XCJmZC1jaGVja2JveF9fY2hlY2ttYXJrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJmZC1jaGVja2JveF9fbGFiZWwtY29udGFpbmVyXCIgKm5nSWY9XCJsYWJlbCB8fCBfcHJvamVjdGVkQ29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1jaGVja2JveF9fdGV4dFwiICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxhYmVsXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWNoZWNrYm94X190ZXh0XCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbGFiZWw+XG5cbjxzcGFuIFthdHRyLmhpZGRlbl09XCIhX3Byb2plY3RlZENvbnRlbnQgPyB0cnVlIDogbnVsbFwiICNkb21Qb3J0YWw+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9zcGFuPlxuIl19
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQVUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBRUgsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEYsT0FBTyxFQUNILG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsK0JBQStCLEVBQ2xDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RGLE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBRSwwQkFBMEIsRUFBb0IsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUU5RixJQUFJLGdCQUFnQixHQUFH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QyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrUG9ydGFsT3V0bGV0LCBEb21Qb3J0YWwsIFBvcnRhbCwgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBBdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgQ29udGVudERlbnNpdHlNb2R1bGUsXG4gICAgQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db250cm9sLCByZWdpc3RlckZvcm1JdGVtQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGRF9DSEVDS0JPWF9DT01QT05FTlQgfSBmcm9tICcuLi90b2tlbnMnO1xuaW1wb3J0IHsgRkRfQ0hFQ0tCT1hfVkFMVUVTX0RFRkFVTFQsIEZkQ2hlY2tib3hWYWx1ZXMgfSBmcm9tICcuL2ZkLWNoZWNrYm94LXZhbHVlcy5pbnRlcmZhY2UnO1xuXG5sZXQgY2hlY2tib3hVbmlxdWVJZCA9IDA7XG5cbmV4cG9ydCB0eXBlIEZkQ2hlY2tib3hUeXBlcyA9ICdjaGVja2VkJyB8ICd1bmNoZWNrZWQnIHwgJ2luZGV0ZXJtaW5hdGUnIHwgJ2ZvcmNlLWNoZWNrZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9DSEVDS0JPWF9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ2hlY2tib3hDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woQ2hlY2tib3hDb21wb25lbnQpLFxuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKClcbiAgICBdLFxuICAgIGhvc3Q6IHsgJ1thdHRyLnRhYmluZGV4XSc6ICctMScgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBGb3Jtc01vZHVsZSwgTmdDbGFzcywgQ29udGVudERlbnNpdHlNb2R1bGUsIFBvcnRhbE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQ8VCA9IHVua25vd24+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgRm9ybUl0ZW1Db250cm9sIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpXG4gICAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdsYWJlbEVsZW1lbnQnKVxuICAgIGxhYmVsRWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBXaGV0aGVyIGlucHV0IGxhYmVsIHNob3VsZCBiZSB3cmFwcGVkICovXG4gICAgQElucHV0KCkgd3JhcExhYmVsOiBib29sZWFuO1xuXG4gICAgLyoqIFZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBsYWJlbCBjb21wYXJlZCB0byB0aGUgY2hlY2tib3ggYm94ICovXG4gICAgQElucHV0KCkgdmFsaWduTGFiZWw6ICd0b3AnIHwgJ21pZGRsZScgPSAnbWlkZGxlJztcblxuICAgIC8qKiBTZXRzIHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEN1cnJlbnQgc2VsZWN0aW9uIHN0YXRlIG9mIHRoZSBjaGVja2JveCBjb21wb25lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tib3hWYWx1ZTtcbiAgICB9XG5cbiAgICAvKiogU2V0cyB0aGUgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2V0cyB0aGUgYGFyaWEtZGVzY3JpYmVkYnlgIGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFEZXNjcmliZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBzZXRzIGNoZWNrYm94IHRvb2x0aXAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgW2lkXSBwcm9wZXJ0eSBvZiBpbnB1dCwgYmluZHMgaW5wdXQgd2l0aCBpbnB1dCBsYWJlbCB1c2luZyBbZm9yXSBwcm9wZXJ0eS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlucHV0SWQgPSBgZmQtY2hlY2tib3gtJHtjaGVja2JveFVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKiBTdGF0ZSBvZiBjb250cm9sLCBjaGFuZ2VzIHZpc3VhbCBhcHBlYXJhbmNlIG9mIGNvbnRyb2wuICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZT86IEZvcm1TdGF0ZXM7XG5cbiAgICAvKiogU2V0cyBbbmFtZV0gcHJvcGVydHkgb2YgaW5wdXQuICovXG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKiogU2V0cyB0ZXh0IG9mIGNvbnRyb2wgbGFiZWwuICovXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIEFsbG93cyB0byBkaXNhYmxlL2VuYWJsZSBjb250cm9sLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogRW5hYmxlcyBjb250cm9scyB0aGlyZCBzdGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRyaXN0YXRlID0gZmFsc2U7XG5cbiAgICAvKiogQWxsb3dzIHRvIHByZXZlbnQgdXNlciBmcm9tIG1hbnVhbGx5IHNlbGVjdGluZyBjb250cm9scyB0aGlyZCBzdGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRyaXN0YXRlU2VsZWN0YWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEFzc2lnbnMgZ2l2ZW4gY2xhc3MgdG8gY2hlY2tib3ggbGFiZWwgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWxDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIElmIGl0IGlzIG1hbmRhdG9yeSBmaWVsZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBzaG91bGQgYmUgcmVuZGVyZWQgaW4gZGlzcGxheS1vbmx5IG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5T25seSA9IGZhbHNlO1xuXG4gICAgLyoqIFNldHMgdmFsdWVzIHJldHVybmVkIGJ5IGNvbnRyb2wuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWVzKGNoZWNrYm94VmFsdWVzOiBGZENoZWNrYm94VmFsdWVzKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlcyA9IHsgLi4uRkRfQ0hFQ0tCT1hfVkFMVUVTX0RFRkFVTFQsIC4uLihjaGVja2JveFZhbHVlcyA/PyB7fSkgfTtcbiAgICB9XG5cbiAgICBnZXQgdmFsdWVzKCk6IEZkQ2hlY2tib3hWYWx1ZXMge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVzO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIGNoZWNrYm94IHNob3VsZCBiZSByZW5kZXJlZCBzdGFuZGFsb25lICh3aXRob3V0IGFueSB0ZXh0KS4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWNoZWNrYm94LS1zdGFuZGFsb25lJylcbiAgICBASW5wdXQoKVxuICAgIHN0YW5kYWxvbmUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb3NpdGlvbicpXG4gICAgcmVhZG9ubHkgcG9zaXRpb24gPSAncmVsYXRpdmUnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm91dGxpbmUnKVxuICAgIHJlYWRvbmx5IG91dGxpbmUgPSAnbm9uZSc7XG5cbiAgICAvKiogRW1pdHMgZXZlbnQgb24gZm9jdXMgY2hhbmdlICovXG4gICAgQE91dHB1dCgpIGZvY3VzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RvbVBvcnRhbCcpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZG9tUG9ydGFsQ29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wb3J0YWxPdXRsZXQ6IENka1BvcnRhbE91dGxldDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Byb2plY3RlZERvbVBvcnRhbDogUG9ydGFsPGFueT47XG5cbiAgICAvKiogU3RvcmVzIGN1cnJlbnQgY2hlY2tib3ggdmFsdWUuICovXG4gICAgY2hlY2tib3hWYWx1ZTogVDtcbiAgICAvKiogU3RvcmVzIGN1cnJlbnQgY2hlY2tib3ggc3RhdGUuICovXG4gICAgY2hlY2tib3hTdGF0ZTogRmRDaGVja2JveFR5cGVzO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcHJvamVjdGVkQ29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gVXNlZCB0byBkZWZpbmUgaWYgY29udHJvbCBpcyBpbiAnaW5kZXRlcm1pbmF0ZScgc3RhdGUuKi9cbiAgICBnZXQgaXNJbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2JveFN0YXRlID09PSAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVXNlZCB0byBkZWZpbmUgaWYgY29udHJvbCBpcyBpbiAnY2hlY2tlZCcgLyAndW5jaGVja2VkJyBzdGF0ZS4gKi9cbiAgICBnZXQgaXNDaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2JveFN0YXRlID09PSAnY2hlY2tlZCcgfHwgdGhpcy5jaGVja2JveFN0YXRlID09PSAnZm9yY2UtY2hlY2tlZCc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gdmFsdWVzIHJldHVybmVkIGJ5IGNvbnRyb2wuICovXG4gICAgcHJpdmF0ZSBfdmFsdWVzOiBGZENoZWNrYm94VmFsdWVzID0geyAuLi5GRF9DSEVDS0JPWF9WQUxVRVNfREVGQVVMVCB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZG9tUG9ydGFsOiBEb21Qb3J0YWw8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudD4sXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3RhYkluZGV4VmFsdWUnKSBwdWJsaWMgdGFiSW5kZXhWYWx1ZTogbnVtYmVyID0gMCxcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHJlYWRvbmx5IF9jb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMudGFiSW5kZXhWYWx1ZSA9IHRhYkluZGV4VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gUmVmZXJlbmNlIHRvIGNhbGxiYWNrIHByb3ZpZGVkIGJ5IEZvcm1Db250cm9sLiovXG4gICAgcHVibGljIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuICAgIC8qKiBAaGlkZGVuIFJlZmVyZW5jZSB0byBjYWxsYmFjayBwcm92aWRlZCBieSBGb3JtQ29udHJvbC4qL1xuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlOiAodmFsdWU6IFQpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eU9ic2VydmVyLmNvbnN1bWUoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dEVsZW1lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZWxlbWVudFJlZjogdGhpcy5sYWJlbEVsZW1lbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9kb21Qb3J0YWwgPSBuZXcgRG9tUG9ydGFsKHRoaXMuX2RvbVBvcnRhbENvbnRlbnQpO1xuICAgICAgICB0aGlzLl9wcm9qZWN0ZWRDb250ZW50ID0gISF0aGlzLl9kb21Qb3J0YWwuZWxlbWVudC5pbm5lckhUTUwudHJpbSgpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX3BvcnRhbE91dGxldD8uYXR0YWNoKHRoaXMuX2RvbVBvcnRhbCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAgICogLSBzZXRzIG5ldyBjb250cm9sIHZhbHVlXG4gICAgICogLSB1cGRhdGVzIGNvbnRyb2wgc3RhdGVcbiAgICAgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tib3hWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9zZXRTdGF0ZSgpO1xuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIG1ldGhvZCAtIHNldHMgb25WYWx1ZUNoYW5nZSBjYWxsYmFjay4qL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2UgbWV0aG9kIC0gc2V0cyBvblRvdWNoZWQgY2FsbGJhY2suKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIENhbGxlZCBieSBGb3JtQ29udHJvbCAtIHVzZWQgdG8gZGlzYWJsZSAvIGVuYWJsZSBjb250cm9sLiovXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQmFzZWQgb24gY3VycmVudCBjb250cm9sIHN0YXRlOlxuICAgICAqIC0gc2V0cyBuZXh0IGNvbnRyb2wgdmFsdWVcbiAgICAgKiAtIGVtaXRzIG5ldyBjb250cm9sIHZhbHVlXG4gICAgICogLSB1cGRhdGVzIGNvbnRyb2wgc3RhdGUgYmFzZWQgb24gbmV3IGNvbnRyb2wgdmFsdWVcbiAgICAgKiAqL1xuICAgIG5leHRWYWx1ZShwcmV2aW91c1ZhbHVlPzogRmRDaGVja2JveFR5cGVzKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAocHJldmlvdXNWYWx1ZSB8fCB0aGlzLmNoZWNrYm94U3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2NoZWNrZWQnOlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hWYWx1ZSA9IHRoaXMudmFsdWVzLmZhbHNlVmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd1bmNoZWNrZWQnOlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hWYWx1ZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJpc3RhdGUgJiYgdGhpcy50cmlzdGF0ZVNlbGVjdGFibGUgPyB0aGlzLnZhbHVlcy50aGlyZFN0YXRlVmFsdWUgOiB0aGlzLnZhbHVlcy50cnVlVmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdpbmRldGVybWluYXRlJzpcbiAgICAgICAgICAgIGNhc2UgJ2ZvcmNlLWNoZWNrZWQnOlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hWYWx1ZSA9IHRoaXMudmFsdWVzLnRydWVWYWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdjaGVja2VkJywgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveFZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlzdGF0ZSAmJiB0aGlzLnRyaXN0YXRlU2VsZWN0YWJsZSA/IHRoaXMudmFsdWVzLnRoaXJkU3RhdGVWYWx1ZSA6IHRoaXMudmFsdWVzLnRydWVWYWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXRTdGF0ZSgpO1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UodGhpcy5jaGVja2JveFZhbHVlKTtcbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGhhbmRsZXMgYmx1ciBldmVudCAqL1xuICAgIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vblRvdWNoZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb2N1c0NoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBoYW5kbGVzIGZvY3VzIGV2ZW50ICovXG4gICAgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBoYW5kbGVzIGNsaWNrIG9uIHRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggbmF0aXZlIGNoZWNrYm94IGlucHV0ICovXG4gICAgX29uTGFiZWxDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBXZSBoYXZlIHRvIHN0b3AgcHJvcGFnYXRpb24gZm9yIGNsaWNrIGV2ZW50cyBvbiB0aGUgaW5wdXQgbGFiZWwuXG4gICAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gYSB1c2VyIGNsaWNrcyBvbiBhIGxhYmVsIGVsZW1lbnQsIGEgZ2VuZXJhdGVkIGNsaWNrIGV2ZW50IHdpbGwgYmVcbiAgICAgICAgLy8gZGlzcGF0Y2hlZCBvbiB0aGUgYXNzb2NpYXRlZCBpbnB1dCBlbGVtZW50LiBUaGlzIHdpbGwgbGVhZCB0byBkdXBsaWNhdGVkIFwiY2xpY2tcIiBldmVudCBkaXNwYXRjaGVkIGZyb20gdGhlIGNvbXBvbmVudFxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAvLyBJZiB3ZSBoYXZlIGRpc3BsYXktb25seSBtb2RlLCBzdG9wIGFueSBwb3NzaWJsZSBhY3Rpb25zIGJ5IGxhYmVsIGNsaWNrIGV2ZW50LlxuICAgICAgICB0aGlzLl9oYW5kbGVEaXNwbGF5T25seU1vZGUoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBFdmVudCBoYW5kbGVyIGZvciBjYXNlcyB3aGVuIGNoZWNrYm94IHdhcyB0b2dnbGVkIHdpdGggdGhlIGhlbHAgb2Yga2V5Ym9hcmQuXG4gICAgICogQHBhcmFtIGV2ZW50XG4gICAgICovXG4gICAgX29uTGFiZWxLZXlkb3duKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGRpc3BsYXktb25seSBtb2RlLCBzdG9wIGFueSBwb3NzaWJsZSBhY3Rpb25zIGJ5IGxhYmVsIGNsaWNrIGV2ZW50LlxuICAgICAgICB0aGlzLl9oYW5kbGVEaXNwbGF5T25seU1vZGUoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGhhbmRsZXMgY2xpY2sgb24gdGhlIG5hdGl2ZSBjaGVja2JveCBpbnB1dCAqL1xuICAgIF9vbklucHV0Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gV2hlbiB0aGVyZSdzIGEgY2xpY2sgZXZlbnQgZGlzcGF0Y2hlZCBmcm9tIHRoZSBpbnB1dCwgd2UgaGF2ZSB0byBjYXRjaCBpdCwgcHJvY2VzcyBhbmQgdGhlbiByZS1kaXNwYXRjaCBpdCBmdXJ0aGVyLlxuICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCBpbiBvcmRlciB0byBzZXQgdGhlIHZhbHVlIHRvIHRoZSBjb21wb25lbnQgYmVmb3JlIGFueSBleHRlcm5hbCBsaXN0ZW5lcnMgd2lsbCByZWNlaXZlIGl0LlxuICAgICAgICAvLyBPdGhlcndpc2UgY2hlY2tib3ggbWlnaHQgYmUgb3V0IG9mIHN5bmMuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5T25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmV4dFZhbHVlKCk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoZXZlbnQudHlwZSwgZXZlbnQpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZURpc3BsYXlPbmx5TW9kZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc3BsYXlPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQmFzZWQgb24gY3VycmVudCBjb250cm9sIHZhbHVlIHNldHMgbmV3IGNvbnRyb2wgc3RhdGUuICovXG4gICAgcHJpdmF0ZSBfc2V0U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmIChlcXVhbCh0aGlzLmNoZWNrYm94VmFsdWUsIHRoaXMudmFsdWVzLnRydWVWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3hTdGF0ZSA9ICdjaGVja2VkJztcbiAgICAgICAgfSBlbHNlIGlmIChlcXVhbCh0aGlzLmNoZWNrYm94VmFsdWUsIHRoaXMudmFsdWVzLmZhbHNlVmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRyaXN0YXRlICYmIGVxdWFsKHRoaXMuY2hlY2tib3hWYWx1ZSwgdGhpcy52YWx1ZXMudGhpcmRTdGF0ZVZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2JveFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmNoZWNrYm94VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gaW4gY29tcG9uZW50ICovXG4gICAgcHJpdmF0ZSBfZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZlsnZGVzdHJveWVkJ10pIHtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxpbnB1dFxuICAgICNpbnB1dEVsZW1lbnRcbiAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIGNsYXNzPVwiZmQtY2hlY2tib3hcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtpbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleFZhbHVlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW25nQ2xhc3NdPVwiW2Rpc3BsYXlPbmx5ID8gJ2lzLWRpc3BsYXknIDogJycsIHN0YXRlID8gJ2lzLScgKyBzdGF0ZSA6ICcnXVwiXG4gICAgKGNsaWNrKT1cIl9vbklucHV0Q2xpY2soJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwiX29uQmx1cigpXCJcbiAgICAoZm9jdXMpPVwiX29uRm9jdXMoKVwiXG4gICAgKGtleXVwLmVudGVyKT1cIl9vbkxhYmVsS2V5ZG93bigkZXZlbnQpXCJcbiAgICAoa2V5dXAuc3BhY2UpPVwiX29uTGFiZWxLZXlkb3duKCRldmVudClcIlxuLz5cblxuPGxhYmVsXG4gICAgY2xhc3M9XCJmZC1jaGVja2JveF9fbGFiZWxcIlxuICAgICNsYWJlbEVsZW1lbnRcbiAgICBbZm9yXT1cImlucHV0SWRcIlxuICAgIFtjbGFzc109XCJsYWJlbENsYXNzXCJcbiAgICBbYXR0ci50aXRsZV09XCJ0aXRsZVwiXG4gICAgW2NsYXNzLmZkLWNoZWNrYm94X19sYWJlbC0tcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtjbGFzcy5mZC1jaGVja2JveF9fbGFiZWwtLXdyYXBdPVwid3JhcExhYmVsICYmIHZhbGlnbkxhYmVsID09PSAnbWlkZGxlJ1wiXG4gICAgW2NsYXNzLmZkLWNoZWNrYm94X19sYWJlbC0td3JhcC10b3AtYWxpZ25lZF09XCJ3cmFwTGFiZWwgJiYgdmFsaWduTGFiZWwgPT09ICd0b3AnXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwiX29uTGFiZWxLZXlkb3duKCRldmVudClcIlxuICAgIChrZXl1cC5zcGFjZSk9XCJfb25MYWJlbEtleWRvd24oJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cIl9vbkxhYmVsQ2xpY2soJGV2ZW50KVwiXG4+XG4gICAgPHNwYW4gY2xhc3M9XCJmZC1jaGVja2JveF9fY2hlY2ttYXJrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJmZC1jaGVja2JveF9fbGFiZWwtY29udGFpbmVyXCIgKm5nSWY9XCJsYWJlbCB8fCBfcHJvamVjdGVkQ29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1jaGVja2JveF9fdGV4dFwiICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxhYmVsXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWNoZWNrYm94X190ZXh0XCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbGFiZWw+XG5cbjxzcGFuIFthdHRyLmhpZGRlbl09XCIhX3Byb2plY3RlZENvbnRlbnQgPyB0cnVlIDogbnVsbFwiICNkb21Qb3J0YWw+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9zcGFuPlxuIl19