ngx-tethys 18.2.0-next.0 → 18.2.0-next.2

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 (173) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/autocomplete/autocomplete.component.d.ts +4 -2
  3. package/calendar/calendar-header.component.d.ts +2 -0
  4. package/cascader/cascader.component.d.ts +3 -1
  5. package/color-picker/color-picker-panel.component.d.ts +3 -1
  6. package/copy/copy.directive.d.ts +1 -0
  7. package/core/overlay/abstract-overlay-ref.d.ts +4 -0
  8. package/core/overlay/abstract-overlay.service.d.ts +1 -1
  9. package/core/theme/store.d.ts +2 -1
  10. package/core/theme/theme.d.ts +2 -0
  11. package/date-picker/abstract-picker.component.d.ts +3 -1
  12. package/date-picker/date-helper.service.d.ts +3 -0
  13. package/date-picker/date-picker.config.d.ts +7 -1
  14. package/date-picker/lib/calendar/calendar-footer.component.d.ts +3 -1
  15. package/date-picker/lib/calendar/calendar-header.component.d.ts +3 -1
  16. package/date-picker/lib/calendar/calendar-table.component.d.ts +3 -1
  17. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +4 -1
  18. package/date-picker/lib/popups/date-popup.component.d.ts +3 -1
  19. package/date-picker/lib/popups/inner-popup.component.d.ts +3 -1
  20. package/date-range/date-range.component.d.ts +2 -0
  21. package/date-range/optional-dates/optional-dates.component.d.ts +1 -0
  22. package/dialog/confirm/confirm.component.d.ts +1 -0
  23. package/dialog/confirm.config.d.ts +14 -7
  24. package/dialog/dialog-ref.d.ts +10 -2
  25. package/dialog/dialog.service.d.ts +6 -0
  26. package/empty/empty.component.d.ts +14 -9
  27. package/empty/empty.config.d.ts +3 -0
  28. package/esm2022/autocomplete/autocomplete.component.mjs +9 -5
  29. package/esm2022/calendar/calendar-header.component.mjs +9 -5
  30. package/esm2022/cascader/cascader.component.mjs +9 -6
  31. package/esm2022/checkbox/checkbox.component.mjs +1 -1
  32. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -3
  33. package/esm2022/copy/copy.directive.mjs +7 -5
  34. package/esm2022/core/overlay/abstract-overlay-ref.mjs +2 -2
  35. package/esm2022/core/overlay/abstract-overlay.service.mjs +2 -2
  36. package/esm2022/core/theme/store.mjs +7 -7
  37. package/esm2022/core/theme/theme.mjs +9 -2
  38. package/esm2022/date-picker/abstract-picker.component.mjs +4 -2
  39. package/esm2022/date-picker/base-picker.component.mjs +2 -2
  40. package/esm2022/date-picker/date-helper.service.mjs +4 -2
  41. package/esm2022/date-picker/date-picker.component.mjs +1 -1
  42. package/esm2022/date-picker/date-picker.config.mjs +55 -2
  43. package/esm2022/date-picker/date-picker.directive.mjs +1 -1
  44. package/esm2022/date-picker/date-picker.service.mjs +3 -3
  45. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -3
  46. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -1
  47. package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -1
  48. package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -5
  49. package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
  50. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +9 -4
  51. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
  52. package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
  53. package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -2
  54. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +5 -3
  55. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -3
  56. package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
  57. package/esm2022/date-picker/month-picker.component.mjs +1 -1
  58. package/esm2022/date-picker/quarter-picker.component.mjs +1 -1
  59. package/esm2022/date-picker/range-picker.component.mjs +1 -1
  60. package/esm2022/date-picker/range-picker.directive.mjs +1 -1
  61. package/esm2022/date-picker/week-picker.component.mjs +1 -1
  62. package/esm2022/date-picker/year-picker.component.mjs +1 -1
  63. package/esm2022/date-range/date-range.component.mjs +7 -4
  64. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +4 -2
  65. package/esm2022/dialog/confirm/confirm.component.mjs +14 -3
  66. package/esm2022/dialog/confirm.config.mjs +17 -2
  67. package/esm2022/dialog/dialog-ref.mjs +9 -6
  68. package/esm2022/dialog/dialog.service.mjs +27 -3
  69. package/esm2022/empty/empty.component.mjs +7 -2
  70. package/esm2022/empty/empty.config.mjs +4 -1
  71. package/esm2022/form/form-validator-loader.mjs +17 -15
  72. package/esm2022/guider/guider-hint/guider-hint.component.mjs +5 -3
  73. package/esm2022/i18n/i18n.mjs +9 -0
  74. package/esm2022/i18n/i18n.service.mjs +45 -0
  75. package/esm2022/i18n/i18n.token.mjs +10 -0
  76. package/esm2022/i18n/index.mjs +10 -0
  77. package/esm2022/i18n/locale.mjs +14 -0
  78. package/esm2022/i18n/locales/de-de.mjs +130 -0
  79. package/esm2022/i18n/locales/en-us.mjs +151 -0
  80. package/esm2022/i18n/locales/ja-jp.mjs +130 -0
  81. package/esm2022/i18n/locales/zh-hans.mjs +130 -0
  82. package/esm2022/i18n/locales/zh-hant.mjs +130 -0
  83. package/esm2022/i18n/ngx-tethys-i18n.mjs +5 -0
  84. package/esm2022/nav/nav.component.mjs +5 -3
  85. package/esm2022/pagination/pagination.component.mjs +22 -5
  86. package/esm2022/pagination/pagination.module.mjs +26 -5
  87. package/esm2022/pagination/pagination.pipe.mjs +25 -1
  88. package/esm2022/property/property-item.component.mjs +3 -3
  89. package/esm2022/radio/button/radio-button.component.mjs +1 -1
  90. package/esm2022/radio/radio.component.mjs +1 -1
  91. package/esm2022/select/custom-select/custom-select.component.mjs +13 -6
  92. package/esm2022/strength/strength.component.mjs +21 -20
  93. package/esm2022/time-picker/time-picker-panel.component.mjs +5 -3
  94. package/esm2022/time-picker/time-picker.component.mjs +4 -2
  95. package/esm2022/tooltip/tooltip-ref.mjs +4 -1
  96. package/esm2022/transfer/transfer-list.component.mjs +5 -3
  97. package/esm2022/tree-select/tree-select.component.mjs +9 -6
  98. package/esm2022/version.mjs +2 -2
  99. package/fesm2022/ngx-tethys-autocomplete.mjs +8 -5
  100. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-calendar.mjs +8 -5
  102. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-cascader.mjs +8 -5
  104. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  106. package/fesm2022/ngx-tethys-color-picker.mjs +4 -2
  107. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  108. package/fesm2022/ngx-tethys-copy.mjs +6 -4
  109. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  110. package/fesm2022/ngx-tethys-core.mjs +14 -7
  111. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  112. package/fesm2022/ngx-tethys-date-picker.mjs +95 -30
  113. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  114. package/fesm2022/ngx-tethys-date-range.mjs +8 -4
  115. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  116. package/fesm2022/ngx-tethys-dialog.mjs +61 -10
  117. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  118. package/fesm2022/ngx-tethys-empty.mjs +9 -1
  119. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  120. package/fesm2022/ngx-tethys-form.mjs +16 -14
  121. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  122. package/fesm2022/ngx-tethys-guider.mjs +4 -2
  123. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  124. package/fesm2022/ngx-tethys-i18n.mjs +747 -0
  125. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -0
  126. package/fesm2022/ngx-tethys-nav.mjs +4 -2
  127. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  128. package/fesm2022/ngx-tethys-pagination.mjs +69 -7
  129. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-property.mjs +2 -2
  131. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  133. package/fesm2022/ngx-tethys-select.mjs +12 -5
  134. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  135. package/fesm2022/ngx-tethys-strength.mjs +20 -19
  136. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  137. package/fesm2022/ngx-tethys-time-picker.mjs +6 -3
  138. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  139. package/fesm2022/ngx-tethys-tooltip.mjs +3 -0
  140. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  141. package/fesm2022/ngx-tethys-transfer.mjs +4 -2
  142. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  143. package/fesm2022/ngx-tethys-tree-select.mjs +8 -5
  144. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  145. package/fesm2022/ngx-tethys.mjs +1 -1
  146. package/fesm2022/ngx-tethys.mjs.map +1 -1
  147. package/form/form-validator-loader.d.ts +2 -0
  148. package/guider/guider-hint/guider-hint.component.d.ts +3 -1
  149. package/i18n/i18n.d.ts +154 -0
  150. package/i18n/i18n.service.d.ts +19 -0
  151. package/i18n/i18n.token.d.ts +8 -0
  152. package/i18n/index.d.ts +9 -0
  153. package/i18n/locale.d.ts +4 -0
  154. package/i18n/locales/de-de.d.ts +130 -0
  155. package/i18n/locales/en-us.d.ts +151 -0
  156. package/i18n/locales/ja-jp.d.ts +130 -0
  157. package/i18n/locales/zh-hans.d.ts +130 -0
  158. package/i18n/locales/zh-hant.d.ts +130 -0
  159. package/nav/nav.component.d.ts +3 -1
  160. package/package.json +7 -1
  161. package/pagination/pagination.component.d.ts +4 -1
  162. package/pagination/pagination.module.d.ts +1 -1
  163. package/pagination/pagination.pipe.d.ts +6 -0
  164. package/radio/radio.component.d.ts +0 -2
  165. package/schematics/version.d.ts +1 -1
  166. package/schematics/version.js +1 -1
  167. package/select/custom-select/custom-select.component.d.ts +3 -1
  168. package/strength/strength.component.d.ts +21 -2
  169. package/styles/modules/cdk/drag-drop.scss +1 -1
  170. package/time-picker/time-picker-panel.component.d.ts +3 -1
  171. package/time-picker/time-picker.component.d.ts +3 -1
  172. package/transfer/transfer-list.component.d.ts +3 -1
  173. package/tree-select/tree-select.component.d.ts +3 -1
@@ -6,6 +6,8 @@ import { ThyIcon } from 'ngx-tethys/icon';
6
6
  import { TinyDate } from 'ngx-tethys/util';
7
7
  import { Subject } from 'rxjs';
8
8
  import { DatePickerAdvancedShowYearTipPipe } from '../../picker.pipes';
9
+ import { injectLocale } from 'ngx-tethys/i18n';
10
+ import { DateHelperService } from '../../date-helper.service';
9
11
  import * as i0 from "@angular/core";
10
12
  /**
11
13
  * @private
@@ -13,6 +15,8 @@ import * as i0 from "@angular/core";
13
15
  export class DateCarousel {
14
16
  constructor() {
15
17
  this.cdr = inject(ChangeDetectorRef);
18
+ this.dateHelper = inject(DateHelperService);
19
+ this.locale = injectLocale('datePicker');
16
20
  this.className = 'thy-date-picker-advanced-carousel';
17
21
  this.selectableData = {};
18
22
  this.selectedValue = [];
@@ -216,9 +220,10 @@ export class DateCarousel {
216
220
  }
217
221
  getSelectableMonth(currentDate, preOrNextcount = 0) {
218
222
  currentDate = currentDate || this.activeDate || new TinyDate().startOfMonth();
223
+ // Selectable months for advanced range selector
219
224
  const cell = {
220
225
  type: 'month',
221
- content: `${currentDate.addMonths(preOrNextcount).getMonth() + 1}月`,
226
+ content: this.dateHelper.format(currentDate.addMonths(preOrNextcount).nativeDate, this.locale().monthFormat),
222
227
  startValue: currentDate.startOfMonth().addMonths(preOrNextcount),
223
228
  endValue: currentDate.endOfMonth().addMonths(preOrNextcount),
224
229
  classMap: {}
@@ -363,7 +368,7 @@ export class DateCarousel {
363
368
  multi: true,
364
369
  useExisting: forwardRef(() => DateCarousel)
365
370
  }
366
- ], ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5E74\u4EFD', type: 'year', selectableData: selectableData.year }\"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5B63\u5EA6', type: 'quarter', selectableData: selectableData.quarter }\"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u6708\u4EFD', type: 'month', selectableData: selectableData.month }\"></ng-container>\n\n<ng-template #carouselItem let-title=\"title\" let-selectableData=\"selectableData\" let-type=\"type\">\n <div class=\"carousel-item carousel-item-{{ type }}\">\n <p class=\"carousel-item-title\">{{ title }}</p>\n <div class=\"carousel-item-content\">\n <button thyButton=\"outline-default\" thySize=\"sm\" class=\"right-space\" (click)=\"prevClick(type)\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </button>\n @for (item of selectableData; track $index) {\n <div\n class=\"selectable-button right-space\"\n (click)=\"selectDate(type, item)\"\n (mouseenter)=\"onMouseenter($event, type, item)\"\n (mouseleave)=\"onMouseleave($event, type, item)\"\n [ngClass]=\"item.classMap\">\n @if (item | showYearTip: type) {\n <span class=\"year-tip\">{{ item?.startValue?.getYear() }}</span>\n }\n @if (item.isInRange && isSelected(item)) {\n <thy-icon thyIconName=\"close\"></thy-icon>\n }\n @if (item.isInRange && !isSelected(item)) {\n <thy-icon thyIconName=\"plus\"></thy-icon>\n }\n @if (!item.isInRange) {\n <span>{{ item?.content }}</span>\n }\n </div>\n }\n <button thyButton=\"outline-default\" thySize=\"sm\" (click)=\"nextClick(type)\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: DatePickerAdvancedShowYearTipPipe, name: "showYearTip" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
371
+ ], ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: locale().yearText, type: 'year', selectableData: selectableData.year }\"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"\n carouselItem;\n context: { title: locale().quarterText, type: 'quarter', selectableData: selectableData.quarter }\n \"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"\n carouselItem;\n context: { title: locale().monthText, type: 'month', selectableData: selectableData.month }\n \"></ng-container>\n\n<ng-template #carouselItem let-title=\"title\" let-selectableData=\"selectableData\" let-type=\"type\">\n <div class=\"carousel-item carousel-item-{{ type }}\">\n <p class=\"carousel-item-title\">{{ title }}</p>\n <div class=\"carousel-item-content\">\n <button thyButton=\"outline-default\" thySize=\"sm\" class=\"right-space\" (click)=\"prevClick(type)\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </button>\n @for (item of selectableData; track $index) {\n <div\n class=\"selectable-button right-space\"\n (click)=\"selectDate(type, item)\"\n (mouseenter)=\"onMouseenter($event, type, item)\"\n (mouseleave)=\"onMouseleave($event, type, item)\"\n [ngClass]=\"item.classMap\">\n @if (item | showYearTip: type) {\n <span class=\"year-tip\">{{ item?.startValue?.getYear() }}</span>\n }\n @if (item.isInRange && isSelected(item)) {\n <thy-icon thyIconName=\"close\"></thy-icon>\n }\n @if (item.isInRange && !isSelected(item)) {\n <thy-icon thyIconName=\"plus\"></thy-icon>\n }\n @if (!item.isInRange) {\n <span>{{ item?.content }}</span>\n }\n </div>\n }\n <button thyButton=\"outline-default\" thySize=\"sm\" (click)=\"nextClick(type)\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: DatePickerAdvancedShowYearTipPipe, name: "showYearTip" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
367
372
  }
368
373
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DateCarousel, decorators: [{
369
374
  type: Component,
@@ -373,11 +378,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
373
378
  multi: true,
374
379
  useExisting: forwardRef(() => DateCarousel)
375
380
  }
376
- ], standalone: true, imports: [NgTemplateOutlet, ThyButton, ThyIcon, NgClass, DatePickerAdvancedShowYearTipPipe], template: "<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5E74\u4EFD', type: 'year', selectableData: selectableData.year }\"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u5B63\u5EA6', type: 'quarter', selectableData: selectableData.quarter }\"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: '\u6708\u4EFD', type: 'month', selectableData: selectableData.month }\"></ng-container>\n\n<ng-template #carouselItem let-title=\"title\" let-selectableData=\"selectableData\" let-type=\"type\">\n <div class=\"carousel-item carousel-item-{{ type }}\">\n <p class=\"carousel-item-title\">{{ title }}</p>\n <div class=\"carousel-item-content\">\n <button thyButton=\"outline-default\" thySize=\"sm\" class=\"right-space\" (click)=\"prevClick(type)\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </button>\n @for (item of selectableData; track $index) {\n <div\n class=\"selectable-button right-space\"\n (click)=\"selectDate(type, item)\"\n (mouseenter)=\"onMouseenter($event, type, item)\"\n (mouseleave)=\"onMouseleave($event, type, item)\"\n [ngClass]=\"item.classMap\">\n @if (item | showYearTip: type) {\n <span class=\"year-tip\">{{ item?.startValue?.getYear() }}</span>\n }\n @if (item.isInRange && isSelected(item)) {\n <thy-icon thyIconName=\"close\"></thy-icon>\n }\n @if (item.isInRange && !isSelected(item)) {\n <thy-icon thyIconName=\"plus\"></thy-icon>\n }\n @if (!item.isInRange) {\n <span>{{ item?.content }}</span>\n }\n </div>\n }\n <button thyButton=\"outline-default\" thySize=\"sm\" (click)=\"nextClick(type)\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </button>\n </div>\n </div>\n</ng-template>\n" }]
381
+ ], standalone: true, imports: [NgTemplateOutlet, ThyButton, ThyIcon, NgClass, DatePickerAdvancedShowYearTipPipe], template: "<ng-container\n *ngTemplateOutlet=\"carouselItem; context: { title: locale().yearText, type: 'year', selectableData: selectableData.year }\"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"\n carouselItem;\n context: { title: locale().quarterText, type: 'quarter', selectableData: selectableData.quarter }\n \"></ng-container>\n\n<ng-container\n *ngTemplateOutlet=\"\n carouselItem;\n context: { title: locale().monthText, type: 'month', selectableData: selectableData.month }\n \"></ng-container>\n\n<ng-template #carouselItem let-title=\"title\" let-selectableData=\"selectableData\" let-type=\"type\">\n <div class=\"carousel-item carousel-item-{{ type }}\">\n <p class=\"carousel-item-title\">{{ title }}</p>\n <div class=\"carousel-item-content\">\n <button thyButton=\"outline-default\" thySize=\"sm\" class=\"right-space\" (click)=\"prevClick(type)\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </button>\n @for (item of selectableData; track $index) {\n <div\n class=\"selectable-button right-space\"\n (click)=\"selectDate(type, item)\"\n (mouseenter)=\"onMouseenter($event, type, item)\"\n (mouseleave)=\"onMouseleave($event, type, item)\"\n [ngClass]=\"item.classMap\">\n @if (item | showYearTip: type) {\n <span class=\"year-tip\">{{ item?.startValue?.getYear() }}</span>\n }\n @if (item.isInRange && isSelected(item)) {\n <thy-icon thyIconName=\"close\"></thy-icon>\n }\n @if (item.isInRange && !isSelected(item)) {\n <thy-icon thyIconName=\"plus\"></thy-icon>\n }\n @if (!item.isInRange) {\n <span>{{ item?.content }}</span>\n }\n </div>\n }\n <button thyButton=\"outline-default\" thySize=\"sm\" (click)=\"nextClick(type)\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </button>\n </div>\n </div>\n</ng-template>\n" }]
377
382
  }], propDecorators: { className: [{
378
383
  type: HostBinding,
379
384
  args: ['class']
380
385
  }], activeDate: [{
381
386
  type: Input
382
387
  }] } });
383
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUtY2Fyb3VzZWwvZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUtY2Fyb3VzZWwvZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHdkU7O0dBRUc7QUFnQkgsTUFBTSxPQUFPLFlBQVk7SUFmekI7UUFnQlksUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWxCLGNBQVMsR0FBRyxtQ0FBbUMsQ0FBQztRQWlCdEUsbUJBQWMsR0FBOEcsRUFBRSxDQUFDO1FBSS9ILGtCQUFhLEdBQTZCLEVBQUUsQ0FBQztRQUVyQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQix5QkFBb0IsR0FBRyxJ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QUFDOzhHQXBYUSxZQUFZO2tHQUFaLFlBQVksdUpBVlY7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQzthQUM5QztTQUNKLDBCQ25DTCwwNkRBMkNBLDRDRE5jLGdCQUFnQixvSkFBRSxTQUFTLG9MQUFFLE9BQU8sc01BQUUsT0FBTywrRUFBRSxpQ0FBaUM7OzJGQUVqRixZQUFZO2tCQWZ4QixTQUFTOytCQUVJLGVBQWUsbUJBRVIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUM7eUJBQzlDO3FCQUNKLGNBQ1csSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUNBQWlDLENBQUM7OEJBS3JFLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTztnQkFFWCxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5QnV0dG9uIH0gZnJvbSAnbmd4LXRldGh5cy9idXR0b24nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZHZhbmNlZFNlbGVjdGFibGVDZWxsLCBSYW5nZUFkdmFuY2VkVmFsdWUgfSBmcm9tICcuLi8uLi9pbm5lci10eXBlcyc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQWR2YW5jZWRTaG93WWVhclRpcFBpcGUgfSBmcm9tICcuLi8uLi9waWNrZXIucGlwZXMnO1xuaW1wb3J0IHsgVGh5RGF0ZUdyYW51bGFyaXR5IH0gZnJvbSAnLi4vLi4vc3RhbmRhcmQtdHlwZXMnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdkYXRlLWNhcm91c2VsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlQ2Fyb3VzZWwpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIFRoeUJ1dHRvbiwgVGh5SWNvbiwgTmdDbGFzcywgRGF0ZVBpY2tlckFkdmFuY2VkU2hvd1llYXJUaXBQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlQ2Fyb3VzZWwgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc05hbWUgPSAndGh5LWRhdGUtcGlja2VyLWFkdmFuY2VkLWNhcm91c2VsJztcblxuICAgIEBJbnB1dCgpIGFjdGl2ZURhdGU6IFRpbnlEYXRlO1xuXG4gICAgc2V0IGRlZmF1bHRWYWx1ZSh2YWx1ZTogUmFuZ2VBZHZhbmNlZFZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID0gdmFsdWUuZGF0ZUdyYW51bGFyaXR5O1xuICAgICAgICB0aGlzLmJ1aWxkU2VsZWN0YWJsZURhdGEodmFsdWUuYmVnaW4pO1xuXG4gICAgICAgIGlmICh2YWx1ZS5iZWdpbiAmJiB2YWx1ZS5lbmQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEJlU2VsZWN0VmFsdWUgPSB0aGlzLmdldFNob3VsZEJlVG9nZ2xlVmFsdWUodmFsdWUuYmVnaW4sIHZhbHVlLmVuZCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdCguLi5zaG91bGRCZVNlbGVjdFZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTZWxlY3QodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgc2VsZWN0YWJsZURhdGE6IHsgeWVhcj86IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXTsgcXVhcnRlcj86IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXTsgbW9udGg/OiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsW10gfSA9IHt9O1xuXG4gICAgZGF0ZUdyYW51bGFyaXR5OiBUaHlEYXRlR3JhbnVsYXJpdHk7XG5cbiAgICBzZWxlY3RlZFZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsW10gPSBbXTtcblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgc2VsZWN0ZWRWYWx1ZUNoYW5nZSQgPSBuZXcgU3ViamVjdDxSYW5nZUFkdmFuY2VkVmFsdWU+KCk7XG5cbiAgICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBSYW5nZUFkdmFuY2VkVmFsdWUpID0+IHZvaWQ7XG5cbiAgICBwcml2YXRlIF9vblRvdWNoZWQ6ICh2YWx1ZTogUmFuZ2VBZHZhbmNlZFZhbHVlKSA9PiB2b2lkO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZFNlbGVjdGFibGVEYXRhKHRoaXMuc2VsZWN0ZWRWYWx1ZVswXT8uc3RhcnRWYWx1ZSwgdGhpcy5kYXRlR3JhbnVsYXJpdHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS55ZWFyLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEucXVhcnRlci5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLm1vbnRoLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVHcmFudWxhcml0eTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGN0ZWRWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUdyYW51bGFyaXR5OiB0aGlzLmRhdGVHcmFudWxhcml0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiBzZWxjdGVkVmFsdWVbMF0/LnN0YXJ0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IHNlbGN0ZWRWYWx1ZVtzZWxjdGVkVmFsdWUubGVuZ3RoIC0gMV0/LmVuZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogUmFuZ2VBZHZhbmNlZFZhbHVlKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3NNYXAoY2VsbDogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgW2BhY3RpdmVgXTogdGhpcy5pc1NlbGVjdGVkKGNlbGwpLFxuICAgICAgICAgICAgW2BpbmRldGVybWluYXRlYF06IHRoaXMuaXNDZWxsSW5kZXRlcm1pbmF0ZSh0aGlzLnNlbGVjdGVkVmFsdWUsIGNlbGwpLFxuICAgICAgICAgICAgW2B0eXBlLWFjdGl2ZWBdOiB0aGlzLmlzVHlwZUFjdGl2ZSh0aGlzLnNlbGVjdGVkVmFsdWUsIGNlbGwpLFxuICAgICAgICAgICAgWydpbi1ob3Zlci1yYW5nZSddOiBjZWxsLmlzSW5SYW5nZSxcbiAgICAgICAgICAgIFsnb3V0LXJhbmdlJ106IGNlbGwuaXNPdXRSYW5nZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGlzVHlwZUFjdGl2ZShvcmlnaW5hbFZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsW10sIHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbFZhbHVlPy5sZW5ndGggJiYgb3JpZ2luYWxWYWx1ZVswXS50eXBlID09PSB2YWx1ZS50eXBlO1xuICAgIH1cblxuICAgIGlzQ2VsbEluZGV0ZXJtaW5hdGUob3JpZ2luYWxWYWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdLCB2YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZVswXT8udHlwZSA9PT0gdmFsdWUudHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG9yaWdpbmFsVmFsdWVbMF0/LnR5cGUgPT09ICd5ZWFyJykge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIW9yaWdpbmFsVmFsdWUuZmluZChpdGVtID0+IGl0ZW0uc3RhcnRWYWx1ZS5pc1NhbWVZZWFyKHZhbHVlLnN0YXJ0VmFsdWUpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICd5ZWFyJ1xuICAgICAgICAgICAgICAgICAgICA/ICEhb3JpZ2luYWxWYWx1ZS5maW5kKGl0ZW0gPT4gaXRlbS5zdGFydFZhbHVlLmlzU2FtZVllYXIodmFsdWUuc3RhcnRWYWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgIDogISFvcmlnaW5hbFZhbHVlLmZpbmQoaXRlbSA9PiBpdGVtLnN0YXJ0VmFsdWUuaXNTYW1lUXVhcnRlcih2YWx1ZS5zdGFydFZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1NlbGVjdGVkKHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVmFsdWUuZmluZChpdGVtID0+IGl0ZW0uc3RhcnRWYWx1ZS5pc1NhbWVEYXkodmFsdWUuc3RhcnRWYWx1ZSkpICYmIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID09PSB2YWx1ZS50eXBlO1xuICAgIH1cblxuICAgIGlzU2VsZWN0RW1wdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoID09IDA7XG4gICAgfVxuXG4gICAgc2VsZWN0U29ydCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlLnNvcnQoKGEsIGIpID0+IGEuc3RhcnRWYWx1ZS5nZXRUaW1lKCkgLSBiLnN0YXJ0VmFsdWUuZ2V0VGltZSgpKTtcbiAgICB9XG5cbiAgICBzZWxlY3QoLi4udmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSkge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2VsZWN0ZWQoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUucHVzaCguLi52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdFNvcnQoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgZGVzZWxlY3QoLi4udmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSkge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlLmZpbHRlcihzZWxlY3RlZCA9PiAhc2VsZWN0ZWQuc3RhcnRWYWx1ZS5pc1NhbWVEYXkoaXRlbS5zdGFydFZhbHVlKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdFNvcnQoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgY2xlYXJTZWxlY3QoaGlkZGVuPzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBbXTtcbiAgICAgICAgaWYgKCFoaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZSQubmV4dCh1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0U2hvdWxkQmVUb2dnbGVWYWx1ZShiZWdpbjogVGlueURhdGUsIGVuZDogVGlueURhdGUpIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkVmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSA9IFtdO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0ZUdyYW51bGFyaXR5KSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVHcmFudWxhcml0eSA9ICd5ZWFyJztcbiAgICAgICAgICAgICAgICBpZiAoYmVnaW4uaXNTYW1lWWVhcihlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVZZWFyKGJlZ2luKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKHRoaXMuZ2V0U2VsZWN0YWJsZVllYXIoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFiZWdpbi5pc1NhbWVZZWFyKGVuZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luID0gYmVnaW4uYWRkWWVhcnMoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlWWVhcihiZWdpbikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID0gJ21vbnRoJztcbiAgICAgICAgICAgICAgICBpZiAoYmVnaW4uaXNTYW1lTW9udGgoZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlTW9udGgoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlTW9udGgoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFiZWdpbi5pc1NhbWVNb250aChlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IGJlZ2luLmFkZE1vbnRocygxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVNb250aChiZWdpbikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPSAncXVhcnRlcic7XG4gICAgICAgICAgICAgICAgaWYgKGJlZ2luLmlzU2FtZVF1YXJ0ZXIoZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlUXVhcnRlcihiZWdpbikpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVRdWFydGVyKGJlZ2luKSk7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlICghYmVnaW4uaXNTYW1lUXVhcnRlcihlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IGJlZ2luLmFkZFF1YXJ0ZXJzKDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKHRoaXMuZ2V0U2VsZWN0YWJsZVF1YXJ0ZXIoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZWN0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBidWlsZFNlbGVjdGFibGVEYXRhKHN0YXJ0RGF0ZTogVGlueURhdGUsIGV4Y2x1ZGVHcmFudWxhcml0eT86IFRoeURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICBjb25zdCBidWlsZEdyYW51bGFyaXR5ID0gWyd5ZWFyJywgJ21vbnRoJywgJ3F1YXJ0ZXInXS5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBleGNsdWRlR3JhbnVsYXJpdHkpO1xuICAgICAgICBidWlsZEdyYW51bGFyaXR5LmZvckVhY2goZ3JhbnVsYXJpdHkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChncmFudWxhcml0eSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLnllYXIgPSBbLi4uQXJyYXkoMykua2V5cygpXS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3RhYmxlWWVhcihzdGFydERhdGUsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLnF1YXJ0ZXIgPSBbLi4uQXJyYXkoNCkua2V5cygpXS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3RhYmxlUXVhcnRlcihzdGFydERhdGUsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5tb250aCA9IFsuLi5BcnJheSg0KS5rZXlzKCldLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGFibGVNb250aChzdGFydERhdGUsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0YWJsZVllYXIoY3VycmVudERhdGU6IFRpbnlEYXRlLCBwcmVPck5leHRjb3VudDogbnVtYmVyID0gMCk6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwge1xuICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlIHx8IHRoaXMuYWN0aXZlRGF0ZSB8fCBuZXcgVGlueURhdGUoKS5zdGFydE9mWWVhcigpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ3llYXInLFxuICAgICAgICAgICAgY29udGVudDogYCR7Y3VycmVudERhdGUuYWRkWWVhcnMocHJlT3JOZXh0Y291bnQpLmdldFllYXIoKX1gLFxuICAgICAgICAgICAgc3RhcnRWYWx1ZTogY3VycmVudERhdGUuc3RhcnRPZlllYXIoKS5hZGRZZWFycyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBlbmRWYWx1ZTogY3VycmVudERhdGUuZW5kT2ZZZWFyKCkuYWRkWWVhcnMocHJlT3JOZXh0Y291bnQpLFxuICAgICAgICAgICAgY2xhc3NNYXA6IHt9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0YWJsZVF1YXJ0ZXIoY3VycmVudERhdGU6IFRpbnlEYXRlLCBwcmVPck5leHRjb3VudDogbnVtYmVyID0gMCk6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwge1xuICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlIHx8IHRoaXMuYWN0aXZlRGF0ZSB8fCBuZXcgVGlueURhdGUoKS5zdGFydE9mUXVhcnRlcigpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ3F1YXJ0ZXInLFxuICAgICAgICAgICAgY29udGVudDogYFEke2N1cnJlbnREYXRlLmFkZFF1YXJ0ZXJzKHByZU9yTmV4dGNvdW50KS5nZXRRdWFydGVyKCl9YCxcbiAgICAgICAgICAgIHN0YXJ0VmFsdWU6IGN1cnJlbnREYXRlLnN0YXJ0T2ZRdWFydGVyKCkuYWRkUXVhcnRlcnMocHJlT3JOZXh0Y291bnQpLFxuICAgICAgICAgICAgZW5kVmFsdWU6IGN1cnJlbnREYXRlLmVuZE9mUXVhcnRlcigpLmFkZFF1YXJ0ZXJzKHByZU9yTmV4dGNvdW50KSxcbiAgICAgICAgICAgIGNsYXNzTWFwOiB7fVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldFNlbGVjdGFibGVNb250aChjdXJyZW50RGF0ZTogVGlueURhdGUsIHByZU9yTmV4dGNvdW50OiBudW1iZXIgPSAwKTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCB7XG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGUgfHwgdGhpcy5hY3RpdmVEYXRlIHx8IG5ldyBUaW55RGF0ZSgpLnN0YXJ0T2ZNb250aCgpO1xuICAgICAgICBjb25zdCBjZWxsOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsID0ge1xuICAgICAgICAgICAgdHlwZTogJ21vbnRoJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGAke2N1cnJlbnREYXRlLmFkZE1vbnRocyhwcmVPck5leHRjb3VudCkuZ2V0TW9udGgoKSArIDF95pyIYCxcbiAgICAgICAgICAgIHN0YXJ0VmFsdWU6IGN1cnJlbnREYXRlLnN0YXJ0T2ZNb250aCgpLmFkZE1vbnRocyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBlbmRWYWx1ZTogY3VycmVudERhdGUuZW5kT2ZNb250aCgpLmFkZE1vbnRocyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBjbGFzc01hcDoge31cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgfVxuXG4gICAgcHJldkNsaWNrKHR5cGU6IFRoeURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEueWVhciA9IHRoaXMuc2VsZWN0YWJsZURhdGEueWVhci5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVZZWFyKGl0ZW0uc3RhcnRWYWx1ZSwgLTEpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEucXVhcnRlciA9IHRoaXMuc2VsZWN0YWJsZURhdGEucXVhcnRlci5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVRdWFydGVyKGl0ZW0uc3RhcnRWYWx1ZSwgLTIpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLm1vbnRoID0gdGhpcy5zZWxlY3RhYmxlRGF0YS5tb250aC5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVNb250aChpdGVtLnN0YXJ0VmFsdWUsIC0yKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgfVxuXG4gICAgbmV4dENsaWNrKHR5cGU6IFRoeURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEueWVhciA9IHRoaXMuc2VsZWN0YWJsZURhdGEueWVhci5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVZZWFyKGl0ZW0uc3RhcnRWYWx1ZSwgMSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5xdWFydGVyID0gdGhpcy5zZWxlY3RhYmxlRGF0YS5xdWFydGVyLm1hcChpdGVtID0+IHRoaXMuZ2V0U2VsZWN0YWJsZVF1YXJ0ZXIoaXRlbS5zdGFydFZhbHVlLCAyKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5tb250aCA9IHRoaXMuc2VsZWN0YWJsZURhdGEubW9udGgubWFwKGl0ZW0gPT4gdGhpcy5nZXRTZWxlY3RhYmxlTW9udGgoaXRlbS5zdGFydFZhbHVlLCAyKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgfVxuXG4gICAgc2VsZWN0RGF0ZSh0eXBlOiBUaHlEYXRlR3JhbnVsYXJpdHksIHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGFbdHlwZV0uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaXNJblJhbmdlID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLmlzT3V0UmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVHcmFudWxhcml0eSA9IHR5cGU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdCh2YWx1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3QodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0ZUdyYW51bGFyaXR5ID09PSB2YWx1ZS50eXBlKSB7XG4gICAgICAgICAgICBjb25zdCB7IHJhbmdlU3RhcnQsIHJhbmdlRW5kIH0gPSB0aGlzLmdldEFjdHVhbFN0YXJ0QW5kRW5kKHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEJlU2VsZWN0VmFsdWUgPSB0aGlzLmdldFNob3VsZEJlVG9nZ2xlVmFsdWUocmFuZ2VTdGFydCwgcmFuZ2VFbmQpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3QoLi4uc2hvdWxkQmVTZWxlY3RWYWx1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID0gdHlwZTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTZWxlY3QodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdCh2YWx1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b2dnbGVTZWxlY3QodmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgaWYgKHZhbHVlLnN0YXJ0VmFsdWUuaXNTYW1lRGF5KHRoaXMuc2VsZWN0ZWRWYWx1ZVswXS5zdGFydFZhbHVlKSkge1xuICAgICAgICAgICAgLy8gb25seSBkZXNlbGVjdCBmaXJzdCBvbmVcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3QodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZGVzZWxlY3QgY3VycmVudCBhbmQgYWxsIGFmdGVyIGN1cnJlbnRcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlU3RhcnQgPSB2YWx1ZS5zdGFydFZhbHVlO1xuICAgICAgICAgICAgY29uc3QgcmFuZ2VFbmQgPSB0aGlzLnNlbGVjdGVkVmFsdWVbdGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aCAtIDFdLmVuZFZhbHVlO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkQmVEZXNlbGVjdFZhbHVlID0gdGhpcy5nZXRTaG91bGRCZVRvZ2dsZVZhbHVlKHJhbmdlU3RhcnQsIHJhbmdlRW5kKTtcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3QoLi4uc2hvdWxkQmVEZXNlbGVjdFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW91c2VlbnRlcihldmVudDogRXZlbnQsIHR5cGU6IFRoeURhdGVHcmFudWxhcml0eSwgdmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpIHx8IHRoaXMuZGF0ZUdyYW51bGFyaXR5ICE9PSB0eXBlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlLmlzSW5SYW5nZSA9IHRydWU7XG4gICAgICAgICAgICBpZiAodmFsdWUuc3RhcnRWYWx1ZS5pc1NhbWVEYXkodGhpcy5zZWxlY3RlZFZhbHVlWzBdLnN0YXJ0VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUuaXNPdXRSYW5nZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlU3RhcnQgPSB2YWx1ZS5zdGFydFZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlRW5kID0gdGhpcy5zZWxlY3RlZFZhbHVlW3RoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggLSAxXS5lbmRWYWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goKGl0ZW06IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uc3RhcnRWYWx1ZS5nZXRUaW1lKCkgPj0gcmFuZ2VTdGFydC5nZXRUaW1lKCkgJiYgaXRlbS5zdGFydFZhbHVlLmdldFRpbWUoKSA8IHJhbmdlRW5kLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pc091dFJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNPdXRSYW5nZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB7IHJhbmdlU3RhcnQsIHJhbmdlRW5kIH0gPSB0aGlzLmdldEFjdHVhbFN0YXJ0QW5kRW5kKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGFbdHlwZV0uZm9yRWFjaCgoaXRlbTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLnN0YXJ0VmFsdWUuZ2V0VGltZSgpID49IHJhbmdlU3RhcnQuZ2V0VGltZSgpICYmIGl0ZW0uc3RhcnRWYWx1ZS5nZXRUaW1lKCkgPCByYW5nZUVuZC5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5pc0luUmFuZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNJblJhbmdlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgfVxuXG4gICAgb25Nb3VzZWxlYXZlKGV2ZW50OiBFdmVudCwgdHlwZTogVGh5RGF0ZUdyYW51bGFyaXR5LCB2YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICBpZiAodmFsdWUuaXNJblJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5pc0luUmFuZ2UgPSBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZS5pc091dFJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5pc091dFJhbmdlID0gZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICB9XG5cbiAgICBnZXRBY3R1YWxTdGFydEFuZEVuZCh2YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFN0YXJ0ID0gdGhpcy5zZWxlY3RlZFZhbHVlWzBdLnN0YXJ0VmFsdWU7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRW5kID0gdGhpcy5zZWxlY3RlZFZhbHVlW3RoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggLSAxXS5lbmRWYWx1ZTtcbiAgICAgICAgbGV0IHJhbmdlU3RhcnQ6IFRpbnlEYXRlLCByYW5nZUVuZDogVGlueURhdGU7XG4gICAgICAgIGlmICh2YWx1ZS5zdGFydFZhbHVlLmlzQmVmb3JlRGF5KHNlbGVjdGVkU3RhcnQpKSB7XG4gICAgICAgICAgICByYW5nZVN0YXJ0ID0gdmFsdWUuc3RhcnRWYWx1ZTtcbiAgICAgICAgICAgIHJhbmdlRW5kID0gc2VsZWN0ZWRTdGFydDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUuc3RhcnRWYWx1ZS5pc0FmdGVyRGF5KHNlbGVjdGVkRW5kKSkge1xuICAgICAgICAgICAgcmFuZ2VTdGFydCA9IHNlbGVjdGVkRW5kO1xuICAgICAgICAgICAgcmFuZ2VFbmQgPSB2YWx1ZS5lbmRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyByYW5nZVN0YXJ0LCByYW5nZUVuZCB9O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAqbmdUZW1wbGF0ZU91dGxldD1cImNhcm91c2VsSXRlbTsgY29udGV4dDogeyB0aXRsZTogJ+W5tOS7vScsIHR5cGU6ICd5ZWFyJywgc2VsZWN0YWJsZURhdGE6IHNlbGVjdGFibGVEYXRhLnllYXIgfVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyXG4gICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2Fyb3VzZWxJdGVtOyBjb250ZXh0OiB7IHRpdGxlOiAn5a2j5bqmJywgdHlwZTogJ3F1YXJ0ZXInLCBzZWxlY3RhYmxlRGF0YTogc2VsZWN0YWJsZURhdGEucXVhcnRlciB9XCI+PC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXJvdXNlbEl0ZW07IGNvbnRleHQ6IHsgdGl0bGU6ICfmnIjku70nLCB0eXBlOiAnbW9udGgnLCBzZWxlY3RhYmxlRGF0YTogc2VsZWN0YWJsZURhdGEubW9udGggfVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2Nhcm91c2VsSXRlbSBsZXQtdGl0bGU9XCJ0aXRsZVwiIGxldC1zZWxlY3RhYmxlRGF0YT1cInNlbGVjdGFibGVEYXRhXCIgbGV0LXR5cGU9XCJ0eXBlXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtIGNhcm91c2VsLWl0ZW0te3sgdHlwZSB9fVwiPlxuICAgIDxwIGNsYXNzPVwiY2Fyb3VzZWwtaXRlbS10aXRsZVwiPnt7IHRpdGxlIH19PC9wPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtLWNvbnRlbnRcIj5cbiAgICAgIDxidXR0b24gdGh5QnV0dG9uPVwib3V0bGluZS1kZWZhdWx0XCIgdGh5U2l6ZT1cInNtXCIgY2xhc3M9XCJyaWdodC1zcGFjZVwiIChjbGljayk9XCJwcmV2Q2xpY2sodHlwZSlcIj5cbiAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtbGVmdFwiPjwvdGh5LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIEBmb3IgKGl0ZW0gb2Ygc2VsZWN0YWJsZURhdGE7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RhYmxlLWJ1dHRvbiByaWdodC1zcGFjZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUodHlwZSwgaXRlbSlcIlxuICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VlbnRlcigkZXZlbnQsIHR5cGUsIGl0ZW0pXCJcbiAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlbGVhdmUoJGV2ZW50LCB0eXBlLCBpdGVtKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc01hcFwiPlxuICAgICAgICAgIEBpZiAoaXRlbSB8IHNob3dZZWFyVGlwOiB0eXBlKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInllYXItdGlwXCI+e3sgaXRlbT8uc3RhcnRWYWx1ZT8uZ2V0WWVhcigpIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGl0ZW0uaXNJblJhbmdlICYmIGlzU2VsZWN0ZWQoaXRlbSkpIHtcbiAgICAgICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImNsb3NlXCI+PC90aHktaWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChpdGVtLmlzSW5SYW5nZSAmJiAhaXNTZWxlY3RlZChpdGVtKSkge1xuICAgICAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwicGx1c1wiPjwvdGh5LWljb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoIWl0ZW0uaXNJblJhbmdlKSB7XG4gICAgICAgICAgICA8c3Bhbj57eyBpdGVtPy5jb250ZW50IH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8YnV0dG9uIHRoeUJ1dHRvbj1cIm91dGxpbmUtZGVmYXVsdFwiIHRoeVNpemU9XCJzbVwiIChjbGljayk9XCJuZXh0Q2xpY2sodHlwZSlcIj5cbiAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIj48L3RoeS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
388
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUtY2Fyb3VzZWwvZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RhdGUtY2Fyb3VzZWwvZGF0ZS1jYXJvdXNlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsWUFBWSxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUU5RDs7R0FFRztBQWdCSCxNQUFNLE9BQU8sWUFBWTtJQWZ6QjtRQWdCWSxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFD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QUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzNDLFVBQVUsR0FBRyxXQUFXLENBQUM7WUFDekIsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDOUIsQ0FBQztRQUNELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekMsQ0FBQzs4R0F2WFEsWUFBWTtrR0FBWixZQUFZLHVKQVZWO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDOUM7U0FDSiwwQkN0Q0wscTlEQWlEQSw0Q0RUYyxnQkFBZ0Isb0pBQUUsU0FBUyxvTEFBRSxPQUFPLHNNQUFFLE9BQU8sK0VBQUUsaUNBQWlDOzsyRkFFakYsWUFBWTtrQkFmeEIsU0FBUzsrQkFFSSxlQUFlLG1CQUVSLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDO3lCQUM5QztxQkFDSixjQUNXLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGlDQUFpQyxDQUFDOzhCQU9yRSxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBRVgsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIGluamVjdCxcbiAgICBTaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaHlCdXR0b24gfSBmcm9tICduZ3gtdGV0aHlzL2J1dHRvbic7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRpbnlEYXRlIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwsIFJhbmdlQWR2YW5jZWRWYWx1ZSB9IGZyb20gJy4uLy4uL2lubmVyLXR5cGVzJztcbmltcG9ydCB7IERhdGVQaWNrZXJBZHZhbmNlZFNob3dZZWFyVGlwUGlwZSB9IGZyb20gJy4uLy4uL3BpY2tlci5waXBlcyc7XG5pbXBvcnQgeyBUaHlEYXRlR3JhbnVsYXJpdHkgfSBmcm9tICcuLi8uLi9zdGFuZGFyZC10eXBlcyc7XG5pbXBvcnQgeyBpbmplY3RMb2NhbGUsIFRoeURhdGVQaWNrZXJMb2NhbGUgfSBmcm9tICduZ3gtdGV0aHlzL2kxOG4nO1xuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRlLWhlbHBlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGF0ZS1jYXJvdXNlbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUNhcm91c2VsKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBUaHlCdXR0b24sIFRoeUljb24sIE5nQ2xhc3MsIERhdGVQaWNrZXJBZHZhbmNlZFNob3dZZWFyVGlwUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZUNhcm91c2VsIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSBkYXRlSGVscGVyID0gaW5qZWN0KERhdGVIZWxwZXJTZXJ2aWNlKTtcbiAgICBsb2NhbGU6IFNpZ25hbDxUaHlEYXRlUGlja2VyTG9jYWxlPiA9IGluamVjdExvY2FsZSgnZGF0ZVBpY2tlcicpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9ICd0aHktZGF0ZS1waWNrZXItYWR2YW5jZWQtY2Fyb3VzZWwnO1xuXG4gICAgQElucHV0KCkgYWN0aXZlRGF0ZTogVGlueURhdGU7XG5cbiAgICBzZXQgZGVmYXVsdFZhbHVlKHZhbHVlOiBSYW5nZUFkdmFuY2VkVmFsdWUpIHtcbiAgICAgICAgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPSB2YWx1ZS5kYXRlR3JhbnVsYXJpdHk7XG4gICAgICAgIHRoaXMuYnVpbGRTZWxlY3RhYmxlRGF0YSh2YWx1ZS5iZWdpbik7XG5cbiAgICAgICAgaWYgKHZhbHVlLmJlZ2luICYmIHZhbHVlLmVuZCkge1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkQmVTZWxlY3RWYWx1ZSA9IHRoaXMuZ2V0U2hvdWxkQmVUb2dnbGVWYWx1ZSh2YWx1ZS5iZWdpbiwgdmFsdWUuZW5kKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KC4uLnNob3VsZEJlU2VsZWN0VmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbGVhclNlbGVjdCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBzZWxlY3RhYmxlRGF0YTogeyB5ZWFyPzogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdOyBxdWFydGVyPzogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdOyBtb250aD86IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSB9ID0ge307XG5cbiAgICBkYXRlR3JhbnVsYXJpdHk6IFRoeURhdGVHcmFudWxhcml0eTtcblxuICAgIHNlbGVjdGVkVmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBzZWxlY3RlZFZhbHVlQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PFJhbmdlQWR2YW5jZWRWYWx1ZT4oKTtcblxuICAgIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsdWU6IFJhbmdlQWR2YW5jZWRWYWx1ZSkgPT4gdm9pZDtcblxuICAgIHByaXZhdGUgX29uVG91Y2hlZDogKHZhbHVlOiBSYW5nZUFkdmFuY2VkVmFsdWUpID0+IHZvaWQ7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkU2VsZWN0YWJsZURhdGEodGhpcy5zZWxlY3RlZFZhbHVlWzBdPy5zdGFydFZhbHVlLCB0aGlzLmRhdGVHcmFudWxhcml0eSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLnllYXIuZm9yRWFjaChpdGVtID0+IChpdGVtLmNsYXNzTWFwID0gdGhpcy5nZXRDbGFzc01hcChpdGVtKSkpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5xdWFydGVyLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEubW9udGguZm9yRWFjaChpdGVtID0+IChpdGVtLmNsYXNzTWFwID0gdGhpcy5nZXRDbGFzc01hcChpdGVtKSkpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1NlbGVjdEVtcHR5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUdyYW51bGFyaXR5OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsY3RlZFZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlR3JhbnVsYXJpdHk6IHRoaXMuZGF0ZUdyYW51bGFyaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IHNlbGN0ZWRWYWx1ZVswXT8uc3RhcnRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogc2VsY3RlZFZhbHVlW3NlbGN0ZWRWYWx1ZS5sZW5ndGggLSAxXT8uZW5kVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBSYW5nZUFkdmFuY2VkVmFsdWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBnZXRDbGFzc01hcChjZWxsOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYGFjdGl2ZWBdOiB0aGlzLmlzU2VsZWN0ZWQoY2VsbCksXG4gICAgICAgICAgICBbYGluZGV0ZXJtaW5hdGVgXTogdGhpcy5pc0NlbGxJbmRldGVybWluYXRlKHRoaXMuc2VsZWN0ZWRWYWx1ZSwgY2VsbCksXG4gICAgICAgICAgICBbYHR5cGUtYWN0aXZlYF06IHRoaXMuaXNUeXBlQWN0aXZlKHRoaXMuc2VsZWN0ZWRWYWx1ZSwgY2VsbCksXG4gICAgICAgICAgICBbJ2luLWhvdmVyLXJhbmdlJ106IGNlbGwuaXNJblJhbmdlLFxuICAgICAgICAgICAgWydvdXQtcmFuZ2UnXTogY2VsbC5pc091dFJhbmdlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaXNUeXBlQWN0aXZlKG9yaWdpbmFsVmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGxbXSwgdmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsVmFsdWU/Lmxlbmd0aCAmJiBvcmlnaW5hbFZhbHVlWzBdLnR5cGUgPT09IHZhbHVlLnR5cGU7XG4gICAgfVxuXG4gICAgaXNDZWxsSW5kZXRlcm1pbmF0ZShvcmlnaW5hbFZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsW10sIHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIGlmIChvcmlnaW5hbFZhbHVlWzBdPy50eXBlID09PSB2YWx1ZS50eXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZVswXT8udHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhb3JpZ2luYWxWYWx1ZS5maW5kKGl0ZW0gPT4gaXRlbS5zdGFydFZhbHVlLmlzU2FtZVllYXIodmFsdWUuc3RhcnRWYWx1ZSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ3llYXInXG4gICAgICAgICAgICAgICAgICAgID8gISFvcmlnaW5hbFZhbHVlLmZpbmQoaXRlbSA9PiBpdGVtLnN0YXJ0VmFsdWUuaXNTYW1lWWVhcih2YWx1ZS5zdGFydFZhbHVlKSlcbiAgICAgICAgICAgICAgICAgICAgOiAhIW9yaWdpbmFsVmFsdWUuZmluZChpdGVtID0+IGl0ZW0uc3RhcnRWYWx1ZS5pc1NhbWVRdWFydGVyKHZhbHVlLnN0YXJ0VmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQodmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZS5maW5kKGl0ZW0gPT4gaXRlbS5zdGFydFZhbHVlLmlzU2FtZURheSh2YWx1ZS5zdGFydFZhbHVlKSkgJiYgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPT09IHZhbHVlLnR5cGU7XG4gICAgfVxuXG4gICAgaXNTZWxlY3RFbXB0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggPT0gMDtcbiAgICB9XG5cbiAgICBzZWxlY3RTb3J0KCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUuc29ydCgoYSwgYikgPT4gYS5zdGFydFZhbHVlLmdldFRpbWUoKSAtIGIuc3RhcnRWYWx1ZS5nZXRUaW1lKCkpO1xuICAgIH1cblxuICAgIHNlbGVjdCguLi52YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChpdGVtKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5wdXNoKC4uLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VsZWN0U29ydCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBkZXNlbGVjdCguLi52YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB0aGlzLnNlbGVjdGVkVmFsdWUuZmlsdGVyKHNlbGVjdGVkID0+ICFzZWxlY3RlZC5zdGFydFZhbHVlLmlzU2FtZURheShpdGVtLnN0YXJ0VmFsdWUpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VsZWN0U29ydCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBjbGVhclNlbGVjdChoaWRkZW4/OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IFtdO1xuICAgICAgICBpZiAoIWhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTaG91bGRCZVRvZ2dsZVZhbHVlKGJlZ2luOiBUaW55RGF0ZSwgZW5kOiBUaW55RGF0ZSkge1xuICAgICAgICBsZXQgc2VsZWN0ZWRWYWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbFtdID0gW107XG4gICAgICAgIHN3aXRjaCAodGhpcy5kYXRlR3JhbnVsYXJpdHkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID0gJ3llYXInO1xuICAgICAgICAgICAgICAgIGlmIChiZWdpbi5pc1NhbWVZZWFyKGVuZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKHRoaXMuZ2V0U2VsZWN0YWJsZVllYXIoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlWWVhcihiZWdpbikpO1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWJlZ2luLmlzU2FtZVllYXIoZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4gPSBiZWdpbi5hZGRZZWFycygxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVZZWFyKGJlZ2luKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPSAnbW9udGgnO1xuICAgICAgICAgICAgICAgIGlmIChiZWdpbi5pc1NhbWVNb250aChlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVNb250aChiZWdpbikpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVNb250aChiZWdpbikpO1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWJlZ2luLmlzU2FtZU1vbnRoKGVuZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luID0gYmVnaW4uYWRkTW9udGhzKDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKHRoaXMuZ2V0U2VsZWN0YWJsZU1vbnRoKGJlZ2luKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVHcmFudWxhcml0eSA9ICdxdWFydGVyJztcbiAgICAgICAgICAgICAgICBpZiAoYmVnaW4uaXNTYW1lUXVhcnRlcihlbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaCh0aGlzLmdldFNlbGVjdGFibGVRdWFydGVyKGJlZ2luKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKHRoaXMuZ2V0U2VsZWN0YWJsZVF1YXJ0ZXIoYmVnaW4pKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFiZWdpbi5pc1NhbWVRdWFydGVyKGVuZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luID0gYmVnaW4uYWRkUXVhcnRlcnMoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlLnB1c2godGhpcy5nZXRTZWxlY3RhYmxlUXVhcnRlcihiZWdpbikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3RlZFZhbHVlO1xuICAgIH1cblxuICAgIGJ1aWxkU2VsZWN0YWJsZURhdGEoc3RhcnREYXRlOiBUaW55RGF0ZSwgZXhjbHVkZUdyYW51bGFyaXR5PzogVGh5RGF0ZUdyYW51bGFyaXR5KSB7XG4gICAgICAgIGNvbnN0IGJ1aWxkR3JhbnVsYXJpdHkgPSBbJ3llYXInLCAnbW9udGgnLCAncXVhcnRlciddLmZpbHRlcihpdGVtID0+IGl0ZW0gIT09IGV4Y2x1ZGVHcmFudWxhcml0eSk7XG4gICAgICAgIGJ1aWxkR3JhbnVsYXJpdHkuZm9yRWFjaChncmFudWxhcml0eSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEueWVhciA9IFsuLi5BcnJheSgzKS5rZXlzKCldLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGFibGVZZWFyKHN0YXJ0RGF0ZSwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEucXVhcnRlciA9IFsuLi5BcnJheSg0KS5rZXlzKCldLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGFibGVRdWFydGVyKHN0YXJ0RGF0ZSwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLm1vbnRoID0gWy4uLkFycmF5KDQpLmtleXMoKV0ubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0YWJsZU1vbnRoKHN0YXJ0RGF0ZSwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RhYmxlWWVhcihjdXJyZW50RGF0ZTogVGlueURhdGUsIHByZU9yTmV4dGNvdW50OiBudW1iZXIgPSAwKTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCB7XG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGUgfHwgdGhpcy5hY3RpdmVEYXRlIHx8IG5ldyBUaW55RGF0ZSgpLnN0YXJ0T2ZZZWFyKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAneWVhcicsXG4gICAgICAgICAgICBjb250ZW50OiBgJHtjdXJyZW50RGF0ZS5hZGRZZWFycyhwcmVPck5leHRjb3VudCkuZ2V0WWVhcigpfWAsXG4gICAgICAgICAgICBzdGFydFZhbHVlOiBjdXJyZW50RGF0ZS5zdGFydE9mWWVhcigpLmFkZFllYXJzKHByZU9yTmV4dGNvdW50KSxcbiAgICAgICAgICAgIGVuZFZhbHVlOiBjdXJyZW50RGF0ZS5lbmRPZlllYXIoKS5hZGRZZWFycyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBjbGFzc01hcDoge31cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RhYmxlUXVhcnRlcihjdXJyZW50RGF0ZTogVGlueURhdGUsIHByZU9yTmV4dGNvdW50OiBudW1iZXIgPSAwKTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCB7XG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGUgfHwgdGhpcy5hY3RpdmVEYXRlIHx8IG5ldyBUaW55RGF0ZSgpLnN0YXJ0T2ZRdWFydGVyKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAncXVhcnRlcicsXG4gICAgICAgICAgICBjb250ZW50OiBgUSR7Y3VycmVudERhdGUuYWRkUXVhcnRlcnMocHJlT3JOZXh0Y291bnQpLmdldFF1YXJ0ZXIoKX1gLFxuICAgICAgICAgICAgc3RhcnRWYWx1ZTogY3VycmVudERhdGUuc3RhcnRPZlF1YXJ0ZXIoKS5hZGRRdWFydGVycyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBlbmRWYWx1ZTogY3VycmVudERhdGUuZW5kT2ZRdWFydGVyKCkuYWRkUXVhcnRlcnMocHJlT3JOZXh0Y291bnQpLFxuICAgICAgICAgICAgY2xhc3NNYXA6IHt9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0YWJsZU1vbnRoKGN1cnJlbnREYXRlOiBUaW55RGF0ZSwgcHJlT3JOZXh0Y291bnQ6IG51bWJlciA9IDApOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsIHtcbiAgICAgICAgY3VycmVudERhdGUgPSBjdXJyZW50RGF0ZSB8fCB0aGlzLmFjdGl2ZURhdGUgfHwgbmV3IFRpbnlEYXRlKCkuc3RhcnRPZk1vbnRoKCk7XG4gICAgICAgIC8vIFNlbGVjdGFibGUgbW9udGhzIGZvciBhZHZhbmNlZCByYW5nZSBzZWxlY3RvclxuICAgICAgICBjb25zdCBjZWxsOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsID0ge1xuICAgICAgICAgICAgdHlwZTogJ21vbnRoJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuZGF0ZUhlbHBlci5mb3JtYXQoY3VycmVudERhdGUuYWRkTW9udGhzKHByZU9yTmV4dGNvdW50KS5uYXRpdmVEYXRlLCB0aGlzLmxvY2FsZSgpLm1vbnRoRm9ybWF0KSxcbiAgICAgICAgICAgIHN0YXJ0VmFsdWU6IGN1cnJlbnREYXRlLnN0YXJ0T2ZNb250aCgpLmFkZE1vbnRocyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBlbmRWYWx1ZTogY3VycmVudERhdGUuZW5kT2ZNb250aCgpLmFkZE1vbnRocyhwcmVPck5leHRjb3VudCksXG4gICAgICAgICAgICBjbGFzc01hcDoge31cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgfVxuXG4gICAgcHJldkNsaWNrKHR5cGU6IFRoeURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEueWVhciA9IHRoaXMuc2VsZWN0YWJsZURhdGEueWVhci5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVZZWFyKGl0ZW0uc3RhcnRWYWx1ZSwgLTEpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEucXVhcnRlciA9IHRoaXMuc2VsZWN0YWJsZURhdGEucXVhcnRlci5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVRdWFydGVyKGl0ZW0uc3RhcnRWYWx1ZSwgLTIpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhLm1vbnRoID0gdGhpcy5zZWxlY3RhYmxlRGF0YS5tb250aC5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVNb250aChpdGVtLnN0YXJ0VmFsdWUsIC0yKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgfVxuXG4gICAgbmV4dENsaWNrKHR5cGU6IFRoeURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGEueWVhciA9IHRoaXMuc2VsZWN0YWJsZURhdGEueWVhci5tYXAoaXRlbSA9PiB0aGlzLmdldFNlbGVjdGFibGVZZWFyKGl0ZW0uc3RhcnRWYWx1ZSwgMSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5xdWFydGVyID0gdGhpcy5zZWxlY3RhYmxlRGF0YS5xdWFydGVyLm1hcChpdGVtID0+IHRoaXMuZ2V0U2VsZWN0YWJsZVF1YXJ0ZXIoaXRlbS5zdGFydFZhbHVlLCAyKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YS5tb250aCA9IHRoaXMuc2VsZWN0YWJsZURhdGEubW9udGgubWFwKGl0ZW0gPT4gdGhpcy5nZXRTZWxlY3RhYmxlTW9udGgoaXRlbS5zdGFydFZhbHVlLCAyKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgfVxuXG4gICAgc2VsZWN0RGF0ZSh0eXBlOiBUaHlEYXRlR3JhbnVsYXJpdHksIHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGFbdHlwZV0uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaXNJblJhbmdlID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLmlzT3V0UmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVHcmFudWxhcml0eSA9IHR5cGU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdCh2YWx1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3QodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlR3JhbnVsYXJpdHkgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0ZUdyYW51bGFyaXR5ID09PSB2YWx1ZS50eXBlKSB7XG4gICAgICAgICAgICBjb25zdCB7IHJhbmdlU3RhcnQsIHJhbmdlRW5kIH0gPSB0aGlzLmdldEFjdHVhbFN0YXJ0QW5kRW5kKHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEJlU2VsZWN0VmFsdWUgPSB0aGlzLmdldFNob3VsZEJlVG9nZ2xlVmFsdWUocmFuZ2VTdGFydCwgcmFuZ2VFbmQpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3QoLi4uc2hvdWxkQmVTZWxlY3RWYWx1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZUdyYW51bGFyaXR5ID0gdHlwZTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTZWxlY3QodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdCh2YWx1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b2dnbGVTZWxlY3QodmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgaWYgKHZhbHVlLnN0YXJ0VmFsdWUuaXNTYW1lRGF5KHRoaXMuc2VsZWN0ZWRWYWx1ZVswXS5zdGFydFZhbHVlKSkge1xuICAgICAgICAgICAgLy8gb25seSBkZXNlbGVjdCBmaXJzdCBvbmVcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3QodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZGVzZWxlY3QgY3VycmVudCBhbmQgYWxsIGFmdGVyIGN1cnJlbnRcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlU3RhcnQgPSB2YWx1ZS5zdGFydFZhbHVlO1xuICAgICAgICAgICAgY29uc3QgcmFuZ2VFbmQgPSB0aGlzLnNlbGVjdGVkVmFsdWVbdGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aCAtIDFdLmVuZFZhbHVlO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkQmVEZXNlbGVjdFZhbHVlID0gdGhpcy5nZXRTaG91bGRCZVRvZ2dsZVZhbHVlKHJhbmdlU3RhcnQsIHJhbmdlRW5kKTtcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3QoLi4uc2hvdWxkQmVEZXNlbGVjdFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW91c2VlbnRlcihldmVudDogRXZlbnQsIHR5cGU6IFRoeURhdGVHcmFudWxhcml0eSwgdmFsdWU6IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RFbXB0eSgpIHx8IHRoaXMuZGF0ZUdyYW51bGFyaXR5ICE9PSB0eXBlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlLmlzSW5SYW5nZSA9IHRydWU7XG4gICAgICAgICAgICBpZiAodmFsdWUuc3RhcnRWYWx1ZS5pc1NhbWVEYXkodGhpcy5zZWxlY3RlZFZhbHVlWzBdLnN0YXJ0VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUuaXNPdXRSYW5nZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlU3RhcnQgPSB2YWx1ZS5zdGFydFZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlRW5kID0gdGhpcy5zZWxlY3RlZFZhbHVlW3RoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggLSAxXS5lbmRWYWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goKGl0ZW06IEFkdmFuY2VkU2VsZWN0YWJsZUNlbGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uc3RhcnRWYWx1ZS5nZXRUaW1lKCkgPj0gcmFuZ2VTdGFydC5nZXRUaW1lKCkgJiYgaXRlbS5zdGFydFZhbHVlLmdldFRpbWUoKSA8IHJhbmdlRW5kLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pc091dFJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNPdXRSYW5nZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB7IHJhbmdlU3RhcnQsIHJhbmdlRW5kIH0gPSB0aGlzLmdldEFjdHVhbFN0YXJ0QW5kRW5kKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZURhdGFbdHlwZV0uZm9yRWFjaCgoaXRlbTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLnN0YXJ0VmFsdWUuZ2V0VGltZSgpID49IHJhbmdlU3RhcnQuZ2V0VGltZSgpICYmIGl0ZW0uc3RhcnRWYWx1ZS5nZXRUaW1lKCkgPCByYW5nZUVuZC5nZXRUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5pc0luUmFuZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNJblJhbmdlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlRGF0YVt0eXBlXS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGl0ZW0pKSk7XG4gICAgfVxuXG4gICAgb25Nb3VzZWxlYXZlKGV2ZW50OiBFdmVudCwgdHlwZTogVGh5RGF0ZUdyYW51bGFyaXR5LCB2YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICBpZiAodmFsdWUuaXNJblJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5pc0luUmFuZ2UgPSBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZS5pc091dFJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5pc091dFJhbmdlID0gZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGFibGVEYXRhW3R5cGVdLmZvckVhY2goaXRlbSA9PiAoaXRlbS5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoaXRlbSkpKTtcbiAgICB9XG5cbiAgICBnZXRBY3R1YWxTdGFydEFuZEVuZCh2YWx1ZTogQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFN0YXJ0ID0gdGhpcy5zZWxlY3RlZFZhbHVlWzBdLnN0YXJ0VmFsdWU7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRW5kID0gdGhpcy5zZWxlY3RlZFZhbHVlW3RoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggLSAxXS5lbmRWYWx1ZTtcbiAgICAgICAgbGV0IHJhbmdlU3RhcnQ6IFRpbnlEYXRlLCByYW5nZUVuZDogVGlueURhdGU7XG4gICAgICAgIGlmICh2YWx1ZS5zdGFydFZhbHVlLmlzQmVmb3JlRGF5KHNlbGVjdGVkU3RhcnQpKSB7XG4gICAgICAgICAgICByYW5nZVN0YXJ0ID0gdmFsdWUuc3RhcnRWYWx1ZTtcbiAgICAgICAgICAgIHJhbmdlRW5kID0gc2VsZWN0ZWRTdGFydDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUuc3RhcnRWYWx1ZS5pc0FmdGVyRGF5KHNlbGVjdGVkRW5kKSkge1xuICAgICAgICAgICAgcmFuZ2VTdGFydCA9IHNlbGVjdGVkRW5kO1xuICAgICAgICAgICAgcmFuZ2VFbmQgPSB2YWx1ZS5lbmRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyByYW5nZVN0YXJ0LCByYW5nZUVuZCB9O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAqbmdUZW1wbGF0ZU91dGxldD1cImNhcm91c2VsSXRlbTsgY29udGV4dDogeyB0aXRsZTogbG9jYWxlKCkueWVhclRleHQsIHR5cGU6ICd5ZWFyJywgc2VsZWN0YWJsZURhdGE6IHNlbGVjdGFibGVEYXRhLnllYXIgfVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyXG4gICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgY2Fyb3VzZWxJdGVtO1xuICAgIGNvbnRleHQ6IHsgdGl0bGU6IGxvY2FsZSgpLnF1YXJ0ZXJUZXh0LCB0eXBlOiAncXVhcnRlcicsIHNlbGVjdGFibGVEYXRhOiBzZWxlY3RhYmxlRGF0YS5xdWFydGVyIH1cbiAgXCI+PC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICBjYXJvdXNlbEl0ZW07XG4gICAgY29udGV4dDogeyB0aXRsZTogbG9jYWxlKCkubW9udGhUZXh0LCB0eXBlOiAnbW9udGgnLCBzZWxlY3RhYmxlRGF0YTogc2VsZWN0YWJsZURhdGEubW9udGggfVxuICBcIj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNjYXJvdXNlbEl0ZW0gbGV0LXRpdGxlPVwidGl0bGVcIiBsZXQtc2VsZWN0YWJsZURhdGE9XCJzZWxlY3RhYmxlRGF0YVwiIGxldC10eXBlPVwidHlwZVwiPlxuICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbSBjYXJvdXNlbC1pdGVtLXt7IHR5cGUgfX1cIj5cbiAgICA8cCBjbGFzcz1cImNhcm91c2VsLWl0ZW0tdGl0bGVcIj57eyB0aXRsZSB9fTwvcD5cbiAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbS1jb250ZW50XCI+XG4gICAgICA8YnV0dG9uIHRoeUJ1dHRvbj1cIm91dGxpbmUtZGVmYXVsdFwiIHRoeVNpemU9XCJzbVwiIGNsYXNzPVwicmlnaHQtc3BhY2VcIiAoY2xpY2spPVwicHJldkNsaWNrKHR5cGUpXCI+XG4gICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWxlZnRcIj48L3RoeS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICBAZm9yIChpdGVtIG9mIHNlbGVjdGFibGVEYXRhOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0YWJsZS1idXR0b24gcmlnaHQtc3BhY2VcIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXRlKHR5cGUsIGl0ZW0pXCJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlZW50ZXIoJGV2ZW50LCB0eXBlLCBpdGVtKVwiXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZWxlYXZlKCRldmVudCwgdHlwZSwgaXRlbSlcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NNYXBcIj5cbiAgICAgICAgICBAaWYgKGl0ZW0gfCBzaG93WWVhclRpcDogdHlwZSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ5ZWFyLXRpcFwiPnt7IGl0ZW0/LnN0YXJ0VmFsdWU/LmdldFllYXIoKSB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChpdGVtLmlzSW5SYW5nZSAmJiBpc1NlbGVjdGVkKGl0ZW0pKSB7XG4gICAgICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZVwiPjwvdGh5LWljb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoaXRlbS5pc0luUmFuZ2UgJiYgIWlzU2VsZWN0ZWQoaXRlbSkpIHtcbiAgICAgICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cInBsdXNcIj48L3RoeS1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKCFpdGVtLmlzSW5SYW5nZSkge1xuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbT8uY29udGVudCB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgPGJ1dHRvbiB0aHlCdXR0b249XCJvdXRsaW5lLWRlZmF1bHRcIiB0aHlTaXplPVwic21cIiAoY2xpY2spPVwibmV4dENsaWNrKHR5cGUpXCI+XG4gICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLXJpZ2h0XCI+PC90aHktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -33,10 +33,10 @@ export class DecadeHeader extends CalendarHeader {
33
33
  ];
34
34
  }
35
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DecadeHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: DecadeHeader, isStandalone: true, selector: "decade-header", usesInheritance: true, ngImport: i0, template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative\">\n <a\n class=\"{{ prefixCls }}-prev-year-btn\"\n [ngClass]=\"showSuperPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superPrevious()\"\n title=\"\u4E0A\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a class=\"{{ prefixCls }}-prev-month-btn\" [ngClass]=\"showPreBtn ? 'd-block' : 'd-none'\" role=\"button\" (click)=\"previous()\" title=\"\u4E0A\u6708\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n @for (selector of selectors; track $index) {\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n }\n </span>\n\n <a class=\"{{ prefixCls }}-next-month-btn\" [ngClass]=\"showNextBtn ? 'd-block' : 'd-none'\" role=\"button\" (click)=\"next()\" title=\"\u4E0B\u4E2A\u6708\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-next-year-btn\"\n [ngClass]=\"showSuperNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superNext()\"\n title=\"\u4E0B\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: DecadeHeader, isStandalone: true, selector: "decade-header", usesInheritance: true, ngImport: i0, template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative\">\n <a\n class=\"{{ prefixCls }}-prev-year-btn\"\n [ngClass]=\"showSuperPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superPrevious()\"\n [title]=\"locale().previousYear\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-prev-month-btn\"\n [ngClass]=\"showPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"previous()\"\n [title]=\"locale().previousMonth\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n @for (selector of selectors; track $index) {\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n }\n </span>\n\n <a\n class=\"{{ prefixCls }}-next-month-btn\"\n [ngClass]=\"showNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"next()\"\n [title]=\"locale().nextMonth\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-next-year-btn\"\n [ngClass]=\"showSuperNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superNext()\"\n [title]=\"locale().nextYear\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
37
  }
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DecadeHeader, decorators: [{
39
39
  type: Component,
40
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'decade-header', standalone: true, imports: [NgClass, ThyIcon], template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative\">\n <a\n class=\"{{ prefixCls }}-prev-year-btn\"\n [ngClass]=\"showSuperPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superPrevious()\"\n title=\"\u4E0A\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a class=\"{{ prefixCls }}-prev-month-btn\" [ngClass]=\"showPreBtn ? 'd-block' : 'd-none'\" role=\"button\" (click)=\"previous()\" title=\"\u4E0A\u6708\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n @for (selector of selectors; track $index) {\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n }\n </span>\n\n <a class=\"{{ prefixCls }}-next-month-btn\" [ngClass]=\"showNextBtn ? 'd-block' : 'd-none'\" role=\"button\" (click)=\"next()\" title=\"\u4E0B\u4E2A\u6708\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-next-year-btn\"\n [ngClass]=\"showSuperNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superNext()\"\n title=\"\u4E0B\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n" }]
40
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'decade-header', standalone: true, imports: [NgClass, ThyIcon], template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative\">\n <a\n class=\"{{ prefixCls }}-prev-year-btn\"\n [ngClass]=\"showSuperPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superPrevious()\"\n [title]=\"locale().previousYear\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-prev-month-btn\"\n [ngClass]=\"showPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"previous()\"\n [title]=\"locale().previousMonth\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n @for (selector of selectors; track $index) {\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n }\n </span>\n\n <a\n class=\"{{ prefixCls }}-next-month-btn\"\n [ngClass]=\"showNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"next()\"\n [title]=\"locale().nextMonth\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-next-year-btn\"\n [ngClass]=\"showSuperNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superNext()\"\n [title]=\"locale().nextYear\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n" }]
41
41
  }], ctorParameters: () => [] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWRlLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RlY2FkZS9kZWNhZGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9saWIvY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHM0UsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxQzs7R0FFRztBQVNILE1BQU0sT0FBTyxZQUFhLFNBQVEsY0FBYztJQUc1QztRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELElBQUksU0FBUztRQUNULE9BQU8sUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU87WUFDSDtnQkFDSSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhO2dCQUN6QyxLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztnQkFDakIsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2FBQzdDO1NBQ0osQ0FBQztJQUNOLENBQUM7OEdBL0JRLFlBQVk7a0dBQVosWUFBWSxnR0NsQnpCLDY1Q0FtQ0EsNENEbkJjLE9BQU8sb0ZBQUUsT0FBTzs7MkZBRWpCLFlBQVk7a0JBUnhCLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUVyQyxlQUFlLGNBRWIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEYXRlSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGUtcGlja2VyL2RhdGUtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWFkZXIsIFBhbmVsU2VsZWN0b3IgfSBmcm9tICcuLi9jYWxlbmRhci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2RlY2FkZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi4vY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0NsYXNzLCBUaHlJY29uXVxufSlcbmV4cG9ydCBjbGFzcyBEZWNhZGVIZWFkZXIgZXh0ZW5kcyBDYWxlbmRhckhlYWRlciB7XG4gICAgZGF0ZUhlbHBlcjogRGF0ZUhlbHBlclNlcnZpY2U7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgZ2V0IHN0YXJ0WWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoYCR7dGhpcy52YWx1ZS5nZXRZZWFyKCkgLyAxMDB9YCwgMTApICogMTAwO1xuICAgIH1cblxuICAgIGdldCBlbmRZZWFyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0WWVhciArIDk5O1xuICAgIH1cblxuICAgIHN1cGVyUHJldmlvdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlVmFsdWUodGhpcy52YWx1ZS5hZGRZZWFycygtMTAwKSk7XG4gICAgfVxuXG4gICAgc3VwZXJOZXh0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKHRoaXMudmFsdWUuYWRkWWVhcnMoMTAwKSk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0b3JzKCk6IFBhbmVsU2VsZWN0b3JbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBgJHt0aGlzLnByZWZpeENsc30tZGVjYWRlLWJ0bmAsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHt9LFxuICAgICAgICAgICAgICAgIGxhYmVsOiBgJHt0aGlzLnN0YXJ0WWVhcn0tJHt0aGlzLmVuZFllYXJ9YFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0taGVhZGVyXCI+XG4gIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj5cbiAgICA8YVxuICAgICAgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tcHJldi15ZWFyLWJ0blwiXG4gICAgICBbbmdDbGFzc109XCJzaG93U3VwZXJQcmVCdG4gPyAnZC1ibG9jaycgOiAnZC1ub25lJ1wiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJzdXBlclByZXZpb3VzKClcIlxuICAgICAgdGl0bGU9XCLkuIrkuIDlubRcIj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWRvdWJsZS1sZWZ0XCI+PC90aHktaWNvbj5cbiAgICA8L2E+XG4gICAgPGEgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tcHJldi1tb250aC1idG5cIiBbbmdDbGFzc109XCJzaG93UHJlQnRuID8gJ2QtYmxvY2snIDogJ2Qtbm9uZSdcIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInByZXZpb3VzKClcIiB0aXRsZT1cIuS4iuaciFwiPlxuICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtbGVmdFwiPjwvdGh5LWljb24+XG4gICAgPC9hPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tbXktc2VsZWN0XCI+XG4gICAgICBAZm9yIChzZWxlY3RvciBvZiBzZWxlY3RvcnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8YSBjbGFzcz1cInt7IHNlbGVjdG9yLmNsYXNzTmFtZSB9fVwiIHJvbGU9XCJidXR0b25cIiAoY2xpY2spPVwic2VsZWN0b3JDbGljaygkZXZlbnQsIHNlbGVjdG9yKVwiIHRpdGxlPVwie3sgc2VsZWN0b3IudGl0bGUgfHwgbnVsbCB9fVwiPlxuICAgICAgICAgIHt7IHNlbGVjdG9yLmxhYmVsIH19XG4gICAgICAgIDwvYT5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG5cbiAgICA8YSBjbGFzcz1cInt7IHByZWZpeENscyB9fS1uZXh0LW1vbnRoLWJ0blwiIFtuZ0NsYXNzXT1cInNob3dOZXh0QnRuID8gJ2QtYmxvY2snIDogJ2Qtbm9uZSdcIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm5leHQoKVwiIHRpdGxlPVwi5LiL5Liq5pyIXCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodFwiPjwvdGh5LWljb24+XG4gICAgPC9hPlxuICAgIDxhXG4gICAgICBjbGFzcz1cInt7IHByZWZpeENscyB9fS1uZXh0LXllYXItYnRuXCJcbiAgICAgIFtuZ0NsYXNzXT1cInNob3dTdXBlck5leHRCdG4gPyAnZC1ibG9jaycgOiAnZC1ub25lJ1wiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJzdXBlck5leHQoKVwiXG4gICAgICB0aXRsZT1cIuS4i+S4gOW5tFwiPlxuICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtZG91YmxlLXJpZ2h0XCI+PC90aHktaWNvbj5cbiAgICA8L2E+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWRlLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL2RlY2FkZS9kZWNhZGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9saWIvY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxQzs7R0FFRztBQVNILE1BQU0sT0FBTyxZQUFhLFNBQVEsY0FBYztJQUc1QztRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELElBQUksU0FBUztRQUNULE9BQU8sUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU87WUFDSDtnQkFDSSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhO2dCQUN6QyxLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztnQkFDakIsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2FBQzdDO1NBQ0osQ0FBQztJQUNOLENBQUM7OEdBL0JRLFlBQVk7a0dBQVosWUFBWSxnR0NsQnpCLHUvQ0E2Q0EsNENEN0JjLE9BQU8sb0ZBQUUsT0FBTzs7MkZBRWpCLFlBQVk7a0JBUnhCLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUVyQyxlQUFlLGNBRWIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRlLXBpY2tlci9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFySGVhZGVyLCBQYW5lbFNlbGVjdG9yIH0gZnJvbSAnLi4vY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdkZWNhZGUtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4uL2NhbGVuZGFyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgVGh5SWNvbl1cbn0pXG5leHBvcnQgY2xhc3MgRGVjYWRlSGVhZGVyIGV4dGVuZHMgQ2FsZW5kYXJIZWFkZXIge1xuICAgIGRhdGVIZWxwZXI6IERhdGVIZWxwZXJTZXJ2aWNlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIGdldCBzdGFydFllYXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGAke3RoaXMudmFsdWUuZ2V0WWVhcigpIC8gMTAwfWAsIDEwKSAqIDEwMDtcbiAgICB9XG5cbiAgICBnZXQgZW5kWWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydFllYXIgKyA5OTtcbiAgICB9XG5cbiAgICBzdXBlclByZXZpb3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKHRoaXMudmFsdWUuYWRkWWVhcnMoLTEwMCkpO1xuICAgIH1cblxuICAgIHN1cGVyTmV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VWYWx1ZSh0aGlzLnZhbHVlLmFkZFllYXJzKDEwMCkpO1xuICAgIH1cblxuICAgIGdldFNlbGVjdG9ycygpOiBQYW5lbFNlbGVjdG9yW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogYCR7dGhpcy5wcmVmaXhDbHN9LWRlY2FkZS1idG5gLFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7fSxcbiAgICAgICAgICAgICAgICBsYWJlbDogYCR7dGhpcy5zdGFydFllYXJ9LSR7dGhpcy5lbmRZZWFyfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWhlYWRlclwiPlxuICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCI+XG4gICAgPGFcbiAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXByZXYteWVhci1idG5cIlxuICAgICAgW25nQ2xhc3NdPVwic2hvd1N1cGVyUHJlQnRuID8gJ2QtYmxvY2snIDogJ2Qtbm9uZSdcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwic3VwZXJQcmV2aW91cygpXCJcbiAgICAgIFt0aXRsZV09XCJsb2NhbGUoKS5wcmV2aW91c1llYXJcIj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWRvdWJsZS1sZWZ0XCI+PC90aHktaWNvbj5cbiAgICA8L2E+XG4gICAgPGFcbiAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXByZXYtbW9udGgtYnRuXCJcbiAgICAgIFtuZ0NsYXNzXT1cInNob3dQcmVCdG4gPyAnZC1ibG9jaycgOiAnZC1ub25lJ1wiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJwcmV2aW91cygpXCJcbiAgICAgIFt0aXRsZV09XCJsb2NhbGUoKS5wcmV2aW91c01vbnRoXCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1sZWZ0XCI+PC90aHktaWNvbj5cbiAgICA8L2E+XG5cbiAgICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1teS1zZWxlY3RcIj5cbiAgICAgIEBmb3IgKHNlbGVjdG9yIG9mIHNlbGVjdG9yczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxhIGNsYXNzPVwie3sgc2VsZWN0b3IuY2xhc3NOYW1lIH19XCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJzZWxlY3RvckNsaWNrKCRldmVudCwgc2VsZWN0b3IpXCIgdGl0bGU9XCJ7eyBzZWxlY3Rvci50aXRsZSB8fCBudWxsIH19XCI+XG4gICAgICAgICAge3sgc2VsZWN0b3IubGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cblxuICAgIDxhXG4gICAgICBjbGFzcz1cInt7IHByZWZpeENscyB9fS1uZXh0LW1vbnRoLWJ0blwiXG4gICAgICBbbmdDbGFzc109XCJzaG93TmV4dEJ0biA/ICdkLWJsb2NrJyA6ICdkLW5vbmUnXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm5leHQoKVwiXG4gICAgICBbdGl0bGVdPVwibG9jYWxlKCkubmV4dE1vbnRoXCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodFwiPjwvdGh5LWljb24+XG4gICAgPC9hPlxuICAgIDxhXG4gICAgICBjbGFzcz1cInt7IHByZWZpeENscyB9fS1uZXh0LXllYXItYnRuXCJcbiAgICAgIFtuZ0NsYXNzXT1cInNob3dTdXBlck5leHRCdG4gPyAnZC1ibG9jaycgOiAnZC1ub25lJ1wiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJzdXBlck5leHQoKVwiXG4gICAgICBbdGl0bGVdPVwibG9jYWxlKCkubmV4dFllYXJcIj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWRvdWJsZS1yaWdodFwiPjwvdGh5LWljb24+XG4gICAgPC9hPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -8,7 +8,7 @@ import * as i0 from "@angular/core";
8
8
  */
9
9
  export class MonthHeader extends CalendarHeader {
10
10
  getSelectors() {
11
- let yearFormat = 'yyyy年';
11
+ let yearFormat = this.locale().yearFormat;
12
12
  return [
13
13
  {
14
14
  className: `${this.prefixCls}-month-btn`,
@@ -18,10 +18,10 @@ export class MonthHeader extends CalendarHeader {
18
18
  ];
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: MonthHeader, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: MonthHeader, isStandalone: true, selector: "month-header", usesInheritance: true, ngImport: i0, template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative\">\n <a\n class=\"{{ prefixCls }}-prev-year-btn\"\n [ngClass]=\"showSuperPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superPrevious()\"\n title=\"\u4E0A\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a class=\"{{ prefixCls }}-prev-month-btn\" [ngClass]=\"showPreBtn ? 'd-block' : 'd-none'\" role=\"button\" (click)=\"previous()\" title=\"\u4E0A\u6708\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n @for (selector of selectors; track $index) {\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n }\n </span>\n\n <a class=\"{{ prefixCls }}-next-month-btn\" [ngClass]=\"showNextBtn ? 'd-block' : 'd-none'\" role=\"button\" (click)=\"next()\" title=\"\u4E0B\u4E2A\u6708\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-next-year-btn\"\n [ngClass]=\"showSuperNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superNext()\"\n title=\"\u4E0B\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: MonthHeader, isStandalone: true, selector: "month-header", usesInheritance: true, ngImport: i0, template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative\">\n <a\n class=\"{{ prefixCls }}-prev-year-btn\"\n [ngClass]=\"showSuperPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superPrevious()\"\n [title]=\"locale().previousYear\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-prev-month-btn\"\n [ngClass]=\"showPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"previous()\"\n [title]=\"locale().previousMonth\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n @for (selector of selectors; track $index) {\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n }\n </span>\n\n <a\n class=\"{{ prefixCls }}-next-month-btn\"\n [ngClass]=\"showNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"next()\"\n [title]=\"locale().nextMonth\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-next-year-btn\"\n [ngClass]=\"showSuperNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superNext()\"\n [title]=\"locale().nextYear\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: MonthHeader, decorators: [{
24
24
  type: Component,
25
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'month-header', standalone: true, imports: [NgClass, ThyIcon], template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative\">\n <a\n class=\"{{ prefixCls }}-prev-year-btn\"\n [ngClass]=\"showSuperPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superPrevious()\"\n title=\"\u4E0A\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a class=\"{{ prefixCls }}-prev-month-btn\" [ngClass]=\"showPreBtn ? 'd-block' : 'd-none'\" role=\"button\" (click)=\"previous()\" title=\"\u4E0A\u6708\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n @for (selector of selectors; track $index) {\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n }\n </span>\n\n <a class=\"{{ prefixCls }}-next-month-btn\" [ngClass]=\"showNextBtn ? 'd-block' : 'd-none'\" role=\"button\" (click)=\"next()\" title=\"\u4E0B\u4E2A\u6708\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-next-year-btn\"\n [ngClass]=\"showSuperNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superNext()\"\n title=\"\u4E0B\u4E00\u5E74\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n" }]
25
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'month-header', standalone: true, imports: [NgClass, ThyIcon], template: "<div class=\"{{ prefixCls }}-header\">\n <div style=\"position: relative\">\n <a\n class=\"{{ prefixCls }}-prev-year-btn\"\n [ngClass]=\"showSuperPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superPrevious()\"\n [title]=\"locale().previousYear\">\n <thy-icon thyIconName=\"angle-double-left\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-prev-month-btn\"\n [ngClass]=\"showPreBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"previous()\"\n [title]=\"locale().previousMonth\">\n <thy-icon thyIconName=\"angle-left\"></thy-icon>\n </a>\n\n <span class=\"{{ prefixCls }}-my-select\">\n @for (selector of selectors; track $index) {\n <a class=\"{{ selector.className }}\" role=\"button\" (click)=\"selectorClick($event, selector)\" title=\"{{ selector.title || null }}\">\n {{ selector.label }}\n </a>\n }\n </span>\n\n <a\n class=\"{{ prefixCls }}-next-month-btn\"\n [ngClass]=\"showNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"next()\"\n [title]=\"locale().nextMonth\">\n <thy-icon thyIconName=\"angle-right\"></thy-icon>\n </a>\n <a\n class=\"{{ prefixCls }}-next-year-btn\"\n [ngClass]=\"showSuperNextBtn ? 'd-block' : 'd-none'\"\n role=\"button\"\n (click)=\"superNext()\"\n [title]=\"locale().nextYear\">\n <thy-icon thyIconName=\"angle-double-right\"></thy-icon>\n </a>\n </div>\n</div>\n" }]
26
26
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9saWIvbW9udGgvbW9udGgtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9saWIvY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxQzs7R0FFRztBQVNILE1BQU0sT0FBTyxXQUFZLFNBQVEsY0FBYztJQUMzQyxZQUFZO1FBQ1IsSUFBSSxVQUFVLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLE9BQU87WUFDSDtnQkFDSSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZO2dCQUN4QyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzthQUN6QztTQUNKLENBQUM7SUFDTixDQUFDOzhHQVZRLFdBQVc7a0dBQVgsV0FBVywrRkNqQnhCLDY1Q0FtQ0EsNENEcEJjLE9BQU8sb0ZBQUUsT0FBTzs7MkZBRWpCLFdBQVc7a0JBUnZCLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUVyQyxjQUFjLGNBRVosSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRlLXBpY2tlci9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFySGVhZGVyLCBQYW5lbFNlbGVjdG9yIH0gZnJvbSAnLi4vY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdtb250aC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi4vY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0NsYXNzLCBUaHlJY29uXVxufSlcbmV4cG9ydCBjbGFzcyBNb250aEhlYWRlciBleHRlbmRzIENhbGVuZGFySGVhZGVyIHtcbiAgICBnZXRTZWxlY3RvcnMoKTogUGFuZWxTZWxlY3RvcltdIHtcbiAgICAgICAgbGV0IHllYXJGb3JtYXQgPSAneXl5eeW5tCc7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBgJHt0aGlzLnByZWZpeENsc30tbW9udGgtYnRuYCxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB0aGlzLmNoYW5nZVBhbmVsKCd5ZWFyJyksXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZm9ybWF0RGF0ZVRpbWUoeWVhckZvcm1hdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWhlYWRlclwiPlxuICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCI+XG4gICAgPGFcbiAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXByZXYteWVhci1idG5cIlxuICAgICAgW25nQ2xhc3NdPVwic2hvd1N1cGVyUHJlQnRuID8gJ2QtYmxvY2snIDogJ2Qtbm9uZSdcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwic3VwZXJQcmV2aW91cygpXCJcbiAgICAgIHRpdGxlPVwi5LiK5LiA5bm0XCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3VibGUtbGVmdFwiPjwvdGh5LWljb24+XG4gICAgPC9hPlxuICAgIDxhIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXByZXYtbW9udGgtYnRuXCIgW25nQ2xhc3NdPVwic2hvd1ByZUJ0biA/ICdkLWJsb2NrJyA6ICdkLW5vbmUnXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJwcmV2aW91cygpXCIgdGl0bGU9XCLkuIrmnIhcIj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWxlZnRcIj48L3RoeS1pY29uPlxuICAgIDwvYT5cblxuICAgIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LW15LXNlbGVjdFwiPlxuICAgICAgQGZvciAoc2VsZWN0b3Igb2Ygc2VsZWN0b3JzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGEgY2xhc3M9XCJ7eyBzZWxlY3Rvci5jbGFzc05hbWUgfX1cIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNlbGVjdG9yQ2xpY2soJGV2ZW50LCBzZWxlY3RvcilcIiB0aXRsZT1cInt7IHNlbGVjdG9yLnRpdGxlIHx8IG51bGwgfX1cIj5cbiAgICAgICAgICB7eyBzZWxlY3Rvci5sYWJlbCB9fVxuICAgICAgICA8L2E+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuXG4gICAgPGEgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tbmV4dC1tb250aC1idG5cIiBbbmdDbGFzc109XCJzaG93TmV4dEJ0biA/ICdkLWJsb2NrJyA6ICdkLW5vbmUnXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJuZXh0KClcIiB0aXRsZT1cIuS4i+S4quaciFwiPlxuICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIj48L3RoeS1pY29uPlxuICAgIDwvYT5cbiAgICA8YVxuICAgICAgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tbmV4dC15ZWFyLWJ0blwiXG4gICAgICBbbmdDbGFzc109XCJzaG93U3VwZXJOZXh0QnRuID8gJ2QtYmxvY2snIDogJ2Qtbm9uZSdcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwic3VwZXJOZXh0KClcIlxuICAgICAgdGl0bGU9XCLkuIvkuIDlubRcIj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWRvdWJsZS1yaWdodFwiPjwvdGh5LWljb24+XG4gICAgPC9hPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9saWIvbW9udGgvbW9udGgtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9saWIvY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxQzs7R0FFRztBQVNILE1BQU0sT0FBTyxXQUFZLFNBQVEsY0FBYztJQUMzQyxZQUFZO1FBQ1IsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUMxQyxPQUFPO1lBQ0g7Z0JBQ0ksU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWTtnQkFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO2dCQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7YUFDekM7U0FDSixDQUFDO0lBQ04sQ0FBQzs4R0FWUSxXQUFXO2tHQUFYLFdBQVcsK0ZDaEJ4Qix1L0NBNkNBLDRDRC9CYyxPQUFPLG9GQUFFLE9BQU87OzJGQUVqQixXQUFXO2tCQVJ2QixTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFFckMsY0FBYyxjQUVaLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWxlbmRhckhlYWRlciwgUGFuZWxTZWxlY3RvciB9IGZyb20gJy4uL2NhbGVuZGFyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnbW9udGgtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4uL2NhbGVuZGFyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgVGh5SWNvbl1cbn0pXG5leHBvcnQgY2xhc3MgTW9udGhIZWFkZXIgZXh0ZW5kcyBDYWxlbmRhckhlYWRlciB7XG4gICAgZ2V0U2VsZWN0b3JzKCk6IFBhbmVsU2VsZWN0b3JbXSB7XG4gICAgICAgIGxldCB5ZWFyRm9ybWF0ID0gdGhpcy5sb2NhbGUoKS55ZWFyRm9ybWF0O1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogYCR7dGhpcy5wcmVmaXhDbHN9LW1vbnRoLWJ0bmAsXG4gICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4gdGhpcy5jaGFuZ2VQYW5lbCgneWVhcicpLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmZvcm1hdERhdGVUaW1lKHllYXJGb3JtYXQpXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1oZWFkZXJcIj5cbiAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxuICAgIDxhXG4gICAgICBjbGFzcz1cInt7IHByZWZpeENscyB9fS1wcmV2LXllYXItYnRuXCJcbiAgICAgIFtuZ0NsYXNzXT1cInNob3dTdXBlclByZUJ0biA/ICdkLWJsb2NrJyA6ICdkLW5vbmUnXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cInN1cGVyUHJldmlvdXMoKVwiXG4gICAgICBbdGl0bGVdPVwibG9jYWxlKCkucHJldmlvdXNZZWFyXCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3VibGUtbGVmdFwiPjwvdGh5LWljb24+XG4gICAgPC9hPlxuICAgIDxhXG4gICAgICBjbGFzcz1cInt7IHByZWZpeENscyB9fS1wcmV2LW1vbnRoLWJ0blwiXG4gICAgICBbbmdDbGFzc109XCJzaG93UHJlQnRuID8gJ2QtYmxvY2snIDogJ2Qtbm9uZSdcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwicHJldmlvdXMoKVwiXG4gICAgICBbdGl0bGVdPVwibG9jYWxlKCkucHJldmlvdXNNb250aFwiPlxuICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtbGVmdFwiPjwvdGh5LWljb24+XG4gICAgPC9hPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tbXktc2VsZWN0XCI+XG4gICAgICBAZm9yIChzZWxlY3RvciBvZiBzZWxlY3RvcnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8YSBjbGFzcz1cInt7IHNlbGVjdG9yLmNsYXNzTmFtZSB9fVwiIHJvbGU9XCJidXR0b25cIiAoY2xpY2spPVwic2VsZWN0b3JDbGljaygkZXZlbnQsIHNlbGVjdG9yKVwiIHRpdGxlPVwie3sgc2VsZWN0b3IudGl0bGUgfHwgbnVsbCB9fVwiPlxuICAgICAgICAgIHt7IHNlbGVjdG9yLmxhYmVsIH19XG4gICAgICAgIDwvYT5cbiAgICAgIH1cbiAgICA8L3NwYW4+XG5cbiAgICA8YVxuICAgICAgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tbmV4dC1tb250aC1idG5cIlxuICAgICAgW25nQ2xhc3NdPVwic2hvd05leHRCdG4gPyAnZC1ibG9jaycgOiAnZC1ub25lJ1wiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJuZXh0KClcIlxuICAgICAgW3RpdGxlXT1cImxvY2FsZSgpLm5leHRNb250aFwiPlxuICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIj48L3RoeS1pY29uPlxuICAgIDwvYT5cbiAgICA8YVxuICAgICAgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tbmV4dC15ZWFyLWJ0blwiXG4gICAgICBbbmdDbGFzc109XCJzaG93U3VwZXJOZXh0QnRuID8gJ2QtYmxvY2snIDogJ2Qtbm9uZSdcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwic3VwZXJOZXh0KClcIlxuICAgICAgW3RpdGxlXT1cImxvY2FsZSgpLm5leHRZZWFyXCI+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3VibGUtcmlnaHRcIj48L3RoeS1pY29uPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -32,8 +32,9 @@ export class MonthTable extends CalendarTable {
32
32
  };
33
33
  for (let colIndex = 0; colIndex < this.MAX_COL; colIndex++) {
34
34
  const month = this.activeDate.setMonth(monthValue);
35
+ const monthFormat = this.locale().zhMonthFormat;
35
36
  const isDisabled = this.disabledDate ? this.disabledDate(this.activeDate.setMonth(monthValue).nativeDate) : false;
36
- const content = this.dateHelper.format(month.nativeDate, 'MMMM');
37
+ const content = this.dateHelper.format(month.nativeDate, monthFormat);
37
38
  const cell = {
38
39
  trackByIndex: colIndex,
39
40
  value: month.nativeDate,
@@ -93,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
93
94
  type: Component,
94
95
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'month-table', exportAs: 'monthTable', standalone: true, imports: [NgClass], template: "<table class=\"{{ prefixCls }}-month-panel-table\" cellSpacing=\"0\" role=\"grid\">\n <tbody class=\"{{ prefixCls }}-month-panel-tbody\">\n @for (row of bodyRows; track trackByBodyRow($index, row)) {\n <tr role=\"row\">\n @for (monthCell of row.dateCells; track trackByBodyColumn($index, monthCell)) {\n <td\n role=\"gridcell\"\n title=\"{{ monthCell.title }}\"\n (click)=\"monthCellClick($event, monthCell)\"\n [ngClass]=\"monthCell.classMap\"\n >\n @switch (prefixCls) {\n @case ('thy-calendar') {\n <div class=\"{{ prefixCls }}-month-panel-month\">{{ monthCell.content }}</div>\n }\n }\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n" }]
95
96
  }], ctorParameters: () => [] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2xpYi9tb250aC9tb250aC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL21vbnRoL21vbnRoLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxQzs7R0FFRztBQVVILE1BQU0sT0FBTyxVQUFXLFNBQVEsYUFBYTtJQU96QztRQUNJLEtBQUssRUFBRSxDQUFDO1FBUEosZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9DLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFWixZQUFPLEdBQUcsQ0FBQyxDQUFDO0lBSVosQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNuQixLQUFLLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3pELE1BQU0sR0FBRyxHQUFnQjtnQkFDckIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsWUFBWSxFQUFFLFFBQVE7YUFDekIsQ0FBQztZQUNGLEtBQUssSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ3pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNuRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xILE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2pFLE1BQU0sSUFBSSxHQUFhO29CQUNuQixZQUFZLEVBQUUsUUFBUTtvQkFDdEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVO29CQUN2QixVQUFVO29CQUNWLE9BQU87b0JBQ1AsS0FBSyxFQUFFLE9BQU87b0JBQ2QsUUFBUSxFQUFFLElBQUk7b0JBQ2QsVUFBVSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdEQsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7aUJBQ3pCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixVQUFVLEVBQUUsQ0FBQztZQUNqQixDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFjLEVBQUUsS0FBZTtRQUNuRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN4RCxJQUFJLGFBQWEsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDM0IsQ0FBQztZQUVELElBQUksV0FBVyxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUMzQixDQUFDO1lBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDO1lBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlGLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVksRUFBRSxTQUFtQjtRQUM1QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWM7UUFDdEIsT0FBTztZQUNILENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxtQkFBbUIsQ0FBQyxFQUFFLElBQUk7WUFDNUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLDRCQUE0QixDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDaEUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLDRCQUE0QixDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDaEUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ3JELENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUywyQkFBMkIsQ0FBQyxFQUMxQyxJQUFJLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtTQUNwSCxDQUFDO0lBQ04sQ0FBQzs4R0F6RlEsVUFBVTtrR0FBVixVQUFVLHdIQ25CdkIscXlCQXNCQSw0Q0RMYyxPQUFPOzsyRkFFUixVQUFVO2tCQVR0QixTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFFckMsYUFBYSxZQUNiLFlBQVksY0FFVixJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkNoYW5nZXMsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGlueURhdGUgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFyVGFibGUgfSBmcm9tICcuLi9jYWxlbmRhci9jYWxlbmRhci10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNlbGwsIERhdGVCb2R5Um93IH0gZnJvbSAnLi4vZGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnbW9udGgtdGFibGUnLFxuICAgIGV4cG9ydEFzOiAnbW9udGhUYWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICdtb250aC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgTW9udGhUYWJsZSBleHRlbmRzIENhbGVuZGFyVGFibGUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgZGF0ZUhlbHBlciA9IGluamVjdChEYXRlSGVscGVyU2VydmljZSk7XG5cbiAgICBNQVhfUk9XID0gNDtcblxuICAgIE1BWF9DT0wgPSAzO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaG9vc2VNb250aChtb250aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmFjdGl2ZURhdGUuc2V0TW9udGgobW9udGgpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfVxuXG4gICAgbWFrZUhlYWRSb3coKTogRGF0ZUNlbGxbXSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBtYWtlQm9keVJvd3MoKTogRGF0ZUJvZHlSb3dbXSB7XG4gICAgICAgIGNvbnN0IG1vbnRoczogRGF0ZUJvZHlSb3dbXSA9IFtdO1xuICAgICAgICBsZXQgbW9udGhWYWx1ZSA9IDA7XG4gICAgICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCB0aGlzLk1BWF9ST1c7IHJvd0luZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdzogRGF0ZUJvZHlSb3cgPSB7XG4gICAgICAgICAgICAgICAgZGF0ZUNlbGxzOiBbXSxcbiAgICAgICAgICAgICAgICB0cmFja0J5SW5kZXg6IHJvd0luZGV4XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZm9yIChsZXQgY29sSW5kZXggPSAwOyBjb2xJbmRleCA8IHRoaXMuTUFYX0NPTDsgY29sSW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5hY3RpdmVEYXRlLnNldE1vbnRoKG1vbnRoVmFsdWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkRGF0ZSA/IHRoaXMuZGlzYWJsZWREYXRlKHRoaXMuYWN0aXZlRGF0ZS5zZXRNb250aChtb250aFZhbHVlKS5uYXRpdmVEYXRlKSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmRhdGVIZWxwZXIuZm9ybWF0KG1vbnRoLm5hdGl2ZURhdGUsICdNTU1NJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbDogRGF0ZUNlbGwgPSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYWNrQnlJbmRleDogY29sSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBtb250aC5uYXRpdmVEYXRlLFxuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NNYXA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IG1vbnRoLmlzU2FtZU1vbnRoKHRoaXMudmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB0aGlzLmNob29zZU1vbnRoKGNlbGwudmFsdWUuZ2V0TW9udGgoKSksXG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4ge31cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkQ2VsbFByb3BlcnR5KGNlbGwsIG1vbnRoKTtcbiAgICAgICAgICAgICAgICByb3cuZGF0ZUNlbGxzLnB1c2goY2VsbCk7XG4gICAgICAgICAgICAgICAgbW9udGhWYWx1ZSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbW9udGhzLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9udGhzO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQ2VsbFByb3BlcnR5KGNlbGw6IERhdGVDZWxsLCBtb250aDogVGlueURhdGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgW3N0YXJ0U2VsZWN0ZWQsIGVuZFNlbGVjdGVkXSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgICAgIGlmIChzdGFydFNlbGVjdGVkPy5pc1NhbWVNb250aChtb250aCkpIHtcbiAgICAgICAgICAgICAgICBjZWxsLmlzU2VsZWN0ZWRTdGFydERhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNlbGwuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChlbmRTZWxlY3RlZD8uaXNTYW1lTW9udGgobW9udGgpKSB7XG4gICAgICAgICAgICAgICAgY2VsbC5pc1NlbGVjdGVkRW5kRGF0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY2VsbC5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2VsbC5pc1N0YXJ0U2luZ2xlID0gc3RhcnRTZWxlY3RlZCAmJiAhZW5kU2VsZWN0ZWQ7XG4gICAgICAgICAgICBjZWxsLmlzRW5kU2luZ2xlID0gIXN0YXJ0U2VsZWN0ZWQgJiYgISFlbmRTZWxlY3RlZDtcbiAgICAgICAgICAgIGNlbGwuaXNJblJhbmdlID0gc3RhcnRTZWxlY3RlZD8uaXNCZWZvcmVNb250aChtb250aCkgJiYgbW9udGg/LmlzQmVmb3JlTW9udGgoZW5kU2VsZWN0ZWQpO1xuICAgICAgICB9IGVsc2UgaWYgKG1vbnRoLmlzU2FtZU1vbnRoKHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgICBjZWxsLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNlbGwuY2xhc3NNYXAgPSB0aGlzLmdldENsYXNzTWFwKGNlbGwpO1xuICAgIH1cblxuICAgIG1vbnRoQ2VsbENsaWNrKGV2ZW50OiBFdmVudCwgbW9udGhDZWxsOiBEYXRlQ2VsbCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIG1vbnRoQ2VsbC5pc0Rpc2FibGVkID8gbnVsbCA6IG1vbnRoQ2VsbC5vbkNsaWNrKCk7XG4gICAgfVxuXG4gICAgZ2V0Q2xhc3NNYXAoY2VsbDogRGF0ZUNlbGwpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LW1vbnRoLXBhbmVsLWNlbGxgXTogdHJ1ZSxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tbW9udGgtcGFuZWwtY2VsbC1kaXNhYmxlZGBdOiBjZWxsLmlzRGlzYWJsZWQsXG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LW1vbnRoLXBhbmVsLXNlbGVjdGVkLWNlbGxgXTogY2VsbC5pc1NlbGVjdGVkLFxuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1pbi1yYW5nZS1jZWxsYF06ICEhY2VsbC5pc0luUmFuZ2UsXG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LW1vbnRoLXBhbmVsLWN1cnJlbnQtY2VsbGBdOlxuICAgICAgICAgICAgICAgIG5ldyBUaW55RGF0ZSgpLmdldFllYXIoKSA9PT0gdGhpcy5hY3RpdmVEYXRlLmdldFllYXIoKSAmJiBjZWxsLnZhbHVlLmdldE1vbnRoKCkgPT09IG5ldyBUaW55RGF0ZSgpLmdldE1vbnRoKClcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCI8dGFibGUgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tbW9udGgtcGFuZWwtdGFibGVcIiBjZWxsU3BhY2luZz1cIjBcIiByb2xlPVwiZ3JpZFwiPlxuICA8dGJvZHkgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tbW9udGgtcGFuZWwtdGJvZHlcIj5cbiAgICBAZm9yIChyb3cgb2YgYm9keVJvd3M7IHRyYWNrIHRyYWNrQnlCb2R5Um93KCRpbmRleCwgcm93KSkge1xuICAgICAgPHRyIHJvbGU9XCJyb3dcIj5cbiAgICAgICAgQGZvciAobW9udGhDZWxsIG9mIHJvdy5kYXRlQ2VsbHM7IHRyYWNrIHRyYWNrQnlCb2R5Q29sdW1uKCRpbmRleCwgbW9udGhDZWxsKSkge1xuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgbW9udGhDZWxsLnRpdGxlIH19XCJcbiAgICAgICAgICAgIChjbGljayk9XCJtb250aENlbGxDbGljaygkZXZlbnQsIG1vbnRoQ2VsbClcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwibW9udGhDZWxsLmNsYXNzTWFwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIEBzd2l0Y2ggKHByZWZpeENscykge1xuICAgICAgICAgICAgICBAY2FzZSAoJ3RoeS1jYWxlbmRhcicpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LW1vbnRoLXBhbmVsLW1vbnRoXCI+e3sgbW9udGhDZWxsLmNvbnRlbnQgfX08L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIH1cbiAgICAgIDwvdHI+XG4gICAgfVxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2xpYi9tb250aC9tb250aC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvbGliL21vbnRoL21vbnRoLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxQzs7R0FFRztBQVVILE1BQU0sT0FBTyxVQUFXLFNBQVEsYUFBYTtJQU96QztRQUNJLEtBQUssRUFBRSxDQUFDO1FBUEosZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9DLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFWixZQUFPLEdBQUcsQ0FBQyxDQUFDO0lBSVosQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVk7UUFDUixN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QUFVLHdIQ25CdkIscXlCQXNCQSw0Q0RMYyxPQUFPOzsyRkFFUixVQUFVO2tCQVR0QixTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFFckMsYUFBYSxZQUNiLFlBQVksY0FFVixJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkNoYW5nZXMsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGlueURhdGUgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFyVGFibGUgfSBmcm9tICcuLi9jYWxlbmRhci9jYWxlbmRhci10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNlbGwsIERhdGVCb2R5Um93IH0gZnJvbSAnLi4vZGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnbW9udGgtdGFibGUnLFxuICAgIGV4cG9ydEFzOiAnbW9udGhUYWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICdtb250aC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgTW9udGhUYWJsZSBleHRlbmRzIENhbGVuZGFyVGFibGUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgZGF0ZUhlbHBlciA9IGluamVjdChEYXRlSGVscGVyU2VydmljZSk7XG5cbiAgICBNQVhfUk9XID0gNDtcblxuICAgIE1BWF9DT0wgPSAzO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaG9vc2VNb250aChtb250aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmFjdGl2ZURhdGUuc2V0TW9udGgobW9udGgpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfVxuXG4gICAgbWFrZUhlYWRSb3coKTogRGF0ZUNlbGxbXSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBtYWtlQm9keVJvd3MoKTogRGF0ZUJvZHlSb3dbXSB7XG4gICAgICAgIGNvbnN0IG1vbnRoczogRGF0ZUJvZHlSb3dbXSA9IFtdO1xuICAgICAgICBsZXQgbW9udGhWYWx1ZSA9IDA7XG4gICAgICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCB0aGlzLk1BWF9ST1c7IHJvd0luZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdzogRGF0ZUJvZHlSb3cgPSB7XG4gICAgICAgICAgICAgICAgZGF0ZUNlbGxzOiBbXSxcbiAgICAgICAgICAgICAgICB0cmFja0J5SW5kZXg6IHJvd0luZGV4XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZm9yIChsZXQgY29sSW5kZXggPSAwOyBjb2xJbmRleCA8IHRoaXMuTUFYX0NPTDsgY29sSW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5hY3RpdmVEYXRlLnNldE1vbnRoKG1vbnRoVmFsdWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbnRoRm9ybWF0ID0gdGhpcy5sb2NhbGUoKS56aE1vbnRoRm9ybWF0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkRGF0ZSA/IHRoaXMuZGlzYWJsZWREYXRlKHRoaXMuYWN0aXZlRGF0ZS5zZXRNb250aChtb250aFZhbHVlKS5uYXRpdmVEYXRlKSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmRhdGVIZWxwZXIuZm9ybWF0KG1vbnRoLm5hdGl2ZURhdGUsIG1vbnRoRm9ybWF0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsOiBEYXRlQ2VsbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHJhY2tCeUluZGV4OiBjb2xJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG1vbnRoLm5hdGl2ZURhdGUsXG4gICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBjbGFzc01hcDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZDogbW9udGguaXNTYW1lTW9udGgodGhpcy52YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHRoaXMuY2hvb3NlTW9udGgoY2VsbC52YWx1ZS5nZXRNb250aCgpKSxcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiB7fVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRDZWxsUHJvcGVydHkoY2VsbCwgbW9udGgpO1xuICAgICAgICAgICAgICAgIHJvdy5kYXRlQ2VsbHMucHVzaChjZWxsKTtcbiAgICAgICAgICAgICAgICBtb250aFZhbHVlKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtb250aHMucHVzaChyb3cpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb250aHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRDZWxsUHJvcGVydHkoY2VsbDogRGF0ZUNlbGwsIG1vbnRoOiBUaW55RGF0ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBbc3RhcnRTZWxlY3RlZCwgZW5kU2VsZWN0ZWRdID0gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICAgICAgICAgICAgaWYgKHN0YXJ0U2VsZWN0ZWQ/LmlzU2FtZU1vbnRoKG1vbnRoKSkge1xuICAgICAgICAgICAgICAgIGNlbGwuaXNTZWxlY3RlZFN0YXJ0RGF0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY2VsbC5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGVuZFNlbGVjdGVkPy5pc1NhbWVNb250aChtb250aCkpIHtcbiAgICAgICAgICAgICAgICBjZWxsLmlzU2VsZWN0ZWRFbmREYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjZWxsLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjZWxsLmlzU3RhcnRTaW5nbGUgPSBzdGFydFNlbGVjdGVkICYmICFlbmRTZWxlY3RlZDtcbiAgICAgICAgICAgIGNlbGwuaXNFbmRTaW5nbGUgPSAhc3RhcnRTZWxlY3RlZCAmJiAhIWVuZFNlbGVjdGVkO1xuICAgICAgICAgICAgY2VsbC5pc0luUmFuZ2UgPSBzdGFydFNlbGVjdGVkPy5pc0JlZm9yZU1vbnRoKG1vbnRoKSAmJiBtb250aD8uaXNCZWZvcmVNb250aChlbmRTZWxlY3RlZCk7XG4gICAgICAgIH0gZWxzZSBpZiAobW9udGguaXNTYW1lTW9udGgodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNlbGwuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY2VsbC5jbGFzc01hcCA9IHRoaXMuZ2V0Q2xhc3NNYXAoY2VsbCk7XG4gICAgfVxuXG4gICAgbW9udGhDZWxsQ2xpY2soZXZlbnQ6IEV2ZW50LCBtb250aENlbGw6IERhdGVDZWxsKSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm4gbW9udGhDZWxsLmlzRGlzYWJsZWQgPyBudWxsIDogbW9udGhDZWxsLm9uQ2xpY2soKTtcbiAgICB9XG5cbiAgICBnZXRDbGFzc01hcChjZWxsOiBEYXRlQ2VsbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tbW9udGgtcGFuZWwtY2VsbGBdOiB0cnVlLFxuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1tb250aC1wYW5lbC1jZWxsLWRpc2FibGVkYF06IGNlbGwuaXNEaXNhYmxlZCxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tbW9udGgtcGFuZWwtc2VsZWN0ZWQtY2VsbGBdOiBjZWxsLmlzU2VsZWN0ZWQsXG4gICAgICAgICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWluLXJhbmdlLWNlbGxgXTogISFjZWxsLmlzSW5SYW5nZSxcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tbW9udGgtcGFuZWwtY3VycmVudC1jZWxsYF06XG4gICAgICAgICAgICAgICAgbmV3IFRpbnlEYXRlKCkuZ2V0WWVhcigpID09PSB0aGlzLmFjdGl2ZURhdGUuZ2V0WWVhcigpICYmIGNlbGwudmFsdWUuZ2V0TW9udGgoKSA9PT0gbmV3IFRpbnlEYXRlKCkuZ2V0TW9udGgoKVxuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjx0YWJsZSBjbGFzcz1cInt7IHByZWZpeENscyB9fS1tb250aC1wYW5lbC10YWJsZVwiIGNlbGxTcGFjaW5nPVwiMFwiIHJvbGU9XCJncmlkXCI+XG4gIDx0Ym9keSBjbGFzcz1cInt7IHByZWZpeENscyB9fS1tb250aC1wYW5lbC10Ym9keVwiPlxuICAgIEBmb3IgKHJvdyBvZiBib2R5Um93czsgdHJhY2sgdHJhY2tCeUJvZHlSb3coJGluZGV4LCByb3cpKSB7XG4gICAgICA8dHIgcm9sZT1cInJvd1wiPlxuICAgICAgICBAZm9yIChtb250aENlbGwgb2Ygcm93LmRhdGVDZWxsczsgdHJhY2sgdHJhY2tCeUJvZHlDb2x1bW4oJGluZGV4LCBtb250aENlbGwpKSB7XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBtb250aENlbGwudGl0bGUgfX1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1vbnRoQ2VsbENsaWNrKCRldmVudCwgbW9udGhDZWxsKVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJtb250aENlbGwuY2xhc3NNYXBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgQHN3aXRjaCAocHJlZml4Q2xzKSB7XG4gICAgICAgICAgICAgIEBjYXNlICgndGh5LWNhbGVuZGFyJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tbW9udGgtcGFuZWwtbW9udGhcIj57eyBtb250aENlbGwuY29udGVudCB9fTwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgfVxuICAgICAgPC90cj5cbiAgICB9XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuIl19