@f1falcha/stimulus 1.0.1 → 1.0.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 (141) hide show
  1. package/esm2022/accordion/accordion-item/accordion-item.component.mjs +4 -4
  2. package/esm2022/accordion/accordion-item-body/accordion-item-body.component.mjs +4 -4
  3. package/esm2022/accordion/accordion-item-header/accordion-item-header.component.mjs +4 -4
  4. package/esm2022/accordion/accordion.mjs +4 -4
  5. package/esm2022/account-card/account-card-header/account-card-header.component.mjs +4 -4
  6. package/esm2022/account-card/account-card.component.mjs +4 -4
  7. package/esm2022/alert/alert.mjs +4 -4
  8. package/esm2022/alert/alert.service.mjs +4 -4
  9. package/esm2022/avatar/avatar.mjs +4 -4
  10. package/esm2022/badge/badge.mjs +4 -4
  11. package/esm2022/bordered-section/bordered-section.mjs +4 -4
  12. package/esm2022/button/button.mjs +4 -4
  13. package/esm2022/button-group/button-group-header/button-group-header.mjs +4 -4
  14. package/esm2022/button-group/button-group.mjs +4 -4
  15. package/esm2022/card/card.component.mjs +4 -4
  16. package/esm2022/chart/chart.component.mjs +4 -4
  17. package/esm2022/checkbox-dropdown/checkbox-dropdown.component.mjs +4 -4
  18. package/esm2022/clipboard/clipboard.component.mjs +4 -4
  19. package/esm2022/color-wrapper/color-wrapper.mjs +4 -4
  20. package/esm2022/column-seperator/column-separator.mjs +4 -4
  21. package/esm2022/column-text/column-text.mjs +4 -4
  22. package/esm2022/container/container.component.mjs +4 -4
  23. package/esm2022/custom-datepicker/custom-datepicker.component.mjs +4 -4
  24. package/esm2022/custom-datepicker/timepicker/timepicker.component.mjs +4 -4
  25. package/esm2022/data-list/data-list.mjs +4 -4
  26. package/esm2022/date-range-picker/date-range-picker.mjs +4 -4
  27. package/esm2022/datepicker/datepicker.mjs +4 -4
  28. package/esm2022/datepicker-icon/datepicker-icon.mjs +4 -4
  29. package/esm2022/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.mjs +4 -4
  30. package/esm2022/detail-panel/detail-panel-row/detail-panel-row.mjs +4 -4
  31. package/esm2022/detail-panel/detail-panel-title/detail-panel-title.mjs +4 -4
  32. package/esm2022/detail-panel/detail-panel.mjs +4 -4
  33. package/esm2022/dialog/dialog-body/dialog-body.component.mjs +4 -4
  34. package/esm2022/dialog/dialog-container/dialog-container.component.mjs +4 -4
  35. package/esm2022/dialog/dialog-footer/dialog-footer.component.mjs +4 -4
  36. package/esm2022/dialog/dialog-header/dialog-header.component.mjs +4 -4
  37. package/esm2022/dialog/dialog.component.mjs +4 -4
  38. package/esm2022/dialog.service.mjs +4 -4
  39. package/esm2022/dropdown/context-menu-content/context-menu-content.mjs +4 -4
  40. package/esm2022/dropdown/context-menu-item.mjs +4 -4
  41. package/esm2022/dropdown/context-menu-list/context-menu-list.mjs +4 -4
  42. package/esm2022/dropdown/context-menu.mjs +4 -4
  43. package/esm2022/error-page-container/error-content/error-content.mjs +4 -4
  44. package/esm2022/error-page-container/error-page-container.mjs +4 -4
  45. package/esm2022/extract-inital/extract-initial.mjs +4 -4
  46. package/esm2022/file-uploader/file-uploader.mjs +4 -4
  47. package/esm2022/file-uploader/file-uploader.service.mjs +4 -4
  48. package/esm2022/filter/filter.mjs +4 -4
  49. package/esm2022/form/form-control/form-control-action.mjs +4 -4
  50. package/esm2022/form/form-control/form-control-icon.mjs +4 -4
  51. package/esm2022/form/form-control/form-field.mjs +4 -4
  52. package/esm2022/form/form-control-wrapper/form-control-wrapper.component.mjs +4 -4
  53. package/esm2022/form/form-message/form-message.mjs +4 -4
  54. package/esm2022/form/select-input-field/select-input-field.mjs +4 -4
  55. package/esm2022/form/validate-and-submit.mjs +4 -4
  56. package/esm2022/full-container/full-container.component.mjs +4 -4
  57. package/esm2022/grid/grid-item.component.mjs +4 -4
  58. package/esm2022/grid/grid.component.mjs +4 -4
  59. package/esm2022/grid-row/grid-row.mjs +4 -4
  60. package/esm2022/image-card/illustration.pipe.mjs +4 -4
  61. package/esm2022/image-card/image-card.component.mjs +4 -4
  62. package/esm2022/image-panel/image-panel.component.mjs +4 -4
  63. package/esm2022/info-column/info-column.mjs +4 -4
  64. package/esm2022/info-slider/info-slider.component.mjs +4 -4
  65. package/esm2022/inline-alert/inline-alert.mjs +4 -4
  66. package/esm2022/inline-group/inline-group.component.mjs +4 -4
  67. package/esm2022/input/input.mjs +4 -4
  68. package/esm2022/label/label.mjs +4 -4
  69. package/esm2022/layout/layout.component.mjs +4 -4
  70. package/esm2022/link/link.mjs +4 -4
  71. package/esm2022/media-preview/media-preview-modal/media-preview-modal.mjs +4 -4
  72. package/esm2022/media-preview/media-preview.mjs +4 -4
  73. package/esm2022/media-preview/media_preview.service.mjs +4 -4
  74. package/esm2022/menu/menu.component.mjs +4 -4
  75. package/esm2022/otp-input/otp-input.component.mjs +4 -4
  76. package/esm2022/page-container/page-container-info/page-container-info.component.mjs +4 -4
  77. package/esm2022/page-container/page-container.component.mjs +4 -4
  78. package/esm2022/page-header/page-header.component.mjs +4 -4
  79. package/esm2022/page-header/page-sub-heading/page-sub-heading.component.mjs +4 -4
  80. package/esm2022/page-loader/page-loader.component.mjs +4 -4
  81. package/esm2022/pagination/pagination.mjs +4 -4
  82. package/esm2022/popover-content/popover-content-item/popover-content-item.component.mjs +4 -4
  83. package/esm2022/popover-content/popover-content.component.mjs +4 -4
  84. package/esm2022/preview-box/preview-box.component.mjs +4 -4
  85. package/esm2022/progress-bar/progress-bar.component.mjs +4 -4
  86. package/esm2022/progress-chart/progress-chart.component.mjs +4 -4
  87. package/esm2022/radio-card-group/radio-card/radio-card.component.mjs +4 -4
  88. package/esm2022/radio-card-group/radio-card-group.component.mjs +4 -4
  89. package/esm2022/regex-checker/regex-checker.mjs +4 -4
  90. package/esm2022/regex-checker/regex-validity-icon.pipe.mjs +4 -4
  91. package/esm2022/ribbon/ribbon.mjs +4 -4
  92. package/esm2022/round-checkbox/round-checkbox.component.mjs +4 -4
  93. package/esm2022/row/column/column.component.mjs +4 -4
  94. package/esm2022/row/row.component.mjs +4 -4
  95. package/esm2022/scrollable-content/scrollable-content.component.mjs +4 -4
  96. package/esm2022/section-header/section-header.component.mjs +4 -4
  97. package/esm2022/section-row/section-row.mjs +4 -4
  98. package/esm2022/section-separator/section-separator.mjs +4 -4
  99. package/esm2022/section-shell/section-shell.component.mjs +4 -4
  100. package/esm2022/select/select.component.mjs +4 -4
  101. package/esm2022/select-card/select-card.component.mjs +4 -4
  102. package/esm2022/select-country/select-country.component.mjs +4 -4
  103. package/esm2022/shell/checker-sidebar/checker-sidebar.component.mjs +4 -4
  104. package/esm2022/shell/maker-sidebar/maker-sidebar.component.mjs +4 -4
  105. package/esm2022/shell/shell-sidebar/shell-sidebar.component.mjs +4 -4
  106. package/esm2022/shell/shell.component.mjs +4 -4
  107. package/esm2022/side-drawer/side-drawer.mjs +4 -4
  108. package/esm2022/side-drawer/side-drawer.service.mjs +4 -4
  109. package/esm2022/spinner/spinner.mjs +4 -4
  110. package/esm2022/stepper/step/step.mjs +4 -4
  111. package/esm2022/stepper/step/step.pipe.mjs +4 -4
  112. package/esm2022/stepper/step-header/step-header.mjs +4 -4
  113. package/esm2022/stepper/stepper-button/stepper-next.mjs +4 -4
  114. package/esm2022/stepper/stepper-button/stepper-previous.mjs +4 -4
  115. package/esm2022/stepper/stepper.mjs +4 -4
  116. package/esm2022/stimulus.module.mjs +5 -5
  117. package/esm2022/table/table-column/scl-table-column.mjs +4 -4
  118. package/esm2022/table/table-text/scl-table-text.mjs +4 -4
  119. package/esm2022/table/table.mjs +4 -4
  120. package/esm2022/table-action-control/table-action-control.component.mjs +4 -4
  121. package/esm2022/tabset/tab/tab.component.mjs +4 -4
  122. package/esm2022/tabset/tab-directive/tabset.directive.mjs +4 -4
  123. package/esm2022/tabset/tabset.component.mjs +4 -4
  124. package/esm2022/taglist/tag/tag.component.mjs +4 -4
  125. package/esm2022/taglist/tag/tag.directive.mjs +4 -4
  126. package/esm2022/taglist/taglist.component.mjs +4 -4
  127. package/esm2022/text-decoration/text-decoration.component.mjs +4 -4
  128. package/esm2022/text-editor/text-editor.mjs +4 -4
  129. package/esm2022/timeline/timeline.component.mjs +4 -4
  130. package/esm2022/timepicker/timepicker.component.mjs +4 -4
  131. package/esm2022/toggle/toggle-description/toggle-description.mjs +4 -4
  132. package/esm2022/toggle/toggle.mjs +4 -4
  133. package/esm2022/toggle-password/toggle-password.component.mjs +4 -4
  134. package/esm2022/toggle-password/toggle-password.directive.mjs +4 -4
  135. package/esm2022/treeview/treeview-header/treeview-header.mjs +4 -4
  136. package/esm2022/treeview/treeview.mjs +4 -4
  137. package/esm2022/truncate/truncate.component.mjs +4 -4
  138. package/esm2022/typography/typography.mjs +4 -4
  139. package/fesm2022/f1falcha-stimulus.mjs +415 -415
  140. package/fesm2022/f1falcha-stimulus.mjs.map +1 -1
  141. package/package.json +1 -1
@@ -296,8 +296,8 @@ class SclDateTimepickerComponent {
296
296
  const dateParts = this.selectedDate.split(' ');
297
297
  this.time = dateParts.length >= 3 ? `${dateParts[1]} ${dateParts[2]}` : dateParts[1];
298
298
  }
299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclDateTimepickerComponent, deps: [{ token: i1.FormBuilder }, { token: i2.NbIconLibraries }], target: i0.ɵɵFactoryTarget.Component }); }
300
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclDateTimepickerComponent, isStandalone: true, selector: "scl-datetime-picker", inputs: { placeholder: "placeholder", format: "format", min: "min", max: "max", dateTimePicker: "dateTimePicker", showPresets: "showPresets", readonly: "readonly" }, outputs: { dateChange: "dateChange" }, host: { listeners: { "keydown": "handleKeyboardEvents($event)" }, classAttribute: "scl-custom-datepicker " }, providers: [
299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclDateTimepickerComponent, deps: [{ token: i1.FormBuilder }, { token: i2.NbIconLibraries }], target: i0.ɵɵFactoryTarget.Component }); }
300
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SclDateTimepickerComponent, isStandalone: true, selector: "scl-datetime-picker", inputs: { placeholder: "placeholder", format: "format", min: "min", max: "max", dateTimePicker: "dateTimePicker", showPresets: "showPresets", readonly: "readonly" }, outputs: { dateChange: "dateChange" }, host: { listeners: { "keydown": "handleKeyboardEvents($event)" }, classAttribute: "scl-custom-datepicker " }, providers: [
301
301
  {
302
302
  provide: NG_VALUE_ACCESSOR,
303
303
  useExisting: forwardRef(() => SclDateTimepickerComponent),
@@ -308,7 +308,7 @@ class SclDateTimepickerComponent {
308
308
  ], viewQueries: [{ propertyName: "popover", first: true, predicate: NbPopoverDirective, descendants: true }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true, read: TemplateRef }, { propertyName: "timepicker", first: true, predicate: ["timepicker"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"datepickerForm\">\n <input\n class=\"scl-custom-datepicker__input\"\n nbInput\n type=\"text\"\n formControlName=\"datepicker\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n [nbPopover]=\"calendar\"\n nbPopoverPlacement=\"bottom\"\n nbPopoverSize=\"large\"\n [nbPopoverTrigger]=\"isReadonly ? 'noop' : 'focus'\"\n (blur)=\"onBlur()\" />\n\n <div class=\"scl-custom-datepicker__icon\">\n <nb-icon icon=\"calendar\" pack=\"scl-datepicker-icon\"></nb-icon>\n </div>\n\n <ng-template #calendar>\n <div class=\"scl-custom-datepicker__popover\" (mousedown)=\"$event.preventDefault()\" aria-label=\"Calendar\" tabindex=\"-1\">\n <div class=\"scl-custom-datepicker__content\">\n <nb-calendar [(date)]=\"date\" (dateChange)=\"onDateSelect($event)\" [visibleDate]=\"visibleDate\" [min]=\"minDate\" [max]=\"maxDate\"> </nb-calendar>\n\n <timepicker\n #timepicker\n class=\"scl-custom-datepicker__timepicker\"\n (timeChange)=\"onTimeChange($event)\"\n [timeValues]=\"time\"\n [twelveHoursFormat]=\"showTwelveHrsFormat\"\n [format]=\"timeFormat\"\n *ngIf=\"hasTimePicker\">\n </timepicker>\n </div>\n\n <div class=\"scl-custom-datepicker__footer\" *ngIf=\"hasTimePicker\">\n <button nbButton ghost status=\"primary\" *ngIf=\"showPresets\">Choose from presents</button>\n <button nbButton status=\"primary\" [disabled]=\"!isFormValid\" (click)=\"onConfirm()\">Confirm</button>\n </div>\n </div>\n </ng-template>\n</form>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NbCalendarKitModule }, { kind: "ngmodule", type: NbCalendarModule }, { kind: "component", type: i2.NbCalendarComponent, selector: "nb-calendar", inputs: ["boundingMonth", "startView", "min", "max", "filter", "dayCellComponent", "monthCellComponent", "yearCellComponent", "size", "visibleDate", "showNavigation", "date", "showWeekNumber", "weekNumberSymbol"], outputs: ["dateChange"] }, { kind: "ngmodule", type: NbPopoverModule }, { kind: "directive", type: i2.NbPopoverDirective, selector: "[nbPopover]", inputs: ["nbPopover", "nbPopoverContext", "nbPopoverPlacement", "nbPopoverAdjustment", "nbPopoverTrigger", "nbPopoverOffset", "nbTooltipDisabled", "nbPopoverClass"], outputs: ["nbPopoverShowStateChange"], exportAs: ["nbPopover"] }, { kind: "ngmodule", type: NbTimepickerModule }, { kind: "component", type: TimepickerComponent, selector: "timepicker", inputs: ["twelveHoursFormat", "timeValues", "format"], outputs: ["timeChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NbButtonModule }, { kind: "component", type: i2.NbButtonComponent, selector: "button[nbButton],a[nbButton],input[type=\"button\"][nbButton],input[type=\"submit\"][nbButton]", inputs: ["hero"] }, { kind: "ngmodule", type: NbInputModule }, { kind: "directive", type: i2.NbInputDirective, selector: "input[nbInput],textarea[nbInput]", inputs: ["fieldSize", "status", "shape", "fullWidth"] }, { kind: "ngmodule", type: NbIconModule }, { kind: "component", type: i2.NbIconComponent, selector: "nb-icon", inputs: ["icon", "pack", "options", "status", "config"] }] }); }
309
309
  }
310
310
  export { SclDateTimepickerComponent };
311
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclDateTimepickerComponent, decorators: [{
311
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclDateTimepickerComponent, decorators: [{
312
312
  type: Component,
313
313
  args: [{ selector: 'scl-datetime-picker', standalone: true, imports: [
314
314
  CommonModule,
@@ -361,4 +361,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
361
361
  type: HostListener,
362
362
  args: ['keydown', ['$event']]
363
363
  }] } });
364
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL2N1c3RvbS1kYXRlcGlja2VyL2N1c3RvbS1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy9jdXN0b20tZGF0ZXBpY2tlci9jdXN0b20tZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFLSCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUV0QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDSCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUVoQixZQUFZLEVBQ1osYUFBYSxFQUNiLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysa0JBQWtCLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUV2RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FB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O3dCQUNoQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixZQUFZO3FCQUNmLGFBQ1U7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3pELEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNELEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLDRCQUE0QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7d0JBQ2hGLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7cUJBQ2hELFFBQ0s7d0JBQ0YsS0FBSyxFQUFFLHdCQUF3QjtxQkFDbEM7Z0lBR1MsVUFBVTtzQkFBbkIsTUFBTTtnQkFFd0IsT0FBTztzQkFBckMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ2lCLFFBQVE7c0JBQXJELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDbkIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUVkLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ08sTUFBTTtzQkFBbEIsS0FBSztnQkFVTyxHQUFHO3NCQUFmLEtBQUs7Z0JBV08sR0FBRztzQkFBZixLQUFLO2dCQVlGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBWUYsV0FBVztzQkFEZCxLQUFLO2dCQXFCRixRQUFRO3NCQURYLEtBQUs7Z0JBZ0dOLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEZvcm1CdWlsZGVyLFxuICAgIEZvcm1Hcm91cCxcbiAgICBOR19WQUxJREFUT1JTLFxuICAgIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVmFsaWRhdGlvbkVycm9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBOYkJ1dHRvbk1vZHVsZSxcbiAgICBOYkNhbGVuZGFyS2l0TW9kdWxlLFxuICAgIE5iQ2FsZW5kYXJNb2R1bGUsXG4gICAgTmJJY29uTGlicmFyaWVzLFxuICAgIE5iSWNvbk1vZHVsZSxcbiAgICBOYklucHV0TW9kdWxlLFxuICAgIE5iUG9wb3ZlckRpcmVjdGl2ZSxcbiAgICBOYlBvcG92ZXJNb2R1bGUsXG4gICAgTmJUaW1lcGlja2VyTW9kdWxlLFxufSBmcm9tICdAbmVidWxhci90aGVtZSc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IERBVEVfRk9STUFUIH0gZnJvbSAnLi9jdXN0b20tZGF0ZXBpY2tlci5tb2RlbCc7XG5pbXBvcnQgeyBUaW1lcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lcGlja2VyL3RpbWVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNjbERhdGVwaWNrZXJJY29ucyB9IGZyb20gJy4vZGF0ZXBpY2tlci5pY29uJztcblxuZXhwb3J0IGNvbnN0IERBVEVfVElNRV9QSUNLRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ2RhdGVUaW1lUGlja2VyJyk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2NsLWRhdGV0aW1lLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBOYkNhbGVuZGFyS2l0TW9kdWxlLFxuICAgICAgICBOYkNhbGVuZGFyTW9kdWxlLFxuICAgICAgICBOYlBvcG92ZXJNb2R1bGUsXG4gICAgICAgIE5iVGltZXBpY2tlck1vZHVsZSxcbiAgICAgICAgVGltZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTmJCdXR0b25Nb2R1bGUsXG4gICAgICAgIE5iSW5wdXRNb2R1bGUsXG4gICAgICAgIE5iSWNvbk1vZHVsZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNjbERhdGVUaW1lcGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBTY2xEYXRlVGltZXBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBEQVRFX1RJTUVfUElDS0VSLCB1c2VWYWx1ZTogdHJ1ZSB9LFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3NjbC1jdXN0b20tZGF0ZXBpY2tlciAnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNjbERhdGVUaW1lcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQE91dHB1dCgpIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKE5iUG9wb3ZlckRpcmVjdGl2ZSkgcG9wb3ZlciE6IE5iUG9wb3ZlckRpcmVjdGl2ZTtcbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgY2FsZW5kYXIhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ3RpbWVwaWNrZXInKSB0aW1lcGlja2VyITogVGltZXBpY2tlckNvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VsZWN0IGEgZGF0ZSc7XG4gICAgQElucHV0KCkgc2V0IGZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmhhc0Zvcm1hdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGZvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUZvcm1hdDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWluKHZhbHVlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICAgIHRoaXMuc2V0TWluRGF0ZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLmRhdGVwaWNrZXJGb3JtLnZhbHVlLmRhdGVwaWNrZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5mb3JtVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBtaW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc1RpbWVQaWNrZXIgPyB0aGlzLm1pbkRhdGVUaW1lIDogdGhpcy5taW5EYXRlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBtYXgodmFsdWU6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICAgICAgdGhpcy5zZXRNYXhEYXRlKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZXBpY2tlckZvcm0udmFsdWUuZGF0ZXBpY2tlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmZvcm1WYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG1heCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzVGltZVBpY2tlciA/IHRoaXMubWF4RGF0ZVRpbWUgOiB0aGlzLm1heERhdGU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgZGF0ZVRpbWVQaWNrZXIodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5oYXNUaW1lUGlja2VyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0Zvcm1hdCkge1xuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gREFURV9GT1JNQVQuREVGQVVMVF9EQVRFX1RJTUU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGRhdGVUaW1lUGlja2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNUaW1lUGlja2VyO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNob3dQcmVzZXRzKHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaGFzUHJlc2V0cyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzaG93UHJlc2V0cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzUHJlc2V0cztcbiAgICB9XG5cbiAgICAvLyBGb3IgdHdlbGV2ZSBob3VyIGZvcm1hdFxuICAgIC8vIEBJbnB1dCgpXG4gICAgLy8gc2V0IHR3ZWx2ZUhvdXJzRm9ybWF0KHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgLy8gICAgIHRoaXMuc2hvd1R3ZWx2ZUhyc0Zvcm1hdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgLy8gICAgIGlmICghdGhpcy5oYXNGb3JtYXQpIHtcbiAgICAvLyAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IERBVEVfRk9STUFULlRXRUxWRV9IUl9EQVRFVElNRTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbiAgICAvLyBnZXQgdHdlbHZlSG91cnNGb3JtYXQoKSB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLnNob3dUd2VsdmVIcnNGb3JtYXQ7XG4gICAgLy8gfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgcmVhZG9ubHkodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc1JlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBEQVRFX0ZPUk1BVCA9IERBVEVfRk9STUFUO1xuICAgIGRhdGVwaWNrZXJGb3JtITogRm9ybUdyb3VwO1xuICAgIGRhdGVGb3JtYXQgPSAnWVlZWS1NTS1ERCc7XG4gICAgZm9ybVZhbHVlID0gJyc7XG5cbiAgICB2aXNpYmxlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgbWF4RGF0ZSE6IERhdGU7XG4gICAgbWluRGF0ZSE6IERhdGU7XG4gICAgbWluRGF0ZVRpbWUhOiBEYXRlO1xuICAgIG1heERhdGVUaW1lITogRGF0ZTtcblxuICAgIGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIHNlbGVjdGVkRGF0ZSA9ICcnO1xuICAgIHRpbWUgPSAnMDA6MDAnO1xuXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBoYXNUaW1lUGlja2VyID0gZmFsc2U7XG4gICAgaGFzRm9ybWF0ID0gZmFsc2U7XG4gICAgaGFzUHJlc2V0cyA9IGZhbHNlO1xuICAgIGlzUmVxdWlyZWQgPSBmYWxzZTtcbiAgICBzaG93VHdlbHZlSHJzRm9ybWF0ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG4gICAgaXNTZWxlY3RpbmdEYXRlID0gZmFsc2U7XG4gICAgaXNSZWFkb25seSA9IGZhbHNlO1xuXG4gICAgZ2V0IGlzRm9ybVZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlVGltZVBpY2tlciA/ICEhKHRoaXMuc2VsZWN0ZWREYXRlICYmIHRoaXMudGltZSkgOiAhIXRoaXMuc2VsZWN0ZWREYXRlO1xuICAgIH1cblxuICAgIGdldCB0aW1lRm9ybWF0KCk6IHN0cmluZyB7XG4gICAgICAgIGxldCB0aW1lRm9ybWF0ID0gJyc7XG4gICAgICAgIGlmICgvW0hoXS8udGVzdCh0aGlzLmRhdGVGb3JtYXQpKSB0aW1lRm9ybWF0ICs9ICdISCc7XG4gICAgICAgIGlmICgvbS8udGVzdCh0aGlzLmRhdGVGb3JtYXQpKSB0aW1lRm9ybWF0ICs9ICc6bW0nO1xuICAgICAgICBpZiAoL3MvLnRlc3QodGhpcy5kYXRlRm9ybWF0KSkgdGltZUZvcm1hdCArPSAnOnNzJztcbiAgICAgICAgaWYgKC9bQWFdLy50ZXN0KHRoaXMuZGF0ZUZvcm1hdCkpIHRpbWVGb3JtYXQgKz0gJyBhJztcbiAgICAgICAgcmV0dXJuIHRpbWVGb3JtYXQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGljb25MaWJyYXJpZXM6IE5iSWNvbkxpYnJhcmllc1xuICAgICkge1xuICAgICAgICB0aGlzLmljb25MaWJyYXJpZXMucmVnaXN0ZXJTdmdQYWNrKCdzY2wtZGF0ZXBpY2tlci1pY29uJywgU2NsRGF0ZXBpY2tlckljb25zKTtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgZGF0ZXBpY2tlcjogW251bGxdLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWVDaGFuZ2UoKTtcbiAgICAgICAgaWYgKHRoaXMubWluRGF0ZVRpbWUpIHtcbiAgICAgICAgICAgIHRoaXMubWluRGF0ZVRpbWUuc2V0U2Vjb25kcygwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hhbmdlOiAodmFsOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChvYmopIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbW9tZW50KG9iaikuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdCk7XG4gICAgICAgICAgICB0aGlzLmZvcm1WYWx1ZSA9IHRoaXMuc2VsZWN0ZWREYXRlO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2ggPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzU2VsZWN0aW5nRGF0ZSkgcmV0dXJuO1xuICAgICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGVwaWNrZXJGb3JtLnZhbHVlLmRhdGVwaWNrZXIpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRW1wdHlEYXRlcGlja2VyKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0Zvcm1WYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5vbkNvbmZpcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUtleWJvYXJkRXZlbnRzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wb3BvdmVyLmlzU2hvd24gfHwgZXZlbnQua2V5ICE9PSAnRW50ZXInKSByZXR1cm47XG4gICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gdGhpcy5kYXRlcGlja2VyRm9ybS52YWx1ZS5kYXRlcGlja2VyO1xuICAgICAgICBjb25zdCBkYXRlID0gZGF0ZVN0cmluZyA/IG1vbWVudChkYXRlU3RyaW5nLCB0aGlzLmRhdGVGb3JtYXQsIHRydWUpLnRvRGF0ZSgpIDogbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy5nZXRWYWxpZGF0aW9uRXJyb3JzKGRhdGUpO1xuICAgICAgICBpZiAoZXJyb3JzKSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5oYXNUaW1lUGlja2VyKSB7XG4gICAgICAgICAgICB0aGlzLm9uRGF0ZVNlbGVjdChkYXRlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0Zvcm1WYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBtb21lbnQoZGF0ZSwgdGhpcy5kYXRlRm9ybWF0KS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgIHRoaXMub25Db25maXJtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRhdGVTZWxlY3QoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2VsZWN0aW5nRGF0ZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbW9tZW50KGV2ZW50KS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0KTtcbiAgICAgICAgdGhpcy5kYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlLCB0aGlzLmRhdGVGb3JtYXQpLnRvRGF0ZSgpO1xuICAgICAgICBpZiAoIXRoaXMuaGFzUHJlc2V0cyAmJiAhdGhpcy5oYXNUaW1lUGlja2VyKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ29uZmlybSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNTZWxlY3RpbmdEYXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25UaW1lQ2hhbmdlKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgb25Db25maXJtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEZvcm1WYWx1ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZm9ybVZhbHVlKTtcbiAgICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHRoaXMuZm9ybVZhbHVlKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+KTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGluZ0RhdGUpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAoY29udHJvbD8uZXJyb3JzPy5bJ3JlcXVpcmVkJ10pIHtcbiAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdGlvbkVycm9ycyhjb250cm9sPy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZGF0aW9uRXJyb3JzKGNvbnRyb2xEYXRlOiBEYXRlIHwgbnVsbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgaWYgKCFjb250cm9sRGF0ZSkgcmV0dXJuIHRoaXMuZ2V0UmVxdWlyZWRFcnJvcigpO1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZERhdGVGb3JtYXQoY29udHJvbERhdGUpKSByZXR1cm4geyBpbnZhbGlkRGF0ZUZvcm1hdDogdGhpcy5kYXRlRm9ybWF0IH07XG4gICAgICAgIHJldHVybiB0aGlzLmdldERhdGVSYW5nZUVycm9ycyhjb250cm9sRGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkRGF0ZUZvcm1hdChkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSwgdGhpcy5kYXRlRm9ybWF0LCB0cnVlKS5pc1ZhbGlkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSZXF1aXJlZEVycm9yKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG91Y2hlZCAmJiB0aGlzLmlzUmVxdWlyZWQgPyB7IHJlcXVpcmVkOiB0cnVlIH0gOiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZVJhbmdlRXJyb3JzKGNvbnRyb2xEYXRlOiBEYXRlKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBjb25zdCBtaW5EYXRlID0gdGhpcy5oYXNUaW1lUGlja2VyID8gdGhpcy5taW5EYXRlVGltZSA6IHRoaXMubWluRGF0ZTtcbiAgICAgICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMuaGFzVGltZVBpY2tlciA/IHRoaXMubWF4RGF0ZVRpbWUgOiB0aGlzLm1heERhdGU7XG4gICAgICAgIGNvbnN0IGRhdGVPYmplY3QgPSBuZXcgRGF0ZShjb250cm9sRGF0ZSk7XG4gICAgICAgIGlmIChtaW5EYXRlICYmIGRhdGVPYmplY3QgPCBtaW5EYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4geyBbdGhpcy5oYXNUaW1lUGlja2VyID8gJ21pbkRhdGVUaW1lJyA6ICdtaW5EYXRlJ106IHsgZGF0ZTogbWluRGF0ZSwgZm9ybWF0OiB0aGlzLmRhdGVGb3JtYXQgfSB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXhEYXRlICYmIGRhdGVPYmplY3QgPiBtYXhEYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4geyBbdGhpcy5oYXNUaW1lUGlja2VyID8gJ21heERhdGVUaW1lJyA6ICdtYXhEYXRlJ106IHsgZGF0ZTogbWF4RGF0ZSwgZm9ybWF0OiB0aGlzLmRhdGVGb3JtYXQgfSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJGb3JtLmdldCgnZGF0ZXBpY2tlcicpPy5wYXRjaFZhbHVlKHRoaXMuZm9ybVZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUG9wb3ZlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJGb3JtLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudERhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEN1cnJlbnREYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGlzLmRhdGUuc2V0U2Vjb25kcygwLCAwKTtcbiAgICAgICAgdGhpcy52aXNpYmxlRGF0ZSA9IHRoaXMuZGF0ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLnNob3dUd2VsdmVIcnNGb3JtYXRcbiAgICAgICAgICAgID8gbW9tZW50KHRoaXMuZGF0ZSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdCkucmVwbGFjZSgnMDA6MDAnLCAnMTI6MDAnKVxuICAgICAgICAgICAgOiBtb21lbnQodGhpcy5kYXRlKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0KTtcbiAgICAgICAgdGhpcy5vblRpbWVTZWxlY3QoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE1pbkRhdGUodmFsdWU6IERhdGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzVGltZVBpY2tlcikge1xuICAgICAgICAgICAgdGhpcy5taW5EYXRlVGltZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMubWluRGF0ZVRpbWUuc2V0U2Vjb25kcygwLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubWluRGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE1heERhdGUodmFsdWU6IERhdGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzVGltZVBpY2tlcikge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRlVGltZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMubWF4RGF0ZVRpbWUuc2V0U2Vjb25kcygwLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubWF4RGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybVZhbHVlQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJGb3JtLmdldCgnZGF0ZXBpY2tlcicpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGF0ZSA9IG1vbWVudCh2YWx1ZSwgdGhpcy5kYXRlRm9ybWF0KS50b0RhdGUoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWREYXRlRm9ybWF0KHRoaXMuZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVEYXRlID0gdGhpcy5kYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMub25UaW1lU2VsZWN0KCk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFbXB0eURhdGVwaWNrZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSgnJyk7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KCcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZvcm1WYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBbZGF0ZVBhcnRdID0gdGhpcy5zZWxlY3RlZERhdGUuc3BsaXQoJyAnKTtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSB0aGlzLmhhc1RpbWVQaWNrZXIgPyBgJHtkYXRlUGFydH0gJHt0aGlzLnRpbWV9YCA6IHRoaXMuc2VsZWN0ZWREYXRlO1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblRpbWVTZWxlY3QoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZERhdGUpIHJldHVybjtcbiAgICAgICAgY29uc3QgZGF0ZVBhcnRzID0gdGhpcy5zZWxlY3RlZERhdGUuc3BsaXQoJyAnKTtcbiAgICAgICAgdGhpcy50aW1lID0gZGF0ZVBhcnRzLmxlbmd0aCA+PSAzID8gYCR7ZGF0ZVBhcnRzWzFdfSAke2RhdGVQYXJ0c1syXX1gIDogZGF0ZVBhcnRzWzFdO1xuICAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZGF0ZXBpY2tlckZvcm1cIj5cbiAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJzY2wtY3VzdG9tLWRhdGVwaWNrZXJfX2lucHV0XCJcbiAgICAgICAgbmJJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVwaWNrZXJcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbcmVhZG9ubHldPVwiaXNSZWFkb25seVwiXG4gICAgICAgIFtuYlBvcG92ZXJdPVwiY2FsZW5kYXJcIlxuICAgICAgICBuYlBvcG92ZXJQbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICBuYlBvcG92ZXJTaXplPVwibGFyZ2VcIlxuICAgICAgICBbbmJQb3BvdmVyVHJpZ2dlcl09XCJpc1JlYWRvbmx5ID8gJ25vb3AnIDogJ2ZvY3VzJ1wiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCIgLz5cblxuICAgIDxkaXYgY2xhc3M9XCJzY2wtY3VzdG9tLWRhdGVwaWNrZXJfX2ljb25cIj5cbiAgICAgICAgPG5iLWljb24gaWNvbj1cImNhbGVuZGFyXCIgcGFjaz1cInNjbC1kYXRlcGlja2VyLWljb25cIj48L25iLWljb24+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2NhbGVuZGFyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19wb3BvdmVyXCIgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIGFyaWEtbGFiZWw9XCJDYWxlbmRhclwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtY3VzdG9tLWRhdGVwaWNrZXJfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmItY2FsZW5kYXIgWyhkYXRlKV09XCJkYXRlXCIgKGRhdGVDaGFuZ2UpPVwib25EYXRlU2VsZWN0KCRldmVudClcIiBbdmlzaWJsZURhdGVdPVwidmlzaWJsZURhdGVcIiBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIj4gPC9uYi1jYWxlbmRhcj5cblxuICAgICAgICAgICAgICAgIDx0aW1lcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICN0aW1lcGlja2VyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX190aW1lcGlja2VyXCJcbiAgICAgICAgICAgICAgICAgICAgKHRpbWVDaGFuZ2UpPVwib25UaW1lQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbdGltZVZhbHVlc109XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW3R3ZWx2ZUhvdXJzRm9ybWF0XT1cInNob3dUd2VsdmVIcnNGb3JtYXRcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cInRpbWVGb3JtYXRcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1RpbWVQaWNrZXJcIj5cbiAgICAgICAgICAgICAgICA8L3RpbWVwaWNrZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjbC1jdXN0b20tZGF0ZXBpY2tlcl9fZm9vdGVyXCIgKm5nSWY9XCJoYXNUaW1lUGlja2VyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuYkJ1dHRvbiBnaG9zdCBzdGF0dXM9XCJwcmltYXJ5XCIgKm5nSWY9XCJzaG93UHJlc2V0c1wiPkNob29zZSBmcm9tIHByZXNlbnRzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuYkJ1dHRvbiBzdGF0dXM9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiPkNvbmZpcm08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9mb3JtPlxuIl19
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL2N1c3RvbS1kYXRlcGlja2VyL2N1c3RvbS1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy9jdXN0b20tZGF0ZXBpY2tlci9jdXN0b20tZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFLSCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUV0QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDSCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUVoQixZQUFZLEVBQ1osYUFBYSxFQUNiLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysa0JBQWtCLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUV2RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FB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O3dCQUNoQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixZQUFZO3FCQUNmLGFBQ1U7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3pELEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNELEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLDRCQUE0QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7d0JBQ2hGLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7cUJBQ2hELFFBQ0s7d0JBQ0YsS0FBSyxFQUFFLHdCQUF3QjtxQkFDbEM7Z0lBR1MsVUFBVTtzQkFBbkIsTUFBTTtnQkFFd0IsT0FBTztzQkFBckMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ2lCLFFBQVE7c0JBQXJELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDbkIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUVkLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ08sTUFBTTtzQkFBbEIsS0FBSztnQkFVTyxHQUFHO3NCQUFmLEtBQUs7Z0JBV08sR0FBRztzQkFBZixLQUFLO2dCQVlGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBWUYsV0FBVztzQkFEZCxLQUFLO2dCQXFCRixRQUFRO3NCQURYLEtBQUs7Z0JBZ0dOLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEZvcm1CdWlsZGVyLFxuICAgIEZvcm1Hcm91cCxcbiAgICBOR19WQUxJREFUT1JTLFxuICAgIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVmFsaWRhdGlvbkVycm9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBOYkJ1dHRvbk1vZHVsZSxcbiAgICBOYkNhbGVuZGFyS2l0TW9kdWxlLFxuICAgIE5iQ2FsZW5kYXJNb2R1bGUsXG4gICAgTmJJY29uTGlicmFyaWVzLFxuICAgIE5iSWNvbk1vZHVsZSxcbiAgICBOYklucHV0TW9kdWxlLFxuICAgIE5iUG9wb3ZlckRpcmVjdGl2ZSxcbiAgICBOYlBvcG92ZXJNb2R1bGUsXG4gICAgTmJUaW1lcGlja2VyTW9kdWxlLFxufSBmcm9tICdAbmVidWxhci90aGVtZSc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IERBVEVfRk9STUFUIH0gZnJvbSAnLi9jdXN0b20tZGF0ZXBpY2tlci5tb2RlbCc7XG5pbXBvcnQgeyBUaW1lcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lcGlja2VyL3RpbWVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNjbERhdGVwaWNrZXJJY29ucyB9IGZyb20gJy4vZGF0ZXBpY2tlci5pY29uJztcblxuZXhwb3J0IGNvbnN0IERBVEVfVElNRV9QSUNLRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ2RhdGVUaW1lUGlja2VyJyk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2NsLWRhdGV0aW1lLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBOYkNhbGVuZGFyS2l0TW9kdWxlLFxuICAgICAgICBOYkNhbGVuZGFyTW9kdWxlLFxuICAgICAgICBOYlBvcG92ZXJNb2R1bGUsXG4gICAgICAgIE5iVGltZXBpY2tlck1vZHVsZSxcbiAgICAgICAgVGltZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTmJCdXR0b25Nb2R1bGUsXG4gICAgICAgIE5iSW5wdXRNb2R1bGUsXG4gICAgICAgIE5iSWNvbk1vZHVsZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNjbERhdGVUaW1lcGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBTY2xEYXRlVGltZXBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBEQVRFX1RJTUVfUElDS0VSLCB1c2VWYWx1ZTogdHJ1ZSB9LFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3NjbC1jdXN0b20tZGF0ZXBpY2tlciAnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNjbERhdGVUaW1lcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQE91dHB1dCgpIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKE5iUG9wb3ZlckRpcmVjdGl2ZSkgcG9wb3ZlciE6IE5iUG9wb3ZlckRpcmVjdGl2ZTtcbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgY2FsZW5kYXIhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ3RpbWVwaWNrZXInKSB0aW1lcGlja2VyITogVGltZXBpY2tlckNvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VsZWN0IGEgZGF0ZSc7XG4gICAgQElucHV0KCkgc2V0IGZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmhhc0Zvcm1hdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGZvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUZvcm1hdDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWluKHZhbHVlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICAgIHRoaXMuc2V0TWluRGF0ZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLmRhdGVwaWNrZXJGb3JtLnZhbHVlLmRhdGVwaWNrZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5mb3JtVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBtaW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc1RpbWVQaWNrZXIgPyB0aGlzLm1pbkRhdGVUaW1lIDogdGhpcy5taW5EYXRlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBtYXgodmFsdWU6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICAgICAgdGhpcy5zZXRNYXhEYXRlKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZXBpY2tlckZvcm0udmFsdWUuZGF0ZXBpY2tlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmZvcm1WYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG1heCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzVGltZVBpY2tlciA/IHRoaXMubWF4RGF0ZVRpbWUgOiB0aGlzLm1heERhdGU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgZGF0ZVRpbWVQaWNrZXIodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5oYXNUaW1lUGlja2VyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0Zvcm1hdCkge1xuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gREFURV9GT1JNQVQuREVGQVVMVF9EQVRFX1RJTUU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGRhdGVUaW1lUGlja2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNUaW1lUGlja2VyO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNob3dQcmVzZXRzKHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaGFzUHJlc2V0cyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzaG93UHJlc2V0cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzUHJlc2V0cztcbiAgICB9XG5cbiAgICAvLyBGb3IgdHdlbGV2ZSBob3VyIGZvcm1hdFxuICAgIC8vIEBJbnB1dCgpXG4gICAgLy8gc2V0IHR3ZWx2ZUhvdXJzRm9ybWF0KHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgLy8gICAgIHRoaXMuc2hvd1R3ZWx2ZUhyc0Zvcm1hdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgLy8gICAgIGlmICghdGhpcy5oYXNGb3JtYXQpIHtcbiAgICAvLyAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IERBVEVfRk9STUFULlRXRUxWRV9IUl9EQVRFVElNRTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbiAgICAvLyBnZXQgdHdlbHZlSG91cnNGb3JtYXQoKSB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLnNob3dUd2VsdmVIcnNGb3JtYXQ7XG4gICAgLy8gfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgcmVhZG9ubHkodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc1JlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBEQVRFX0ZPUk1BVCA9IERBVEVfRk9STUFUO1xuICAgIGRhdGVwaWNrZXJGb3JtITogRm9ybUdyb3VwO1xuICAgIGRhdGVGb3JtYXQgPSAnWVlZWS1NTS1ERCc7XG4gICAgZm9ybVZhbHVlID0gJyc7XG5cbiAgICB2aXNpYmxlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgbWF4RGF0ZSE6IERhdGU7XG4gICAgbWluRGF0ZSE6IERhdGU7XG4gICAgbWluRGF0ZVRpbWUhOiBEYXRlO1xuICAgIG1heERhdGVUaW1lITogRGF0ZTtcblxuICAgIGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIHNlbGVjdGVkRGF0ZSA9ICcnO1xuICAgIHRpbWUgPSAnMDA6MDAnO1xuXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBoYXNUaW1lUGlja2VyID0gZmFsc2U7XG4gICAgaGFzRm9ybWF0ID0gZmFsc2U7XG4gICAgaGFzUHJlc2V0cyA9IGZhbHNlO1xuICAgIGlzUmVxdWlyZWQgPSBmYWxzZTtcbiAgICBzaG93VHdlbHZlSHJzRm9ybWF0ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG4gICAgaXNTZWxlY3RpbmdEYXRlID0gZmFsc2U7XG4gICAgaXNSZWFkb25seSA9IGZhbHNlO1xuXG4gICAgZ2V0IGlzRm9ybVZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlVGltZVBpY2tlciA/ICEhKHRoaXMuc2VsZWN0ZWREYXRlICYmIHRoaXMudGltZSkgOiAhIXRoaXMuc2VsZWN0ZWREYXRlO1xuICAgIH1cblxuICAgIGdldCB0aW1lRm9ybWF0KCk6IHN0cmluZyB7XG4gICAgICAgIGxldCB0aW1lRm9ybWF0ID0gJyc7XG4gICAgICAgIGlmICgvW0hoXS8udGVzdCh0aGlzLmRhdGVGb3JtYXQpKSB0aW1lRm9ybWF0ICs9ICdISCc7XG4gICAgICAgIGlmICgvbS8udGVzdCh0aGlzLmRhdGVGb3JtYXQpKSB0aW1lRm9ybWF0ICs9ICc6bW0nO1xuICAgICAgICBpZiAoL3MvLnRlc3QodGhpcy5kYXRlRm9ybWF0KSkgdGltZUZvcm1hdCArPSAnOnNzJztcbiAgICAgICAgaWYgKC9bQWFdLy50ZXN0KHRoaXMuZGF0ZUZvcm1hdCkpIHRpbWVGb3JtYXQgKz0gJyBhJztcbiAgICAgICAgcmV0dXJuIHRpbWVGb3JtYXQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGljb25MaWJyYXJpZXM6IE5iSWNvbkxpYnJhcmllc1xuICAgICkge1xuICAgICAgICB0aGlzLmljb25MaWJyYXJpZXMucmVnaXN0ZXJTdmdQYWNrKCdzY2wtZGF0ZXBpY2tlci1pY29uJywgU2NsRGF0ZXBpY2tlckljb25zKTtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgZGF0ZXBpY2tlcjogW251bGxdLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWVDaGFuZ2UoKTtcbiAgICAgICAgaWYgKHRoaXMubWluRGF0ZVRpbWUpIHtcbiAgICAgICAgICAgIHRoaXMubWluRGF0ZVRpbWUuc2V0U2Vjb25kcygwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hhbmdlOiAodmFsOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChvYmopIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbW9tZW50KG9iaikuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdCk7XG4gICAgICAgICAgICB0aGlzLmZvcm1WYWx1ZSA9IHRoaXMuc2VsZWN0ZWREYXRlO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2ggPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzU2VsZWN0aW5nRGF0ZSkgcmV0dXJuO1xuICAgICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGVwaWNrZXJGb3JtLnZhbHVlLmRhdGVwaWNrZXIpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRW1wdHlEYXRlcGlja2VyKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0Zvcm1WYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5vbkNvbmZpcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUtleWJvYXJkRXZlbnRzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wb3BvdmVyLmlzU2hvd24gfHwgZXZlbnQua2V5ICE9PSAnRW50ZXInKSByZXR1cm47XG4gICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gdGhpcy5kYXRlcGlja2VyRm9ybS52YWx1ZS5kYXRlcGlja2VyO1xuICAgICAgICBjb25zdCBkYXRlID0gZGF0ZVN0cmluZyA/IG1vbWVudChkYXRlU3RyaW5nLCB0aGlzLmRhdGVGb3JtYXQsIHRydWUpLnRvRGF0ZSgpIDogbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy5nZXRWYWxpZGF0aW9uRXJyb3JzKGRhdGUpO1xuICAgICAgICBpZiAoZXJyb3JzKSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5oYXNUaW1lUGlja2VyKSB7XG4gICAgICAgICAgICB0aGlzLm9uRGF0ZVNlbGVjdChkYXRlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0Zvcm1WYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBtb21lbnQoZGF0ZSwgdGhpcy5kYXRlRm9ybWF0KS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgIHRoaXMub25Db25maXJtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRhdGVTZWxlY3QoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2VsZWN0aW5nRGF0ZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbW9tZW50KGV2ZW50KS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0KTtcbiAgICAgICAgdGhpcy5kYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlLCB0aGlzLmRhdGVGb3JtYXQpLnRvRGF0ZSgpO1xuICAgICAgICBpZiAoIXRoaXMuaGFzUHJlc2V0cyAmJiAhdGhpcy5oYXNUaW1lUGlja2VyKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ29uZmlybSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNTZWxlY3RpbmdEYXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25UaW1lQ2hhbmdlKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgb25Db25maXJtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEZvcm1WYWx1ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZm9ybVZhbHVlKTtcbiAgICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHRoaXMuZm9ybVZhbHVlKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+KTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGluZ0RhdGUpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAoY29udHJvbD8uZXJyb3JzPy5bJ3JlcXVpcmVkJ10pIHtcbiAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdGlvbkVycm9ycyhjb250cm9sPy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZGF0aW9uRXJyb3JzKGNvbnRyb2xEYXRlOiBEYXRlIHwgbnVsbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgaWYgKCFjb250cm9sRGF0ZSkgcmV0dXJuIHRoaXMuZ2V0UmVxdWlyZWRFcnJvcigpO1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZERhdGVGb3JtYXQoY29udHJvbERhdGUpKSByZXR1cm4geyBpbnZhbGlkRGF0ZUZvcm1hdDogdGhpcy5kYXRlRm9ybWF0IH07XG4gICAgICAgIHJldHVybiB0aGlzLmdldERhdGVSYW5nZUVycm9ycyhjb250cm9sRGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkRGF0ZUZvcm1hdChkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSwgdGhpcy5kYXRlRm9ybWF0LCB0cnVlKS5pc1ZhbGlkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSZXF1aXJlZEVycm9yKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG91Y2hlZCAmJiB0aGlzLmlzUmVxdWlyZWQgPyB7IHJlcXVpcmVkOiB0cnVlIH0gOiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZVJhbmdlRXJyb3JzKGNvbnRyb2xEYXRlOiBEYXRlKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBjb25zdCBtaW5EYXRlID0gdGhpcy5oYXNUaW1lUGlja2VyID8gdGhpcy5taW5EYXRlVGltZSA6IHRoaXMubWluRGF0ZTtcbiAgICAgICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMuaGFzVGltZVBpY2tlciA/IHRoaXMubWF4RGF0ZVRpbWUgOiB0aGlzLm1heERhdGU7XG4gICAgICAgIGNvbnN0IGRhdGVPYmplY3QgPSBuZXcgRGF0ZShjb250cm9sRGF0ZSk7XG4gICAgICAgIGlmIChtaW5EYXRlICYmIGRhdGVPYmplY3QgPCBtaW5EYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4geyBbdGhpcy5oYXNUaW1lUGlja2VyID8gJ21pbkRhdGVUaW1lJyA6ICdtaW5EYXRlJ106IHsgZGF0ZTogbWluRGF0ZSwgZm9ybWF0OiB0aGlzLmRhdGVGb3JtYXQgfSB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXhEYXRlICYmIGRhdGVPYmplY3QgPiBtYXhEYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4geyBbdGhpcy5oYXNUaW1lUGlja2VyID8gJ21heERhdGVUaW1lJyA6ICdtYXhEYXRlJ106IHsgZGF0ZTogbWF4RGF0ZSwgZm9ybWF0OiB0aGlzLmRhdGVGb3JtYXQgfSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJGb3JtLmdldCgnZGF0ZXBpY2tlcicpPy5wYXRjaFZhbHVlKHRoaXMuZm9ybVZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUG9wb3ZlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJGb3JtLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudERhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEN1cnJlbnREYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGlzLmRhdGUuc2V0U2Vjb25kcygwLCAwKTtcbiAgICAgICAgdGhpcy52aXNpYmxlRGF0ZSA9IHRoaXMuZGF0ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLnNob3dUd2VsdmVIcnNGb3JtYXRcbiAgICAgICAgICAgID8gbW9tZW50KHRoaXMuZGF0ZSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdCkucmVwbGFjZSgnMDA6MDAnLCAnMTI6MDAnKVxuICAgICAgICAgICAgOiBtb21lbnQodGhpcy5kYXRlKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0KTtcbiAgICAgICAgdGhpcy5vblRpbWVTZWxlY3QoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE1pbkRhdGUodmFsdWU6IERhdGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzVGltZVBpY2tlcikge1xuICAgICAgICAgICAgdGhpcy5taW5EYXRlVGltZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMubWluRGF0ZVRpbWUuc2V0U2Vjb25kcygwLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubWluRGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE1heERhdGUodmFsdWU6IERhdGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzVGltZVBpY2tlcikge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRlVGltZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMubWF4RGF0ZVRpbWUuc2V0U2Vjb25kcygwLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubWF4RGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybVZhbHVlQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJGb3JtLmdldCgnZGF0ZXBpY2tlcicpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGF0ZSA9IG1vbWVudCh2YWx1ZSwgdGhpcy5kYXRlRm9ybWF0KS50b0RhdGUoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWREYXRlRm9ybWF0KHRoaXMuZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVEYXRlID0gdGhpcy5kYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMub25UaW1lU2VsZWN0KCk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFbXB0eURhdGVwaWNrZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSgnJyk7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KCcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZvcm1WYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBbZGF0ZVBhcnRdID0gdGhpcy5zZWxlY3RlZERhdGUuc3BsaXQoJyAnKTtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSB0aGlzLmhhc1RpbWVQaWNrZXIgPyBgJHtkYXRlUGFydH0gJHt0aGlzLnRpbWV9YCA6IHRoaXMuc2VsZWN0ZWREYXRlO1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblRpbWVTZWxlY3QoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZERhdGUpIHJldHVybjtcbiAgICAgICAgY29uc3QgZGF0ZVBhcnRzID0gdGhpcy5zZWxlY3RlZERhdGUuc3BsaXQoJyAnKTtcbiAgICAgICAgdGhpcy50aW1lID0gZGF0ZVBhcnRzLmxlbmd0aCA+PSAzID8gYCR7ZGF0ZVBhcnRzWzFdfSAke2RhdGVQYXJ0c1syXX1gIDogZGF0ZVBhcnRzWzFdO1xuICAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZGF0ZXBpY2tlckZvcm1cIj5cbiAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJzY2wtY3VzdG9tLWRhdGVwaWNrZXJfX2lucHV0XCJcbiAgICAgICAgbmJJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVwaWNrZXJcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbcmVhZG9ubHldPVwiaXNSZWFkb25seVwiXG4gICAgICAgIFtuYlBvcG92ZXJdPVwiY2FsZW5kYXJcIlxuICAgICAgICBuYlBvcG92ZXJQbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICBuYlBvcG92ZXJTaXplPVwibGFyZ2VcIlxuICAgICAgICBbbmJQb3BvdmVyVHJpZ2dlcl09XCJpc1JlYWRvbmx5ID8gJ25vb3AnIDogJ2ZvY3VzJ1wiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCIgLz5cblxuICAgIDxkaXYgY2xhc3M9XCJzY2wtY3VzdG9tLWRhdGVwaWNrZXJfX2ljb25cIj5cbiAgICAgICAgPG5iLWljb24gaWNvbj1cImNhbGVuZGFyXCIgcGFjaz1cInNjbC1kYXRlcGlja2VyLWljb25cIj48L25iLWljb24+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2NhbGVuZGFyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19wb3BvdmVyXCIgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIGFyaWEtbGFiZWw9XCJDYWxlbmRhclwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtY3VzdG9tLWRhdGVwaWNrZXJfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmItY2FsZW5kYXIgWyhkYXRlKV09XCJkYXRlXCIgKGRhdGVDaGFuZ2UpPVwib25EYXRlU2VsZWN0KCRldmVudClcIiBbdmlzaWJsZURhdGVdPVwidmlzaWJsZURhdGVcIiBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIj4gPC9uYi1jYWxlbmRhcj5cblxuICAgICAgICAgICAgICAgIDx0aW1lcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICN0aW1lcGlja2VyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX190aW1lcGlja2VyXCJcbiAgICAgICAgICAgICAgICAgICAgKHRpbWVDaGFuZ2UpPVwib25UaW1lQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbdGltZVZhbHVlc109XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW3R3ZWx2ZUhvdXJzRm9ybWF0XT1cInNob3dUd2VsdmVIcnNGb3JtYXRcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cInRpbWVGb3JtYXRcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1RpbWVQaWNrZXJcIj5cbiAgICAgICAgICAgICAgICA8L3RpbWVwaWNrZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjbC1jdXN0b20tZGF0ZXBpY2tlcl9fZm9vdGVyXCIgKm5nSWY9XCJoYXNUaW1lUGlja2VyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuYkJ1dHRvbiBnaG9zdCBzdGF0dXM9XCJwcmltYXJ5XCIgKm5nSWY9XCJzaG93UHJlc2V0c1wiPkNob29zZSBmcm9tIHByZXNlbnRzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuYkJ1dHRvbiBzdGF0dXM9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiPkNvbmZpcm08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9mb3JtPlxuIl19
@@ -166,11 +166,11 @@ class TimepickerComponent {
166
166
  }
167
167
  });
168
168
  }
169
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: TimepickerComponent, deps: [{ token: DATE_TIME_PICKER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
170
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: TimepickerComponent, isStandalone: true, selector: "timepicker", inputs: { twelveHoursFormat: "twelveHoursFormat", timeValues: "timeValues", format: "format" }, outputs: { timeChange: "timeChange" }, host: { classAttribute: "timepicker" }, viewQueries: [{ propertyName: "timepickerItems", predicate: ["timepickerItem"], descendants: true }], ngImport: i0, template: "<div class=\"timepicker__data\" *ngFor=\"let option of timepickerOptions\">\n <div class=\"timepicker__column-header\" sclText textType=\"bodyMedium\">{{ option.unit }}</div>\n <div class=\"timepicker__columns\">\n <button\n #timepickerItem\n *ngFor=\"let item of option.data\"\n [class.selected]=\"item.isSelected\"\n (click)=\"onSelect(item, option.unit)\"\n sclText\n textType=\"bodyMedium\"\n class=\"timepicker__item\"\n [id]=\"getItemId(option.unit, item.label)\">\n {{ item.label }}\n </button>\n </div>\n</div>\n", styles: ["/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */.timepicker{display:flex}.timepicker__data{display:grid;grid-template-rows:auto 1fr;height:var(--scl-timepicker-data-height);border-right:var(--scl-timepicker-border-width) solid var(--scl-timepicker-border-color)}.timepicker__data:last-child{border-right:none}.timepicker__column-header{width:var(--scl-timepicker-column-header-width);height:var(--scl-timepicker-column-header-height);text-align:center;padding:var(--scl-timepicker-column-header-padding)}.timepicker__columns{padding:var(--scl-timepicker-columns-padding);overflow-y:scroll;border-top:var(--scl-timepicker-border-width) solid var(--scl-timepicker-border-color)}.timepicker__columns::-webkit-scrollbar{width:var(--scl-timepicker-columns-scrollbar-width)}.timepicker__columns::-webkit-scrollbar-thumb{color:transparent;background-color:transparent;border-radius:var(--scl-timepicker-columns-scrollbar-border-radius);cursor:pointer}.timepicker__columns:hover::-webkit-scrollbar-thumb{color:var(--scl-timepicker-columns-scrollbar-color);background-color:var(--scl-timepicker-columns-scrollbar-background-color)}.timepicker__item{width:var(--scl-timepicker-item-width);padding:var(--scl-timepicker-item-padding);text-align:center;cursor:pointer;display:block;background-color:#fff;border:none}.timepicker__item:hover{background-color:var(--scl-timepicker-item-hover-background-color)}.timepicker__item.selected{background-color:var(--scl-timepicker-item-selected-background-color);border-radius:var(--scl-timepicker-item-selected-border-radius);position:relative}.timepicker__item.selected:after{content:\"\";position:absolute;top:.875rem;left:.75rem;transform:rotate(-45deg);width:var(--scl-timepicker-check-icon-width);height:var(--scl-timepicker-check-icon-height);border-bottom:var(--scl-timepicker-check-icon-border-width) solid var(--scl-timepicker-check-icon-border-color);border-left:var(--scl-timepicker-check-icon-border-width) solid var(--scl-timepicker-check-icon-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
169
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimepickerComponent, deps: [{ token: DATE_TIME_PICKER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimepickerComponent, isStandalone: true, selector: "timepicker", inputs: { twelveHoursFormat: "twelveHoursFormat", timeValues: "timeValues", format: "format" }, outputs: { timeChange: "timeChange" }, host: { classAttribute: "timepicker" }, viewQueries: [{ propertyName: "timepickerItems", predicate: ["timepickerItem"], descendants: true }], ngImport: i0, template: "<div class=\"timepicker__data\" *ngFor=\"let option of timepickerOptions\">\n <div class=\"timepicker__column-header\" sclText textType=\"bodyMedium\">{{ option.unit }}</div>\n <div class=\"timepicker__columns\">\n <button\n #timepickerItem\n *ngFor=\"let item of option.data\"\n [class.selected]=\"item.isSelected\"\n (click)=\"onSelect(item, option.unit)\"\n sclText\n textType=\"bodyMedium\"\n class=\"timepicker__item\"\n [id]=\"getItemId(option.unit, item.label)\">\n {{ item.label }}\n </button>\n </div>\n</div>\n", styles: ["/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */.timepicker{display:flex}.timepicker__data{display:grid;grid-template-rows:auto 1fr;height:var(--scl-timepicker-data-height);border-right:var(--scl-timepicker-border-width) solid var(--scl-timepicker-border-color)}.timepicker__data:last-child{border-right:none}.timepicker__column-header{width:var(--scl-timepicker-column-header-width);height:var(--scl-timepicker-column-header-height);text-align:center;padding:var(--scl-timepicker-column-header-padding)}.timepicker__columns{padding:var(--scl-timepicker-columns-padding);overflow-y:scroll;border-top:var(--scl-timepicker-border-width) solid var(--scl-timepicker-border-color)}.timepicker__columns::-webkit-scrollbar{width:var(--scl-timepicker-columns-scrollbar-width)}.timepicker__columns::-webkit-scrollbar-thumb{color:transparent;background-color:transparent;border-radius:var(--scl-timepicker-columns-scrollbar-border-radius);cursor:pointer}.timepicker__columns:hover::-webkit-scrollbar-thumb{color:var(--scl-timepicker-columns-scrollbar-color);background-color:var(--scl-timepicker-columns-scrollbar-background-color)}.timepicker__item{width:var(--scl-timepicker-item-width);padding:var(--scl-timepicker-item-padding);text-align:center;cursor:pointer;display:block;background-color:#fff;border:none}.timepicker__item:hover{background-color:var(--scl-timepicker-item-hover-background-color)}.timepicker__item.selected{background-color:var(--scl-timepicker-item-selected-background-color);border-radius:var(--scl-timepicker-item-selected-border-radius);position:relative}.timepicker__item.selected:after{content:\"\";position:absolute;top:.875rem;left:.75rem;transform:rotate(-45deg);width:var(--scl-timepicker-check-icon-width);height:var(--scl-timepicker-check-icon-height);border-bottom:var(--scl-timepicker-check-icon-border-width) solid var(--scl-timepicker-check-icon-border-color);border-left:var(--scl-timepicker-check-icon-border-width) solid var(--scl-timepicker-check-icon-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
171
171
  }
172
172
  export { TimepickerComponent };
173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: TimepickerComponent, decorators: [{
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimepickerComponent, decorators: [{
174
174
  type: Component,
175
175
  args: [{ selector: 'timepicker', standalone: true, imports: [CommonModule], host: {
176
176
  class: 'timepicker',
@@ -192,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
192
192
  }], format: [{
193
193
  type: Input
194
194
  }] } });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvY3VzdG9tLWRhdGVwaWNrZXIvdGltZXBpY2tlci90aW1lcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy9jdXN0b20tZGF0ZXBpY2tlci90aW1lcGlja2VyL3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JKLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQW9DLE1BQU0sNEJBQTRCLENBQUM7OztBQUUzRixNQVVhLG1CQUFtQjtJQUk1QixJQUFhLGlCQUFpQixDQUFDLEtBQXVCO1FBQ2xELElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckc7SUFDTCxD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aEU7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E1TFEsbUJBQW1CLGtCQTZDSSxnQkFBZ0I7a0dBN0N2QyxtQkFBbUIsMlZDaEJoQyxvb0JBZ0JBLDJuRURMYyxZQUFZOztTQUtiLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQVYvQixTQUFTOytCQUNJLFlBQVksY0FHVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsUUFDakI7d0JBQ0YsS0FBSyxFQUFFLFlBQVk7cUJBQ3RCOzswQkErQ1ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7NENBNUNoQixlQUFlO3NCQUE5QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDcEIsVUFBVTtzQkFBbkIsTUFBTTtnQkFFTSxpQkFBaUI7c0JBQTdCLEtBQUs7Z0JBT08sVUFBVTtzQkFBdEIsS0FBSztnQkFRTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREFURV9USU1FX1BJQ0tFUiB9IGZyb20gJy4uL2N1c3RvbS1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUSU1FX0ZPUk1BVCwgVGltZXBpY2tlckRhdGEsIFRpbWVwaWNrZXJPcHRpb24gfSBmcm9tICcuLi9jdXN0b20tZGF0ZXBpY2tlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGltZXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aW1lcGlja2VyJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkcmVuKCd0aW1lcGlja2VySXRlbScpIHRpbWVwaWNrZXJJdGVtcyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgICBAT3V0cHV0KCkgdGltZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQElucHV0KCkgc2V0IHR3ZWx2ZUhvdXJzRm9ybWF0KHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc1R3ZWx2ZUhvdXJzRm9ybWF0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuaG91cnMgPSBbJzEyJywgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogMTEgfSwgKF8sIGkpID0+IChpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpKV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdGltZVZhbHVlcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuZXh0cmFjdFRpbWVQYXJ0cygpO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb1NlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGltZUZvcm1hdCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBmb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVGb3JtYXQ7XG4gICAgfVxuXG4gICAgdGltZXBpY2tlck9wdGlvbnM6IFRpbWVwaWNrZXJPcHRpb25bXSA9IFtdO1xuICAgIGhvdXJzOiBzdHJpbmdbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDI0IH0sIChfLCBpKSA9PiBpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSk7XG4gICAgc2VsZWN0ZWRIb3VyOiBzdHJpbmcgPSAnMDAnO1xuXG4gICAgbWludXRlczogc3RyaW5nW10gPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA2MCB9LCAoXywgaSkgPT4gaS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykpO1xuICAgIHNlbGVjdGVkTWludXRlOiBzdHJpbmcgPSAnMDAnO1xuXG4gICAgcGVyaW9kczogc3RyaW5nW10gPSBbJ0FNJywgJ1BNJ107XG4gICAgc2VsZWN0ZWRQZXJpb2Q6IHN0cmluZyA9ICdBTSc7XG5cbiAgICBkZWZhdWx0U2Vjb25kczogc3RyaW5nID0gJzAwJztcblxuICAgIGlzVHdlbHZlSG91cnNGb3JtYXQgPSBmYWxzZTtcbiAgICBzZWxlY3RlZFRpbWUgPSAnJztcblxuICAgIHRpbWVGb3JtYXQ6IHN0cmluZyA9IFRJTUVfRk9STUFULkRFRkFVTFRfVElNRTtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX1BJQ0tFUikgcHJpdmF0ZSBkYXRlVGltZVBpY2tlcjogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGVUaW1lUGlja2VyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RpbWVwaWNrZXIgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgY3VzdG9tLWRhdGVwaWNrZXIgY29tcG9uZW50Jyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWRJdGVtcygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFRpbWVQaWNrZXJPcHRpb25zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLmV4dHJhY3RUaW1lUGFydHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0KHZhbHVlOiBUaW1lcGlja2VyRGF0YSwgb3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlcyh2YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgdGhpcy5lbWl0VGltZUNoYW5nZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGltZVBpY2tlck9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGltZXBpY2tlck9wdGlvbnMgPSBbXG4gICAgICAgICAgICB7IHVuaXQ6ICdIb3VycycsIGRhdGE6IHRoaXMuaG91cnMubWFwKHZhbHVlID0+ICh7IGxhYmVsOiB2YWx1ZSwgaXNTZWxlY3RlZDogZmFsc2UgfSkpIH0sXG4gICAgICAgICAgICB7IHVuaXQ6ICdNaW51dGVzJywgZGF0YTogdGhpcy5taW51dGVzLm1hcCh2YWx1ZSA9PiAoeyBsYWJlbDogdmFsdWUsIGlzU2VsZWN0ZWQ6IGZhbHNlIH0pKSB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLmlzVHdlbHZlSG91cnNGb3JtYXQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZXBpY2tlck9wdGlvbnMgPSBbXG4gICAgICAgICAgICAgICAgLi4udGhpcy50aW1lcGlja2VyT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi51bml0ICE9PSAnUGVyaW9kcycpLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pdDogJ1BlcmlvZHMnLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB0aGlzLnBlcmlvZHMubWFwKHZhbHVlID0+ICh7IGxhYmVsOiB2YWx1ZSwgaXNTZWxlY3RlZDogdmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRQZXJpb2QgfSkpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTZWxlY3RlZFZhbHVlcyh2YWx1ZTogVGltZXBpY2tlckRhdGEsIG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy50aW1lcGlja2VyT3B0aW9ucy5maW5kKGl0ZW0gPT4gaXRlbS51bml0ID09PSBvcHRpb24pO1xuXG4gICAgICAgIGlmIChncm91cCkge1xuICAgICAgICAgICAgZ3JvdXAuZGF0YS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uaXNTZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICAgICAgICB2YWx1ZS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnSG91cnMnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNaW51dGVzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE1pbnV0ZSA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdTZWNvbmRzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0U2Vjb25kcyA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdQZXJpb2RzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRUaW1lQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBsZXQgZm9ybWF0dGVkVGltZSA9ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLmlzVHdlbHZlSG91cnNGb3JtYXQpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFRpbWUgPVxuICAgICAgICAgICAgICAgIGAke3RoaXMuc2VsZWN0ZWRIb3VyLnBhZFN0YXJ0KDIsICcwJyl9OiR7dGhpcy5zZWxlY3RlZE1pbnV0ZS5wYWRTdGFydCgyLCAnMCcpfWAgK1xuICAgICAgICAgICAgICAgICh0aGlzLmZvcm1hdC5pbmNsdWRlcygnOnNzJykgPyBgOiR7dGhpcy5kZWZhdWx0U2Vjb25kc31gIDogJycpICtcbiAgICAgICAgICAgICAgICBgICR7dGhpcy5zZWxlY3RlZFBlcmlvZH1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0dGVkVGltZSA9XG4gICAgICAgICAgICAgICAgYCR7dGhpcy5zZWxlY3RlZEhvdXIucGFkU3RhcnQoMiwgJzAnKX06JHt0aGlzLnNlbGVjdGVkTWludXRlLnBhZFN0YXJ0KDIsICcwJyl9YCArXG4gICAgICAgICAgICAgICAgKHRoaXMuZm9ybWF0LmluY2x1ZGVzKCc6c3MnKSA/IGA6JHt0aGlzLmRlZmF1bHRTZWNvbmRzfWAgOiAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aW1lQ2hhbmdlLmVtaXQoZm9ybWF0dGVkVGltZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRyYWN0VGltZVBhcnRzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lcGlja2VyT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IFt0aW1lLCBwZXJpb2RdID0gdGhpcy5zZWxlY3RlZFRpbWUuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgIGNvbnN0IFtob3VycywgbWludXRlcywgc2Vjb25kc10gPSB0aW1lLnNwbGl0KCc6Jyk7XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0VGltZVBhcnQoJ0hvdXJzJywgaG91cnMpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lUGFydCgnTWludXRlcycsIG1pbnV0ZXMpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lUGFydCgnU2Vjb25kcycsIHNlY29uZHMpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lUGFydCgnUGVyaW9kcycsIHBlcmlvZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdFRpbWVQYXJ0KHVuaXQ6IHN0cmluZywgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChzZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IHRoaXMudGltZXBpY2tlck9wdGlvbnMuZmluZChpdGVtID0+IGl0ZW0udW5pdCA9PT0gdW5pdCk7XG5cbiAgICAgICAgICAgIGlmIChncm91cCkge1xuICAgICAgICAgICAgICAgIGdyb3VwLmRhdGEuZm9yRWFjaChpdGVtID0+IChpdGVtLmlzU2VsZWN0ZWQgPSBmYWxzZSkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID1cbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAudW5pdCA9PT0gJ1BlcmlvZHMnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRhdGEuZmluZChpdGVtID0+IGl0ZW0ubGFiZWwuaW5jbHVkZXMoc2VsZWN0ZWRWYWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRhdGEuZmluZChpdGVtID0+IGl0ZW0ubGFiZWwgPT09IHNlbGVjdGVkVmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0uaXNTZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh1bml0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdIb3Vycyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEhvdXIgPSBzZWxlY3RlZEl0ZW0ubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdNaW51dGVzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTWludXRlID0gc2VsZWN0ZWRJdGVtLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnU2Vjb25kcyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0U2Vjb25kcyA9IHNlbGVjdGVkSXRlbS5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1BlcmlvZHMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2QgPSBzZWxlY3RlZEl0ZW0ubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEl0ZW1JZCh1bml0OiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dW5pdH0tJHtsYWJlbH1gO1xuICAgIH1cblxuICAgIHNjcm9sbFRvU2VsZWN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lcGlja2VyT3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBvcHRpb24uZGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5pc1NlbGVjdGVkKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtSWQgPSB0aGlzLmdldEl0ZW1JZChvcHRpb24udW5pdCwgc2VsZWN0ZWRJdGVtLmxhYmVsKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXRlbUlkKTtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdhdXRvJywgYmxvY2s6ICdzdGFydCcgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGltZXBpY2tlcl9fZGF0YVwiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgdGltZXBpY2tlck9wdGlvbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZXBpY2tlcl9fY29sdW1uLWhlYWRlclwiIHNjbFRleHQgdGV4dFR5cGU9XCJib2R5TWVkaXVtXCI+e3sgb3B0aW9uLnVuaXQgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZXBpY2tlcl9fY29sdW1uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAjdGltZXBpY2tlckl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbi5kYXRhXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpdGVtLmlzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0sIG9wdGlvbi51bml0KVwiXG4gICAgICAgICAgICBzY2xUZXh0XG4gICAgICAgICAgICB0ZXh0VHlwZT1cImJvZHlNZWRpdW1cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0aW1lcGlja2VyX19pdGVtXCJcbiAgICAgICAgICAgIFtpZF09XCJnZXRJdGVtSWQob3B0aW9uLnVuaXQsIGl0ZW0ubGFiZWwpXCI+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvY3VzdG9tLWRhdGVwaWNrZXIvdGltZXBpY2tlci90aW1lcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy9jdXN0b20tZGF0ZXBpY2tlci90aW1lcGlja2VyL3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JKLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQW9DLE1BQU0sNEJBQTRCLENBQUM7OztBQUUzRixNQVVhLG1CQUFtQjtJQUk1QixJQUFhLGlCQUFpQixDQUFDLEtBQXVCO1FBQ2xELElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckc7SUFDTCxD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aEU7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0E1TFEsbUJBQW1CLGtCQTZDSSxnQkFBZ0I7bUdBN0N2QyxtQkFBbUIsMlZDaEJoQyxvb0JBZ0JBLDJuRURMYyxZQUFZOztTQUtiLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQVYvQixTQUFTOytCQUNJLFlBQVksY0FHVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsUUFDakI7d0JBQ0YsS0FBSyxFQUFFLFlBQVk7cUJBQ3RCOzswQkErQ1ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7NENBNUNoQixlQUFlO3NCQUE5QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDcEIsVUFBVTtzQkFBbkIsTUFBTTtnQkFFTSxpQkFBaUI7c0JBQTdCLEtBQUs7Z0JBT08sVUFBVTtzQkFBdEIsS0FBSztnQkFRTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREFURV9USU1FX1BJQ0tFUiB9IGZyb20gJy4uL2N1c3RvbS1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUSU1FX0ZPUk1BVCwgVGltZXBpY2tlckRhdGEsIFRpbWVwaWNrZXJPcHRpb24gfSBmcm9tICcuLi9jdXN0b20tZGF0ZXBpY2tlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGltZXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aW1lcGlja2VyJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkcmVuKCd0aW1lcGlja2VySXRlbScpIHRpbWVwaWNrZXJJdGVtcyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgICBAT3V0cHV0KCkgdGltZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQElucHV0KCkgc2V0IHR3ZWx2ZUhvdXJzRm9ybWF0KHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc1R3ZWx2ZUhvdXJzRm9ybWF0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuaG91cnMgPSBbJzEyJywgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogMTEgfSwgKF8sIGkpID0+IChpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpKV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdGltZVZhbHVlcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuZXh0cmFjdFRpbWVQYXJ0cygpO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb1NlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGltZUZvcm1hdCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBmb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVGb3JtYXQ7XG4gICAgfVxuXG4gICAgdGltZXBpY2tlck9wdGlvbnM6IFRpbWVwaWNrZXJPcHRpb25bXSA9IFtdO1xuICAgIGhvdXJzOiBzdHJpbmdbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDI0IH0sIChfLCBpKSA9PiBpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSk7XG4gICAgc2VsZWN0ZWRIb3VyOiBzdHJpbmcgPSAnMDAnO1xuXG4gICAgbWludXRlczogc3RyaW5nW10gPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA2MCB9LCAoXywgaSkgPT4gaS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykpO1xuICAgIHNlbGVjdGVkTWludXRlOiBzdHJpbmcgPSAnMDAnO1xuXG4gICAgcGVyaW9kczogc3RyaW5nW10gPSBbJ0FNJywgJ1BNJ107XG4gICAgc2VsZWN0ZWRQZXJpb2Q6IHN0cmluZyA9ICdBTSc7XG5cbiAgICBkZWZhdWx0U2Vjb25kczogc3RyaW5nID0gJzAwJztcblxuICAgIGlzVHdlbHZlSG91cnNGb3JtYXQgPSBmYWxzZTtcbiAgICBzZWxlY3RlZFRpbWUgPSAnJztcblxuICAgIHRpbWVGb3JtYXQ6IHN0cmluZyA9IFRJTUVfRk9STUFULkRFRkFVTFRfVElNRTtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX1BJQ0tFUikgcHJpdmF0ZSBkYXRlVGltZVBpY2tlcjogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGVUaW1lUGlja2VyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RpbWVwaWNrZXIgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgY3VzdG9tLWRhdGVwaWNrZXIgY29tcG9uZW50Jyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWRJdGVtcygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFRpbWVQaWNrZXJPcHRpb25zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLmV4dHJhY3RUaW1lUGFydHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0KHZhbHVlOiBUaW1lcGlja2VyRGF0YSwgb3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlcyh2YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgdGhpcy5lbWl0VGltZUNoYW5nZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGltZVBpY2tlck9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGltZXBpY2tlck9wdGlvbnMgPSBbXG4gICAgICAgICAgICB7IHVuaXQ6ICdIb3VycycsIGRhdGE6IHRoaXMuaG91cnMubWFwKHZhbHVlID0+ICh7IGxhYmVsOiB2YWx1ZSwgaXNTZWxlY3RlZDogZmFsc2UgfSkpIH0sXG4gICAgICAgICAgICB7IHVuaXQ6ICdNaW51dGVzJywgZGF0YTogdGhpcy5taW51dGVzLm1hcCh2YWx1ZSA9PiAoeyBsYWJlbDogdmFsdWUsIGlzU2VsZWN0ZWQ6IGZhbHNlIH0pKSB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLmlzVHdlbHZlSG91cnNGb3JtYXQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZXBpY2tlck9wdGlvbnMgPSBbXG4gICAgICAgICAgICAgICAgLi4udGhpcy50aW1lcGlja2VyT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi51bml0ICE9PSAnUGVyaW9kcycpLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pdDogJ1BlcmlvZHMnLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB0aGlzLnBlcmlvZHMubWFwKHZhbHVlID0+ICh7IGxhYmVsOiB2YWx1ZSwgaXNTZWxlY3RlZDogdmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRQZXJpb2QgfSkpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTZWxlY3RlZFZhbHVlcyh2YWx1ZTogVGltZXBpY2tlckRhdGEsIG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy50aW1lcGlja2VyT3B0aW9ucy5maW5kKGl0ZW0gPT4gaXRlbS51bml0ID09PSBvcHRpb24pO1xuXG4gICAgICAgIGlmIChncm91cCkge1xuICAgICAgICAgICAgZ3JvdXAuZGF0YS5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uaXNTZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICAgICAgICB2YWx1ZS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnSG91cnMnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNaW51dGVzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE1pbnV0ZSA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdTZWNvbmRzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0U2Vjb25kcyA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdQZXJpb2RzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9IHZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRUaW1lQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBsZXQgZm9ybWF0dGVkVGltZSA9ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLmlzVHdlbHZlSG91cnNGb3JtYXQpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFRpbWUgPVxuICAgICAgICAgICAgICAgIGAke3RoaXMuc2VsZWN0ZWRIb3VyLnBhZFN0YXJ0KDIsICcwJyl9OiR7dGhpcy5zZWxlY3RlZE1pbnV0ZS5wYWRTdGFydCgyLCAnMCcpfWAgK1xuICAgICAgICAgICAgICAgICh0aGlzLmZvcm1hdC5pbmNsdWRlcygnOnNzJykgPyBgOiR7dGhpcy5kZWZhdWx0U2Vjb25kc31gIDogJycpICtcbiAgICAgICAgICAgICAgICBgICR7dGhpcy5zZWxlY3RlZFBlcmlvZH1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0dGVkVGltZSA9XG4gICAgICAgICAgICAgICAgYCR7dGhpcy5zZWxlY3RlZEhvdXIucGFkU3RhcnQoMiwgJzAnKX06JHt0aGlzLnNlbGVjdGVkTWludXRlLnBhZFN0YXJ0KDIsICcwJyl9YCArXG4gICAgICAgICAgICAgICAgKHRoaXMuZm9ybWF0LmluY2x1ZGVzKCc6c3MnKSA/IGA6JHt0aGlzLmRlZmF1bHRTZWNvbmRzfWAgOiAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aW1lQ2hhbmdlLmVtaXQoZm9ybWF0dGVkVGltZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRyYWN0VGltZVBhcnRzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lcGlja2VyT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IFt0aW1lLCBwZXJpb2RdID0gdGhpcy5zZWxlY3RlZFRpbWUuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgIGNvbnN0IFtob3VycywgbWludXRlcywgc2Vjb25kc10gPSB0aW1lLnNwbGl0KCc6Jyk7XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0VGltZVBhcnQoJ0hvdXJzJywgaG91cnMpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lUGFydCgnTWludXRlcycsIG1pbnV0ZXMpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lUGFydCgnU2Vjb25kcycsIHNlY29uZHMpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lUGFydCgnUGVyaW9kcycsIHBlcmlvZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdFRpbWVQYXJ0KHVuaXQ6IHN0cmluZywgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChzZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IHRoaXMudGltZXBpY2tlck9wdGlvbnMuZmluZChpdGVtID0+IGl0ZW0udW5pdCA9PT0gdW5pdCk7XG5cbiAgICAgICAgICAgIGlmIChncm91cCkge1xuICAgICAgICAgICAgICAgIGdyb3VwLmRhdGEuZm9yRWFjaChpdGVtID0+IChpdGVtLmlzU2VsZWN0ZWQgPSBmYWxzZSkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID1cbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAudW5pdCA9PT0gJ1BlcmlvZHMnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGdyb3VwLmRhdGEuZmluZChpdGVtID0+IGl0ZW0ubGFiZWwuaW5jbHVkZXMoc2VsZWN0ZWRWYWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGdyb3VwLmRhdGEuZmluZChpdGVtID0+IGl0ZW0ubGFiZWwgPT09IHNlbGVjdGVkVmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0uaXNTZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh1bml0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdIb3Vycyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEhvdXIgPSBzZWxlY3RlZEl0ZW0ubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdNaW51dGVzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTWludXRlID0gc2VsZWN0ZWRJdGVtLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnU2Vjb25kcyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0U2Vjb25kcyA9IHNlbGVjdGVkSXRlbS5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1BlcmlvZHMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2QgPSBzZWxlY3RlZEl0ZW0ubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEl0ZW1JZCh1bml0OiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dW5pdH0tJHtsYWJlbH1gO1xuICAgIH1cblxuICAgIHNjcm9sbFRvU2VsZWN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lcGlja2VyT3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBvcHRpb24uZGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5pc1NlbGVjdGVkKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtSWQgPSB0aGlzLmdldEl0ZW1JZChvcHRpb24udW5pdCwgc2VsZWN0ZWRJdGVtLmxhYmVsKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXRlbUlkKTtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdhdXRvJywgYmxvY2s6ICdzdGFydCcgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGltZXBpY2tlcl9fZGF0YVwiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgdGltZXBpY2tlck9wdGlvbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZXBpY2tlcl9fY29sdW1uLWhlYWRlclwiIHNjbFRleHQgdGV4dFR5cGU9XCJib2R5TWVkaXVtXCI+e3sgb3B0aW9uLnVuaXQgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZXBpY2tlcl9fY29sdW1uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAjdGltZXBpY2tlckl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbi5kYXRhXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpdGVtLmlzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0sIG9wdGlvbi51bml0KVwiXG4gICAgICAgICAgICBzY2xUZXh0XG4gICAgICAgICAgICB0ZXh0VHlwZT1cImJvZHlNZWRpdW1cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0aW1lcGlja2VyX19pdGVtXCJcbiAgICAgICAgICAgIFtpZF09XCJnZXRJdGVtSWQob3B0aW9uLnVuaXQsIGl0ZW0ubGFiZWwpXCI+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -17,11 +17,11 @@ class SclDataListComponent {
17
17
  get spaceBetween() {
18
18
  return this.alignment === 'space-between';
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclDataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclDataListComponent, isStandalone: true, selector: "scl-data-list", inputs: { label: "label", alignment: "alignment" }, host: { properties: { "class.scl-data-list--align-start": "this.start", "class.scl-data-list--align-end": "this.end", "class.scl-data-list--align-center": "this.center", "class.scl-data-list--space-between": "this.spaceBetween" }, classAttribute: "scl-data-list" }, ngImport: i0, template: "<h6 class=\"scl-data-list__label\">{{ label }}</h6>\n<section class=\"scl-data-list__value\">\n <ng-content></ng-content>\n</section>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclDataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SclDataListComponent, isStandalone: true, selector: "scl-data-list", inputs: { label: "label", alignment: "alignment" }, host: { properties: { "class.scl-data-list--align-start": "this.start", "class.scl-data-list--align-end": "this.end", "class.scl-data-list--align-center": "this.center", "class.scl-data-list--space-between": "this.spaceBetween" }, classAttribute: "scl-data-list" }, ngImport: i0, template: "<h6 class=\"scl-data-list__label\">{{ label }}</h6>\n<section class=\"scl-data-list__value\">\n <ng-content></ng-content>\n</section>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
22
22
  }
23
23
  export { SclDataListComponent };
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclDataListComponent, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclDataListComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'scl-data-list', standalone: true, imports: [CommonModule], host: {
27
27
  class: 'scl-data-list',
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
43
43
  type: HostBinding,
44
44
  args: ['class.scl-data-list--space-between']
45
45
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL2RhdGEtbGlzdC9kYXRhLWxpc3QudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZGF0YS1saXN0L2RhdGEtbGlzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTlELE1BU2Esb0JBQW9CO0lBVGpDO1FBWWEsY0FBUyxHQUF1QixPQUFPLENBQUM7S0FvQnBEO0lBbEJHLElBQ0ksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQ0ksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUNELElBQ0ksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUM7SUFDOUMsQ0FBQzs4R0F0QlEsb0JBQW9CO2tHQUFwQixvQkFBb0IsdVlDZGpDLDRJQUlBLDJDREljLFlBQVk7O1NBTWIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBVGhDLFNBQVM7K0JBQ0ksZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxRQUVqQjt3QkFDRixLQUFLLEVBQUUsZUFBZTtxQkFDekI7OEJBR1EsS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0YsS0FBSztzQkFEUixXQUFXO3VCQUFDLGtDQUFrQztnQkFNM0MsR0FBRztzQkFETixXQUFXO3VCQUFDLGdDQUFnQztnQkFNekMsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLG1DQUFtQztnQkFLNUMsWUFBWTtzQkFEZixXQUFXO3VCQUFDLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBEYXRhTGlzdEFsaWdubWVudCA9ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInIHwgJ3NwYWNlLWJldHdlZW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjbC1kYXRhLWxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtbGlzdC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnc2NsLWRhdGEtbGlzdCcsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2NsRGF0YUxpc3RDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgYWxpZ25tZW50PzogRGF0YUxpc3RBbGlnbm1lbnQgPSAnc3RhcnQnO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zY2wtZGF0YS1saXN0LS1hbGlnbi1zdGFydCcpXG4gICAgZ2V0IHN0YXJ0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGlnbm1lbnQgPT09ICdzdGFydCc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zY2wtZGF0YS1saXN0LS1hbGlnbi1lbmQnKVxuICAgIGdldCBlbmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsaWdubWVudCA9PT0gJ2VuZCc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zY2wtZGF0YS1saXN0LS1hbGlnbi1jZW50ZXInKVxuICAgIGdldCBjZW50ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsaWdubWVudCA9PT0gJ2NlbnRlcic7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2NsLWRhdGEtbGlzdC0tc3BhY2UtYmV0d2VlbicpXG4gICAgZ2V0IHNwYWNlQmV0d2VlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxpZ25tZW50ID09PSAnc3BhY2UtYmV0d2Vlbic7XG4gICAgfVxufVxuIiwiPGg2IGNsYXNzPVwic2NsLWRhdGEtbGlzdF9fbGFiZWxcIj57eyBsYWJlbCB9fTwvaDY+XG48c2VjdGlvbiBjbGFzcz1cInNjbC1kYXRhLWxpc3RfX3ZhbHVlXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9zZWN0aW9uPlxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL2RhdGEtbGlzdC9kYXRhLWxpc3QudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZGF0YS1saXN0L2RhdGEtbGlzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTlELE1BU2Esb0JBQW9CO0lBVGpDO1FBWWEsY0FBUyxHQUF1QixPQUFPLENBQUM7S0FvQnBEO0lBbEJHLElBQ0ksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQ0ksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUNELElBQ0ksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUM7SUFDOUMsQ0FBQzsrR0F0QlEsb0JBQW9CO21HQUFwQixvQkFBb0IsdVlDZGpDLDRJQUlBLDJDREljLFlBQVk7O1NBTWIsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBVGhDLFNBQVM7K0JBQ0ksZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxRQUVqQjt3QkFDRixLQUFLLEVBQUUsZUFBZTtxQkFDekI7OEJBR1EsS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0YsS0FBSztzQkFEUixXQUFXO3VCQUFDLGtDQUFrQztnQkFNM0MsR0FBRztzQkFETixXQUFXO3VCQUFDLGdDQUFnQztnQkFNekMsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLG1DQUFtQztnQkFLNUMsWUFBWTtzQkFEZixXQUFXO3VCQUFDLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBEYXRhTGlzdEFsaWdubWVudCA9ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInIHwgJ3NwYWNlLWJldHdlZW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjbC1kYXRhLWxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtbGlzdC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnc2NsLWRhdGEtbGlzdCcsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2NsRGF0YUxpc3RDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgYWxpZ25tZW50PzogRGF0YUxpc3RBbGlnbm1lbnQgPSAnc3RhcnQnO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zY2wtZGF0YS1saXN0LS1hbGlnbi1zdGFydCcpXG4gICAgZ2V0IHN0YXJ0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGlnbm1lbnQgPT09ICdzdGFydCc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zY2wtZGF0YS1saXN0LS1hbGlnbi1lbmQnKVxuICAgIGdldCBlbmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsaWdubWVudCA9PT0gJ2VuZCc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zY2wtZGF0YS1saXN0LS1hbGlnbi1jZW50ZXInKVxuICAgIGdldCBjZW50ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsaWdubWVudCA9PT0gJ2NlbnRlcic7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2NsLWRhdGEtbGlzdC0tc3BhY2UtYmV0d2VlbicpXG4gICAgZ2V0IHNwYWNlQmV0d2VlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxpZ25tZW50ID09PSAnc3BhY2UtYmV0d2Vlbic7XG4gICAgfVxufVxuIiwiPGg2IGNsYXNzPVwic2NsLWRhdGEtbGlzdF9fbGFiZWxcIj57eyBsYWJlbCB9fTwvaDY+XG48c2VjdGlvbiBjbGFzcz1cInNjbC1kYXRhLWxpc3RfX3ZhbHVlXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9zZWN0aW9uPlxuIl19
@@ -145,8 +145,8 @@ class SclDateRangePickerComponent {
145
145
  }
146
146
  return null;
147
147
  }
148
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclDateRangePickerComponent, deps: [{ token: i1.FormBuilder }, { token: i2.NbDateService }, { token: i2.NbIconLibraries }], target: i0.ɵɵFactoryTarget.Component }); }
149
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclDateRangePickerComponent, isStandalone: true, selector: "scl-date-range-picker", inputs: { placeholder: "placeholder", isReadonly: "isReadonly", min: "min", max: "max", showPresets: "showPresets", hasTimePicker: "hasTimePicker" }, outputs: { dateChange: "dateChange" }, providers: [
148
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclDateRangePickerComponent, deps: [{ token: i1.FormBuilder }, { token: i2.NbDateService }, { token: i2.NbIconLibraries }], target: i0.ɵɵFactoryTarget.Component }); }
149
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SclDateRangePickerComponent, isStandalone: true, selector: "scl-date-range-picker", inputs: { placeholder: "placeholder", isReadonly: "isReadonly", min: "min", max: "max", showPresets: "showPresets", hasTimePicker: "hasTimePicker" }, outputs: { dateChange: "dateChange" }, providers: [
150
150
  {
151
151
  provide: NG_VALUE_ACCESSOR,
152
152
  useExisting: forwardRef(() => SclDateRangePickerComponent),
@@ -160,7 +160,7 @@ class SclDateRangePickerComponent {
160
160
  ], viewQueries: [{ propertyName: "popover", first: true, predicate: NbPopoverDirective, descendants: true }], ngImport: i0, template: "<form [formGroup]=\"datepickerForm\">\n <input\n class=\"scl-custom-datepicker__input\"\n nbInput\n type=\"text\"\n formControlName=\"datepicker\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n [nbPopover]=\"calendar\"\n nbPopoverPlacement=\"bottom\"\n nbPopoverSize=\"large\"\n [nbPopoverTrigger]=\"isReadonly ? 'noop' : 'focus'\"\n (blur)=\"onBlur()\" />\n\n <div class=\"scl-custom-datepicker__icon\">\n <nb-icon icon=\"calendar\" pack=\"scl-datepicker-icon\"></nb-icon>\n </div>\n\n <ng-template #calendar>\n <div class=\"scl-custom-datepicker__popover\" (mousedown)=\"$event.preventDefault()\" aria-label=\"Calendar\" tabindex=\"-1\">\n <div class=\"scl-custom-datepicker__content\">\n <nb-calendar-range [(range)]=\"dateRange\" (rangeChange)=\"onDateRangeSelect($event)\" [min]=\"min\" [max]=\"max\"> </nb-calendar-range>\n </div>\n\n <div class=\"scl-custom-datepicker__footer\" *ngIf=\"hasTimePicker\">\n <button nbButton ghost status=\"primary\" *ngIf=\"showPresets\">Choose from presets</button>\n <button nbButton status=\"primary\" [disabled]=\"!isFormValid\" (click)=\"onConfirm()\">Confirm</button>\n </div>\n </div>\n </ng-template>\n</form>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NbCalendarKitModule }, { kind: "ngmodule", type: NbCalendarModule }, { kind: "ngmodule", type: NbCalendarRangeModule }, { kind: "component", type: i2.NbCalendarRangeComponent, selector: "nb-calendar-range", inputs: ["boundingMonth", "startView", "min", "max", "filter", "dayCellComponent", "monthCellComponent", "yearCellComponent", "size", "visibleDate", "showNavigation", "range", "showWeekNumber", "weekNumberSymbol"], outputs: ["rangeChange"] }, { kind: "ngmodule", type: NbPopoverModule }, { kind: "directive", type: i2.NbPopoverDirective, selector: "[nbPopover]", inputs: ["nbPopover", "nbPopoverContext", "nbPopoverPlacement", "nbPopoverAdjustment", "nbPopoverTrigger", "nbPopoverOffset", "nbTooltipDisabled", "nbPopoverClass"], outputs: ["nbPopoverShowStateChange"], exportAs: ["nbPopover"] }, { kind: "ngmodule", type: NbTimepickerModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NbButtonModule }, { kind: "component", type: i2.NbButtonComponent, selector: "button[nbButton],a[nbButton],input[type=\"button\"][nbButton],input[type=\"submit\"][nbButton]", inputs: ["hero"] }, { kind: "ngmodule", type: NbInputModule }, { kind: "directive", type: i2.NbInputDirective, selector: "input[nbInput],textarea[nbInput]", inputs: ["fieldSize", "status", "shape", "fullWidth"] }, { kind: "ngmodule", type: NbIconModule }, { kind: "component", type: i2.NbIconComponent, selector: "nb-icon", inputs: ["icon", "pack", "options", "status", "config"] }] }); }
161
161
  }
162
162
  export { SclDateRangePickerComponent };
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclDateRangePickerComponent, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SclDateRangePickerComponent, decorators: [{
164
164
  type: Component,
165
165
  args: [{ selector: 'scl-date-range-picker', imports: [
166
166
  CommonModule,
@@ -204,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
204
204
  }], hasTimePicker: [{
205
205
  type: Input
206
206
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFHSCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBSWpCLGFBQWEsR0FDaEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0gsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFFaEIscUJBQXFCLEVBR3JCLFlBQVksRUFDWixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFFMUUsTUE4QmEsMkJBQTJCO0lBcUJwQyxZQUNxQixFQUFlLEVBQ2YsV0FBZ0MsRUFDaEMsYUFBOEI7UUFGOUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFyQnpDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWpDLGdCQUFXLEdBQVcsbUJBQW1CLENBQUM7UUFDMUMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUc1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Q3JCLGVBQWUsaVZBQ2Ysa0JBQWtCLDhCQUVsQixtQkFBbUIsNDhCQUNuQixjQUFjLCtNQUNkLGFBQWEscUxBQ2IsWUFBWTs7U0FnQlAsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBOUJ2QyxTQUFTOytCQUNJLHVCQUF1QixXQUV4Qjt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFlBQVk7cUJBQ2YsY0FDVyxJQUFJLGFBQ0w7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7NEJBQzFELEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7NEpBRzhCLE9BQU87c0JBQXJDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVuQixVQUFVO3NCQUFuQixNQUFNO2dCQUVFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgTkdfVkFMSURBVE9SUyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBOYkJ1dHRvbk1vZHVsZSxcbiAgICBOYkNhbGVuZGFyS2l0TW9kdWxlLFxuICAgIE5iQ2FsZW5kYXJNb2R1bGUsXG4gICAgTmJDYWxlbmRhclJhbmdlLFxuICAgIE5iQ2FsZW5kYXJSYW5nZU1vZHVsZSxcbiAgICBOYkRhdGVTZXJ2aWNlLFxuICAgIE5iSWNvbkxpYnJhcmllcyxcbiAgICBOYkljb25Nb2R1bGUsXG4gICAgTmJJbnB1dE1vZHVsZSxcbiAgICBOYlBvcG92ZXJEaXJlY3RpdmUsXG4gICAgTmJQb3BvdmVyTW9kdWxlLFxuICAgIE5iVGltZXBpY2tlck1vZHVsZSxcbn0gZnJvbSAnQG5lYnVsYXIvdGhlbWUnO1xuaW1wb3J0IHsgVGltZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2N1c3RvbS1kYXRlcGlja2VyL3RpbWVwaWNrZXIvdGltZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NsRGF0ZXBpY2tlckljb25zIH0gZnJvbSAnLi4vY3VzdG9tLWRhdGVwaWNrZXIvZGF0ZXBpY2tlci5pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzY2wtZGF0ZS1yYW5nZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLXBpY2tlci5odG1sJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTmJDYWxlbmRhcktpdE1vZHVsZSxcbiAgICAgICAgTmJDYWxlbmRhck1vZHVsZSxcbiAgICAgICAgTmJDYWxlbmRhclJhbmdlTW9kdWxlLFxuICAgICAgICBOYlBvcG92ZXJNb2R1bGUsXG4gICAgICAgIE5iVGltZXBpY2tlck1vZHVsZSxcbiAgICAgICAgVGltZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTmJCdXR0b25Nb2R1bGUsXG4gICAgICAgIE5iSW5wdXRNb2R1bGUsXG4gICAgICAgIE5iSWNvbk1vZHVsZSxcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2NsRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2NsRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjbERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBWaWV3Q2hpbGQoTmJQb3BvdmVyRGlyZWN0aXZlKSBwb3BvdmVyITogTmJQb3BvdmVyRGlyZWN0aXZlO1xuXG4gICAgQE91dHB1dCgpIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBkYXRlIHJhbmdlJztcbiAgICBASW5wdXQoKSBpc1JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgbWluPzogRGF0ZTtcbiAgICBASW5wdXQoKSBtYXg/OiBEYXRlO1xuICAgIEBJbnB1dCgpIHNob3dQcmVzZXRzOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaGFzVGltZVBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZGF0ZXBpY2tlckZvcm0hOiBGb3JtR3JvdXA7XG4gICAgZGF0ZVJhbmdlITogTmJDYWxlbmRhclJhbmdlPERhdGUgfCB1bmRlZmluZWQ+O1xuICAgIGlzRm9ybVZhbGlkID0gZmFsc2U7XG4gICAgaXNSZXF1aXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgdG91Y2hlZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVTZXJ2aWNlOiBOYkRhdGVTZXJ2aWNlPERhdGU+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGljb25MaWJyYXJpZXM6IE5iSWNvbkxpYnJhcmllc1xuICAgICkge1xuICAgICAgICB0aGlzLmljb25MaWJyYXJpZXMucmVnaXN0ZXJTdmdQYWNrKCdzY2wtZGF0ZXBpY2tlci1pY29uJywgU2NsRGF0ZXBpY2tlckljb25zKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgZGF0ZXBpY2tlcjogWycnXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNGb3JtVmFsaWQgPSAhIXRoaXMuZGF0ZVJhbmdlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmRhdGVwaWNrZXJGb3JtLmdldCgnZGF0ZXBpY2tlcicpPy52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uVG91Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIG9uRGF0ZVJhbmdlU2VsZWN0KHJhbmdlOiBOYkNhbGVuZGFyUmFuZ2U8RGF0ZSB8IHVuZGVmaW5lZD4pIHtcbiAgICAgICAgdGhpcy5kYXRlUmFuZ2UgPSByYW5nZTtcbiAgICAgICAgLy8gT25seSBmb3JtYXQgYW5kIGVtaXQgd2hlbiB3ZSBoYXZlIGJvdGggc3RhcnQgYW5kIGVuZCBkYXRlc1xuICAgICAgICBpZiAocmFuZ2Uuc3RhcnQgJiYgcmFuZ2UuZW5kKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRSYW5nZSA9IGAke3RoaXMuZm9ybWF0RGF0ZShyYW5nZS5zdGFydCl9IC0gJHt0aGlzLmZvcm1hdERhdGUocmFuZ2UuZW5kKX1gO1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBkYXRlcGlja2VyOiBmb3JtYXR0ZWRSYW5nZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShmb3JtYXR0ZWRSYW5nZSk7XG4gICAgICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyYW5nZSk7IC8vIEVtaXQgdGhlIGRhdGUgcmFuZ2Ugb2JqZWN0XG5cbiAgICAgICAgICAgIC8vIENsb3NlIHRoZSBwb3BvdmVyIGFmdGVyIGJvdGggZGF0ZXMgYXJlIHNlbGVjdGVkXG4gICAgICAgICAgICBpZiAodGhpcy5wb3BvdmVyPy5pc1Nob3duKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChyYW5nZS5zdGFydCkge1xuICAgICAgICAgICAgLy8gSWYgb25seSBzdGFydCBkYXRlIGlzIHNlbGVjdGVkLCB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgYnV0IGRvbid0IGNsb3NlIHBvcG92ZXJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFN0YXJ0ID0gdGhpcy5mb3JtYXREYXRlKHJhbmdlLnN0YXJ0KTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgZGF0ZXBpY2tlcjogZm9ybWF0dGVkU3RhcnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIERvbid0IGVtaXQgb3IgY2xvc2UgcG9wb3ZlciB5ZXQgLSB3YWl0IGZvciBlbmQgZGF0ZVxuICAgICAgICB9XG4gICAgfVxuICAgIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlID8gdGhpcy5kYXRlU2VydmljZS5mb3JtYXQoZGF0ZSwgJ3l5eXktTU0tZGQnKSA6ICcnO1xuICAgIH1cblxuICAgIG9uQ29uZmlybSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZVJhbmdlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU2VsZWN0ZWQgUmFuZ2U6JywgdGhpcy5kYXRlUmFuZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMuaXNWYWxpZERhdGVSYW5nZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB2YWx1ZS5zcGxpdCgnIC0gJykubWFwKChkYXRlU3RyOiBhbnkpID0+IG5ldyBEYXRlKGRhdGVTdHIpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVSYW5nZSA9IHsgc3RhcnQsIGVuZCB9O1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVwaWNrZXI6IHZhbHVlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5zdGFydCAmJiB2YWx1ZS5lbmQpIHtcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgb2JqZWN0IGZvcm1hdCB3aXRoIHN0YXJ0IGFuZCBlbmQgcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlID0ge1xuICAgICAgICAgICAgICAgICAgICBzdGFydDogbmV3IERhdGUodmFsdWUuc3RhcnQpLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IG5ldyBEYXRlKHZhbHVlLmVuZCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRSYW5nZSA9IGAke3RoaXMuZm9ybWF0RGF0ZSh0aGlzLmRhdGVSYW5nZS5zdGFydCl9IC0gJHt0aGlzLmZvcm1hdERhdGUodGhpcy5kYXRlUmFuZ2UuZW5kKX1gO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVwaWNrZXI6IGZvcm1hdHRlZFJhbmdlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVSYW5nZSA9IHsgc3RhcnQ6IHVuZGVmaW5lZCwgZW5kOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICBkYXRlcGlja2VyOiAnJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlID0geyBzdGFydDogdW5kZWZpbmVkLCBlbmQ6IHVuZGVmaW5lZCB9O1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBkYXRlcGlja2VyOiAnJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBmbigpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0uZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZERhdGVSYW5nZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGRhdGVSYW5nZVBhdHRlcm4gPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KCAtIFxcZHs0fS1cXGR7Mn0tXFxkezJ9KT8kLztcbiAgICAgICAgcmV0dXJuIGRhdGVSYW5nZVBhdHRlcm4udGVzdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRvdWNoZWQgJiYgdGhpcy5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4geyByZXF1aXJlZDogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkRGF0ZVJhbmdlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgaW52YWxpZERhdGVGb3JtYXQ6ICdZWVlZLU1NLUREIC0gWVlZWS1NTS1ERCcgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB2YWx1ZS5zcGxpdCgnIC0gJykubWFwKChkYXRlU3RyOiBhbnkpID0+IG5ldyBEYXRlKGRhdGVTdHIpKTtcbiAgICAgICAgaWYgKHRoaXMubWluICYmIHN0YXJ0IDwgdGhpcy5taW4pIHtcbiAgICAgICAgICAgIHJldHVybiB7IG1pbkRhdGU6IHsgZGF0ZTogdGhpcy5taW4sIGZvcm1hdDogJ1lZWVktTU0tREQnIH0gfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tYXggJiYgZW5kID4gdGhpcy5tYXgpIHtcbiAgICAgICAgICAgIHJldHVybiB7IG1heERhdGU6IHsgZGF0ZTogdGhpcy5tYXgsIGZvcm1hdDogJ1lZWVktTU0tREQnIH0gfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImRhdGVwaWNrZXJGb3JtXCI+XG4gICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19pbnB1dFwiXG4gICAgICAgIG5iSW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlcGlja2VyXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZG9ubHlcIlxuICAgICAgICBbbmJQb3BvdmVyXT1cImNhbGVuZGFyXCJcbiAgICAgICAgbmJQb3BvdmVyUGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgbmJQb3BvdmVyU2l6ZT1cImxhcmdlXCJcbiAgICAgICAgW25iUG9wb3ZlclRyaWdnZXJdPVwiaXNSZWFkb25seSA/ICdub29wJyA6ICdmb2N1cydcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19pY29uXCI+XG4gICAgICAgIDxuYi1pY29uIGljb249XCJjYWxlbmRhclwiIHBhY2s9XCJzY2wtZGF0ZXBpY2tlci1pY29uXCI+PC9uYi1pY29uPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNjYWxlbmRhcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjbC1jdXN0b20tZGF0ZXBpY2tlcl9fcG9wb3ZlclwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBhcmlhLWxhYmVsPVwiQ2FsZW5kYXJcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5iLWNhbGVuZGFyLXJhbmdlIFsocmFuZ2UpXT1cImRhdGVSYW5nZVwiIChyYW5nZUNoYW5nZSk9XCJvbkRhdGVSYW5nZVNlbGVjdCgkZXZlbnQpXCIgW21pbl09XCJtaW5cIiBbbWF4XT1cIm1heFwiPiA8L25iLWNhbGVuZGFyLXJhbmdlPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtY3VzdG9tLWRhdGVwaWNrZXJfX2Zvb3RlclwiICpuZ0lmPVwiaGFzVGltZVBpY2tlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbmJCdXR0b24gZ2hvc3Qgc3RhdHVzPVwicHJpbWFyeVwiICpuZ0lmPVwic2hvd1ByZXNldHNcIj5DaG9vc2UgZnJvbSBwcmVzZXRzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuYkJ1dHRvbiBzdGF0dXM9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiPkNvbmZpcm08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9mb3JtPlxuIl19
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFHSCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBSWpCLGFBQWEsR0FDaEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0gsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFFaEIscUJBQXFCLEVBR3JCLFlBQVksRUFDWixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFFMUUsTUE4QmEsMkJBQTJCO0lBcUJwQyxZQUNxQixFQUFlLEVBQ2YsV0FBZ0MsRUFDaEMsYUFBOEI7UUFGOUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFyQnpDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWpDLGdCQUFXLEdBQVcsbUJBQW1CLENBQUM7UUFDMUMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUc1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Q3JCLGVBQWUsaVZBQ2Ysa0JBQWtCLDhCQUVsQixtQkFBbUIsNDhCQUNuQixjQUFjLCtNQUNkLGFBQWEscUxBQ2IsWUFBWTs7U0FnQlAsMkJBQTJCOzRGQUEzQiwyQkFBMkI7a0JBOUJ2QyxTQUFTOytCQUNJLHVCQUF1QixXQUV4Qjt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFlBQVk7cUJBQ2YsY0FDVyxJQUFJLGFBQ0w7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7NEJBQzFELEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7NEpBRzhCLE9BQU87c0JBQXJDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVuQixVQUFVO3NCQUFuQixNQUFNO2dCQUVFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgTkdfVkFMSURBVE9SUyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBOYkJ1dHRvbk1vZHVsZSxcbiAgICBOYkNhbGVuZGFyS2l0TW9kdWxlLFxuICAgIE5iQ2FsZW5kYXJNb2R1bGUsXG4gICAgTmJDYWxlbmRhclJhbmdlLFxuICAgIE5iQ2FsZW5kYXJSYW5nZU1vZHVsZSxcbiAgICBOYkRhdGVTZXJ2aWNlLFxuICAgIE5iSWNvbkxpYnJhcmllcyxcbiAgICBOYkljb25Nb2R1bGUsXG4gICAgTmJJbnB1dE1vZHVsZSxcbiAgICBOYlBvcG92ZXJEaXJlY3RpdmUsXG4gICAgTmJQb3BvdmVyTW9kdWxlLFxuICAgIE5iVGltZXBpY2tlck1vZHVsZSxcbn0gZnJvbSAnQG5lYnVsYXIvdGhlbWUnO1xuaW1wb3J0IHsgVGltZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2N1c3RvbS1kYXRlcGlja2VyL3RpbWVwaWNrZXIvdGltZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NsRGF0ZXBpY2tlckljb25zIH0gZnJvbSAnLi4vY3VzdG9tLWRhdGVwaWNrZXIvZGF0ZXBpY2tlci5pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzY2wtZGF0ZS1yYW5nZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLXBpY2tlci5odG1sJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTmJDYWxlbmRhcktpdE1vZHVsZSxcbiAgICAgICAgTmJDYWxlbmRhck1vZHVsZSxcbiAgICAgICAgTmJDYWxlbmRhclJhbmdlTW9kdWxlLFxuICAgICAgICBOYlBvcG92ZXJNb2R1bGUsXG4gICAgICAgIE5iVGltZXBpY2tlck1vZHVsZSxcbiAgICAgICAgVGltZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTmJCdXR0b25Nb2R1bGUsXG4gICAgICAgIE5iSW5wdXRNb2R1bGUsXG4gICAgICAgIE5iSWNvbk1vZHVsZSxcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2NsRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2NsRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjbERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBWaWV3Q2hpbGQoTmJQb3BvdmVyRGlyZWN0aXZlKSBwb3BvdmVyITogTmJQb3BvdmVyRGlyZWN0aXZlO1xuXG4gICAgQE91dHB1dCgpIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBkYXRlIHJhbmdlJztcbiAgICBASW5wdXQoKSBpc1JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgbWluPzogRGF0ZTtcbiAgICBASW5wdXQoKSBtYXg/OiBEYXRlO1xuICAgIEBJbnB1dCgpIHNob3dQcmVzZXRzOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaGFzVGltZVBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZGF0ZXBpY2tlckZvcm0hOiBGb3JtR3JvdXA7XG4gICAgZGF0ZVJhbmdlITogTmJDYWxlbmRhclJhbmdlPERhdGUgfCB1bmRlZmluZWQ+O1xuICAgIGlzRm9ybVZhbGlkID0gZmFsc2U7XG4gICAgaXNSZXF1aXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgdG91Y2hlZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVTZXJ2aWNlOiBOYkRhdGVTZXJ2aWNlPERhdGU+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGljb25MaWJyYXJpZXM6IE5iSWNvbkxpYnJhcmllc1xuICAgICkge1xuICAgICAgICB0aGlzLmljb25MaWJyYXJpZXMucmVnaXN0ZXJTdmdQYWNrKCdzY2wtZGF0ZXBpY2tlci1pY29uJywgU2NsRGF0ZXBpY2tlckljb25zKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgZGF0ZXBpY2tlcjogWycnXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNGb3JtVmFsaWQgPSAhIXRoaXMuZGF0ZVJhbmdlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmRhdGVwaWNrZXJGb3JtLmdldCgnZGF0ZXBpY2tlcicpPy52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uVG91Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIG9uRGF0ZVJhbmdlU2VsZWN0KHJhbmdlOiBOYkNhbGVuZGFyUmFuZ2U8RGF0ZSB8IHVuZGVmaW5lZD4pIHtcbiAgICAgICAgdGhpcy5kYXRlUmFuZ2UgPSByYW5nZTtcbiAgICAgICAgLy8gT25seSBmb3JtYXQgYW5kIGVtaXQgd2hlbiB3ZSBoYXZlIGJvdGggc3RhcnQgYW5kIGVuZCBkYXRlc1xuICAgICAgICBpZiAocmFuZ2Uuc3RhcnQgJiYgcmFuZ2UuZW5kKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRSYW5nZSA9IGAke3RoaXMuZm9ybWF0RGF0ZShyYW5nZS5zdGFydCl9IC0gJHt0aGlzLmZvcm1hdERhdGUocmFuZ2UuZW5kKX1gO1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBkYXRlcGlja2VyOiBmb3JtYXR0ZWRSYW5nZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShmb3JtYXR0ZWRSYW5nZSk7XG4gICAgICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyYW5nZSk7IC8vIEVtaXQgdGhlIGRhdGUgcmFuZ2Ugb2JqZWN0XG5cbiAgICAgICAgICAgIC8vIENsb3NlIHRoZSBwb3BvdmVyIGFmdGVyIGJvdGggZGF0ZXMgYXJlIHNlbGVjdGVkXG4gICAgICAgICAgICBpZiAodGhpcy5wb3BvdmVyPy5pc1Nob3duKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChyYW5nZS5zdGFydCkge1xuICAgICAgICAgICAgLy8gSWYgb25seSBzdGFydCBkYXRlIGlzIHNlbGVjdGVkLCB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgYnV0IGRvbid0IGNsb3NlIHBvcG92ZXJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFN0YXJ0ID0gdGhpcy5mb3JtYXREYXRlKHJhbmdlLnN0YXJ0KTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgZGF0ZXBpY2tlcjogZm9ybWF0dGVkU3RhcnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIERvbid0IGVtaXQgb3IgY2xvc2UgcG9wb3ZlciB5ZXQgLSB3YWl0IGZvciBlbmQgZGF0ZVxuICAgICAgICB9XG4gICAgfVxuICAgIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlID8gdGhpcy5kYXRlU2VydmljZS5mb3JtYXQoZGF0ZSwgJ3l5eXktTU0tZGQnKSA6ICcnO1xuICAgIH1cblxuICAgIG9uQ29uZmlybSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZVJhbmdlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU2VsZWN0ZWQgUmFuZ2U6JywgdGhpcy5kYXRlUmFuZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMuaXNWYWxpZERhdGVSYW5nZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB2YWx1ZS5zcGxpdCgnIC0gJykubWFwKChkYXRlU3RyOiBhbnkpID0+IG5ldyBEYXRlKGRhdGVTdHIpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVSYW5nZSA9IHsgc3RhcnQsIGVuZCB9O1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVwaWNrZXI6IHZhbHVlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5zdGFydCAmJiB2YWx1ZS5lbmQpIHtcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgb2JqZWN0IGZvcm1hdCB3aXRoIHN0YXJ0IGFuZCBlbmQgcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlID0ge1xuICAgICAgICAgICAgICAgICAgICBzdGFydDogbmV3IERhdGUodmFsdWUuc3RhcnQpLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IG5ldyBEYXRlKHZhbHVlLmVuZCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRSYW5nZSA9IGAke3RoaXMuZm9ybWF0RGF0ZSh0aGlzLmRhdGVSYW5nZS5zdGFydCl9IC0gJHt0aGlzLmZvcm1hdERhdGUodGhpcy5kYXRlUmFuZ2UuZW5kKX1gO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVwaWNrZXI6IGZvcm1hdHRlZFJhbmdlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVSYW5nZSA9IHsgc3RhcnQ6IHVuZGVmaW5lZCwgZW5kOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICBkYXRlcGlja2VyOiAnJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlID0geyBzdGFydDogdW5kZWZpbmVkLCBlbmQ6IHVuZGVmaW5lZCB9O1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBkYXRlcGlja2VyOiAnJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBmbigpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlckZvcm0uZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyRm9ybS5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZERhdGVSYW5nZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGRhdGVSYW5nZVBhdHRlcm4gPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KCAtIFxcZHs0fS1cXGR7Mn0tXFxkezJ9KT8kLztcbiAgICAgICAgcmV0dXJuIGRhdGVSYW5nZVBhdHRlcm4udGVzdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRvdWNoZWQgJiYgdGhpcy5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4geyByZXF1aXJlZDogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkRGF0ZVJhbmdlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgaW52YWxpZERhdGVGb3JtYXQ6ICdZWVlZLU1NLUREIC0gWVlZWS1NTS1ERCcgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB2YWx1ZS5zcGxpdCgnIC0gJykubWFwKChkYXRlU3RyOiBhbnkpID0+IG5ldyBEYXRlKGRhdGVTdHIpKTtcbiAgICAgICAgaWYgKHRoaXMubWluICYmIHN0YXJ0IDwgdGhpcy5taW4pIHtcbiAgICAgICAgICAgIHJldHVybiB7IG1pbkRhdGU6IHsgZGF0ZTogdGhpcy5taW4sIGZvcm1hdDogJ1lZWVktTU0tREQnIH0gfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tYXggJiYgZW5kID4gdGhpcy5tYXgpIHtcbiAgICAgICAgICAgIHJldHVybiB7IG1heERhdGU6IHsgZGF0ZTogdGhpcy5tYXgsIGZvcm1hdDogJ1lZWVktTU0tREQnIH0gfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImRhdGVwaWNrZXJGb3JtXCI+XG4gICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19pbnB1dFwiXG4gICAgICAgIG5iSW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlcGlja2VyXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZG9ubHlcIlxuICAgICAgICBbbmJQb3BvdmVyXT1cImNhbGVuZGFyXCJcbiAgICAgICAgbmJQb3BvdmVyUGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgbmJQb3BvdmVyU2l6ZT1cImxhcmdlXCJcbiAgICAgICAgW25iUG9wb3ZlclRyaWdnZXJdPVwiaXNSZWFkb25seSA/ICdub29wJyA6ICdmb2N1cydcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19pY29uXCI+XG4gICAgICAgIDxuYi1pY29uIGljb249XCJjYWxlbmRhclwiIHBhY2s9XCJzY2wtZGF0ZXBpY2tlci1pY29uXCI+PC9uYi1pY29uPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNjYWxlbmRhcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjbC1jdXN0b20tZGF0ZXBpY2tlcl9fcG9wb3ZlclwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBhcmlhLWxhYmVsPVwiQ2FsZW5kYXJcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLWN1c3RvbS1kYXRlcGlja2VyX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5iLWNhbGVuZGFyLXJhbmdlIFsocmFuZ2UpXT1cImRhdGVSYW5nZVwiIChyYW5nZUNoYW5nZSk9XCJvbkRhdGVSYW5nZVNlbGVjdCgkZXZlbnQpXCIgW21pbl09XCJtaW5cIiBbbWF4XT1cIm1heFwiPiA8L25iLWNhbGVuZGFyLXJhbmdlPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtY3VzdG9tLWRhdGVwaWNrZXJfX2Zvb3RlclwiICpuZ0lmPVwiaGFzVGltZVBpY2tlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbmJCdXR0b24gZ2hvc3Qgc3RhdHVzPVwicHJpbWFyeVwiICpuZ0lmPVwic2hvd1ByZXNldHNcIj5DaG9vc2UgZnJvbSBwcmVzZXRzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuYkJ1dHRvbiBzdGF0dXM9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiPkNvbmZpcm08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9mb3JtPlxuIl19