@acorex/components 18.4.4 → 18.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (245) hide show
  1. package/alert/lib/alert.component.d.ts +15 -36
  2. package/comment/README.md +3 -0
  3. package/comment/index.d.ts +9 -0
  4. package/comment/lib/comment-container/comment-container.component.d.ts +5 -0
  5. package/comment/lib/comment-input/comment-input.component.d.ts +10 -0
  6. package/comment/lib/comment-item/comment-item.component.d.ts +9 -0
  7. package/comment/lib/comment-like/comment-like.component.d.ts +6 -0
  8. package/comment/lib/comment-reply/comment-reply.component.d.ts +5 -0
  9. package/comment/lib/comment-view/comment-view.component.d.ts +5 -0
  10. package/comment/lib/comment.module.d.ts +17 -0
  11. package/comment/lib/comment.types.d.ts +3 -0
  12. package/comment/lib/services/comment.service.d.ts +6 -0
  13. package/esm2022/alert/lib/alert.component.mjs +37 -133
  14. package/esm2022/avatar/lib/avatar.component.mjs +2 -2
  15. package/esm2022/badge/lib/badge.component.mjs +2 -2
  16. package/esm2022/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.mjs +2 -2
  17. package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +1 -1
  18. package/esm2022/bottom-navigation/lib/bottom-navigation.module.mjs +3 -8
  19. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +2 -5
  20. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +2 -2
  21. package/esm2022/button/lib/button-item.class.mjs +1 -1
  22. package/esm2022/button/lib/button.module.mjs +5 -26
  23. package/esm2022/check-box/lib/check-box.component.mjs +3 -11
  24. package/esm2022/circular-progress/lib/circular-progress.component.mjs +1 -1
  25. package/esm2022/color-box/lib/color-box.module.mjs +3 -11
  26. package/esm2022/color-palette/lib/color-palette-input.component.mjs +9 -15
  27. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +6 -14
  28. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +16 -17
  29. package/esm2022/color-palette/lib/color-palette.class.mjs +1 -1
  30. package/esm2022/color-palette/lib/color-palette.component.mjs +5 -21
  31. package/esm2022/comment/acorex-components-comment.mjs +5 -0
  32. package/esm2022/comment/index.mjs +10 -0
  33. package/esm2022/comment/lib/comment-container/comment-container.component.mjs +12 -0
  34. package/esm2022/comment/lib/comment-input/comment-input.component.mjs +33 -0
  35. package/esm2022/comment/lib/comment-item/comment-item.component.mjs +21 -0
  36. package/esm2022/comment/lib/comment-like/comment-like.component.mjs +15 -0
  37. package/esm2022/comment/lib/comment-reply/comment-reply.component.mjs +12 -0
  38. package/esm2022/comment/lib/comment-view/comment-view.component.mjs +11 -0
  39. package/esm2022/comment/lib/comment.module.mjs +48 -0
  40. package/esm2022/comment/lib/comment.types.mjs +2 -0
  41. package/esm2022/comment/lib/services/comment.service.mjs +19 -0
  42. package/esm2022/common/lib/classes/events.class.mjs +1 -1
  43. package/esm2022/common/lib/classes/styles.class.mjs +2 -10
  44. package/esm2022/common/lib/common.module.mjs +4 -20
  45. package/esm2022/common/lib/components/colorlook-component.class.mjs +1 -1
  46. package/esm2022/common/lib/components/input-base-value-component.class.mjs +1 -1
  47. package/esm2022/common/lib/directives/auto-focus.directive.mjs +4 -12
  48. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -4
  49. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +2 -3
  50. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -8
  51. package/esm2022/common/lib/directives/ripple.directive.mjs +4 -6
  52. package/esm2022/common/lib/types/placement.mjs +6 -26
  53. package/esm2022/conversation/lib/conversation-input/conversation-input.component.mjs +3 -3
  54. package/esm2022/data-pager/lib/data-pager-info.component.mjs +4 -10
  55. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +2 -2
  56. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +3 -3
  57. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +8 -36
  58. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +3 -3
  59. package/esm2022/data-table/lib/data-table/data-table.component.mjs +1 -1
  60. package/esm2022/datetime-box/lib/datetime-box.module.mjs +3 -15
  61. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +7 -8
  62. package/esm2022/datetime-picker/lib/datetime-picker.config.mjs +1 -1
  63. package/esm2022/decorators/lib/components/clear-button.component.mjs +6 -21
  64. package/esm2022/decorators/lib/components/close-button.component.mjs +5 -15
  65. package/esm2022/decorators/lib/decorators.module.mjs +3 -14
  66. package/esm2022/dialog/lib/dialog.class.mjs +1 -1
  67. package/esm2022/dialog/lib/dialog.component.mjs +4 -6
  68. package/esm2022/dialog/lib/dialog.module.mjs +2 -2
  69. package/esm2022/drawer/lib/drawer-container.component.mjs +2 -2
  70. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -21
  71. package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +4 -12
  72. package/esm2022/dropdown-button/lib/dropdown-button.module.mjs +4 -23
  73. package/esm2022/form/lib/form.config.mjs +1 -1
  74. package/esm2022/form/lib/validation-rule.directive.mjs +2 -2
  75. package/esm2022/form/lib/validation-summary.component.mjs +30 -46
  76. package/esm2022/image/lib/image.component.mjs +2 -2
  77. package/esm2022/label/lib/label.component.mjs +2 -2
  78. package/esm2022/loading/lib/loading-spinner.component.mjs +3 -3
  79. package/esm2022/loading/lib/loading.component.mjs +5 -17
  80. package/esm2022/loading/lib/loading.config.mjs +1 -1
  81. package/esm2022/loading/lib/loading.directive.mjs +1 -1
  82. package/esm2022/loading/lib/loading.module.mjs +3 -11
  83. package/esm2022/loading/lib/loading.service.mjs +5 -11
  84. package/esm2022/loading-dialog/lib/loading-dialog.class.mjs +1 -1
  85. package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +4 -6
  86. package/esm2022/loading-dialog/lib/loading-dialog.module.mjs +4 -23
  87. package/esm2022/loading-dialog/lib/loading-dialog.service.mjs +1 -1
  88. package/esm2022/menu/lib/class/root-menu.class.mjs +1 -1
  89. package/esm2022/nav/lib/nav-item/nav-item.component.mjs +3 -3
  90. package/esm2022/nav/lib/nav.component.mjs +2 -2
  91. package/esm2022/navbar/lib/navbar.component.mjs +2 -2
  92. package/esm2022/notification/lib/notification.class.mjs +1 -1
  93. package/esm2022/notification/lib/notification.component.mjs +6 -10
  94. package/esm2022/notification/lib/notification.config.mjs +1 -1
  95. package/esm2022/notification/lib/notification.module.mjs +4 -18
  96. package/esm2022/notification/lib/notification.service.mjs +6 -13
  97. package/esm2022/number-box/lib/number-box.module.mjs +3 -13
  98. package/esm2022/page/lib/base-page.class.mjs +3 -3
  99. package/esm2022/password-box/lib/password-box.component.mjs +3 -13
  100. package/esm2022/phone-box/lib/phone-box.component.mjs +1 -1
  101. package/esm2022/picker/lib/picker-column.directive.mjs +2 -2
  102. package/esm2022/picker/lib/picker.component.mjs +7 -13
  103. package/esm2022/popup/lib/popup.component.mjs +3 -3
  104. package/esm2022/popup/lib/popup.module.mjs +2 -2
  105. package/esm2022/popup/lib/popup.service.mjs +2 -2
  106. package/esm2022/progress-bar/lib/progress-bar.component.mjs +1 -1
  107. package/esm2022/radio/lib/radio.component.mjs +2 -10
  108. package/esm2022/result/lib/result.component.mjs +2 -2
  109. package/esm2022/routing-progress/lib/routing-progress.component.mjs +3 -3
  110. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +2 -2
  111. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +2 -2
  112. package/esm2022/scheduler/lib/scheduler.component.mjs +2 -2
  113. package/esm2022/scheduler/lib/scheduler.module.mjs +4 -22
  114. package/esm2022/scss/lib/scss.module.mjs +2 -2
  115. package/esm2022/selection-list/lib/selection-list.component.mjs +4 -10
  116. package/esm2022/selection-list/lib/selection-list.module.mjs +4 -21
  117. package/esm2022/skeleton/lib/skeleton.component.mjs +2 -2
  118. package/esm2022/step-wizard/lib/step-wizard-item/step-wizard-item.component.mjs +2 -2
  119. package/esm2022/step-wizard/lib/step-wizard.class.mjs +1 -1
  120. package/esm2022/step-wizard/lib/step-wizard.component.mjs +1 -1
  121. package/esm2022/step-wizard/lib/step-wizard.module.mjs +3 -11
  122. package/esm2022/switch/lib/switch-content.component.mjs +1 -1
  123. package/esm2022/switch/lib/switch.component.mjs +3 -10
  124. package/esm2022/tabs/lib/tab-item.component.mjs +32 -36
  125. package/esm2022/tabs/lib/tabs.class.mjs +1 -1
  126. package/esm2022/tabs/lib/tabs.component.mjs +1 -1
  127. package/esm2022/tag/lib/tag.component.mjs +2 -2
  128. package/esm2022/text-box/lib/mask-options.directive.mjs +1 -1
  129. package/esm2022/text-box/lib/text-box.component.mjs +3 -4
  130. package/esm2022/text-box/lib/text-box.module.mjs +4 -18
  131. package/esm2022/toast/lib/toast.component.mjs +3 -3
  132. package/esm2022/toast/lib/toast.config.mjs +1 -1
  133. package/esm2022/toast/lib/toast.module.mjs +4 -16
  134. package/esm2022/toast/lib/toast.service.mjs +7 -16
  135. package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +2 -2
  136. package/esm2022/uploader/lib/uploader-dialog-container.component.mjs +3 -3
  137. package/esm2022/uploader/lib/uploader-list.component.mjs +2 -2
  138. package/esm2022/uploader/lib/uploader-zone.directive.mjs +2 -2
  139. package/esm2022/uploader/lib/uploader.models.mjs +1 -1
  140. package/esm2022/uploader/lib/uploader.module.mjs +3 -11
  141. package/esm2022/wysiwyg/acorex-components-wysiwyg.mjs +5 -0
  142. package/esm2022/wysiwyg/index.mjs +5 -0
  143. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +27 -0
  144. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +113 -0
  145. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.mjs +11 -0
  146. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg.service.mjs +13 -0
  147. package/esm2022/wysiwyg/lib/wysiwyg.module.mjs +27 -0
  148. package/fesm2022/acorex-components-alert.mjs +37 -132
  149. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  150. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  151. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  152. package/fesm2022/acorex-components-bottom-navigation.mjs +2 -7
  153. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  154. package/fesm2022/acorex-components-breadcrumbs.mjs +1 -4
  155. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  156. package/fesm2022/acorex-components-button.mjs +4 -25
  157. package/fesm2022/acorex-components-button.mjs.map +1 -1
  158. package/fesm2022/acorex-components-check-box.mjs +1 -9
  159. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  160. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  161. package/fesm2022/acorex-components-color-box.mjs +2 -10
  162. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  163. package/fesm2022/acorex-components-color-palette.mjs +22 -53
  164. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  165. package/fesm2022/acorex-components-comment.mjs +153 -0
  166. package/fesm2022/acorex-components-comment.mjs.map +1 -0
  167. package/fesm2022/acorex-components-common.mjs +17 -78
  168. package/fesm2022/acorex-components-common.mjs.map +1 -1
  169. package/fesm2022/acorex-components-conversation.mjs +2 -2
  170. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  171. package/fesm2022/acorex-components-data-pager.mjs +12 -46
  172. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  173. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  174. package/fesm2022/acorex-components-datetime-box.mjs +2 -14
  175. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  176. package/fesm2022/acorex-components-datetime-picker.mjs +1 -2
  177. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  178. package/fesm2022/acorex-components-decorators.mjs +7 -43
  179. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  180. package/fesm2022/acorex-components-dialog.mjs +1 -3
  181. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  182. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  183. package/fesm2022/acorex-components-dropdown-button.mjs +4 -31
  184. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  185. package/fesm2022/acorex-components-dropdown.mjs +3 -20
  186. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  187. package/fesm2022/acorex-components-form.mjs +28 -44
  188. package/fesm2022/acorex-components-form.mjs.map +1 -1
  189. package/fesm2022/acorex-components-image.mjs.map +1 -1
  190. package/fesm2022/acorex-components-label.mjs.map +1 -1
  191. package/fesm2022/acorex-components-loading-dialog.mjs +4 -25
  192. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  193. package/fesm2022/acorex-components-loading.mjs +11 -37
  194. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  195. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  196. package/fesm2022/acorex-components-nav.mjs.map +1 -1
  197. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  198. package/fesm2022/acorex-components-notification.mjs +8 -33
  199. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  200. package/fesm2022/acorex-components-number-box.mjs +2 -12
  201. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  202. package/fesm2022/acorex-components-page.mjs.map +1 -1
  203. package/fesm2022/acorex-components-password-box.mjs +1 -11
  204. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  205. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  206. package/fesm2022/acorex-components-picker.mjs +6 -12
  207. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  208. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  209. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  210. package/fesm2022/acorex-components-radio.mjs +1 -9
  211. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  212. package/fesm2022/acorex-components-result.mjs.map +1 -1
  213. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  214. package/fesm2022/acorex-components-scheduler.mjs +3 -21
  215. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  216. package/fesm2022/acorex-components-scss.mjs +1 -1
  217. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  218. package/fesm2022/acorex-components-selection-list.mjs +5 -28
  219. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  220. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  221. package/fesm2022/acorex-components-step-wizard.mjs +3 -11
  222. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  223. package/fesm2022/acorex-components-switch.mjs +1 -8
  224. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  225. package/fesm2022/acorex-components-tabs.mjs +30 -34
  226. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  227. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  228. package/fesm2022/acorex-components-text-box.mjs +4 -19
  229. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  230. package/fesm2022/acorex-components-toast.mjs +7 -28
  231. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  232. package/fesm2022/acorex-components-uploader.mjs +3 -11
  233. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  234. package/fesm2022/acorex-components-wysiwyg.mjs +183 -0
  235. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -0
  236. package/form/lib/validation-rule.directive.d.ts +1 -1
  237. package/package.json +55 -43
  238. package/uploader/lib/uploader-list.component.d.ts +1 -1
  239. package/wysiwyg/README.md +3 -0
  240. package/wysiwyg/index.d.ts +4 -0
  241. package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +12 -0
  242. package/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.d.ts +28 -0
  243. package/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.d.ts +5 -0
  244. package/wysiwyg/lib/wysiwyg/wysiwyg.service.d.ts +7 -0
  245. package/wysiwyg/lib/wysiwyg.module.d.ts +13 -0
@@ -318,4 +318,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
318
318
  type: ContentChildren,
319
319
  args: [AXDataTableColumnComponent]
320
320
  }] } });
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUVqQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQTBFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkksT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7OztBQW1CdkYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGVBQWU7SUFqQnpEOztRQWtCVSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxVQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBTXJC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c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQVlLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBVU4sZ0JBQWdCO3NCQURmLE1BQU07Z0JBSVAsVUFBVTtzQkFEVCxNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxxQkFBcUI7c0JBRHBCLE1BQU07Z0JBTUcsT0FBTztzQkFEaEIsZUFBZTt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFQYWdlckNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXBhZ2VyJztcbmltcG9ydCB7IEFYSHRtbFV0aWwsIEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIGJ1ZmZlciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYQmFzZURhdGFUYWJsZSwgQVhDb2x1bW5zT3JkZXJDaGFuZ2VkRXZlbnQsIEFYRGF0YVRhYmxlUm93Q2xpY2ssIEFYRGF0YVRhYmxlUm93RGJDbGljayB9IGZyb20gJy4uL2Jhc2UtZGF0YS10YWJsZS5jbGFzcyc7XG5pbXBvcnQgeyBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbnMvZGF0YS10YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgQVhEYXRhVGFibGVUZXh0Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29sdW1ucy9kYXRhLXRleHQtY29sdW1uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRhdGEtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgbmdTa2lwSHlkcmF0aW9uOiAndHJ1ZScgfSxcbiAgaW5wdXRzOiBbJ2RhdGFTb3VyY2UnXSxcbiAgb3V0cHV0czogWydzZWxlY3RlZFJvd3NDaGFuZ2UnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhCYXNlRGF0YVRhYmxlLFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIH0sXG4gICAgQVhVbnN1YnNjcmliZXIsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0YVRhYmxlQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlRGF0YVRhYmxlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVyID0gaW5qZWN0KEFYVW5zdWJzY3JpYmVyKTtcbiAgcHJpdmF0ZSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGFQYWdlcicpIGRhdGFQYWdlcjtcblxuICBwcm90ZWN0ZWQgcnRsITogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgZGlzcGxheWVkUm93czogV3JpdGFibGVTaWduYWw8YW55W10+ID0gc2lnbmFsKFtdKTtcbiAgcHJvdGVjdGVkIHBhZ2U6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj4gPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCBwYWdlU2l6ZTogV3JpdGFibGVTaWduYWw8bnVtYmVyPiA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIGlzTG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwodHJ1ZSk7XG5cbiAgcHJvdGVjdGVkIGNvbHVtbnNMaXN0OiBXcml0YWJsZVNpZ25hbDxhbnlbXT4gPSBzaWduYWwoW10pO1xuXG4gIHByb3RlY3RlZCBlbmRGaXhlZENvbHVtbnNMaXN0OiBTaWduYWw8YW55W10+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb2x1bW5zTGlzdCgpLmZpbHRlcigoYykgPT4gYy5maXhlZCA9PT0gJ2VuZCcpKTtcbiAgcHJvdGVjdGVkIHN0YXJ0Rml4ZWRDb2x1bW5zTGlzdDogU2lnbmFsPGFueVtdPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29sdW1uc0xpc3QoKS5maWx0ZXIoKGMpID0+IGMuZml4ZWQgPT09ICdzdGFydCcpKTtcbiAgcHJvdGVjdGVkIG5vcm1hbENvbHVtbnNMaXN0OiBTaWduYWw8YW55W10+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb2x1bW5zTGlzdCgpLmZpbHRlcigoYykgPT4gYy5maXhlZCAhPT0gJ2VuZCcgJiYgYy5maXhlZCAhPT0gJ3N0YXJ0JykpO1xuXG4gIHByb3RlY3RlZCByZXNpemVDb2x1bW5Qcm9wID0ge1xuICAgIHN0YXJ0WDogMCxcbiAgICBzdGFydFdpZHRoOiAwLFxuICAgIGNvbHVtbkluZGV4OiAwLFxuICAgIG5ld0NvbHVtbldpZHRoOiAwLFxuICAgIHRoRWxlbWVudDogbnVsbCxcbiAgfTtcbiAgcHJvdGVjdGVkIGhhc0l0ZW1zID0gZmFsc2U7XG4gIHByb3RlY3RlZCB0b3RhbFJvd3MgPSAwO1xuICBwcm90ZWN0ZWQgY3VycmVudFBhZ2UgPSAwO1xuICBwcm90ZWN0ZWQgdG90YWxQYWdlcyA9IDA7XG4gIHByb3RlY3RlZCBzdGFydFJvd0luZGV4ID0gMDtcblxuICBASW5wdXQoKVxuICByb3dUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBhbHRlcm5hdGl2ZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2hvd0hlYWRlciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZml4ZWRIZWFkZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dGb290ZXIgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBmaXhlZEZvb3RlciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgaXRlbUhlaWdodDogbnVtYmVyIHwgJ2F1dG8nID0gNDA7XG5cbiAgQElucHV0KClcbiAgYWxsb3dSZW9yZGVyaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcGFnaW5nID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBmZXRjaERhdGFNb2RlOiAnYXV0bycgfCAnbWFudWFsJyA9ICdhdXRvJztcblxuICBASW5wdXQoKVxuICBsb2FkaW5nOiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBhbmltYXRpb246IGJvb2xlYW47XG4gICAgbG9hZGluZ1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIH0gPSB7XG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICBhbmltYXRpb246IHRydWUsXG4gIH07XG5cbiAgcHJpdmF0ZSBfZm9jdXNlZFJvdzogdW5rbm93bjtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBmb2N1c2VkUm93KCk6IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkUm93O1xuICB9XG4gIHB1YmxpYyBzZXQgZm9jdXNlZFJvdyh2OiB1bmtub3duKSB7XG4gICAgdGhpcy5fZm9jdXNlZFJvdyA9IHY7XG4gICAgdGhpcy5mb2N1c2VkUm93Q2hhbmdlLmVtaXQodik7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgZm9jdXNlZFJvd0NoYW5nZTogRXZlbnRFbWl0dGVyPHVua25vd24+ID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8QVhEYXRhVGFibGVSb3dDbGljaz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YVRhYmxlUm93Q2xpY2s+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uUm93RGJDbGljazogRXZlbnRFbWl0dGVyPEFYRGF0YVRhYmxlUm93RGJDbGljaz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YVRhYmxlUm93RGJDbGljaz4oKTtcblxuICBAT3V0cHV0KClcbiAgb25Db2x1bW5zT3JkZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhDb2x1bW5zT3JkZXJDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENvbHVtbnNPcmRlckNoYW5nZWRFdmVudD4oKTtcblxuICBwcml2YXRlIGNsaWNrU3ViamVjdCA9IG5ldyBTdWJqZWN0PHsgZXZlbnQ6IE1vdXNlRXZlbnQ7IGl0ZW06IGFueSB9PigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQpXG4gIHByb3RlY3RlZCBjb2x1bW5zOiBRdWVyeUxpc3Q8QVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQ+O1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5ydGwgPSBBWEh0bWxVdGlsLmlzUnRsKHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSk7XG4gICAgdGhpcy5kYXRhU291cmNlLnVzZUNhY2hlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuZmV0Y2hEYXRhTW9kZSA9PSAnYXV0bycpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXRQYWdlKDApO1xuICAgIH1cbiAgICB0aGlzLmRpc3BsYXllZFJvd3Muc2V0KG5ldyBBcnJheSh0aGlzLmRhdGFTb3VyY2UucGFnZVNpemUpKTtcbiAgICB0aGlzLnRvdGFsUm93cyA9IHRoaXMuZGF0YVNvdXJjZS5pdGVtcy5sZW5ndGg7XG4gICAgdGhpcy5kYXRhU291cmNlLm9uTG9hZGluZ0NoYW5nZWQucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZGF0YSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRhdGFTb3VyY2Uub25DaGFuZ2VkLnBpcGUodGhpcy5fdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRSb3dzLnNldChkYXRhLml0ZW1zKTtcbiAgICAgIHRoaXMudG90YWxSb3dzID0gZGF0YS50b3RhbENvdW50O1xuICAgICAgdGhpcy5oYXNJdGVtcyA9IGRhdGEudG90YWxDb3VudCA+IDA7XG4gICAgfSk7XG5cbiAgICAvL1xuICAgIHRoaXMuY2xpY2tTdWJqZWN0XG4gICAgICAucGlwZShcbiAgICAgICAgYnVmZmVyKHRoaXMuY2xpY2tTdWJqZWN0LnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpKSxcbiAgICAgICAgZmlsdGVyKChjbGlja0FycmF5KSA9PiBjbGlja0FycmF5Lmxlbmd0aCA9PT0gMiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjbGlja0FycmF5KSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlUm93RG91YmxlQ2xpY2soY2xpY2tBcnJheVswXS5ldmVudCwgY2xpY2tBcnJheVswXS5pdGVtKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsY3VsYXRlU3RpY2t5Q29sdW1uc1Bvc2l0aW9ucygpO1xuICAgIHRoaXMuY29sdW1uc0xpc3Quc2V0KHRoaXMuY29sdW1ucy50b0FycmF5KCkpO1xuICAgIHRoaXMuY29sdW1ucy5jaGFuZ2VzLnBpcGUodGhpcy5fdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoY29scykgPT4ge1xuICAgICAgdGhpcy5jb2x1bW5zTGlzdC5zZXQoY29scy50b0FycmF5KCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPGFueSwgYW55LCBhbnk+KSB7XG4gICAgY29uc3QgY2xvbmVkQ29sdW1ucyA9IFsuLi50aGlzLmNvbHVtbnNMaXN0KCldO1xuICAgIG1vdmVJdGVtSW5BcnJheShjbG9uZWRDb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuY29sdW1uc0xpc3Quc2V0KGNsb25lZENvbHVtbnMpO1xuXG4gICAgdGhpcy5vbkNvbHVtbnNPcmRlckNoYW5nZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBkYXRhOiB7IGV2ZW50IH0sXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuaGFuZGxlUm93U2luZ2xlQ2xpY2soZXZlbnQsIGl0ZW0pO1xuICAgIHRoaXMuY2xpY2tTdWJqZWN0Lm5leHQoeyBldmVudCwgaXRlbSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUm93U2luZ2xlQ2xpY2soZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb2N1c2VkUm93ID09IGl0ZW0pIHtcbiAgICAgIHRoaXMuZm9jdXNlZFJvdyA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXNlZFJvdyA9IGl0ZW07XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy5vblJvd0NsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgZGF0YTogaXRlbSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uUGFnZUNoYW5nZWQoZXZlbnQ6IEFYRGF0YVBhZ2VyQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICBjb25zdCBwYWdlQ2hhbmdlZCA9IGV2ZW50LnBhZ2UgLSAxICE9IHRoaXMucGFnZSgpO1xuICAgICAgY29uc3QgcGFnZVNpemVDaGFuZ2VkID0gZXZlbnQudGFrZSAhPSB0aGlzLnBhZ2VTaXplKCk7XG4gICAgXG4gICAgICBpZiAocGFnZUNoYW5nZWQgfHwgcGFnZVNpemVDaGFuZ2VkKSB7XG4gICAgICAgIGlmIChwYWdlQ2hhbmdlZCkge1xuICAgICAgICAgIHRoaXMucGFnZS5zZXQoZXZlbnQucGFnZSAtIDEpO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIGlmIChwYWdlU2l6ZUNoYW5nZWQpIHtcbiAgICAgICAgICB0aGlzLnBhZ2VTaXplLnNldChldmVudC50YWtlKTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAvLyBVcGRhdGUgZGlzcGxheWVkIHJvd3MgYW5kIGRhdGEgc291cmNlXG4gICAgICAgIHRoaXMuZGlzcGxheWVkUm93cy5zZXQobmV3IEFycmF5KHRoaXMucGFnZVNpemUoKSkpO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0UGFnZSh0aGlzLnBhZ2UoKSk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXRQYWdlU2l6ZSh0aGlzLnBhZ2VTaXplKCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dEb3VibGVDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5mb2N1c2VkUm93ID0gaXRlbTtcbiAgICAvL1xuICAgIHRoaXMub25Sb3dEYkNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgZGF0YTogaXRlbSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlQ29sdW1uQ2xpY2soZTogTW91c2VFdmVudCwgY29sdW1uOiBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCkge1xuICAgIGlmIChjb2x1bW4gaW5zdGFuY2VvZiBBWERhdGFUYWJsZVRleHRDb2x1bW5Db21wb25lbnQpIHtcbiAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydC5maW5kKChjKSA9PiBjLmZpZWxkID09IGNvbHVtbi5kYXRhRmllbGQpO1xuICAgICAgaWYgKCFzb3J0KSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5xdWVyeS5zb3J0LnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBjb2x1bW4uZGF0YUZpZWxkLFxuICAgICAgICAgIGRpcjogJ2FzYycsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHNvcnQuZGlyID09ICdhc2MnKSB7XG4gICAgICAgICAgc29ydC5kaXIgPSAnZGVzYyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLnF1ZXJ5LnNvcnQgPSB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydC5maWx0ZXIoKGMpID0+IGMgIT0gc29ydCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTb3J0KGNvbHVtbjogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChjb2x1bW4gaW5zdGFuY2VvZiBBWERhdGFUYWJsZVRleHRDb2x1bW5Db21wb25lbnQpIHtcbiAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydC5maW5kKChjKSA9PiBjLmZpZWxkID09IGNvbHVtbi5kYXRhRmllbGQpO1xuICAgICAgcmV0dXJuIHNvcnQgPyAoc29ydC5kaXIgPT0gJ2FzYycgPyAnYXgtaWNvbi1hcnJvdy1sb25nLWRvd24nIDogJ2F4LWljb24tYXJyb3ctbG9uZy11cCcpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgICBpZiAodGhpcy5kYXRhUGFnZXIpIHtcbiAgICAgIHRoaXMuZGF0YVBhZ2VyLmdvRmlyc3RQYWdlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNhbGN1bGF0ZVJvd0luZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlLnBhZ2VTaXplICogdGhpcy5wYWdlKCkgKyBpbmRleDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblJlc2l6ZUNvbHVtblN0YXJ0KGV2ZW50OiBNb3VzZUV2ZW50LCBjb2x1bW5JbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMucmVzaXplQ29sdW1uUHJvcC5zdGFydFggPSBldmVudC5wYWdlWDtcbiAgICB0aGlzLnJlc2l6ZUNvbHVtblByb3AudGhFbGVtZW50ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudDtcbiAgICB0aGlzLnJlc2l6ZUNvbHVtblByb3Auc3RhcnRXaWR0aCA9IHBhcnNlSW50KHRoaXMucmVzaXplQ29sdW1uUHJvcC50aEVsZW1lbnQuc3R5bGUud2lkdGgpO1xuICAgIHRoaXMucmVzaXplQ29sdW1uUHJvcC5jb2x1bW5JbmRleCA9IGNvbHVtbkluZGV4O1xuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vblJlc2l6ZUNvbHVtbk1vdmUpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25SZXNpemVDb2x1bW5FbmQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvblJlc2l6ZUNvbHVtbk1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCBkaWZmWCA9IGV2ZW50LnBhZ2VYIC0gdGhpcy5yZXNpemVDb2x1bW5Qcm9wLnN0YXJ0WDtcbiAgICBjb25zdCBuZXdXaWR0aCA9IHRoaXMucnRsID8gdGhpcy5yZXNpemVDb2x1bW5Qcm9wLnN0YXJ0V2lkdGggLSBkaWZmWCA6IHRoaXMucmVzaXplQ29sdW1uUHJvcC5zdGFydFdpZHRoICsgZGlmZlg7XG4gICAgdGhpcy5yZXNpemVDb2x1bW5Qcm9wLnRoRWxlbWVudC5zdHlsZS53aWR0aCA9IGAke01hdGgubWF4KDEwMCwgbmV3V2lkdGgpfXB4YDtcbiAgICB0aGlzLnJlc2l6ZUNvbHVtblByb3AudGhFbGVtZW50LnNldEF0dHJpYnV0ZSgnbmV3LXdpZHRoJywgYCR7bmV3V2lkdGh9YCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBvblJlc2l6ZUNvbHVtbkVuZCA9ICgpOiB2b2lkID0+IHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uUmVzaXplQ29sdW1uTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25SZXNpemVDb2x1bW5FbmQpO1xuXG4gICAgY29uc3QgbmV3V2lkdGggPSBwYXJzZUludCh0aGlzLnJlc2l6ZUNvbHVtblByb3AudGhFbGVtZW50LmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCduZXctd2lkdGgnKS52YWx1ZSk7XG4gICAgdGhpcy5jb2x1bW5zLmdldCh0aGlzLnJlc2l6ZUNvbHVtblByb3AuY29sdW1uSW5kZXgpLndpZHRoID0gYCR7TWF0aC5tYXgoMTAwLCBuZXdXaWR0aCl9cHhgO1xuICAgIHRoaXMucmVzZXRSZXNpemluZ1Byb2Nlc3MoKTtcbiAgfTtcblxuICBwcml2YXRlIHJlc2V0UmVzaXppbmdQcm9jZXNzKCkge1xuICAgIHRoaXMucmVzaXplQ29sdW1uUHJvcC50aEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCduZXctd2lkdGgnKTtcbiAgICB0aGlzLnJlc2l6ZUNvbHVtblByb3AgPSB7XG4gICAgICBzdGFydFg6IDAsXG4gICAgICBzdGFydFdpZHRoOiAwLFxuICAgICAgY29sdW1uSW5kZXg6IDAsXG4gICAgICBuZXdDb2x1bW5XaWR0aDogMCxcbiAgICAgIHRoRWxlbWVudDogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVTdGlja3lDb2x1bW5zUG9zaXRpb25zKCkge1xuICAgIGxldCB0b3RhbFdpZHRoID0gMDtcbiAgICBsZXQgYWNjdW11bGF0ZWRXaWR0aEZyb21TdGFydCA9IDA7XG4gICAgdGhpcy5jb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgY29uc3Qgd2lkdGggPSBwYXJzZUludChjb2x1bW4ud2lkdGggYXMgc3RyaW5nKTtcbiAgICAgIGlmICghaXNOYU4od2lkdGgpKSB7XG4gICAgICAgIHRvdGFsV2lkdGggKz0gd2lkdGg7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbGV0IGxhc3RTdGFydENvbHVtbjogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQ7XG5cbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCB3aWR0aCA9IHBhcnNlSW50KGNvbHVtbi53aWR0aCBhcyBzdHJpbmcpO1xuXG4gICAgICBpZiAoY29sdW1uLmZpeGVkID09PSAnc3RhcnQnICYmICFpc05hTih3aWR0aCkpIHtcbiAgICAgICAgY29sdW1uWydzdGlja3lTdGFydCddID0gYWNjdW11bGF0ZWRXaWR0aEZyb21TdGFydCArICdweCc7XG4gICAgICAgIGxhc3RTdGFydENvbHVtbiA9IGNvbHVtbjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc05hTih3aWR0aCkpIHtcbiAgICAgICAgYWNjdW11bGF0ZWRXaWR0aEZyb21TdGFydCArPSB3aWR0aDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAobGFzdFN0YXJ0Q29sdW1uKSBsYXN0U3RhcnRDb2x1bW5bJ2lzTGFzdEZpeGVkQ29sdW1uJ10gPSB0cnVlO1xuXG4gICAgbGV0IGFjY3VtdWxhdGVkV2lkdGhGcm9tRW5kID0gMDtcbiAgICBsZXQgZmlyc3RFbmRDb2x1bW46IEFYRGF0YVRhYmxlQ29sdW1uQ29tcG9uZW50O1xuXG4gICAgZm9yIChsZXQgaSA9IHRoaXMuY29sdW1ucy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5jb2x1bW5zLmdldChpKTtcblxuICAgICAgY29uc3Qgd2lkdGggPSBwYXJzZUludChjb2x1bW4ud2lkdGggYXMgc3RyaW5nKTtcblxuICAgICAgaWYgKGNvbHVtbi5maXhlZCA9PT0gJ2VuZCcgJiYgIWlzTmFOKHdpZHRoKSkge1xuICAgICAgICBjb2x1bW5bJ3N0aWNreUVuZCddID0gYWNjdW11bGF0ZWRXaWR0aEZyb21FbmQgKyAncHgnO1xuICAgICAgICBmaXJzdEVuZENvbHVtbiA9IGNvbHVtbjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc05hTih3aWR0aCkpIHtcbiAgICAgICAgYWNjdW11bGF0ZWRXaWR0aEZyb21FbmQgKz0gd2lkdGg7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChmaXJzdEVuZENvbHVtbikgZmlyc3RFbmRDb2x1bW5bJ2lzRmlyc3RGaXhlZENvbHVtbiddID0gdHJ1ZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtaGVhZGVyXCI+IDwvbmctY29udGVudD5cbkBpZiAoIWRpc3BsYXllZFJvd3MoKS5sZW5ndGgpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWRhdGEtdGFibGUtZW1wdHktZGF0YVwiPlxuICAgIEBpZiAoZW1wdHlUZW1wbGF0ZSkge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxzcGFuPk5vIFJlY29yZCBGb3VuZCE8L3NwYW4+XG4gICAgfVxuICA8L2Rpdj5cbn1cbjxkaXYgY2xhc3M9XCJheC1kYXRhLXRhYmxlLXdyYXBwZXJcIj5cbiAgPHRhYmxlPlxuICAgIEBpZiAoc2hvd0hlYWRlcikge1xuICAgICAgPHRoZWFkIFtuZ0NsYXNzXT1cInsgJ2F4LWRhdGEtdGFibGUtc3RpY2t5LWhlYWRlcic6IGZpeGVkSGVhZGVyIH1cIj5cbiAgICAgICAgPHRyXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWFsbG93UmVvcmRlcmluZ1wiXG4gICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICBjZGtTY3JvbGxhYmxlXG4gICAgICAgICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBmb3IgKGMgb2Ygc3RhcnRGaXhlZENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtZGF0YS10YWJsZS1oZWFkLWNlbGwgc3RpY2t5LXN0YXJ0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWludGVyYWN0aXZlXT1cImMuYWxsb3dTb3J0aW5nXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImMuYWxsb3dTb3J0aW5nID8gaGFuZGxlQ29sdW1uQ2xpY2soJGV2ZW50LCBjKSA6IG51bGxcIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS10YWJsZS1zdGlja3ktaGVhZGVyLWNlbGxdPVwiYy5maXhlZCAmJiBjLndpZHRoXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImMud2lkdGhcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXNMYXN0XT1cImNbJ2lzTGFzdEZpeGVkQ29sdW1uJ11cIlxuICAgICAgICAgICAgICBbc3R5bGUuLS1zdGlja3ktc3RhcnRdPVwiY1snc3RpY2t5U3RhcnQnXVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnJlbmRlckhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiBjLCByb3dzOiBkaXNwbGF5ZWRSb3dzKCksIHJvd0luZGV4OiAkaW5kZXggfSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgQGlmIChnZXRTb3J0KGMpKSB7XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiYXgtaWNvbiB7eyBnZXRTb3J0KGMpIH19XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZm9yIChjIG9mIG5vcm1hbENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtZGF0YS10YWJsZS1oZWFkLWNlbGxcIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtaW50ZXJhY3RpdmVdPVwiYy5hbGxvd1NvcnRpbmdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYy5hbGxvd1NvcnRpbmcgPyBoYW5kbGVDb2x1bW5DbGljaygkZXZlbnQsIGMpIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5heC1kYXRhLXRhYmxlLXN0aWNreS1oZWFkZXItY2VsbF09XCJjLmZpeGVkICYmIGMud2lkdGhcIlxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiYy53aWR0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnJlbmRlckhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiBjLCByb3dzOiBkaXNwbGF5ZWRSb3dzKCksIHJvd0luZGV4OiAkaW5kZXggfSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgQGlmIChnZXRTb3J0KGMpKSB7XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiYXgtaWNvbiB7eyBnZXRTb3J0KGMpIH19XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIEBpZiAoYy5hbGxvd1Jlc2l6aW5nICYmICFjLmZpeGVkKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXJlc2l6ZS1oYW5kbGVcIiAobW91c2Vkb3duKT1cIm9uUmVzaXplQ29sdW1uU3RhcnQoJGV2ZW50LCB0aGlzLnN0YXJ0Rml4ZWRDb2x1bW5zTGlzdCgpLmxlbmd0aCArICRpbmRleClcIj48L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgQGZvciAoYyBvZiBlbmRGaXhlZENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtZGF0YS10YWJsZS1oZWFkLWNlbGwgc3RpY2t5LWVuZFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5heC1pbnRlcmFjdGl2ZV09XCJjLmFsbG93U29ydGluZ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjLmFsbG93U29ydGluZyA/IGhhbmRsZUNvbHVtbkNsaWNrKCRldmVudCwgYykgOiBudWxsXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtdGFibGUtc3RpY2t5LWhlYWRlci1jZWxsXT1cImMuZml4ZWQgJiYgYy53aWR0aFwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjLndpZHRoXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmlzRmlyc3RdPVwiY1snaXNGaXJzdEZpeGVkQ29sdW1uJ11cIlxuICAgICAgICAgICAgICBbc3R5bGUuLS1zdGlja3ktZW5kXT1cImNbJ3N0aWNreUVuZCddXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImMucmVuZGVySGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IGRhdGE6IGMsIHJvd3M6IGRpc3BsYXllZFJvd3MoKSwgcm93SW5kZXg6ICRpbmRleCB9IH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICBAaWYgKGdldFNvcnQoYykpIHtcbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pY29uIHt7IGdldFNvcnQoYykgfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICB9XG4gICAgPHRib2R5IFtuZ0NsYXNzXT1cInsgJ2F4LWRhdGEtdGFibGUtcm93LWFsdGVybmF0aXZlJzogYWx0ZXJuYXRpdmUgfVwiPlxuICAgICAgQGZvciAocm93IG9mIGRpc3BsYXllZFJvd3MoKTsgbGV0IHJvd0luZGV4ID0gJGluZGV4OyB0cmFjayByb3dJbmRleCkge1xuICAgICAgICBAaWYgKHJvd1RlbXBsYXRlKSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJvd1RlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9IH1cIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDx0clxuICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLWZvY3VzZWRdPVwiZm9jdXNlZFJvdyAmJiByb3cgPT09IGZvY3VzZWRSb3dcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1pbmRleF09XCJyb3dJbmRleFwiXG4gICAgICAgICAgICBbY2xhc3MuYXgtc3RhdGUtc2VsZWN0ZWRdPVwic2VsZWN0ZWRSb3dzLmluY2x1ZGVzKHJvdylcIlxuICAgICAgICAgICAgc3R5bGUuaGVpZ2h0PVwie3sgaXRlbUhlaWdodCB9fXB4XCJcbiAgICAgICAgICAgIHN0eWxlLm1heC1oZWlnaHQ9XCJ7eyBpdGVtSGVpZ2h0IH19cHhcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVJvd0NsaWNrKCRldmVudCwgcm93KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAoYyBvZiBzdGFydEZpeGVkQ29sdW1uc0xpc3QoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjLndpZHRoXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS10YWJsZS1zdGlja3ktYm9keS1jZWxsXT1cImMuZml4ZWQgJiYgYy53aWR0aFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnN0aWNreS1zdGFydF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXNMYXN0XT1cImNbJ2lzTGFzdEZpeGVkQ29sdW1uJ11cIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXN0aWNreS1zdGFydF09XCJjWydzdGlja3lTdGFydCddXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWxhYmVsXT1cImMuY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYy5jc3NDbGFzc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKHJvdyAmJiAhaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnJlbmRlckNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgZGF0YTogcm93LCByb3dJbmRleDogY2FsY3VsYXRlUm93SW5kZXgocm93SW5kZXgpIH0gfVwiXG4gICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICBAaWYgKGMubG9hZGluZ0VuYWJsZWQgJiYgbG9hZGluZy5lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobG9hZGluZy5sb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZy5sb2FkaW5nVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIFthbmltYXRlZF09XCJsb2FkaW5nLmFuaW1hdGlvblwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZm9yIChjIG9mIG5vcm1hbENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiYy53aWR0aFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtdGFibGUtc3RpY2t5LWJvZHktY2VsbF09XCJjLmZpeGVkICYmIGMud2lkdGhcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtbGFiZWxdPVwiYy5jYXB0aW9uXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJjLmNzc0NsYXNzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAocm93ICYmICFpc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImMucmVuZGVyQ2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiByb3csIHJvd0luZGV4OiBjYWxjdWxhdGVSb3dJbmRleChyb3dJbmRleCkgfSB9XCJcbiAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIEBpZiAoYy5sb2FkaW5nRW5hYmxlZCAmJiBsb2FkaW5nLmVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChsb2FkaW5nLmxvYWRpbmdUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nLmxvYWRpbmdUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cImxvYWRpbmcuYW5pbWF0aW9uXCI+PC9heC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDx0ZD48L3RkPlxuICAgICAgICAgICAgQGZvciAoYyBvZiBlbmRGaXhlZENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiYy53aWR0aFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtdGFibGUtc3RpY2t5LWJvZHktY2VsbF09XCJjLmZpeGVkICYmIGMud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zdGlja3ktZW5kXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pc0ZpcnN0XT1cImNbJ2lzRmlyc3RGaXhlZENvbHVtbiddXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuLS1zdGlja3ktZW5kXT1cImNbJ3N0aWNreUVuZCddXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWxhYmVsXT1cImMuY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYy5jc3NDbGFzc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKHJvdyAmJiAhaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnJlbmRlckNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgZGF0YTogcm93LCByb3dJbmRleDogY2FsY3VsYXRlUm93SW5kZXgocm93SW5kZXgpIH0gfVwiXG4gICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICBAaWYgKGMubG9hZGluZ0VuYWJsZWQgJiYgbG9hZGluZy5lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobG9hZGluZy5sb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZy5sb2FkaW5nVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIFthbmltYXRlZF09XCJsb2FkaW5nLmFuaW1hdGlvblwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA8dHIgY2xhc3M9XCJlbXB0eS1yb3dcIj48L3RyPlxuICAgIDwvdGJvZHk+XG4gICAgQGlmIChzaG93Rm9vdGVyKSB7XG4gICAgICA8dGZvb3QgW25nQ2xhc3NdPVwieyAnYXgtZGF0YS10YWJsZS1zdGlja3ktZm9vdGVyJzogZml4ZWRGb290ZXIgfVwiPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgQGZvciAoYyBvZiBzdGFydEZpeGVkQ29sdW1uc0xpc3QoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1kYXRhLXRhYmxlLXN0aWNreS1mb290ZXItY2VsbCBzdGlja3ktc3RhcnRcIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS10YWJsZS1zdGlja3ktZm9vdGVyLWNlbGxdPVwiYy5maXhlZCAmJiBjLndpZHRoXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImMud2lkdGhcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXNMYXN0XT1cImNbJ2lzTGFzdEZpeGVkQ29sdW1uJ11cIlxuICAgICAgICAgICAgICBbc3R5bGUuLS1zdGlja3ktc3RhcnRdPVwiY1snc3RpY2t5U3RhcnQnXVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnJlbmRlckZvb3RlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiBjLCByb3dzOiBkaXNwbGF5ZWRSb3dzKCksIHJvd0luZGV4OiAkaW5kZXggfSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgQGlmIChnZXRTb3J0KGMpKSB7XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiYXgtaWNvbiB7eyBnZXRTb3J0KGMpIH19XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZm9yIChjIG9mIG5vcm1hbENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgIFtjbGFzcy5heC1pbnRlcmFjdGl2ZV09XCJjLmFsbG93U29ydGluZ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjLmFsbG93U29ydGluZyA/IGhhbmRsZUNvbHVtbkNsaWNrKCRldmVudCwgYykgOiBudWxsXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtdGFibGUtc3RpY2t5LWhlYWRlci1jZWxsXT1cImMuZml4ZWQgJiYgYy53aWR0aFwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjLndpZHRoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImMucmVuZGVyRm9vdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IGRhdGE6IGMsIHJvd3M6IGRpc3BsYXllZFJvd3MoKSwgcm93SW5kZXg6ICRpbmRleCB9IH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICBAaWYgKGdldFNvcnQoYykpIHtcbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pY29uIHt7IGdldFNvcnQoYykgfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgQGlmIChjLmFsbG93UmVzaXppbmcgJiYgIWMuZml4ZWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcmVzaXplLWhhbmRsZVwiIChtb3VzZWRvd24pPVwib25SZXNpemVDb2x1bW5TdGFydCgkZXZlbnQsIHRoaXMuc3RhcnRGaXhlZENvbHVtbnNMaXN0KCkubGVuZ3RoICsgJGluZGV4KVwiPjwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8dGQ+PC90ZD5cbiAgICAgICAgICBAZm9yIChjIG9mIGVuZEZpeGVkQ29sdW1uc0xpc3QoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1kYXRhLXRhYmxlLXN0aWNreS1mb290ZXItY2VsbCBzdGlja3ktZW5kXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWludGVyYWN0aXZlXT1cImMuYWxsb3dTb3J0aW5nXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImMuYWxsb3dTb3J0aW5nID8gaGFuZGxlQ29sdW1uQ2xpY2soJGV2ZW50LCBjKSA6IG51bGxcIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS10YWJsZS1zdGlja3ktaGVhZGVyLWNlbGxdPVwiYy5maXhlZCAmJiBjLndpZHRoXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImMud2lkdGhcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXNGaXJzdF09XCJjWydpc0ZpcnN0Rml4ZWRDb2x1bW4nXVwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLXN0aWNreS1lbmRdPVwiY1snc3RpY2t5RW5kJ11cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYy5yZW5kZXJGb290ZXJUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgZGF0YTogYywgcm93czogZGlzcGxheWVkUm93cygpLCByb3dJbmRleDogJGluZGV4IH0gfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIEBpZiAoZ2V0U29ydChjKSkge1xuICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImF4LWljb24ge3sgZ2V0U29ydChjKSB9fVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rmb290PlxuICAgIH1cbiAgPC90YWJsZT5cbjwvZGl2PlxuXG5AaWYgKHBhZ2luZykge1xuICA8ZGl2IGNsYXNzPVwiYXgtdGFibGUtZm9vdGVyXCIgI2Zvb3RlckNvbnRhaW5lcj5cbiAgICA8YXgtZGF0YS1wYWdlclxuICAgICAgI2RhdGFQYWdlclxuICAgICAgW2Rpc3BsYXlNb2RlXT1cIidjdXN0b20nXCJcbiAgICAgIChvbkNoYW5nZWQpPVwib25QYWdlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFt0b3RhbF09XCJkYXRhU291cmNlLnRvdGFsQ291bnRcIlxuICAgICAgW3NpemVdPVwiZGF0YVNvdXJjZS5wYWdlU2l6ZVwiXG4gICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZygpXCJcbiAgICA+XG4gICAgICA8YXgtcHJlZml4IGNsYXNzPVwiYXgtZGF0YS10YWJsZS1udW1lcmljLXBhZ2luZ1wiPlxuICAgICAgICA8YXgtZGF0YS1wYWdlci1udW1lcmljLXNlbGVjdG9yPiA8L2F4LWRhdGEtcGFnZXItbnVtZXJpYy1zZWxlY3Rvcj5cbiAgICAgICAgPGF4LWRhdGEtcGFnZXItcGFnZS1zaXplcz4gPC9heC1kYXRhLXBhZ2VyLXBhZ2Utc2l6ZXM+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1wcmVmaXggY2xhc3M9XCJheC1kYXRhLXRhYmxlLWlucHV0LXBhZ2luZ1wiPlxuICAgICAgICA8YXgtZGF0YS1wYWdlci1wcmV2LWJ1dHRvbnM+IDwvYXgtZGF0YS1wYWdlci1wcmV2LWJ1dHRvbnM+XG4gICAgICAgIDxheC1kYXRhLXBhZ2VyLWlucHV0LXNlbGVjdG9yPiA8L2F4LWRhdGEtcGFnZXItaW5wdXQtc2VsZWN0b3I+XG4gICAgICAgIDxheC1kYXRhLXBhZ2VyLW5leHQtYnV0dG9ucz4gPC9heC1kYXRhLXBhZ2VyLW5leHQtYnV0dG9ucz5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeCBjbGFzcz1cImF4LWRhdGEtdGFibGUtaW5mb1wiPlxuICAgICAgICA8YXgtZGF0YS1wYWdlci1pbmZvPiA8L2F4LWRhdGEtcGFnZXItaW5mbz5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwicmVmcmVzaCgpXCI+XG4gICAgICAgICAgPGF4LWljb24gaWNvbj1cImF4LWljb24gYXgtaWNvbi1yZWZyZXNoXCI+PC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtZGF0YS1wYWdlcj5cbiAgPC9kaXY+XG59XG48bmctY29udGVudCBzZWxlY3Q9XCJheC1mb290ZXJcIj4gPC9uZy1jb250ZW50PlxuIl19
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUVqQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQTBFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkksT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7OztBQW1CdkYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGVBQWU7SUFqQnpEOztRQWtCVSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxVQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBTXJC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c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQVlLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBVU4sZ0JBQWdCO3NCQURmLE1BQU07Z0JBSVAsVUFBVTtzQkFEVCxNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxxQkFBcUI7c0JBRHBCLE1BQU07Z0JBTUcsT0FBTztzQkFEaEIsZUFBZTt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFQYWdlckNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXBhZ2VyJztcbmltcG9ydCB7IEFYSHRtbFV0aWwsIEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIGJ1ZmZlciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYQmFzZURhdGFUYWJsZSwgQVhDb2x1bW5zT3JkZXJDaGFuZ2VkRXZlbnQsIEFYRGF0YVRhYmxlUm93Q2xpY2ssIEFYRGF0YVRhYmxlUm93RGJDbGljayB9IGZyb20gJy4uL2Jhc2UtZGF0YS10YWJsZS5jbGFzcyc7XG5pbXBvcnQgeyBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbnMvZGF0YS10YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgQVhEYXRhVGFibGVUZXh0Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29sdW1ucy9kYXRhLXRleHQtY29sdW1uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRhdGEtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgbmdTa2lwSHlkcmF0aW9uOiAndHJ1ZScgfSxcbiAgaW5wdXRzOiBbJ2RhdGFTb3VyY2UnXSxcbiAgb3V0cHV0czogWydzZWxlY3RlZFJvd3NDaGFuZ2UnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhCYXNlRGF0YVRhYmxlLFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIH0sXG4gICAgQVhVbnN1YnNjcmliZXIsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0YVRhYmxlQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlRGF0YVRhYmxlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVyID0gaW5qZWN0KEFYVW5zdWJzY3JpYmVyKTtcbiAgcHJpdmF0ZSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGFQYWdlcicpIGRhdGFQYWdlcjtcblxuICBwcm90ZWN0ZWQgcnRsITogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgZGlzcGxheWVkUm93czogV3JpdGFibGVTaWduYWw8YW55W10+ID0gc2lnbmFsKFtdKTtcbiAgcHJvdGVjdGVkIHBhZ2U6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj4gPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCBwYWdlU2l6ZTogV3JpdGFibGVTaWduYWw8bnVtYmVyPiA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIGlzTG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwodHJ1ZSk7XG5cbiAgcHJvdGVjdGVkIGNvbHVtbnNMaXN0OiBXcml0YWJsZVNpZ25hbDxhbnlbXT4gPSBzaWduYWwoW10pO1xuXG4gIHByb3RlY3RlZCBlbmRGaXhlZENvbHVtbnNMaXN0OiBTaWduYWw8YW55W10+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb2x1bW5zTGlzdCgpLmZpbHRlcigoYykgPT4gYy5maXhlZCA9PT0gJ2VuZCcpKTtcbiAgcHJvdGVjdGVkIHN0YXJ0Rml4ZWRDb2x1bW5zTGlzdDogU2lnbmFsPGFueVtdPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29sdW1uc0xpc3QoKS5maWx0ZXIoKGMpID0+IGMuZml4ZWQgPT09ICdzdGFydCcpKTtcbiAgcHJvdGVjdGVkIG5vcm1hbENvbHVtbnNMaXN0OiBTaWduYWw8YW55W10+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb2x1bW5zTGlzdCgpLmZpbHRlcigoYykgPT4gYy5maXhlZCAhPT0gJ2VuZCcgJiYgYy5maXhlZCAhPT0gJ3N0YXJ0JykpO1xuXG4gIHByb3RlY3RlZCByZXNpemVDb2x1bW5Qcm9wID0ge1xuICAgIHN0YXJ0WDogMCxcbiAgICBzdGFydFdpZHRoOiAwLFxuICAgIGNvbHVtbkluZGV4OiAwLFxuICAgIG5ld0NvbHVtbldpZHRoOiAwLFxuICAgIHRoRWxlbWVudDogbnVsbCxcbiAgfTtcbiAgcHJvdGVjdGVkIGhhc0l0ZW1zID0gZmFsc2U7XG4gIHByb3RlY3RlZCB0b3RhbFJvd3MgPSAwO1xuICBwcm90ZWN0ZWQgY3VycmVudFBhZ2UgPSAwO1xuICBwcm90ZWN0ZWQgdG90YWxQYWdlcyA9IDA7XG4gIHByb3RlY3RlZCBzdGFydFJvd0luZGV4ID0gMDtcblxuICBASW5wdXQoKVxuICByb3dUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBhbHRlcm5hdGl2ZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2hvd0hlYWRlciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZml4ZWRIZWFkZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dGb290ZXIgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBmaXhlZEZvb3RlciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgaXRlbUhlaWdodDogbnVtYmVyIHwgJ2F1dG8nID0gNDA7XG5cbiAgQElucHV0KClcbiAgYWxsb3dSZW9yZGVyaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcGFnaW5nID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBmZXRjaERhdGFNb2RlOiAnYXV0bycgfCAnbWFudWFsJyA9ICdhdXRvJztcblxuICBASW5wdXQoKVxuICBsb2FkaW5nOiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBhbmltYXRpb246IGJvb2xlYW47XG4gICAgbG9hZGluZ1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIH0gPSB7XG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICBhbmltYXRpb246IHRydWUsXG4gIH07XG5cbiAgcHJpdmF0ZSBfZm9jdXNlZFJvdzogdW5rbm93bjtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBmb2N1c2VkUm93KCk6IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkUm93O1xuICB9XG4gIHB1YmxpYyBzZXQgZm9jdXNlZFJvdyh2OiB1bmtub3duKSB7XG4gICAgdGhpcy5fZm9jdXNlZFJvdyA9IHY7XG4gICAgdGhpcy5mb2N1c2VkUm93Q2hhbmdlLmVtaXQodik7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgZm9jdXNlZFJvd0NoYW5nZTogRXZlbnRFbWl0dGVyPHVua25vd24+ID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8QVhEYXRhVGFibGVSb3dDbGljaz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YVRhYmxlUm93Q2xpY2s+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uUm93RGJDbGljazogRXZlbnRFbWl0dGVyPEFYRGF0YVRhYmxlUm93RGJDbGljaz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YVRhYmxlUm93RGJDbGljaz4oKTtcblxuICBAT3V0cHV0KClcbiAgb25Db2x1bW5zT3JkZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhDb2x1bW5zT3JkZXJDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENvbHVtbnNPcmRlckNoYW5nZWRFdmVudD4oKTtcblxuICBwcml2YXRlIGNsaWNrU3ViamVjdCA9IG5ldyBTdWJqZWN0PHsgZXZlbnQ6IE1vdXNlRXZlbnQ7IGl0ZW06IGFueSB9PigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQpXG4gIHByb3RlY3RlZCBjb2x1bW5zOiBRdWVyeUxpc3Q8QVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQ+O1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5ydGwgPSBBWEh0bWxVdGlsLmlzUnRsKHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSk7XG4gICAgdGhpcy5kYXRhU291cmNlLnVzZUNhY2hlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuZmV0Y2hEYXRhTW9kZSA9PSAnYXV0bycpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXRQYWdlKDApO1xuICAgIH1cbiAgICB0aGlzLmRpc3BsYXllZFJvd3Muc2V0KG5ldyBBcnJheSh0aGlzLmRhdGFTb3VyY2UucGFnZVNpemUpKTtcbiAgICB0aGlzLnRvdGFsUm93cyA9IHRoaXMuZGF0YVNvdXJjZS5pdGVtcy5sZW5ndGg7XG4gICAgdGhpcy5kYXRhU291cmNlLm9uTG9hZGluZ0NoYW5nZWQucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZGF0YSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRhdGFTb3VyY2Uub25DaGFuZ2VkLnBpcGUodGhpcy5fdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRSb3dzLnNldChkYXRhLml0ZW1zKTtcbiAgICAgIHRoaXMudG90YWxSb3dzID0gZGF0YS50b3RhbENvdW50O1xuICAgICAgdGhpcy5oYXNJdGVtcyA9IGRhdGEudG90YWxDb3VudCA+IDA7XG4gICAgfSk7XG5cbiAgICAvL1xuICAgIHRoaXMuY2xpY2tTdWJqZWN0XG4gICAgICAucGlwZShcbiAgICAgICAgYnVmZmVyKHRoaXMuY2xpY2tTdWJqZWN0LnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpKSxcbiAgICAgICAgZmlsdGVyKChjbGlja0FycmF5KSA9PiBjbGlja0FycmF5Lmxlbmd0aCA9PT0gMiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjbGlja0FycmF5KSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlUm93RG91YmxlQ2xpY2soY2xpY2tBcnJheVswXS5ldmVudCwgY2xpY2tBcnJheVswXS5pdGVtKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsY3VsYXRlU3RpY2t5Q29sdW1uc1Bvc2l0aW9ucygpO1xuICAgIHRoaXMuY29sdW1uc0xpc3Quc2V0KHRoaXMuY29sdW1ucy50b0FycmF5KCkpO1xuICAgIHRoaXMuY29sdW1ucy5jaGFuZ2VzLnBpcGUodGhpcy5fdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoY29scykgPT4ge1xuICAgICAgdGhpcy5jb2x1bW5zTGlzdC5zZXQoY29scy50b0FycmF5KCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPGFueSwgYW55LCBhbnk+KSB7XG4gICAgY29uc3QgY2xvbmVkQ29sdW1ucyA9IFsuLi50aGlzLmNvbHVtbnNMaXN0KCldO1xuICAgIG1vdmVJdGVtSW5BcnJheShjbG9uZWRDb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuY29sdW1uc0xpc3Quc2V0KGNsb25lZENvbHVtbnMpO1xuXG4gICAgdGhpcy5vbkNvbHVtbnNPcmRlckNoYW5nZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBkYXRhOiB7IGV2ZW50IH0sXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuaGFuZGxlUm93U2luZ2xlQ2xpY2soZXZlbnQsIGl0ZW0pO1xuICAgIHRoaXMuY2xpY2tTdWJqZWN0Lm5leHQoeyBldmVudCwgaXRlbSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUm93U2luZ2xlQ2xpY2soZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb2N1c2VkUm93ID09IGl0ZW0pIHtcbiAgICAgIHRoaXMuZm9jdXNlZFJvdyA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXNlZFJvdyA9IGl0ZW07XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy5vblJvd0NsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgZGF0YTogaXRlbSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uUGFnZUNoYW5nZWQoZXZlbnQ6IEFYRGF0YVBhZ2VyQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICBjb25zdCBwYWdlQ2hhbmdlZCA9IGV2ZW50LnBhZ2UgLSAxICE9IHRoaXMucGFnZSgpO1xuICAgICAgY29uc3QgcGFnZVNpemVDaGFuZ2VkID0gZXZlbnQudGFrZSAhPSB0aGlzLnBhZ2VTaXplKCk7XG5cbiAgICAgIGlmIChwYWdlQ2hhbmdlZCB8fCBwYWdlU2l6ZUNoYW5nZWQpIHtcbiAgICAgICAgaWYgKHBhZ2VDaGFuZ2VkKSB7XG4gICAgICAgICAgdGhpcy5wYWdlLnNldChldmVudC5wYWdlIC0gMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFnZVNpemVDaGFuZ2VkKSB7XG4gICAgICAgICAgdGhpcy5wYWdlU2l6ZS5zZXQoZXZlbnQudGFrZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVcGRhdGUgZGlzcGxheWVkIHJvd3MgYW5kIGRhdGEgc291cmNlXG4gICAgICAgIHRoaXMuZGlzcGxheWVkUm93cy5zZXQobmV3IEFycmF5KHRoaXMucGFnZVNpemUoKSkpO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0UGFnZSh0aGlzLnBhZ2UoKSk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXRQYWdlU2l6ZSh0aGlzLnBhZ2VTaXplKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dEb3VibGVDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5mb2N1c2VkUm93ID0gaXRlbTtcbiAgICAvL1xuICAgIHRoaXMub25Sb3dEYkNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgZGF0YTogaXRlbSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlQ29sdW1uQ2xpY2soZTogTW91c2VFdmVudCwgY29sdW1uOiBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCkge1xuICAgIGlmIChjb2x1bW4gaW5zdGFuY2VvZiBBWERhdGFUYWJsZVRleHRDb2x1bW5Db21wb25lbnQpIHtcbiAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydC5maW5kKChjKSA9PiBjLmZpZWxkID09IGNvbHVtbi5kYXRhRmllbGQpO1xuICAgICAgaWYgKCFzb3J0KSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5xdWVyeS5zb3J0LnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBjb2x1bW4uZGF0YUZpZWxkLFxuICAgICAgICAgIGRpcjogJ2FzYycsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHNvcnQuZGlyID09ICdhc2MnKSB7XG4gICAgICAgICAgc29ydC5kaXIgPSAnZGVzYyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLnF1ZXJ5LnNvcnQgPSB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydC5maWx0ZXIoKGMpID0+IGMgIT0gc29ydCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTb3J0KGNvbHVtbjogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChjb2x1bW4gaW5zdGFuY2VvZiBBWERhdGFUYWJsZVRleHRDb2x1bW5Db21wb25lbnQpIHtcbiAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydC5maW5kKChjKSA9PiBjLmZpZWxkID09IGNvbHVtbi5kYXRhRmllbGQpO1xuICAgICAgcmV0dXJuIHNvcnQgPyAoc29ydC5kaXIgPT0gJ2FzYycgPyAnYXgtaWNvbi1hcnJvdy1sb25nLWRvd24nIDogJ2F4LWljb24tYXJyb3ctbG9uZy11cCcpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgICBpZiAodGhpcy5kYXRhUGFnZXIpIHtcbiAgICAgIHRoaXMuZGF0YVBhZ2VyLmdvRmlyc3RQYWdlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNhbGN1bGF0ZVJvd0luZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlLnBhZ2VTaXplICogdGhpcy5wYWdlKCkgKyBpbmRleDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblJlc2l6ZUNvbHVtblN0YXJ0KGV2ZW50OiBNb3VzZUV2ZW50LCBjb2x1bW5JbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMucmVzaXplQ29sdW1uUHJvcC5zdGFydFggPSBldmVudC5wYWdlWDtcbiAgICB0aGlzLnJlc2l6ZUNvbHVtblByb3AudGhFbGVtZW50ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudDtcbiAgICB0aGlzLnJlc2l6ZUNvbHVtblByb3Auc3RhcnRXaWR0aCA9IHBhcnNlSW50KHRoaXMucmVzaXplQ29sdW1uUHJvcC50aEVsZW1lbnQuc3R5bGUud2lkdGgpO1xuICAgIHRoaXMucmVzaXplQ29sdW1uUHJvcC5jb2x1bW5JbmRleCA9IGNvbHVtbkluZGV4O1xuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vblJlc2l6ZUNvbHVtbk1vdmUpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25SZXNpemVDb2x1bW5FbmQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvblJlc2l6ZUNvbHVtbk1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCBkaWZmWCA9IGV2ZW50LnBhZ2VYIC0gdGhpcy5yZXNpemVDb2x1bW5Qcm9wLnN0YXJ0WDtcbiAgICBjb25zdCBuZXdXaWR0aCA9IHRoaXMucnRsID8gdGhpcy5yZXNpemVDb2x1bW5Qcm9wLnN0YXJ0V2lkdGggLSBkaWZmWCA6IHRoaXMucmVzaXplQ29sdW1uUHJvcC5zdGFydFdpZHRoICsgZGlmZlg7XG4gICAgdGhpcy5yZXNpemVDb2x1bW5Qcm9wLnRoRWxlbWVudC5zdHlsZS53aWR0aCA9IGAke01hdGgubWF4KDEwMCwgbmV3V2lkdGgpfXB4YDtcbiAgICB0aGlzLnJlc2l6ZUNvbHVtblByb3AudGhFbGVtZW50LnNldEF0dHJpYnV0ZSgnbmV3LXdpZHRoJywgYCR7bmV3V2lkdGh9YCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBvblJlc2l6ZUNvbHVtbkVuZCA9ICgpOiB2b2lkID0+IHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uUmVzaXplQ29sdW1uTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25SZXNpemVDb2x1bW5FbmQpO1xuXG4gICAgY29uc3QgbmV3V2lkdGggPSBwYXJzZUludCh0aGlzLnJlc2l6ZUNvbHVtblByb3AudGhFbGVtZW50LmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCduZXctd2lkdGgnKS52YWx1ZSk7XG4gICAgdGhpcy5jb2x1bW5zLmdldCh0aGlzLnJlc2l6ZUNvbHVtblByb3AuY29sdW1uSW5kZXgpLndpZHRoID0gYCR7TWF0aC5tYXgoMTAwLCBuZXdXaWR0aCl9cHhgO1xuICAgIHRoaXMucmVzZXRSZXNpemluZ1Byb2Nlc3MoKTtcbiAgfTtcblxuICBwcml2YXRlIHJlc2V0UmVzaXppbmdQcm9jZXNzKCkge1xuICAgIHRoaXMucmVzaXplQ29sdW1uUHJvcC50aEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCduZXctd2lkdGgnKTtcbiAgICB0aGlzLnJlc2l6ZUNvbHVtblByb3AgPSB7XG4gICAgICBzdGFydFg6IDAsXG4gICAgICBzdGFydFdpZHRoOiAwLFxuICAgICAgY29sdW1uSW5kZXg6IDAsXG4gICAgICBuZXdDb2x1bW5XaWR0aDogMCxcbiAgICAgIHRoRWxlbWVudDogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVTdGlja3lDb2x1bW5zUG9zaXRpb25zKCkge1xuICAgIGxldCB0b3RhbFdpZHRoID0gMDtcbiAgICBsZXQgYWNjdW11bGF0ZWRXaWR0aEZyb21TdGFydCA9IDA7XG4gICAgdGhpcy5jb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgY29uc3Qgd2lkdGggPSBwYXJzZUludChjb2x1bW4ud2lkdGggYXMgc3RyaW5nKTtcbiAgICAgIGlmICghaXNOYU4od2lkdGgpKSB7XG4gICAgICAgIHRvdGFsV2lkdGggKz0gd2lkdGg7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbGV0IGxhc3RTdGFydENvbHVtbjogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQ7XG5cbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCB3aWR0aCA9IHBhcnNlSW50KGNvbHVtbi53aWR0aCBhcyBzdHJpbmcpO1xuXG4gICAgICBpZiAoY29sdW1uLmZpeGVkID09PSAnc3RhcnQnICYmICFpc05hTih3aWR0aCkpIHtcbiAgICAgICAgY29sdW1uWydzdGlja3lTdGFydCddID0gYWNjdW11bGF0ZWRXaWR0aEZyb21TdGFydCArICdweCc7XG4gICAgICAgIGxhc3RTdGFydENvbHVtbiA9IGNvbHVtbjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc05hTih3aWR0aCkpIHtcbiAgICAgICAgYWNjdW11bGF0ZWRXaWR0aEZyb21TdGFydCArPSB3aWR0aDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAobGFzdFN0YXJ0Q29sdW1uKSBsYXN0U3RhcnRDb2x1bW5bJ2lzTGFzdEZpeGVkQ29sdW1uJ10gPSB0cnVlO1xuXG4gICAgbGV0IGFjY3VtdWxhdGVkV2lkdGhGcm9tRW5kID0gMDtcbiAgICBsZXQgZmlyc3RFbmRDb2x1bW46IEFYRGF0YVRhYmxlQ29sdW1uQ29tcG9uZW50O1xuXG4gICAgZm9yIChsZXQgaSA9IHRoaXMuY29sdW1ucy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5jb2x1bW5zLmdldChpKTtcblxuICAgICAgY29uc3Qgd2lkdGggPSBwYXJzZUludChjb2x1bW4ud2lkdGggYXMgc3RyaW5nKTtcblxuICAgICAgaWYgKGNvbHVtbi5maXhlZCA9PT0gJ2VuZCcgJiYgIWlzTmFOKHdpZHRoKSkge1xuICAgICAgICBjb2x1bW5bJ3N0aWNreUVuZCddID0gYWNjdW11bGF0ZWRXaWR0aEZyb21FbmQgKyAncHgnO1xuICAgICAgICBmaXJzdEVuZENvbHVtbiA9IGNvbHVtbjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc05hTih3aWR0aCkpIHtcbiAgICAgICAgYWNjdW11bGF0ZWRXaWR0aEZyb21FbmQgKz0gd2lkdGg7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChmaXJzdEVuZENvbHVtbikgZmlyc3RFbmRDb2x1bW5bJ2lzRmlyc3RGaXhlZENvbHVtbiddID0gdHJ1ZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtaGVhZGVyXCI+IDwvbmctY29udGVudD5cbkBpZiAoIWRpc3BsYXllZFJvd3MoKS5sZW5ndGgpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWRhdGEtdGFibGUtZW1wdHktZGF0YVwiPlxuICAgIEBpZiAoZW1wdHlUZW1wbGF0ZSkge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxzcGFuPk5vIFJlY29yZCBGb3VuZCE8L3NwYW4+XG4gICAgfVxuICA8L2Rpdj5cbn1cbjxkaXYgY2xhc3M9XCJheC1kYXRhLXRhYmxlLXdyYXBwZXJcIj5cbiAgPHRhYmxlPlxuICAgIEBpZiAoc2hvd0hlYWRlcikge1xuICAgICAgPHRoZWFkIFtuZ0NsYXNzXT1cInsgJ2F4LWRhdGEtdGFibGUtc3RpY2t5LWhlYWRlcic6IGZpeGVkSGVhZGVyIH1cIj5cbiAgICAgICAgPHRyXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWFsbG93UmVvcmRlcmluZ1wiXG4gICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICBjZGtTY3JvbGxhYmxlXG4gICAgICAgICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBmb3IgKGMgb2Ygc3RhcnRGaXhlZENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtZGF0YS10YWJsZS1oZWFkLWNlbGwgc3RpY2t5LXN0YXJ0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWludGVyYWN0aXZlXT1cImMuYWxsb3dTb3J0aW5nXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImMuYWxsb3dTb3J0aW5nID8gaGFuZGxlQ29sdW1uQ2xpY2soJGV2ZW50LCBjKSA6IG51bGxcIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS10YWJsZS1zdGlja3ktaGVhZGVyLWNlbGxdPVwiYy5maXhlZCAmJiBjLndpZHRoXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImMud2lkdGhcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXNMYXN0XT1cImNbJ2lzTGFzdEZpeGVkQ29sdW1uJ11cIlxuICAgICAgICAgICAgICBbc3R5bGUuLS1zdGlja3ktc3RhcnRdPVwiY1snc3RpY2t5U3RhcnQnXVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnJlbmRlckhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiBjLCByb3dzOiBkaXNwbGF5ZWRSb3dzKCksIHJvd0luZGV4OiAkaW5kZXggfSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgQGlmIChnZXRTb3J0KGMpKSB7XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiYXgtaWNvbiB7eyBnZXRTb3J0KGMpIH19XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZm9yIChjIG9mIG5vcm1hbENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtZGF0YS10YWJsZS1oZWFkLWNlbGxcIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtaW50ZXJhY3RpdmVdPVwiYy5hbGxvd1NvcnRpbmdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYy5hbGxvd1NvcnRpbmcgPyBoYW5kbGVDb2x1bW5DbGljaygkZXZlbnQsIGMpIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5heC1kYXRhLXRhYmxlLXN0aWNreS1oZWFkZXItY2VsbF09XCJjLmZpeGVkICYmIGMud2lkdGhcIlxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiYy53aWR0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnJlbmRlckhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiBjLCByb3dzOiBkaXNwbGF5ZWRSb3dzKCksIHJvd0luZGV4OiAkaW5kZXggfSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgQGlmIChnZXRTb3J0KGMpKSB7XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiYXgtaWNvbiB7eyBnZXRTb3J0KGMpIH19XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIEBpZiAoYy5hbGxvd1Jlc2l6aW5nICYmICFjLmZpeGVkKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXJlc2l6ZS1oYW5kbGVcIiAobW91c2Vkb3duKT1cIm9uUmVzaXplQ29sdW1uU3RhcnQoJGV2ZW50LCB0aGlzLnN0YXJ0Rml4ZWRDb2x1bW5zTGlzdCgpLmxlbmd0aCArICRpbmRleClcIj48L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgQGZvciAoYyBvZiBlbmRGaXhlZENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtZGF0YS10YWJsZS1oZWFkLWNlbGwgc3RpY2t5LWVuZFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5heC1pbnRlcmFjdGl2ZV09XCJjLmFsbG93U29ydGluZ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjLmFsbG93U29ydGluZyA/IGhhbmRsZUNvbHVtbkNsaWNrKCRldmVudCwgYykgOiBudWxsXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtdGFibGUtc3RpY2t5LWhlYWRlci1jZWxsXT1cImMuZml4ZWQgJiYgYy53aWR0aFwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjLndpZHRoXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmlzRmlyc3RdPVwiY1snaXNGaXJzdEZpeGVkQ29sdW1uJ11cIlxuICAgICAgICAgICAgICBbc3R5bGUuLS1zdGlja3ktZW5kXT1cImNbJ3N0aWNreUVuZCddXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImMucmVuZGVySGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IGRhdGE6IGMsIHJvd3M6IGRpc3BsYXllZFJvd3MoKSwgcm93SW5kZXg6ICRpbmRleCB9IH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICBAaWYgKGdldFNvcnQoYykpIHtcbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pY29uIHt7IGdldFNvcnQoYykgfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICB9XG4gICAgPHRib2R5IFtuZ0NsYXNzXT1cInsgJ2F4LWRhdGEtdGFibGUtcm93LWFsdGVybmF0aXZlJzogYWx0ZXJuYXRpdmUgfVwiPlxuICAgICAgQGZvciAocm93IG9mIGRpc3BsYXllZFJvd3MoKTsgbGV0IHJvd0luZGV4ID0gJGluZGV4OyB0cmFjayByb3dJbmRleCkge1xuICAgICAgICBAaWYgKHJvd1RlbXBsYXRlKSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJvd1RlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiByb3csIHJvd0luZGV4OiByb3dJbmRleCB9IH1cIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDx0clxuICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLWZvY3VzZWRdPVwiZm9jdXNlZFJvdyAmJiByb3cgPT09IGZvY3VzZWRSb3dcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1pbmRleF09XCJyb3dJbmRleFwiXG4gICAgICAgICAgICBbY2xhc3MuYXgtc3RhdGUtc2VsZWN0ZWRdPVwic2VsZWN0ZWRSb3dzLmluY2x1ZGVzKHJvdylcIlxuICAgICAgICAgICAgc3R5bGUuaGVpZ2h0PVwie3sgaXRlbUhlaWdodCB9fXB4XCJcbiAgICAgICAgICAgIHN0eWxlLm1heC1oZWlnaHQ9XCJ7eyBpdGVtSGVpZ2h0IH19cHhcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVJvd0NsaWNrKCRldmVudCwgcm93KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAoYyBvZiBzdGFydEZpeGVkQ29sdW1uc0xpc3QoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjLndpZHRoXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS10YWJsZS1zdGlja3ktYm9keS1jZWxsXT1cImMuZml4ZWQgJiYgYy53aWR0aFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnN0aWNreS1zdGFydF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXNMYXN0XT1cImNbJ2lzTGFzdEZpeGVkQ29sdW1uJ11cIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXN0aWNreS1zdGFydF09XCJjWydzdGlja3lTdGFydCddXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWxhYmVsXT1cImMuY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYy5jc3NDbGFzc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKHJvdyAmJiAhaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnJlbmRlckNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgZGF0YTogcm93LCByb3dJbmRleDogY2FsY3VsYXRlUm93SW5kZXgocm93SW5kZXgpIH0gfVwiXG4gICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICBAaWYgKGMubG9hZGluZ0VuYWJsZWQgJiYgbG9hZGluZy5lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobG9hZGluZy5sb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZy5sb2FkaW5nVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIFthbmltYXRlZF09XCJsb2FkaW5nLmFuaW1hdGlvblwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZm9yIChjIG9mIG5vcm1hbENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiYy53aWR0aFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtdGFibGUtc3RpY2t5LWJvZHktY2VsbF09XCJjLmZpeGVkICYmIGMud2lkdGhcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtbGFiZWxdPVwiYy5jYXB0aW9uXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJjLmNzc0NsYXNzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAocm93ICYmICFpc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImMucmVuZGVyQ2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiByb3csIHJvd0luZGV4OiBjYWxjdWxhdGVSb3dJbmRleChyb3dJbmRleCkgfSB9XCJcbiAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIEBpZiAoYy5sb2FkaW5nRW5hYmxlZCAmJiBsb2FkaW5nLmVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChsb2FkaW5nLmxvYWRpbmdUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nLmxvYWRpbmdUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cImxvYWRpbmcuYW5pbWF0aW9uXCI+PC9heC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDx0ZD48L3RkPlxuICAgICAgICAgICAgQGZvciAoYyBvZiBlbmRGaXhlZENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiYy53aWR0aFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtdGFibGUtc3RpY2t5LWJvZHktY2VsbF09XCJjLmZpeGVkICYmIGMud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zdGlja3ktZW5kXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pc0ZpcnN0XT1cImNbJ2lzRmlyc3RGaXhlZENvbHVtbiddXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuLS1zdGlja3ktZW5kXT1cImNbJ3N0aWNreUVuZCddXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWxhYmVsXT1cImMuY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYy5jc3NDbGFzc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKHJvdyAmJiAhaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnJlbmRlckNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgZGF0YTogcm93LCByb3dJbmRleDogY2FsY3VsYXRlUm93SW5kZXgocm93SW5kZXgpIH0gfVwiXG4gICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICBAaWYgKGMubG9hZGluZ0VuYWJsZWQgJiYgbG9hZGluZy5lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobG9hZGluZy5sb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZy5sb2FkaW5nVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIFthbmltYXRlZF09XCJsb2FkaW5nLmFuaW1hdGlvblwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA8dHIgY2xhc3M9XCJlbXB0eS1yb3dcIj48L3RyPlxuICAgIDwvdGJvZHk+XG4gICAgQGlmIChzaG93Rm9vdGVyKSB7XG4gICAgICA8dGZvb3QgW25nQ2xhc3NdPVwieyAnYXgtZGF0YS10YWJsZS1zdGlja3ktZm9vdGVyJzogZml4ZWRGb290ZXIgfVwiPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgQGZvciAoYyBvZiBzdGFydEZpeGVkQ29sdW1uc0xpc3QoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1kYXRhLXRhYmxlLXN0aWNreS1mb290ZXItY2VsbCBzdGlja3ktc3RhcnRcIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS10YWJsZS1zdGlja3ktZm9vdGVyLWNlbGxdPVwiYy5maXhlZCAmJiBjLndpZHRoXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImMud2lkdGhcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXNMYXN0XT1cImNbJ2lzTGFzdEZpeGVkQ29sdW1uJ11cIlxuICAgICAgICAgICAgICBbc3R5bGUuLS1zdGlja3ktc3RhcnRdPVwiY1snc3RpY2t5U3RhcnQnXVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnJlbmRlckZvb3RlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiBjLCByb3dzOiBkaXNwbGF5ZWRSb3dzKCksIHJvd0luZGV4OiAkaW5kZXggfSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgQGlmIChnZXRTb3J0KGMpKSB7XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiYXgtaWNvbiB7eyBnZXRTb3J0KGMpIH19XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZm9yIChjIG9mIG5vcm1hbENvbHVtbnNMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgIFtjbGFzcy5heC1pbnRlcmFjdGl2ZV09XCJjLmFsbG93U29ydGluZ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjLmFsbG93U29ydGluZyA/IGhhbmRsZUNvbHVtbkNsaWNrKCRldmVudCwgYykgOiBudWxsXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtdGFibGUtc3RpY2t5LWhlYWRlci1jZWxsXT1cImMuZml4ZWQgJiYgYy53aWR0aFwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjLndpZHRoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImMucmVuZGVyRm9vdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IGRhdGE6IGMsIHJvd3M6IGRpc3BsYXllZFJvd3MoKSwgcm93SW5kZXg6ICRpbmRleCB9IH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICBAaWYgKGdldFNvcnQoYykpIHtcbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pY29uIHt7IGdldFNvcnQoYykgfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgQGlmIChjLmFsbG93UmVzaXppbmcgJiYgIWMuZml4ZWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcmVzaXplLWhhbmRsZVwiIChtb3VzZWRvd24pPVwib25SZXNpemVDb2x1bW5TdGFydCgkZXZlbnQsIHRoaXMuc3RhcnRGaXhlZENvbHVtbnNMaXN0KCkubGVuZ3RoICsgJGluZGV4KVwiPjwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8dGQ+PC90ZD5cbiAgICAgICAgICBAZm9yIChjIG9mIGVuZEZpeGVkQ29sdW1uc0xpc3QoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1kYXRhLXRhYmxlLXN0aWNreS1mb290ZXItY2VsbCBzdGlja3ktZW5kXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWludGVyYWN0aXZlXT1cImMuYWxsb3dTb3J0aW5nXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImMuYWxsb3dTb3J0aW5nID8gaGFuZGxlQ29sdW1uQ2xpY2soJGV2ZW50LCBjKSA6IG51bGxcIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS10YWJsZS1zdGlja3ktaGVhZGVyLWNlbGxdPVwiYy5maXhlZCAmJiBjLndpZHRoXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImMud2lkdGhcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXNGaXJzdF09XCJjWydpc0ZpcnN0Rml4ZWRDb2x1bW4nXVwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLXN0aWNreS1lbmRdPVwiY1snc3RpY2t5RW5kJ11cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYy5yZW5kZXJGb290ZXJUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgZGF0YTogYywgcm93czogZGlzcGxheWVkUm93cygpLCByb3dJbmRleDogJGluZGV4IH0gfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIEBpZiAoZ2V0U29ydChjKSkge1xuICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImF4LWljb24ge3sgZ2V0U29ydChjKSB9fVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rmb290PlxuICAgIH1cbiAgPC90YWJsZT5cbjwvZGl2PlxuXG5AaWYgKHBhZ2luZykge1xuICA8ZGl2IGNsYXNzPVwiYXgtdGFibGUtZm9vdGVyXCIgI2Zvb3RlckNvbnRhaW5lcj5cbiAgICA8YXgtZGF0YS1wYWdlclxuICAgICAgI2RhdGFQYWdlclxuICAgICAgW2Rpc3BsYXlNb2RlXT1cIidjdXN0b20nXCJcbiAgICAgIChvbkNoYW5nZWQpPVwib25QYWdlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFt0b3RhbF09XCJkYXRhU291cmNlLnRvdGFsQ291bnRcIlxuICAgICAgW3NpemVdPVwiZGF0YVNvdXJjZS5wYWdlU2l6ZVwiXG4gICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZygpXCJcbiAgICA+XG4gICAgICA8YXgtcHJlZml4IGNsYXNzPVwiYXgtZGF0YS10YWJsZS1udW1lcmljLXBhZ2luZ1wiPlxuICAgICAgICA8YXgtZGF0YS1wYWdlci1udW1lcmljLXNlbGVjdG9yPiA8L2F4LWRhdGEtcGFnZXItbnVtZXJpYy1zZWxlY3Rvcj5cbiAgICAgICAgPGF4LWRhdGEtcGFnZXItcGFnZS1zaXplcz4gPC9heC1kYXRhLXBhZ2VyLXBhZ2Utc2l6ZXM+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1wcmVmaXggY2xhc3M9XCJheC1kYXRhLXRhYmxlLWlucHV0LXBhZ2luZ1wiPlxuICAgICAgICA8YXgtZGF0YS1wYWdlci1wcmV2LWJ1dHRvbnM+IDwvYXgtZGF0YS1wYWdlci1wcmV2LWJ1dHRvbnM+XG4gICAgICAgIDxheC1kYXRhLXBhZ2VyLWlucHV0LXNlbGVjdG9yPiA8L2F4LWRhdGEtcGFnZXItaW5wdXQtc2VsZWN0b3I+XG4gICAgICAgIDxheC1kYXRhLXBhZ2VyLW5leHQtYnV0dG9ucz4gPC9heC1kYXRhLXBhZ2VyLW5leHQtYnV0dG9ucz5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeCBjbGFzcz1cImF4LWRhdGEtdGFibGUtaW5mb1wiPlxuICAgICAgICA8YXgtZGF0YS1wYWdlci1pbmZvPiA8L2F4LWRhdGEtcGFnZXItaW5mbz5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwicmVmcmVzaCgpXCI+XG4gICAgICAgICAgPGF4LWljb24gaWNvbj1cImF4LWljb24gYXgtaWNvbi1yZWZyZXNoXCI+PC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtZGF0YS1wYWdlcj5cbiAgPC9kaXY+XG59XG48bmctY29udGVudCBzZWxlY3Q9XCJheC1mb290ZXJcIj4gPC9uZy1jb250ZW50PlxuIl19
@@ -8,22 +8,10 @@ import { FormsModule } from '@angular/forms';
8
8
  import { AXDateTimeBoxComponent } from './datetime-box.component';
9
9
  import * as i0 from "@angular/core";
10
10
  const COMPONENT = [AXDateTimeBoxComponent];
11
- const MODULES = [
12
- CommonModule,
13
- FormsModule,
14
- AXDateTimeInputModule,
15
- AXDropdownModule,
16
- AXCalendarModule,
17
- AXDateTimePickerModule,
18
- ];
11
+ const MODULES = [CommonModule, FormsModule, AXDateTimeInputModule, AXDropdownModule, AXCalendarModule, AXDateTimePickerModule];
19
12
  export class AXDateTimeBoxModule {
20
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXDateTimeBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXDateTimeBoxModule, declarations: [AXDateTimeBoxComponent], imports: [CommonModule,
22
- FormsModule,
23
- AXDateTimeInputModule,
24
- AXDropdownModule,
25
- AXCalendarModule,
26
- AXDateTimePickerModule], exports: [AXDateTimeBoxComponent] }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXDateTimeBoxModule, declarations: [AXDateTimeBoxComponent], imports: [CommonModule, FormsModule, AXDateTimeInputModule, AXDropdownModule, AXCalendarModule, AXDateTimePickerModule], exports: [AXDateTimeBoxComponent] }); }
27
15
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXDateTimeBoxModule, imports: [MODULES] }); }
28
16
  }
29
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXDateTimeBoxModule, decorators: [{
@@ -35,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
35
23
  providers: [],
36
24
  }]
37
25
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS1ib3gvc3JjL2xpYi9kYXRldGltZS1ib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFbEUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQzNDLE1BQU0sT0FBTyxHQUFHO0lBQ2QsWUFBWTtJQUNaLFdBQVc7SUFDWCxxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixzQkFBc0I7Q0FDdkIsQ0FBQztBQVFGLE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQWhCYixzQkFBc0IsYUFFdkMsWUFBWTtZQUNaLFdBQVc7WUFDWCxxQkFBcUI7WUFDckIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixzQkFBc0IsYUFQTCxzQkFBc0I7K0dBZ0I1QixtQkFBbUIsWUFKakIsT0FBTzs7MkZBSVQsbUJBQW1CO2tCQU4vQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDYWxlbmRhck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jYWxlbmRhcic7XG5pbXBvcnQgeyBBWERhdGVUaW1lSW5wdXRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0ZXRpbWUtaW5wdXQnO1xuaW1wb3J0IHsgQVhEYXRlVGltZVBpY2tlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXInO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhEYXRlVGltZUJveENvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXRpbWUtYm94LmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWERhdGVUaW1lQm94Q29tcG9uZW50XTtcbmNvbnN0IE1PRFVMRVMgPSBbXG4gIENvbW1vbk1vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG4gIEFYRGF0ZVRpbWVJbnB1dE1vZHVsZSxcbiAgQVhEcm9wZG93bk1vZHVsZSxcbiAgQVhDYWxlbmRhck1vZHVsZSxcbiAgQVhEYXRlVGltZVBpY2tlck1vZHVsZSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0ZVRpbWVCb3hNb2R1bGUge31cbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS1ib3gvc3JjL2xpYi9kYXRldGltZS1ib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFbEUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQzNDLE1BQU0sT0FBTyxHQUFHLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBUS9ILE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQVRiLHNCQUFzQixhQUN4QixZQUFZLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixhQUQxRyxzQkFBc0I7K0dBUzVCLG1CQUFtQixZQUpqQixPQUFPOzsyRkFJVCxtQkFBbUI7a0JBTi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENhbGVuZGFyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NhbGVuZGFyJztcbmltcG9ydCB7IEFYRGF0ZVRpbWVJbnB1dE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRldGltZS1pbnB1dCc7XG5pbXBvcnQgeyBBWERhdGVUaW1lUGlja2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWERhdGVUaW1lQm94Q29tcG9uZW50IH0gZnJvbSAnLi9kYXRldGltZS1ib3guY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYRGF0ZVRpbWVCb3hDb21wb25lbnRdO1xuY29uc3QgTU9EVUxFUyA9IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBBWERhdGVUaW1lSW5wdXRNb2R1bGUsIEFYRHJvcGRvd25Nb2R1bGUsIEFYQ2FsZW5kYXJNb2R1bGUsIEFYRGF0ZVRpbWVQaWNrZXJNb2R1bGVdO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRdLFxuICBpbXBvcnRzOiBbLi4uTU9EVUxFU10sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lQm94TW9kdWxlIHt9XG4iXX0=
@@ -1,13 +1,13 @@
1
- import { MXCalendarBaseComponent, } from '@acorex/components/calendar';
2
- import { AXComponent, AXFocusableComponent, AXValuableComponent, MXValueComponent, } from '@acorex/components/common';
1
+ import { MXCalendarBaseComponent } from '@acorex/components/calendar';
2
+ import { AXComponent, AXFocusableComponent, AXValuableComponent, MXValueComponent } from '@acorex/components/common';
3
3
  import { AXPickerComponent } from '@acorex/components/picker';
4
- import { AXTabsComponent, } from '@acorex/components/tabs';
5
- import { AXCalendarService, } from '@acorex/core/date-time';
4
+ import { AXTabsComponent } from '@acorex/components/tabs';
5
+ import { AXCalendarService } from '@acorex/core/date-time';
6
6
  import { AXTranslationService } from '@acorex/core/translation';
7
7
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, forwardRef, inject, } from '@angular/core';
8
8
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
9
9
  import { classes } from 'polytype';
10
- import { AX_DATETIME_PICKER_CONFIG, } from './datetime-picker.config';
10
+ import { AX_DATETIME_PICKER_CONFIG } from './datetime-picker.config';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "@angular/forms";
13
13
  import * as i2 from "@acorex/components/tabs";
@@ -130,8 +130,7 @@ export class AXDateTimePickerComponent extends classes(MXCalendarBaseComponent,
130
130
  }
131
131
  }
132
132
  detectButtonText() {
133
- this.buttonText =
134
- this._activePart === 'date' ? 'dateTime.today' : 'dateTime.now';
133
+ this.buttonText = this._activePart === 'date' ? 'dateTime.today' : 'dateTime.now';
135
134
  }
136
135
  _handleViewChanged(e) {
137
136
  this._activePart = e.tab.key;
@@ -282,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
282
281
  }], format: [{
283
282
  type: Input
284
283
  }] } });
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2xpYi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUNMLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBRW5CLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFFTCxlQUFlLEdBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLGlCQUFpQixHQUlsQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFFTCx5QkFBeUIsR0FDMUIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQXVEbEMsTUFBTSxPQUFPLHlCQUNYLFNBQVEsT0FBTyxDQUFDLHVCQUF1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SixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixVQUFVO3dCQUNWLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxNQUFNO3dCQUNOLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxnQkFBZ0I7cUJBQ2pCLFdBQ1E7d0JBQ1AsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixTQUFTO3dCQUNULFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLGFBQWE7cUJBQ2QsYUFDVTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVywyQkFBMkIsRUFBRTt3QkFDaEUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVywyQkFBMkIsRUFBRTt3QkFDekUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVywyQkFBMkIsRUFBRTt3QkFDeEU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQWFVLGlCQUFpQjtzQkFEM0IsS0FBSztnQkFlSSxNQUFNO3NCQURmLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUlsQixJQUFJO3NCQURiLFNBQVM7dUJBQUMsZUFBZTtnQkFnRjFCLFlBQVk7c0JBRFgsTUFBTTtnQkFLSSxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQsXG4gIE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxuICBNWFZhbHVlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BpY2tlcic7XG5pbXBvcnQge1xuICBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50LFxuICBBWFRhYnNDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7XG4gIEFYQ2FsZW5kYXJTZXJ2aWNlLFxuICBBWERhdGVUaW1lLFxuICBBWERhdGVUaW1lUGFydHMsXG4gIFRpbWVVbml0LFxufSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQge1xuICBBWERhdGVUaW1lUGlja2VyQ29uZmlnLFxuICBBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHLFxufSBmcm9tICcuL2RhdGV0aW1lLXBpY2tlci5jb25maWcnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZGF0ZXRpbWUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAndmFsdWUnLFxuICAgICdzdGF0ZScsXG4gICAgJ25hbWUnLFxuICAgICdpZCcsXG4gICAgJ2RlcHRoJyxcbiAgICAnYWN0aXZlVmlldycsXG4gICAgJ21pblZhbHVlJyxcbiAgICAnbWF4VmFsdWUnLFxuICAgICdkaXNhYmxlZERhdGVzJyxcbiAgICAnaG9saWRheURhdGVzJyxcbiAgICAndHlwZScsXG4gICAgJ2NlbGxUZW1wbGF0ZScsXG4gICAgJ2NlbGxDbGFzcycsXG4gICAgJ3Nob3dOYXZpZ2F0aW9uJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAnb25DbGljaycsXG4gICAgJ3JlYWRvbmx5Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWRDaGFuZ2UnLFxuICAgICdkZXB0aENoYW5nZScsXG4gICAgJ3R5cGVDaGFuZ2UnLFxuICAgICdhY3RpdmVWaWV3Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWREYXRlc0NoYW5nZScsXG4gICAgJ2hvbGlkYXlEYXRlc0NoYW5nZScsXG4gICAgJ29uTmF2aWdhdGUnLFxuICAgICdvblNsb3RDbGljaycsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnRcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50LCBNWFZhbHVlQ29tcG9uZW50PERhdGU+KVxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGJ1dHRvblRleHQgPSAnJztcblxuICBwcml2YXRlIGRlZmF1bHRDb25maWc6IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcgPSBpbmplY3QoXG4gICAgQVhfREFURVRJTUVfUElDS0VSX0NPTkZJR1xuICApO1xuXG4gIHByaXZhdGUgX2N1cnJlbnRUaW1lQnV0dG9uOiBib29sZWFuID0gdGhpcy5kZWZhdWx0Q29uZmlnLmN1cnJlbnRUaW1lQnV0dG9uO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGN1cnJlbnRUaW1lQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VGltZUJ1dHRvbjtcbiAgfVxuICBwdWJsaWMgc2V0IGN1cnJlbnRUaW1lQnV0dG9uKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnY3VycmVudFRpbWVCdXR0b24nLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxlbmRhclNlcnZpY2U6IEFYQ2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KEFYQ2FsZW5kYXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfdHJhbmxhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIEBWaWV3Q2hpbGQoQVhQaWNrZXJDb21wb25lbnQpXG4gIHByb3RlY3RlZCBwaWNrZXI6IEFYUGlja2VyQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQVhUYWJzQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgdGFiczogQVhUYWJzQ29tcG9uZW50O1xuXG4gIHByb3RlY3RlZCBob3VyczogYW55W10gPSBBcnJheSgyNClcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKG0sIGkpID0+ICh7IGlkOiBpLCB0ZXh0OiBpIH0pKTtcbiAgbWludXRlczogYW55W10gPSBBcnJheSg2MClcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKG0sIGkpID0+ICh7IGlkOiBpLCB0ZXh0OiBpIH0pKTtcblxuICBwcm90ZWN0ZWQgX3BhcnRzOiBBWERhdGVUaW1lUGFydHMgPSB7XG4gICAgeWVhcjoge1xuICAgICAga2V5OiAneWVhcicsXG4gICAgICBwbGFjZWhvbGRlcjogJ3l5eXknLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ1lZJywgJ3l5JywgJ1lZWVknLCAneXl5eSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAyMDIzLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy55ZWFyLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIG1vbnRoOiB7XG4gICAgICBrZXk6ICdtb250aCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ01NJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydNTU0nLCAnTU1NTScsICdNTScsICdNJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDEsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLm1vbnRoLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIGRheToge1xuICAgICAga2V5OiAnZGF5JyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnZGQnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ2RkJywgJ2QnLCAnZGRkZCcsICdEREREJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDEsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLmRheS5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBob3VyOiB7XG4gICAgICBrZXk6ICdob3VyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnSEgnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ0hIJywgJ0gnLCAnaGgnLCAnaCddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy5ob3VyLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIG1pbnV0ZToge1xuICAgICAga2V5OiAnbWludXRlJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnbW0nLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ21tJywgJ20nXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMubWludXRlLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIHNlY29uZDoge1xuICAgICAga2V5OiAnc2Vjb25kJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnc3MnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ3NzJywgJ3MnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMuc2Vjb25kLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICB9O1xuXG4gIHByb3RlY3RlZCBfYWN0aXZlUGFydDogJ2RhdGUnIHwgJ3RpbWUnID0gJ2RhdGUnO1xuXG4gIHByb3RlY3RlZCBnZXQgX2hhc0RhdGVQYXJ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ3llYXInLCAnbW9udGgnLCAnZGF5J10uc29tZSgoaykgPT4gdGhpcy5fcGFydHNba10uZW5hYmxlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IF9oYXNUaW1lUGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gWydob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnXS5zb21lKChrKSA9PiB0aGlzLl9wYXJ0c1trXS5lbmFibGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VkaXRpbmdEYXRlT2JqOiBBWERhdGVUaW1lID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLm5vdyh0aGlzLnR5cGUpO1xuICBwcm90ZWN0ZWQgZ2V0IGVkaXRpbmdEYXRlT2JqKCk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiB0aGlzLl9lZGl0aW5nRGF0ZU9iajtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBmb3JtYXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIF9mb3JtYXQgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5mb3JtYXRzLmRhdGVUaW1lRGlzcGxheTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBmb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xuICB9XG4gIHB1YmxpYyBzZXQgZm9ybWF0KHY6IHN0cmluZykge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdmb3JtYXQnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAobywgbikgPT4ge1xuICAgICAgICB0aGlzLl9kZXRlY3RQYXJ0cygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5fZGV0ZWN0UGFydHMoKTtcbiAgICB0aGlzLmRldGVjdEJ1dHRvblRleHQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCkge1xuICAgIHRoaXMucGlja2VyPy5yZWZyZXNoKCk7XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCh2YWx1ZT86IERhdGUpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2VkaXRpbmdEYXRlT2JqID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGRldGVjdEJ1dHRvblRleHQoKSB7XG4gICAgdGhpcy5idXR0b25UZXh0ID1cbiAgICAgIHRoaXMuX2FjdGl2ZVBhcnQgPT09ICdkYXRlJyA/ICdkYXRlVGltZS50b2RheScgOiAnZGF0ZVRpbWUubm93JztcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlVmlld0NoYW5nZWQoZTogQVhUYWJTdHJpcENoYW5nZWRFdmVudCkge1xuICAgIHRoaXMuX2FjdGl2ZVBhcnQgPSBlLnRhYi5rZXkgYXMgJ2RhdGUnIHwgJ3RpbWUnO1xuICAgIHRoaXMuZGV0ZWN0QnV0dG9uVGV4dCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoXG4gICAgZTogQVhWYWx1ZUNoYW5nZWRFdmVudDxEYXRlPixcbiAgICBwYXJ0OiBzdHJpbmdcbiAgKSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMuX2VkaXRpbmdEYXRlT2JqID0gdGhpcy5fZWRpdGluZ0RhdGVPYmouc2V0KFxuICAgICAgICBwYXJ0IGFzIFRpbWVVbml0LFxuICAgICAgICBOdW1iZXIoZS52YWx1ZVsnaWQnXSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uTmF2aWdhdGUoZTogQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQpIHtcbiAgICB0aGlzLm9uTmF2aWdhdGUuZW1pdChlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlQ2FsZW5kYXJPblZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PERhdGU+KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jcmVhdGUoZS52YWx1ZSwgdGhpcy50eXBlKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlXG4gICAgICAgIC5jcmVhdGUoZS52YWx1ZSwgdGhpcy50eXBlKVxuICAgICAgICAuc2V0KCdkYXknLCBzZWxlY3RlZFZhbHVlLmRheU9mTW9udGgpXG4gICAgICAgIC5zZXQoJ21vbnRoJywgc2VsZWN0ZWRWYWx1ZS5tb250aE9mWWVhcilcbiAgICAgICAgLnNldCgneWVhcicsIHNlbGVjdGVkVmFsdWUueWVhcik7XG5cbiAgICAgIHRoaXMuX2VkaXRpbmdEYXRlT2JqID0gY3VycmVudFZhbHVlO1xuICAgICAgaWYgKHRoaXMuX2hhc1RpbWVQYXJ0KSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVBhcnQgPSAndGltZSc7XG4gICAgICAgIGlmICh0aGlzLnRhYnMgJiYgdGhpcy5faGFzRGF0ZVBhcnQgJiYgdGhpcy5faGFzVGltZVBhcnQpIHtcbiAgICAgICAgICB0aGlzLnRhYnMuc2VsZWN0KDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iai5kYXRlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqLmRhdGUsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdFBhcnRzKCkge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5fcGFydHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGUuZW5hYmxlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIGNvbnN0IGZvcm1hdFBhcnRzID0gdGhpcy5mb3JtYXQuc3BsaXQoL1teYS16QS1aXSsvKTtcbiAgICBmb3JtYXRQYXJ0cy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBjb25zdCBmb3VuZCA9IE9iamVjdC52YWx1ZXModGhpcy5fcGFydHMpLmZpbmQoKGMpID0+XG4gICAgICAgIGMucGxhY2Vob2xkZXJzLnNvbWUoKGQpID0+IGQgPT0gZilcbiAgICAgICk7XG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgZm91bmQuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgIGZvdW5kLnBsYWNlaG9sZGVyID0gZjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLl9hY3RpdmVQYXJ0ID0gdGhpcy5faGFzRGF0ZVBhcnQgPyAnZGF0ZScgOiAndGltZSc7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZVNldENsaWNrKCkge1xuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iai5kYXRlLCB0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlTm93Q2xpY2soKSB7XG4gICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uubm93KHRoaXMudHlwZSk7XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqLmRhdGUsIHRydWUpO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgaXNEaXNhYmxlZChkYXRlOiBBWERhdGVUaW1lKTogYm9vbGVhbiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kaXNhYmxlZERhdGVzKSAmJiB0aGlzLmRpc2FibGVkRGF0ZXMubGVuZ3RoICE9IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMuc29tZSgoZCkgPT4gZGF0ZS5lcXVhbChkLCAnZGF5JykpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuZGlzYWJsZWREYXRlcyA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzKGRhdGUuZGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpbnRlcm5hbFNldFZhbHVlKHZhbHVlOiBEYXRlKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICghdmFsdWUpXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB2ID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh2YWx1ZSk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZCh2KTtcbiAgICBpZiAoaXNEaXNhYmxlZClcbiAgICAgIHJldHVybiBudWxsO1xuICAgIGVsc2UgcmV0dXJuIHYuZGF0ZTtcbiAgfVxufVxuIiwiQGlmKF9oYXNEYXRlUGFydCAmJiBfaGFzVGltZVBhcnQpe1xuPGRpdiBjbGFzcz1cImF4LWhlYWRlclwiPlxuICA8YXgtdGFicyBbbG9va109XCInZGVmYXVsdCdcIiBbZml0UGFyZW50XT1cInRydWVcIiBbbG9jYXRpb25dPVwiJ3RvcCdcIiAob25BY3RpdmVUYWJDaGFuZ2VkKT1cIl9oYW5kbGVWaWV3Q2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgPGF4LXRhYi1pdGVtIFt0ZXh0XT1cIidkYXRlVGltZS5kYXRlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIFwiIFtrZXldPVwiJ2RhdGUnXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PC9heC10YWItaXRlbT5cbiAgICA8YXgtdGFiLWl0ZW0gW3RleHRdPVwiJ2RhdGVUaW1lLnRpbWUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgXCIgW2tleV09XCIndGltZSdcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48L2F4LXRhYi1pdGVtPlxuICA8L2F4LXRhYnM+XG48L2Rpdj5cbn1cbjxkaXYgY2xhc3M9XCJheC1jb250ZW50XCI+XG4gIEBpZihfYWN0aXZlUGFydCA9PT0gJ2RhdGUnKXtcbiAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXBhcnRcIj5cbiAgICA8YXgtY2FsZW5kYXIgI2NhbGVuZGFyIGlkPVwiY2FsZW5kYXJcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5kYXRlXCJcbiAgICAgIFttaW5WYWx1ZV09XCJtaW5WYWx1ZVwiIFttYXhWYWx1ZV09XCJtYXhWYWx1ZVwiIFtkaXNhYmxlZERhdGVzXT1cImRpc2FibGVkRGF0ZXNcIiBbaG9saWRheURhdGVzXT1cImhvbGlkYXlEYXRlc1wiXG4gICAgICBbZGVwdGhdPVwiZGVwdGhcIiAob25OYXZpZ2F0ZSk9XCJfaGFuZGxlQ2FsZW5kYXJPbk5hdmlnYXRlKCRldmVudClcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKCRldmVudClcIiBbdHlwZV09XCJ0eXBlXCI+XG4gICAgPC9heC1jYWxlbmRhcj5cbiAgPC9kaXY+XG4gIH1cblxuICBAaWYoX2FjdGl2ZVBhcnQgPT09ICd0aW1lJyl7XG4gIDxkaXYgY2xhc3M9XCJheC1waWNrZXItcGFydFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1oZWFkZXJcIj5cbiAgICAgIHt7IGVkaXRpbmdEYXRlT2JqIHwgYXhEYXRlOiBmb3JtYXQgOiB0eXBlIH19XG4gICAgPC9kaXY+XG4gICAgPGF4LXBpY2tlcj5cblxuICAgICAgQGlmKF9wYXJ0cy5ob3VyLmVuYWJsZWQpe1xuICAgICAgPGF4LXBpY2tlci1jb2x1bW4gW3RpdGxlXT1cIidkYXRlVGltZS5ob3VyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIFwiIFtpdGVtc109XCJob3Vyc1wiIFtuZ01vZGVsXT1cImVkaXRpbmdEYXRlT2JqLmhvdXJcIlxuICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKCRldmVudCwgJ2hvdXInKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvYXgtcGlja2VyLWNvbHVtbj5cbiAgICAgIH1cblxuICAgICAgQGlmKF9wYXJ0cy5taW51dGUuZW5hYmxlZCl7XG4gICAgICA8YXgtcGlja2VyLWNvbHVtbiBbdGl0bGVdPVwiJ2RhdGVUaW1lLm1pbnV0ZScgfCB0cmFuc2xhdGUgfCBhc3luYyBcIiBbaXRlbXNdPVwibWludXRlc1wiXG4gICAgICAgIFtuZ01vZGVsXT1cImVkaXRpbmdEYXRlT2JqLm1pbnV0ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnbWludXRlJylcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIj48L2F4LXBpY2tlci1jb2x1bW4+XG4gICAgICB9XG4gICAgICBAaWYoX3BhcnRzLnNlY29uZC5lbmFibGVkKXtcbiAgICAgIDxheC1waWNrZXItY29sdW1uIFt0aXRsZV09XCInZGF0ZVRpbWUuc2Vjb25kJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIFwiIFtpdGVtc109XCJtaW51dGVzXCJcbiAgICAgICAgW25nTW9kZWxdPVwiZWRpdGluZ0RhdGVPYmouc2Vjb25kXCIgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQsICdzZWNvbmQnKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvYXgtcGlja2VyLWNvbHVtbj5cblxuICAgICAgfVxuICAgIDwvYXgtcGlja2VyPlxuICA8L2Rpdj5cbiAgfVxuXG48L2Rpdj5cbkBpZighZGlzYWJsZWQgJiYgIXJlYWRvbmx5ICYmIChjdXJyZW50VGltZUJ1dHRvbiB8fCBfaGFzVGltZVBhcnQpKXtcbjxkaXYgY2xhc3M9XCJheC1mb290ZXJcIj5cbiAgPGRpdj5cbiAgICBAaWYoY3VycmVudFRpbWVCdXR0b24pe1xuICAgIDxheC1idXR0b24gW3RleHRdPVwiYnV0dG9uVGV4dCB8IHRyYW5zbGF0ZSB8IGFzeW5jIFwiIGNsYXNzPVwiYXgtc21cIiAob25DbGljayk9XCJfaGFuZGxlTm93Q2xpY2soKVwiPjwvYXgtYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgQGlmKF9oYXNUaW1lUGFydCl7XG4gICAgPGF4LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdGV4dF09XCInZGF0ZVRpbWUuc2V0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jIFwiIGNsYXNzPVwiYXgtc21cIlxuICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZVNldENsaWNrKClcIj48L2F4LWJ1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG59Il19
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2xpYi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBdUIsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQTBCLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBeUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQTBCLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7QUF1RDdGLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxPQUFPLENBQUMsdUJBQXVC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Tzt3QkFDUCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsTUFBTTt3QkFDTixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZ0JBQWdCO3FCQUNqQixXQUNRO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFFBQVE7d0JBQ1IsU0FBUzt3QkFDVCxTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixhQUFhO3FCQUNkLGFBQ1U7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsMkJBQTJCLEVBQUU7d0JBQ2hFLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsMkJBQTJCLEVBQUU7d0JBQ3pFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsMkJBQTJCLEVBQUU7d0JBQ3hFOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFTVSxpQkFBaUI7c0JBRDNCLEtBQUs7Z0JBZUksTUFBTTtzQkFEZixTQUFTO3VCQUFDLGlCQUFpQjtnQkFJbEIsSUFBSTtzQkFEYixTQUFTO3VCQUFDLGVBQWU7Z0JBNkUxQixZQUFZO3NCQURYLE1BQU07Z0JBS0ksTUFBTTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2FsZW5kYXJOYXZpZ2F0ZUV2ZW50LCBNWENhbGVuZGFyQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jYWxlbmRhcic7XG5pbXBvcnQgeyBBWENvbXBvbmVudCwgQVhGb2N1c2FibGVDb21wb25lbnQsIEFYVmFsdWFibGVDb21wb25lbnQsIEFYVmFsdWVDaGFuZ2VkRXZlbnQsIE1YVmFsdWVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BpY2tlcic7XG5pbXBvcnQgeyBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50LCBBWFRhYnNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWENhbGVuZGFyU2VydmljZSwgQVhEYXRlVGltZSwgQVhEYXRlVGltZVBhcnRzLCBUaW1lVW5pdCB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBBWERhdGVUaW1lUGlja2VyQ29uZmlnLCBBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHIH0gZnJvbSAnLi9kYXRldGltZS1waWNrZXIuY29uZmlnJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRhdGV0aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndGFiSW5kZXgnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ3ZhbHVlJyxcbiAgICAnc3RhdGUnLFxuICAgICduYW1lJyxcbiAgICAnaWQnLFxuICAgICdkZXB0aCcsXG4gICAgJ2FjdGl2ZVZpZXcnLFxuICAgICdtaW5WYWx1ZScsXG4gICAgJ21heFZhbHVlJyxcbiAgICAnZGlzYWJsZWREYXRlcycsXG4gICAgJ2hvbGlkYXlEYXRlcycsXG4gICAgJ3R5cGUnLFxuICAgICdjZWxsVGVtcGxhdGUnLFxuICAgICdjZWxsQ2xhc3MnLFxuICAgICdzaG93TmF2aWdhdGlvbicsXG4gIF0sXG4gIG91dHB1dHM6IFtcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdzdGF0ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ29uQ2xpY2snLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgICAnZGVwdGhDaGFuZ2UnLFxuICAgICd0eXBlQ2hhbmdlJyxcbiAgICAnYWN0aXZlVmlld0NoYW5nZScsXG4gICAgJ2Rpc2FibGVkRGF0ZXNDaGFuZ2UnLFxuICAgICdob2xpZGF5RGF0ZXNDaGFuZ2UnLFxuICAgICdvbk5hdmlnYXRlJyxcbiAgICAnb25TbG90Q2xpY2snLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWENhbGVuZGFyQmFzZUNvbXBvbmVudCwgTVhWYWx1ZUNvbXBvbmVudDxEYXRlPikgaW1wbGVtZW50cyBPbkluaXQge1xuICBidXR0b25UZXh0ID0gJyc7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0Q29uZmlnOiBBWERhdGVUaW1lUGlja2VyQ29uZmlnID0gaW5qZWN0KEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcpO1xuXG4gIHByaXZhdGUgX2N1cnJlbnRUaW1lQnV0dG9uOiBib29sZWFuID0gdGhpcy5kZWZhdWx0Q29uZmlnLmN1cnJlbnRUaW1lQnV0dG9uO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGN1cnJlbnRUaW1lQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VGltZUJ1dHRvbjtcbiAgfVxuICBwdWJsaWMgc2V0IGN1cnJlbnRUaW1lQnV0dG9uKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnY3VycmVudFRpbWVCdXR0b24nLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxlbmRhclNlcnZpY2U6IEFYQ2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KEFYQ2FsZW5kYXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfdHJhbmxhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIEBWaWV3Q2hpbGQoQVhQaWNrZXJDb21wb25lbnQpXG4gIHByb3RlY3RlZCBwaWNrZXI6IEFYUGlja2VyQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQVhUYWJzQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgdGFiczogQVhUYWJzQ29tcG9uZW50O1xuXG4gIHByb3RlY3RlZCBob3VyczogYW55W10gPSBBcnJheSgyNClcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKG0sIGkpID0+ICh7IGlkOiBpLCB0ZXh0OiBpIH0pKTtcbiAgbWludXRlczogYW55W10gPSBBcnJheSg2MClcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKG0sIGkpID0+ICh7IGlkOiBpLCB0ZXh0OiBpIH0pKTtcblxuICBwcm90ZWN0ZWQgX3BhcnRzOiBBWERhdGVUaW1lUGFydHMgPSB7XG4gICAgeWVhcjoge1xuICAgICAga2V5OiAneWVhcicsXG4gICAgICBwbGFjZWhvbGRlcjogJ3l5eXknLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ1lZJywgJ3l5JywgJ1lZWVknLCAneXl5eSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAyMDIzLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy55ZWFyLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIG1vbnRoOiB7XG4gICAgICBrZXk6ICdtb250aCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ01NJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydNTU0nLCAnTU1NTScsICdNTScsICdNJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDEsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLm1vbnRoLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIGRheToge1xuICAgICAga2V5OiAnZGF5JyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnZGQnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ2RkJywgJ2QnLCAnZGRkZCcsICdEREREJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDEsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLmRheS5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBob3VyOiB7XG4gICAgICBrZXk6ICdob3VyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnSEgnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ0hIJywgJ0gnLCAnaGgnLCAnaCddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy5ob3VyLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIG1pbnV0ZToge1xuICAgICAga2V5OiAnbWludXRlJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnbW0nLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ21tJywgJ20nXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT4gdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMubWludXRlLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIHNlY29uZDoge1xuICAgICAga2V5OiAnc2Vjb25kJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnc3MnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ3NzJywgJ3MnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT4gdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMuc2Vjb25kLnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICB9O1xuXG4gIHByb3RlY3RlZCBfYWN0aXZlUGFydDogJ2RhdGUnIHwgJ3RpbWUnID0gJ2RhdGUnO1xuXG4gIHByb3RlY3RlZCBnZXQgX2hhc0RhdGVQYXJ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ3llYXInLCAnbW9udGgnLCAnZGF5J10uc29tZSgoaykgPT4gdGhpcy5fcGFydHNba10uZW5hYmxlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IF9oYXNUaW1lUGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gWydob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnXS5zb21lKChrKSA9PiB0aGlzLl9wYXJ0c1trXS5lbmFibGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VkaXRpbmdEYXRlT2JqOiBBWERhdGVUaW1lID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLm5vdyh0aGlzLnR5cGUpO1xuICBwcm90ZWN0ZWQgZ2V0IGVkaXRpbmdEYXRlT2JqKCk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiB0aGlzLl9lZGl0aW5nRGF0ZU9iajtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBmb3JtYXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIF9mb3JtYXQgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5mb3JtYXRzLmRhdGVUaW1lRGlzcGxheTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBmb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xuICB9XG4gIHB1YmxpYyBzZXQgZm9ybWF0KHY6IHN0cmluZykge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdmb3JtYXQnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAobywgbikgPT4ge1xuICAgICAgICB0aGlzLl9kZXRlY3RQYXJ0cygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5fZGV0ZWN0UGFydHMoKTtcbiAgICB0aGlzLmRldGVjdEJ1dHRvblRleHQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCkge1xuICAgIHRoaXMucGlja2VyPy5yZWZyZXNoKCk7XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCh2YWx1ZT86IERhdGUpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2VkaXRpbmdEYXRlT2JqID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGRldGVjdEJ1dHRvblRleHQoKSB7XG4gICAgdGhpcy5idXR0b25UZXh0ID0gdGhpcy5fYWN0aXZlUGFydCA9PT0gJ2RhdGUnID8gJ2RhdGVUaW1lLnRvZGF5JyA6ICdkYXRlVGltZS5ub3cnO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVWaWV3Q2hhbmdlZChlOiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5fYWN0aXZlUGFydCA9IGUudGFiLmtleSBhcyAnZGF0ZScgfCAndGltZSc7XG4gICAgdGhpcy5kZXRlY3RCdXR0b25UZXh0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PERhdGU+LCBwYXJ0OiBzdHJpbmcpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSB0aGlzLl9lZGl0aW5nRGF0ZU9iai5zZXQocGFydCBhcyBUaW1lVW5pdCwgTnVtYmVyKGUudmFsdWVbJ2lkJ10pKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUNhbGVuZGFyT25OYXZpZ2F0ZShlOiBBWENhbGVuZGFyTmF2aWdhdGVFdmVudCkge1xuICAgIHRoaXMub25OYXZpZ2F0ZS5lbWl0KGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZShlLnZhbHVlLCB0aGlzLnR5cGUpO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5jYWxlbmRhclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShlLnZhbHVlLCB0aGlzLnR5cGUpXG4gICAgICAgIC5zZXQoJ2RheScsIHNlbGVjdGVkVmFsdWUuZGF5T2ZNb250aClcbiAgICAgICAgLnNldCgnbW9udGgnLCBzZWxlY3RlZFZhbHVlLm1vbnRoT2ZZZWFyKVxuICAgICAgICAuc2V0KCd5ZWFyJywgc2VsZWN0ZWRWYWx1ZS55ZWFyKTtcblxuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSBjdXJyZW50VmFsdWU7XG4gICAgICBpZiAodGhpcy5faGFzVGltZVBhcnQpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlUGFydCA9ICd0aW1lJztcbiAgICAgICAgaWYgKHRoaXMudGFicyAmJiB0aGlzLl9oYXNEYXRlUGFydCAmJiB0aGlzLl9oYXNUaW1lUGFydCkge1xuICAgICAgICAgIHRoaXMudGFicy5zZWxlY3QoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqLmRhdGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmouZGF0ZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGV0ZWN0UGFydHMoKSB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLl9wYXJ0cykuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZS5lbmFibGVkID0gZmFsc2U7XG4gICAgfSk7XG4gICAgY29uc3QgZm9ybWF0UGFydHMgPSB0aGlzLmZvcm1hdC5zcGxpdCgvW15hLXpBLVpdKy8pO1xuICAgIGZvcm1hdFBhcnRzLmZvckVhY2goKGYpID0+IHtcbiAgICAgIGNvbnN0IGZvdW5kID0gT2JqZWN0LnZhbHVlcyh0aGlzLl9wYXJ0cykuZmluZCgoYykgPT4gYy5wbGFjZWhvbGRlcnMuc29tZSgoZCkgPT4gZCA9PSBmKSk7XG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgZm91bmQuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgIGZvdW5kLnBsYWNlaG9sZGVyID0gZjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLl9hY3RpdmVQYXJ0ID0gdGhpcy5faGFzRGF0ZVBhcnQgPyAnZGF0ZScgOiAndGltZSc7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZVNldENsaWNrKCkge1xuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iai5kYXRlLCB0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlTm93Q2xpY2soKSB7XG4gICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uubm93KHRoaXMudHlwZSk7XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqLmRhdGUsIHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWQoZGF0ZTogQVhEYXRlVGltZSk6IGJvb2xlYW4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGlzYWJsZWREYXRlcykgJiYgdGhpcy5kaXNhYmxlZERhdGVzLmxlbmd0aCAhPSAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoKGQpID0+IGRhdGUuZXF1YWwoZCwgJ2RheScpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmRpc2FibGVkRGF0ZXMgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcyhkYXRlLmRhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogRGF0ZSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB2ID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh2YWx1ZSk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZCh2KTtcbiAgICBpZiAoaXNEaXNhYmxlZCkgcmV0dXJuIG51bGw7XG4gICAgZWxzZSByZXR1cm4gdi5kYXRlO1xuICB9XG59XG4iLCJAaWYoX2hhc0RhdGVQYXJ0ICYmIF9oYXNUaW1lUGFydCl7XG48ZGl2IGNsYXNzPVwiYXgtaGVhZGVyXCI+XG4gIDxheC10YWJzIFtsb29rXT1cIidkZWZhdWx0J1wiIFtmaXRQYXJlbnRdPVwidHJ1ZVwiIFtsb2NhdGlvbl09XCIndG9wJ1wiIChvbkFjdGl2ZVRhYkNoYW5nZWQpPVwiX2hhbmRsZVZpZXdDaGFuZ2VkKCRldmVudClcIj5cbiAgICA8YXgtdGFiLWl0ZW0gW3RleHRdPVwiJ2RhdGVUaW1lLmRhdGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgXCIgW2tleV09XCInZGF0ZSdcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48L2F4LXRhYi1pdGVtPlxuICAgIDxheC10YWItaXRlbSBbdGV4dF09XCInZGF0ZVRpbWUudGltZScgfCB0cmFuc2xhdGUgfCBhc3luYyBcIiBba2V5XT1cIid0aW1lJ1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvYXgtdGFiLWl0ZW0+XG4gIDwvYXgtdGFicz5cbjwvZGl2PlxufVxuPGRpdiBjbGFzcz1cImF4LWNvbnRlbnRcIj5cbiAgQGlmKF9hY3RpdmVQYXJ0ID09PSAnZGF0ZScpe1xuICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItcGFydFwiPlxuICAgIDxheC1jYWxlbmRhciAjY2FsZW5kYXIgaWQ9XCJjYWxlbmRhclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiIFtuZ01vZGVsXT1cImVkaXRpbmdEYXRlT2JqLmRhdGVcIlxuICAgICAgW21pblZhbHVlXT1cIm1pblZhbHVlXCIgW21heFZhbHVlXT1cIm1heFZhbHVlXCIgW2Rpc2FibGVkRGF0ZXNdPVwiZGlzYWJsZWREYXRlc1wiIFtob2xpZGF5RGF0ZXNdPVwiaG9saWRheURhdGVzXCJcbiAgICAgIFtkZXB0aF09XCJkZXB0aFwiIChvbk5hdmlnYXRlKT1cIl9oYW5kbGVDYWxlbmRhck9uTmF2aWdhdGUoJGV2ZW50KVwiXG4gICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUNhbGVuZGFyT25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiIFt0eXBlXT1cInR5cGVcIj5cbiAgICA8L2F4LWNhbGVuZGFyPlxuICA8L2Rpdj5cbiAgfVxuXG4gIEBpZihfYWN0aXZlUGFydCA9PT0gJ3RpbWUnKXtcbiAgPGRpdiBjbGFzcz1cImF4LXBpY2tlci1wYXJ0XCI+XG4gICAgPGRpdiBjbGFzcz1cImF4LWhlYWRlclwiPlxuICAgICAge3sgZWRpdGluZ0RhdGVPYmogfCBheERhdGU6IGZvcm1hdCA6IHR5cGUgfX1cbiAgICA8L2Rpdj5cbiAgICA8YXgtcGlja2VyPlxuXG4gICAgICBAaWYoX3BhcnRzLmhvdXIuZW5hYmxlZCl7XG4gICAgICA8YXgtcGlja2VyLWNvbHVtbiBbdGl0bGVdPVwiJ2RhdGVUaW1lLmhvdXInIHwgdHJhbnNsYXRlIHwgYXN5bmMgXCIgW2l0ZW1zXT1cImhvdXJzXCIgW25nTW9kZWxdPVwiZWRpdGluZ0RhdGVPYmouaG91clwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnaG91cicpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCI+PC9heC1waWNrZXItY29sdW1uPlxuICAgICAgfVxuXG4gICAgICBAaWYoX3BhcnRzLm1pbnV0ZS5lbmFibGVkKXtcbiAgICAgIDxheC1waWNrZXItY29sdW1uIFt0aXRsZV09XCInZGF0ZVRpbWUubWludXRlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIFwiIFtpdGVtc109XCJtaW51dGVzXCJcbiAgICAgICAgW25nTW9kZWxdPVwiZWRpdGluZ0RhdGVPYmoubWludXRlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQsICdtaW51dGUnKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvYXgtcGlja2VyLWNvbHVtbj5cbiAgICAgIH1cbiAgICAgIEBpZihfcGFydHMuc2Vjb25kLmVuYWJsZWQpe1xuICAgICAgPGF4LXBpY2tlci1jb2x1bW4gW3RpdGxlXT1cIidkYXRlVGltZS5zZWNvbmQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgXCIgW2l0ZW1zXT1cIm1pbnV0ZXNcIlxuICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5zZWNvbmRcIiAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKCRldmVudCwgJ3NlY29uZCcpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCI+PC9heC1waWNrZXItY29sdW1uPlxuXG4gICAgICB9XG4gICAgPC9heC1waWNrZXI+XG4gIDwvZGl2PlxuICB9XG5cbjwvZGl2PlxuQGlmKCFkaXNhYmxlZCAmJiAhcmVhZG9ubHkgJiYgKGN1cnJlbnRUaW1lQnV0dG9uIHx8IF9oYXNUaW1lUGFydCkpe1xuPGRpdiBjbGFzcz1cImF4LWZvb3RlclwiPlxuICA8ZGl2PlxuICAgIEBpZihjdXJyZW50VGltZUJ1dHRvbil7XG4gICAgPGF4LWJ1dHRvbiBbdGV4dF09XCJidXR0b25UZXh0IHwgdHJhbnNsYXRlIHwgYXN5bmMgXCIgY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cIl9oYW5kbGVOb3dDbGljaygpXCI+PC9heC1idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICBAaWYoX2hhc1RpbWVQYXJ0KXtcbiAgICA8YXgtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt0ZXh0XT1cIidkYXRlVGltZS5zZXQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgXCIgY2xhc3M9XCJheC1zbVwiXG4gICAgICAob25DbGljayk9XCJfaGFuZGxlU2V0Q2xpY2soKVwiPjwvYXgtYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbn0iXX0=
@@ -19,4 +19,4 @@ export function dateTimePickerConfig(config = {}) {
19
19
  };
20
20
  return result;
21
21
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2xpYi9kYXRldGltZS1waWNrZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFNaEMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQ3BDLElBQUksY0FBYyxDQUF5QiwyQkFBMkIsRUFBRTtJQUN0RSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFELE9BQU8sNkJBQTZCLENBQUM7SUFDdkMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVMLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUEyQjtJQUNuRSxpQkFBaUIsRUFBRSxJQUFJO0NBQ3hCLENBQUM7QUFJRixNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLFNBQXNDLEVBQUU7SUFFeEMsTUFBTSxNQUFNLEdBQUc7UUFDYixHQUFHLDZCQUE2QjtRQUNoQyxHQUFHLE1BQU07S0FDVixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYX0dMT0JBTF9DT05GSUcgfSBmcm9tICdAYWNvcmV4L2NvcmUvY29uZmlnJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhEYXRlVGltZVBpY2tlckNvbmZpZyB7XG4gIGN1cnJlbnRUaW1lQnV0dG9uOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgQVhfREFURVRJTUVfUElDS0VSX0NPTkZJRyA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxBWERhdGVUaW1lUGlja2VyQ29uZmlnPignQVhfREFURVRJTUVfUElDS0VSX0NPTkZJRycsIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgY29uc3QgZ2xvYmFsID0gaW5qZWN0KEFYX0dMT0JBTF9DT05GSUcpO1xuICAgICAgc2V0KGdsb2JhbCwgJ2RhdGV0aW1lLXBpY2tlcicsIEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcpO1xuICAgICAgcmV0dXJuIEFYRGF0ZVRpbWVQaWNrZXJEZWZhdWx0Q29uZmlnO1xuICAgIH0sXG4gIH0pO1xuXG5leHBvcnQgY29uc3QgQVhEYXRlVGltZVBpY2tlckRlZmF1bHRDb25maWc6IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcgPSB7XG4gIGN1cnJlbnRUaW1lQnV0dG9uOiB0cnVlLFxufTtcblxuZXhwb3J0IHR5cGUgUGFydGlhbERhdGVUaW1lUGlja2VyQ29uZmlnID0gUGFydGlhbDxBWERhdGVUaW1lUGlja2VyQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUaW1lUGlja2VyQ29uZmlnKFxuICBjb25maWc6IFBhcnRpYWxEYXRlVGltZVBpY2tlckNvbmZpZyA9IHt9XG4pOiBBWERhdGVUaW1lUGlja2VyQ29uZmlnIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLkFYRGF0ZVRpbWVQaWNrZXJEZWZhdWx0Q29uZmlnLFxuICAgIC4uLmNvbmZpZyxcbiAgfTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2xpYi9kYXRldGltZS1waWNrZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFNaEMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQXlCLDJCQUEyQixFQUFFO0lBQy9HLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxHQUFHLENBQUMsTUFBTSxFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDMUQsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQTJCO0lBQ25FLGlCQUFpQixFQUFFLElBQUk7Q0FDeEIsQ0FBQztBQUlGLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxTQUFzQyxFQUFFO0lBQzNFLE1BQU0sTUFBTSxHQUFHO1FBQ2IsR0FBRyw2QkFBNkI7UUFDaEMsR0FBRyxNQUFNO0tBQ1YsQ0FBQztJQUNGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWF9HTE9CQUxfQ09ORklHIH0gZnJvbSAnQGFjb3JleC9jb3JlL2NvbmZpZyc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYRGF0ZVRpbWVQaWNrZXJDb25maWcge1xuICBjdXJyZW50VGltZUJ1dHRvbjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhEYXRlVGltZVBpY2tlckNvbmZpZz4oJ0FYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIGNvbnN0IGdsb2JhbCA9IGluamVjdChBWF9HTE9CQUxfQ09ORklHKTtcbiAgICBzZXQoZ2xvYmFsLCAnZGF0ZXRpbWUtcGlja2VyJywgQVhfREFURVRJTUVfUElDS0VSX0NPTkZJRyk7XG4gICAgcmV0dXJuIEFYRGF0ZVRpbWVQaWNrZXJEZWZhdWx0Q29uZmlnO1xuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBBWERhdGVUaW1lUGlja2VyRGVmYXVsdENvbmZpZzogQVhEYXRlVGltZVBpY2tlckNvbmZpZyA9IHtcbiAgY3VycmVudFRpbWVCdXR0b246IHRydWUsXG59O1xuXG5leHBvcnQgdHlwZSBQYXJ0aWFsRGF0ZVRpbWVQaWNrZXJDb25maWcgPSBQYXJ0aWFsPEFYRGF0ZVRpbWVQaWNrZXJDb25maWc+O1xuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZVRpbWVQaWNrZXJDb25maWcoY29uZmlnOiBQYXJ0aWFsRGF0ZVRpbWVQaWNrZXJDb25maWcgPSB7fSk6IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcge1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgLi4uQVhEYXRlVGltZVBpY2tlckRlZmF1bHRDb25maWcsXG4gICAgLi4uY29uZmlnLFxuICB9O1xuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
@@ -1,5 +1,5 @@
1
- import { AXClearableComponent, MXBaseComponent, } from '@acorex/components/common';
2
- import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Inject, Input, Optional, ViewEncapsulation, } from '@angular/core';
1
+ import { AXClearableComponent, MXBaseComponent } from '@acorex/components/common';
2
+ import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Inject, Input, Optional, ViewEncapsulation } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "@acorex/components/common";
@@ -16,10 +16,7 @@ export class AXDecoratorClearButtonComponent extends MXBaseComponent {
16
16
  this._icon = v;
17
17
  }
18
18
  get hostClass() {
19
- const hidden = this._parent.disabled ||
20
- this._parent.readonly ||
21
- this._parent.value == null ||
22
- this._parent.value == '';
19
+ const hidden = this._parent.disabled || this._parent.readonly || this._parent.value == null || this._parent.value == '';
23
20
  return `ax-icon ax-clear-button ${hidden ? 'ax-hidden' : ''}`;
24
21
  }
25
22
  _handleOnClick() {
@@ -27,13 +24,7 @@ export class AXDecoratorClearButtonComponent extends MXBaseComponent {
27
24
  this._parent?.reset(true);
28
25
  }
29
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXDecoratorClearButtonComponent, deps: [{ token: AXClearableComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: { icon: "icon" }, host: { listeners: { "click": "_handleOnClick($event)" }, properties: { "class": "this.hostClass" } }, usesInheritance: true, ngImport: i0, template: `<button
31
- type="button"
32
- tabIndex="-1"
33
- role="button"
34
- aria-label="Clear"
35
- title="Clear"
36
- >
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: { icon: "icon" }, host: { listeners: { "click": "_handleOnClick($event)" }, properties: { "class": "this.hostClass" } }, usesInheritance: true, ngImport: i0, template: `<button type="button" tabIndex="-1" role="button" aria-label="Clear" title="Clear">
37
28
  <i class="ax-icon-solid" [ngClass]="icon"></i>
38
29
  </button>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
39
30
  }
@@ -41,13 +32,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
41
32
  type: Component,
42
33
  args: [{
43
34
  selector: 'ax-clear-button',
44
- template: `<button
45
- type="button"
46
- tabIndex="-1"
47
- role="button"
48
- aria-label="Clear"
49
- title="Clear"
50
- >
35
+ template: `<button type="button" tabIndex="-1" role="button" aria-label="Clear" title="Clear">
51
36
  <i class="ax-icon-solid" [ngClass]="icon"></i>
52
37
  </button>`,
53
38
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -67,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
67
52
  type: HostListener,
68
53
  args: ['click', ['$event']]
69
54
  }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kZWNvcmF0b3JzL3NyYy9saWIvY29tcG9uZW50cy9jbGVhci1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsZUFBZSxHQUNoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7O0FBZ0J2QixNQUFNLE9BQU8sK0JBQWdDLFNBQVEsZUFBZTtJQUNsRSxZQUdVLE9BQThCO1FBRXRDLEtBQUssRUFBRSxDQUFDO1FBRkEsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFLaEMsVUFBSyxHQUFHLHVCQUF1QixDQUFDO0lBRnhDLENBQUM7SUFHRCxJQUNXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksZUFBZSxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFXLElBQUksQ0FBQyxDQUFTO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUNZLFNBQVM7UUFDbkIsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMzQixPQUFPLDJCQUEyQixNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUdTLGNBQWM7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ2xELElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7OEdBaENVLCtCQUErQixrQkFHaEMsb0JBQW9CO2tHQUhuQiwrQkFBK0IsK01BWmhDOzs7Ozs7OztZQVFBOzsyRkFJQywrQkFBK0I7a0JBZDNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7Ozs7OztZQVFBO29CQUNWLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OzBCQUdJLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsb0JBQW9CO3lDQVFuQixJQUFJO3NCQURkLEtBQUs7Z0JBU00sU0FBUztzQkFEcEIsV0FBVzt1QkFBQyxPQUFPO2dCQVdWLGNBQWM7c0JBRHZCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXG4gIE1YQmFzZUNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jbGVhci1idXR0b24nLFxuICB0ZW1wbGF0ZTogYDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICB0YWJJbmRleD1cIi0xXCJcbiAgICByb2xlPVwiYnV0dG9uXCJcbiAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxuICAgIHRpdGxlPVwiQ2xlYXJcIlxuICA+XG4gICAgPGkgY2xhc3M9XCJheC1pY29uLXNvbGlkXCIgW25nQ2xhc3NdPVwiaWNvblwiPjwvaT5cbiAgPC9idXR0b24+YCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYRGVjb3JhdG9yQ2xlYXJCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoQVhDbGVhcmFibGVDb21wb25lbnQpXG4gICAgcHJpdmF0ZSBfcGFyZW50PzogQVhDbGVhcmFibGVDb21wb25lbnRcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ljb24gPSAnYXgtaWNvbiBheC1pY29uLWNsZWFyJztcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb24gfHwgJ2F4LWljb24tY2xvc2UnO1xuICB9XG4gIHB1YmxpYyBzZXQgaWNvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pY29uID0gdjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBoaWRkZW4gPVxuICAgICAgdGhpcy5fcGFyZW50LmRpc2FibGVkIHx8XG4gICAgICB0aGlzLl9wYXJlbnQucmVhZG9ubHkgfHxcbiAgICAgIHRoaXMuX3BhcmVudC52YWx1ZSA9PSBudWxsIHx8XG4gICAgICB0aGlzLl9wYXJlbnQudmFsdWUgPT0gJyc7XG4gICAgcmV0dXJuIGBheC1pY29uIGF4LWNsZWFyLWJ1dHRvbiAke2hpZGRlbiA/ICdheC1oaWRkZW4nIDogJyd9YDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkNsaWNrKCkge1xuICAgIGlmICghdGhpcy5fcGFyZW50LmRpc2FibGVkICYmICF0aGlzLl9wYXJlbnQucmVhZG9ubHkpXG4gICAgICB0aGlzLl9wYXJlbnQ/LnJlc2V0KHRydWUpO1xuICB9XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kZWNvcmF0b3JzL3NyYy9saWIvY29tcG9uZW50cy9jbGVhci1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFVMUksTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGVBQWU7SUFDbEUsWUFHVSxPQUE4QjtRQUV0QyxLQUFLLEVBQUUsQ0FBQztRQUZBLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBS2hDLFVBQUssR0FBRyx1QkFBdUIsQ0FBQztJQUZ4QyxDQUFDO0lBR0QsSUFDVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLGVBQWUsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsQ0FBUztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFDWSxTQUFTO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDeEgsT0FBTywyQkFBMkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFHUyxjQUFjO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xGLENBQUM7OEdBM0JVLCtCQUErQixrQkFHaEMsb0JBQW9CO2tHQUhuQiwrQkFBK0IsK01BTmhDOztZQUVBOzsyRkFJQywrQkFBK0I7a0JBUjNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOztZQUVBO29CQUNWLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OzBCQUdJLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsb0JBQW9CO3lDQVFuQixJQUFJO3NCQURkLEtBQUs7Z0JBU00sU0FBUztzQkFEcEIsV0FBVzt1QkFBQyxPQUFPO2dCQU9WLGNBQWM7c0JBRHZCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDbGVhcmFibGVDb21wb25lbnQsIE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNsZWFyLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiSW5kZXg9XCItMVwiIHJvbGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiB0aXRsZT1cIkNsZWFyXCI+XG4gICAgPGkgY2xhc3M9XCJheC1pY29uLXNvbGlkXCIgW25nQ2xhc3NdPVwiaWNvblwiPjwvaT5cbiAgPC9idXR0b24+YCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYRGVjb3JhdG9yQ2xlYXJCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoQVhDbGVhcmFibGVDb21wb25lbnQpXG4gICAgcHJpdmF0ZSBfcGFyZW50PzogQVhDbGVhcmFibGVDb21wb25lbnQsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwcml2YXRlIF9pY29uID0gJ2F4LWljb24gYXgtaWNvbi1jbGVhcic7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgaWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pY29uIHx8ICdheC1pY29uLWNsb3NlJztcbiAgfVxuICBwdWJsaWMgc2V0IGljb24odjogc3RyaW5nKSB7XG4gICAgdGhpcy5faWNvbiA9IHY7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgaG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgaGlkZGVuID0gdGhpcy5fcGFyZW50LmRpc2FibGVkIHx8IHRoaXMuX3BhcmVudC5yZWFkb25seSB8fCB0aGlzLl9wYXJlbnQudmFsdWUgPT0gbnVsbCB8fCB0aGlzLl9wYXJlbnQudmFsdWUgPT0gJyc7XG4gICAgcmV0dXJuIGBheC1pY29uIGF4LWNsZWFyLWJ1dHRvbiAke2hpZGRlbiA/ICdheC1oaWRkZW4nIDogJyd9YDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkNsaWNrKCkge1xuICAgIGlmICghdGhpcy5fcGFyZW50LmRpc2FibGVkICYmICF0aGlzLl9wYXJlbnQucmVhZG9ubHkpIHRoaXMuX3BhcmVudD8ucmVzZXQodHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { AXClosbaleComponent, MXBaseComponent, } from '@acorex/components/common';
2
- import { ChangeDetectionStrategy, Component, HostListener, Inject, Input, Optional, ViewEncapsulation, } from '@angular/core';
1
+ import { AXClosbaleComponent, MXBaseComponent } from '@acorex/components/common';
2
+ import { ChangeDetectionStrategy, Component, HostListener, Inject, Input, Optional, ViewEncapsulation } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "@acorex/components/common";
@@ -19,23 +19,13 @@ export class AXDecoratorCloseButtonComponent extends MXBaseComponent {
19
19
  this._parent?.close();
20
20
  }
21
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXDecoratorCloseButtonComponent, deps: [{ token: AXClosbaleComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: { icon: "icon" }, host: { listeners: { "click": "_handleOnClick($event)" } }, usesInheritance: true, ngImport: i0, template: `<button
23
- type="button"
24
- role="button"
25
- aria-label="Close"
26
- title="Close"
27
- >
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: { icon: "icon" }, host: { listeners: { "click": "_handleOnClick($event)" } }, usesInheritance: true, ngImport: i0, template: `<button type="button" role="button" aria-label="Close" title="Close">
28
23
  <i [ngClass]="icon"></i>
29
24
  </button>`, isInline: true, styles: ["ax-close-button button{display:flex;cursor:pointer;background-color:transparent}ax-close-button button i{--ax-icon-size: 1.5rem}ax-close-button button:hover{opacity:.7}ax-close-button button:focus{opacity:.8;outline:2px solid transparent;outline-offset:2px}ax-close-button button:active{opacity:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
30
25
  }
31
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXDecoratorCloseButtonComponent, decorators: [{
32
27
  type: Component,
33
- args: [{ selector: 'ax-close-button', template: `<button
34
- type="button"
35
- role="button"
36
- aria-label="Close"
37
- title="Close"
38
- >
28
+ args: [{ selector: 'ax-close-button', template: `<button type="button" role="button" aria-label="Close" title="Close">
39
29
  <i [ngClass]="icon"></i>
40
30
  </button>`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["ax-close-button button{display:flex;cursor:pointer;background-color:transparent}ax-close-button button i{--ax-icon-size: 1.5rem}ax-close-button button:hover{opacity:.7}ax-close-button button:focus{opacity:.8;outline:2px solid transparent;outline-offset:2px}ax-close-button button:active{opacity:1}\n"] }]
41
31
  }], ctorParameters: () => [{ type: i2.AXClosbaleComponent, decorators: [{
@@ -49,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
49
39
  type: HostListener,
50
40
  args: ['click', ['$event']]
51
41
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2UtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kZWNvcmF0b3JzL3NyYy9saWIvY29tcG9uZW50cy9jbG9zZS1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZUFBZSxHQUNoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFnQnZCLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxlQUFlO0lBQ2xFLFlBR1UsT0FBNkI7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFGQSxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUsvQixVQUFLLEdBQUcsdUJBQXVCLENBQUM7SUFGeEMsQ0FBQztJQUdELElBQ1csSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxlQUFlLENBQUM7SUFDdkMsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLENBQVM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUdTLGNBQWM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQXJCVSwrQkFBK0Isa0JBR2hDLG1CQUFtQjtrR0FIbEIsK0JBQStCLG9LQVpoQzs7Ozs7OztZQU9BOzsyRkFLQywrQkFBK0I7a0JBZDNDLFNBQVM7K0JBQ0UsaUJBQWlCLFlBQ2pCOzs7Ozs7O1lBT0EsbUJBRU8sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs7MEJBSWxDLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsbUJBQW1CO3lDQVFsQixJQUFJO3NCQURkLEtBQUs7Z0JBU0ksY0FBYztzQkFEdkIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENsb3NiYWxlQ29tcG9uZW50LFxuICBNWEJhc2VDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jbG9zZS1idXR0b24nLFxuICB0ZW1wbGF0ZTogYDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICByb2xlPVwiYnV0dG9uXCJcbiAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxuICAgIHRpdGxlPVwiQ2xvc2VcIlxuICA+XG4gICAgPGkgW25nQ2xhc3NdPVwiaWNvblwiPjwvaT5cbiAgPC9idXR0b24+YCxcbiAgc3R5bGVVcmxzOiBbJ2Nsb3NlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhEZWNvcmF0b3JDbG9zZUJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChBWENsb3NiYWxlQ29tcG9uZW50KVxuICAgIHByaXZhdGUgX3BhcmVudD86IEFYQ2xvc2JhbGVDb21wb25lbnRcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ljb24gPSAnYXgtaWNvbiBheC1pY29uLWNsb3NlJztcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb24gfHwgJ2F4LWljb24tY2xvc2UnO1xuICB9XG4gIHB1YmxpYyBzZXQgaWNvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pY29uID0gdjtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkNsaWNrKCkge1xuICAgIHRoaXMuX3BhcmVudD8uY2xvc2UoKTtcbiAgfVxufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2UtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kZWNvcmF0b3JzL3NyYy9saWIvY29tcG9uZW50cy9jbG9zZS1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVc3SCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsZUFBZTtJQUNsRSxZQUdVLE9BQTZCO1FBRXJDLEtBQUssRUFBRSxDQUFDO1FBRkEsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFLL0IsVUFBSyxHQUFHLHVCQUF1QixDQUFDO0lBRnhDLENBQUM7SUFHRCxJQUNXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksZUFBZSxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFXLElBQUksQ0FBQyxDQUFTO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFHUyxjQUFjO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0FyQlUsK0JBQStCLGtCQUdoQyxtQkFBbUI7a0dBSGxCLCtCQUErQixvS0FQaEM7O1lBRUE7OzJGQUtDLCtCQUErQjtrQkFUM0MsU0FBUzsrQkFDRSxpQkFBaUIsWUFDakI7O1lBRUEsbUJBRU8sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs7MEJBSWxDLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsbUJBQW1CO3lDQVFsQixJQUFJO3NCQURkLEtBQUs7Z0JBU0ksY0FBYztzQkFEdkIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENsb3NiYWxlQ29tcG9uZW50LCBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNsb3NlLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIHRpdGxlPVwiQ2xvc2VcIj5cbiAgICA8aSBbbmdDbGFzc109XCJpY29uXCI+PC9pPlxuICA8L2J1dHRvbj5gLFxuICBzdHlsZVVybHM6IFsnY2xvc2UtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWERlY29yYXRvckNsb3NlQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEFYQ2xvc2JhbGVDb21wb25lbnQpXG4gICAgcHJpdmF0ZSBfcGFyZW50PzogQVhDbG9zYmFsZUNvbXBvbmVudCxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ljb24gPSAnYXgtaWNvbiBheC1pY29uLWNsb3NlJztcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb24gfHwgJ2F4LWljb24tY2xvc2UnO1xuICB9XG4gIHB1YmxpYyBzZXQgaWNvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pY29uID0gdjtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkNsaWNrKCkge1xuICAgIHRoaXMuX3BhcmVudD8uY2xvc2UoKTtcbiAgfVxufVxuIl19