@eui/components 17.0.3-snapshot-1704421850692 → 17.1.0-snapshot-1704939776889

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 (384) hide show
  1. package/docs/components/EuiDropdownComponent.html +24 -0
  2. package/docs/components/EuiMessageBoxComponent.html +40 -2
  3. package/docs/components/EuiToolbarMenuComponent.html +59 -44
  4. package/docs/dependencies.html +20 -20
  5. package/docs/js/menu-wc_es5.js +5 -6
  6. package/docs/js/search/search_index.js +2 -2
  7. package/esm2022/directives/eui-clearable.directive.mjs +3 -3
  8. package/esm2022/directives/eui-has-permission.directive.mjs +7 -7
  9. package/esm2022/directives/eui-loading.directive.mjs +3 -3
  10. package/esm2022/directives/eui-maxlength.directive.mjs +7 -7
  11. package/esm2022/directives/eui-resizable/eui-resizable.component.mjs +3 -3
  12. package/esm2022/directives/eui-resizable/eui-resizable.directive.mjs +3 -3
  13. package/esm2022/directives/eui-resizable/eui-resizable.module.mjs +4 -4
  14. package/esm2022/directives/eui-scroll-handler.directive.mjs +10 -10
  15. package/esm2022/directives/eui-smooth-scroll.directive.mjs +10 -10
  16. package/esm2022/directives/eui-template.directive.mjs +7 -7
  17. package/esm2022/directives/eui-tooltip/container/eui-tooltip-container.component.mjs +3 -3
  18. package/esm2022/directives/eui-tooltip/eui-tooltip.directive.mjs +3 -3
  19. package/esm2022/directives/eui-tooltip/eui-tooltip.module.mjs +4 -4
  20. package/esm2022/eui-alert/eui-alert.component.mjs +6 -6
  21. package/esm2022/eui-alert/eui-alert.module.mjs +4 -4
  22. package/esm2022/eui-all/eui-all.module.mjs +4 -4
  23. package/esm2022/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.mjs +3 -3
  24. package/esm2022/eui-autocomplete/eui-autocomplete-option-group/eui-autocomplete-option-group.component.mjs +3 -3
  25. package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +3 -3
  26. package/esm2022/eui-autocomplete/eui-autocomplete.module.mjs +4 -4
  27. package/esm2022/eui-avatar/avatar-badge/avatar-badge.component.mjs +3 -3
  28. package/esm2022/eui-avatar/avatar-icon/avatar-icon.component.mjs +3 -3
  29. package/esm2022/eui-avatar/avatar-image/avatar-image.component.mjs +3 -3
  30. package/esm2022/eui-avatar/avatar-text/avatar-text.component.mjs +3 -3
  31. package/esm2022/eui-avatar/eui-avatar-list.component.mjs +3 -3
  32. package/esm2022/eui-avatar/eui-avatar.component.mjs +3 -3
  33. package/esm2022/eui-avatar/eui-avatar.module.mjs +4 -4
  34. package/esm2022/eui-badge/eui-badge.component.mjs +3 -3
  35. package/esm2022/eui-badge/eui-badge.module.mjs +4 -4
  36. package/esm2022/eui-block-content/eui-block-content.component.mjs +3 -3
  37. package/esm2022/eui-block-content/eui-block-content.module.mjs +4 -4
  38. package/esm2022/eui-block-document/eui-block-document.component.mjs +3 -3
  39. package/esm2022/eui-block-document/eui-block-document.module.mjs +4 -4
  40. package/esm2022/eui-button/eui-button.component.mjs +7 -7
  41. package/esm2022/eui-button-group/eui-button-group.component.mjs +7 -7
  42. package/esm2022/eui-buttons/eui-buttons.component.mjs +13 -13
  43. package/esm2022/eui-card/components/eui-card-content/eui-card-content.component.mjs +3 -3
  44. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-buttons.component.mjs +3 -3
  45. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-action-icons.component.mjs +3 -3
  46. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-menu-content.component.mjs +3 -3
  47. package/esm2022/eui-card/components/eui-card-footer/eui-card-footer.component.mjs +3 -3
  48. package/esm2022/eui-card/components/eui-card-header/eui-card-header-left-content.component.mjs +3 -3
  49. package/esm2022/eui-card/components/eui-card-header/eui-card-header-right-content.component.mjs +3 -3
  50. package/esm2022/eui-card/components/eui-card-header/eui-card-header-subtitle.component.mjs +3 -3
  51. package/esm2022/eui-card/components/eui-card-header/eui-card-header-title.component.mjs +3 -3
  52. package/esm2022/eui-card/components/eui-card-header/eui-card-header.component.mjs +3 -3
  53. package/esm2022/eui-card/components/eui-card-header-body/eui-card-header-body.component.mjs +3 -3
  54. package/esm2022/eui-card/components/eui-card-media/eui-card-media.component.mjs +3 -3
  55. package/esm2022/eui-card/eui-card.component.mjs +3 -3
  56. package/esm2022/eui-card/eui-card.module.mjs +4 -4
  57. package/esm2022/eui-card/services/ui-state.service.mjs +3 -3
  58. package/esm2022/eui-chip/eui-chip.component.mjs +3 -3
  59. package/esm2022/eui-chip/eui-chip.module.mjs +4 -4
  60. package/esm2022/eui-chip-list/eui-chip-list.component.mjs +6 -6
  61. package/esm2022/eui-chip-list/eui-chip-list.module.mjs +4 -4
  62. package/esm2022/eui-chip-list/services/eui-chip-list-drag.service.mjs +3 -3
  63. package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +13 -13
  64. package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +7 -7
  65. package/esm2022/eui-date-range-selector/eui-date-range-selector.component.mjs +3 -3
  66. package/esm2022/eui-date-range-selector/eui-date-range-selector.module.mjs +4 -4
  67. package/esm2022/eui-datepicker/eui-datepicker.component.mjs +15 -15
  68. package/esm2022/eui-datepicker/eui-datepicker.module.mjs +4 -4
  69. package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +3 -3
  70. package/esm2022/eui-dialog/eui-dialog.component.mjs +9 -9
  71. package/esm2022/eui-dialog/eui-dialog.module.mjs +4 -4
  72. package/esm2022/eui-dialog/services/eui-dialog.service.mjs +3 -3
  73. package/esm2022/eui-dimmer/dimmer.component.mjs +3 -3
  74. package/esm2022/eui-dimmer/dimmer.module.mjs +4 -4
  75. package/esm2022/eui-disable-content/eui-disable-content.component.mjs +7 -7
  76. package/esm2022/eui-discussion-thread/eui-discussion-thread-item.component.mjs +3 -3
  77. package/esm2022/eui-discussion-thread/eui-discussion-thread.component.mjs +3 -3
  78. package/esm2022/eui-discussion-thread/eui-discussion-thread.module.mjs +4 -4
  79. package/esm2022/eui-dropdown/directives/eui-dropdown-content.directive.mjs +3 -3
  80. package/esm2022/eui-dropdown/dropdown-item/eui-dropdown-item.component.mjs +4 -4
  81. package/esm2022/eui-dropdown/eui-dropdown.component.mjs +18 -6
  82. package/esm2022/eui-dropdown/eui-dropdown.module.mjs +8 -8
  83. package/esm2022/eui-dropdown/eui-dropdown.service.mjs +3 -3
  84. package/esm2022/eui-feedback-message/eui-feedback-message.component.mjs +3 -3
  85. package/esm2022/eui-feedback-message/eui-feedback-message.module.mjs +4 -4
  86. package/esm2022/eui-fieldset/eui-fieldset.component.mjs +9 -9
  87. package/esm2022/eui-fieldset/eui-fieldset.module.mjs +4 -4
  88. package/esm2022/eui-file-upload/eui-file-upload.component.mjs +3 -3
  89. package/esm2022/eui-file-upload/eui-file-upload.module.mjs +4 -4
  90. package/esm2022/eui-file-upload/file-preview/file-preview.component.mjs +3 -3
  91. package/esm2022/eui-file-upload/pipes/filesize.pipe.mjs +3 -3
  92. package/esm2022/eui-file-upload/progress/eui-file-upload-progress.component.mjs +3 -3
  93. package/esm2022/eui-file-upload/utils/eui-file-upload.utils.mjs +3 -3
  94. package/esm2022/eui-growl/eui-growl.component.mjs +3 -3
  95. package/esm2022/eui-growl/eui-growl.module.mjs +4 -4
  96. package/esm2022/eui-icon/eui-icon-color.component.mjs +3 -3
  97. package/esm2022/eui-icon/eui-icon-svg-button/eui-icon-svg-button.component.mjs +3 -3
  98. package/esm2022/eui-icon/eui-icon-svg.component.mjs +3 -3
  99. package/esm2022/eui-icon/eui-icon.component.mjs +3 -3
  100. package/esm2022/eui-icon/eui-icon.module.mjs +4 -4
  101. package/esm2022/eui-icon-toggle/eui-icon-toggle.component.mjs +3 -3
  102. package/esm2022/eui-icon-toggle/eui-icon-toggle.module.mjs +4 -4
  103. package/esm2022/eui-input-checkbox/eui-input-checkbox.component.mjs +3 -3
  104. package/esm2022/eui-input-checkbox/eui-input-checkbox.module.mjs +4 -4
  105. package/esm2022/eui-input-group/eui-input-group.component.mjs +3 -3
  106. package/esm2022/eui-input-group/eui-input-group.module.mjs +4 -4
  107. package/esm2022/eui-input-number/eui-input-number.component.mjs +3 -3
  108. package/esm2022/eui-input-number/eui-input-number.module.mjs +4 -4
  109. package/esm2022/eui-input-number/eui-number-control.directive.mjs +3 -3
  110. package/esm2022/eui-input-radio/eui-input-radio.component.mjs +3 -3
  111. package/esm2022/eui-input-radio/eui-input-radio.module.mjs +4 -4
  112. package/esm2022/eui-input-text/eui-input-text.component.mjs +3 -3
  113. package/esm2022/eui-input-text/eui-input-text.module.mjs +4 -4
  114. package/esm2022/eui-label/eui-label.component.mjs +3 -3
  115. package/esm2022/eui-label/eui-label.module.mjs +4 -4
  116. package/esm2022/eui-list/eui-list-item/eui-list-item.component.mjs +3 -3
  117. package/esm2022/eui-list/eui-list.component.mjs +3 -3
  118. package/esm2022/eui-list/eui-list.module.mjs +4 -4
  119. package/esm2022/eui-list/services/eui-list.service.mjs +3 -3
  120. package/esm2022/eui-menu/eui-menu-item.component.mjs +3 -3
  121. package/esm2022/eui-menu/eui-menu.component.mjs +3 -3
  122. package/esm2022/eui-menu/eui-menu.module.mjs +4 -4
  123. package/esm2022/eui-message-box/eui-message-box.component.mjs +20 -8
  124. package/esm2022/eui-message-box/eui-message-box.module.mjs +4 -4
  125. package/esm2022/eui-message-box/services/eui-message-box.service.mjs +3 -3
  126. package/esm2022/eui-overlay/components/eui-overlay-body/eui-overlay-body.component.mjs +3 -3
  127. package/esm2022/eui-overlay/components/eui-overlay-footer/eui-overlay-footer.component.mjs +3 -3
  128. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +3 -3
  129. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.mjs +3 -3
  130. package/esm2022/eui-overlay/eui-overlay.component.mjs +7 -7
  131. package/esm2022/eui-page/components/eui-page-breadcrumb/eui-page-breadcrumb.component.mjs +3 -3
  132. package/esm2022/eui-page/components/eui-page-column/eui-page-column.component.mjs +21 -21
  133. package/esm2022/eui-page/components/eui-page-columns/eui-page-columns.component.mjs +3 -3
  134. package/esm2022/eui-page/components/eui-page-content/eui-page-content.component.mjs +3 -3
  135. package/esm2022/eui-page/components/eui-page-footer/eui-page-footer.component.mjs +3 -3
  136. package/esm2022/eui-page/components/eui-page-header/eui-page-header.component.mjs +9 -9
  137. package/esm2022/eui-page/components/eui-page-hero-header/eui-page-hero-header.component.mjs +3 -3
  138. package/esm2022/eui-page/components/eui-page-top-content/eui-page-top-content.component.mjs +3 -3
  139. package/esm2022/eui-page/eui-page.component.mjs +3 -3
  140. package/esm2022/eui-page/eui-page.module.mjs +4 -4
  141. package/esm2022/eui-paginator/eui-paginator.component.mjs +3 -3
  142. package/esm2022/eui-paginator/eui-paginator.module.mjs +4 -4
  143. package/esm2022/eui-popover/directives/eui-popover-arrow-position.directive.mjs +3 -3
  144. package/esm2022/eui-popover/eui-popover.component.mjs +3 -3
  145. package/esm2022/eui-popover/eui-popover.module.mjs +4 -4
  146. package/esm2022/eui-progress-bar/eui-progress-bar.component.mjs +3 -3
  147. package/esm2022/eui-progress-bar/eui-progress-bar.module.mjs +4 -4
  148. package/esm2022/eui-progress-circle/eui-progress-circle.component.mjs +7 -7
  149. package/esm2022/eui-select/eui-select-control.directive.mjs +3 -3
  150. package/esm2022/eui-select/eui-select-multiple.directive.mjs +3 -3
  151. package/esm2022/eui-select/eui-select-mutli-option.directive.mjs +3 -3
  152. package/esm2022/eui-select/eui-select-option.directive.mjs +3 -3
  153. package/esm2022/eui-select/eui-select.component.mjs +3 -3
  154. package/esm2022/eui-select/eui-select.module.mjs +4 -4
  155. package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +3 -3
  156. package/esm2022/eui-sidebar-menu/eui-sidebar-menu.module.mjs +4 -4
  157. package/esm2022/eui-skeleton/eui-skeleton.component.mjs +3 -3
  158. package/esm2022/eui-skeleton/eui-skeleton.module.mjs +4 -4
  159. package/esm2022/eui-slide-toggle/eui-slide-toggle.component.mjs +3 -3
  160. package/esm2022/eui-slide-toggle/eui-slide-toggle.module.mjs +4 -4
  161. package/esm2022/eui-table/directives/eui-table-sticky-columns.directive.mjs +3 -3
  162. package/esm2022/eui-table/eui-table.component.mjs +3 -3
  163. package/esm2022/eui-table/eui-table.module.mjs +4 -4
  164. package/esm2022/eui-table/expandable-row/eui-table-expandable-row.component.mjs +3 -3
  165. package/esm2022/eui-table/filter/eui-table-filter.component.mjs +3 -3
  166. package/esm2022/eui-table/pipes/eui-table-highlight-filter.pipe.mjs +3 -3
  167. package/esm2022/eui-table/selectable-header/eui-table-selectable-header.component.mjs +3 -3
  168. package/esm2022/eui-table/selectable-row/eui-table-selectable-row.component.mjs +3 -3
  169. package/esm2022/eui-table/services/eui-table-selectable-row.service.mjs +3 -3
  170. package/esm2022/eui-table/services/eui-table-sort.service.mjs +3 -3
  171. package/esm2022/eui-table/sortable-col/eui-table-sortable-col.component.mjs +3 -3
  172. package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +3 -3
  173. package/esm2022/eui-tabs/eui-tab-content/eui-tab-content.component.mjs +3 -3
  174. package/esm2022/eui-tabs/eui-tab-label/eui-tab-label.component.mjs +6 -6
  175. package/esm2022/eui-tabs/eui-tabs.component.mjs +6 -6
  176. package/esm2022/eui-tabs/eui-tabs.module.mjs +4 -4
  177. package/esm2022/eui-textarea/auto-resize.directive.mjs +3 -3
  178. package/esm2022/eui-textarea/eui-textarea.component.mjs +3 -3
  179. package/esm2022/eui-textarea/eui-textarea.module.mjs +4 -4
  180. package/esm2022/eui-timebar/eui-timebar.component.mjs +7 -7
  181. package/esm2022/eui-timeline/eui-timeline-item.component.mjs +3 -3
  182. package/esm2022/eui-timeline/eui-timeline.component.mjs +3 -3
  183. package/esm2022/eui-timeline/eui-timeline.module.mjs +4 -4
  184. package/esm2022/eui-timepicker/eui-timepicker.component.mjs +41 -36
  185. package/esm2022/eui-timepicker/eui-timepicker.module.mjs +4 -4
  186. package/esm2022/eui-tree/eui-dropdown-tree.directive.mjs +7 -7
  187. package/esm2022/eui-tree/eui-tree-form-control.directive.mjs +7 -7
  188. package/esm2022/eui-tree/eui-tree.component.mjs +7 -7
  189. package/esm2022/eui-tree-list/eui-tree-list-item.component.mjs +12 -12
  190. package/esm2022/eui-tree-list/eui-tree-list.component.mjs +3 -3
  191. package/esm2022/eui-tree-list/eui-tree-list.module.mjs +4 -4
  192. package/esm2022/eui-tree-list/item-content/item-content.component.mjs +3 -3
  193. package/esm2022/eui-tree-list/toolbar/toolbar.component.mjs +6 -6
  194. package/esm2022/eui-wizard/eui-wizard-step.component.mjs +3 -3
  195. package/esm2022/eui-wizard/eui-wizard.component.mjs +3 -3
  196. package/esm2022/eui-wizard/eui-wizard.module.mjs +4 -4
  197. package/esm2022/eui-wizard/services/eui-wizard.service.mjs +3 -3
  198. package/esm2022/externals/charts/chart/chart.component.mjs +3 -3
  199. package/esm2022/externals/charts/eui-charts.module.mjs +4 -4
  200. package/esm2022/externals/eui-editor/counters/eui-editor-counters.component.mjs +3 -3
  201. package/esm2022/externals/eui-editor/directives/eui-editor-maxlength.directive.mjs +3 -3
  202. package/esm2022/externals/eui-editor/eui-editor.component.mjs +6 -6
  203. package/esm2022/externals/eui-editor/eui-editor.module.mjs +4 -4
  204. package/esm2022/externals/eui-editor/html-view/eui-editor-html-view.component.mjs +3 -3
  205. package/esm2022/externals/eui-editor/image-url-dialog/image-url-dialog.component.mjs +3 -3
  206. package/esm2022/externals/eui-editor/json-view/eui-editor-json-view.component.mjs +3 -3
  207. package/esm2022/externals/quill/loader.service.mjs +3 -3
  208. package/esm2022/externals/quill/quill-editor.component.mjs +3 -3
  209. package/esm2022/externals/quill/quill.module.mjs +4 -4
  210. package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.mjs +3 -3
  211. package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.module.mjs +4 -4
  212. package/esm2022/layout/eui-app/eui-app-footer/footer.component.mjs +3 -3
  213. package/esm2022/layout/eui-app/eui-app-footer/footer.module.mjs +4 -4
  214. package/esm2022/layout/eui-app/eui-app-header/header.component.mjs +3 -3
  215. package/esm2022/layout/eui-app/eui-app-header/header.module.mjs +4 -4
  216. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-body/sidebar-body.component.mjs +3 -3
  217. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-drawer/sidebar-drawer.component.mjs +3 -3
  218. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
  219. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
  220. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.mjs +3 -3
  221. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +3 -3
  222. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +3 -3
  223. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.module.mjs +4 -4
  224. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +3 -3
  225. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.module.mjs +4 -4
  226. package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +3 -3
  227. package/esm2022/layout/eui-app/eui-app-top-message/top-message.module.mjs +4 -4
  228. package/esm2022/layout/eui-app/eui-app.component.mjs +6 -6
  229. package/esm2022/layout/eui-app/eui-app.module.mjs +4 -4
  230. package/esm2022/layout/eui-breadcrumb/breadcrumb.component.mjs +3 -3
  231. package/esm2022/layout/eui-breadcrumb/breadcrumb.module.mjs +4 -4
  232. package/esm2022/layout/eui-breadcrumb/breadcrumb.service.mjs +3 -3
  233. package/esm2022/layout/eui-breadcrumb/collapsed-breadcrumb/collapsed-breadcrumb.component.mjs +6 -6
  234. package/esm2022/layout/eui-breadcrumb/item/breadcrumb-item.component.mjs +3 -3
  235. package/esm2022/layout/eui-footer/footer.component.mjs +3 -3
  236. package/esm2022/layout/eui-footer/footer.module.mjs +4 -4
  237. package/esm2022/layout/eui-header/header-app/header-app.component.mjs +12 -12
  238. package/esm2022/layout/eui-header/header-app-name/header-app-name.component.mjs +3 -3
  239. package/esm2022/layout/eui-header/header-app-name-logo/header-app-name-logo.component.mjs +3 -3
  240. package/esm2022/layout/eui-header/header-app-subtitle/header-app-subtitle.component.mjs +3 -3
  241. package/esm2022/layout/eui-header/header-environment/header-environment.component.mjs +3 -3
  242. package/esm2022/layout/eui-header/header-logo/header-logo.component.mjs +3 -3
  243. package/esm2022/layout/eui-header/header-right-content/header-right-content.component.mjs +3 -3
  244. package/esm2022/layout/eui-header/header-user-profile/header-user-profile.component.mjs +3 -3
  245. package/esm2022/layout/eui-header/header.component.mjs +3 -3
  246. package/esm2022/layout/eui-header/header.module.mjs +4 -4
  247. package/esm2022/layout/eui-language-selector/language-selector.component.mjs +3 -3
  248. package/esm2022/layout/eui-language-selector/language-selector.module.mjs +4 -4
  249. package/esm2022/layout/eui-language-selector/modal-selector/modal-selector.component.mjs +3 -3
  250. package/esm2022/layout/eui-layout.module.mjs +4 -4
  251. package/esm2022/layout/eui-notifications/eui-notification-item.component.mjs +3 -3
  252. package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +3 -3
  253. package/esm2022/layout/eui-notifications/eui-notifications.module.mjs +4 -4
  254. package/esm2022/layout/eui-notifications-v2/eui-notification-item.component.mjs +3 -3
  255. package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +3 -3
  256. package/esm2022/layout/eui-notifications-v2/eui-notifications.module.mjs +4 -4
  257. package/esm2022/layout/eui-search/search.component.mjs +3 -3
  258. package/esm2022/layout/eui-search/search.module.mjs +4 -4
  259. package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.component.mjs +3 -3
  260. package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.module.mjs +4 -4
  261. package/esm2022/layout/eui-toolbar/toolbar-app/toolbar-app.component.mjs +3 -3
  262. package/esm2022/layout/eui-toolbar/toolbar-center/toolbar-center.component.mjs +3 -3
  263. package/esm2022/layout/eui-toolbar/toolbar-environment/toolbar-environment.component.mjs +3 -3
  264. package/esm2022/layout/eui-toolbar/toolbar-item/toolbar-item.component.mjs +3 -3
  265. package/esm2022/layout/eui-toolbar/toolbar-items/toolbar-items.component.mjs +3 -3
  266. package/esm2022/layout/eui-toolbar/toolbar-logo/toolbar-logo.component.mjs +3 -3
  267. package/esm2022/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.mjs +17 -8
  268. package/esm2022/layout/eui-toolbar/toolbar.component.mjs +4 -4
  269. package/esm2022/layout/eui-toolbar/toolbar.module.mjs +4 -4
  270. package/esm2022/layout/eui-user-profile/user-profile-card/user-profile-card.component.mjs +3 -3
  271. package/esm2022/layout/eui-user-profile/user-profile-menu/user-profile-menu.component.mjs +3 -3
  272. package/esm2022/layout/eui-user-profile/user-profile-menu-item/user-profile-menu-item.component.mjs +3 -3
  273. package/esm2022/layout/eui-user-profile/user-profile.component.mjs +3 -3
  274. package/esm2022/layout/eui-user-profile/user-profile.module.mjs +4 -4
  275. package/esm2022/pipes/eui-is-empty.pipe.mjs +7 -7
  276. package/esm2022/pipes/eui-truncate.pipe.mjs +7 -7
  277. package/esm2022/shared/base/base-states.directive.mjs +3 -3
  278. package/esm2022/shared/base/base.directive.mjs +3 -3
  279. package/esm2022/shared/eui-common-header/common-header.component.mjs +7 -7
  280. package/esm2022/shared/eui-expand-content/eui-expand-content.component.mjs +7 -7
  281. package/esm2022/shared/input.directive.mjs +3 -3
  282. package/eui-alert/eui-alert.component.d.ts.map +1 -1
  283. package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
  284. package/eui-avatar/eui-avatar.component.d.ts.map +1 -1
  285. package/eui-block-content/eui-block-content.component.d.ts.map +1 -1
  286. package/eui-block-document/eui-block-document.component.d.ts.map +1 -1
  287. package/eui-button/eui-button.component.d.ts.map +1 -1
  288. package/eui-button-group/eui-button-group.component.d.ts.map +1 -1
  289. package/eui-card/eui-card.component.d.ts.map +1 -1
  290. package/eui-chip/eui-chip.component.d.ts.map +1 -1
  291. package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
  292. package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
  293. package/eui-dropdown/eui-dropdown.component.d.ts +2 -1
  294. package/eui-dropdown/eui-dropdown.component.d.ts.map +1 -1
  295. package/eui-fieldset/eui-fieldset.component.d.ts.map +1 -1
  296. package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
  297. package/eui-menu/eui-menu.component.d.ts.map +1 -1
  298. package/eui-message-box/eui-message-box.component.d.ts +10 -1
  299. package/eui-message-box/eui-message-box.component.d.ts.map +1 -1
  300. package/eui-page/components/eui-page-column/eui-page-column.component.d.ts.map +1 -1
  301. package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
  302. package/eui-timeline/eui-timeline-item.component.d.ts.map +1 -1
  303. package/eui-timeline/eui-timeline.component.d.ts.map +1 -1
  304. package/eui-timepicker/eui-timepicker.component.d.ts.map +1 -1
  305. package/fesm2022/eui-components-directives.mjs +67 -67
  306. package/fesm2022/eui-components-eui-alert.mjs +10 -10
  307. package/fesm2022/eui-components-eui-all.mjs +4 -4
  308. package/fesm2022/eui-components-eui-autocomplete.mjs +13 -13
  309. package/fesm2022/eui-components-eui-avatar.mjs +22 -22
  310. package/fesm2022/eui-components-eui-badge.mjs +7 -7
  311. package/fesm2022/eui-components-eui-block-content.mjs +7 -7
  312. package/fesm2022/eui-components-eui-block-document.mjs +7 -7
  313. package/fesm2022/eui-components-eui-button-group.mjs +7 -7
  314. package/fesm2022/eui-components-eui-button.mjs +7 -7
  315. package/fesm2022/eui-components-eui-buttons.mjs +13 -13
  316. package/fesm2022/eui-components-eui-buttons.mjs.map +1 -1
  317. package/fesm2022/eui-components-eui-card.mjs +46 -46
  318. package/fesm2022/eui-components-eui-card.mjs.map +1 -1
  319. package/fesm2022/eui-components-eui-chip-list.mjs +13 -13
  320. package/fesm2022/eui-components-eui-chip.mjs +7 -7
  321. package/fesm2022/eui-components-eui-dashboard-button.mjs +13 -13
  322. package/fesm2022/eui-components-eui-dashboard-card.mjs +7 -7
  323. package/fesm2022/eui-components-eui-date-range-selector.mjs +7 -7
  324. package/fesm2022/eui-components-eui-datepicker.mjs +19 -19
  325. package/fesm2022/eui-components-eui-dialog.mjs +19 -19
  326. package/fesm2022/eui-components-eui-dimmer.mjs +7 -7
  327. package/fesm2022/eui-components-eui-disable-content.mjs +7 -7
  328. package/fesm2022/eui-components-eui-discussion-thread.mjs +10 -10
  329. package/fesm2022/eui-components-eui-dropdown.mjs +35 -23
  330. package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
  331. package/fesm2022/eui-components-eui-feedback-message.mjs +7 -7
  332. package/fesm2022/eui-components-eui-fieldset.mjs +13 -13
  333. package/fesm2022/eui-components-eui-file-upload.mjs +19 -19
  334. package/fesm2022/eui-components-eui-growl.mjs +7 -7
  335. package/fesm2022/eui-components-eui-icon-toggle.mjs +7 -7
  336. package/fesm2022/eui-components-eui-icon.mjs +16 -16
  337. package/fesm2022/eui-components-eui-input-checkbox.mjs +7 -7
  338. package/fesm2022/eui-components-eui-input-group.mjs +7 -7
  339. package/fesm2022/eui-components-eui-input-number.mjs +10 -10
  340. package/fesm2022/eui-components-eui-input-radio.mjs +7 -7
  341. package/fesm2022/eui-components-eui-input-text.mjs +7 -7
  342. package/fesm2022/eui-components-eui-label.mjs +7 -7
  343. package/fesm2022/eui-components-eui-list.mjs +13 -13
  344. package/fesm2022/eui-components-eui-menu.mjs +10 -10
  345. package/fesm2022/eui-components-eui-message-box.mjs +26 -14
  346. package/fesm2022/eui-components-eui-message-box.mjs.map +1 -1
  347. package/fesm2022/eui-components-eui-overlay.mjs +19 -19
  348. package/fesm2022/eui-components-eui-page.mjs +55 -55
  349. package/fesm2022/eui-components-eui-paginator.mjs +7 -7
  350. package/fesm2022/eui-components-eui-popover.mjs +10 -10
  351. package/fesm2022/eui-components-eui-progress-bar.mjs +7 -7
  352. package/fesm2022/eui-components-eui-progress-circle.mjs +7 -7
  353. package/fesm2022/eui-components-eui-select.mjs +19 -19
  354. package/fesm2022/eui-components-eui-sidebar-menu.mjs +7 -7
  355. package/fesm2022/eui-components-eui-skeleton.mjs +7 -7
  356. package/fesm2022/eui-components-eui-slide-toggle.mjs +7 -7
  357. package/fesm2022/eui-components-eui-table.mjs +34 -34
  358. package/fesm2022/eui-components-eui-table.mjs.map +1 -1
  359. package/fesm2022/eui-components-eui-tabs.mjs +22 -22
  360. package/fesm2022/eui-components-eui-textarea.mjs +10 -10
  361. package/fesm2022/eui-components-eui-timebar.mjs +7 -7
  362. package/fesm2022/eui-components-eui-timeline.mjs +10 -10
  363. package/fesm2022/eui-components-eui-timepicker.mjs +44 -39
  364. package/fesm2022/eui-components-eui-timepicker.mjs.map +1 -1
  365. package/fesm2022/eui-components-eui-tree-list.mjs +28 -28
  366. package/fesm2022/eui-components-eui-tree.mjs +21 -21
  367. package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
  368. package/fesm2022/eui-components-eui-wizard.mjs +13 -13
  369. package/fesm2022/eui-components-externals-charts.mjs +7 -7
  370. package/fesm2022/eui-components-externals-eui-editor.mjs +25 -25
  371. package/fesm2022/eui-components-externals-quill.mjs +10 -10
  372. package/fesm2022/eui-components-layout.mjs +241 -232
  373. package/fesm2022/eui-components-layout.mjs.map +1 -1
  374. package/fesm2022/eui-components-pipes.mjs +14 -14
  375. package/fesm2022/eui-components-shared-base.mjs +6 -6
  376. package/fesm2022/eui-components-shared.mjs +17 -17
  377. package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts.map +1 -1
  378. package/layout/eui-app/eui-app.component.d.ts.map +1 -1
  379. package/layout/eui-header/header-user-profile/header-user-profile.component.d.ts.map +1 -1
  380. package/layout/eui-search/search.component.d.ts.map +1 -1
  381. package/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.d.ts +4 -2
  382. package/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.d.ts.map +1 -1
  383. package/layout/eui-user-profile/user-profile.component.d.ts.map +1 -1
  384. package/package.json +7 -7
@@ -62,35 +62,34 @@ export class EuiTimepickerComponent {
62
62
  ngOnInit() {
63
63
  this.oneInputFormControl.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((value) => {
64
64
  // splits the entered time into 3 parts based on the : and propagates back the corresponding parts
65
- const timeArray = value.split(':');
66
- this.oneInputHours = timeArray[0];
67
- this.oneInputMins = timeArray[1];
68
- this.oneInputSecs = timeArray[2];
69
- const splittedhours = value !== '' ? Number(this.oneInputHours) : null;
70
- const splittedmins = value !== '' ? Number(this.oneInputMins) : null;
71
- const splittedsecs = value !== '' ? Number(this.oneInputSecs) : null;
72
- if (this.hasSeconds) {
73
- this.propagatedValues = {
74
- ...this.propagatedValues,
75
- hours: splittedhours,
76
- mins: splittedmins,
77
- secs: splittedsecs,
78
- };
79
- this.callbackFn(splittedhours, splittedmins, splittedsecs);
80
- }
81
- else {
82
- this.propagatedValues = {
83
- ...this.propagatedValues,
84
- hours: splittedhours,
85
- mins: splittedmins,
86
- };
87
- this.callbackFn(splittedhours, splittedmins);
88
- }
89
- if (splittedhours === null && splittedmins === null && splittedsecs === null) {
90
- this.propagateChange(null);
91
- }
92
- else {
93
- this.propagateChange(this.propagatedValues);
65
+ if (value) {
66
+ [this.oneInputHours, this.oneInputMins, this.oneInputSecs] = value.split(':');
67
+ const splittedhours = this.oneInputHours ? Number(this.oneInputHours) : null;
68
+ const splittedmins = this.oneInputMins ? Number(this.oneInputMins) : null;
69
+ const splittedsecs = this.oneInputSecs ? Number(this.oneInputSecs) : null;
70
+ if (this.hasSeconds) {
71
+ this.propagatedValues = {
72
+ ...this.propagatedValues,
73
+ hours: splittedhours,
74
+ mins: splittedmins,
75
+ secs: splittedsecs,
76
+ };
77
+ this.callbackFn(splittedhours, splittedmins, splittedsecs);
78
+ }
79
+ else {
80
+ this.propagatedValues = {
81
+ ...this.propagatedValues,
82
+ hours: splittedhours,
83
+ mins: splittedmins,
84
+ };
85
+ this.callbackFn(splittedhours, splittedmins);
86
+ }
87
+ if (splittedhours === null && splittedmins === null && splittedsecs === null) {
88
+ this.propagateChange(null);
89
+ }
90
+ else {
91
+ this.propagateChange(this.propagatedValues);
92
+ }
94
93
  }
95
94
  });
96
95
  }
@@ -237,18 +236,24 @@ export class EuiTimepickerComponent {
237
236
  }
238
237
  writeValue(values) {
239
238
  if (!values) {
239
+ this.hours = null;
240
+ this.mins = null;
241
+ this.secs = null;
242
+ if (this.isOneInputField) {
243
+ this.oneInputFormControl.setValue(null);
244
+ }
240
245
  return;
241
246
  }
242
247
  if (typeof values !== 'object' || Array.isArray(values)) {
243
248
  throw new Error('value must be an EuiTimePicker Object');
244
249
  }
245
- if (values.hours === undefined || values.hours < 0 || values.hours > 23 || typeof values.hours !== 'number') {
250
+ if (values.hours < 0 || values.hours > 23 || typeof values.hours !== 'number') {
246
251
  throw new Error('hours must be defined and be a number with range 0-23');
247
252
  }
248
- if (values.mins === undefined || values.mins < 0 || values.mins > 59 || typeof values.mins !== 'number') {
253
+ if (values.mins < 0 || values.mins > 59 || typeof values.mins !== 'number') {
249
254
  throw new Error('mins must be defined and be a number with range 0-59');
250
255
  }
251
- if (this.hasSeconds && (values.secs === undefined || values.secs < 0 || values.secs > 59 || typeof values.secs !== 'number')) {
256
+ if (this.hasSeconds && (values.secs < 0 || values.secs > 59 || typeof values.secs !== 'number')) {
252
257
  throw new Error('secs must be defined and be a number with range 0-59');
253
258
  }
254
259
  this.updateHours(values.hours.toString());
@@ -340,10 +345,10 @@ export class EuiTimepickerComponent {
340
345
  return '';
341
346
  }
342
347
  }
343
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTimepickerComponent, deps: [{ token: DYNAMIC_COMPONENT_CONFIG, optional: true }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
344
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.6", type: EuiTimepickerComponent, selector: "eui-timepicker", inputs: { e2eAttr: "e2eAttr", timeMask: "timeMask", placeholder: "placeholder", stepHours: "stepHours", stepMinutes: "stepMinutes", stepSeconds: "stepSeconds", isreadOnly: ["isreadOnly", "isreadOnly", booleanAttribute], isOneInputField: ["isOneInputField", "isOneInputField", booleanAttribute], hasSeconds: ["hasSeconds", "hasSeconds", booleanAttribute] }, usesOnChanges: true, ngImport: i0, template: "<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\" attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"oneInputFormControl.value?oneInputFormControl.value:'No time value'\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-up\">\n <eui-icon-svg\n (click)=\"changeHours(stepHours)\"\n [class.time-control--disabled]=\"hoursUpDisabled\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n (keydown.ArrowUp)=\"changeHours(stepHours); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-stepHours); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-down\">\n <eui-icon-svg\n (click)=\"changeHours(-stepHours)\"\n [class.time-control--disabled]=\"hoursDownDisabled\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\">\n </eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-up\">\n <eui-icon-svg\n (click)=\"changeMinutes(stepMinutes)\"\n [class.time-control--disabled]=\"minutesUpDisabled\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n (keydown.ArrowUp)=\"changeMinutes(stepMinutes); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-stepMinutes); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-down\">\n <eui-icon-svg\n (click)=\"changeMinutes(-stepMinutes)\"\n [class.time-control--disabled]=\"minutesDownDisabled\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\">\n </eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-up\">\n <eui-icon-svg\n (click)=\"changeSeconds(stepSeconds)\"\n [class.time-control--disabled]=\"secondsUpDisabled\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n (keydown.ArrowUp)=\"changeSeconds(stepSeconds); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-stepSeconds); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-down\">\n <eui-icon-svg\n (click)=\"changeSeconds(-stepSeconds)\"\n [class.time-control--disabled]=\"secondsDownDisabled\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\">\n </eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".eui-timepicker{align-items:center;display:flex}.eui-timepicker--centered{justify-content:center}.eui-timepicker__input-container{width:calc(4 * var(--eui-base-spacing-m))}.eui-timepicker__input{text-align:center;width:100%}.eui-timepicker__input--one-field{width:calc(6 * var(--eui-base-spacing-m));margin-bottom:var(--eui-base-spacing-2xs)}.eui-timepicker__spacer{text-align:center;width:var(--eui-base-spacing-m)}.eui-timepicker__chevron{display:flex;justify-content:center;padding:var(--eui-base-spacing-xs)}.eui-timepicker__chevron .eui-icon-svg:not(.time-control--disabled):hover{cursor:pointer;color:var(--eui-base-color-primary-100)}.eui-timepicker__chevron .eui-icon-svg.time-control--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-base-disabled-opacity)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.EuiInputNumberComponent, selector: "input[euiInputNumber]", inputs: ["min", "max", "leadingZero", "isInvalid", "fractionDigits", "digits", "fillFraction", "roundUp", "noFormat", "value"] }, { kind: "directive", type: i3.EuiInputNumberDirective, selector: "input[euiInputNumber][formControl],input[euiInputNumber][formControlName],input[euiInputNumber][ngModel]" }, { kind: "component", type: i4.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["class", "isInvalid"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "directive", type: i6.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], encapsulation: i0.ViewEncapsulation.None }); }
348
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiTimepickerComponent, deps: [{ token: DYNAMIC_COMPONENT_CONFIG, optional: true }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
349
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.8", type: EuiTimepickerComponent, selector: "eui-timepicker", inputs: { e2eAttr: "e2eAttr", timeMask: "timeMask", placeholder: "placeholder", stepHours: "stepHours", stepMinutes: "stepMinutes", stepSeconds: "stepSeconds", isreadOnly: ["isreadOnly", "isreadOnly", booleanAttribute], isOneInputField: ["isOneInputField", "isOneInputField", booleanAttribute], hasSeconds: ["hasSeconds", "hasSeconds", booleanAttribute] }, usesOnChanges: true, ngImport: i0, template: "<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\" attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"oneInputFormControl.value?oneInputFormControl.value:'No time value'\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-up\">\n <eui-icon-svg\n (click)=\"changeHours(stepHours)\"\n [class.time-control--disabled]=\"hoursUpDisabled\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n (keydown.ArrowUp)=\"changeHours(stepHours); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-stepHours); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-down\">\n <eui-icon-svg\n (click)=\"changeHours(-stepHours)\"\n [class.time-control--disabled]=\"hoursDownDisabled\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\">\n </eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-up\">\n <eui-icon-svg\n (click)=\"changeMinutes(stepMinutes)\"\n [class.time-control--disabled]=\"minutesUpDisabled\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n (keydown.ArrowUp)=\"changeMinutes(stepMinutes); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-stepMinutes); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-down\">\n <eui-icon-svg\n (click)=\"changeMinutes(-stepMinutes)\"\n [class.time-control--disabled]=\"minutesDownDisabled\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\">\n </eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-up\">\n <eui-icon-svg\n (click)=\"changeSeconds(stepSeconds)\"\n [class.time-control--disabled]=\"secondsUpDisabled\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n (keydown.ArrowUp)=\"changeSeconds(stepSeconds); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-stepSeconds); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-down\">\n <eui-icon-svg\n (click)=\"changeSeconds(-stepSeconds)\"\n [class.time-control--disabled]=\"secondsDownDisabled\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\">\n </eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".eui-timepicker{align-items:center;display:flex}.eui-timepicker--centered{justify-content:center}.eui-timepicker__input-container{width:calc(4 * var(--eui-base-spacing-m))}.eui-timepicker__input{text-align:center;width:100%}.eui-timepicker__input--one-field{width:calc(6 * var(--eui-base-spacing-m));margin-bottom:var(--eui-base-spacing-2xs)}.eui-timepicker__spacer{text-align:center;width:var(--eui-base-spacing-m)}.eui-timepicker__chevron{display:flex;justify-content:center;padding:var(--eui-base-spacing-xs)}.eui-timepicker__chevron .eui-icon-svg:not(.time-control--disabled):hover{cursor:pointer;color:var(--eui-base-color-primary-100)}.eui-timepicker__chevron .eui-icon-svg.time-control--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-base-disabled-opacity)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.EuiInputNumberComponent, selector: "input[euiInputNumber]", inputs: ["min", "max", "leadingZero", "isInvalid", "fractionDigits", "digits", "fillFraction", "roundUp", "noFormat", "value"] }, { kind: "directive", type: i3.EuiInputNumberDirective, selector: "input[euiInputNumber][formControl],input[euiInputNumber][formControlName],input[euiInputNumber][ngModel]" }, { kind: "component", type: i4.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["class", "isInvalid"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "directive", type: i6.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], encapsulation: i0.ViewEncapsulation.None }); }
345
350
  }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTimepickerComponent, decorators: [{
351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiTimepickerComponent, decorators: [{
347
352
  type: Component,
348
353
  args: [{ selector: 'eui-timepicker', encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\" attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"oneInputFormControl.value?oneInputFormControl.value:'No time value'\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-up\">\n <eui-icon-svg\n (click)=\"changeHours(stepHours)\"\n [class.time-control--disabled]=\"hoursUpDisabled\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n (keydown.ArrowUp)=\"changeHours(stepHours); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-stepHours); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-down\">\n <eui-icon-svg\n (click)=\"changeHours(-stepHours)\"\n [class.time-control--disabled]=\"hoursDownDisabled\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\">\n </eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-up\">\n <eui-icon-svg\n (click)=\"changeMinutes(stepMinutes)\"\n [class.time-control--disabled]=\"minutesUpDisabled\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n (keydown.ArrowUp)=\"changeMinutes(stepMinutes); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-stepMinutes); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-down\">\n <eui-icon-svg\n (click)=\"changeMinutes(-stepMinutes)\"\n [class.time-control--disabled]=\"minutesDownDisabled\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\">\n </eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-up\">\n <eui-icon-svg\n (click)=\"changeSeconds(stepSeconds)\"\n [class.time-control--disabled]=\"secondsUpDisabled\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n (keydown.ArrowUp)=\"changeSeconds(stepSeconds); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-stepSeconds); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-down\">\n <eui-icon-svg\n (click)=\"changeSeconds(-stepSeconds)\"\n [class.time-control--disabled]=\"secondsDownDisabled\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\">\n </eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".eui-timepicker{align-items:center;display:flex}.eui-timepicker--centered{justify-content:center}.eui-timepicker__input-container{width:calc(4 * var(--eui-base-spacing-m))}.eui-timepicker__input{text-align:center;width:100%}.eui-timepicker__input--one-field{width:calc(6 * var(--eui-base-spacing-m));margin-bottom:var(--eui-base-spacing-2xs)}.eui-timepicker__spacer{text-align:center;width:var(--eui-base-spacing-m)}.eui-timepicker__chevron{display:flex;justify-content:center;padding:var(--eui-base-spacing-xs)}.eui-timepicker__chevron .eui-icon-svg:not(.time-control--disabled):hover{cursor:pointer;color:var(--eui-base-color-primary-100)}.eui-timepicker__chevron .eui-icon-svg.time-control--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-base-disabled-opacity)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"] }]
349
354
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -377,4 +382,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
377
382
  type: Input,
378
383
  args: [{ transform: booleanAttribute }]
379
384
  }] } });
380
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWVwaWNrZXIvZXVpLXRpbWVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWVwaWNrZXIvZXVpLXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsSUFBSSxFQUtKLGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1DLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7QUFVckQsTUFBTSxPQUFPLHNCQUFzQjtJQXFDL0IsWUFDa0QsTUFBK0IsRUFDakQsT0FBa0I7UUFBbEIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQWxDbEQsd0JBQW1CLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUtqQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFlBQU8sR0FBRyxnQkFBZ0IsQ0FBQztRQUUzQixhQUFRLEdBQUcsT0FBTyxDQUFBO1FBQ2xCLGdCQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUU1QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FB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Qyx1Q0FBdUMsQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxPQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQ3pHLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztTQUM1RTtRQUNELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNyRyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7U0FDM0U7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLEVBQUU7WUFDMUgsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1NBQzNFO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDOUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFD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O3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBTZWxmLFxuICAgIERvQ2hlY2ssXG4gICAgT25EZXN0cm95LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgT25DaGFuZ2VzLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERZTkFNSUNfQ09NUE9ORU5UX0NPTkZJRyB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlEYXRlVGltZVBpY2tlckNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL2V1aS1kYXRlLXRpbWUtcGlja2VyLmNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBFdWlUaW1lUGlja2VyIH0gZnJvbSAnLi9tb2RlbHMvZXVpLXRpbWVwaWNrZXIubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10aW1lcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRpbWVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMsIERvQ2hlY2ssIE9uRGVzdHJveSB7XG4gICAgaG91cnM6IG51bWJlcjtcbiAgICBtaW5zOiBudW1iZXI7XG4gICAgc2VjczogbnVtYmVyO1xuICAgIGlzRGF0ZXRpbWVwaWNrZXI6IGJvb2xlYW47XG4gICAgb25lSW5wdXRGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIG9uZUlucHV0SG91cnM6IHN0cmluZztcbiAgICBvbmVJbnB1dE1pbnM6IHN0cmluZztcbiAgICBvbmVJbnB1dFNlY3M6IHN0cmluZztcblxuICAgIHB1YmxpYyBob3Vyc1VwRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgaG91cnNEb3duRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgbWludXRlc1VwRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgbWludXRlc0Rvd25EaXNhYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWNvbmRzVXBEaXNhYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWNvbmRzRG93bkRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS10aW1lcGlja2VyJztcblxuICAgIEBJbnB1dCgpIHRpbWVNYXNrID0gJ0hoOm0wJ1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gdGhpcy50aW1lTWFzaztcblxuICAgIEBJbnB1dCgpIHN0ZXBIb3VycyA9IDE7XG4gICAgQElucHV0KCkgc3RlcE1pbnV0ZXMgPSAxO1xuICAgIEBJbnB1dCgpIHN0ZXBTZWNvbmRzID0gMTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc3JlYWRPbmx5ID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzT25lSW5wdXRGaWVsZCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNTZWNvbmRzID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHByb3BhZ2F0ZWRWYWx1ZXM6IEV1aVRpbWVQaWNrZXIgPSB7XG4gICAgICAgIGhvdXJzOiBudWxsLFxuICAgICAgICBtaW5zOiBudWxsLFxuICAgICAgICBzZWNzOiB0aGlzLmhhc1NlY29uZHMgPyBudWxsIDogdW5kZWZpbmVkLFxuICAgIH07XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEWU5BTUlDX0NPTVBPTkVOVF9DT05GSUcpIGNvbmZpZzogRXVpRGF0ZVRpbWVQaWNrZXJDb25maWcsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaG91cnMgPSBjb25maWc/LmhvdXJzIHx8IDA7XG4gICAgICAgIHRoaXMubWlucyA9IGNvbmZpZz8ubWlucyB8fCAwO1xuICAgICAgICB0aGlzLnNlY3MgPSBjb25maWc/LnNlY3MgfHwgMDtcbiAgICAgICAgdGhpcy5pc0RhdGV0aW1lcGlja2VyID0gY29uZmlnPy5pc0RhdGV0aW1lcGlja2VyO1xuICAgICAgICB0aGlzLmhhc1NlY29uZHMgPSBjb25maWc/Lmhhc1NlY29uZHM7XG4gICAgICAgIHRoaXMuaXNPbmVJbnB1dEZpZWxkID0gY29uZmlnPy5pc09uZUlucHV0RmllbGQ7XG4gICAgICAgIHRoaXMuc3RlcEhvdXJzID0gY29uZmlnPyBjb25maWcuc3RlcEhvdXJzOiB0aGlzLnN0ZXBIb3VycztcbiAgICAgICAgdGhpcy5zdGVwTWludXRlcyA9IGNvbmZpZz8gY29uZmlnLnN0ZXBNaW51dGVzOiB0aGlzLnN0ZXBNaW51dGVzO1xuICAgICAgICB0aGlzLnN0ZXBTZWNvbmRzID0gY29uZmlnPyBjb25maWcuc3RlcFNlY29uZHM6IHRoaXMuc3RlcFNlY29uZHM7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gdGhpcy5ob3VycyA9PT0gMCB8fCBudWxsID8gJzAwJyA6IHRoaXMuaG91cnM7XG4gICAgICAgIGNvbnN0IG1pbnMgPSB0aGlzLm1pbnMgPT09IDAgfHwgbnVsbCA/ICcwMCcgOiB0aGlzLm1pbnM7XG4gICAgICAgIGNvbnN0IHNlY3MgPSB0aGlzLnNlY3MgPT09IDAgfHwgbnVsbCA/ICcwMCcgOiB0aGlzLnNlY3M7XG4gICAgICAgIHRoaXMub25lSW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyArIGhvdXJzICsgJzonICsgbWlucyArICc6JyArIHNlY3MpO1xuICAgICAgICB0aGlzLmNhbGxiYWNrRm4gPSBjb25maWc/LmNhbGxiYWNrRm4gfHwgdGhpcy5jYWxsYmFja0ZuO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBcbiAgICAgICAgdGhpcy5vbmVJbnB1dEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgLy8gc3BsaXRzIHRoZSBlbnRlcmVkIHRpbWUgaW50byAzIHBhcnRzIGJhc2VkIG9uIHRoZSA6IGFuZCBwcm9wYWdhdGVzIGJhY2sgdGhlIGNvcnJlc3BvbmRpbmcgcGFydHNcbiAgICAgICAgICAgIGNvbnN0IHRpbWVBcnJheSA9IHZhbHVlLnNwbGl0KCc6Jyk7XG4gICAgICAgICAgICB0aGlzLm9uZUlucHV0SG91cnMgPSB0aW1lQXJyYXlbMF07XG4gICAgICAgICAgICB0aGlzLm9uZUlucHV0TWlucyA9IHRpbWVBcnJheVsxXTtcbiAgICAgICAgICAgIHRoaXMub25lSW5wdXRTZWNzID0gdGltZUFycmF5WzJdO1xuICAgICAgICAgICAgY29uc3Qgc3BsaXR0ZWRob3VycyA9IHZhbHVlICE9PSAnJyA/IE51bWJlcih0aGlzLm9uZUlucHV0SG91cnMpIDogbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0dGVkbWlucyA9IHZhbHVlICE9PSAnJyA/IE51bWJlcih0aGlzLm9uZUlucHV0TWlucykgOiBudWxsO1xuICAgICAgICAgICAgY29uc3Qgc3BsaXR0ZWRzZWNzID0gdmFsdWUgIT09ICcnID8gTnVtYmVyKHRoaXMub25lSW5wdXRTZWNzKSA6IG51bGw7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNTZWNvbmRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVkVmFsdWVzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnByb3BhZ2F0ZWRWYWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgIGhvdXJzOiBzcGxpdHRlZGhvdXJzLFxuICAgICAgICAgICAgICAgICAgICBtaW5zOiBzcGxpdHRlZG1pbnMsXG4gICAgICAgICAgICAgICAgICAgIHNlY3M6IHNwbGl0dGVkc2VjcyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tGbihzcGxpdHRlZGhvdXJzLCBzcGxpdHRlZG1pbnMsIHNwbGl0dGVkc2Vjcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlZFZhbHVlcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5wcm9wYWdhdGVkVmFsdWVzLFxuICAgICAgICAgICAgICAgICAgICBob3Vyczogc3BsaXR0ZWRob3VycyxcbiAgICAgICAgICAgICAgICAgICAgbWluczogc3BsaXR0ZWRtaW5zLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxsYmFja0ZuKHNwbGl0dGVkaG91cnMsIHNwbGl0dGVkbWlucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3BsaXR0ZWRob3VycyA9PT0gbnVsbCAmJiBzcGxpdHRlZG1pbnMgPT09IG51bGwgJiYgc3BsaXR0ZWRzZWNzID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucHJvcGFnYXRlZFZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOnZvaWQge1xuICAgICAgICBpZih0aGlzLmlzT25lSW5wdXRGaWVsZCkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMuaGFzU2Vjb25kcykge1xuICAgICAgICAgICAgICAgIHRoaXMudGltZU1hc2sgPSAnSGg6bTA6czAnO1xuICAgICAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSAnSGg6bTA6czAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNoYW5nZXMudGltZU1hc2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVNYXNrID0gY2hhbmdlcy50aW1lTWFzay5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGNoYW5nZXMudGltZU1hc2suY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYoY2hhbmdlcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBjaGFuZ2VzLnBsYWNlaG9sZGVyLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgLy8gbWFya3MgdGhlIGlucHV0IGNvbnRyb2wgYXMgdG91Y2hlZC9pbnZhbGlkIGlmIHRoZSBmb3JtIGNvbnRyb2wgaXMgdG91Y2hlZC9pbnZhbGlkXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnRvdWNoZWQgPyB0aGlzLm9uZUlucHV0Rm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpIDogdGhpcy5vbmVJbnB1dEZvcm1Db250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy5jb250cm9sPy5pbnZhbGlkID8gdGhpcy5vbmVJbnB1dEZvcm1Db250cm9sLnNldEVycm9ycyh0aGlzLmNvbnRyb2wuZXJyb3JzKSA6IHRoaXMub25lSW5wdXRGb3JtQ29udHJvbC5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluY3JlbWVudHMgb3IgZGVjcmVtZW50cyBob3VycyBhY2NvcmRpbmcgdG8gdGhlIHN0ZXAgcGFyYW0gYmVpbmcgcGFzc2VkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RlcCBUaGUgc3RlcCBudW1iZXIgdGhhdCBob3VycyB3aWxsIGluY3JlYXNlIG9yIGRlY3JlYXNlXG4gICAgICovXG4gICAgY2hhbmdlSG91cnMoc3RlcDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5ob3Vyc1VwRGlzYWJsZWQgfHwgIXRoaXMuaG91cnNEb3duRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IChpc05hTih0aGlzLmhvdXJzKSA/IDAgOiB0aGlzLmhvdXJzKSArIHN0ZXA7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUhvdXJzKHZhbC50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbmNyZW1lbnRzIG9yIGRlY3JlbWVudHMgbWludXRlcyBhY2NvcmRpbmcgdG8gdGhlIHN0ZXAgcGFyYW0gYmVpbmcgcGFzc2VkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RlcCBUaGUgc3RlcCBudW1iZXIgdGhhdCBtaW51dGVzIHdpbGwgaW5jcmVhc2Ugb3IgZGVjcmVhc2VcbiAgICAgKi9cbiAgICBjaGFuZ2VNaW51dGVzKHN0ZXA6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubWludXRlc1VwRGlzYWJsZWQgfHwgIXRoaXMubWludXRlc0Rvd25EaXNhYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gKGlzTmFOKHRoaXMubWlucykgPyAwIDogdGhpcy5taW5zKSArIHN0ZXA7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1pbnV0ZXModmFsLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluY3JlbWVudHMgb3IgZGVjcmVtZW50cyBzZWNvbmRzIGFjY29yZGluZyB0byB0aGUgc3RlcCBwYXJhbSBiZWluZyBwYXNzZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGVwIFRoZSBzdGVwIG51bWJlciB0aGF0IHNlY29uZHMgd2lsbCBpbmNyZWFzZSBvciBkZWNyZWFzZVxuICAgICAqL1xuICAgIGNoYW5nZVNlY29uZHMoc3RlcDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zZWNvbmRzVXBEaXNhYmxlZCB8fCAhdGhpcy5zZWNvbmRzRG93bkRpc2FibGVkKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSAoaXNOYU4odGhpcy5zZWNzKSA/IDAgOiB0aGlzLnNlY3MpICsgc3RlcDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2Vjb25kcyh2YWwudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgaW5wdXQgZmllbGQgd2hlbiBob3VycyBjaGFuZ2UgYW5kIGFkZHMgMjRob3VyIHZhbGlkYXRpb24gKyBwcm9wYWdhdGVzIHRoZSB2YWx1ZSBiYWNrIHRvIHRoZSBmb3JtXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3VmFsIFRoZSBuZXcgdmFsdWUgdGhhdCBob3VycyB3aWxsIGhhdmVcbiAgICAgKi9cbiAgICB1cGRhdGVIb3VycyhuZXdWYWw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbnRlcmVkSG91ciA9IHRoaXMudG9JbnRlZ2VyKG5ld1ZhbCk7XG5cbiAgICAgICAgaWYgKCFpc05hTihlbnRlcmVkSG91cikpIHtcbiAgICAgICAgICAgIHRoaXMuaG91cnMgPSAoZW50ZXJlZEhvdXIgPCAwID8gMjQgKyBlbnRlcmVkSG91ciA6IGVudGVyZWRIb3VyKSAlIDI0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ob3VycyA9IE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2FsbGJhY2tGbih0aGlzLmhvdXJzLCB0aGlzLm1pbnMsIHRoaXMuc2Vjcyk7XG5cbiAgICAgICAgdGhpcy5wcm9wYWdhdGVkVmFsdWVzID0ge1xuICAgICAgICAgICAgLi4udGhpcy5wcm9wYWdhdGVkVmFsdWVzLFxuICAgICAgICAgICAgaG91cnM6IHRoaXMuaG91cnMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucHJvcGFnYXRlZFZhbHVlcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGlucHV0IGZpZWxkIHdoZW4gbWludXRlcyBjaGFuZ2UgYW5kIGFkZHMgNjBtaW5zIHZhbGlkYXRpb24gKyBwcm9wYWdhdGVzIHRoZSB2YWx1ZSBiYWNrIHRvIHRoZSBmb3JtXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3VmFsIFRoZSBuZXcgdmFsdWUgdGhhdCBtaW51dGVzIHdpbGwgaGF2ZVxuICAgICAqL1xuICAgIHVwZGF0ZU1pbnV0ZXMobmV3VmFsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZW50ZXJlZE1pbiA9IHRoaXMudG9JbnRlZ2VyKG5ld1ZhbCk7XG5cbiAgICAgICAgaWYgKCFpc05hTihlbnRlcmVkTWluKSkge1xuICAgICAgICAgICAgdGhpcy5taW5zID0gZW50ZXJlZE1pbiAlIDYwIDwgMCA/IDYwICsgKGVudGVyZWRNaW4gJSA2MCkgOiBlbnRlcmVkTWluICUgNjA7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZUhvdXJzKE1hdGguZmxvb3IoZW50ZXJlZE1pbiAvIDYwKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1pbnMgPSBOYU47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbGxiYWNrRm4odGhpcy5ob3VycywgdGhpcy5taW5zLCB0aGlzLnNlY3MpO1xuXG4gICAgICAgIHRoaXMucHJvcGFnYXRlZFZhbHVlcyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMucHJvcGFnYXRlZFZhbHVlcyxcbiAgICAgICAgICAgIG1pbnM6IHRoaXMubWlucyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5wcm9wYWdhdGVkVmFsdWVzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgaW5wdXQgZmllbGQgd2hlbiBzZWNvbmRzIGNoYW5nZSBhbmQgYWRkcyA2MHNlY3MgdmFsaWRhdGlvbiArIHByb3BhZ2F0ZXMgdGhlIHZhbHVlIGJhY2sgdG8gdGhlIGZvcm1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdWYWwgVGhlIG5ldyB2YWx1ZSB0aGF0IHNlY29uZHMgd2lsbCBoYXZlXG4gICAgICovXG4gICAgdXBkYXRlU2Vjb25kcyhuZXdWYWw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbnRlcmVkU2VjID0gdGhpcy50b0ludGVnZXIobmV3VmFsKTtcblxuICAgICAgICBpZiAoIWlzTmFOKGVudGVyZWRTZWMpKSB7XG4gICAgICAgICAgICB0aGlzLnNlY3MgPSBlbnRlcmVkU2VjICUgNjAgPCAwID8gNjAgKyAoZW50ZXJlZFNlYyAlIDYwKSA6IGVudGVyZWRTZWMgJSA2MDtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlTWludXRlcyhNYXRoLmZsb29yKGVudGVyZWRTZWMgLyA2MCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWNzID0gTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYWxsYmFja0ZuKHRoaXMuaG91cnMsIHRoaXMubWlucywgdGhpcy5zZWNzKTtcblxuICAgICAgICB0aGlzLnByb3BhZ2F0ZWRWYWx1ZXMgPSB7XG4gICAgICAgICAgICAuLi50aGlzLnByb3BhZ2F0ZWRWYWx1ZXMsXG4gICAgICAgICAgICBzZWNzOiB0aGlzLnNlY3MsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5wcm9wYWdhdGVkVmFsdWVzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXV0b2ZpbGxzIG1pbnMgYW5kIHNlY3Mgd2l0aCAwMHMgaWYgdGhlIHVzZXIgdGFicyBhZnRlciBlbnRlcmluZyBob3VycyBhbmQgbWFya3MgdGhlIGlucHV0IGFzIHRvdWNoZWRcbiAgICAgKi9cbiAgICBvbkZvY3VzT3V0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5vbmVJbnB1dEhvdXJzICYmICF0aGlzLm9uZUlucHV0TWlucyAmJiAhdGhpcy5vbmVJbnB1dFNlY3MpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5vbmVJbnB1dEhvdXJzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnMCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25lSW5wdXRIb3VycyA9ICcwMCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJzEnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uZUlucHV0SG91cnMgPSAnMDEnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICcyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbmVJbnB1dEhvdXJzID0gJzAyJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9uZUlucHV0Rm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShgJHt0aGlzLm9uZUlucHV0SG91cnN9IDogMDAgOiAwMGApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZXM6IEV1aVRpbWVQaWNrZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF2YWx1ZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlcyAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIG11c3QgYmUgYW4gRXVpVGltZVBpY2tlciBPYmplY3QnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWVzLmhvdXJzID09PSB1bmRlZmluZWQgfHwgdmFsdWVzLmhvdXJzIDwgMCB8fCB2YWx1ZXMuaG91cnMgPiAyMyB8fCB0eXBlb2YgdmFsdWVzLmhvdXJzICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdob3VycyBtdXN0IGJlIGRlZmluZWQgYW5kIGJlIGEgbnVtYmVyIHdpdGggcmFuZ2UgMC0yMycpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZXMubWlucyA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlcy5taW5zIDwgMCB8fCB2YWx1ZXMubWlucyA+IDU5IHx8IHR5cGVvZiB2YWx1ZXMubWlucyAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbWlucyBtdXN0IGJlIGRlZmluZWQgYW5kIGJlIGEgbnVtYmVyIHdpdGggcmFuZ2UgMC01OScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhhc1NlY29uZHMgJiYgKHZhbHVlcy5zZWNzID09PSB1bmRlZmluZWQgfHwgdmFsdWVzLnNlY3MgPCAwIHx8IHZhbHVlcy5zZWNzID4gNTkgfHwgdHlwZW9mIHZhbHVlcy5zZWNzICE9PSAnbnVtYmVyJykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc2VjcyBtdXN0IGJlIGRlZmluZWQgYW5kIGJlIGEgbnVtYmVyIHdpdGggcmFuZ2UgMC01OScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVIb3Vycyh2YWx1ZXMuaG91cnMudG9TdHJpbmcoKSk7XG4gICAgICAgIHRoaXMudXBkYXRlTWludXRlcyh2YWx1ZXMubWlucy50b1N0cmluZygpKTtcbiAgICAgICAgaWYgKHZhbHVlcy5zZWNzKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlY29uZHModmFsdWVzLnNlY3MudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNPbmVJbnB1dEZpZWxkKSB7XG4gICAgICAgICAgICBjb25zdCBob3VycyA9IHRoaXMucGFkTnVtYmVyKHZhbHVlcy5ob3Vycyk7XG4gICAgICAgICAgICBjb25zdCBtaW5zID0gdGhpcy5wYWROdW1iZXIodmFsdWVzLm1pbnMpO1xuICAgICAgICAgICAgY29uc3Qgc2VjcyA9IHRoaXMucGFkTnVtYmVyKHZhbHVlcy5zZWNzKTtcblxuICAgICAgICAgICAgdGhpcy5vbmVJbnB1dEZvcm1Db250cm9sLnBhdGNoVmFsdWUoJycgKyBob3VycyArICc6JyArIG1pbnMgKyAnOicgKyBzZWNzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlcyB0aGUgaG91ciB1cCBpbmNyZW1lbnRhbCB3aGVuIG1heCB0aW1lIHJhbmdlIGlzIHJlYWNoZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGF0ZSBUaGUgYm9vbGVhbiB2YWx1ZSB0aGF0IGVuYWJsZXMgdGhlIGZlYXR1cmVcbiAgICAgKi9cbiAgICBwdWJsaWMgaG91cnNVcERpc2FibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3Vyc1VwRGlzYWJsZWQgPSBzdGF0ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGlzYWJsZXMgdGhlIGhvdXIgZG93biBkZWNyZW1lbnRhbCB3aGVuIG1pbiB0aW1lIHJhbmdlIGlzIHJlYWNoZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGF0ZSBUaGUgYm9vbGVhbiB2YWx1ZSB0aGF0IGVuYWJsZXMgdGhlIGZlYXR1cmVcbiAgICAgKi9cbiAgICBwdWJsaWMgaG91cnNEb3duRGlzYWJsZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdXJzRG93bkRpc2FibGVkID0gc3RhdGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHRoZSBtaW51dGVzIHVwIGluY3JlbWVudGFsIHdoZW4gbWF4IHRpbWUgcmFuZ2UgaXMgcmVhY2hlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0YXRlIFRoZSBib29sZWFuIHZhbHVlIHRoYXQgZW5hYmxlcyB0aGUgZmVhdHVyZVxuICAgICAqL1xuICAgIHB1YmxpYyBtaW51dGVzVXBEaXNhYmxlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWludXRlc1VwRGlzYWJsZWQgPSBzdGF0ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGlzYWJsZXMgdGhlIG1pbnV0ZXMgZG93biBkZWNyZW1lbnRhbCB3aGVuIG1pbiB0aW1lIHJhbmdlIGlzIHJlYWNoZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGF0ZSBUaGUgYm9vbGVhbiB2YWx1ZSB0aGF0IGVuYWJsZXMgdGhlIGZlYXR1cmVcbiAgICAgKi9cbiAgICBwdWJsaWMgbWludXRlc0Rvd25EaXNhYmxlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWludXRlc0Rvd25EaXNhYmxlZCA9IHN0YXRlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlcyB0aGUgc2Vjb25kcyB1cCBpbmNyZW1lbnRhbCB3aGVuIG1heCB0aW1lIHJhbmdlIGlzIHJlYWNoZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGF0ZSBUaGUgYm9vbGVhbiB2YWx1ZSB0aGF0IGVuYWJsZXMgdGhlIGZlYXR1cmVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2Vjb25kc1VwRGlzYWJsZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlY29uZHNVcERpc2FibGVkID0gc3RhdGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHRoZSBzZWNvbmRzIGRvd24gZGVjcmVtZW50YWwgd2hlbiBtaW4gdGltZSByYW5nZSBpcyByZWFjaGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhdGUgVGhlIGJvb2xlYW4gdmFsdWUgdGhhdCBlbmFibGVzIHRoZSBmZWF0dXJlXG4gICAgICovXG4gICAgcHVibGljIHNlY29uZHNEb3duRGlzYWJsZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlY29uZHNEb3duRGlzYWJsZWQgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICBwcml2YXRlIGNhbGxiYWNrRm46IChob3VyczogbnVtYmVyLCBtaW5zOiBudW1iZXIsIHNlY3M/OiBudW1iZXIpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgdG9JbnRlZ2VyKHZhbHVlOiBhbnkpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoYCR7dmFsdWV9YCwgMTApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhZHMgbGVhZGluZyB6ZXJvIHRvIHRoZSBwcm92aWRlZCBudW1iZXIgd2hlbiBpc09uZUlucHV0RmllbGRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gYWRkIGxlYWRpbmcgemVybyB0b1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBwYWROdW1iZXIodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGlmICghaXNOYU4odGhpcy50b0ludGVnZXIodmFsdWUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGAwJHt2YWx1ZX1gLnNsaWNlKC0yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSk6IHZvaWQgPT4gey8qIGVtcHR5ICovfTtcblxuICAgIHByaXZhdGUgcHJvcGFnYXRlVG91Y2hlZCA9ICgpOiB2b2lkID0+IHsvKiBlbXB0eSAqL307XG59XG4iLCI8ZGl2IGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJcIiBbY2xhc3MuZXVpLXRpbWVwaWNrZXItLWNlbnRlcmVkXT1cImlzRGF0ZXRpbWVwaWNrZXJcIiBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc09uZUlucHV0RmllbGQ7IGVsc2UgbXVsdGlwbGVJbnB1dHNcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBbY2xhc3MuZXVpLXRpbWVwaWNrZXJfX2lucHV0LS1vbmUtZmllbGRdPVwiaXNEYXRldGltZXBpY2tlclwiXG4gICAgICAgICAgICBldWlJbnB1dFRleHRcbiAgICAgICAgICAgIG1hc2s9XCJ7eyB0aW1lTWFzayB9fVwiXG4gICAgICAgICAgICBbbGVhZFplcm9EYXRlVGltZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9uZUlucHV0Rm9ybUNvbnRyb2wudmFsdWU/b25lSW5wdXRGb3JtQ29udHJvbC52YWx1ZTonTm8gdGltZSB2YWx1ZSdcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIm9uZUlucHV0Rm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoKVwiXG4gICAgICAgICAgICBbZHJvcFNwZWNpYWxDaGFyYWN0ZXJzXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJpc3JlYWRPbmx5XCIgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVJbnB1dHM+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZXBpY2tlcl9faW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzcmVhZE9ubHlcIiBjbGFzcz1cImV1aS10aW1lcGlja2VyX19jaGV2cm9uIGV1aS10aW1lcGlja2VyX19ob3Vycy11cFwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmdcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZUhvdXJzKHN0ZXBIb3VycylcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGltZS1jb250cm9sLS1kaXNhYmxlZF09XCJob3Vyc1VwRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiZXVpLWNoZXZyb24tdXBcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I9XCJncmV5LTc1XCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkluY3JlYXNlIEhvdXJzXCI+XG4gICAgICAgICAgICAgICAgPC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNpbnB1dHJlZmhvdXJzXG4gICAgICAgICAgICAgICAgZXVpSW5wdXROdW1iZXJcbiAgICAgICAgICAgICAgICBbbGVhZGluZ1plcm9dPVwiMlwiXG4gICAgICAgICAgICAgICAgW2RpZ2l0c109XCIyXCJcbiAgICAgICAgICAgICAgICBbZnJhY3Rpb25EaWdpdHNdPVwiMFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZXBpY2tlcl9faW5wdXRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiSEhcIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImhvdXJzXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVIb3VycygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaXNyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkhvdXJzXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5BcnJvd1VwKT1cImNoYW5nZUhvdXJzKHN0ZXBIb3Vycyk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5BcnJvd0Rvd24pPVwiY2hhbmdlSG91cnMoLXN0ZXBIb3Vycyk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgLz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNyZWFkT25seVwiIGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2NoZXZyb24gZXVpLXRpbWVwaWNrZXJfX2hvdXJzLWRvd25cIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VIb3Vycygtc3RlcEhvdXJzKVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50aW1lLWNvbnRyb2wtLWRpc2FibGVkXT1cImhvdXJzRG93bkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1jaGV2cm9uLWRvd25cIlxuICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I9XCJncmV5LTc1XCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlY3JlYXNlIEhvdXJzXCI+XG4gICAgICAgICAgICAgICAgPC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZXBpY2tlcl9fc3BhY2VyXCI+OjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2lucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc3JlYWRPbmx5XCIgY2xhc3M9XCJldWktdGltZXBpY2tlcl9fY2hldnJvbiBldWktdGltZXBpY2tlcl9fbWludXRlcy11cFwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmdcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZU1pbnV0ZXMoc3RlcE1pbnV0ZXMpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRpbWUtY29udHJvbC0tZGlzYWJsZWRdPVwibWludXRlc1VwRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiZXVpLWNoZXZyb24tdXBcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I9XCJncmV5LTc1XCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkluY3JlYXNlIE1pbnV0ZXNcIj5cbiAgICAgICAgICAgICAgICA8L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgI2lucHV0cmVmbWluc1xuICAgICAgICAgICAgICAgIGV1aUlucHV0TnVtYmVyXG4gICAgICAgICAgICAgICAgW2xlYWRpbmdaZXJvXT1cIjJcIlxuICAgICAgICAgICAgICAgIFtkaWdpdHNdPVwiMlwiXG4gICAgICAgICAgICAgICAgW2ZyYWN0aW9uRGlnaXRzXT1cIjBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2lucHV0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk1NXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJtaW5zXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVNaW51dGVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJpc3JlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTWludXRlc1wiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uQXJyb3dVcCk9XCJjaGFuZ2VNaW51dGVzKHN0ZXBNaW51dGVzKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLkFycm93RG93bik9XCJjaGFuZ2VNaW51dGVzKC1zdGVwTWludXRlcyk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgLz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNyZWFkT25seVwiIGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2NoZXZyb24gZXVpLXRpbWVwaWNrZXJfX21pbnV0ZXMtZG93blwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmdcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZU1pbnV0ZXMoLXN0ZXBNaW51dGVzKVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50aW1lLWNvbnRyb2wtLWRpc2FibGVkXT1cIm1pbnV0ZXNEb3duRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiZXVpLWNoZXZyb24tZG93blwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcj1cImdyZXktNzVcIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwibFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGVjcmVhc2UgTWludXRlc1wiPlxuICAgICAgICAgICAgICAgIDwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU2Vjb25kc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lcGlja2VyX19zcGFjZXJcIj46PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2lucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNyZWFkT25seVwiIGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2NoZXZyb24gZXVpLXRpbWVwaWNrZXJfX3NlY29uZHMtdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVNlY29uZHMoc3RlcFNlY29uZHMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50aW1lLWNvbnRyb2wtLWRpc2FibGVkXT1cInNlY29uZHNVcERpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJldWktY2hldnJvbi11cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I9XCJncmV5LTc1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkluY3JlYXNlIHNlY29uZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICNpbnB1dHJlZnNlY3NcbiAgICAgICAgICAgICAgICAgICAgZXVpSW5wdXROdW1iZXJcbiAgICAgICAgICAgICAgICAgICAgW2xlYWRpbmdaZXJvXT1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBbZGlnaXRzXT1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBbZnJhY3Rpb25EaWdpdHNdPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2lucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTU1wiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlY3NcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVTZWNvbmRzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaXNyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWNvbmRzXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uQXJyb3dVcCk9XCJjaGFuZ2VTZWNvbmRzKHN0ZXBTZWNvbmRzKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5BcnJvd0Rvd24pPVwiY2hhbmdlU2Vjb25kcygtc3RlcFNlY29uZHMpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIC8+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc3JlYWRPbmx5XCIgY2xhc3M9XCJldWktdGltZXBpY2tlcl9fY2hldnJvbiBldWktdGltZXBpY2tlcl9fc2Vjb25kcy1kb3duXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmdcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VTZWNvbmRzKC1zdGVwU2Vjb25kcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRpbWUtY29udHJvbC0tZGlzYWJsZWRdPVwic2Vjb25kc0Rvd25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiZXVpLWNoZXZyb24tZG93blwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I9XCJncmV5LTc1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlY3JlYXNlIHNlY29uZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
385
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWVwaWNrZXIvZXVpLXRpbWVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWVwaWNrZXIvZXVpLXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsSUFBSSxFQUtKLGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1DLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7QUFVckQsTUFBTSxPQUFPLHNCQUFzQjtJQXFDL0IsWUFDa0QsTUFBK0IsRUFDakQsT0FBa0I7UUFBbEIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQWxDbEQsd0JBQW1CLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUtqQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFlBQU8sR0FBRyxnQkFBZ0IsQ0FBQztRQUUzQixhQUFRLEdBQUcsT0FBTyxDQUFBO1FBQ2xCLGdCQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUU1QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FB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LFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBTZWxmLFxuICAgIERvQ2hlY2ssXG4gICAgT25EZXN0cm95LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgT25DaGFuZ2VzLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERZTkFNSUNfQ09NUE9ORU5UX0NPTkZJRyB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlEYXRlVGltZVBpY2tlckNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL2V1aS1kYXRlLXRpbWUtcGlja2VyLmNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBFdWlUaW1lUGlja2VyIH0gZnJvbSAnLi9tb2RlbHMvZXVpLXRpbWVwaWNrZXIubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10aW1lcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRpbWVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMsIERvQ2hlY2ssIE9uRGVzdHJveSB7XG4gICAgaG91cnM6IG51bWJlcjtcbiAgICBtaW5zOiBudW1iZXI7XG4gICAgc2VjczogbnVtYmVyO1xuICAgIGlzRGF0ZXRpbWVwaWNrZXI6IGJvb2xlYW47XG4gICAgb25lSW5wdXRGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIG9uZUlucHV0SG91cnM6IHN0cmluZztcbiAgICBvbmVJbnB1dE1pbnM6IHN0cmluZztcbiAgICBvbmVJbnB1dFNlY3M6IHN0cmluZztcblxuICAgIHB1YmxpYyBob3Vyc1VwRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgaG91cnNEb3duRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgbWludXRlc1VwRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgbWludXRlc0Rvd25EaXNhYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWNvbmRzVXBEaXNhYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWNvbmRzRG93bkRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS10aW1lcGlja2VyJztcblxuICAgIEBJbnB1dCgpIHRpbWVNYXNrID0gJ0hoOm0wJ1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gdGhpcy50aW1lTWFzaztcblxuICAgIEBJbnB1dCgpIHN0ZXBIb3VycyA9IDE7XG4gICAgQElucHV0KCkgc3RlcE1pbnV0ZXMgPSAxO1xuICAgIEBJbnB1dCgpIHN0ZXBTZWNvbmRzID0gMTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc3JlYWRPbmx5ID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzT25lSW5wdXRGaWVsZCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNTZWNvbmRzID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHByb3BhZ2F0ZWRWYWx1ZXM6IEV1aVRpbWVQaWNrZXIgPSB7XG4gICAgICAgIGhvdXJzOiBudWxsLFxuICAgICAgICBtaW5zOiBudWxsLFxuICAgICAgICBzZWNzOiB0aGlzLmhhc1NlY29uZHMgPyBudWxsIDogdW5kZWZpbmVkLFxuICAgIH07XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEWU5BTUlDX0NPTVBPTkVOVF9DT05GSUcpIGNvbmZpZzogRXVpRGF0ZVRpbWVQaWNrZXJDb25maWcsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaG91cnMgPSBjb25maWc/LmhvdXJzIHx8IDA7XG4gICAgICAgIHRoaXMubWlucyA9IGNvbmZpZz8ubWlucyB8fCAwO1xuICAgICAgICB0aGlzLnNlY3MgPSBjb25maWc/LnNlY3MgfHwgMDtcbiAgICAgICAgdGhpcy5pc0RhdGV0aW1lcGlja2VyID0gY29uZmlnPy5pc0RhdGV0aW1lcGlja2VyO1xuICAgICAgICB0aGlzLmhhc1NlY29uZHMgPSBjb25maWc/Lmhhc1NlY29uZHM7XG4gICAgICAgIHRoaXMuaXNPbmVJbnB1dEZpZWxkID0gY29uZmlnPy5pc09uZUlucHV0RmllbGQ7XG4gICAgICAgIHRoaXMuc3RlcEhvdXJzID0gY29uZmlnPyBjb25maWcuc3RlcEhvdXJzOiB0aGlzLnN0ZXBIb3VycztcbiAgICAgICAgdGhpcy5zdGVwTWludXRlcyA9IGNvbmZpZz8gY29uZmlnLnN0ZXBNaW51dGVzOiB0aGlzLnN0ZXBNaW51dGVzO1xuICAgICAgICB0aGlzLnN0ZXBTZWNvbmRzID0gY29uZmlnPyBjb25maWcuc3RlcFNlY29uZHM6IHRoaXMuc3RlcFNlY29uZHM7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gdGhpcy5ob3VycyA9PT0gMCB8fCBudWxsID8gJzAwJyA6IHRoaXMuaG91cnM7XG4gICAgICAgIGNvbnN0IG1pbnMgPSB0aGlzLm1pbnMgPT09IDAgfHwgbnVsbCA/ICcwMCcgOiB0aGlzLm1pbnM7XG4gICAgICAgIGNvbnN0IHNlY3MgPSB0aGlzLnNlY3MgPT09IDAgfHwgbnVsbCA/ICcwMCcgOiB0aGlzLnNlY3M7XG4gICAgICAgIHRoaXMub25lSW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyArIGhvdXJzICsgJzonICsgbWlucyArICc6JyArIHNlY3MpO1xuICAgICAgICB0aGlzLmNhbGxiYWNrRm4gPSBjb25maWc/LmNhbGxiYWNrRm4gfHwgdGhpcy5jYWxsYmFja0ZuO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBcbiAgICAgICAgdGhpcy5vbmVJbnB1dEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgLy8gc3BsaXRzIHRoZSBlbnRlcmVkIHRpbWUgaW50byAzIHBhcnRzIGJhc2VkIG9uIHRoZSA6IGFuZCBwcm9wYWdhdGVzIGJhY2sgdGhlIGNvcnJlc3BvbmRpbmcgcGFydHNcbiAgICAgICAgICAgIGlmKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgW3RoaXMub25lSW5wdXRIb3VycywgdGhpcy5vbmVJbnB1dE1pbnMsIHRoaXMub25lSW5wdXRTZWNzXSA9IHZhbHVlLnNwbGl0KCc6Jyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BsaXR0ZWRob3VycyA9IHRoaXMub25lSW5wdXRIb3VycyA/IE51bWJlcih0aGlzLm9uZUlucHV0SG91cnMpIDogbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGxpdHRlZG1pbnMgPSB0aGlzLm9uZUlucHV0TWlucyA/IE51bWJlcih0aGlzLm9uZUlucHV0TWlucykgOiBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwbGl0dGVkc2VjcyA9IHRoaXMub25lSW5wdXRTZWNzID8gTnVtYmVyKHRoaXMub25lSW5wdXRTZWNzKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2Vjb25kcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZWRWYWx1ZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnByb3BhZ2F0ZWRWYWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Vyczogc3BsaXR0ZWRob3VycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbnM6IHNwbGl0dGVkbWlucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3M6IHNwbGl0dGVkc2VjcyxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxsYmFja0ZuKHNwbGl0dGVkaG91cnMsIHNwbGl0dGVkbWlucywgc3BsaXR0ZWRzZWNzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZWRWYWx1ZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnByb3BhZ2F0ZWRWYWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Vyczogc3BsaXR0ZWRob3VycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbnM6IHNwbGl0dGVkbWlucyxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxsYmFja0ZuKHNwbGl0dGVkaG91cnMsIHNwbGl0dGVkbWlucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzcGxpdHRlZGhvdXJzID09PSBudWxsICYmIHNwbGl0dGVkbWlucyA9PT0gbnVsbCAmJiBzcGxpdHRlZHNlY3MgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5wcm9wYWdhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTp2b2lkIHtcbiAgICAgICAgaWYodGhpcy5pc09uZUlucHV0RmllbGQpIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLmhhc1NlY29uZHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVNYXNrID0gJ0hoOm0wOnMwJztcbiAgICAgICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gJ0hoOm0wOnMwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLnRpbWVNYXNrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aW1lTWFzayA9IGNoYW5nZXMudGltZU1hc2suY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBjaGFuZ2VzLnRpbWVNYXNrLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKGNoYW5nZXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gY2hhbmdlcy5wbGFjZWhvbGRlci5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIC8vIG1hcmtzIHRoZSBpbnB1dCBjb250cm9sIGFzIHRvdWNoZWQvaW52YWxpZCBpZiB0aGUgZm9ybSBjb250cm9sIGlzIHRvdWNoZWQvaW52YWxpZFxuICAgICAgICAgICAgdGhpcy5jb250cm9sPy50b3VjaGVkID8gdGhpcy5vbmVJbnB1dEZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKSA6IHRoaXMub25lSW5wdXRGb3JtQ29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8uaW52YWxpZCA/IHRoaXMub25lSW5wdXRGb3JtQ29udHJvbC5zZXRFcnJvcnModGhpcy5jb250cm9sLmVycm9ycykgOiB0aGlzLm9uZUlucHV0Rm9ybUNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbmNyZW1lbnRzIG9yIGRlY3JlbWVudHMgaG91cnMgYWNjb3JkaW5nIHRvIHRoZSBzdGVwIHBhcmFtIGJlaW5nIHBhc3NlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0ZXAgVGhlIHN0ZXAgbnVtYmVyIHRoYXQgaG91cnMgd2lsbCBpbmNyZWFzZSBvciBkZWNyZWFzZVxuICAgICAqL1xuICAgIGNoYW5nZUhvdXJzKHN0ZXA6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaG91cnNVcERpc2FibGVkIHx8ICF0aGlzLmhvdXJzRG93bkRpc2FibGVkKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSAoaXNOYU4odGhpcy5ob3VycykgPyAwIDogdGhpcy5ob3VycykgKyBzdGVwO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVIb3Vycyh2YWwudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5jcmVtZW50cyBvciBkZWNyZW1lbnRzIG1pbnV0ZXMgYWNjb3JkaW5nIHRvIHRoZSBzdGVwIHBhcmFtIGJlaW5nIHBhc3NlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0ZXAgVGhlIHN0ZXAgbnVtYmVyIHRoYXQgbWludXRlcyB3aWxsIGluY3JlYXNlIG9yIGRlY3JlYXNlXG4gICAgICovXG4gICAgY2hhbmdlTWludXRlcyhzdGVwOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm1pbnV0ZXNVcERpc2FibGVkIHx8ICF0aGlzLm1pbnV0ZXNEb3duRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IChpc05hTih0aGlzLm1pbnMpID8gMCA6IHRoaXMubWlucykgKyBzdGVwO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVNaW51dGVzKHZhbC50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbmNyZW1lbnRzIG9yIGRlY3JlbWVudHMgc2Vjb25kcyBhY2NvcmRpbmcgdG8gdGhlIHN0ZXAgcGFyYW0gYmVpbmcgcGFzc2VkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RlcCBUaGUgc3RlcCBudW1iZXIgdGhhdCBzZWNvbmRzIHdpbGwgaW5jcmVhc2Ugb3IgZGVjcmVhc2VcbiAgICAgKi9cbiAgICBjaGFuZ2VTZWNvbmRzKHN0ZXA6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2Vjb25kc1VwRGlzYWJsZWQgfHwgIXRoaXMuc2Vjb25kc0Rvd25EaXNhYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gKGlzTmFOKHRoaXMuc2VjcykgPyAwIDogdGhpcy5zZWNzKSArIHN0ZXA7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlY29uZHModmFsLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGlucHV0IGZpZWxkIHdoZW4gaG91cnMgY2hhbmdlIGFuZCBhZGRzIDI0aG91ciB2YWxpZGF0aW9uICsgcHJvcGFnYXRlcyB0aGUgdmFsdWUgYmFjayB0byB0aGUgZm9ybVxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1ZhbCBUaGUgbmV3IHZhbHVlIHRoYXQgaG91cnMgd2lsbCBoYXZlXG4gICAgICovXG4gICAgdXBkYXRlSG91cnMobmV3VmFsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZW50ZXJlZEhvdXIgPSB0aGlzLnRvSW50ZWdlcihuZXdWYWwpO1xuXG4gICAgICAgIGlmICghaXNOYU4oZW50ZXJlZEhvdXIpKSB7XG4gICAgICAgICAgICB0aGlzLmhvdXJzID0gKGVudGVyZWRIb3VyIDwgMCA/IDI0ICsgZW50ZXJlZEhvdXIgOiBlbnRlcmVkSG91cikgJSAyNDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaG91cnMgPSBOYU47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbGxiYWNrRm4odGhpcy5ob3VycywgdGhpcy5taW5zLCB0aGlzLnNlY3MpO1xuXG4gICAgICAgIHRoaXMucHJvcGFnYXRlZFZhbHVlcyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMucHJvcGFnYXRlZFZhbHVlcyxcbiAgICAgICAgICAgIGhvdXJzOiB0aGlzLmhvdXJzLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnByb3BhZ2F0ZWRWYWx1ZXMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBpbnB1dCBmaWVsZCB3aGVuIG1pbnV0ZXMgY2hhbmdlIGFuZCBhZGRzIDYwbWlucyB2YWxpZGF0aW9uICsgcHJvcGFnYXRlcyB0aGUgdmFsdWUgYmFjayB0byB0aGUgZm9ybVxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1ZhbCBUaGUgbmV3IHZhbHVlIHRoYXQgbWludXRlcyB3aWxsIGhhdmVcbiAgICAgKi9cbiAgICB1cGRhdGVNaW51dGVzKG5ld1ZhbDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVudGVyZWRNaW4gPSB0aGlzLnRvSW50ZWdlcihuZXdWYWwpO1xuXG4gICAgICAgIGlmICghaXNOYU4oZW50ZXJlZE1pbikpIHtcbiAgICAgICAgICAgIHRoaXMubWlucyA9IGVudGVyZWRNaW4gJSA2MCA8IDAgPyA2MCArIChlbnRlcmVkTWluICUgNjApIDogZW50ZXJlZE1pbiAlIDYwO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VIb3VycyhNYXRoLmZsb29yKGVudGVyZWRNaW4gLyA2MCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5taW5zID0gTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYWxsYmFja0ZuKHRoaXMuaG91cnMsIHRoaXMubWlucywgdGhpcy5zZWNzKTtcblxuICAgICAgICB0aGlzLnByb3BhZ2F0ZWRWYWx1ZXMgPSB7XG4gICAgICAgICAgICAuLi50aGlzLnByb3BhZ2F0ZWRWYWx1ZXMsXG4gICAgICAgICAgICBtaW5zOiB0aGlzLm1pbnMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucHJvcGFnYXRlZFZhbHVlcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGlucHV0IGZpZWxkIHdoZW4gc2Vjb25kcyBjaGFuZ2UgYW5kIGFkZHMgNjBzZWNzIHZhbGlkYXRpb24gKyBwcm9wYWdhdGVzIHRoZSB2YWx1ZSBiYWNrIHRvIHRoZSBmb3JtXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3VmFsIFRoZSBuZXcgdmFsdWUgdGhhdCBzZWNvbmRzIHdpbGwgaGF2ZVxuICAgICAqL1xuICAgIHVwZGF0ZVNlY29uZHMobmV3VmFsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZW50ZXJlZFNlYyA9IHRoaXMudG9JbnRlZ2VyKG5ld1ZhbCk7XG5cbiAgICAgICAgaWYgKCFpc05hTihlbnRlcmVkU2VjKSkge1xuICAgICAgICAgICAgdGhpcy5zZWNzID0gZW50ZXJlZFNlYyAlIDYwIDwgMCA/IDYwICsgKGVudGVyZWRTZWMgJSA2MCkgOiBlbnRlcmVkU2VjICUgNjA7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZU1pbnV0ZXMoTWF0aC5mbG9vcihlbnRlcmVkU2VjIC8gNjApKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VjcyA9IE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2FsbGJhY2tGbih0aGlzLmhvdXJzLCB0aGlzLm1pbnMsIHRoaXMuc2Vjcyk7XG5cbiAgICAgICAgdGhpcy5wcm9wYWdhdGVkVmFsdWVzID0ge1xuICAgICAgICAgICAgLi4udGhpcy5wcm9wYWdhdGVkVmFsdWVzLFxuICAgICAgICAgICAgc2VjczogdGhpcy5zZWNzLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucHJvcGFnYXRlZFZhbHVlcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEF1dG9maWxscyBtaW5zIGFuZCBzZWNzIHdpdGggMDBzIGlmIHRoZSB1c2VyIHRhYnMgYWZ0ZXIgZW50ZXJpbmcgaG91cnMgYW5kIG1hcmtzIHRoZSBpbnB1dCBhcyB0b3VjaGVkXG4gICAgICovXG4gICAgb25Gb2N1c091dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMub25lSW5wdXRIb3VycyAmJiAhdGhpcy5vbmVJbnB1dE1pbnMgJiYgIXRoaXMub25lSW5wdXRTZWNzKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMub25lSW5wdXRIb3Vycykge1xuICAgICAgICAgICAgICAgIGNhc2UgJzAnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uZUlucHV0SG91cnMgPSAnMDAnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICcxJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbmVJbnB1dEhvdXJzID0gJzAxJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnMic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25lSW5wdXRIb3VycyA9ICcwMic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vbmVJbnB1dEZvcm1Db250cm9sLnBhdGNoVmFsdWUoYCR7dGhpcy5vbmVJbnB1dEhvdXJzfSA6IDAwIDogMDBgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWVzOiBFdWlUaW1lUGlja2VyKTogdm9pZCB7XG4gICAgICAgIGlmICghdmFsdWVzKSB7XG4gICAgICAgICAgIHRoaXMuaG91cnMgPSBudWxsO1xuICAgICAgICAgICB0aGlzLm1pbnMgPSBudWxsO1xuICAgICAgICAgICB0aGlzLnNlY3MgPSBudWxsO1xuICAgICAgICAgICBpZih0aGlzLmlzT25lSW5wdXRGaWVsZCkge1xuICAgICAgICAgICAgdGhpcy5vbmVJbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKG51bGwpXG4gICAgICAgICAgIH1cbiAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWVzICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWUgbXVzdCBiZSBhbiBFdWlUaW1lUGlja2VyIE9iamVjdCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZXMuaG91cnMgPCAwIHx8IHZhbHVlcy5ob3VycyA+IDIzIHx8IHR5cGVvZiB2YWx1ZXMuaG91cnMgIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hvdXJzIG11c3QgYmUgZGVmaW5lZCBhbmQgYmUgYSBudW1iZXIgd2l0aCByYW5nZSAwLTIzJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlcy5taW5zIDwgMCB8fCB2YWx1ZXMubWlucyA+IDU5IHx8IHR5cGVvZiB2YWx1ZXMubWlucyAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbWlucyBtdXN0IGJlIGRlZmluZWQgYW5kIGJlIGEgbnVtYmVyIHdpdGggcmFuZ2UgMC01OScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhhc1NlY29uZHMgJiYgKHZhbHVlcy5zZWNzIDwgMCB8fCB2YWx1ZXMuc2VjcyA+IDU5IHx8IHR5cGVvZiB2YWx1ZXMuc2VjcyAhPT0gJ251bWJlcicpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NlY3MgbXVzdCBiZSBkZWZpbmVkIGFuZCBiZSBhIG51bWJlciB3aXRoIHJhbmdlIDAtNTknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlSG91cnModmFsdWVzLmhvdXJzLnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLnVwZGF0ZU1pbnV0ZXModmFsdWVzLm1pbnMudG9TdHJpbmcoKSk7XG4gICAgICAgIGlmICh2YWx1ZXMuc2Vjcykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZWNvbmRzKHZhbHVlcy5zZWNzLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzT25lSW5wdXRGaWVsZCkge1xuICAgICAgICAgICAgY29uc3QgaG91cnMgPSB0aGlzLnBhZE51bWJlcih2YWx1ZXMuaG91cnMpO1xuICAgICAgICAgICAgY29uc3QgbWlucyA9IHRoaXMucGFkTnVtYmVyKHZhbHVlcy5taW5zKTtcbiAgICAgICAgICAgIGNvbnN0IHNlY3MgPSB0aGlzLnBhZE51bWJlcih2YWx1ZXMuc2Vjcyk7XG5cbiAgICAgICAgICAgIHRoaXMub25lSW5wdXRGb3JtQ29udHJvbC5wYXRjaFZhbHVlKCcnICsgaG91cnMgKyAnOicgKyBtaW5zICsgJzonICsgc2Vjcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRGlzYWJsZXMgdGhlIGhvdXIgdXAgaW5jcmVtZW50YWwgd2hlbiBtYXggdGltZSByYW5nZSBpcyByZWFjaGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhdGUgVGhlIGJvb2xlYW4gdmFsdWUgdGhhdCBlbmFibGVzIHRoZSBmZWF0dXJlXG4gICAgICovXG4gICAgcHVibGljIGhvdXJzVXBEaXNhYmxlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG91cnNVcERpc2FibGVkID0gc3RhdGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHRoZSBob3VyIGRvd24gZGVjcmVtZW50YWwgd2hlbiBtaW4gdGltZSByYW5nZSBpcyByZWFjaGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhdGUgVGhlIGJvb2xlYW4gdmFsdWUgdGhhdCBlbmFibGVzIHRoZSBmZWF0dXJlXG4gICAgICovXG4gICAgcHVibGljIGhvdXJzRG93bkRpc2FibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3Vyc0Rvd25EaXNhYmxlZCA9IHN0YXRlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlcyB0aGUgbWludXRlcyB1cCBpbmNyZW1lbnRhbCB3aGVuIG1heCB0aW1lIHJhbmdlIGlzIHJlYWNoZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGF0ZSBUaGUgYm9vbGVhbiB2YWx1ZSB0aGF0IGVuYWJsZXMgdGhlIGZlYXR1cmVcbiAgICAgKi9cbiAgICBwdWJsaWMgbWludXRlc1VwRGlzYWJsZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm1pbnV0ZXNVcERpc2FibGVkID0gc3RhdGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHRoZSBtaW51dGVzIGRvd24gZGVjcmVtZW50YWwgd2hlbiBtaW4gdGltZSByYW5nZSBpcyByZWFjaGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhdGUgVGhlIGJvb2xlYW4gdmFsdWUgdGhhdCBlbmFibGVzIHRoZSBmZWF0dXJlXG4gICAgICovXG4gICAgcHVibGljIG1pbnV0ZXNEb3duRGlzYWJsZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm1pbnV0ZXNEb3duRGlzYWJsZWQgPSBzdGF0ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGlzYWJsZXMgdGhlIHNlY29uZHMgdXAgaW5jcmVtZW50YWwgd2hlbiBtYXggdGltZSByYW5nZSBpcyByZWFjaGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhdGUgVGhlIGJvb2xlYW4gdmFsdWUgdGhhdCBlbmFibGVzIHRoZSBmZWF0dXJlXG4gICAgICovXG4gICAgcHVibGljIHNlY29uZHNVcERpc2FibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWNvbmRzVXBEaXNhYmxlZCA9IHN0YXRlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlcyB0aGUgc2Vjb25kcyBkb3duIGRlY3JlbWVudGFsIHdoZW4gbWluIHRpbWUgcmFuZ2UgaXMgcmVhY2hlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHN0YXRlIFRoZSBib29sZWFuIHZhbHVlIHRoYXQgZW5hYmxlcyB0aGUgZmVhdHVyZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZWNvbmRzRG93bkRpc2FibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWNvbmRzRG93bkRpc2FibGVkID0gc3RhdGU7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgcHJpdmF0ZSBjYWxsYmFja0ZuOiAoaG91cnM6IG51bWJlciwgbWluczogbnVtYmVyLCBzZWNzPzogbnVtYmVyKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIHRvSW50ZWdlcih2YWx1ZTogYW55KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGAke3ZhbHVlfWAsIDEwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGxlYWRpbmcgemVybyB0byB0aGUgcHJvdmlkZWQgbnVtYmVyIHdoZW4gaXNPbmVJbnB1dEZpZWxkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGFkZCBsZWFkaW5nIHplcm8gdG9cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcGFkTnVtYmVyKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWlzTmFOKHRoaXMudG9JbnRlZ2VyKHZhbHVlKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBgMCR7dmFsdWV9YC5zbGljZSgtMik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpOiB2b2lkID0+IHsvKiBlbXB0eSAqL307XG5cbiAgICBwcml2YXRlIHByb3BhZ2F0ZVRvdWNoZWQgPSAoKTogdm9pZCA9PiB7LyogZW1wdHkgKi99O1xufVxuIiwiPGRpdiBjbGFzcz1cImV1aS10aW1lcGlja2VyXCIgW2NsYXNzLmV1aS10aW1lcGlja2VyLS1jZW50ZXJlZF09XCJpc0RhdGV0aW1lcGlja2VyXCIgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX1cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNPbmVJbnB1dEZpZWxkOyBlbHNlIG11bHRpcGxlSW5wdXRzXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgW2NsYXNzLmV1aS10aW1lcGlja2VyX19pbnB1dC0tb25lLWZpZWxkXT1cImlzRGF0ZXRpbWVwaWNrZXJcIlxuICAgICAgICAgICAgZXVpSW5wdXRUZXh0XG4gICAgICAgICAgICBtYXNrPVwie3sgdGltZU1hc2sgfX1cIlxuICAgICAgICAgICAgW2xlYWRaZXJvRGF0ZVRpbWVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvbmVJbnB1dEZvcm1Db250cm9sLnZhbHVlP29uZUlucHV0Rm9ybUNvbnRyb2wudmFsdWU6J05vIHRpbWUgdmFsdWUnXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJvbmVJbnB1dEZvcm1Db250cm9sXCJcbiAgICAgICAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIlxuICAgICAgICAgICAgW2Ryb3BTcGVjaWFsQ2hhcmFjdGVyc109XCJmYWxzZVwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwiaXNyZWFkT25seVwiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI211bHRpcGxlSW5wdXRzPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2lucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc3JlYWRPbmx5XCIgY2xhc3M9XCJldWktdGltZXBpY2tlcl9fY2hldnJvbiBldWktdGltZXBpY2tlcl9faG91cnMtdXBcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VIb3VycyhzdGVwSG91cnMpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRpbWUtY29udHJvbC0tZGlzYWJsZWRdPVwiaG91cnNVcERpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1jaGV2cm9uLXVwXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yPVwiZ3JleS03NVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJJbmNyZWFzZSBIb3Vyc1wiPlxuICAgICAgICAgICAgICAgIDwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAjaW5wdXRyZWZob3Vyc1xuICAgICAgICAgICAgICAgIGV1aUlucHV0TnVtYmVyXG4gICAgICAgICAgICAgICAgW2xlYWRpbmdaZXJvXT1cIjJcIlxuICAgICAgICAgICAgICAgIFtkaWdpdHNdPVwiMlwiXG4gICAgICAgICAgICAgICAgW2ZyYWN0aW9uRGlnaXRzXT1cIjBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2lucHV0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkhIXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJob3Vyc1wiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlSG91cnMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImlzcmVhZE9ubHlcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJIb3Vyc1wiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uQXJyb3dVcCk9XCJjaGFuZ2VIb3VycyhzdGVwSG91cnMpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uQXJyb3dEb3duKT1cImNoYW5nZUhvdXJzKC1zdGVwSG91cnMpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIC8+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzcmVhZE9ubHlcIiBjbGFzcz1cImV1aS10aW1lcGlja2VyX19jaGV2cm9uIGV1aS10aW1lcGlja2VyX19ob3Vycy1kb3duXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2Z1xuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlSG91cnMoLXN0ZXBIb3VycylcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGltZS1jb250cm9sLS1kaXNhYmxlZF09XCJob3Vyc0Rvd25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJldWktY2hldnJvbi1kb3duXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yPVwiZ3JleS03NVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEZWNyZWFzZSBIb3Vyc1wiPlxuICAgICAgICAgICAgICAgIDwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX3NwYWNlclwiPjo8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lcGlja2VyX19pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNyZWFkT25seVwiIGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2NoZXZyb24gZXVpLXRpbWVwaWNrZXJfX21pbnV0ZXMtdXBcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VNaW51dGVzKHN0ZXBNaW51dGVzKVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50aW1lLWNvbnRyb2wtLWRpc2FibGVkXT1cIm1pbnV0ZXNVcERpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1jaGV2cm9uLXVwXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yPVwiZ3JleS03NVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJJbmNyZWFzZSBNaW51dGVzXCI+XG4gICAgICAgICAgICAgICAgPC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNpbnB1dHJlZm1pbnNcbiAgICAgICAgICAgICAgICBldWlJbnB1dE51bWJlclxuICAgICAgICAgICAgICAgIFtsZWFkaW5nWmVyb109XCIyXCJcbiAgICAgICAgICAgICAgICBbZGlnaXRzXT1cIjJcIlxuICAgICAgICAgICAgICAgIFtmcmFjdGlvbkRpZ2l0c109XCIwXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lcGlja2VyX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJNTVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibWluc1wiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTWludXRlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaXNyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk1pbnV0ZXNcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLkFycm93VXApPVwiY2hhbmdlTWludXRlcyhzdGVwTWludXRlcyk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5BcnJvd0Rvd24pPVwiY2hhbmdlTWludXRlcygtc3RlcE1pbnV0ZXMpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIC8+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzcmVhZE9ubHlcIiBjbGFzcz1cImV1aS10aW1lcGlja2VyX19jaGV2cm9uIGV1aS10aW1lcGlja2VyX19taW51dGVzLWRvd25cIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VNaW51dGVzKC1zdGVwTWludXRlcylcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGltZS1jb250cm9sLS1kaXNhYmxlZF09XCJtaW51dGVzRG93bkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1jaGV2cm9uLWRvd25cIlxuICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I9XCJncmV5LTc1XCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlY3JlYXNlIE1pbnV0ZXNcIj5cbiAgICAgICAgICAgICAgICA8L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1NlY29uZHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZXBpY2tlcl9fc3BhY2VyXCI+OjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lcGlja2VyX19pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzcmVhZE9ubHlcIiBjbGFzcz1cImV1aS10aW1lcGlja2VyX19jaGV2cm9uIGV1aS10aW1lcGlja2VyX19zZWNvbmRzLXVwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmdcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VTZWNvbmRzKHN0ZXBTZWNvbmRzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGltZS1jb250cm9sLS1kaXNhYmxlZF09XCJzZWNvbmRzVXBEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiZXVpLWNoZXZyb24tdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yPVwiZ3JleS03NVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJJbmNyZWFzZSBzZWNvbmRzXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAjaW5wdXRyZWZzZWNzXG4gICAgICAgICAgICAgICAgICAgIGV1aUlucHV0TnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIFtsZWFkaW5nWmVyb109XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgW2RpZ2l0c109XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZyYWN0aW9uRGlnaXRzXT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lcGlja2VyX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU1NcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJzZWNzXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlU2Vjb25kcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImlzcmVhZE9ubHlcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Vjb25kc1wiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLkFycm93VXApPVwiY2hhbmdlU2Vjb25kcyhzdGVwU2Vjb25kcyk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uQXJyb3dEb3duKT1cImNoYW5nZVNlY29uZHMoLXN0ZXBTZWNvbmRzKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiAvPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNyZWFkT25seVwiIGNsYXNzPVwiZXVpLXRpbWVwaWNrZXJfX2NoZXZyb24gZXVpLXRpbWVwaWNrZXJfX3NlY29uZHMtZG93blwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlU2Vjb25kcygtc3RlcFNlY29uZHMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50aW1lLWNvbnRyb2wtLWRpc2FibGVkXT1cInNlY29uZHNEb3duRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1jaGV2cm9uLWRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yPVwiZ3JleS03NVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEZWNyZWFzZSBzZWNvbmRzXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -8,22 +8,22 @@ import { EuiInputTextModule } from '@eui/components/eui-input-text';
8
8
  import { EuiIconModule } from '@eui/components/eui-icon';
9
9
  import * as i0 from "@angular/core";
10
10
  export class EuiTimepickerModule {
11
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: EuiTimepickerModule, declarations: [EuiTimepickerComponent], imports: [CommonModule,
11
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: EuiTimepickerModule, declarations: [EuiTimepickerComponent], imports: [CommonModule,
13
13
  FormsModule,
14
14
  ReactiveFormsModule,
15
15
  EuiInputNumberDirectiveModule,
16
16
  EuiInputTextModule,
17
17
  EuiIconModule,
18
18
  NgxMaskDirective], exports: [EuiTimepickerComponent] }); }
19
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTimepickerModule, providers: [provideNgxMask(), provideEnvironmentNgxMask()], imports: [CommonModule,
19
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiTimepickerModule, providers: [provideNgxMask(), provideEnvironmentNgxMask()], imports: [CommonModule,
20
20
  FormsModule,
21
21
  ReactiveFormsModule,
22
22
  EuiInputNumberDirectiveModule,
23
23
  EuiInputTextModule,
24
24
  EuiIconModule] }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTimepickerModule, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiTimepickerModule, decorators: [{
27
27
  type: NgModule,
28
28
  args: [{
29
29
  imports: [
@@ -46,10 +46,10 @@ export class EuiDropdownTreeDirective {
46
46
  }
47
47
  return 'No node selected.';
48
48
  }
49
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiDropdownTreeDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.EuiDropdownComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }
50
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: EuiDropdownTreeDirective, selector: "eui-dropdown[euiDropdownTree]", inputs: { buttonTemplateRef: "buttonTemplateRef" }, queries: [{ propertyName: "euiTree", first: true, predicate: EuiTreeComponent, descendants: true }], ngImport: i0 }); }
49
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiDropdownTreeDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.EuiDropdownComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }
50
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: EuiDropdownTreeDirective, selector: "eui-dropdown[euiDropdownTree]", inputs: { buttonTemplateRef: "buttonTemplateRef" }, queries: [{ propertyName: "euiTree", first: true, predicate: EuiTreeComponent, descendants: true }], ngImport: i0 }); }
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiDropdownTreeDirective, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiDropdownTreeDirective, decorators: [{
53
53
  type: Directive,
54
54
  args: [{
55
55
  selector: 'eui-dropdown[euiDropdownTree]',
@@ -63,11 +63,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
63
63
  args: [EuiTreeComponent, { static: false }]
64
64
  }] } });
65
65
  export class EuiDropdownTreeDirectiveModule {
66
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiDropdownTreeDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
67
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: EuiDropdownTreeDirectiveModule, declarations: [EuiDropdownTreeDirective], imports: [CommonModule], exports: [EuiDropdownTreeDirective] }); }
68
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiDropdownTreeDirectiveModule, imports: [CommonModule] }); }
66
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiDropdownTreeDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
67
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: EuiDropdownTreeDirectiveModule, declarations: [EuiDropdownTreeDirective], imports: [CommonModule], exports: [EuiDropdownTreeDirective] }); }
68
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiDropdownTreeDirectiveModule, imports: [CommonModule] }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiDropdownTreeDirectiveModule, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiDropdownTreeDirectiveModule, decorators: [{
71
71
  type: NgModule,
72
72
  args: [{
73
73
  imports: [CommonModule],
@@ -45,8 +45,8 @@ export class EuiTreeFormControlDirective {
45
45
  this.onChange(this.euiTreeControlValueSetter(selectionChanges.selection));
46
46
  });
47
47
  }
48
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeFormControlDirective, deps: [{ token: i1.EuiTreeComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }
49
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: EuiTreeFormControlDirective, selector: "eui-tree[euiTreeFormControl]", inputs: { euiTreeControlValueSetter: "euiTreeControlValueSetter", euiTreeControlModelMapper: "euiTreeControlModelMapper" }, providers: [
48
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiTreeFormControlDirective, deps: [{ token: i1.EuiTreeComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }
49
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: EuiTreeFormControlDirective, selector: "eui-tree[euiTreeFormControl]", inputs: { euiTreeControlValueSetter: "euiTreeControlValueSetter", euiTreeControlModelMapper: "euiTreeControlModelMapper" }, providers: [
50
50
  {
51
51
  provide: NG_VALUE_ACCESSOR,
52
52
  useExisting: forwardRef((() => EuiTreeFormControlDirective)),
@@ -54,7 +54,7 @@ export class EuiTreeFormControlDirective {
54
54
  },
55
55
  ], ngImport: i0 }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeFormControlDirective, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiTreeFormControlDirective, decorators: [{
58
58
  type: Directive,
59
59
  args: [{
60
60
  selector: 'eui-tree[euiTreeFormControl]',
@@ -74,11 +74,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
74
74
  type: Input
75
75
  }] } });
76
76
  export class EuiTreeFormControlDirectiveModule {
77
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeFormControlDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
78
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeFormControlDirectiveModule, declarations: [EuiTreeFormControlDirective], imports: [CommonModule], exports: [EuiTreeFormControlDirective] }); }
79
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeFormControlDirectiveModule, imports: [CommonModule] }); }
77
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiTreeFormControlDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
78
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: EuiTreeFormControlDirectiveModule, declarations: [EuiTreeFormControlDirective], imports: [CommonModule], exports: [EuiTreeFormControlDirective] }); }
79
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiTreeFormControlDirectiveModule, imports: [CommonModule] }); }
80
80
  }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EuiTreeFormControlDirectiveModule, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiTreeFormControlDirectiveModule, decorators: [{
82
82
  type: NgModule,
83
83
  args: [{
84
84
  imports: [CommonModule],