@fundamental-ngx/platform 0.47.0-rc.9 → 0.47.0

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 (133) hide show
  1. package/action-button-group/action-button-group.component.d.ts +6 -0
  2. package/button/button.component.d.ts +4 -0
  3. package/esm2022/action-button-group/action-button-group.component.mjs +11 -2
  4. package/esm2022/button/button.component.mjs +6 -1
  5. package/esm2022/feed-input/feed-input.component.mjs +10 -2
  6. package/esm2022/form/combobox/combobox/combobox.component.mjs +2 -2
  7. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +3 -3
  8. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +5 -6
  9. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +5 -6
  10. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +6 -7
  11. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +5 -6
  12. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +6 -6
  13. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +5 -6
  14. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +14 -15
  15. package/esm2022/form/form-group/form-field/form-field.component.mjs +6 -8
  16. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +6 -8
  17. package/esm2022/form/form-group/form-group.component.mjs +17 -19
  18. package/esm2022/form/input/input.component.mjs +2 -2
  19. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +3 -3
  20. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +11 -13
  21. package/esm2022/form/multi-input/index.mjs +8 -0
  22. package/esm2022/form/multi-input/multi-input.component.mjs +5 -5
  23. package/esm2022/form/radio-group/radio/radio.component.mjs +10 -12
  24. package/esm2022/form/select/select/select.component.mjs +7 -8
  25. package/esm2022/form/step-input/number/number-step-input.component.mjs +7 -8
  26. package/esm2022/form/switch/switch/index.mjs +2 -0
  27. package/esm2022/form/switch/switch/switch.component.mjs +7 -8
  28. package/esm2022/form/text-area/text-area.component.mjs +2 -2
  29. package/esm2022/form/time-picker/time-picker.component.mjs +9 -10
  30. package/esm2022/info-label/info-label.component.mjs +8 -2
  31. package/esm2022/link/link.component.mjs +7 -1
  32. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +7 -7
  33. package/esm2022/menu/menu-item.component.mjs +4 -1
  34. package/esm2022/menu/menu.component.mjs +7 -2
  35. package/esm2022/menu-button/menu-button.component.mjs +7 -1
  36. package/esm2022/message-popover/message-popover.component.mjs +8 -10
  37. package/esm2022/object-attribute/index.mjs +4 -3
  38. package/esm2022/object-marker/object-marker.component.mjs +11 -2
  39. package/esm2022/object-status/object-status.component.mjs +9 -3
  40. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +6 -7
  41. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +5 -7
  42. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +8 -9
  43. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +10 -12
  44. package/esm2022/settings-generator/settings-generator.module.mjs +6 -10
  45. package/esm2022/shared/form/base.input.mjs +12 -10
  46. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +2 -2
  47. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +3 -3
  48. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +7 -4
  49. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +2 -2
  50. package/esm2022/table/components/table-row/table-row.component.mjs +3 -3
  51. package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +27 -0
  52. package/esm2022/table-helpers/pipes/index.mjs +2 -1
  53. package/esm2022/upload-collection/dialogs/new-folder/new-folder.component.mjs +2 -2
  54. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +2 -2
  55. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +2 -2
  56. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +2 -2
  57. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +14 -16
  58. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +8 -10
  59. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +9 -10
  60. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +4 -5
  61. package/feed-input/feed-input.component.d.ts +5 -0
  62. package/fesm2022/fundamental-ngx-platform-action-button-group.mjs +10 -1
  63. package/fesm2022/fundamental-ngx-platform-action-button-group.mjs.map +1 -1
  64. package/fesm2022/fundamental-ngx-platform-button.mjs +5 -0
  65. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  66. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +9 -1
  67. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  68. package/fesm2022/fundamental-ngx-platform-form.mjs +460 -467
  69. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  70. package/fesm2022/fundamental-ngx-platform-info-label.mjs +7 -1
  71. package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
  72. package/fesm2022/fundamental-ngx-platform-link.mjs +6 -0
  73. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  74. package/fesm2022/fundamental-ngx-platform-list.mjs +6 -6
  75. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  76. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +6 -0
  77. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  78. package/fesm2022/fundamental-ngx-platform-menu.mjs +9 -1
  79. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  80. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +9 -11
  81. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  82. package/fesm2022/fundamental-ngx-platform-object-attribute.mjs +1 -60
  83. package/fesm2022/fundamental-ngx-platform-object-attribute.mjs.map +1 -1
  84. package/fesm2022/fundamental-ngx-platform-object-marker.mjs +10 -1
  85. package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
  86. package/fesm2022/fundamental-ngx-platform-object-status.mjs +8 -2
  87. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  88. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +118 -124
  89. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  90. package/fesm2022/fundamental-ngx-platform-shared.mjs +7 -5
  91. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  92. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +26 -1
  93. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  94. package/fesm2022/fundamental-ngx-platform-table.mjs +12 -9
  95. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  96. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +2 -2
  97. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  98. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +2 -2
  99. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  100. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +175 -179
  101. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  102. package/form/form-generator/form-generator/form-generator.component.d.ts +4 -4
  103. package/form/form-group/form-group-header/form-group-header.component.d.ts +1 -1
  104. package/form/form-group/form-group.component.d.ts +3 -3
  105. package/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.d.ts +2 -2
  106. package/form/multi-input/index.d.ts +7 -0
  107. package/form/radio-group/radio/radio.component.d.ts +2 -2
  108. package/form/switch/switch/index.d.ts +1 -0
  109. package/form/time-picker/time-picker.component.d.ts +2 -2
  110. package/fundamental-ngx-platform-v0.47.0.tgz +0 -0
  111. package/info-label/info-label.component.d.ts +5 -0
  112. package/link/link.component.d.ts +4 -0
  113. package/menu/menu-item.component.d.ts +3 -0
  114. package/menu/menu.component.d.ts +4 -0
  115. package/menu-button/menu-button.component.d.ts +4 -0
  116. package/object-attribute/index.d.ts +3 -2
  117. package/object-marker/object-marker.component.d.ts +6 -0
  118. package/object-status/object-status.component.d.ts +6 -0
  119. package/package.json +4 -4
  120. package/schematics/ng-add/index.js +1 -1
  121. package/settings-generator/settings-generator.module.d.ts +8 -9
  122. package/shared/form/base.input.d.ts +5 -5
  123. package/table/components/table-header-row/table-header-row.component.d.ts +3 -1
  124. package/table-helpers/pipes/column-sorting-direction.pipe.d.ts +12 -0
  125. package/table-helpers/pipes/index.d.ts +1 -0
  126. package/wizard-generator/components/wizard-body/wizard-body.component.d.ts +1 -1
  127. package/wizard-generator/components/wizard-generator/wizard-generator.component.d.ts +1 -1
  128. package/esm2022/object-attribute/object-attribute.component.mjs +0 -45
  129. package/esm2022/object-attribute/object-attribute.module.mjs +0 -16
  130. package/fundamental-ngx-platform-v0.47.0-rc.9.tgz +0 -0
  131. package/object-attribute/README.md +0 -25
  132. package/object-attribute/object-attribute.component.d.ts +0 -26
  133. package/object-attribute/object-attribute.module.d.ts +0 -7
@@ -277,7 +277,7 @@ export class TextAreaComponent extends BaseInput {
277
277
  useExisting: TextAreaComponent,
278
278
  multi: true
279
279
  }
280
- ], viewQueries: [{ propertyName: "_textareaCounter", first: true, predicate: ["counter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n\n<!-- ICU recommends full text in format -->\n<div\n class=\"fd-textarea-counter\"\n *ngIf=\"showExceededText\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n [attr.id]=\"id + '-counter'\"\n #counter\n>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n <ng-container *ngIf=\"counterExcessOrRemaining === 'excess'; else charactersRemaining\">\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-container>\n <ng-template #charactersRemaining>\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-template>\n</div>\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"], dependencies: [{ kind: "component", type: FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
280
+ ], viewQueries: [{ propertyName: "_textareaCounter", first: true, predicate: ["counter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n\n<!-- ICU recommends full text in format -->\n<div\n class=\"fd-textarea-counter\"\n *ngIf=\"showExceededText\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n [attr.id]=\"id + '-counter'\"\n #counter\n>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n <ng-container *ngIf=\"counterExcessOrRemaining === 'excess'; else charactersRemaining\">\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-container>\n <ng-template #charactersRemaining>\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-template>\n</div>\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"], dependencies: [{ kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
281
281
  }
282
282
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TextAreaComponent, decorators: [{
283
283
  type: Component,
@@ -343,4 +343,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
343
343
  type: HostListener,
344
344
  args: ['keyup', ['$event']]
345
345
  }] } });
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RixPQUFPLEVBQUUsT0FBTyxFQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FB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aUJOLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLFNBQVM7Z0JBbUxwQixlQUFlO3NCQURkLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkFDS1NQQUNFLCBERUxFVEUgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBLZXlVdGlsLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZvcm1Db250cm9sQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7IEJhc2VJbnB1dCwgUGxhdGZvcm1Gb3JtRmllbGQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IFRleHRBcmVhQ29uZmlnIH0gZnJvbSAnLi90ZXh0LWFyZWEuY29uZmlnJztcblxuY29uc3QgVkFMSURfV1JBUF9UWVBFUyA9IFsnaGFyZCcsICdzb2Z0JywgJ29mZiddO1xuXG5leHBvcnQgdHlwZSBXcmFwVHlwZSA9ICdoYXJkJyB8ICdzb2Z0JyB8ICdvZmYnO1xuXG4vKipcbiAqIFRleHRhcmVhIGZpZWxkIGltcGxlbWVudGF0aW9uIHRoYXQgaXMgY29tcGxpYW50IHdpdGggUGxhdGZvcm0ncyBGb3JtR3JvdXAvRm9ybUZpZWxkIGRlc2lnblxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGV4dGFyZWEnLFxuICAgIHRlbXBsYXRlVXJsOiAndGV4dC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsndGV4dC1hcmVhLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfRk9STV9GSUVMRF9DT05UUk9MLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRleHRBcmVhQ29tcG9uZW50LFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybUNvbnRyb2xDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBOZ0lmLCBGZFRyYW5zbGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRleHRBcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVpZ2h0IHRvIHdoaWNoIHRoZSB0ZXh0YXJlYSB3aWxsIGdyb3cgd2hlbiBgZ3Jvd2luZ2AgaXMgc2V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGVpZ2h0OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiByb3dzIHRoYXQgd2lsbCBiZSB2aXNpYmxlIHdoZW4gYGdyb3dpbmdgIGlzIHNldC5cbiAgICAgKiBJZiBib3RoIGBncm93aW5nTWF4TGluZXNgIGFuZCBgaGVpZ2h0YCBhcmUgcHJvdmlkZWQsIGBoZWlnaHRgIHZhbHVlIHRha2VzIHByZWNlZGVuY2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBncm93aW5nTWF4TGluZXM6IE51bGxhYmxlPG51bWJlcj47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dGFyZWEgYGNvbHNgIGF0dHJpYnV0ZSB3cmFwcGVkLSB0aGUgbnVtYmVyIG9mIGxldHRlcnMgdmlzaWJsZSBwZXIgbGluZS5cbiAgICAgKiBJZiB3aWR0aCBpcyBzZXQgdG8gYXV0bywgdGhpcyBhdHRyaWJ1dGUgaGFzIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHM6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0YXJlYSBgd3JhcGAgYXR0cmlidXRlIC0gY2FuIGJlIG9uZSBvZiB0aHJlZTogJ29mZicsICdoYXJkJyBvciAnc29mdCcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwVHlwZTogV3JhcFR5cGUgPSAnc29mdCc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0ZXh0YXJlYSBpcyByZWFkb25seVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWxsb3dlZCB0byBlbnRlci5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgZmFsc2UsIGBtYXhMZW5ndGhgIGhhcyBuYXRpdmUgdGV4dGFyZWEncyBiZWhhdmlvciBvZiBkaXNhbGxvd2luZyB0eXBpbmcgYmV5b25kIGBtYXhMZW5ndGhgLlxuICAgICAqIElmIGBzaG93RXhjZWVkZWRUZXh0YCBpcyB0cnVlLCB1c2VyIGlzIGFsbG93ZWQgdG8gdHlwZSBiZXlvbmQgYG1heExlbmd0aGAsIGJ1dCBlcnJvciBzdGF0ZXMgYW5kIGNvdW50ZXIgbWVzc2FnZXMgc2hvd2luZ1xuICAgICAqIHRoZSBleGNlZWRlZCBjb3VudCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhMZW5ndGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgY291bnRlciBtZXNzYWdlIHNob3VsZCBiZSBzaG93bi5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgZmFsc2UsIG5vIHN0YXRlIGNoYW5nZXMgb3IgZXJyb3IgbWVzc2FnZXMgYXJlIHNob3duLiBVc2VyIGlzIHNpbXBseSBub3QgYWxsb3dlZCB0byB0eXBlXG4gICAgICogYmV5b25kIHRoZSBgbWF4TGVuZ3RoYCBjaGFyYWN0ZXJzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0V4Y2VlZGVkVGV4dCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGlzIHRleHRhcmVhIGNhbiBncm93LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ3Jvd2luZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRleHRhcmVhJ3MgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gd2hlbiBjdXN0b20gdmFsdWUgbm90IHNldCwgd2Ugc2hvdWxkIHNldC9yZXNldCBjb3VudGVyIHRvIG1heGxlbmd0aCB2YWx1ZSB3aGVuIGl0IGJlY29tZXMgdW5kZWZpbmVkXG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5tYXhMZW5ndGggPyB0aGlzLm1heExlbmd0aCA6IDA7XG4gICAgICAgICAgICAvLyByZXNldCBzdGF0ZSBieSByZXNldHRpbmcgdmFsdWVcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKCcnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdjb3VudGVyJylcbiAgICBfdGV4dGFyZWFDb3VudGVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhc1RleHRFeGNlZWRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gZXhjZXNzIGNoYXJhY3RlciBjb3VudCAqL1xuICAgIGV4Y2VlZGVkQ2hhckNvdW50ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuIGEgc3RyaW5nIHBsYWNlaG9sZGVyIHRoYXQgdG9nZ2xlcyBiZXR3ZWVuICdyZW1haW5pbmcnIGFuZCAnZXhjZXNzJyBmb3IgdGhlIHNlbGVjdCBJQ1UgZXhwcmVzc2lvbiAqL1xuICAgIGNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9ICdyZW1haW5pbmcnO1xuXG4gICAgLyoqIEBoaWRkZW4gZmxhZyB0byBjaGVjayBpZiB0aGVyZSBpcyBhbiBpbml0aWFsIHZhbHVlIHNldCAqL1xuICAgIGlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgLyoqIHRvIGtlZXAgdHJhY2sgb2YgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHRhcmVhICovXG4gICAgcHJpdmF0ZSBfdGV4dEFyZWFDaGFyQ291bnQgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1Bhc3RlZCA9IGZhbHNlO1xuXG4gICAgLyoqIGZvciBpMThuIGNvdW50ZXIgbWVzc2FnZSB0cmFuc2xhdGlvbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVtYWluaW5nVGV4dCA9ICdyZW1haW5pbmcnO1xuICAgIC8qKiBmb3IgaTE4biBjb3VudGVyIG1lc3NhZ2UgdHJhbnNsYXRpb24gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4Y2Vzc1RleHQgPSAnZXhjZXNzJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAc2VlIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbC5leHRyYUNvbnRlbnRIZWlnaHRQeFxuICAgICAqL1xuICAgIGdldCBleHRyYUNvbnRlbnRIZWlnaHRQeCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dGFyZWFDb3VudGVyPy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9zaG91bGRUcmFja1RleHRMaW1pdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4TGVuZ3RoID4gMCAmJiAhdGhpcy5zaG93RXhjZWVkZWRUZXh0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBwcm90ZWN0ZWQgX3RleHRBcmVhQ29uZmlnOiBUZXh0QXJlYUNvbmZpZ1xuICAgICkge1xuICAgICAgICBzdXBlcihjZCwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndyYXBUeXBlIHx8IFZBTElEX1dSQVBfVFlQRVMuaW5kZXhPZih0aGlzLndyYXBUeXBlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGV4dGFyZWEgd3JhcCB0eXBlICR7dGhpcy53cmFwVHlwZX0gaXMgbm90IHN1cHBvcnRlZGApO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIG5vdCBjdXN0b20gc2V0LCBzZXQgY291bnRlciB0byBtYXggbGVuZ3RoIHZhbHVlLCBlbHNlIGl0IGNhbGN1bGF0ZXMgcmVtYWluaW5nL2V4Y2VlZGVkIGNoYXJhY3RlcnMuXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoIHx8IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHNldCBtYXggaGVpZ2h0XG4gICAgICAgIHRoaXMuX3NldE1heEhlaWdodCgpO1xuXG4gICAgICAgIC8vIGRvbid0IHNldCBhbnkgZXJyb3Igc3RhdGUgaWYgd2UgYXJlIG5vdCBzaG93aW5nIGNvdW50ZXIgbWVzc2FnZVxuICAgICAgICBpZiAoIXRoaXMuX3Nob3VsZFRyYWNrVGV4dExpbWl0KSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIC8vIHdoZW4gdmFsdWUgaXMgY3VzdG9tIHNldChpbml0aWFsIHZhbHVlIGlzIHByZXNlbnQpLCB0aGUgaGVpZ2h0cyBkb24ndCBnZXRcbiAgICAgICAgLy8gc2V0IHRvIHNob3cgdGhlIGZ1bGwgdGV4dCBpbiB0aGUgbmdBZnRlclZpZXdJbml0IGltbWVkaWF0ZWx5LiB0aGVyZWZvcmUsIHdlIGNhbGwgYXV0b0dyb3dUZXh0QXJlYSBpblxuICAgICAgICAvLyBuZ0FmdGVyVmlld0NoZWNrZWQgYW5kIGRldGVjdCBjaGFuZ2VzIGFnYWluLlxuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmlzVmFsdWVDdXN0b21TZXQpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b0dyb3dUZXh0QXJlYSgpOyAvLyBpZiBhcHBsaWNhYmxlLCBncm93IHRoZSB0ZXh0YXJlYSB3aGVuIHZhbHVlIGlzIGN1c3RvbSBzZXRcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3RleHRhcmVhOiBuZ0FmdGVyVmlld0NoZWNrZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiB3cml0ZSB2YWx1ZSBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSA/PyAnJyk7XG4gICAgICAgIHRoaXMudXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd0ZXh0YXJlYTogd3JpdGVWYWx1ZScpO1xuICAgIH1cblxuICAgIC8qKiB1cGRhdGUgdGhlIGNvdW50ZXIgbWVzc2FnZSBhbmQgcmVsYXRlZCBpbnRlcmFjdGlvbnMgKi9cbiAgICB1cGRhdGVDb3VudGVySW50ZXJhY3Rpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA9IHRoaXMudmFsdWU/Lmxlbmd0aCA/PyAwO1xuXG4gICAgICAgIGlmICh0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgLy8gbmV3bHkgYWRkZWQgdG8gYXZvaWQgdW5uZWNlc3NhcnkgaXRlcmF0aW9uLCByZW1vdmUgaWYgaXNzdWUgZm91bmRcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVMZW5ndGhPbkN1c3RvbVNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIGlmIGV4Y2VlZGVkIG1heGxlbmd0aCB3aGVuIHNldCBhcyBhIHZhbHVlIGluIGNvZGUsIGhpZ2hsaWdodCB0aGUgZXhjZWVkZWQgdGV4dC4gKi9cbiAgICB2YWxpZGF0ZUxlbmd0aE9uQ3VzdG9tU2V0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzUGFzdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UodGhpcy5tYXhMZW5ndGgsIHRoaXMuX3RleHRBcmVhQ2hhckNvdW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSB0aGlzLmV4Y2Vzc1RleHQ7XG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgLSB0aGlzLm1heExlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5yZW1haW5pbmdUZXh0O1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoIC0gdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pc1Bhc3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBoYW5kbGUgZXhjZWVkZWQgbWF4bGVuZ3RoIGNhc2Ugd2hlbiB0ZXh0IGlzIHBhc3RlZCAqL1xuICAgIGhhbmRsZVBhc3RlSW50ZXJhY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzUGFzdGVkID0gdHJ1ZTtcblxuICAgICAgICAvLyBXcmFwcGVkIGluIHRpbWVvdXQgdG8gbWFrZSBzZWxlY3RpbmcgcmFuZ2Ugd29ya2luZ1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpKTtcbiAgICB9XG5cbiAgICAvKiogaGFuZGxlIGF1dG8gZ3Jvd2luZyBvZiB0ZXh0YXJlYSAqL1xuICAgIGF1dG9Hcm93VGV4dEFyZWEoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJ2luaGVyaXQnO1xuICAgICAgICAgICAgY29uc3QgdGV4dGFyZWFUb3RhbEhlaWdodCA9IHRoaXMuX2dldFRleHRhcmVhVG90YWxIZWlnaHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHBhcnNlSW50KHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0IGFzIHN0cmluZywgMTApO1xuICAgICAgICAgICAgaWYgKG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGlmICh0ZXh0YXJlYVRvdGFsSGVpZ2h0IDw9IG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRleHRhcmVhVG90YWxIZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gbWF4SGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbm8gYm91bmQgbWF4IGhlaWdodCwga2VlcCBncm93aW5nXG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0ZXh0YXJlYVRvdGFsSGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBsaW5lIGhlaWdodCBvZiB0ZXh0YXJlYVxuICAgICAqL1xuICAgIGdldFRleHRhcmVhTGluZUhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnRcbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fdGFyZ2V0RWxlbWVudCk7XG5cbiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgaGVpZ2h0XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQnKSwgMTApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAyMDsgLy8gZGVmYXVsdCBsaW5lIGhlaWdodCBpZiBub3RoaW5nIGlzIGRlZmluZWRcbiAgICB9XG5cbiAgICAvKiogd2hlbiBiYWNrcHJlc3Mgb3IgZGVsZXRlIGtleSBpcyBwcmVzc2VkIHdoZW4gc2hvd0V4Y2VlZGVkVGV4dCBmaWVsZCBpcyBub3Qgc2V0LCBzaW1wbHkgcmVtb3ZlIGV4Y2VzcyBjaGFyYWN0ZXJzLFxuICAgIC8qIGVsc2UgaGFuZGxlIGF1dG9ncm93IGNhc2VcbiAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVCYWNrUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgbm90IHNob3dpbmcgZXhjZWVkZWQgdGV4dCBtZXNzYWdlL2ludGVyYWN0aW9ucyBvciBncm93aW5nLCBhbmQgY3VzdG9tIHZhbHVlIHNldFxuICAgICAgICBpZiAodGhpcy5ncm93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9Hcm93VGV4dEFyZWEoKTtcbiAgICAgICAgICAgIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCA9IGZhbHNlOyAvLyBzZXQgaXQgdG8gZmFsc2UgZmlyc3QgdGltZSBpdCBjb21lcyBoZXJlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFRyYWNrVGV4dExpbWl0ICYmIEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbREVMRVRFLCBCQUNLU1BBQ0VdKSkge1xuICAgICAgICAgICAgLy8gZm9yIHRoZSBjdXN0b20gdmFsdWUgc2V0IGFuZCBzaG93RXhjZWVkZWRUZXh0PWZhbHNlIGNhc2UsIG9uIGFueSBrZXkgcHJlc3MsIHJlbW92ZSBleGNlc3MgY2hhcmFjdGVyc1xuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBleGNlc3MgY2hhcmFjdGVyc1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5zdWJzdHJpbmcoMCwgdGhpcy5tYXhMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTsgLy8gc2luY2UgdmFsdWUgaXMgbm93IGNoYW5nZWQsIGl0IGlzIG5vIGxvbmdlciBjdXN0b20gc2V0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IHRoZSB1cGRhdGVkIHN0YXRlIHdoZW4gY2hhcmFjdGVyIGNvdW50IGJyZWFjaGVzIGBtYXhMZW5ndGhgXG4gICAgICovXG4gICAgZ2V0VXBkYXRlZFN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5fZ2V0Q29udGVudExlbmd0aCgpID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzVGV4dEV4Y2VlZGVkID0gdHJ1ZTsgLy8gc2V0IGZsYWcgZm9yIGVycm9yIG1lc3NhZ2UgdG8gYWxzbyBjaGFuZ2UgYWNjb3JkaW5nbHlcbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5leGNlc3NUZXh0O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc1RleHRFeGNlZWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9IHRoaXMucmVtYWluaW5nVGV4dDtcblxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTsgLy8gcmV0dXJuIGFueSBvdGhlciBlcnJvcnMgZm91bmQgYnkgcGFyZW50IGZvcm0gZmllbGRcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBOYXRpdmUgZWxlbWVudCAgKi9cbiAgICBnZXQgX3RhcmdldEVsZW1lbnQoKTogSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGdldCB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0YXJlYSBjb250ZW50ICovXG4gICAgcHJpdmF0ZSBfZ2V0Q29udGVudExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgY29udGVudExlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGggPSB0aGlzLl90YXJnZXRFbGVtZW50LnZhbHVlLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgY29udGVudExlbmd0aCA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZW50TGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGdldCB0aGUgdG90YWwgaGVpZ2h0IGluY2x1ZGluZyBib3JkZXJzIGFuZCBzY3JvbGwgaGVpZ2h0ICovXG4gICAgcHJpdmF0ZSBfZ2V0VGV4dGFyZWFUb3RhbEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnRcbiAgICAgICAgY29uc3QgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl90YXJnZXRFbGVtZW50KTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBoZWlnaHRcbiAgICAgICAgY29uc3QgaGVpZ2h0ID1cbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci10b3Atd2lkdGgnKSwgMTApICtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICtcbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1ib3R0b20td2lkdGgnKSwgMTApO1xuXG4gICAgICAgIHJldHVybiBoZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gc2V0IGluaXRpYWwgbWF4IGhlaWdodCAqKi9cbiAgICBwcml2YXRlIF9zZXRNYXhIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcgJiYgdGhpcy5fdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZ01heExpbmVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLmdyb3dpbmdNYXhMaW5lcyAqIHRoaXMuZ2V0VGV4dGFyZWFMaW5lSGVpZ2h0KCkgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3dpbmdNYXhMaW5lcykge1xuICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZS4gcm93cyBhdHRyaWJ1dGUgdGFrZXMgY2FyZS5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dGV4dGFyZWFcbiAgICAjaW5wdXRFbGVtZW50UmVmXG4gICAgZmQtZm9ybS1jb250cm9sXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpZCArICctY291bnRlcidcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5yb3dzXT1cImdyb3dpbmcgPyAyIDogaGVpZ2h0ID8gMiA6IGdyb3dpbmdNYXhMaW5lc1wiXG4gICAgW2F0dHIuY29sc109XCJjb2xzXCJcbiAgICBbYXR0ci53cmFwXT1cIndyYXBUeXBlXCJcbiAgICBbYXR0ci5tYXhsZW5ndGhdPVwiIXNob3dFeGNlZWRlZFRleHQgPyBtYXhMZW5ndGggOiBudWxsXCJcbiAgICBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seSA/IHRydWUgOiBudWxsXCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbc3RhdGVdPVwiZ2V0VXBkYXRlZFN0YXRlKClcIlxuICAgIChwYXN0ZSk9XCJoYW5kbGVQYXN0ZUludGVyYWN0aW9uKClcIlxuICAgIChibHVyKT1cIl9vbkZvY3VzQ2hhbmdlZChmYWxzZSlcIlxuICAgIChmb2N1cyk9XCJfb25Gb2N1c0NoYW5nZWQodHJ1ZSlcIlxuPjwvdGV4dGFyZWE+XG5cbjwhLS0gSUNVIHJlY29tbWVuZHMgZnVsbCB0ZXh0IGluIGZvcm1hdCAtLT5cbjxkaXZcbiAgICBjbGFzcz1cImZkLXRleHRhcmVhLWNvdW50ZXJcIlxuICAgICpuZ0lmPVwic2hvd0V4Y2VlZGVkVGV4dFwiXG4gICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICBhcmlhLWF0b21pYz1cInRydWVcIlxuICAgIFthdHRyLmlkXT1cImlkICsgJy1jb3VudGVyJ1wiXG4gICAgI2NvdW50ZXJcbj5cbiAgICA8IS0tIHJlbmRlciBzcGFjZXMgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIHZhbHVlIHdoaWxlIHRyYW5zbGF0aW9uIHN0cmluZyBpcyBsb2FkaW5nIGluIG9yZGVyIHRvIGF2b2lkIGNvbnRlbnQganVtcHMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9PT0gJ2V4Y2Vzcyc7IGVsc2UgY2hhcmFjdGVyc1JlbWFpbmluZ1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJcbiAgICAgICAgICAgICAgICAoZXhjZWVkZWRDaGFyQ291bnQgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRTaW5ndWxhcidcbiAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRQbHVyYWwnXG4gICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlIDogeyBjb3VudDogZXhjZWVkZWRDaGFyQ291bnQgfSA6ICcmbmJzcDsmbmJzcDsnXG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2hhcmFjdGVyc1JlbWFpbmluZz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiXG4gICAgICAgICAgICAgICAgKGV4Y2VlZGVkQ2hhckNvdW50ID09PSAxXG4gICAgICAgICAgICAgICAgICAgID8gJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzUmVtYWluaW5nU2luZ3VsYXInXG4gICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzUmVtYWluaW5nUGx1cmFsJ1xuICAgICAgICAgICAgICAgICkgfCBmZFRyYW5zbGF0ZSA6IHsgY291bnQ6IGV4Y2VlZGVkQ2hhckNvdW50IH0gOiAnJm5ic3A7Jm5ic3A7J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RixPQUFPLEVBQUUsT0FBTyxFQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FB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aUJOLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLFNBQVM7Z0JBbUxwQixlQUFlO3NCQURkLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkFDS1NQQUNFLCBERUxFVEUgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBLZXlVdGlsLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZvcm1Db250cm9sQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7IEJhc2VJbnB1dCwgUGxhdGZvcm1Gb3JtRmllbGQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IFRleHRBcmVhQ29uZmlnIH0gZnJvbSAnLi90ZXh0LWFyZWEuY29uZmlnJztcblxuY29uc3QgVkFMSURfV1JBUF9UWVBFUyA9IFsnaGFyZCcsICdzb2Z0JywgJ29mZiddO1xuXG5leHBvcnQgdHlwZSBXcmFwVHlwZSA9ICdoYXJkJyB8ICdzb2Z0JyB8ICdvZmYnO1xuXG4vKipcbiAqIFRleHRhcmVhIGZpZWxkIGltcGxlbWVudGF0aW9uIHRoYXQgaXMgY29tcGxpYW50IHdpdGggUGxhdGZvcm0ncyBGb3JtR3JvdXAvRm9ybUZpZWxkIGRlc2lnblxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGV4dGFyZWEnLFxuICAgIHRlbXBsYXRlVXJsOiAndGV4dC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsndGV4dC1hcmVhLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfRk9STV9GSUVMRF9DT05UUk9MLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRleHRBcmVhQ29tcG9uZW50LFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybUNvbnRyb2xDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBOZ0lmLCBGZFRyYW5zbGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRleHRBcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVpZ2h0IHRvIHdoaWNoIHRoZSB0ZXh0YXJlYSB3aWxsIGdyb3cgd2hlbiBgZ3Jvd2luZ2AgaXMgc2V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGVpZ2h0OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiByb3dzIHRoYXQgd2lsbCBiZSB2aXNpYmxlIHdoZW4gYGdyb3dpbmdgIGlzIHNldC5cbiAgICAgKiBJZiBib3RoIGBncm93aW5nTWF4TGluZXNgIGFuZCBgaGVpZ2h0YCBhcmUgcHJvdmlkZWQsIGBoZWlnaHRgIHZhbHVlIHRha2VzIHByZWNlZGVuY2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBncm93aW5nTWF4TGluZXM6IE51bGxhYmxlPG51bWJlcj47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dGFyZWEgYGNvbHNgIGF0dHJpYnV0ZSB3cmFwcGVkLSB0aGUgbnVtYmVyIG9mIGxldHRlcnMgdmlzaWJsZSBwZXIgbGluZS5cbiAgICAgKiBJZiB3aWR0aCBpcyBzZXQgdG8gYXV0bywgdGhpcyBhdHRyaWJ1dGUgaGFzIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHM6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0YXJlYSBgd3JhcGAgYXR0cmlidXRlIC0gY2FuIGJlIG9uZSBvZiB0aHJlZTogJ29mZicsICdoYXJkJyBvciAnc29mdCcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwVHlwZTogV3JhcFR5cGUgPSAnc29mdCc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0ZXh0YXJlYSBpcyByZWFkb25seVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWxsb3dlZCB0byBlbnRlci5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgZmFsc2UsIGBtYXhMZW5ndGhgIGhhcyBuYXRpdmUgdGV4dGFyZWEncyBiZWhhdmlvciBvZiBkaXNhbGxvd2luZyB0eXBpbmcgYmV5b25kIGBtYXhMZW5ndGhgLlxuICAgICAqIElmIGBzaG93RXhjZWVkZWRUZXh0YCBpcyB0cnVlLCB1c2VyIGlzIGFsbG93ZWQgdG8gdHlwZSBiZXlvbmQgYG1heExlbmd0aGAsIGJ1dCBlcnJvciBzdGF0ZXMgYW5kIGNvdW50ZXIgbWVzc2FnZXMgc2hvd2luZ1xuICAgICAqIHRoZSBleGNlZWRlZCBjb3VudCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhMZW5ndGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgY291bnRlciBtZXNzYWdlIHNob3VsZCBiZSBzaG93bi5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgZmFsc2UsIG5vIHN0YXRlIGNoYW5nZXMgb3IgZXJyb3IgbWVzc2FnZXMgYXJlIHNob3duLiBVc2VyIGlzIHNpbXBseSBub3QgYWxsb3dlZCB0byB0eXBlXG4gICAgICogYmV5b25kIHRoZSBgbWF4TGVuZ3RoYCBjaGFyYWN0ZXJzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0V4Y2VlZGVkVGV4dCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGlzIHRleHRhcmVhIGNhbiBncm93LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ3Jvd2luZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRleHRhcmVhJ3MgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gd2hlbiBjdXN0b20gdmFsdWUgbm90IHNldCwgd2Ugc2hvdWxkIHNldC9yZXNldCBjb3VudGVyIHRvIG1heGxlbmd0aCB2YWx1ZSB3aGVuIGl0IGJlY29tZXMgdW5kZWZpbmVkXG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5tYXhMZW5ndGggPyB0aGlzLm1heExlbmd0aCA6IDA7XG4gICAgICAgICAgICAvLyByZXNldCBzdGF0ZSBieSByZXNldHRpbmcgdmFsdWVcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKCcnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdjb3VudGVyJylcbiAgICBfdGV4dGFyZWFDb3VudGVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhc1RleHRFeGNlZWRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gZXhjZXNzIGNoYXJhY3RlciBjb3VudCAqL1xuICAgIGV4Y2VlZGVkQ2hhckNvdW50ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuIGEgc3RyaW5nIHBsYWNlaG9sZGVyIHRoYXQgdG9nZ2xlcyBiZXR3ZWVuICdyZW1haW5pbmcnIGFuZCAnZXhjZXNzJyBmb3IgdGhlIHNlbGVjdCBJQ1UgZXhwcmVzc2lvbiAqL1xuICAgIGNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9ICdyZW1haW5pbmcnO1xuXG4gICAgLyoqIEBoaWRkZW4gZmxhZyB0byBjaGVjayBpZiB0aGVyZSBpcyBhbiBpbml0aWFsIHZhbHVlIHNldCAqL1xuICAgIGlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgLyoqIHRvIGtlZXAgdHJhY2sgb2YgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHRhcmVhICovXG4gICAgcHJpdmF0ZSBfdGV4dEFyZWFDaGFyQ291bnQgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1Bhc3RlZCA9IGZhbHNlO1xuXG4gICAgLyoqIGZvciBpMThuIGNvdW50ZXIgbWVzc2FnZSB0cmFuc2xhdGlvbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVtYWluaW5nVGV4dCA9ICdyZW1haW5pbmcnO1xuICAgIC8qKiBmb3IgaTE4biBjb3VudGVyIG1lc3NhZ2UgdHJhbnNsYXRpb24gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4Y2Vzc1RleHQgPSAnZXhjZXNzJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAc2VlIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbC5leHRyYUNvbnRlbnRIZWlnaHRQeFxuICAgICAqL1xuICAgIGdldCBleHRyYUNvbnRlbnRIZWlnaHRQeCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dGFyZWFDb3VudGVyPy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9zaG91bGRUcmFja1RleHRMaW1pdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4TGVuZ3RoID4gMCAmJiAhdGhpcy5zaG93RXhjZWVkZWRUZXh0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBwcm90ZWN0ZWQgX3RleHRBcmVhQ29uZmlnOiBUZXh0QXJlYUNvbmZpZ1xuICAgICkge1xuICAgICAgICBzdXBlcihjZCwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndyYXBUeXBlIHx8IFZBTElEX1dSQVBfVFlQRVMuaW5kZXhPZih0aGlzLndyYXBUeXBlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGV4dGFyZWEgd3JhcCB0eXBlICR7dGhpcy53cmFwVHlwZX0gaXMgbm90IHN1cHBvcnRlZGApO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIG5vdCBjdXN0b20gc2V0LCBzZXQgY291bnRlciB0byBtYXggbGVuZ3RoIHZhbHVlLCBlbHNlIGl0IGNhbGN1bGF0ZXMgcmVtYWluaW5nL2V4Y2VlZGVkIGNoYXJhY3RlcnMuXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoIHx8IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHNldCBtYXggaGVpZ2h0XG4gICAgICAgIHRoaXMuX3NldE1heEhlaWdodCgpO1xuXG4gICAgICAgIC8vIGRvbid0IHNldCBhbnkgZXJyb3Igc3RhdGUgaWYgd2UgYXJlIG5vdCBzaG93aW5nIGNvdW50ZXIgbWVzc2FnZVxuICAgICAgICBpZiAoIXRoaXMuX3Nob3VsZFRyYWNrVGV4dExpbWl0KSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIC8vIHdoZW4gdmFsdWUgaXMgY3VzdG9tIHNldChpbml0aWFsIHZhbHVlIGlzIHByZXNlbnQpLCB0aGUgaGVpZ2h0cyBkb24ndCBnZXRcbiAgICAgICAgLy8gc2V0IHRvIHNob3cgdGhlIGZ1bGwgdGV4dCBpbiB0aGUgbmdBZnRlclZpZXdJbml0IGltbWVkaWF0ZWx5LiB0aGVyZWZvcmUsIHdlIGNhbGwgYXV0b0dyb3dUZXh0QXJlYSBpblxuICAgICAgICAvLyBuZ0FmdGVyVmlld0NoZWNrZWQgYW5kIGRldGVjdCBjaGFuZ2VzIGFnYWluLlxuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmlzVmFsdWVDdXN0b21TZXQpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b0dyb3dUZXh0QXJlYSgpOyAvLyBpZiBhcHBsaWNhYmxlLCBncm93IHRoZSB0ZXh0YXJlYSB3aGVuIHZhbHVlIGlzIGN1c3RvbSBzZXRcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3RleHRhcmVhOiBuZ0FmdGVyVmlld0NoZWNrZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiB3cml0ZSB2YWx1ZSBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSA/PyAnJyk7XG4gICAgICAgIHRoaXMudXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd0ZXh0YXJlYTogd3JpdGVWYWx1ZScpO1xuICAgIH1cblxuICAgIC8qKiB1cGRhdGUgdGhlIGNvdW50ZXIgbWVzc2FnZSBhbmQgcmVsYXRlZCBpbnRlcmFjdGlvbnMgKi9cbiAgICB1cGRhdGVDb3VudGVySW50ZXJhY3Rpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA9IHRoaXMudmFsdWU/Lmxlbmd0aCA/PyAwO1xuXG4gICAgICAgIGlmICh0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgLy8gbmV3bHkgYWRkZWQgdG8gYXZvaWQgdW5uZWNlc3NhcnkgaXRlcmF0aW9uLCByZW1vdmUgaWYgaXNzdWUgZm91bmRcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVMZW5ndGhPbkN1c3RvbVNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIGlmIGV4Y2VlZGVkIG1heGxlbmd0aCB3aGVuIHNldCBhcyBhIHZhbHVlIGluIGNvZGUsIGhpZ2hsaWdodCB0aGUgZXhjZWVkZWQgdGV4dC4gKi9cbiAgICB2YWxpZGF0ZUxlbmd0aE9uQ3VzdG9tU2V0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzUGFzdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UodGhpcy5tYXhMZW5ndGgsIHRoaXMuX3RleHRBcmVhQ2hhckNvdW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSB0aGlzLmV4Y2Vzc1RleHQ7XG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgLSB0aGlzLm1heExlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5yZW1haW5pbmdUZXh0O1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoIC0gdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pc1Bhc3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBoYW5kbGUgZXhjZWVkZWQgbWF4bGVuZ3RoIGNhc2Ugd2hlbiB0ZXh0IGlzIHBhc3RlZCAqL1xuICAgIGhhbmRsZVBhc3RlSW50ZXJhY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzUGFzdGVkID0gdHJ1ZTtcblxuICAgICAgICAvLyBXcmFwcGVkIGluIHRpbWVvdXQgdG8gbWFrZSBzZWxlY3RpbmcgcmFuZ2Ugd29ya2luZ1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpKTtcbiAgICB9XG5cbiAgICAvKiogaGFuZGxlIGF1dG8gZ3Jvd2luZyBvZiB0ZXh0YXJlYSAqL1xuICAgIGF1dG9Hcm93VGV4dEFyZWEoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJ2luaGVyaXQnO1xuICAgICAgICAgICAgY29uc3QgdGV4dGFyZWFUb3RhbEhlaWdodCA9IHRoaXMuX2dldFRleHRhcmVhVG90YWxIZWlnaHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHBhcnNlSW50KHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0IGFzIHN0cmluZywgMTApO1xuICAgICAgICAgICAgaWYgKG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGlmICh0ZXh0YXJlYVRvdGFsSGVpZ2h0IDw9IG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRleHRhcmVhVG90YWxIZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gbWF4SGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbm8gYm91bmQgbWF4IGhlaWdodCwga2VlcCBncm93aW5nXG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0ZXh0YXJlYVRvdGFsSGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBsaW5lIGhlaWdodCBvZiB0ZXh0YXJlYVxuICAgICAqL1xuICAgIGdldFRleHRhcmVhTGluZUhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnRcbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fdGFyZ2V0RWxlbWVudCk7XG5cbiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgaGVpZ2h0XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQnKSwgMTApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAyMDsgLy8gZGVmYXVsdCBsaW5lIGhlaWdodCBpZiBub3RoaW5nIGlzIGRlZmluZWRcbiAgICB9XG5cbiAgICAvKiogd2hlbiBiYWNrcHJlc3Mgb3IgZGVsZXRlIGtleSBpcyBwcmVzc2VkIHdoZW4gc2hvd0V4Y2VlZGVkVGV4dCBmaWVsZCBpcyBub3Qgc2V0LCBzaW1wbHkgcmVtb3ZlIGV4Y2VzcyBjaGFyYWN0ZXJzLFxuICAgIC8qIGVsc2UgaGFuZGxlIGF1dG9ncm93IGNhc2VcbiAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVCYWNrUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgbm90IHNob3dpbmcgZXhjZWVkZWQgdGV4dCBtZXNzYWdlL2ludGVyYWN0aW9ucyBvciBncm93aW5nLCBhbmQgY3VzdG9tIHZhbHVlIHNldFxuICAgICAgICBpZiAodGhpcy5ncm93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9Hcm93VGV4dEFyZWEoKTtcbiAgICAgICAgICAgIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCA9IGZhbHNlOyAvLyBzZXQgaXQgdG8gZmFsc2UgZmlyc3QgdGltZSBpdCBjb21lcyBoZXJlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFRyYWNrVGV4dExpbWl0ICYmIEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbREVMRVRFLCBCQUNLU1BBQ0VdKSkge1xuICAgICAgICAgICAgLy8gZm9yIHRoZSBjdXN0b20gdmFsdWUgc2V0IGFuZCBzaG93RXhjZWVkZWRUZXh0PWZhbHNlIGNhc2UsIG9uIGFueSBrZXkgcHJlc3MsIHJlbW92ZSBleGNlc3MgY2hhcmFjdGVyc1xuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBleGNlc3MgY2hhcmFjdGVyc1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5zdWJzdHJpbmcoMCwgdGhpcy5tYXhMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTsgLy8gc2luY2UgdmFsdWUgaXMgbm93IGNoYW5nZWQsIGl0IGlzIG5vIGxvbmdlciBjdXN0b20gc2V0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IHRoZSB1cGRhdGVkIHN0YXRlIHdoZW4gY2hhcmFjdGVyIGNvdW50IGJyZWFjaGVzIGBtYXhMZW5ndGhgXG4gICAgICovXG4gICAgZ2V0VXBkYXRlZFN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5fZ2V0Q29udGVudExlbmd0aCgpID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzVGV4dEV4Y2VlZGVkID0gdHJ1ZTsgLy8gc2V0IGZsYWcgZm9yIGVycm9yIG1lc3NhZ2UgdG8gYWxzbyBjaGFuZ2UgYWNjb3JkaW5nbHlcbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5leGNlc3NUZXh0O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc1RleHRFeGNlZWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9IHRoaXMucmVtYWluaW5nVGV4dDtcblxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTsgLy8gcmV0dXJuIGFueSBvdGhlciBlcnJvcnMgZm91bmQgYnkgcGFyZW50IGZvcm0gZmllbGRcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBOYXRpdmUgZWxlbWVudCAgKi9cbiAgICBnZXQgX3RhcmdldEVsZW1lbnQoKTogSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGdldCB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0YXJlYSBjb250ZW50ICovXG4gICAgcHJpdmF0ZSBfZ2V0Q29udGVudExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgY29udGVudExlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGggPSB0aGlzLl90YXJnZXRFbGVtZW50LnZhbHVlLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgY29udGVudExlbmd0aCA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZW50TGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGdldCB0aGUgdG90YWwgaGVpZ2h0IGluY2x1ZGluZyBib3JkZXJzIGFuZCBzY3JvbGwgaGVpZ2h0ICovXG4gICAgcHJpdmF0ZSBfZ2V0VGV4dGFyZWFUb3RhbEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnRcbiAgICAgICAgY29uc3QgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl90YXJnZXRFbGVtZW50KTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBoZWlnaHRcbiAgICAgICAgY29uc3QgaGVpZ2h0ID1cbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci10b3Atd2lkdGgnKSwgMTApICtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICtcbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1ib3R0b20td2lkdGgnKSwgMTApO1xuXG4gICAgICAgIHJldHVybiBoZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gc2V0IGluaXRpYWwgbWF4IGhlaWdodCAqKi9cbiAgICBwcml2YXRlIF9zZXRNYXhIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcgJiYgdGhpcy5fdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZ01heExpbmVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLmdyb3dpbmdNYXhMaW5lcyAqIHRoaXMuZ2V0VGV4dGFyZWFMaW5lSGVpZ2h0KCkgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3dpbmdNYXhMaW5lcykge1xuICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZS4gcm93cyBhdHRyaWJ1dGUgdGFrZXMgY2FyZS5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dGV4dGFyZWFcbiAgICAjaW5wdXRFbGVtZW50UmVmXG4gICAgZmQtZm9ybS1jb250cm9sXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpZCArICctY291bnRlcidcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5yb3dzXT1cImdyb3dpbmcgPyAyIDogaGVpZ2h0ID8gMiA6IGdyb3dpbmdNYXhMaW5lc1wiXG4gICAgW2F0dHIuY29sc109XCJjb2xzXCJcbiAgICBbYXR0ci53cmFwXT1cIndyYXBUeXBlXCJcbiAgICBbYXR0ci5tYXhsZW5ndGhdPVwiIXNob3dFeGNlZWRlZFRleHQgPyBtYXhMZW5ndGggOiBudWxsXCJcbiAgICBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seSA/IHRydWUgOiBudWxsXCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbc3RhdGVdPVwiZ2V0VXBkYXRlZFN0YXRlKClcIlxuICAgIChwYXN0ZSk9XCJoYW5kbGVQYXN0ZUludGVyYWN0aW9uKClcIlxuICAgIChibHVyKT1cIl9vbkZvY3VzQ2hhbmdlZChmYWxzZSlcIlxuICAgIChmb2N1cyk9XCJfb25Gb2N1c0NoYW5nZWQodHJ1ZSlcIlxuPjwvdGV4dGFyZWE+XG5cbjwhLS0gSUNVIHJlY29tbWVuZHMgZnVsbCB0ZXh0IGluIGZvcm1hdCAtLT5cbjxkaXZcbiAgICBjbGFzcz1cImZkLXRleHRhcmVhLWNvdW50ZXJcIlxuICAgICpuZ0lmPVwic2hvd0V4Y2VlZGVkVGV4dFwiXG4gICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICBhcmlhLWF0b21pYz1cInRydWVcIlxuICAgIFthdHRyLmlkXT1cImlkICsgJy1jb3VudGVyJ1wiXG4gICAgI2NvdW50ZXJcbj5cbiAgICA8IS0tIHJlbmRlciBzcGFjZXMgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIHZhbHVlIHdoaWxlIHRyYW5zbGF0aW9uIHN0cmluZyBpcyBsb2FkaW5nIGluIG9yZGVyIHRvIGF2b2lkIGNvbnRlbnQganVtcHMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9PT0gJ2V4Y2Vzcyc7IGVsc2UgY2hhcmFjdGVyc1JlbWFpbmluZ1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJcbiAgICAgICAgICAgICAgICAoZXhjZWVkZWRDaGFyQ291bnQgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRTaW5ndWxhcidcbiAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRQbHVyYWwnXG4gICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlIDogeyBjb3VudDogZXhjZWVkZWRDaGFyQ291bnQgfSA6ICcmbmJzcDsmbmJzcDsnXG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2hhcmFjdGVyc1JlbWFpbmluZz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiXG4gICAgICAgICAgICAgICAgKGV4Y2VlZGVkQ2hhckNvdW50ID09PSAxXG4gICAgICAgICAgICAgICAgICAgID8gJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzUmVtYWluaW5nU2luZ3VsYXInXG4gICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzUmVtYWluaW5nUGx1cmFsJ1xuICAgICAgICAgICAgICAgICkgfCBmZFRyYW5zbGF0ZSA6IHsgY291bnQ6IGV4Y2VlZGVkQ2hhckNvdW50IH0gOiAnJm5ic3A7Jm5ic3A7J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -1,13 +1,12 @@
1
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Host, Inject, Input, Optional, Output, Self, SkipSelf, ViewChild } from '@angular/core';
2
- import { ControlContainer, NgControl, NgForm, FormsModule } from '@angular/forms';
2
+ import { ControlContainer, FormsModule, NgControl, NgForm } from '@angular/forms';
3
3
  import { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';
4
- import { TimePickerComponent, TimePickerModule } from '@fundamental-ngx/core/time-picker';
5
- import { BaseInput, PlatformFormFieldControl, PlatformFormField } from '@fundamental-ngx/platform/shared';
6
4
  import { warnOnce } from '@fundamental-ngx/cdk/utils';
5
+ import { TimePickerComponent } from '@fundamental-ngx/core/time-picker';
6
+ import { BaseInput, PlatformFormField, PlatformFormFieldControl } from '@fundamental-ngx/platform/shared';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/forms";
9
- import * as i2 from "@fundamental-ngx/core/time-picker";
10
- import * as i3 from "@fundamental-ngx/platform/shared";
9
+ import * as i2 from "@fundamental-ngx/platform/shared";
11
10
  export class PlatformTimePickerComponent extends BaseInput {
12
11
  /**
13
12
  * @Input date time object representation
@@ -105,11 +104,11 @@ export class PlatformTimePickerComponent extends BaseInput {
105
104
  this.onTouched();
106
105
  }
107
106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformTimePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.ControlContainer, optional: true, skipSelf: true }, { token: i1.NgForm, optional: true, skipSelf: true }, { token: FD_FORM_FIELD, host: true, optional: true, skipSelf: true }, { token: FD_FORM_FIELD_CONTROL, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: PlatformTimePickerComponent, isStandalone: true, selector: "fdp-time-picker", inputs: { value: "value", time: "time", spinnerButtons: "spinnerButtons", meridian: "meridian", displaySeconds: "displaySeconds", displayMinutes: "displayMinutes", displayHours: "displayHours", placeholder: "placeholder", timePickerInputLabel: "timePickerInputLabel", allowNull: "allowNull", tablet: "tablet", placement: "placement", state: "state", buttonFocusable: "buttonFocusable", useValidation: "useValidation", keepTwoDigitsTime: "keepTwoDigitsTime", displayFormat: "displayFormat", parseFormat: "parseFormat" }, outputs: { isOpenChange: "isOpenChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformTimePickerComponent, multi: true }], viewQueries: [{ propertyName: "timePickerComponent", first: true, predicate: TimePickerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-time-picker\n [attr.aria-label]=\"ariaLabel\"\n [attr.ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [inputId]=\"id\"\n [required]=\"required\"\n [time]=\"time\"\n [meridian]=\"meridian\"\n [disabled]=\"disabled\"\n [displayFormat]=\"displayFormat\"\n [spinnerButtons]=\"spinnerButtons\"\n [displaySeconds]=\"displaySeconds\"\n [displayMinutes]=\"displayMinutes\"\n [displayHours]=\"displayHours\"\n [placeholder]=\"placeholder\"\n [timePickerInputLabel]=\"timePickerInputLabel\"\n [allowNull]=\"allowNull\"\n [tablet]=\"tablet\"\n [placement]=\"placement\"\n [parseFormat]=\"parseFormat\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [useValidation]=\"useValidation\"\n [keepTwoDigitsTime]=\"keepTwoDigitsTime\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (ngModelChange)=\"handleTimeChange($event)\"\n [(ngModel)]=\"value\"\n>\n <ng-content></ng-content>\n</fd-time-picker>\n", dependencies: [{ kind: "ngmodule", type: TimePickerModule }, { kind: "component", type: i2.TimePickerComponent, selector: "fd-time-picker", inputs: ["time", "inputId", "disabled", "required", "spinnerButtons", "meridian", "displaySeconds", "displayMinutes", "displayHours", "placeholder", "timePickerInputLabel", "timePickerButtonLabel", "ariaLabelledBy", "allowNull", "tablet", "message", "messageType", "messageTriggers", "placement", "useValidation", "state", "buttonFocusable", "keepTwoDigitsTime", "displayFormat", "parseFormat", "valueStateSuccessMessage", "valueStateInformationMessage", "valueStateWarningMessage", "valueStateErrorMessage"], outputs: ["isOpenChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: PlatformTimePickerComponent, isStandalone: true, selector: "fdp-time-picker", inputs: { value: "value", time: "time", spinnerButtons: "spinnerButtons", meridian: "meridian", displaySeconds: "displaySeconds", displayMinutes: "displayMinutes", displayHours: "displayHours", placeholder: "placeholder", timePickerInputLabel: "timePickerInputLabel", allowNull: "allowNull", tablet: "tablet", placement: "placement", state: "state", buttonFocusable: "buttonFocusable", useValidation: "useValidation", keepTwoDigitsTime: "keepTwoDigitsTime", displayFormat: "displayFormat", parseFormat: "parseFormat" }, outputs: { isOpenChange: "isOpenChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformTimePickerComponent, multi: true }], viewQueries: [{ propertyName: "timePickerComponent", first: true, predicate: TimePickerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-time-picker\n [attr.aria-label]=\"ariaLabel\"\n [attr.ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [inputId]=\"id\"\n [required]=\"required\"\n [time]=\"time\"\n [meridian]=\"meridian\"\n [disabled]=\"disabled\"\n [displayFormat]=\"displayFormat\"\n [spinnerButtons]=\"spinnerButtons\"\n [displaySeconds]=\"displaySeconds\"\n [displayMinutes]=\"displayMinutes\"\n [displayHours]=\"displayHours\"\n [placeholder]=\"placeholder\"\n [timePickerInputLabel]=\"timePickerInputLabel\"\n [allowNull]=\"allowNull\"\n [tablet]=\"tablet\"\n [placement]=\"placement\"\n [parseFormat]=\"parseFormat\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [useValidation]=\"useValidation\"\n [keepTwoDigitsTime]=\"keepTwoDigitsTime\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (ngModelChange)=\"handleTimeChange($event)\"\n [(ngModel)]=\"value\"\n>\n <ng-content></ng-content>\n</fd-time-picker>\n", dependencies: [{ kind: "component", type: TimePickerComponent, selector: "fd-time-picker", inputs: ["time", "inputId", "disabled", "required", "spinnerButtons", "meridian", "displaySeconds", "displayMinutes", "displayHours", "placeholder", "timePickerInputLabel", "timePickerButtonLabel", "ariaLabelledBy", "allowNull", "tablet", "message", "messageType", "messageTriggers", "placement", "useValidation", "state", "buttonFocusable", "keepTwoDigitsTime", "displayFormat", "parseFormat", "valueStateSuccessMessage", "valueStateInformationMessage", "valueStateWarningMessage", "valueStateErrorMessage"], outputs: ["isOpenChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
109
108
  }
110
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformTimePickerComponent, decorators: [{
111
110
  type: Component,
112
- args: [{ selector: 'fdp-time-picker', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformTimePickerComponent, multi: true }], standalone: true, imports: [TimePickerModule, FormsModule], template: "<fd-time-picker\n [attr.aria-label]=\"ariaLabel\"\n [attr.ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [inputId]=\"id\"\n [required]=\"required\"\n [time]=\"time\"\n [meridian]=\"meridian\"\n [disabled]=\"disabled\"\n [displayFormat]=\"displayFormat\"\n [spinnerButtons]=\"spinnerButtons\"\n [displaySeconds]=\"displaySeconds\"\n [displayMinutes]=\"displayMinutes\"\n [displayHours]=\"displayHours\"\n [placeholder]=\"placeholder\"\n [timePickerInputLabel]=\"timePickerInputLabel\"\n [allowNull]=\"allowNull\"\n [tablet]=\"tablet\"\n [placement]=\"placement\"\n [parseFormat]=\"parseFormat\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [useValidation]=\"useValidation\"\n [keepTwoDigitsTime]=\"keepTwoDigitsTime\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (ngModelChange)=\"handleTimeChange($event)\"\n [(ngModel)]=\"value\"\n>\n <ng-content></ng-content>\n</fd-time-picker>\n" }]
111
+ args: [{ selector: 'fdp-time-picker', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformTimePickerComponent, multi: true }], standalone: true, imports: [TimePickerComponent, FormsModule], template: "<fd-time-picker\n [attr.aria-label]=\"ariaLabel\"\n [attr.ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [inputId]=\"id\"\n [required]=\"required\"\n [time]=\"time\"\n [meridian]=\"meridian\"\n [disabled]=\"disabled\"\n [displayFormat]=\"displayFormat\"\n [spinnerButtons]=\"spinnerButtons\"\n [displaySeconds]=\"displaySeconds\"\n [displayMinutes]=\"displayMinutes\"\n [displayHours]=\"displayHours\"\n [placeholder]=\"placeholder\"\n [timePickerInputLabel]=\"timePickerInputLabel\"\n [allowNull]=\"allowNull\"\n [tablet]=\"tablet\"\n [placement]=\"placement\"\n [parseFormat]=\"parseFormat\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [useValidation]=\"useValidation\"\n [keepTwoDigitsTime]=\"keepTwoDigitsTime\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (ngModelChange)=\"handleTimeChange($event)\"\n [(ngModel)]=\"value\"\n>\n <ng-content></ng-content>\n</fd-time-picker>\n" }]
113
112
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
114
113
  type: Optional
115
114
  }, {
@@ -122,7 +121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
122
121
  type: Optional
123
122
  }, {
124
123
  type: SkipSelf
125
- }] }, { type: i3.PlatformFormField, decorators: [{
124
+ }] }, { type: i2.PlatformFormField, decorators: [{
126
125
  type: Optional
127
126
  }, {
128
127
  type: SkipSelf
@@ -131,7 +130,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
131
130
  }, {
132
131
  type: Inject,
133
132
  args: [FD_FORM_FIELD]
134
- }] }, { type: i3.PlatformFormFieldControl, decorators: [{
133
+ }] }, { type: i2.PlatformFormFieldControl, decorators: [{
135
134
  type: Optional
136
135
  }, {
137
136
  type: SkipSelf
@@ -182,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
182
181
  type: ViewChild,
183
182
  args: [TimePickerComponent]
184
183
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFjLE1BQU0sNEJBQTRCLENBQUM7QUFFOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUYsT0FBTyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFVdEQsTUFBTSxPQUFPLDJCQUErQixTQUFRLFNBQVM7SUFDekQ7O09BRUc7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUFlO1FBQ3JCLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksS0FBSztRQUNMLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFB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IEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgU2tpcFNlbGYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdDb250cm9sLCBOZ0Zvcm0sIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRkRfRk9STV9GSUVMRCwgRkRfRk9STV9GSUVMRF9DT05UUk9MLCBGb3JtU3RhdGVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuXG5pbXBvcnQgeyBUaW1lUGlja2VyQ29tcG9uZW50LCBUaW1lUGlja2VyTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpbWUtcGlja2VyJztcbmltcG9ydCB7IFBsYWNlbWVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgQmFzZUlucHV0LCBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsIFBsYXRmb3JtRm9ybUZpZWxkIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXRpbWUtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRkRfRk9STV9GSUVMRF9DT05UUk9MLCB1c2VFeGlzdGluZzogUGxhdGZvcm1UaW1lUGlja2VyQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaW1lUGlja2VyTW9kdWxlLCBGb3Jtc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1UaW1lUGlja2VyQ29tcG9uZW50PEQ+IGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBJbnB1dCBkYXRlIHRpbWUgb2JqZWN0IHJlcHJlc2VudGF0aW9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIHN1cGVyLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IEQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQElucHV0IGRhdGUgdGltZSBvYmplY3QgcmVwcmVzZW50YXRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRpbWU6IEQ7XG5cbiAgICAvKiogQElucHV0IFdoZXRoZXIgdG8gc2hvdyBzcGlubmVyIGJ1dHRvbnMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNwaW5uZXJCdXR0b25zID0gdHJ1ZTtcblxuICAgIC8qKiBAZGVwcmVjYXRlZFxuICAgICAqIE1lcmlkaWFuIGlzIGRlcHJlY2F0ZWQuIFVzZSBkaXNwbGF5Rm9ybWF0IGFuZCBwYXJzZUZvcm1hdCBpbnB1dHMgb3JcbiAgICAgKiBEYXRlVGltZUZvcm1hdHMuZGlzcGxheS50aW1lSW5wdXQgYW5kIERhdGVUaW1lRm9ybWF0cy5wYXJzZS50aW1lSW5wdXQgaW5zdGVhZC5cbiAgICAgKiBASW5wdXQgV2hlbiBzZXQgdG8gZmFsc2UsIHVzZXMgdGhlIDI0IGhvdXIgY2xvY2sgKGhvdXJzIHJhbmdpbmcgZnJvbSAwIHRvIDIzKS5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGxvY2FsZSBmb3JtYXQgb3B0aW9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgbWVyaWRpYW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICAnUHJvcGVydHkgbWVyaWRpYW4gaXMgZGVwcmVjYXRlZC4nICtcbiAgICAgICAgICAgICAgICAnIFVzZSBNZXJpZGlhbiBpcyBkZXByZWNhdGVkLicgK1xuICAgICAgICAgICAgICAgICcgVXNlIGRpc3BsYXlGb3JtYXQgYW5kIHBhcnNlRm9ybWF0IGlucHV0cyBvciBEYXRlVGltZUZvcm1hdHMuZGlzcGxheS50aW1lSW5wdXQgYW5kIERhdGVUaW1lRm9ybWF0cy5wYXJzZS50aW1lSW5wdXQgaW5zdGVhZC4gaW5zdGVhZC4nXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX21lcmlkaWFuID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IG1lcmlkaWFuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWVyaWRpYW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQElucHV0IFdoZW4gc2V0IHRvIGZhbHNlLCBoaWRlcyB0aGUgaW5wdXQgZm9yIHNlY29uZHMuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBiYXNlZCBvbiB0aGUgY3VycmVudCBsb2NhbGUgZm9ybWF0IG9wdGlvblxuICAgICAqICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5U2Vjb25kczogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCBXaGVuIHNldCB0byBmYWxzZSwgaGlkZXMgdGhlIGlucHV0IGZvciBtaW51dGVzLlxuICAgICAqIERlZmF1bHQgdmFsdWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheU1pbnV0ZXM6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBASW5wdXQgV2hlbiBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBpbnB1dCBmb3IgaG91cnMuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBiYXNlZCBvbiB0aGUgY3VycmVudCBsb2NhbGUgZm9ybWF0IG9wdGlvblxuICAgICAqICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5SG91cnM6IGJvb2xlYW47XG5cbiAgICAvKiogQElucHV0IERlZmF1bHQgdGltZSBwaWNrZXIgcGxhY2Vob2xkZXIgd2hpY2ggaXMgc2V0IGRlcGVuZGFudCBvbiB0aGUgaG91cnMsIG1pbnV0ZXMgYW5kIHNlY29uZHMuXG4gICAgICogT3RoZXJ3aXNlIEl0IGNhbiBiZSBzZXQgdG8gYSBkZWZhdWx0IHZhbHVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSB0aW1lIHBpY2tlciBpbnB1dC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRpbWVQaWNrZXJJbnB1dExhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciBhIG51bGwgaW5wdXQgaXMgY29uc2lkZXJlZCB2YWxpZChzdWNjZXNzKS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93TnVsbCA9IHRydWU7XG5cbiAgICAvKiogRGVmaW5lcyBpZiB0aW1lIGNvbXBvbmVudCBzaG91bGQgYmUgdXNlZCB3aXRoIHRhYmxldCBtb2RlICovXG4gICAgQElucHV0KClcbiAgICB0YWJsZXQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqICBUaGUgcGxhY2VtZW50IG9mIHRoZSBwb3BvdmVyLiBJdCBjYW4gYmUgb25lIG9mOiB0b3AsIHRvcC1zdGFydCwgdG9wLWVuZCwgYm90dG9tLFxuICAgICAqICBib3R0b20tc3RhcnQsIGJvdHRvbS1lbmQsIHJpZ2h0LCByaWdodC1zdGFydCwgcmlnaHQtZW5kLCBsZWZ0LCBsZWZ0LXN0YXJ0LCBsZWZ0LWVuZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlbWVudDogUGxhY2VtZW50ID0gJ2JvdHRvbS1zdGFydCc7XG5cbiAgICAvKipcbiAgICAgKiAgVGhlIHN0YXRlIG9mIHRoZSBmb3JtIGNvbnRyb2wgLSBhcHBsaWVzIGNzcyBjbGFzc2VzLlxuICAgICAqICBDYW4gYmUgYHN1Y2Nlc3NgLCBgZXJyb3JgLCBgd2FybmluZ2AsIGBpbmZvcm1hdGlvbmAgb3IgYmxhbmsgZm9yIGRlZmF1bHQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc3RhdGUoc3RhdGU6IEZvcm1TdGF0ZXMgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgc3VwZXIuc3RhdGUgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgc3RhdGUoKTogRm9ybVN0YXRlcyB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVQaWNrZXJDb21wb25lbnQgJiYgdGhpcy50aW1lUGlja2VyQ29tcG9uZW50Ll9pc0ludmFsaWRUaW1lSW5wdXQpIHtcbiAgICAgICAgICAgIC8vIGlmIGFueSBvdGhlciBlcnJvciBmcm9tIGNvcmUgdGltZVBpY2tlclxuICAgICAgICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1cGVyLnN0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgQWRkT24gQnV0dG9uIHNob3VsZCBiZSBmb2N1c2FibGVcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBidXR0b25Gb2N1c2FibGUgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIHRpbWUgcGlja2VyIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdXNlVmFsaWRhdGlvbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBASW5wdXQgd2hlbiBzZXQgdG8gdHJ1ZSwgdGltZSBpbnB1dHMgd29uJ3QgYWxsb3cgdG8gaGF2ZSAxIGRpZ2l0XG4gICAgICogZm9yIGV4YW1wbGUgOSB3aWxsIGJlY29tZSAwOVxuICAgICAqIGJ1dCAxMiB3aWxsIGJlIGtlcHQgYXMgMTIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBrZWVwVHdvRGlnaXRzVGltZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRGlzcGxheSBmb3JtYXQgb3B0aW9uIHRvIGN1c3RvbWl6ZSB0aW1lIGZvcm1hdCBpbiBpbnB1dCBjb250cm9sLlxuICAgICAqIE11c3QgYmUgYSBmb3JtYXQgb3B0aW9uIHRoYXQgaXMgdW5kZXJzdGFuZGFibGUgYnkgRGF0ZXRpbWVBZGFwdGVyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGxheUZvcm1hdDogdW5rbm93bjtcblxuICAgIC8qKlxuICAgICAqIFBhcnNlIGZvcm1hdCBvcHRpb24gdG8gY3VzdG9taXplIHRpbWUgZm9ybWF0IGluIGlucHV0IGNvbnRyb2wuXG4gICAgICogTXVzdCBiZSBhIGZvcm1hdCBvcHRpb24gdGhhdCBpcyB1bmRlcnN0YW5kYWJsZSBieSBEYXRldGltZUFkYXB0ZXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwYXJzZUZvcm1hdDogdW5rbm93bjtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSBpc09wZW4gcHJvcGVydHkgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoVGltZVBpY2tlckNvbXBvbmVudClcbiAgICB0aW1lUGlja2VyQ29tcG9uZW50OiBUaW1lUGlja2VyQ29tcG9uZW50PEQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tZXJpZGlhbjogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkLCBlbGVtZW50UmVmLCBuZ0NvbnRyb2wsIGNvbnRyb2xDb250YWluZXIsIG5nRm9ybSwgZm9ybUZpZWxkLCBmb3JtQ29udHJvbCk7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCBoYW5kbGVzIGNoYW5nZXMgd2hlbiBwb3BvdmVyIGlzIG9wZW5lZCBvciBjbG9zZWQuXG4gICAgICovXG4gICAgaGFuZGxlT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9naWMgdG8gaGFuZGxlIHZhbGlkYXRpb24gZnJvbSBib3RoIHBsYXRmb3JtIGZvcm1zIGFuZCBjb3JlIGRhdGV0aWltZXBpY2tlclxuICAgICAqIEBwYXJhbSB2YWx1ZSBpbnB1dHRlZFxuICAgICAqL1xuICAgIGhhbmRsZVRpbWVDaGFuZ2UodmFsdWU6IEQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGltZVBpY2tlckNvbXBvbmVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGltZVBpY2tlckNvbXBvbmVudC5faXNJbnZhbGlkVGltZUlucHV0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICdlcnJvcic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAhdGhpcy50aW1lUGlja2VyQ29tcG9uZW50LnRpbWUgJiYgIXRoaXMuYWxsb3dOdWxsID8gJ2Vycm9yJyA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3RpbWUgcGlja2VyOiBoYW5kbGVUaW1lSW5wdXRDaGFuZ2UnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbn1cbiIsIjxmZC10aW1lLXBpY2tlclxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhTGFiZWxsZWRCeV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgW2F0dHIuYXJpYURlc2NyaWJlZEJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgW2lucHV0SWRdPVwiaWRcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW3RpbWVdPVwidGltZVwiXG4gICAgW21lcmlkaWFuXT1cIm1lcmlkaWFuXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtkaXNwbGF5Rm9ybWF0XT1cImRpc3BsYXlGb3JtYXRcIlxuICAgIFtzcGlubmVyQnV0dG9uc109XCJzcGlubmVyQnV0dG9uc1wiXG4gICAgW2Rpc3BsYXlTZWNvbmRzXT1cImRpc3BsYXlTZWNvbmRzXCJcbiAgICBbZGlzcGxheU1pbnV0ZXNdPVwiZGlzcGxheU1pbnV0ZXNcIlxuICAgIFtkaXNwbGF5SG91cnNdPVwiZGlzcGxheUhvdXJzXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFt0aW1lUGlja2VySW5wdXRMYWJlbF09XCJ0aW1lUGlja2VySW5wdXRMYWJlbFwiXG4gICAgW2FsbG93TnVsbF09XCJhbGxvd051bGxcIlxuICAgIFt0YWJsZXRdPVwidGFibGV0XCJcbiAgICBbcGxhY2VtZW50XT1cInBsYWNlbWVudFwiXG4gICAgW3BhcnNlRm9ybWF0XT1cInBhcnNlRm9ybWF0XCJcbiAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgIFtidXR0b25Gb2N1c2FibGVdPVwiYnV0dG9uRm9jdXNhYmxlXCJcbiAgICBbdXNlVmFsaWRhdGlvbl09XCJ1c2VWYWxpZGF0aW9uXCJcbiAgICBba2VlcFR3b0RpZ2l0c1RpbWVdPVwia2VlcFR3b0RpZ2l0c1RpbWVcIlxuICAgIChpc09wZW5DaGFuZ2UpPVwiaGFuZGxlT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVUaW1lQ2hhbmdlKCRldmVudClcIlxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZmQtdGltZS1waWNrZXI+XG4iXX0=
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFjLE1BQU0sNEJBQTRCLENBQUM7QUFFOUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQVUxRyxNQUFNLE9BQU8sMkJBQStCLFNBQVEsU0FBUztJQUN6RDs7T0FFRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQWU7UUFDckIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQVlEOzs7OztPQUtHO0lBQ0gsSUFDSSxRQUFRLENBQUMsS0FBYztRQUN2QixtQ0FBbUM7UUFDbkMsUUFBUSxDQUNKLGtDQUFrQztZQUM5Qiw4QkFBOEI7WUFDOUIsc0lBQXNJLENBQzdJLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFnREQ7OztPQUdHO0lBQ0gsSUFDSSxLQUFLLENBQUMsS0FBNkI7UUFDbkMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRTtZQUMxRSwwQ0FBMEM7WUFDMUMsT0FBTyxPQUFPLENBQUM7U0FDbEI7UUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQThDRCxjQUFjO0lBQ2QsWUFDSSxFQUFxQixFQUNyQixVQUFzQixFQUNGLFNBQW9CLEVBQ2hCLGdCQUFrQyxFQUNsQyxNQUFjLEVBQ2lCLFNBQTRCLEVBQ3BCLFdBQXFDO1FBRXBHLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBOUl2Riw2Q0FBNkM7UUFFN0MsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFzRHRCLHlEQUF5RDtRQUV6RCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpCLGdFQUFnRTtRQUVoRSxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWY7OztXQUdHO1FBRUgsY0FBUyxHQUFjLGNBQWMsQ0FBQztRQW1CdEM7OztXQUdHO1FBRUgsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIsaURBQWlEO1FBRWpELGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRXJCOzs7O1dBSUc7UUFFSCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFnQjFCLG1FQUFtRTtRQUUxRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFvQmhELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxJQUFhO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFRO1FBQ3JCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFO2dCQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQzthQUN4QjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQ3hGO1lBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsb0NBQW9DLENBQUMsQ0FBQztTQUNoRTtRQUNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQTVMUSwyQkFBMkIsd1BBNkpRLGFBQWEseURBQ2IscUJBQXFCO2tHQTlKeEQsMkJBQTJCLGluQkFKekIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLCtFQW9KM0YsbUJBQW1CLHVFQ2xMbEMsNC9CQThCQSw0Q0RFYyxtQkFBbUIsbWxCQUFFLFdBQVc7OzJGQUVqQywyQkFBMkI7a0JBUnZDLFNBQVM7K0JBQ0ksaUJBQWlCLG1CQUVWLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLDZCQUE2QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxjQUMxRixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLENBQUM7OzBCQTRKdEMsUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhOzswQkFDcEQsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7NENBeko3RCxLQUFLO3NCQURSLEtBQUs7Z0JBWU4sSUFBSTtzQkFESCxLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBb0JOLGNBQWM7c0JBRGIsS0FBSztnQkFRTixjQUFjO3NCQURiLEtBQUs7Z0JBUU4sWUFBWTtzQkFEWCxLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLE1BQU07c0JBREwsS0FBSztnQkFRTixTQUFTO3NCQURSLEtBQUs7Z0JBUUYsS0FBSztzQkFEUixLQUFLO2dCQWtCTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQVNOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFRTixhQUFhO3NCQURaLEtBQUs7Z0JBUU4sV0FBVztzQkFEVixLQUFLO2dCQUtHLFlBQVk7c0JBRHBCLE1BQU07Z0JBS1AsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3Jtc01vZHVsZSwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5cbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpbWUtcGlja2VyJztcbmltcG9ydCB7IEJhc2VJbnB1dCwgUGxhdGZvcm1Gb3JtRmllbGQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGltZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHVzZUV4aXN0aW5nOiBQbGF0Zm9ybVRpbWVQaWNrZXJDb21wb25lbnQsIG11bHRpOiB0cnVlIH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RpbWVQaWNrZXJDb21wb25lbnQsIEZvcm1zTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybVRpbWVQaWNrZXJDb21wb25lbnQ8RD4gZXh0ZW5kcyBCYXNlSW5wdXQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogQElucHV0IGRhdGUgdGltZSBvYmplY3QgcmVwcmVzZW50YXRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogRCB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogRCB8IG51bGwge1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBASW5wdXQgZGF0ZSB0aW1lIG9iamVjdCByZXByZXNlbnRhdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGltZTogRDtcblxuICAgIC8qKiBASW5wdXQgV2hldGhlciB0byBzaG93IHNwaW5uZXIgYnV0dG9ucyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3Bpbm5lckJ1dHRvbnMgPSB0cnVlO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkXG4gICAgICogTWVyaWRpYW4gaXMgZGVwcmVjYXRlZC4gVXNlIGRpc3BsYXlGb3JtYXQgYW5kIHBhcnNlRm9ybWF0IGlucHV0cyBvclxuICAgICAqIERhdGVUaW1lRm9ybWF0cy5kaXNwbGF5LnRpbWVJbnB1dCBhbmQgRGF0ZVRpbWVGb3JtYXRzLnBhcnNlLnRpbWVJbnB1dCBpbnN0ZWFkLlxuICAgICAqIEBJbnB1dCBXaGVuIHNldCB0byBmYWxzZSwgdXNlcyB0aGUgMjQgaG91ciBjbG9jayAoaG91cnMgcmFuZ2luZyBmcm9tIDAgdG8gMjMpLlxuICAgICAqIERlZmF1bHQgdmFsdWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlIGZvcm1hdCBvcHRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBtZXJpZGlhbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICdQcm9wZXJ0eSBtZXJpZGlhbiBpcyBkZXByZWNhdGVkLicgK1xuICAgICAgICAgICAgICAgICcgVXNlIE1lcmlkaWFuIGlzIGRlcHJlY2F0ZWQuJyArXG4gICAgICAgICAgICAgICAgJyBVc2UgZGlzcGxheUZvcm1hdCBhbmQgcGFyc2VGb3JtYXQgaW5wdXRzIG9yIERhdGVUaW1lRm9ybWF0cy5kaXNwbGF5LnRpbWVJbnB1dCBhbmQgRGF0ZVRpbWVGb3JtYXRzLnBhcnNlLnRpbWVJbnB1dCBpbnN0ZWFkLiBpbnN0ZWFkLidcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fbWVyaWRpYW4gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgbWVyaWRpYW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tZXJpZGlhbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBASW5wdXQgV2hlbiBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBpbnB1dCBmb3Igc2Vjb25kcy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGxvY2FsZSBmb3JtYXQgb3B0aW9uXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlTZWNvbmRzOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQElucHV0IFdoZW4gc2V0IHRvIGZhbHNlLCBoaWRlcyB0aGUgaW5wdXQgZm9yIG1pbnV0ZXMuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBiYXNlZCBvbiB0aGUgY3VycmVudCBsb2NhbGUgZm9ybWF0IG9wdGlvblxuICAgICAqICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5TWludXRlczogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCBXaGVuIHNldCB0byBmYWxzZSwgaGlkZXMgdGhlIGlucHV0IGZvciBob3Vycy5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGxvY2FsZSBmb3JtYXQgb3B0aW9uXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlIb3VyczogYm9vbGVhbjtcblxuICAgIC8qKiBASW5wdXQgRGVmYXVsdCB0aW1lIHBpY2tlciBwbGFjZWhvbGRlciB3aGljaCBpcyBzZXQgZGVwZW5kYW50IG9uIHRoZSBob3VycywgbWludXRlcyBhbmQgc2Vjb25kcy5cbiAgICAgKiBPdGhlcndpc2UgSXQgY2FuIGJlIHNldCB0byBhIGRlZmF1bHQgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlIHRpbWUgcGlja2VyIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGltZVBpY2tlcklucHV0TGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIGEgbnVsbCBpbnB1dCBpcyBjb25zaWRlcmVkIHZhbGlkKHN1Y2Nlc3MpLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dOdWxsID0gdHJ1ZTtcblxuICAgIC8qKiBEZWZpbmVzIGlmIHRpbWUgY29tcG9uZW50IHNob3VsZCBiZSB1c2VkIHdpdGggdGFibGV0IG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIHRhYmxldCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBwbGFjZW1lbnQgb2YgdGhlIHBvcG92ZXIuIEl0IGNhbiBiZSBvbmUgb2Y6IHRvcCwgdG9wLXN0YXJ0LCB0b3AtZW5kLCBib3R0b20sXG4gICAgICogIGJvdHRvbS1zdGFydCwgYm90dG9tLWVuZCwgcmlnaHQsIHJpZ2h0LXN0YXJ0LCByaWdodC1lbmQsIGxlZnQsIGxlZnQtc3RhcnQsIGxlZnQtZW5kLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcblxuICAgIC8qKlxuICAgICAqICBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogIENhbiBiZSBgc3VjY2Vzc2AsIGBlcnJvcmAsIGB3YXJuaW5nYCwgYGluZm9ybWF0aW9uYCBvciBibGFuayBmb3IgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzdGF0ZShzdGF0ZTogRm9ybVN0YXRlcyB8IHVuZGVmaW5lZCkge1xuICAgICAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cblxuICAgIGdldCBzdGF0ZSgpOiBGb3JtU3RhdGVzIHtcbiAgICAgICAgaWYgKHRoaXMudGltZVBpY2tlckNvbXBvbmVudCAmJiB0aGlzLnRpbWVQaWNrZXJDb21wb25lbnQuX2lzSW52YWxpZFRpbWVJbnB1dCkge1xuICAgICAgICAgICAgLy8gaWYgYW55IG90aGVyIGVycm9yIGZyb20gY29yZSB0aW1lUGlja2VyXG4gICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwZXIuc3RhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBBZGRPbiBCdXR0b24gc2hvdWxkIGJlIGZvY3VzYWJsZVxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGJ1dHRvbkZvY3VzYWJsZSA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciB0byB2YWxpZGF0ZSB0aGUgdGltZSBwaWNrZXIgaW5wdXQuICovXG4gICAgQElucHV0KClcbiAgICB1c2VWYWxpZGF0aW9uID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCB3aGVuIHNldCB0byB0cnVlLCB0aW1lIGlucHV0cyB3b24ndCBhbGxvdyB0byBoYXZlIDEgZGlnaXRcbiAgICAgKiBmb3IgZXhhbXBsZSA5IHdpbGwgYmVjb21lIDA5XG4gICAgICogYnV0IDEyIHdpbGwgYmUga2VwdCBhcyAxMi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGtlZXBUd29EaWdpdHNUaW1lID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBEaXNwbGF5IGZvcm1hdCBvcHRpb24gdG8gY3VzdG9taXplIHRpbWUgZm9ybWF0IGluIGlucHV0IGNvbnRyb2wuXG4gICAgICogTXVzdCBiZSBhIGZvcm1hdCBvcHRpb24gdGhhdCBpcyB1bmRlcnN0YW5kYWJsZSBieSBEYXRldGltZUFkYXB0ZXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5Rm9ybWF0OiB1bmtub3duO1xuXG4gICAgLyoqXG4gICAgICogUGFyc2UgZm9ybWF0IG9wdGlvbiB0byBjdXN0b21pemUgdGltZSBmb3JtYXQgaW4gaW5wdXQgY29udHJvbC5cbiAgICAgKiBNdXN0IGJlIGEgZm9ybWF0IG9wdGlvbiB0aGF0IGlzIHVuZGVyc3RhbmRhYmxlIGJ5IERhdGV0aW1lQWRhcHRlci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBhcnNlRm9ybWF0OiB1bmtub3duO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc3RhdGUgb2YgdGhlIGlzT3BlbiBwcm9wZXJ0eSBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGlzT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChUaW1lUGlja2VyQ29tcG9uZW50KVxuICAgIHRpbWVQaWNrZXJDb21wb25lbnQ6IFRpbWVQaWNrZXJDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21lcmlkaWFuOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBuZ0Zvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTEQpIGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEX0NPTlRST0wpIGZvcm1Db250cm9sOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY2QsIGVsZW1lbnRSZWYsIG5nQ29udHJvbCwgY29udHJvbENvbnRhaW5lciwgbmdGb3JtLCBmb3JtRmllbGQsIGZvcm1Db250cm9sKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZXMgY2hhbmdlcyB3aGVuIHBvcG92ZXIgaXMgb3BlbmVkIG9yIGNsb3NlZC5cbiAgICAgKi9cbiAgICBoYW5kbGVPcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdChvcGVuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb2dpYyB0byBoYW5kbGUgdmFsaWRhdGlvbiBmcm9tIGJvdGggcGxhdGZvcm0gZm9ybXMgYW5kIGNvcmUgZGF0ZXRpaW1lcGlja2VyXG4gICAgICogQHBhcmFtIHZhbHVlIGlucHV0dGVkXG4gICAgICovXG4gICAgaGFuZGxlVGltZUNoYW5nZSh2YWx1ZTogRCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lUGlja2VyQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aW1lUGlja2VyQ29tcG9uZW50Ll9pc0ludmFsaWRUaW1lSW5wdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gJ2Vycm9yJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICF0aGlzLnRpbWVQaWNrZXJDb21wb25lbnQudGltZSAmJiAhdGhpcy5hbGxvd051bGwgPyAnZXJyb3InIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgndGltZSBwaWNrZXI6IGhhbmRsZVRpbWVJbnB1dENoYW5nZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxufVxuIiwiPGZkLXRpbWUtcGlja2VyXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbaW5wdXRJZF09XCJpZFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdGltZV09XCJ0aW1lXCJcbiAgICBbbWVyaWRpYW5dPVwibWVyaWRpYW5cIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2Rpc3BsYXlGb3JtYXRdPVwiZGlzcGxheUZvcm1hdFwiXG4gICAgW3NwaW5uZXJCdXR0b25zXT1cInNwaW5uZXJCdXR0b25zXCJcbiAgICBbZGlzcGxheVNlY29uZHNdPVwiZGlzcGxheVNlY29uZHNcIlxuICAgIFtkaXNwbGF5TWludXRlc109XCJkaXNwbGF5TWludXRlc1wiXG4gICAgW2Rpc3BsYXlIb3Vyc109XCJkaXNwbGF5SG91cnNcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3RpbWVQaWNrZXJJbnB1dExhYmVsXT1cInRpbWVQaWNrZXJJbnB1dExhYmVsXCJcbiAgICBbYWxsb3dOdWxsXT1cImFsbG93TnVsbFwiXG4gICAgW3RhYmxldF09XCJ0YWJsZXRcIlxuICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50XCJcbiAgICBbcGFyc2VGb3JtYXRdPVwicGFyc2VGb3JtYXRcIlxuICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgW2J1dHRvbkZvY3VzYWJsZV09XCJidXR0b25Gb2N1c2FibGVcIlxuICAgIFt1c2VWYWxpZGF0aW9uXT1cInVzZVZhbGlkYXRpb25cIlxuICAgIFtrZWVwVHdvRGlnaXRzVGltZV09XCJrZWVwVHdvRGlnaXRzVGltZVwiXG4gICAgKGlzT3BlbkNoYW5nZSk9XCJoYW5kbGVPcGVuQ2hhbmdlKCRldmVudClcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZVRpbWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9mZC10aW1lLXBpY2tlcj5cbiJdfQ==
@@ -1,13 +1,19 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import { warnOnce } from '@fundamental-ngx/cdk/utils';
2
3
  import { InfoLabelComponent as CoreInfoLabelComponent } from '@fundamental-ngx/core/info-label';
3
4
  import * as i0 from "@angular/core";
5
+ /**
6
+ * @deprecated Use `InfoLabelComponent` from `@fundamental-ngx/core` instead.
7
+ */
4
8
  export class InfoLabelComponent {
9
+ /** @hidden */
5
10
  constructor() {
6
11
  /**
7
12
  * The icon font
8
13
  * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'
9
14
  */
10
15
  this.font = 'SAP-icons';
16
+ warnOnce('InfoLabelComponent is deprecated. Use InfoLabelComponent from @fundamental-ngx/core/info-label instead.');
11
17
  }
12
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InfoLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
19
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: InfoLabelComponent, isStandalone: true, selector: "fdp-info-label", inputs: { type: "type", font: "font", glyph: "glyph", label: "label", color: "color", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", title: "title" }, ngImport: i0, template: "<fd-info-label\n [type]=\"type\"\n [color]=\"color\"\n [glyph]=\"glyph\"\n [font]=\"font\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [title]=\"title\"\n [label]=\"label\"\n>\n</fd-info-label>\n", dependencies: [{ kind: "component", type: CoreInfoLabelComponent, selector: "fd-info-label", inputs: ["class", "type", "glyph", "font", "color", "label", "title", "ariaLabel", "ariaLabelledBy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
@@ -15,7 +21,7 @@ export class InfoLabelComponent {
15
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InfoLabelComponent, decorators: [{
16
22
  type: Component,
17
23
  args: [{ selector: 'fdp-info-label', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CoreInfoLabelComponent], template: "<fd-info-label\n [type]=\"type\"\n [color]=\"color\"\n [glyph]=\"glyph\"\n [font]=\"font\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [title]=\"title\"\n [label]=\"label\"\n>\n</fd-info-label>\n" }]
18
- }], propDecorators: { type: [{
24
+ }], ctorParameters: function () { return []; }, propDecorators: { type: [{
19
25
  type: Input
20
26
  }], font: [{
21
27
  type: Input
@@ -32,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
32
38
  }], title: [{
33
39
  type: Input
34
40
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvaW5mby1sYWJlbC9pbmZvLWxhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pbmZvLWxhYmVsL2luZm8tbGFiZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJN0YsT0FBTyxFQUFFLGtCQUFrQixJQUFJLHNCQUFzQixFQUFhLE1BQU0sa0NBQWtDLENBQUM7O0FBVTNHLE1BQU0sT0FBTyxrQkFBa0I7SUFSL0I7UUFpQkk7OztXQUdHO1FBRUgsU0FBSSxHQUFhLFdBQVcsQ0FBQztLQXlCaEM7OEdBdkNZLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDRPQ2QvQixxUEFXQSw0Q0RDYyxzQkFBc0I7OzJGQUV2QixrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0ksZ0JBQWdCLGlCQUVYLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsc0JBQXNCLENBQUM7OEJBU2pDLElBQUk7c0JBREgsS0FBSztnQkFRTixJQUFJO3NCQURILEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBJY29uRm9udCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IEluZm9MYWJlbENvbXBvbmVudCBhcyBDb3JlSW5mb0xhYmVsQ29tcG9uZW50LCBMYWJlbFR5cGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaW5mby1sYWJlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWluZm8tbGFiZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbmZvLWxhYmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvcmVJbmZvTGFiZWxDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEluZm9MYWJlbENvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogVGhlIExhYmVsVHlwZSByZXByZXNlbnRlZCBieSB0aGUgaW5mbyBsYWJlbCAuXG4gICAgICogQ2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOiAnbnVtZXJpYycgfCAnb25seS1pY29uJyB8ICdpY29uJ1xuICAgICAqIEZvciBkZWZhdWx0IGluZm8gbGFiZWwgb21pdCB0aGlzIHByb3BlcnR5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0eXBlOiBMYWJlbFR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWNvbiBmb250XG4gICAgICogT3B0aW9ucyBpbmNsdWRlOiAnU0FQLWljb25zJywgJ0J1c2luZXNzU3VpdGVJbkFwcFN5bWJvbHMnIGFuZCAnU0FQLWljb25zLVROVCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvbnQ6IEljb25Gb250ID0gJ1NBUC1pY29ucyc7XG5cbiAgICAvKiogZ2x5cGggZGVmaW5lIHRoZSBpY29uIG9mIGluZm8gbGFiZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGdseXBoOiBzdHJpbmc7XG5cbiAgICAvKiogZ2x5cGggZGVmaW5lIHRoZSBpY29uIG9mIGluZm8gbGFiZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogZGVmaW5lIHRoZSBjb2xvdXIgb2YgdGhlIGluZm8gbGFiZWwgc3RhcnRpbmcgZm9ybSAxIHRvIDEwICovXG4gICAgQElucHV0KClcbiAgICBjb2xvcjogc3RyaW5nO1xuXG4gICAgLyoqIFNldHMgY29udHJvbCBhcmlhLWxhYmVsIGF0dHJpYnV0ZSB2YWx1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEJpbmRzIHRvIGNvbnRyb2wgYXJpYS1sYWJlbGxlZEJ5IGF0dHJpYnV0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2V0cyBjb250cm9sIGFyaWEtdGl0bGUgdG8gYSBzdHJpbmcgYXR0cmlidXRlIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xufVxuIiwiPGZkLWluZm8tbGFiZWxcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgIFtnbHlwaF09XCJnbHlwaFwiXG4gICAgW2ZvbnRdPVwiZm9udFwiXG4gICAgW2FyaWFMYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthcmlhTGFiZWxsZWRCeV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbbGFiZWxdPVwibGFiZWxcIlxuPlxuPC9mZC1pbmZvLWxhYmVsPlxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvaW5mby1sYWJlbC9pbmZvLWxhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9pbmZvLWxhYmVsL2luZm8tbGFiZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFZLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxrQkFBa0IsSUFBSSxzQkFBc0IsRUFBYSxNQUFNLGtDQUFrQyxDQUFDOztBQUUzRzs7R0FFRztBQVNILE1BQU0sT0FBTyxrQkFBa0I7SUF3QzNCLGNBQWM7SUFDZDtRQWhDQTs7O1dBR0c7UUFFSCxTQUFJLEdBQWEsV0FBVyxDQUFDO1FBNEJ6QixRQUFRLENBQ0oseUdBQXlHLENBQzVHLENBQUM7SUFDTixDQUFDOzhHQTdDUSxrQkFBa0I7a0dBQWxCLGtCQUFrQiw0T0NqQi9CLHFQQVdBLDRDREljLHNCQUFzQjs7MkZBRXZCLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDSSxnQkFBZ0IsaUJBRVgsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxzQkFBc0IsQ0FBQzswRUFTakMsSUFBSTtzQkFESCxLQUFLO2dCQVFOLElBQUk7c0JBREgsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOdWxsYWJsZSwgd2Fybk9uY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBJY29uRm9udCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IEluZm9MYWJlbENvbXBvbmVudCBhcyBDb3JlSW5mb0xhYmVsQ29tcG9uZW50LCBMYWJlbFR5cGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaW5mby1sYWJlbCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBJbmZvTGFiZWxDb21wb25lbnRgIGZyb20gYEBmdW5kYW1lbnRhbC1uZ3gvY29yZWAgaW5zdGVhZC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtaW5mby1sYWJlbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2luZm8tbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29yZUluZm9MYWJlbENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSW5mb0xhYmVsQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBUaGUgTGFiZWxUeXBlIHJlcHJlc2VudGVkIGJ5IHRoZSBpbmZvIGxhYmVsIC5cbiAgICAgKiBDYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6ICdudW1lcmljJyB8ICdvbmx5LWljb24nIHwgJ2ljb24nXG4gICAgICogRm9yIGRlZmF1bHQgaW5mbyBsYWJlbCBvbWl0IHRoaXMgcHJvcGVydHlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHR5cGU6IExhYmVsVHlwZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBpY29uIGZvbnRcbiAgICAgKiBPcHRpb25zIGluY2x1ZGU6ICdTQVAtaWNvbnMnLCAnQnVzaW5lc3NTdWl0ZUluQXBwU3ltYm9scycgYW5kICdTQVAtaWNvbnMtVE5UJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9udDogSWNvbkZvbnQgPSAnU0FQLWljb25zJztcblxuICAgIC8qKiBnbHlwaCBkZWZpbmUgdGhlIGljb24gb2YgaW5mbyBsYWJlbCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IHN0cmluZztcblxuICAgIC8qKiBnbHlwaCBkZWZpbmUgdGhlIGljb24gb2YgaW5mbyBsYWJlbCAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBkZWZpbmUgdGhlIGNvbG91ciBvZiB0aGUgaW5mbyBsYWJlbCBzdGFydGluZyBmb3JtIDEgdG8gMTAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbG9yOiBzdHJpbmc7XG5cbiAgICAvKiogU2V0cyBjb250cm9sIGFyaWEtbGFiZWwgYXR0cmlidXRlIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQmluZHMgdG8gY29udHJvbCBhcmlhLWxhYmVsbGVkQnkgYXR0cmlidXRlICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBTZXRzIGNvbnRyb2wgYXJpYS10aXRsZSB0byBhIHN0cmluZyBhdHRyaWJ1dGUgdmFsdWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICdJbmZvTGFiZWxDb21wb25lbnQgaXMgZGVwcmVjYXRlZC4gVXNlIEluZm9MYWJlbENvbXBvbmVudCBmcm9tIEBmdW5kYW1lbnRhbC1uZ3gvY29yZS9pbmZvLWxhYmVsIGluc3RlYWQuJ1xuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxmZC1pbmZvLWxhYmVsXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxuICAgIFtmb250XT1cImZvbnRcIlxuICAgIFthcmlhTGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXJpYUxhYmVsbGVkQnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcbj5cbjwvZmQtaW5mby1sYWJlbD5cbiJdfQ==
@@ -1,11 +1,16 @@
1
1
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';
3
+ import { warnOnce } from '@fundamental-ngx/cdk/utils';
3
4
  import { FD_ICON_COMPONENT, IconComponent } from '@fundamental-ngx/core/icon';
4
5
  import { LinkComponent as CoreLinkComponent } from '@fundamental-ngx/core/link';
5
6
  import { FdTranslatePipe } from '@fundamental-ngx/i18n';
6
7
  import { BaseComponent } from '@fundamental-ngx/platform/shared';
7
8
  import * as i0 from "@angular/core";
8
9
  const VALID_INPUT_TYPES = ['standard', 'emphasized', 'subtle'];
10
+ /**
11
+ * @deprecated
12
+ * Link component is deprecated. Use `fd-link` from `@fundamental-ngx/core/link` instead.
13
+ */
9
14
  export class LinkComponent extends BaseComponent {
10
15
  /**
11
16
  * sets inverted property.
@@ -40,6 +45,7 @@ export class LinkComponent extends BaseComponent {
40
45
  this.subtle = false;
41
46
  /** @hidden */
42
47
  this._inverted = false;
48
+ warnOnce(`LinkComponent is deprecated. Use 'fd-link' from '@fundamental-ngx/core/link' instead.`);
43
49
  }
44
50
  /** @hidden */
45
51
  ngOnInit() {
@@ -125,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
125
131
  type: ViewChild,
126
132
  args: ['link', { read: ElementRef }]
127
133
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvbGluay9saW5rLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9saW5rL2xpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLElBQUksaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUlqRSxNQUFNLGlCQUFpQixHQUFHLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztBQVcvRCxNQUFNLE9BQU8sYUFBYyxTQUFRLGFBQWE7SUF5QjVDOztPQUVHO0lBQ0gsSUFDSSxRQUFRLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQTRERCxjQUFjO0lBQ2QsWUFBc0IsR0FBc0IsRUFBVSxTQUFvQjtR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SCxLQUFLO2dCQU9GLFFBQVE7c0JBRFgsS0FBSztnQkFhTixLQUFLO3NCQURKLEtBQUs7Z0JBUU4sUUFBUTtzQkFEUCxLQUFLO2dCQU9OLFFBQVE7c0JBRFAsS0FBSztnQkFPTixLQUFLO3NCQURKLEtBQUs7Z0JBT04sR0FBRztzQkFERixLQUFLO2dCQU9OLFFBQVE7c0JBRFAsS0FBSzs7UUFLTiw0REFBNEQ7UUFDNUQsS0FBSztzQkFGSixNQUFNO2dCQU1QLElBQUk7c0JBREgsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBSy9CLE1BQU07c0JBREwsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGRF9JQ09OX0NPTVBPTkVOVCwgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IExpbmtDb21wb25lbnQgYXMgQ29yZUxpbmtDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbGluayc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcblxuZXhwb3J0IHR5cGUgTGlua1R5cGUgPSAnc3RhbmRhcmQnIHwgJ2VtcGhhc2l6ZWQnIHwgJ3N1YnRsZSc7XG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uVGFyZ2V0ID0gJ19ibGFuaycgfCAnX3NlbGYnIHwgJ19wYXJlbnQnIHwgJ190b3AnIHwgJ2ZyYW1lbmFtZSc7XG5jb25zdCBWQUxJRF9JTlBVVF9UWVBFUyA9IFsnc3RhbmRhcmQnLCAnZW1waGFzaXplZCcsICdzdWJ0bGUnXTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtbGluaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpbmsuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpbmsuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvcmVMaW5rQ29tcG9uZW50LCBGZFRyYW5zbGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIExpbmtDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBocmVmIHZhbHVlIHRvIE5hdmlnYXRlIHRvLiBzZXRzIGhyZWYgdG8gTmF0aXZlIGFuY2hvci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhyZWY6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiB0YXJnZXQgd2hlcmUgbmF2aWdhdGlvbiB3aWxsIGhhcHBlbiwgRGVmYXVsdD1zYW1lIGZyYW1lXG4gICAgICogc2V0cyB0YXJnZXQgdG8gTmF0aXZlIGFuY2hvci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRhcmdldD86IE5hdmlnYXRpb25UYXJnZXQ7XG5cbiAgICAvKiogbGlua3R5cGUgb2YgbGluaywgb3B0aW9ucyBzdGFuZGFyZCBvciBFbXBoYXNpemVkLCBEZWZhdWx0PXN0YW5kYXJkICovXG4gICAgQElucHV0KClcbiAgICBsaW5rVHlwZT86IExpbmtUeXBlID0gJ3N0YW5kYXJkJztcblxuICAgIC8qKlxuICAgICAqIHR5cGUgb2YgbGluay4gcG9zc2libGUgdmFsdWVzIHRleHR8YXBwbGljYXRpb258YXVkaW98Zm9udHxleGFtcGxlfGltYWdlfG1lc3NhZ2V8bW9kZWx8bXVsdGlwYXJ0fHZpZGVvLlxuICAgICAqIHNldHMgdHlwZSB0byBOYXRpdmUgYW5jaG9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHlwZSA9ICd0ZXh0JztcblxuICAgIC8qKlxuICAgICAqIHNldHMgaW52ZXJ0ZWQgcHJvcGVydHkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgaW52ZXJ0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faW52ZXJ0ZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgaW52ZXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnZlcnRlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb29sdGlwIHRleHQgdG8gc2hvdyB3aGVuIGZvY3VzZWQgZm9yIG1vcmUgdGhhbiAgdGltZW91dCB2YWx1ZVxuICAgICAqIHNldHMgdGl0bGUgdG8gTmF0aXZlIGFuY2hvci5cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGxhbmd1YWdlIG9mIHRoZSBsaW5rZWQgZG9jdW1lbnQuXG4gICAgICogc2V0cyBsYW5ndWFnZSB0byBOYXRpdmUgYW5jaG9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaHJlZmxhbmc/OiBzdHJpbmc7XG5cbiAgICAvKiogU3BlY2lmaWVzIHRoYXQgdGhlIHRhcmdldCB3aWxsIGJlIGRvd25sb2FkZWQgd2hlbiBhIHVzZXIgY2xpY2tzIG9uIHRoZSBoeXBlcmxpbmtcbiAgICAgKiBzZXRzIGRvd25sb2FkIHByb3BlcnR5IHRvIE5hdGl2ZSBhbmNob3IuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkb3dubG9hZD86IHN0cmluZztcblxuICAgIC8qKiBTcGVjaWZpZXMgd2hhdCBtZWRpYS9kZXZpY2UgdGhlIGxpbmtlZCBkb2N1bWVudCBpcyBvcHRpbWl6ZWQgZm9yXG4gICAgICogc2V0cyBtZWRpYSBwcm9wZXJ0eSB0byBOYXRpdmUgYW5jaG9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWVkaWE/OiBzdHJpbmc7XG5cbiAgICAvKiogU3BlY2lmaWVzIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgY3VycmVudCBkb2N1bWVudCBhbmQgdGhlIGxpbmtlZCBkb2N1bWVudFxuICAgICAqIHNldHMgcmVsYXRpb24gcHJvcGVydHkgdG8gTmF0aXZlIGFuY2hvci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlbD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIElmIHRleHQgaXMgb3ZlcmxhcHBpbmcuIEJ5IHNldHRpbmcgdHJ1bmNhdGUgdG8gdHJ1ZSwgb3ZlcmxhcHBpbmcgY2FuIGJlIGhpZGRlbiB3aXRoIHVzaW5nIGVsbGlwc2lzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0cnVuY2F0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEVtaXR0aW5nIGxpbmsgY2xpY2sgZXZlbnQgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgICBjbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50IHwgVG91Y2hFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoRkRfSUNPTl9DT01QT05FTlQpXG4gICAgaWNvbjogSWNvbkNvbXBvbmVudDtcblxuICAgIC8qKiBBY2Nlc3MgY2hpbGQgZWxlbWVudCwgZm9yIGNoZWNraW5nIGxpbmsgY29udGVudCovXG4gICAgQFZpZXdDaGlsZCgnbGluaycsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIGFuY2hvcjogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZW1waGFzaXplZCA9IGZhbHNlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3VidGxlID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnZlcnRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSByZW5kZXJlcjI6IFJlbmRlcmVyMikge1xuICAgICAgICBzdXBlcihfY2QpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8qIGlmIGxpbmsgZGlzYWJsZWQsIGZvciBBdm9pZGluZyB0YWIgZm9jdXMgYW5kIGNsaWNrLiBtYXJraW5nIGhyZWYgdW5kZWZpbmVkLiAqL1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5ocmVmID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIElmIGxpbmsgbGlua1R5cGU9PT1lbXBoYXNpemVkIHRoZW4gbWFrZSBsaW5rIGVtcGhhc2l6ZWQgdHlwZSAqL1xuICAgICAgICB0aGlzLmVtcGhhc2l6ZWQgPSB0aGlzLmxpbmtUeXBlID09PSBWQUxJRF9JTlBVVF9UWVBFU1sxXTtcbiAgICAgICAgdGhpcy5zdWJ0bGUgPSB0aGlzLmxpbmtUeXBlID09PSBWQUxJRF9JTlBVVF9UWVBFU1syXTtcblxuICAgICAgICAvKiBpZiBsaW5rIHR5cGUgbm90IHN1cHBvcnRlZCwgdGhyb3cgRXJyb3IgKi9cbiAgICAgICAgaWYgKHRoaXMubGlua1R5cGUgJiYgVkFMSURfSU5QVVRfVFlQRVMuaW5kZXhPZih0aGlzLmxpbmtUeXBlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZmRwLWxpbmsgdHlwZSAke3RoaXMubGlua1R5cGV9IGlzIG5vdCBzdXBwb3J0ZWRgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFRocm93IGVycm9yIGZvciBibGFuayB0ZXh0L2ljb24gbGluayAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFuY2hvci5uYXRpdmVFbGVtZW50LmlubmVySFRNTCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYW5kYXRvcnkgdGV4dC9pY29uIGZvciBmZHAtbGluayBtaXNzaW5nJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQdXRzIHVuZGVybGluZSBvbiBJY29uXG4gICAgICogQHBhcmFtIGV2ZW50OiBNb3VzZUV2ZW50XG4gICAgICovXG4gICAgb25Nb3VzZUVudGVyKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5pY29uKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmljb24uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndGV4dC1kZWNvcmF0aW9uJywgJ3VuZGVybGluZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB1bmRlcmxpbmUgb24gSWNvblxuICAgICAqIEBwYXJhbSBldmVudDogTW91c2VFdmVudFxuICAgICAqL1xuICAgIG9uTW91c2VMZWF2ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuaWNvbikge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5pY29uLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RleHQtZGVjb3JhdGlvbicsICdub25lJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogcmFpc2luZyBjbGljayBldmVudCAqL1xuICAgIHB1YmxpYyBjbGlja2VkKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuY2xpY2suZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPGFcbiAgICAjbGlua1xuICAgIGZkLWxpbmtcbiAgICBbY2xhc3MuZmRwLWxpbmstLXRydW5jYXRlLXR4dF09XCJ0cnVuY2F0ZVwiXG4gICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgIFthdHRyLmhyZWZdPVwiaHJlZlwiXG4gICAgW2F0dHIudGFyZ2V0XT1cInRhcmdldFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZW1waGFzaXplZF09XCJlbXBoYXNpemVkXCJcbiAgICBbc3VidGxlXT1cInN1YnRsZVwiXG4gICAgW2ludmVydGVkXT1cImludmVydGVkXCJcbiAgICBbYXR0ci50aXRsZV09XCJ0aXRsZVwiXG4gICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5ocmVmbGFuZ109XCJocmVmbGFuZ1wiXG4gICAgW2F0dHIuZG93bmxvYWRdPVwiZG93bmxvYWRcIlxuICAgIFthdHRyLm1lZGlhXT1cIm1lZGlhXCJcbiAgICBbYXR0ci5yZWxdPVwicmVsXCJcbiAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoJGV2ZW50KVwiXG4gICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKCRldmVudClcIlxuICAgIChjbGljayk9XCJjbGlja2VkKCRldmVudClcIlxuICAgIFthdHRyLmFyaWEtcm9sZWRlc2NyaXB0aW9uXT1cIlxuICAgICAgICBtZWRpYSA/ICgkYW55KCdwbGF0Zm9ybUxpbmsucm9sZURlc2NyaXB0aW9uV2l0aE1lZGlhJykgfCBmZFRyYW5zbGF0ZSA6IHsgbWVkaWE6IG1lZGlhIH0pIDogbnVsbFxuICAgIFwiXG4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9hPlxuIl19
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvbGluay9saW5rLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9saW5rL2xpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFZLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxJQUFJLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFJakUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFL0Q7OztHQUdHO0FBVUgsTUFBTSxPQUFPLGFBQWMsU0FBUSxhQUFhO0lBeUI1Qzs7T0FFRztJQUNILElBQ0ksUUFBUSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxD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LENBQUM7Z0lBTzdDLElBQUk7c0JBREgsS0FBSztnQkFRTixNQUFNO3NCQURMLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQVFOLElBQUk7c0JBREgsS0FBSztnQkFPRixRQUFRO3NCQURYLEtBQUs7Z0JBYU4sS0FBSztzQkFESixLQUFLO2dCQVFOLFFBQVE7c0JBRFAsS0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQU9OLEdBQUc7c0JBREYsS0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7O1FBS04sNERBQTREO1FBQzVELEtBQUs7c0JBRkosTUFBTTtnQkFNUCxJQUFJO3NCQURILFlBQVk7dUJBQUMsaUJBQWlCO2dCQUsvQixNQUFNO3NCQURMLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE51bGxhYmxlLCB3YXJuT25jZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZEX0lDT05fQ09NUE9ORU5ULCBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgTGlua0NvbXBvbmVudCBhcyBDb3JlTGlua0NvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9saW5rJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuXG5leHBvcnQgdHlwZSBMaW5rVHlwZSA9ICdzdGFuZGFyZCcgfCAnZW1waGFzaXplZCcgfCAnc3VidGxlJztcbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25UYXJnZXQgPSAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCcgfCAnZnJhbWVuYW1lJztcbmNvbnN0IFZBTElEX0lOUFVUX1RZUEVTID0gWydzdGFuZGFyZCcsICdlbXBoYXNpemVkJywgJ3N1YnRsZSddO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBMaW5rIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkLiBVc2UgYGZkLWxpbmtgIGZyb20gYEBmdW5kYW1lbnRhbC1uZ3gvY29yZS9saW5rYCBpbnN0ZWFkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1saW5rJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluay5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGluay5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29yZUxpbmtDb21wb25lbnQsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgTGlua0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIGhyZWYgdmFsdWUgdG8gTmF2aWdhdGUgdG8uIHNldHMgaHJlZiB0byBOYXRpdmUgYW5jaG9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaHJlZjogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIHRhcmdldCB3aGVyZSBuYXZpZ2F0aW9uIHdpbGwgaGFwcGVuLCBEZWZhdWx0PXNhbWUgZnJhbWVcbiAgICAgKiBzZXRzIHRhcmdldCB0byBOYXRpdmUgYW5jaG9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGFyZ2V0PzogTmF2aWdhdGlvblRhcmdldDtcblxuICAgIC8qKiBsaW5rdHlwZSBvZiBsaW5rLCBvcHRpb25zIHN0YW5kYXJkIG9yIEVtcGhhc2l6ZWQsIERlZmF1bHQ9c3RhbmRhcmQgKi9cbiAgICBASW5wdXQoKVxuICAgIGxpbmtUeXBlPzogTGlua1R5cGUgPSAnc3RhbmRhcmQnO1xuXG4gICAgLyoqXG4gICAgICogdHlwZSBvZiBsaW5rLiBwb3NzaWJsZSB2YWx1ZXMgdGV4dHxhcHBsaWNhdGlvbnxhdWRpb3xmb250fGV4YW1wbGV8aW1hZ2V8bWVzc2FnZXxtb2RlbHxtdWx0aXBhcnR8dmlkZW8uXG4gICAgICogc2V0cyB0eXBlIHRvIE5hdGl2ZSBhbmNob3IuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0eXBlID0gJ3RleHQnO1xuXG4gICAgLyoqXG4gICAgICogc2V0cyBpbnZlcnRlZCBwcm9wZXJ0eS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBpbnZlcnRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pbnZlcnRlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBpbnZlcnRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludmVydGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRvb2x0aXAgdGV4dCB0byBzaG93IHdoZW4gZm9jdXNlZCBmb3IgbW9yZSB0aGFuICB0aW1lb3V0IHZhbHVlXG4gICAgICogc2V0cyB0aXRsZSB0byBOYXRpdmUgYW5jaG9yLlxuICAgICAqICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGxpbmtlZCBkb2N1bWVudC5cbiAgICAgKiBzZXRzIGxhbmd1YWdlIHRvIE5hdGl2ZSBhbmNob3IuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBocmVmbGFuZz86IHN0cmluZztcblxuICAgIC8qKiBTcGVjaWZpZXMgdGhhdCB0aGUgdGFyZ2V0IHdpbGwgYmUgZG93bmxvYWRlZCB3aGVuIGEgdXNlciBjbGlja3Mgb24gdGhlIGh5cGVybGlua1xuICAgICAqIHNldHMgZG93bmxvYWQgcHJvcGVydHkgdG8gTmF0aXZlIGFuY2hvci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRvd25sb2FkPzogc3RyaW5nO1xuXG4gICAgLyoqIFNwZWNpZmllcyB3aGF0IG1lZGlhL2RldmljZSB0aGUgbGlua2VkIGRvY3VtZW50IGlzIG9wdGltaXplZCBmb3JcbiAgICAgKiBzZXRzIG1lZGlhIHByb3BlcnR5IHRvIE5hdGl2ZSBhbmNob3IuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtZWRpYT86IHN0cmluZztcblxuICAgIC8qKiBTcGVjaWZpZXMgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBjdXJyZW50IGRvY3VtZW50IGFuZCB0aGUgbGlua2VkIGRvY3VtZW50XG4gICAgICogc2V0cyByZWxhdGlvbiBwcm9wZXJ0eSB0byBOYXRpdmUgYW5jaG9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVsPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgdGV4dCBpcyBvdmVybGFwcGluZy4gQnkgc2V0dGluZyB0cnVuY2F0ZSB0byB0cnVlLCBvdmVybGFwcGluZyBjYW4gYmUgaGlkZGVuIHdpdGggdXNpbmcgZWxsaXBzaXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRydW5jYXRlID0gZmFsc2U7XG5cbiAgICAvKiogRW1pdHRpbmcgbGluayBjbGljayBldmVudCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIGNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQgfCBUb3VjaEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChGRF9JQ09OX0NPTVBPTkVOVClcbiAgICBpY29uOiBJY29uQ29tcG9uZW50O1xuXG4gICAgLyoqIEFjY2VzcyBjaGlsZCBlbGVtZW50LCBmb3IgY2hlY2tpbmcgbGluayBjb250ZW50Ki9cbiAgICBAVmlld0NoaWxkKCdsaW5rJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgYW5jaG9yOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbXBoYXNpemVkID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzdWJ0bGUgPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ludmVydGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyKSB7XG4gICAgICAgIHN1cGVyKF9jZCk7XG4gICAgICAgIHdhcm5PbmNlKGBMaW5rQ29tcG9uZW50IGlzIGRlcHJlY2F0ZWQuIFVzZSAnZmQtbGluaycgZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpbmsnIGluc3RlYWQuYCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLyogaWYgbGluayBkaXNhYmxlZCwgZm9yIEF2b2lkaW5nIHRhYiBmb2N1cyBhbmQgY2xpY2suIG1hcmtpbmcgaHJlZiB1bmRlZmluZWQuICovXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmhyZWYgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogSWYgbGluayBsaW5rVHlwZT09PWVtcGhhc2l6ZWQgdGhlbiBtYWtlIGxpbmsgZW1waGFzaXplZCB0eXBlICovXG4gICAgICAgIHRoaXMuZW1waGFzaXplZCA9IHRoaXMubGlua1R5cGUgPT09IFZBTElEX0lOUFVUX1RZUEVTWzFdO1xuICAgICAgICB0aGlzLnN1YnRsZSA9IHRoaXMubGlua1R5cGUgPT09IFZBTElEX0lOUFVUX1RZUEVTWzJdO1xuXG4gICAgICAgIC8qIGlmIGxpbmsgdHlwZSBub3Qgc3VwcG9ydGVkLCB0aHJvdyBFcnJvciAqL1xuICAgICAgICBpZiAodGhpcy5saW5rVHlwZSAmJiBWQUxJRF9JTlBVVF9UWVBFUy5pbmRleE9mKHRoaXMubGlua1R5cGUpID09PSAtMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBmZHAtbGluayB0eXBlICR7dGhpcy5saW5rVHlwZX0gaXMgbm90IHN1cHBvcnRlZGApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVGhyb3cgZXJyb3IgZm9yIGJsYW5rIHRleHQvaWNvbiBsaW5rICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYW5jaG9yLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hbmRhdG9yeSB0ZXh0L2ljb24gZm9yIGZkcC1saW5rIG1pc3NpbmcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1dHMgdW5kZXJsaW5lIG9uIEljb25cbiAgICAgKiBAcGFyYW0gZXZlbnQ6IE1vdXNlRXZlbnRcbiAgICAgKi9cbiAgICBvbk1vdXNlRW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmljb24pIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuaWNvbi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0ZXh0LWRlY29yYXRpb24nLCAndW5kZXJsaW5lJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHVuZGVybGluZSBvbiBJY29uXG4gICAgICogQHBhcmFtIGV2ZW50OiBNb3VzZUV2ZW50XG4gICAgICovXG4gICAgb25Nb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5pY29uKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmljb24uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndGV4dC1kZWNvcmF0aW9uJywgJ25vbmUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiByYWlzaW5nIGNsaWNrIGV2ZW50ICovXG4gICAgcHVibGljIGNsaWNrZWQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5jbGljay5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iLCI8YVxuICAgICNsaW5rXG4gICAgZmQtbGlua1xuICAgIFtjbGFzcy5mZHAtbGluay0tdHJ1bmNhdGUtdHh0XT1cInRydW5jYXRlXCJcbiAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgW2F0dHIuaHJlZl09XCJocmVmXCJcbiAgICBbYXR0ci50YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtlbXBoYXNpemVkXT1cImVtcGhhc2l6ZWRcIlxuICAgIFtzdWJ0bGVdPVwic3VidGxlXCJcbiAgICBbaW52ZXJ0ZWRdPVwiaW52ZXJ0ZWRcIlxuICAgIFthdHRyLnRpdGxlXT1cInRpdGxlXCJcbiAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLmhyZWZsYW5nXT1cImhyZWZsYW5nXCJcbiAgICBbYXR0ci5kb3dubG9hZF09XCJkb3dubG9hZFwiXG4gICAgW2F0dHIubWVkaWFdPVwibWVkaWFcIlxuICAgIFthdHRyLnJlbF09XCJyZWxcIlxuICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigkZXZlbnQpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cImNsaWNrZWQoJGV2ZW50KVwiXG4gICAgW2F0dHIuYXJpYS1yb2xlZGVzY3JpcHRpb25dPVwiXG4gICAgICAgIG1lZGlhID8gKCRhbnkoJ3BsYXRmb3JtTGluay5yb2xlRGVzY3JpcHRpb25XaXRoTWVkaWEnKSB8IGZkVHJhbnNsYXRlIDogeyBtZWRpYTogbWVkaWEgfSkgOiBudWxsXG4gICAgXCJcbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2E+XG4iXX0=