ngx-tethys 18.1.0-next.0 → 18.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/action/action.component.d.ts +1 -2
  3. package/affix/affix.component.d.ts +2 -4
  4. package/anchor/anchor-link.component.d.ts +2 -4
  5. package/anchor/anchor.component.d.ts +1 -4
  6. package/arrow-switcher/arrow-switcher.component.d.ts +1 -2
  7. package/autocomplete/autocomplete.component.d.ts +1 -2
  8. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -5
  9. package/autocomplete/overlay/autocomplete-container.component.d.ts +4 -4
  10. package/autocomplete/overlay/autocomplete.service.d.ts +3 -5
  11. package/avatar/avatar.component.d.ts +1 -3
  12. package/avatar/avatar.pipe.d.ts +0 -2
  13. package/back-top/back-top.component.d.ts +2 -4
  14. package/badge/badge.component.d.ts +5 -14
  15. package/breadcrumb/breadcrumb-item.component.d.ts +1 -2
  16. package/breadcrumb/breadcrumb.component.d.ts +1 -2
  17. package/button/button.component.d.ts +1 -2
  18. package/calendar/calendar-header.component.d.ts +1 -2
  19. package/calendar/calendar.component.d.ts +1 -2
  20. package/carousel/carousel-item.directive.d.ts +1 -2
  21. package/carousel/carousel.component.d.ts +1 -4
  22. package/carousel/carousel.service.d.ts +1 -2
  23. package/cascader/cascader.component.d.ts +4 -4
  24. package/checkbox/checkbox.component.d.ts +0 -2
  25. package/collapse/collapse-item.component.d.ts +2 -4
  26. package/color-picker/color-picker-panel.component.d.ts +2 -3
  27. package/color-picker/color-picker.component.d.ts +2 -4
  28. package/color-picker/coordinates.directive.d.ts +1 -2
  29. package/color-picker/parts/alpha/alpha.component.d.ts +1 -2
  30. package/color-picker/parts/hue/hue.component.d.ts +1 -2
  31. package/color-picker/parts/saturation/saturation.component.d.ts +1 -2
  32. package/copy/copy.directive.d.ts +0 -2
  33. package/core/click-positioner.d.ts +0 -2
  34. package/core/scroll.d.ts +1 -2
  35. package/core/update-host-class.service.d.ts +1 -2
  36. package/date-picker/abstract-picker.component.d.ts +1 -1
  37. package/date-picker/abstract-picker.directive.d.ts +2 -3
  38. package/date-picker/base-picker.component.d.ts +2 -3
  39. package/date-picker/date-picker.component.d.ts +2 -2
  40. package/date-picker/date-picker.directive.d.ts +1 -3
  41. package/date-picker/date-picker.service.d.ts +2 -2
  42. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -2
  43. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -1
  44. package/date-picker/lib/date/date-header.component.d.ts +0 -3
  45. package/date-picker/lib/date/date-table.component.d.ts +1 -3
  46. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -2
  47. package/date-picker/lib/decade/decade-header.component.d.ts +1 -1
  48. package/date-picker/lib/month/month-header.component.d.ts +0 -3
  49. package/date-picker/lib/month/month-table.component.d.ts +1 -2
  50. package/date-picker/lib/popups/date-popup.component.d.ts +1 -3
  51. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -4
  52. package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -2
  53. package/date-picker/lib/year/year-header.component.d.ts +0 -1
  54. package/date-picker/month-picker.component.d.ts +2 -2
  55. package/date-picker/picker.component.d.ts +1 -3
  56. package/date-picker/picker.pipes.d.ts +0 -3
  57. package/date-picker/quarter-picker.component.d.ts +2 -2
  58. package/date-picker/range-picker.component.d.ts +2 -2
  59. package/date-picker/range-picker.directive.d.ts +2 -3
  60. package/date-picker/week-picker.component.d.ts +2 -2
  61. package/date-picker/year-picker.component.d.ts +2 -2
  62. package/date-range/date-range.component.d.ts +1 -3
  63. package/date-range/optional-dates/optional-dates.component.d.ts +0 -2
  64. package/dialog/body/dialog-body.component.d.ts +0 -2
  65. package/dialog/confirm/confirm.component.d.ts +2 -3
  66. package/dialog/dialog-container.component.d.ts +4 -5
  67. package/dialog/dialog.service.d.ts +4 -4
  68. package/dialog/footer/dialog-footer.component.d.ts +2 -2
  69. package/dialog/header/dialog-header.component.d.ts +2 -6
  70. package/dot/dot.component.d.ts +1 -2
  71. package/drag-drop/drag-content.directive.d.ts +2 -3
  72. package/drag-drop/drag-handle.directive.d.ts +2 -3
  73. package/drag-drop/drag.directive.d.ts +4 -5
  74. package/drag-drop/drop-container.directive.d.ts +6 -3
  75. package/dropdown/dropdown-active.directive.d.ts +3 -4
  76. package/dropdown/dropdown-menu-item.directive.d.ts +1 -2
  77. package/dropdown/dropdown-submenu.component.d.ts +1 -3
  78. package/dropdown/dropdown.directive.d.ts +3 -5
  79. package/empty/empty.component.d.ts +6 -6
  80. package/esm2022/action/action.component.mjs +18 -18
  81. package/esm2022/affix/affix.component.mjs +11 -14
  82. package/esm2022/anchor/anchor-link.component.mjs +9 -10
  83. package/esm2022/anchor/anchor.component.mjs +11 -16
  84. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +22 -22
  85. package/esm2022/autocomplete/autocomplete.component.mjs +7 -7
  86. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +30 -37
  87. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +11 -15
  88. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +14 -21
  89. package/esm2022/avatar/avatar.component.mjs +24 -25
  90. package/esm2022/avatar/avatar.pipe.mjs +6 -7
  91. package/esm2022/back-top/back-top.component.mjs +11 -15
  92. package/esm2022/badge/badge.component.mjs +6 -6
  93. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
  94. package/esm2022/breadcrumb/breadcrumb.component.mjs +12 -12
  95. package/esm2022/button/button.component.mjs +12 -12
  96. package/esm2022/calendar/calendar-header.component.mjs +12 -12
  97. package/esm2022/calendar/calendar.component.mjs +12 -12
  98. package/esm2022/carousel/carousel-item.directive.mjs +7 -6
  99. package/esm2022/carousel/carousel.component.mjs +10 -12
  100. package/esm2022/carousel/carousel.service.mjs +7 -9
  101. package/esm2022/cascader/cascader.component.mjs +11 -16
  102. package/esm2022/checkbox/checkbox.component.mjs +7 -9
  103. package/esm2022/collapse/collapse-item.component.mjs +18 -21
  104. package/esm2022/color-picker/color-picker-panel.component.mjs +11 -12
  105. package/esm2022/color-picker/color-picker.component.mjs +10 -11
  106. package/esm2022/color-picker/coordinates.directive.mjs +10 -10
  107. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +6 -6
  108. package/esm2022/color-picker/parts/hue/hue.component.mjs +6 -6
  109. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +9 -9
  110. package/esm2022/copy/copy.directive.mjs +8 -12
  111. package/esm2022/core/click-positioner.mjs +6 -7
  112. package/esm2022/core/scroll.mjs +7 -9
  113. package/esm2022/core/store/store.mjs +1 -1
  114. package/esm2022/core/update-host-class.service.mjs +6 -6
  115. package/esm2022/date-picker/abstract-picker.component.mjs +5 -5
  116. package/esm2022/date-picker/abstract-picker.directive.mjs +42 -44
  117. package/esm2022/date-picker/base-picker.component.mjs +26 -26
  118. package/esm2022/date-picker/date-picker.component.mjs +6 -6
  119. package/esm2022/date-picker/date-picker.directive.mjs +6 -8
  120. package/esm2022/date-picker/date-picker.service.mjs +6 -10
  121. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
  122. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +6 -7
  123. package/esm2022/date-picker/lib/date/date-header.component.mjs +3 -9
  124. package/esm2022/date-picker/lib/date/date-table.component.mjs +7 -9
  125. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +12 -12
  126. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +5 -8
  127. package/esm2022/date-picker/lib/month/month-header.component.mjs +3 -9
  128. package/esm2022/date-picker/lib/month/month-table.component.mjs +6 -7
  129. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +12 -13
  130. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +12 -13
  131. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +6 -7
  132. package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -9
  133. package/esm2022/date-picker/month-picker.component.mjs +6 -7
  134. package/esm2022/date-picker/picker.component.mjs +21 -22
  135. package/esm2022/date-picker/picker.pipes.mjs +10 -11
  136. package/esm2022/date-picker/quarter-picker.component.mjs +6 -7
  137. package/esm2022/date-picker/range-picker.component.mjs +6 -7
  138. package/esm2022/date-picker/range-picker.directive.mjs +6 -8
  139. package/esm2022/date-picker/week-picker.component.mjs +6 -7
  140. package/esm2022/date-picker/year-picker.component.mjs +6 -7
  141. package/esm2022/date-range/date-range.component.mjs +14 -15
  142. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +8 -9
  143. package/esm2022/dialog/body/dialog-body.component.mjs +11 -12
  144. package/esm2022/dialog/confirm/confirm.component.mjs +10 -14
  145. package/esm2022/dialog/dialog-container.component.mjs +13 -18
  146. package/esm2022/dialog/dialog.service.mjs +10 -17
  147. package/esm2022/dialog/footer/dialog-footer.component.mjs +7 -11
  148. package/esm2022/dialog/header/dialog-header.component.mjs +14 -19
  149. package/esm2022/dot/dot.component.mjs +7 -7
  150. package/esm2022/drag-drop/drag-content.directive.mjs +7 -9
  151. package/esm2022/drag-drop/drag-handle.directive.mjs +7 -9
  152. package/esm2022/drag-drop/drag.directive.mjs +13 -16
  153. package/esm2022/drag-drop/drop-container.directive.mjs +13 -13
  154. package/esm2022/dropdown/dropdown-active.directive.mjs +9 -12
  155. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +12 -12
  156. package/esm2022/dropdown/dropdown-submenu.component.mjs +9 -10
  157. package/esm2022/dropdown/dropdown.directive.mjs +12 -10
  158. package/esm2022/empty/empty.component.mjs +14 -17
  159. package/esm2022/flexible-text/flexible-text.component.mjs +16 -17
  160. package/esm2022/form/form-group-error/form-group-error.component.mjs +9 -12
  161. package/esm2022/form/form-group-label.directive.mjs +9 -10
  162. package/esm2022/form/form-group.component.mjs +15 -19
  163. package/esm2022/form/form-submit.directive.mjs +6 -7
  164. package/esm2022/form/form-validator-loader.mjs +1 -1
  165. package/esm2022/form/form-validator.service.mjs +12 -13
  166. package/esm2022/form/form.directive.mjs +11 -16
  167. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +10 -16
  168. package/esm2022/form/validator/unique-validator.directive.mjs +7 -10
  169. package/esm2022/fullscreen/fullscreen.component.mjs +10 -11
  170. package/esm2022/fullscreen/fullscreen.service.mjs +7 -10
  171. package/esm2022/grid/thy-col.directive.mjs +9 -14
  172. package/esm2022/grid/thy-grid-item.component.mjs +8 -14
  173. package/esm2022/grid/thy-grid.component.mjs +7 -8
  174. package/esm2022/guider/guider.directive.mjs +8 -9
  175. package/esm2022/guider/guider.service.mjs +12 -19
  176. package/esm2022/icon/icon-registry.mjs +11 -16
  177. package/esm2022/icon/icon.component.mjs +8 -9
  178. package/esm2022/image/image-group.component.mjs +7 -7
  179. package/esm2022/image/image.directive.mjs +11 -12
  180. package/esm2022/image/image.service.mjs +8 -14
  181. package/esm2022/image/preview/image-preview.component.mjs +34 -38
  182. package/esm2022/input/input-count.component.mjs +7 -10
  183. package/esm2022/input/input-group.component.mjs +12 -13
  184. package/esm2022/input/input-search.component.mjs +7 -7
  185. package/esm2022/input/input.component.mjs +14 -14
  186. package/esm2022/input/input.directive.mjs +12 -17
  187. package/esm2022/input-number/input-number.component.mjs +6 -6
  188. package/esm2022/layout/sidebar.component.mjs +45 -51
  189. package/esm2022/list/selection/selection-list.mjs +25 -25
  190. package/esm2022/loading/loading.component.mjs +8 -8
  191. package/esm2022/mention/mention.directive.mjs +9 -14
  192. package/esm2022/mention/suggestions/suggestions.component.mjs +8 -9
  193. package/esm2022/menu/group/menu-group.component.mjs +34 -35
  194. package/esm2022/menu/item/action/menu-item-action.component.mjs +15 -16
  195. package/esm2022/menu/item/menu-item.component.mjs +6 -6
  196. package/esm2022/message/abstract/abstract-message-container.component.mjs +5 -5
  197. package/esm2022/message/abstract/abstract-message.component.mjs +6 -6
  198. package/esm2022/message/message-container.component.mjs +9 -11
  199. package/esm2022/message/message-queue.service.mjs +6 -8
  200. package/esm2022/message/message.component.mjs +7 -7
  201. package/esm2022/message/message.service.mjs +10 -11
  202. package/esm2022/nav/icon-nav/icon-nav.component.mjs +6 -6
  203. package/esm2022/nav/nav-ink-bar.directive.mjs +9 -14
  204. package/esm2022/nav/nav-item.directive.mjs +8 -11
  205. package/esm2022/nav/nav.component.mjs +32 -33
  206. package/esm2022/nav/nav.pipe.mjs +6 -7
  207. package/esm2022/notify/notify-container.component.mjs +8 -11
  208. package/esm2022/notify/notify-queue.service.mjs +6 -8
  209. package/esm2022/notify/notify.component.mjs +7 -7
  210. package/esm2022/notify/notify.service.mjs +11 -12
  211. package/esm2022/pagination/pagination.component.mjs +38 -43
  212. package/esm2022/pagination/pagination.pipe.mjs +6 -7
  213. package/esm2022/popover/header/popover-header.component.mjs +12 -14
  214. package/esm2022/popover/popover-container.component.mjs +11 -13
  215. package/esm2022/popover/popover.directive.mjs +13 -12
  216. package/esm2022/popover/popover.service.mjs +14 -26
  217. package/esm2022/progress/progress-strip.component.mjs +10 -13
  218. package/esm2022/property/property-item.component.mjs +10 -13
  219. package/esm2022/property-operation/property-operation.component.mjs +24 -25
  220. package/esm2022/radio/button/radio-button.component.mjs +9 -15
  221. package/esm2022/radio/group/radio-group.component.mjs +17 -17
  222. package/esm2022/radio/radio.component.mjs +8 -14
  223. package/esm2022/rate/rate.component.mjs +6 -6
  224. package/esm2022/resizable/resizable.directive.mjs +10 -12
  225. package/esm2022/resizable/resizable.service.mjs +7 -9
  226. package/esm2022/resizable/resize-handle.component.mjs +7 -8
  227. package/esm2022/segment/segment-item.component.mjs +12 -15
  228. package/esm2022/segment/segment.component.mjs +26 -26
  229. package/esm2022/select/custom-select/custom-select.component.mjs +14 -28
  230. package/esm2022/select/native-select/native-select.component.mjs +6 -6
  231. package/esm2022/shared/base-form-check.component.mjs +7 -8
  232. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +7 -7
  233. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -10
  234. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +8 -8
  235. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +8 -8
  236. package/esm2022/shared/directives/thy-enter.directive.mjs +8 -8
  237. package/esm2022/shared/directives/thy-scroll.directive.mjs +21 -21
  238. package/esm2022/shared/directives/thy-show.mjs +11 -11
  239. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +7 -5
  240. package/esm2022/shared/directives/view-outlet.directive.mjs +7 -7
  241. package/esm2022/shared/ng-transclude.directive.mjs +6 -5
  242. package/esm2022/shared/option/group/option-group.component.mjs +10 -10
  243. package/esm2022/shared/option/list-option/list-option.component.mjs +12 -19
  244. package/esm2022/shared/option/option.component.mjs +9 -19
  245. package/esm2022/shared/select/select-control/select-control.component.mjs +23 -23
  246. package/esm2022/skeleton/skeleton-circle.component.mjs +7 -15
  247. package/esm2022/skeleton/skeleton-rectangle.component.mjs +7 -15
  248. package/esm2022/slide/drawer/drawer-container.directive.mjs +6 -6
  249. package/esm2022/slide/slide-container.component.mjs +12 -16
  250. package/esm2022/slide/slide-header/slide-header.component.mjs +10 -11
  251. package/esm2022/slide/slide-ref.service.mjs +1 -1
  252. package/esm2022/slide/slide.service.mjs +8 -12
  253. package/esm2022/slider/slider.component.mjs +8 -8
  254. package/esm2022/space/space.component.mjs +13 -13
  255. package/esm2022/statistic/statistic.component.mjs +20 -20
  256. package/esm2022/stepper/step.component.mjs +6 -11
  257. package/esm2022/stepper/stepper-button.directive.mjs +10 -11
  258. package/esm2022/strength/strength.component.mjs +11 -12
  259. package/esm2022/switch/switch.component.mjs +6 -6
  260. package/esm2022/table/table-column.component.mjs +58 -63
  261. package/esm2022/table/table-skeleton.component.mjs +32 -32
  262. package/esm2022/table/table.component.mjs +16 -24
  263. package/esm2022/tabs/tabs.component.mjs +19 -19
  264. package/esm2022/tag/tag.component.mjs +22 -22
  265. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +10 -9
  266. package/esm2022/time-picker/time-picker-panel.component.mjs +27 -27
  267. package/esm2022/time-picker/time-picker.component.mjs +29 -29
  268. package/esm2022/timeline/timeline-item.component.mjs +12 -13
  269. package/esm2022/timeline/timeline.component.mjs +7 -8
  270. package/esm2022/tooltip/tooltip.component.mjs +14 -14
  271. package/esm2022/tooltip/tooltip.directive.mjs +11 -10
  272. package/esm2022/tooltip/tooltip.service.mjs +9 -13
  273. package/esm2022/transfer/transfer-list.component.mjs +6 -6
  274. package/esm2022/tree/tree-node.component.mjs +13 -17
  275. package/esm2022/tree/tree.component.mjs +86 -90
  276. package/esm2022/tree-select/tree-select.component.mjs +22 -27
  277. package/esm2022/typography/bg-color.directive.mjs +9 -9
  278. package/esm2022/typography/text-color.directive.mjs +9 -9
  279. package/esm2022/upload/file-drop.directive.mjs +1 -1
  280. package/esm2022/upload/file-select-base.mjs +5 -6
  281. package/esm2022/upload/file-select.component.mjs +4 -3
  282. package/esm2022/upload/upload.service.mjs +6 -7
  283. package/esm2022/version.mjs +2 -2
  284. package/esm2022/watermark/watermark.directive.mjs +12 -12
  285. package/fesm2022/ngx-tethys-action.mjs +17 -17
  286. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  287. package/fesm2022/ngx-tethys-affix.mjs +12 -14
  288. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  289. package/fesm2022/ngx-tethys-anchor.mjs +19 -22
  290. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  291. package/fesm2022/ngx-tethys-arrow-switcher.mjs +21 -21
  292. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  293. package/fesm2022/ngx-tethys-autocomplete.mjs +59 -71
  294. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  295. package/fesm2022/ngx-tethys-avatar.mjs +27 -27
  296. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  297. package/fesm2022/ngx-tethys-back-top.mjs +12 -15
  298. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  299. package/fesm2022/ngx-tethys-badge.mjs +5 -5
  300. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  301. package/fesm2022/ngx-tethys-breadcrumb.mjs +16 -16
  302. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  303. package/fesm2022/ngx-tethys-button.mjs +11 -11
  304. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  305. package/fesm2022/ngx-tethys-calendar.mjs +21 -21
  306. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  307. package/fesm2022/ngx-tethys-carousel.mjs +20 -21
  308. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  309. package/fesm2022/ngx-tethys-cascader.mjs +11 -15
  310. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  311. package/fesm2022/ngx-tethys-checkbox.mjs +6 -7
  312. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  313. package/fesm2022/ngx-tethys-collapse.mjs +17 -19
  314. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  315. package/fesm2022/ngx-tethys-color-picker.mjs +44 -42
  316. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  317. package/fesm2022/ngx-tethys-copy.mjs +8 -12
  318. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  319. package/fesm2022/ngx-tethys-core.mjs +14 -16
  320. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  321. package/fesm2022/ngx-tethys-date-picker.mjs +192 -216
  322. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  323. package/fesm2022/ngx-tethys-date-range.mjs +20 -20
  324. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  325. package/fesm2022/ngx-tethys-dialog.mjs +56 -72
  326. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  327. package/fesm2022/ngx-tethys-dot.mjs +6 -6
  328. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  329. package/fesm2022/ngx-tethys-drag-drop.mjs +33 -37
  330. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  331. package/fesm2022/ngx-tethys-dropdown.mjs +39 -37
  332. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  333. package/fesm2022/ngx-tethys-empty.mjs +15 -15
  334. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  335. package/fesm2022/ngx-tethys-flexible-text.mjs +16 -17
  336. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  337. package/fesm2022/ngx-tethys-form.mjs +67 -82
  338. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  339. package/fesm2022/ngx-tethys-fullscreen.mjs +14 -17
  340. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  341. package/fesm2022/ngx-tethys-grid.mjs +20 -29
  342. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  343. package/fesm2022/ngx-tethys-guider.mjs +17 -23
  344. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  345. package/fesm2022/ngx-tethys-icon.mjs +18 -22
  346. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  347. package/fesm2022/ngx-tethys-image.mjs +57 -62
  348. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  349. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  350. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  351. package/fesm2022/ngx-tethys-input.mjs +46 -53
  352. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  353. package/fesm2022/ngx-tethys-layout.mjs +45 -50
  354. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  355. package/fesm2022/ngx-tethys-list.mjs +24 -24
  356. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  357. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  358. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  359. package/fesm2022/ngx-tethys-mention.mjs +16 -21
  360. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  361. package/fesm2022/ngx-tethys-menu.mjs +51 -52
  362. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  363. package/fesm2022/ngx-tethys-message.mjs +33 -35
  364. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  365. package/fesm2022/ngx-tethys-nav.mjs +55 -64
  366. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  367. package/fesm2022/ngx-tethys-notify.mjs +26 -29
  368. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  369. package/fesm2022/ngx-tethys-pagination.mjs +44 -49
  370. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  371. package/fesm2022/ngx-tethys-popover.mjs +48 -54
  372. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  373. package/fesm2022/ngx-tethys-progress.mjs +9 -12
  374. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  375. package/fesm2022/ngx-tethys-property-operation.mjs +24 -24
  376. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  377. package/fesm2022/ngx-tethys-property.mjs +11 -11
  378. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  379. package/fesm2022/ngx-tethys-radio.mjs +29 -35
  380. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  381. package/fesm2022/ngx-tethys-rate.mjs +5 -5
  382. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  383. package/fesm2022/ngx-tethys-resizable.mjs +22 -25
  384. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  385. package/fesm2022/ngx-tethys-segment.mjs +35 -38
  386. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  387. package/fesm2022/ngx-tethys-select.mjs +20 -34
  388. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  389. package/fesm2022/ngx-tethys-shared.mjs +128 -143
  390. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  391. package/fesm2022/ngx-tethys-skeleton.mjs +11 -25
  392. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  393. package/fesm2022/ngx-tethys-slide.mjs +30 -34
  394. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  395. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  396. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  397. package/fesm2022/ngx-tethys-space.mjs +13 -13
  398. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  399. package/fesm2022/ngx-tethys-statistic.mjs +19 -19
  400. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  401. package/fesm2022/ngx-tethys-stepper.mjs +13 -18
  402. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  403. package/fesm2022/ngx-tethys-strength.mjs +11 -11
  404. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  405. package/fesm2022/ngx-tethys-switch.mjs +5 -5
  406. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  407. package/fesm2022/ngx-tethys-table.mjs +103 -115
  408. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  409. package/fesm2022/ngx-tethys-tabs.mjs +19 -19
  410. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  411. package/fesm2022/ngx-tethys-tag.mjs +21 -21
  412. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  413. package/fesm2022/ngx-tethys-time-picker.mjs +61 -58
  414. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  415. package/fesm2022/ngx-tethys-timeline.mjs +16 -16
  416. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  417. package/fesm2022/ngx-tethys-tooltip.mjs +32 -33
  418. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-transfer.mjs +5 -5
  420. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-tree-select.mjs +23 -28
  422. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  423. package/fesm2022/ngx-tethys-tree.mjs +96 -102
  424. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  425. package/fesm2022/ngx-tethys-typography.mjs +15 -15
  426. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-upload.mjs +11 -12
  428. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  430. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  431. package/fesm2022/ngx-tethys.mjs +1 -1
  432. package/fesm2022/ngx-tethys.mjs.map +1 -1
  433. package/flexible-text/flexible-text.component.d.ts +1 -3
  434. package/form/form-group-error/form-group-error.component.d.ts +1 -3
  435. package/form/form-group-label.directive.d.ts +0 -2
  436. package/form/form-group.component.d.ts +1 -4
  437. package/form/form-submit.directive.d.ts +0 -2
  438. package/form/form-validator.service.d.ts +0 -2
  439. package/form/form.directive.d.ts +4 -4
  440. package/form/from-group-footer/form-group-footer.component.d.ts +2 -4
  441. package/form/validator/unique-validator.directive.d.ts +1 -4
  442. package/fullscreen/fullscreen.component.d.ts +0 -2
  443. package/fullscreen/fullscreen.service.d.ts +0 -2
  444. package/grid/thy-col.directive.d.ts +1 -2
  445. package/grid/thy-grid-item.component.d.ts +2 -4
  446. package/grid/thy-grid.component.d.ts +1 -3
  447. package/guider/guider.directive.d.ts +1 -3
  448. package/guider/guider.service.d.ts +0 -7
  449. package/icon/icon-registry.d.ts +1 -3
  450. package/icon/icon.component.d.ts +1 -3
  451. package/image/image-group.component.d.ts +1 -2
  452. package/image/image.directive.d.ts +1 -3
  453. package/image/image.service.d.ts +2 -2
  454. package/image/preview/image-preview.component.d.ts +1 -4
  455. package/input/input-count.component.d.ts +3 -4
  456. package/input/input-group.component.d.ts +1 -3
  457. package/input/input-search.component.d.ts +2 -2
  458. package/input/input.component.d.ts +1 -2
  459. package/input/input.directive.d.ts +2 -3
  460. package/input-number/input-number.component.d.ts +2 -2
  461. package/layout/sidebar.component.d.ts +44 -13
  462. package/list/selection/selection-list.d.ts +1 -2
  463. package/loading/loading.component.d.ts +0 -2
  464. package/loading/styles/loading.scss +3 -1
  465. package/mention/mention.directive.d.ts +4 -5
  466. package/mention/suggestions/suggestions.component.d.ts +2 -3
  467. package/menu/group/menu-group.component.d.ts +12 -26
  468. package/menu/item/action/menu-item-action.component.d.ts +2 -3
  469. package/menu/item/menu-item.component.d.ts +1 -2
  470. package/message/abstract/abstract-message-container.component.d.ts +1 -2
  471. package/message/abstract/abstract-message.component.d.ts +2 -2
  472. package/message/message-container.component.d.ts +1 -3
  473. package/message/message-queue.service.d.ts +1 -2
  474. package/message/message.component.d.ts +1 -3
  475. package/message/message.service.d.ts +3 -5
  476. package/nav/icon-nav/icon-nav.component.d.ts +2 -2
  477. package/nav/nav-ink-bar.directive.d.ts +2 -4
  478. package/nav/nav-item.directive.d.ts +3 -4
  479. package/nav/nav.component.d.ts +1 -3
  480. package/nav/nav.pipe.d.ts +0 -2
  481. package/notify/notify-container.component.d.ts +1 -3
  482. package/notify/notify-queue.service.d.ts +1 -2
  483. package/notify/notify.component.d.ts +2 -3
  484. package/notify/notify.service.d.ts +1 -4
  485. package/package.json +1 -1
  486. package/pagination/pagination.component.d.ts +7 -19
  487. package/pagination/pagination.pipe.d.ts +0 -2
  488. package/popover/header/popover-header.component.d.ts +0 -3
  489. package/popover/popover-container.component.d.ts +3 -4
  490. package/popover/popover.directive.d.ts +2 -5
  491. package/popover/popover.service.d.ts +4 -6
  492. package/progress/progress-strip.component.d.ts +0 -1
  493. package/property/property-item.component.d.ts +6 -6
  494. package/property-operation/property-operation.component.d.ts +1 -3
  495. package/radio/button/radio-button.component.d.ts +2 -5
  496. package/radio/group/radio-group.component.d.ts +1 -2
  497. package/radio/radio.component.d.ts +2 -3
  498. package/rate/rate.component.d.ts +2 -2
  499. package/resizable/resizable.directive.d.ts +2 -4
  500. package/resizable/resizable.service.d.ts +2 -2
  501. package/resizable/resize-handle.component.d.ts +1 -3
  502. package/schematics/version.d.ts +1 -1
  503. package/schematics/version.js +1 -1
  504. package/segment/segment-item.component.d.ts +4 -5
  505. package/segment/segment.component.d.ts +1 -2
  506. package/select/custom-select/custom-select.component.d.ts +5 -5
  507. package/select/native-select/native-select.component.d.ts +1 -1
  508. package/shared/base-form-check.component.d.ts +1 -1
  509. package/shared/directives/string-or-template-outlet.directive.d.ts +1 -2
  510. package/shared/directives/thy-autofocus.directive.d.ts +0 -2
  511. package/shared/directives/thy-contextmenu.directive.d.ts +1 -2
  512. package/shared/directives/thy-ctrl-enter.directive.d.ts +1 -2
  513. package/shared/directives/thy-enter.directive.d.ts +1 -2
  514. package/shared/directives/thy-scroll.directive.d.ts +1 -2
  515. package/shared/directives/thy-show.d.ts +1 -2
  516. package/shared/directives/thy-stop-propagation.directive.d.ts +2 -2
  517. package/shared/directives/view-outlet.directive.d.ts +1 -2
  518. package/shared/ng-transclude.directive.d.ts +1 -1
  519. package/shared/option/group/option-group.component.d.ts +1 -2
  520. package/shared/option/list-option/list-option.component.d.ts +5 -10
  521. package/shared/option/option.component.d.ts +5 -5
  522. package/shared/select/select-control/select-control.component.d.ts +1 -2
  523. package/skeleton/skeleton-circle.component.d.ts +1 -4
  524. package/skeleton/skeleton-rectangle.component.d.ts +5 -5
  525. package/slide/drawer/drawer-container.directive.d.ts +1 -2
  526. package/slide/slide-container.component.d.ts +3 -4
  527. package/slide/slide-header/slide-header.component.d.ts +0 -2
  528. package/slide/slide.service.d.ts +3 -3
  529. package/slider/slider.component.d.ts +2 -2
  530. package/space/space.component.d.ts +1 -2
  531. package/statistic/statistic.component.d.ts +1 -2
  532. package/stepper/step.component.d.ts +1 -2
  533. package/stepper/stepper-button.directive.d.ts +0 -3
  534. package/strength/strength.component.d.ts +0 -1
  535. package/switch/switch.component.d.ts +1 -1
  536. package/table/table-column.component.d.ts +32 -8
  537. package/table/table-skeleton.component.d.ts +3 -12
  538. package/table/table.component.d.ts +3 -5
  539. package/tabs/tabs.component.d.ts +1 -2
  540. package/tag/tag.component.d.ts +7 -3
  541. package/time-picker/inner/inner-time-picker.component.d.ts +2 -4
  542. package/time-picker/time-picker-panel.component.d.ts +1 -2
  543. package/time-picker/time-picker.component.d.ts +1 -2
  544. package/timeline/timeline-item.component.d.ts +1 -3
  545. package/timeline/timeline.component.d.ts +1 -3
  546. package/tooltip/tooltip.component.d.ts +1 -2
  547. package/tooltip/tooltip.directive.d.ts +6 -9
  548. package/tooltip/tooltip.service.d.ts +2 -4
  549. package/transfer/transfer-list.component.d.ts +1 -2
  550. package/tree/tree-node.component.d.ts +5 -21
  551. package/tree/tree.component.d.ts +1 -2
  552. package/tree-select/tree-select.component.d.ts +5 -6
  553. package/typography/bg-color.directive.d.ts +0 -2
  554. package/typography/text-color.directive.d.ts +1 -2
  555. package/upload/file-select-base.d.ts +2 -3
  556. package/upload/file-select.component.d.ts +1 -0
  557. package/upload/upload.service.d.ts +0 -2
  558. package/watermark/watermark.directive.d.ts +1 -2
@@ -1,5 +1,5 @@
1
1
  import { AbstractControlValueAccessor, mixinDisabled, mixinInitialized, mixinTabIndex, useHostFocusControl } from 'ngx-tethys/core';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation, inject } from '@angular/core';
3
3
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { useHostRenderer } from '@tethys/cdk/dom';
5
5
  import { ThyIcon } from 'ngx-tethys/icon';
@@ -37,10 +37,10 @@ export class ThyInputSearch extends _MixinBase {
37
37
  this.iconPosition = value || 'before';
38
38
  this.updateClasses();
39
39
  }
40
- constructor(cdr, elementRef) {
40
+ constructor() {
41
41
  super();
42
- this.cdr = cdr;
43
- this.elementRef = elementRef;
42
+ this.cdr = inject(ChangeDetectorRef);
43
+ this.elementRef = inject(ElementRef);
44
44
  this.hostRenderer = useHostRenderer();
45
45
  this.hostFocusControl = useHostFocusControl();
46
46
  this.disabled = false;
@@ -115,7 +115,7 @@ export class ThyInputSearch extends _MixinBase {
115
115
  ngOnDestroy() {
116
116
  this.hostFocusControl.destroy();
117
117
  }
118
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputSearch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputSearch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
119
119
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyInputSearch, isStandalone: true, selector: "thy-input-search", inputs: { name: "name", placeholder: "placeholder", thyTheme: "thyTheme", thySearchFocus: ["thySearchFocus", "thySearchFocus", coerceBooleanProperty], thyIconPosition: "thyIconPosition", thySize: "thySize" }, outputs: { clear: "clear", thyClear: "thyClear" }, host: { properties: { "class.thy-input-search-ellipse": "thyTheme === \"ellipse\"", "class.thy-input-search-transparent": "thyTheme === \"transparent\"", "class.thy-input-search-before-with-clear": "searchText && iconPosition === \"before\"", "class.form-control-active": "focused", "attr.tabindex": "tabIndex" }, classAttribute: "thy-input form-control thy-input-search" }, providers: [CUSTOM_INPUT_SEARCH_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "@if (iconPosition === 'before') {\n <thy-icon class=\"input-prepend\" thyIconName=\"search\"></thy-icon>\n}\n<input\n class=\"input-search-control\"\n #input\n thyInput\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [thyAutofocus]=\"autoFocus\"\n [(ngModel)]=\"searchText\"\n (ngModelChange)=\"searchModelChange()\"\n (focus)=\"!focused ? (focused = true) : null\"\n [thySize]=\"thySize\"\n tabindex=\"-1\" />\n@if (iconPosition === 'after') {\n <div class=\"input-append input-append-divider\">\n @if (searchText) {\n <a class=\"close\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n } @else {\n <thy-icon class=\"text-placeholder\" thyIconName=\"search\"></thy-icon>\n }\n </div>\n}\n\n@if (searchText && iconPosition === 'before') {\n <a class=\"close input-append\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
120
120
  }
121
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputSearch, decorators: [{
@@ -128,7 +128,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
128
128
  '[class.form-control-active]': 'focused',
129
129
  '[attr.tabindex]': 'tabIndex'
130
130
  }, standalone: true, imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule], template: "@if (iconPosition === 'before') {\n <thy-icon class=\"input-prepend\" thyIconName=\"search\"></thy-icon>\n}\n<input\n class=\"input-search-control\"\n #input\n thyInput\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [thyAutofocus]=\"autoFocus\"\n [(ngModel)]=\"searchText\"\n (ngModelChange)=\"searchModelChange()\"\n (focus)=\"!focused ? (focused = true) : null\"\n [thySize]=\"thySize\"\n tabindex=\"-1\" />\n@if (iconPosition === 'after') {\n <div class=\"input-append input-append-divider\">\n @if (searchText) {\n <a class=\"close\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n } @else {\n <thy-icon class=\"text-placeholder\" thyIconName=\"search\"></thy-icon>\n }\n </div>\n}\n\n@if (searchText && iconPosition === 'before') {\n <a class=\"close input-append\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n" }]
131
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { inputElement: [{
131
+ }], ctorParameters: () => [], propDecorators: { inputElement: [{
132
132
  type: ViewChild,
133
133
  args: ['input', { static: true }]
134
134
  }], name: [{
@@ -149,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
149
149
  }], thyClear: [{
150
150
  type: Output
151
151
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC9pbnB1dC1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2lucHV0L2lucHV0LXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsNEJBQTRCLEVBRTVCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsYUFBYSxFQUliLG1CQUFtQixFQUN0QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUdwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBS3hELE1BQU0sQ0FBQyxNQUFNLDBDQUEwQyxHQUFRO0lBQzNELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7SUFDN0MsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBRXRC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QU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLENBQUM7K0dBR25DLFlBQVk7c0JBQWpELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFtQjNCLElBQUk7c0JBQVosS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0YsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFVOUIsZUFBZTtzQkFBM0IsS0FBSztnQkFTRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0ksS0FBSztzQkFBZCxNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgQ29uc3RydWN0b3IsXG4gICAgbWl4aW5EaXNhYmxlZCxcbiAgICBtaXhpbkluaXRpYWxpemVkLFxuICAgIG1peGluVGFiSW5kZXgsXG4gICAgVGh5Q2FuRGlzYWJsZSxcbiAgICBUaHlIYXNUYWJJbmRleCxcbiAgICBUaHlJbml0aWFsaXplZCxcbiAgICB1c2VIb3N0Rm9jdXNDb250cm9sXG59IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IFRoeUlucHV0RGlyZWN0aXZlLCBUaHlJbnB1dFNpemUgfSBmcm9tICcuL2lucHV0LmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7IEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuZXhwb3J0IHR5cGUgVGh5SW5wdXRTZWFyY2hUaGVtZSA9ICdkZWZhdWx0JyB8ICdlbGxpcHNlJyB8ICd0cmFuc3BhcmVudCcgfCAnJztcbmV4cG9ydCB0eXBlIFRoeUlucHV0U2VhcmNoSWNvblBvc2l0aW9uID0gJ2JlZm9yZScgfCAnYWZ0ZXInO1xuXG5leHBvcnQgY29uc3QgQ1VTVE9NX0lOUFVUX1NFQVJDSF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5SW5wdXRTZWFyY2gpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbmNvbnN0IF9NaXhpbkJhc2U6IENvbnN0cnVjdG9yPFRoeUhhc1RhYkluZGV4PiAmXG4gICAgQ29uc3RydWN0b3I8VGh5SW5pdGlhbGl6ZWQ+ICZcbiAgICBDb25zdHJ1Y3RvcjxUaHlDYW5EaXNhYmxlPiAmXG4gICAgdHlwZW9mIEFic3RyYWN0Q29udHJvbFZhbHVlQWNjZXNzb3IgPSBtaXhpbkluaXRpYWxpemVkKG1peGluVGFiSW5kZXgobWl4aW5EaXNhYmxlZChBYnN0cmFjdENvbnRyb2xWYWx1ZUFjY2Vzc29yKSkpO1xuXG4vKipcbiAqIOaQnOe0oui+k+WFpeahhlxuICogQG5hbWUgdGh5LWlucHV0LXNlYXJjaFxuICogQG9yZGVyIDMwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWlucHV0LXNlYXJjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXNlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX1NFQVJDSF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktaW5wdXQgZm9ybS1jb250cm9sIHRoeS1pbnB1dC1zZWFyY2gnLFxuICAgICAgICAnW2NsYXNzLnRoeS1pbnB1dC1zZWFyY2gtZWxsaXBzZV0nOiAndGh5VGhlbWUgPT09IFwiZWxsaXBzZVwiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktaW5wdXQtc2VhcmNoLXRyYW5zcGFyZW50XSc6ICd0aHlUaGVtZSA9PT0gXCJ0cmFuc3BhcmVudFwiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktaW5wdXQtc2VhcmNoLWJlZm9yZS13aXRoLWNsZWFyXSc6ICdzZWFyY2hUZXh0ICYmIGljb25Qb3NpdGlvbiA9PT0gXCJiZWZvcmVcIicsXG4gICAgICAgICdbY2xhc3MuZm9ybS1jb250cm9sLWFjdGl2ZV0nOiAnZm9jdXNlZCcsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAndGFiSW5kZXgnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlJY29uLCBUaHlJbnB1dERpcmVjdGl2ZSwgVGh5QXV0b2ZvY3VzRGlyZWN0aXZlLCBGb3Jtc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5SW5wdXRTZWFyY2ggZXh0ZW5kcyBfTWl4aW5CYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjxhbnk+O1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIHByaXZhdGUgaG9zdEZvY3VzQ29udHJvbCA9IHVzZUhvc3RGb2N1c0NvbnRyb2woKTtcblxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIGF1dG9Gb2N1cyA9IGZhbHNlO1xuXG4gICAgcHVibGljIGljb25Qb3NpdGlvbjogVGh5SW5wdXRTZWFyY2hJY29uUG9zaXRpb24gPSAnYmVmb3JlJztcblxuICAgIHNlYXJjaFRleHQ6IHN0cmluZztcblxuICAgIGZvY3VzZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaQnOe0ouahhiBuYW1lIOWxnuaAp1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOaQnOe0ouahhiBQbGFjZWhvbGRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDmkJzntKLmoYbpo47moLxcbiAgICAgKiBAdHlwZSAnZGVmYXVsdCcgfCAnZWxsaXBzZScgfCAndHJhbnNwYXJlbnQnXG4gICAgICogQGRlZmF1bHQgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRoZW1lOiBUaHlJbnB1dFNlYXJjaFRoZW1lO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm6Ieq5Yqo6IGa54SmXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlTZWFyY2hGb2N1cyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmF1dG9Gb2N1cyA9IHZhbHVlO1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmkJzntKLlm77moIfkvY3nva7vvIzlvZPkvKDlhaUgYWZ0ZXIg5pe277yM5pCc57Si5Zu+5qCH5Zyo6L6T5YWl5qGG5ZCO5pa55pi+56S677yM5pyJ5YaF5a655pe25pi+56S65Li65YWz6Zet5oyJ6ZKuXG4gICAgICogQHR5cGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5SWNvblBvc2l0aW9uKHZhbHVlOiBUaHlJbnB1dFNlYXJjaEljb25Qb3NpdGlvbikge1xuICAgICAgICB0aGlzLmljb25Qb3NpdGlvbiA9IHZhbHVlIHx8ICdiZWZvcmUnO1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDovpPlhaXmoYblpKflsI9cbiAgICAgKiBAdHlwZSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnZGVmYXVsdCcgfCAnbGcnXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogVGh5SW5wdXRTaXplO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSB0aHlDbGVhclxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBjbGVhcjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDmuIXpmaTmkJzntKLkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5Q2xlYXI6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3Nlcyh0cnVlKTtcblxuICAgICAgICB0aGlzLmhvc3RGb2N1c0NvbnRyb2wuZm9jdXNDaGFuZ2VkID0gKG9yaWdpbjogRm9jdXNPcmlnaW4pID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRvdWNoZWRGbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHVwZGF0ZUNsYXNzZXMoZm9yY2VVcGRhdGUgPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCB8fCBmb3JjZVVwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3MoW2B0aHktaW5wdXQtc2VhcmNoLSR7dGhpcy5pY29uUG9zaXRpb259YF0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNlYXJjaE1vZGVsQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4odGhpcy5zZWFyY2hUZXh0KTtcbiAgICB9XG5cbiAgICBjbGVhclNlYXJjaFRleHQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaW5wdXQtc2VhcmNoLWNvbnRyb2wnKTtcbiAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSAnJztcbiAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHRoaXMuc2VhcmNoVGV4dCk7XG4gICAgICAgIHRoaXMuY2xlYXIuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMudGh5Q2xlYXIuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdEZvY3VzQ29udHJvbC5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwiQGlmIChpY29uUG9zaXRpb24gPT09ICdiZWZvcmUnKSB7XG4gIDx0aHktaWNvbiBjbGFzcz1cImlucHV0LXByZXBlbmRcIiB0aHlJY29uTmFtZT1cInNlYXJjaFwiPjwvdGh5LWljb24+XG59XG48aW5wdXRcbiAgY2xhc3M9XCJpbnB1dC1zZWFyY2gtY29udHJvbFwiXG4gICNpbnB1dFxuICB0aHlJbnB1dFxuICBbbmFtZV09XCJuYW1lXCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW3RoeUF1dG9mb2N1c109XCJhdXRvRm9jdXNcIlxuICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hNb2RlbENoYW5nZSgpXCJcbiAgKGZvY3VzKT1cIiFmb2N1c2VkID8gKGZvY3VzZWQgPSB0cnVlKSA6IG51bGxcIlxuICBbdGh5U2l6ZV09XCJ0aHlTaXplXCJcbiAgdGFiaW5kZXg9XCItMVwiIC8+XG5AaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2FmdGVyJykge1xuICA8ZGl2IGNsYXNzPVwiaW5wdXQtYXBwZW5kIGlucHV0LWFwcGVuZC1kaXZpZGVyXCI+XG4gICAgQGlmIChzZWFyY2hUZXh0KSB7XG4gICAgICA8YSBjbGFzcz1cImNsb3NlXCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJjbGVhclNlYXJjaFRleHQoJGV2ZW50KVwiPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZVwiPjwvdGh5LWljb24+XG4gICAgICA8L2E+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8dGh5LWljb24gY2xhc3M9XCJ0ZXh0LXBsYWNlaG9sZGVyXCIgdGh5SWNvbk5hbWU9XCJzZWFyY2hcIj48L3RoeS1pY29uPlxuICAgIH1cbiAgPC9kaXY+XG59XG5cbkBpZiAoc2VhcmNoVGV4dCAmJiBpY29uUG9zaXRpb24gPT09ICdiZWZvcmUnKSB7XG4gIDxhIGNsYXNzPVwiY2xvc2UgaW5wdXQtYXBwZW5kXCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJjbGVhclNlYXJjaFRleHQoJGV2ZW50KVwiPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImNsb3NlXCI+PC90aHktaWNvbj5cbiAgPC9hPlxufVxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC9pbnB1dC1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2lucHV0L2lucHV0LXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsNEJBQTRCLEVBRTVCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsYUFBYSxFQUliLG1CQUFtQixFQUN0QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFHcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUt4RCxNQUFNLENBQUMsTUFBTSwwQ0FBMEMsR0FBUTtJQUMzRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQzdDLEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMs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SUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsQ0FBQzt3REFNbkMsWUFBWTtzQkFBakQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQW1CM0IsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFPRixjQUFjO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVU5QixlQUFlO3NCQUEzQixLQUFLO2dCQVNHLE9BQU87c0JBQWYsS0FBSztnQkFLSSxLQUFLO3NCQUFkLE1BQU07Z0JBS0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBDb25zdHJ1Y3RvcixcbiAgICBtaXhpbkRpc2FibGVkLFxuICAgIG1peGluSW5pdGlhbGl6ZWQsXG4gICAgbWl4aW5UYWJJbmRleCxcbiAgICBUaHlDYW5EaXNhYmxlLFxuICAgIFRoeUhhc1RhYkluZGV4LFxuICAgIFRoeUluaXRpYWxpemVkLFxuICAgIHVzZUhvc3RGb2N1c0NvbnRyb2xcbn0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IFRoeUlucHV0RGlyZWN0aXZlLCBUaHlJbnB1dFNpemUgfSBmcm9tICcuL2lucHV0LmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7IEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuZXhwb3J0IHR5cGUgVGh5SW5wdXRTZWFyY2hUaGVtZSA9ICdkZWZhdWx0JyB8ICdlbGxpcHNlJyB8ICd0cmFuc3BhcmVudCcgfCAnJztcbmV4cG9ydCB0eXBlIFRoeUlucHV0U2VhcmNoSWNvblBvc2l0aW9uID0gJ2JlZm9yZScgfCAnYWZ0ZXInO1xuXG5leHBvcnQgY29uc3QgQ1VTVE9NX0lOUFVUX1NFQVJDSF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5SW5wdXRTZWFyY2gpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbmNvbnN0IF9NaXhpbkJhc2U6IENvbnN0cnVjdG9yPFRoeUhhc1RhYkluZGV4PiAmXG4gICAgQ29uc3RydWN0b3I8VGh5SW5pdGlhbGl6ZWQ+ICZcbiAgICBDb25zdHJ1Y3RvcjxUaHlDYW5EaXNhYmxlPiAmXG4gICAgdHlwZW9mIEFic3RyYWN0Q29udHJvbFZhbHVlQWNjZXNzb3IgPSBtaXhpbkluaXRpYWxpemVkKG1peGluVGFiSW5kZXgobWl4aW5EaXNhYmxlZChBYnN0cmFjdENvbnRyb2xWYWx1ZUFjY2Vzc29yKSkpO1xuXG4vKipcbiAqIOaQnOe0oui+k+WFpeahhlxuICogQG5hbWUgdGh5LWlucHV0LXNlYXJjaFxuICogQG9yZGVyIDMwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWlucHV0LXNlYXJjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXNlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX1NFQVJDSF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktaW5wdXQgZm9ybS1jb250cm9sIHRoeS1pbnB1dC1zZWFyY2gnLFxuICAgICAgICAnW2NsYXNzLnRoeS1pbnB1dC1zZWFyY2gtZWxsaXBzZV0nOiAndGh5VGhlbWUgPT09IFwiZWxsaXBzZVwiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktaW5wdXQtc2VhcmNoLXRyYW5zcGFyZW50XSc6ICd0aHlUaGVtZSA9PT0gXCJ0cmFuc3BhcmVudFwiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktaW5wdXQtc2VhcmNoLWJlZm9yZS13aXRoLWNsZWFyXSc6ICdzZWFyY2hUZXh0ICYmIGljb25Qb3NpdGlvbiA9PT0gXCJiZWZvcmVcIicsXG4gICAgICAgICdbY2xhc3MuZm9ybS1jb250cm9sLWFjdGl2ZV0nOiAnZm9jdXNlZCcsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAndGFiSW5kZXgnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlJY29uLCBUaHlJbnB1dERpcmVjdGl2ZSwgVGh5QXV0b2ZvY3VzRGlyZWN0aXZlLCBGb3Jtc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5SW5wdXRTZWFyY2ggZXh0ZW5kcyBfTWl4aW5CYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PjtcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBwcml2YXRlIGhvc3RGb2N1c0NvbnRyb2wgPSB1c2VIb3N0Rm9jdXNDb250cm9sKCk7XG5cbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBhdXRvRm9jdXMgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpY29uUG9zaXRpb246IFRoeUlucHV0U2VhcmNoSWNvblBvc2l0aW9uID0gJ2JlZm9yZSc7XG5cbiAgICBzZWFyY2hUZXh0OiBzdHJpbmc7XG5cbiAgICBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmkJzntKLmoYYgbmFtZSDlsZ7mgKdcbiAgICAgKi9cbiAgICBASW5wdXQoKSBuYW1lID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDmkJzntKLmoYYgUGxhY2Vob2xkZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog5pCc57Si5qGG6aOO5qC8XG4gICAgICogQHR5cGUgJ2RlZmF1bHQnIHwgJ2VsbGlwc2UnIHwgJ3RyYW5zcGFyZW50J1xuICAgICAqIEBkZWZhdWx0IGRlZmF1bHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaGVtZTogVGh5SW5wdXRTZWFyY2hUaGVtZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuiHquWKqOiBmueEplxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5U2VhcmNoRm9jdXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hdXRvRm9jdXMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pCc57Si5Zu+5qCH5L2N572u77yM5b2T5Lyg5YWlIGFmdGVyIOaXtu+8jOaQnOe0ouWbvuagh+WcqOi+k+WFpeahhuWQjuaWueaYvuekuu+8jOacieWGheWuueaXtuaYvuekuuS4uuWFs+mXreaMiemSrlxuICAgICAqIEB0eXBlXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeUljb25Qb3NpdGlvbih2YWx1ZTogVGh5SW5wdXRTZWFyY2hJY29uUG9zaXRpb24pIHtcbiAgICAgICAgdGhpcy5pY29uUG9zaXRpb24gPSB2YWx1ZSB8fCAnYmVmb3JlJztcbiAgICAgICAgdGhpcy51cGRhdGVDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG5aSn5bCPXG4gICAgICogQHR5cGUgJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2RlZmF1bHQnIHwgJ2xnJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNpemU6IFRoeUlucHV0U2l6ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgdGh5Q2xlYXJcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgY2xlYXI6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog5riF6Zmk5pCc57Si5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUNsZWFyOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXModHJ1ZSk7XG5cbiAgICAgICAgdGhpcy5ob3N0Rm9jdXNDb250cm9sLmZvY3VzQ2hhbmdlZCA9IChvcmlnaW46IEZvY3VzT3JpZ2luKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9yaWdpbikge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB1cGRhdGVDbGFzc2VzKGZvcmNlVXBkYXRlID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQgfHwgZm9yY2VVcGRhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWlucHV0LXNlYXJjaC0ke3RoaXMuaWNvblBvc2l0aW9ufWBdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZWFyY2hNb2RlbENoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHRoaXMuc2VhcmNoVGV4dCk7XG4gICAgfVxuXG4gICAgY2xlYXJTZWFyY2hUZXh0KGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmlucHV0LXNlYXJjaC1jb250cm9sJyk7XG4gICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XG4gICAgICAgIHRoaXMub25DaGFuZ2VGbih0aGlzLnNlYXJjaFRleHQpO1xuICAgICAgICB0aGlzLmNsZWFyLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLnRoeUNsZWFyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RGb2N1c0NvbnRyb2wuZGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIkBpZiAoaWNvblBvc2l0aW9uID09PSAnYmVmb3JlJykge1xuICA8dGh5LWljb24gY2xhc3M9XCJpbnB1dC1wcmVwZW5kXCIgdGh5SWNvbk5hbWU9XCJzZWFyY2hcIj48L3RoeS1pY29uPlxufVxuPGlucHV0XG4gIGNsYXNzPVwiaW5wdXQtc2VhcmNoLWNvbnRyb2xcIlxuICAjaW5wdXRcbiAgdGh5SW5wdXRcbiAgW25hbWVdPVwibmFtZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFt0aHlBdXRvZm9jdXNdPVwiYXV0b0ZvY3VzXCJcbiAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoTW9kZWxDaGFuZ2UoKVwiXG4gIChmb2N1cyk9XCIhZm9jdXNlZCA/IChmb2N1c2VkID0gdHJ1ZSkgOiBudWxsXCJcbiAgW3RoeVNpemVdPVwidGh5U2l6ZVwiXG4gIHRhYmluZGV4PVwiLTFcIiAvPlxuQGlmIChpY29uUG9zaXRpb24gPT09ICdhZnRlcicpIHtcbiAgPGRpdiBjbGFzcz1cImlucHV0LWFwcGVuZCBpbnB1dC1hcHBlbmQtZGl2aWRlclwiPlxuICAgIEBpZiAoc2VhcmNoVGV4dCkge1xuICAgICAgPGEgY2xhc3M9XCJjbG9zZVwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2hUZXh0KCRldmVudClcIj5cbiAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiY2xvc2VcIj48L3RoeS1pY29uPlxuICAgICAgPC9hPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHRoeS1pY29uIGNsYXNzPVwidGV4dC1wbGFjZWhvbGRlclwiIHRoeUljb25OYW1lPVwic2VhcmNoXCI+PC90aHktaWNvbj5cbiAgICB9XG4gIDwvZGl2PlxufVxuXG5AaWYgKHNlYXJjaFRleHQgJiYgaWNvblBvc2l0aW9uID09PSAnYmVmb3JlJykge1xuICA8YSBjbGFzcz1cImNsb3NlIGlucHV0LWFwcGVuZFwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2hUZXh0KCRldmVudClcIj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZVwiPjwvdGh5LWljb24+XG4gIDwvYT5cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { take } from 'rxjs/operators';
2
2
  import { NgTemplateOutlet } from '@angular/common';
3
- import { Component, ContentChild, ElementRef, EventEmitter, forwardRef, Input, NgZone, Output, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
3
+ import { Component, ContentChild, ElementRef, EventEmitter, forwardRef, Input, NgZone, Output, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';
4
4
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import { ThyIcon } from 'ngx-tethys/icon';
6
6
  import { ThyAutofocusDirective } from 'ngx-tethys/shared';
@@ -21,16 +21,9 @@ const password = 'password';
21
21
  * @order 50
22
22
  */
23
23
  export class ThyInput {
24
- /**
25
- * 输入框类型
26
- * @type 'number' | 'input'
27
- */
28
- set thyType(value) {
29
- this.type = value;
30
- }
31
- constructor(ngZone, elementRef) {
32
- this.ngZone = ngZone;
33
- this.elementRef = elementRef;
24
+ constructor() {
25
+ this.ngZone = inject(NgZone);
26
+ this.elementRef = inject(ElementRef);
34
27
  /**
35
28
  * Placeholder
36
29
  */
@@ -57,6 +50,13 @@ export class ThyInput {
57
50
  this.onTouchedCallback = noop;
58
51
  this.onChangeCallback = noop;
59
52
  }
53
+ /**
54
+ * 输入框类型
55
+ * @type 'number' | 'input'
56
+ */
57
+ set thyType(value) {
58
+ this.type = value;
59
+ }
60
60
  ngOnInit() {
61
61
  this.ngZone.onStable.pipe(take(1)).subscribe(() => {
62
62
  if (this.isPassword(this.type)) {
@@ -99,7 +99,7 @@ export class ThyInput {
99
99
  togglePasswordType() {
100
100
  this.type = this.isPassword(this.type) ? 'text' : 'password';
101
101
  }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInput, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
103
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyInput, isStandalone: true, selector: "thy-input", inputs: { placeholder: "placeholder", thySize: "thySize", thyAutofocus: ["thyAutofocus", "thyAutofocus", coerceBooleanProperty], thyType: "thyType", type: "type", thyLabelText: "thyLabelText", readonly: ["readonly", "readonly", coerceBooleanProperty] }, outputs: { focus: "focus", blur: "blur" }, host: { properties: { "class.form-control-active": "focused", "class.disabled": "disabled" }, classAttribute: "thy-input form-control" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], queries: [{ propertyName: "appendTemplate", first: true, predicate: ["append"], descendants: true }, { propertyName: "prependTemplate", first: true, predicate: ["prepend"], descendants: true }], viewQueries: [{ propertyName: "eyeTemplate", first: true, predicate: ["eye"], descendants: true, static: true }], ngImport: i0, template: "@if (prependTemplate) {\n <div #prepend class=\"input-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n<input\n #input\n thyInput\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutofocus\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onModelChange()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonly\"\n />\n<span class=\"input-label input-label-{{ thySize }}\" [class.active]=\"showLabel\">{{ thyLabelText }}</span>\n@if (appendTemplate) {\n <div #append class=\"input-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n<ng-template #eye>\n <a href=\"javascript:;\" class=\"link-secondary input-password-icon\" (click)=\"togglePasswordType()\">\n @if (isPassword(type)) {\n <thy-icon thyIconName=\"eye\"></thy-icon>\n }\n @if (!isPassword(type)) {\n <thy-icon thyIconName=\"eye-invisible\"></thy-icon>\n }\n </a>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], encapsulation: i0.ViewEncapsulation.None }); }
104
104
  }
105
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInput, decorators: [{
@@ -109,7 +109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
109
109
  '[class.form-control-active]': 'focused',
110
110
  '[class.disabled]': 'disabled'
111
111
  }, standalone: true, imports: [NgTemplateOutlet, ThyInputDirective, ThyAutofocusDirective, FormsModule, ThyIcon], template: "@if (prependTemplate) {\n <div #prepend class=\"input-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n<input\n #input\n thyInput\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutofocus\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onModelChange()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonly\"\n />\n<span class=\"input-label input-label-{{ thySize }}\" [class.active]=\"showLabel\">{{ thyLabelText }}</span>\n@if (appendTemplate) {\n <div #append class=\"input-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n<ng-template #eye>\n <a href=\"javascript:;\" class=\"link-secondary input-password-icon\" (click)=\"togglePasswordType()\">\n @if (isPassword(type)) {\n <thy-icon thyIconName=\"eye\"></thy-icon>\n }\n @if (!isPassword(type)) {\n <thy-icon thyIconName=\"eye-invisible\"></thy-icon>\n }\n </a>\n</ng-template>\n" }]
112
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }], propDecorators: { placeholder: [{
112
+ }], propDecorators: { placeholder: [{
113
113
  type: Input
114
114
  }], thySize: [{
115
115
  type: Input
@@ -139,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
139
139
  type: ViewChild,
140
140
  args: ['eye', { static: true }]
141
141
  }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFnQixNQUFNLG1CQUFtQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFeEQsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQVE7SUFDcEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUN2QyxLQUFLLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFFRixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFFdEIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0FBRTVCOzs7O0dBSUc7QUFjSCxNQUFNLE9BQU8sUUFBUTtJQWtCakI7OztPQUdHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBcURELFlBQ1ksTUFBYyxFQUNkLFVBQXNCO1FBRHRCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBL0VsQzs7V0FFRztRQUNNLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBUzFCOztXQUVHO1FBQzBDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBcUJsRTs7V0FFRztRQUMwQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTlEOztXQUVHO1FBQ08sVUFBSyxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBRWpFOztXQUVHO1FBQ08sU0FBSSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBY3pELFVBQUssR0FBRyxNQUFNLENBQUM7UUFNZixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFaEIsc0JBQWlCLEdBQWUsSUFBSSxDQUFDO1FBRXJDLHFCQUFnQixHQUFxQixJQUFJLENBQUM7SUFLL0MsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUMzQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFZO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBWTtRQUNwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3BCLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDakUsQ0FBQzs4R0FySVEsUUFBUTtrR0FBUixRQUFRLHNKQWdCRyxxQkFBcUIsc0dBd0JyQixxQkFBcUIscU1BbEQ5QixDQUFDLG1DQUFtQyxDQUFDLCtVQ3pDcEQsMGpDQW9DQSw0Q0RhYyxnQkFBZ0Isb0pBQUUsaUJBQWlCLCtJQUFFLHFCQUFxQixpSUFBRSxXQUFXLCttQkFBRSxPQUFPOzsyRkFFakYsUUFBUTtrQkFicEIsU0FBUzsrQkFDSSxXQUFXLGFBRVYsQ0FBQyxtQ0FBbUMsQ0FBQyxpQkFDakMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixLQUFLLEVBQUUsd0JBQXdCO3dCQUMvQiw2QkFBNkIsRUFBRSxTQUFTO3dCQUN4QyxrQkFBa0IsRUFBRSxVQUFVO3FCQUNqQyxjQUNXLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUM7b0dBTWxGLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQUt1QyxZQUFZO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU92QyxPQUFPO3NCQURWLEtBQUs7Z0JBUUcsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS3VDLFFBQVE7c0JBQXBELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBS2pDLEtBQUs7c0JBQWQsTUFBTTtnQkFLRyxJQUFJO3NCQUFiLE1BQU07Z0JBS2lCLGNBQWM7c0JBQXJDLFlBQVk7dUJBQUMsUUFBUTtnQkFLRyxlQUFlO3NCQUF2QyxZQUFZO3VCQUFDLFNBQVM7Z0JBRWEsV0FBVztzQkFBOUMsU0FBUzt1QkFBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBUaHlJbnB1dERpcmVjdGl2ZSwgVGh5SW5wdXRTaXplIH0gZnJvbSAnLi9pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuZXhwb3J0IGNvbnN0IENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5SW5wdXQpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbmNvbnN0IHBhc3N3b3JkID0gJ3Bhc3N3b3JkJztcblxuLyoqXG4gKiDlhoXpg6jpm4bmiJDovpPlhaXmoYbnu4Tku7bvvIzlu7rorq4gdGh5LWlucHV0LWdyb3VwIOWSjCB0aHlJbnB1dCDnu4TlkIjkvb/nlKhcbiAqIEBuYW1lIHRoeS1pbnB1dFxuICogQG9yZGVyIDUwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW0NVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktaW5wdXQgZm9ybS1jb250cm9sJyxcbiAgICAgICAgJ1tjbGFzcy5mb3JtLWNvbnRyb2wtYWN0aXZlXSc6ICdmb2N1c2VkJyxcbiAgICAgICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBUaHlJbnB1dERpcmVjdGl2ZSwgVGh5QXV0b2ZvY3VzRGlyZWN0aXZlLCBGb3Jtc01vZHVsZSwgVGh5SWNvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5SW5wdXQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBQbGFjZWhvbGRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDovpPlhaXmoYblpKflsI9cbiAgICAgKiBAdHlwZSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnZGVmYXVsdCcgfCAnbGcnXG4gICAgICogQGRlZmF1bHQgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNpemU6IFRoeUlucHV0U2l6ZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuiHquWKqOiBmueEplxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUF1dG9mb2N1cyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG57G75Z6LXG4gICAgICogQHR5cGUgJ251bWJlcicgfCAnaW5wdXQnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VHlwZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgdGh5VHlwZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHR5cGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpSBMYWJlbCDmlofmnKxcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlMYWJlbFRleHQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWPquivu1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBmb2N1cyDogZrnhKbkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZm9jdXM6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogYmx1ciDlpLHnhKbkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlkI7nva7mqKHmnb9cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdhcHBlbmQnKSBhcHBlbmRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIOWJjee9ruaooeadv1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3ByZXBlbmQnKSBwcmVwZW5kVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKCdleWUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBleWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHB1YmxpYyBfdHlwZSA9ICd0ZXh0JztcblxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nO1xuXG4gICAgcHVibGljIHNob3dMYWJlbDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNQYXNzd29yZCh0aGlzLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRUZW1wbGF0ZSA9IHRoaXMuZXllVGVtcGxhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIG9uSW5wdXRGb2N1cyhldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93TGFiZWwgPSB0cnVlO1xuICAgICAgICB0aGlzLmZvY3VzLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uSW5wdXRCbHVyKGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vbmJsdXIpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9uYmx1cihldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd0xhYmVsID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBpc1Bhc3N3b3JkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSBwYXNzd29yZDtcbiAgICB9XG5cbiAgICB0b2dnbGVQYXNzd29yZFR5cGUoKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHRoaXMuaXNQYXNzd29yZCh0aGlzLnR5cGUpID8gJ3RleHQnIDogJ3Bhc3N3b3JkJztcbiAgICB9XG59XG4iLCJAaWYgKHByZXBlbmRUZW1wbGF0ZSkge1xuICA8ZGl2ICNwcmVwZW5kIGNsYXNzPVwiaW5wdXQtcHJlcGVuZFwiPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInByZXBlbmRUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxufVxuPGlucHV0XG4gICNpbnB1dFxuICB0aHlJbnB1dFxuICBbdGh5U2l6ZV09XCJ0aHlTaXplXCJcbiAgW3RoeUF1dG9mb2N1c109XCJ0aHlBdXRvZm9jdXNcIlxuICBbdHlwZV09XCJ0eXBlXCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoKVwiXG4gIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiXG4gIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxuICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAvPlxuPHNwYW4gY2xhc3M9XCJpbnB1dC1sYWJlbCBpbnB1dC1sYWJlbC17eyB0aHlTaXplIH19XCIgW2NsYXNzLmFjdGl2ZV09XCJzaG93TGFiZWxcIj57eyB0aHlMYWJlbFRleHQgfX08L3NwYW4+XG5AaWYgKGFwcGVuZFRlbXBsYXRlKSB7XG4gIDxkaXYgI2FwcGVuZCBjbGFzcz1cImlucHV0LWFwcGVuZFwiPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImFwcGVuZFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG59XG5cbjxuZy10ZW1wbGF0ZSAjZXllPlxuICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJsaW5rLXNlY29uZGFyeSBpbnB1dC1wYXNzd29yZC1pY29uXCIgKGNsaWNrKT1cInRvZ2dsZVBhc3N3b3JkVHlwZSgpXCI+XG4gICAgQGlmIChpc1Bhc3N3b3JkKHR5cGUpKSB7XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJleWVcIj48L3RoeS1pY29uPlxuICAgIH1cbiAgICBAaWYgKCFpc1Bhc3N3b3JkKHR5cGUpKSB7XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJleWUtaW52aXNpYmxlXCI+PC90aHktaWNvbj5cbiAgICB9XG4gIDwvYT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRXhELE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFRO0lBQ3BELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDdkMsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBRXRCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQztBQUU1Qjs7OztHQUlHO0FBY0gsTUFBTSxPQUFPLFFBQVE7SUFickI7UUFjWSxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEM7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQVMxQjs7V0FFRztRQUMwQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQXFCbEU7O1dBRUc7UUFDMEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUU5RDs7V0FFRztRQUNPLFVBQUssR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUVqRTs7V0FFRztRQUNPLFNBQUksR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQWN6RCxVQUFLLEdBQUcsTUFBTSxDQUFDO1FBTWYsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhCLHNCQUFpQixHQUFlLElBQUksQ0FBQztRQUVyQyxxQkFBZ0IsR0FBcUIsSUFBSSxDQUFDO0tBcURyRDtJQS9HRzs7O09BR0c7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFxREQsUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQzNDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1CO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVk7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDcEIsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUNqRSxDQUFDOzhHQW5JUSxRQUFRO2tHQUFSLFFBQVEsc0pBbUJHLHFCQUFxQixzR0F3QnJCLHFCQUFxQixxTUFyRDlCLENBQUMsbUNBQW1DLENBQUMsK1VDMUNwRCwwakNBb0NBLDRDRGNjLGdCQUFnQixvSkFBRSxpQkFBaUIsK0lBQUUscUJBQXFCLGlJQUFFLFdBQVcsK21CQUFFLE9BQU87OzJGQUVqRixRQUFRO2tCQWJwQixTQUFTOytCQUNJLFdBQVcsYUFFVixDQUFDLG1DQUFtQyxDQUFDLGlCQUNqQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNGLEtBQUssRUFBRSx3QkFBd0I7d0JBQy9CLDZCQUE2QixFQUFFLFNBQVM7d0JBQ3hDLGtCQUFrQixFQUFFLFVBQVU7cUJBQ2pDLGNBQ1csSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQzs4QkFTbEYsV0FBVztzQkFBbkIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS3VDLFlBQVk7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBT3ZDLE9BQU87c0JBRFYsS0FBSztnQkFRRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFLdUMsUUFBUTtzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFLakMsS0FBSztzQkFBZCxNQUFNO2dCQUtHLElBQUk7c0JBQWIsTUFBTTtnQkFLaUIsY0FBYztzQkFBckMsWUFBWTt1QkFBQyxRQUFRO2dCQUtHLGVBQWU7c0JBQXZDLFlBQVk7dUJBQUMsU0FBUztnQkFFYSxXQUFXO3NCQUE5QyxTQUFTO3VCQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBUaHlJbnB1dERpcmVjdGl2ZSwgVGh5SW5wdXRTaXplIH0gZnJvbSAnLi9pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuZXhwb3J0IGNvbnN0IENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5SW5wdXQpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbmNvbnN0IHBhc3N3b3JkID0gJ3Bhc3N3b3JkJztcblxuLyoqXG4gKiDlhoXpg6jpm4bmiJDovpPlhaXmoYbnu4Tku7bvvIzlu7rorq4gdGh5LWlucHV0LWdyb3VwIOWSjCB0aHlJbnB1dCDnu4TlkIjkvb/nlKhcbiAqIEBuYW1lIHRoeS1pbnB1dFxuICogQG9yZGVyIDUwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW0NVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktaW5wdXQgZm9ybS1jb250cm9sJyxcbiAgICAgICAgJ1tjbGFzcy5mb3JtLWNvbnRyb2wtYWN0aXZlXSc6ICdmb2N1c2VkJyxcbiAgICAgICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBUaHlJbnB1dERpcmVjdGl2ZSwgVGh5QXV0b2ZvY3VzRGlyZWN0aXZlLCBGb3Jtc01vZHVsZSwgVGh5SWNvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5SW5wdXQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgICBwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIC8qKlxuICAgICAqIFBsYWNlaG9sZGVyXG4gICAgICovXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhuWkp+Wwj1xuICAgICAqIEB0eXBlICd4cycgfCAnc20nIHwgJ21kJyB8ICdkZWZhdWx0JyB8ICdsZydcbiAgICAgKiBAZGVmYXVsdCBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogVGh5SW5wdXRTaXplO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm6Ieq5Yqo6IGa54SmXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5QXV0b2ZvY3VzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDovpPlhaXmoYbnsbvlnotcbiAgICAgKiBAdHlwZSAnbnVtYmVyJyB8ICdpbnB1dCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlUeXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSB0aHlUeXBlXG4gICAgICovXG4gICAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWlIExhYmVsIOaWh+acrFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUxhYmVsVGV4dDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5Y+q6K+7XG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgcmVhZG9ubHkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIGZvY3VzIOiBmueEpuS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBibHVyIOWkseeEpuS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOWQjue9ruaooeadv1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2FwcGVuZCcpIGFwcGVuZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICog5YmN572u5qih5p2/XG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncHJlcGVuZCcpIHByZXBlbmRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2V5ZScsIHsgc3RhdGljOiB0cnVlIH0pIGV5ZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgcHVibGljIF90eXBlID0gJ3RleHQnO1xuXG4gICAgcHVibGljIHZhbHVlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgc2hvd0xhYmVsOiBib29sZWFuO1xuXG4gICAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUGFzc3dvcmQodGhpcy50eXBlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kVGVtcGxhdGUgPSB0aGlzLmV5ZVRlbXBsYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBvbklucHV0Rm9jdXMoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2hvd0xhYmVsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb2N1cy5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbklucHV0Qmx1cihldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub25ibHVyKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vbmJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dMYWJlbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJsdXIuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgaXNQYXNzd29yZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gcGFzc3dvcmQ7XG4gICAgfVxuXG4gICAgdG9nZ2xlUGFzc3dvcmRUeXBlKCkge1xuICAgICAgICB0aGlzLnR5cGUgPSB0aGlzLmlzUGFzc3dvcmQodGhpcy50eXBlKSA/ICd0ZXh0JyA6ICdwYXNzd29yZCc7XG4gICAgfVxufVxuIiwiQGlmIChwcmVwZW5kVGVtcGxhdGUpIHtcbiAgPGRpdiAjcHJlcGVuZCBjbGFzcz1cImlucHV0LXByZXBlbmRcIj5cbiAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmVwZW5kVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbn1cbjxpbnB1dFxuICAjaW5wdXRcbiAgdGh5SW5wdXRcbiAgW3RoeVNpemVdPVwidGh5U2l6ZVwiXG4gIFt0aHlBdXRvZm9jdXNdPVwidGh5QXV0b2ZvY3VzXCJcbiAgW3R5cGVdPVwidHlwZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKClcIlxuICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgLz5cbjxzcGFuIGNsYXNzPVwiaW5wdXQtbGFiZWwgaW5wdXQtbGFiZWwte3sgdGh5U2l6ZSB9fVwiIFtjbGFzcy5hY3RpdmVdPVwic2hvd0xhYmVsXCI+e3sgdGh5TGFiZWxUZXh0IH19PC9zcGFuPlxuQGlmIChhcHBlbmRUZW1wbGF0ZSkge1xuICA8ZGl2ICNhcHBlbmQgY2xhc3M9XCJpbnB1dC1hcHBlbmRcIj5cbiAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhcHBlbmRUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGUgI2V5ZT5cbiAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwibGluay1zZWNvbmRhcnkgaW5wdXQtcGFzc3dvcmQtaWNvblwiIChjbGljayk9XCJ0b2dnbGVQYXNzd29yZFR5cGUoKVwiPlxuICAgIEBpZiAoaXNQYXNzd29yZCh0eXBlKSkge1xuICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiZXllXCI+PC90aHktaWNvbj5cbiAgICB9XG4gICAgQGlmICghaXNQYXNzd29yZCh0eXBlKSkge1xuICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiZXllLWludmlzaWJsZVwiPjwvdGh5LWljb24+XG4gICAgfVxuICA8L2E+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,8 +1,7 @@
1
- import { Directive, ElementRef, HostBinding, Input, Optional, Renderer2, Self } from '@angular/core';
1
+ import { Directive, ElementRef, HostBinding, Input, Renderer2, inject } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { useHostRenderer } from '@tethys/cdk/dom';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
5
  const inputGroupSizeMap = {
7
6
  xs: ['form-control-xs'],
8
7
  sm: ['form-control-sm'],
@@ -15,6 +14,14 @@ const inputGroupSizeMap = {
15
14
  * @order 10
16
15
  */
17
16
  export class ThyInputDirective {
17
+ constructor() {
18
+ this.elementRef = inject(ElementRef);
19
+ this.render = inject(Renderer2);
20
+ this.control = inject(NgControl, { optional: true, self: true });
21
+ this.isFormControl = true;
22
+ this.initialized = false;
23
+ this.hostRenderer = useHostRenderer();
24
+ }
18
25
  /**
19
26
  * 输入框大小
20
27
  * @type 'xs' | 'sm' | 'md' | 'default' | 'lg'
@@ -34,18 +41,10 @@ export class ThyInputDirective {
34
41
  get nativeElement() {
35
42
  return this.elementRef.nativeElement;
36
43
  }
37
- constructor(elementRef, render, control) {
38
- this.elementRef = elementRef;
39
- this.render = render;
40
- this.control = control;
41
- this.isFormControl = true;
42
- this.initialized = false;
43
- this.hostRenderer = useHostRenderer();
44
- }
45
44
  ngOnInit() {
46
45
  this.initialized = true;
47
46
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
48
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyInputDirective, isStandalone: true, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: { thySize: "thySize" }, host: { properties: { "class.form-control": "this.isFormControl" } }, exportAs: ["thyInput"], ngImport: i0 }); }
50
49
  }
51
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputDirective, decorators: [{
@@ -55,14 +54,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
55
54
  exportAs: 'thyInput',
56
55
  standalone: true
57
56
  }]
58
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.NgControl, decorators: [{
59
- type: Optional
60
- }, {
61
- type: Self
62
- }] }], propDecorators: { isFormControl: [{
57
+ }], propDecorators: { isFormControl: [{
63
58
  type: HostBinding,
64
59
  args: ['class.form-control']
65
60
  }], thySize: [{
66
61
  type: Input
67
62
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2lucHV0L2lucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUlsRCxNQUFNLGlCQUFpQixHQUFHO0lBQ3RCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ3ZCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ3ZCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ3ZCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0NBQzFCLENBQUM7QUFFRjs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLGlCQUFpQjtJQU8xQjs7OztPQUlHO0lBQ0gsSUFDSSxPQUFPLENBQUMsSUFBa0I7UUFDMUIsSUFBSSxJQUFJLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQ1ksVUFBc0IsRUFDdEIsTUFBaUIsRUFDRyxPQUFrQjtRQUZ0QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDRyxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBL0JmLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRWhELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGlCQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7SUE0QnRDLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQzs4R0FyQ1EsaUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBTDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVEQUF1RDtvQkFDakUsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBaUNRLFFBQVE7OzBCQUFJLElBQUk7eUNBL0JjLGFBQWE7c0JBQS9DLFdBQVc7dUJBQUMsb0JBQW9CO2dCQVk3QixPQUFPO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuXG5leHBvcnQgdHlwZSBUaHlJbnB1dFNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJyc7XG5cbmNvbnN0IGlucHV0R3JvdXBTaXplTWFwID0ge1xuICAgIHhzOiBbJ2Zvcm0tY29udHJvbC14cyddLFxuICAgIHNtOiBbJ2Zvcm0tY29udHJvbC1zbSddLFxuICAgIG1kOiBbJ2Zvcm0tY29udHJvbC1tZCddLFxuICAgIGxnOiBbJ2Zvcm0tY29udHJvbC1sZyddXG59O1xuXG4vKipcbiAqIOi+k+WFpeahhuaMh+S7pFxuICogQG5hbWUgdGh5SW5wdXRcbiAqIEBvcmRlciAxMFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2lucHV0W3RoeUlucHV0XSwgc2VsZWN0W3RoeUlucHV0XSwgdGV4dGFyZWFbdGh5SW5wdXRdJyxcbiAgICBleHBvcnRBczogJ3RoeUlucHV0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeUlucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZvcm0tY29udHJvbCcpIGlzRm9ybUNvbnRyb2wgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhuWkp+Wwj1xuICAgICAqIEB0eXBlICd4cycgfCAnc20nIHwgJ21kJyB8ICdkZWZhdWx0JyB8ICdsZydcbiAgICAgKiBAZGVmYXVsdCBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2l6ZShzaXplOiBUaHlJbnB1dFNpemUpIHtcbiAgICAgICAgaWYgKHNpemUgJiYgaW5wdXRHcm91cFNpemVNYXBbc2l6ZV0pIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKGlucHV0R3JvdXBTaXplTWFwW3NpemVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBuZ0NvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcjogUmVuZGVyZXIyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbn1cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2lucHV0L2lucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFJbEQsTUFBTSxpQkFBaUIsR0FBRztJQUN0QixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztJQUN2QixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztJQUN2QixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztJQUN2QixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztDQUMxQixDQUFDO0FBRUY7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFNWSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLFdBQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBRSxDQUFDO1FBRWxDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRWhELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGlCQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7S0EyQjVDO0lBekJHOzs7O09BSUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxJQUFrQjtRQUMxQixJQUFJLElBQUksSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7OEdBbkNRLGlCQUFpQjtrR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUw3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1REFBdUQ7b0JBQ2pFLFFBQVEsRUFBRSxVQUFVO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBTXNDLGFBQWE7c0JBQS9DLFdBQVc7dUJBQUMsb0JBQW9CO2dCQVk3QixPQUFPO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcblxuZXhwb3J0IHR5cGUgVGh5SW5wdXRTaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICcnO1xuXG5jb25zdCBpbnB1dEdyb3VwU2l6ZU1hcCA9IHtcbiAgICB4czogWydmb3JtLWNvbnRyb2wteHMnXSxcbiAgICBzbTogWydmb3JtLWNvbnRyb2wtc20nXSxcbiAgICBtZDogWydmb3JtLWNvbnRyb2wtbWQnXSxcbiAgICBsZzogWydmb3JtLWNvbnRyb2wtbGcnXVxufTtcblxuLyoqXG4gKiDovpPlhaXmoYbmjIfku6RcbiAqIEBuYW1lIHRoeUlucHV0XG4gKiBAb3JkZXIgMTBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0aHlJbnB1dF0sIHNlbGVjdFt0aHlJbnB1dF0sIHRleHRhcmVhW3RoeUlucHV0XScsXG4gICAgZXhwb3J0QXM6ICd0aHlJbnB1dCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVuZGVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgcHJpdmF0ZSBjb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KSE7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZvcm0tY29udHJvbCcpIGlzRm9ybUNvbnRyb2wgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhuWkp+Wwj1xuICAgICAqIEB0eXBlICd4cycgfCAnc20nIHwgJ21kJyB8ICdkZWZhdWx0JyB8ICdsZydcbiAgICAgKiBAZGVmYXVsdCBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2l6ZShzaXplOiBUaHlJbnB1dFNpemUpIHtcbiAgICAgICAgaWYgKHNpemUgJiYgaW5wdXRHcm91cFNpemVNYXBbc2l6ZV0pIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKGlucHV0R3JvdXBTaXplTWFwW3NpemVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBuZ0NvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxufVxuIl19
@@ -4,7 +4,7 @@ import { ThyIcon } from 'ngx-tethys/icon';
4
4
  import { ThyInputDirective } from 'ngx-tethys/input';
5
5
  import { ThyAutofocusDirective } from 'ngx-tethys/shared';
6
6
  import { coerceBooleanProperty, DOWN_ARROW, ENTER, isFloat, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';
7
- import { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, numberAttribute, Output, ViewChild } from '@angular/core';
7
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, numberAttribute, Output, ViewChild, inject } from '@angular/core';
8
8
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/forms";
@@ -47,9 +47,9 @@ export class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
47
47
  get thyMin() {
48
48
  return this.innerMin;
49
49
  }
50
- constructor(cdr) {
50
+ constructor() {
51
51
  super();
52
- this.cdr = cdr;
52
+ this.cdr = inject(ChangeDetectorRef);
53
53
  this.hostFocusControl = useHostFocusControl();
54
54
  this.disabledUp = false;
55
55
  this.disabledDown = false;
@@ -304,7 +304,7 @@ export class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
304
304
  ngOnDestroy() {
305
305
  this.hostFocusControl.destroy();
306
306
  }
307
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputNumber, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
307
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyInputNumber, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
308
308
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyInputNumber, isStandalone: true, selector: "thy-input-number", inputs: { thyAutoFocus: ["thyAutoFocus", "thyAutoFocus", coerceBooleanProperty], thyPlaceholder: "thyPlaceholder", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyMax: "thyMax", thyMin: "thyMin", thyStep: ["thyStep", "thyStep", numberAttribute], thyStepDelay: ["thyStepDelay", "thyStepDelay", numberAttribute], thySize: "thySize", thyPrecision: "thyPrecision", thySuffix: "thySuffix" }, outputs: { thyBlur: "thyBlur", thyFocus: "thyFocus", thyStepChange: "thyStepChange" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-input-number" }, providers: [
309
309
  {
310
310
  provide: NG_VALUE_ACCESSOR,
@@ -325,7 +325,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
325
325
  class: 'thy-input-number',
326
326
  '[attr.tabindex]': 'tabIndex'
327
327
  }, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n" }]
328
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { inputElement: [{
328
+ }], ctorParameters: () => [], propDecorators: { inputElement: [{
329
329
  type: ViewChild,
330
330
  args: ['input', { static: true }]
331
331
  }], thyAutoFocus: [{
@@ -359,4 +359,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
359
359
  }], thyStepChange: [{
360
360
  type: Output
361
361
  }] } });
362
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0gsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUl0RixJQUFLLElBR0o7QUFIRCxXQUFLLElBQUk7SUFDTCwyQkFBRSxDQUFBO0lBQ0YsK0JBQUksQ0FBQTtBQUNSLENBQUMsRUFISSxJQUFJLEtBQUosSUFBSSxRQUdSO0FBRUQ7Ozs7R0FJRztBQWtCSCxNQUFNLE9BQU8sY0FDVCxTQUFRLHlDQUF5QztJQW9DakQ7OztPQUdHO0lBQ0gsSUFBYSxNQUFNLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3hELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMzQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBYSxNQUFNLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3hELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM3QyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBa0RELFlBQW9CLEdBQXNCO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRFEsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE3R2xDLHFCQUFnQixHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFNakQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQVF6Qjs7V0FFRztRQUNNLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBd0NyQzs7V0FFRztRQUNvQyxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRW5EOzs7V0FHRztRQUNvQyxpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQWtCMUQ7O1dBRUc7UUFDTyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUU5Qzs7V0FFRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBRS9DOztXQUVHO1FBQ08sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQUVwRSxhQUFRLEdBQVcsUUFBUSxDQUFDO1FBRTVCLGFBQVEsR0FBVyxDQUFDLFFBQVEsQ0FBQztJQU1yQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLENBQUMsTUFBbUIsRUFBRSxFQUFFO1lBQ3pELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuQixPQUFPO1lBQ1gsQ0FBQztZQUVELElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzVDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3pELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDMUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXNCO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQXNCO1FBQ25DLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDNUMsSUFBSSxLQUFLLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQzdCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3ZELENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxHQUFHLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsQ0FBZ0I7UUFDdEIsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDWCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQzthQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDQSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLENBQUMsSUFBVSxFQUFFLENBQTZCO1FBQzFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFvQixDQUFDO1FBQ3hDLElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25CLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUM7YUFBTSxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFELEdBQUcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFvQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUE2QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2hCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxlQUFlLEdBQUcsS0FBSyxHQUFHLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pILE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDbEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxlQUFlLEdBQUcsS0FBSyxHQUFHLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pILE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQXNCO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDN0IsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFlLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxXQUE0QjtRQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3RCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyx3Q0FBd0M7UUFDeEMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBQ0QsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLGVBQWU7UUFDZixJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxFQUFFLENBQUMsQ0FBNkI7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLENBQUMsQ0FBNkI7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBc0I7UUFDakMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDM0UsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWE7UUFDaEIsT0FBTyxLQUFLO2FBQ1AsSUFBSSxFQUFFO2FBQ04sT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7YUFDbEIsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7YUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQXNCO1FBQ3ZDLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFDRCxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQWUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFLLEdBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUssR0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBb0I7UUFDM0IsT0FBTyxLQUFLLENBQUMsR0FBYSxDQUFDLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEksQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFvQjtRQUN6QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLEdBQWEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNwRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDdkIsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksdURBQXVELENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBeFdRLGNBQWM7a0dBQWQsY0FBYyw2R0F3QkgscUJBQXFCLGlGQVdyQixxQkFBcUIsdUVBcUNyQixlQUFlLGtEQU1mLGVBQWUsNFFBNUZ4QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO2dCQUM3QyxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osMkxDOUNMLGlxQ0FzQ0EsNENEVWMsT0FBTyxzTUFBRSxpQkFBaUIsK0lBQUUscUJBQXFCLGlJQUFFLFdBQVc7OzJGQU0vRCxjQUFjO2tCQWpCMUIsU0FBUzsrQkFDSSxrQkFBa0IsYUFFakI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDOzRCQUM3QyxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixjQUNXLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxRQUNyRzt3QkFDRixLQUFLLEVBQUUsa0JBQWtCO3dCQUN6QixpQkFBaUIsRUFBRSxVQUFVO3FCQUNoQztzRkFNcUMsWUFBWTtzQkFBakQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQW9CUyxZQUFZO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQUtsQyxjQUFjO3NCQUF0QixLQUFLO2dCQU11QyxXQUFXO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU05QixNQUFNO3NCQUFsQixLQUFLO2dCQWdCTyxNQUFNO3NCQUFsQixLQUFLO2dCQWVpQyxPQUFPO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFNRSxZQUFZO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFNNUIsT0FBTztzQkFBZixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLSSxPQUFPO3NCQUFoQixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluLCB1c2VIb3N0Rm9jdXNDb250cm9sIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeU1heERpcmVjdGl2ZSwgVGh5TWluRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9mb3JtJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGh5SW5wdXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0JztcbmltcG9ydCB7IFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgRE9XTl9BUlJPVywgRU5URVIsIGlzRmxvYXQsIGlzTnVtYmVyLCBpc1VuZGVmaW5lZE9yTnVsbCwgVVBfQVJST1cgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5pbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbnR5cGUgSW5wdXRTaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICcnO1xuXG5lbnVtIFR5cGUge1xuICAgIHVwLFxuICAgIGRvd25cbn1cblxuLyoqXG4gKiDmlbDlrZfovpPlhaXmoYZcbiAqIEBuYW1lIHRoeS1pbnB1dC1udW1iZXJcbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1pbnB1dC1udW1iZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeUlucHV0TnVtYmVyKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUljb24sIFRoeUlucHV0RGlyZWN0aXZlLCBUaHlBdXRvZm9jdXNEaXJlY3RpdmUsIEZvcm1zTW9kdWxlLCBUaHlNaW5EaXJlY3RpdmUsIFRoeU1heERpcmVjdGl2ZV0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1pbnB1dC1udW1iZXInLFxuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJ3RhYkluZGV4J1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGh5SW5wdXROdW1iZXJcbiAgICBleHRlbmRzIFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluXG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPGFueT47XG5cbiAgICBwcml2YXRlIGF1dG9TdGVwVGltZXI6IGFueTtcblxuICAgIHByaXZhdGUgaG9zdEZvY3VzQ29udHJvbCA9IHVzZUhvc3RGb2N1c0NvbnRyb2woKTtcblxuICAgIHZhbGlkVmFsdWU6IG51bWJlciB8IHN0cmluZztcblxuICAgIGRpc3BsYXlWYWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgZGlzYWJsZWRVcCA9IGZhbHNlO1xuXG4gICAgZGlzYWJsZWREb3duID0gZmFsc2U7XG5cbiAgICBhY3RpdmVWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKboh6rliqjogZrnhKZcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUF1dG9Gb2N1czogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhueahHBsYWNlaG9sZGVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55SoXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOacgOWkp+WAvFxuICAgICAqIEBkZWZhdWx0IEluZmluaXR5XG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeU1heCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaW5uZXJNYXggPSBpc051bWJlcih2YWx1ZSkgPyB2YWx1ZSA6IHRoaXMuaW5uZXJNYXg7XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlWYWx1ZSB8fCB0aGlzLmRpc3BsYXlWYWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRVcCA9IHZhbCA+PSB0aGlzLmlubmVyTWF4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHRoeU1heCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJNYXg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pyA5bCP5YC8XG4gICAgICogQGRlZmF1bHQgLUluZmluaXR5XG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeU1pbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaW5uZXJNaW4gPSBpc051bWJlcih2YWx1ZSkgPyB2YWx1ZSA6IHRoaXMuaW5uZXJNaW47XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlWYWx1ZSB8fCB0aGlzLmRpc3BsYXlWYWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWREb3duID0gdmFsIDw9IHRoaXMuaW5uZXJNaW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5TWluKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lck1pbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmr4/mrKHmlLnlj5jmraXmlbDvvIzlj6/ku6XkuLrlsI/mlbBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlTdGVwID0gMTtcblxuICAgIC8qKlxuICAgICAqIOaUueWPmOatpeaVsOaXtueahOW7tui/n+avq+enkuaVsO+8jOWAvOi2iuWwj+WPmOWMlueahOmAn+W6pui2iuW/q1xuICAgICAqIEBkZWZhdWx0IDMwMFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeVN0ZXBEZWxheSA9IDMwMDtcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhuWkp+Wwj1xuICAgICAqIEB0eXBlIHhzIHwgc20gfCBtZCB8IGxnXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogSW5wdXRTaXplO1xuXG4gICAgLyoqXG4gICAgICog5pWw5YC857K+5bqmXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UHJlY2lzaW9uOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDmlbDlgLzlkI7nvIBcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTdWZmaXg6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOeEpueCueWkseWOu+S6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOeEpueCuea/gOa0u+S6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDkuIrkuIvnrq3lpLTngrnlh7vkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5U3RlcENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB2YWx1ZTogbnVtYmVyOyB0eXBlOiBUeXBlIH0+KCk7XG5cbiAgICBwcml2YXRlIGlubmVyTWF4OiBudW1iZXIgPSBJbmZpbml0eTtcblxuICAgIHByaXZhdGUgaW5uZXJNaW46IG51bWJlciA9IC1JbmZpbml0eTtcblxuICAgIHByaXZhdGUgaXNGb2N1c2VkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeURpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5ob3N0Rm9jdXNDb250cm9sLmZvY3VzQ2hhbmdlZCA9IChvcmlnaW46IEZvY3VzT3JpZ2luKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9yaWdpbikge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGh5Qmx1ci5lbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMudGh5U3VmZml4ICYmICFjaGFuZ2VzLnRoeVN1ZmZpeC5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHRoaXMudmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkVmFsdWUodmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgX3ZhbHVlID0gdGhpcy5nZXRDdXJyZW50VmFsaWRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZShfdmFsdWUpO1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUoX3ZhbHVlKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmFsaWRWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTm90VmFsaWQodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkVmFsdWUgPSAnJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbGlkVmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc2FibGVkVXAgPSB0aGlzLmRpc2FibGVkRG93biA9IGZhbHNlO1xuICAgICAgICBpZiAodmFsdWUgfHwgdmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodmFsID49IHRoaXMudGh5TWF4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFVwID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWwgPD0gdGhpcy50aHlNaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkRG93biA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyc2VWYWx1ZSA9IHRoaXMucGFyc2VyKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaXNJbnB1dE51bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gcGFyc2VWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBwYXJzZVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHBhcnNlVmFsdWUpO1xuICAgICAgICBpZiAoYCR7dGhpcy52YWxpZFZhbHVlfWAgIT09IGAke3ZhbGlkVmFsdWV9YCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKHZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dEZvY3VzKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVWYWx1ZSA9IHRoaXMucGFyc2VyKHRoaXMuZGlzcGxheVZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRoeUZvY3VzLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gVVBfQVJST1cpIHtcbiAgICAgICAgICAgIHRoaXMudXAoZSk7XG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleUNvZGUgPT09IERPV05fQVJST1cpIHtcbiAgICAgICAgICAgIHRoaXMuZG93bihlKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RvcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b1N0ZXBUaW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b1N0ZXBUaW1lcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnRvTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICB9XG5cbiAgICBzdGVwKHR5cGU6IFR5cGUsIGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbGlkVmFsdWUgYXMgbnVtYmVyO1xuICAgICAgICBsZXQgdmFsO1xuICAgICAgICBpZiAodHlwZSA9PT0gVHlwZS51cCkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy51cFN0ZXAodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFR5cGUuZG93bikge1xuICAgICAgICAgICAgdmFsID0gdGhpcy5kb3duU3RlcCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0T2ZSYW5nZSA9IHZhbCA+IHRoaXMudGh5TWF4IHx8IHZhbCA8IHRoaXMudGh5TWluO1xuICAgICAgICB2YWwgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHZhbCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZSh2YWwpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4odGhpcy52YWxpZFZhbHVlKTtcbiAgICAgICAgdGhpcy50aHlTdGVwQ2hhbmdlLmVtaXQoeyB2YWx1ZTogdGhpcy52YWxpZFZhbHVlIGFzIG51bWJlciwgdHlwZSB9KTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHZhbCk7XG4gICAgICAgIGlmIChvdXRPZlJhbmdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdXRvU3RlcFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAodGhpc1tUeXBlW3R5cGVdXSBhcyAoZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpID0+IHZvaWQpKGUpO1xuICAgICAgICB9LCB0aGlzLnRoeVN0ZXBEZWxheSk7XG4gICAgfVxuXG4gICAgdXBTdGVwKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwcmVjaXNpb25GYWN0b3IgPSB0aGlzLmdldFByZWNpc2lvbkZhY3Rvcih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IHRoaXMuZ2V0TWF4UHJlY2lzaW9uKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKChwcmVjaXNpb25GYWN0b3IgKiB2YWx1ZSArIHByZWNpc2lvbkZhY3RvciAqIHRoaXMudGh5U3RlcCkgLyBwcmVjaXNpb25GYWN0b3IpLnRvRml4ZWQocHJlY2lzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIocmVzdWx0KTtcbiAgICB9XG5cbiAgICBkb3duU3RlcCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uRmFjdG9yID0gdGhpcy5nZXRQcmVjaXNpb25GYWN0b3IodmFsdWUpO1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSBNYXRoLmFicyh0aGlzLmdldE1heFByZWNpc2lvbih2YWx1ZSkpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSAoKHByZWNpc2lvbkZhY3RvciAqIHZhbHVlIC0gcHJlY2lzaW9uRmFjdG9yICogdGhpcy50aHlTdGVwKSAvIHByZWNpc2lvbkZhY3RvcikudG9GaXhlZChwcmVjaXNpb24pO1xuICAgICAgICByZXR1cm4gdGhpcy50b051bWJlcihyZXN1bHQpO1xuICAgIH1cblxuICAgIGdldE1heFByZWNpc2lvbih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbCh0aGlzLnRoeVByZWNpc2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeVByZWNpc2lvbjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGVwUHJlY2lzaW9uID0gdGhpcy5nZXRQcmVjaXNpb24odGhpcy50aHlTdGVwKTtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlUHJlY2lzaW9uID0gdGhpcy5nZXRQcmVjaXNpb24odmFsdWUgYXMgbnVtYmVyKTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ZXBQcmVjaXNpb247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KGN1cnJlbnRWYWx1ZVByZWNpc2lvbiwgc3RlcFByZWNpc2lvbik7XG4gICAgfVxuXG4gICAgZ2V0UHJlY2lzaW9uRmFjdG9yKGFjdGl2ZVZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSB0aGlzLmdldE1heFByZWNpc2lvbihhY3RpdmVWYWx1ZSk7XG4gICAgICAgIHJldHVybiBNYXRoLnBvdygxMCwgcHJlY2lzaW9uKTtcbiAgICB9XG5cbiAgICBnZXRQcmVjaXNpb24odmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgLy8gMC4wMDAwMDAwMDA0LnRvU3RyaW5nKCkgPSA0ZTEwICA9PiAxMFxuICAgICAgICBpZiAodmFsdWVTdHJpbmcuaW5kZXhPZignZS0nKSA+PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQodmFsdWVTdHJpbmcuc2xpY2UodmFsdWVTdHJpbmcuaW5kZXhPZignZS0nKSArIDIpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHByZWNpc2lvbiA9IDA7XG4gICAgICAgIC8vIDEuMjIyMiA9PiAgNFxuICAgICAgICBpZiAodmFsdWVTdHJpbmcuaW5kZXhPZignLicpID49IDApIHtcbiAgICAgICAgICAgIHByZWNpc2lvbiA9IHZhbHVlU3RyaW5nLmxlbmd0aCAtIHZhbHVlU3RyaW5nLmluZGV4T2YoJy4nKSAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZWNpc2lvbjtcbiAgICB9XG5cbiAgICB1cChlOiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuc3RlcChUeXBlLnVwLCBlKTtcbiAgICB9XG5cbiAgICBkb3duKGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5zdGVwKFR5cGUuZG93biwgZSk7XG4gICAgfVxuXG4gICAgZm9ybWF0dGVyVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXJzZVZhbHVlID0gdGhpcy5wYXJzZXIoYCR7dmFsdWV9YCk7XG4gICAgICAgIGlmIChwYXJzZVZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aHlTdWZmaXggPyBgJHtwYXJzZVZhbHVlfSAke3RoaXMudGh5U3VmZml4fWAgOiBwYXJzZVZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFyc2VyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgv44CCL2csICcuJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXlxcd1xcLi1dKy9nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKHRoaXMudGh5U3VmZml4LCAnJyk7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbGlkVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB8IHN0cmluZyB7XG4gICAgICAgIGxldCB2YWwgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCBpc1VuZGVmaW5lZE9yTnVsbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICB2YWwgPSBwYXJzZUZsb2F0KHZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgIGlmICh0aGlzLmlzTm90VmFsaWQodmFsKSkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy52YWxpZFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICgodmFsIGFzIG51bWJlcikgPCB0aGlzLnRoeU1pbikge1xuICAgICAgICAgICAgdmFsID0gdGhpcy50aHlNaW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh2YWwgYXMgbnVtYmVyKSA+IHRoaXMudGh5TWF4KSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLnRoeU1heDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnRvTnVtYmVyKHZhbCk7XG4gICAgfVxuXG4gICAgaXNOb3RWYWxpZChudW06IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYU4obnVtIGFzIG51bWJlcikgfHwgbnVtID09PSAnJyB8fCBudW0gPT09IG51bGwgfHwgISEobnVtICYmIG51bS50b1N0cmluZygpLmluZGV4T2YoJy4nKSA9PT0gbnVtLnRvU3RyaW5nKCkubGVuZ3RoIC0gMSk7XG4gICAgfVxuXG4gICAgdG9OdW1iZXIobnVtOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5pc05vdFZhbGlkKG51bSkpIHtcbiAgICAgICAgICAgIHJldHVybiBudW0gYXMgbnVtYmVyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG51bVN0ciA9IFN0cmluZyhudW0pO1xuICAgICAgICBpZiAobnVtU3RyLmluZGV4T2YoJy4nKSA+PSAwICYmICFpc1VuZGVmaW5lZE9yTnVsbCh0aGlzLnRoeVByZWNpc2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoTnVtYmVyKG51bSkudG9GaXhlZCh0aGlzLnRoeVByZWNpc2lvbikpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBOdW1iZXIobnVtKTtcbiAgICB9XG5cbiAgICBpc0lucHV0TnVtYmVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGlzRmxvYXQodmFsdWUpIHx8IC9eWy0rRWVdJHxeKFstKy5dP1swLTldKSooKFsuXXxbLmVFXSk/W2VFXT9bKy1dPyk/JHxeJC8udGVzdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuaG9zdEZvY3VzQ29udHJvbC5kZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LW51bWJlci1oYW5kbGVyLXdyYXBcIiBbY2xhc3MuaW5wdXQtbnVtYmVyLWRpc2FibGVkXT1cInRoeURpc2FibGVkXCI+XG4gIDxzcGFuXG4gICAgdW5zZWxlY3RhYmxlPVwidW5zZWxlY3RhYmxlXCJcbiAgICBjbGFzcz1cImlucHV0LW51bWJlci1oYW5kbGVyIGlucHV0LW51bWJlci1oYW5kbGVyLXVwXCJcbiAgICAobW91c2Vkb3duKT1cInVwKCRldmVudClcIlxuICAgIChtb3VzZXVwKT1cInN0b3AoKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcCgpXCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRVcFwiPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLXVwXCI+PC90aHktaWNvbj5cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgIHVuc2VsZWN0YWJsZT1cInVuc2VsZWN0YWJsZVwiXG4gICAgY2xhc3M9XCJpbnB1dC1udW1iZXItaGFuZGxlciBpbnB1dC1udW1iZXItaGFuZGxlci1kb3duXCJcbiAgICAobW91c2Vkb3duKT1cImRvd24oJGV2ZW50KVwiXG4gICAgKG1vdXNldXApPVwic3RvcCgpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJzdG9wKClcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZERvd25cIj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3duXCI+PC90aHktaWNvbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG48aW5wdXRcbiAgdGh5SW5wdXRcbiAgI2lucHV0XG4gIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gIGNsYXNzPVwiaW5wdXQtbnVtYmVyLWlucHV0IGZvcm0tY29udHJvbFwiXG4gIFt0aHlTaXplXT1cInRoeVNpemVcIlxuICBbdGh5QXV0b2ZvY3VzXT1cInRoeUF1dG9Gb2N1c1wiXG4gIFtkaXNhYmxlZF09XCJ0aHlEaXNhYmxlZFwiXG4gIFthdHRyLm1pbl09XCJ0aHlNaW5cIlxuICBbYXR0ci5tYXhdPVwidGh5TWF4XCJcbiAgW3BsYWNlaG9sZGVyXT1cInRoeVBsYWNlaG9sZGVyXCJcbiAgW2F0dHIuc3RlcF09XCJ0aHlTdGVwXCJcbiAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAoa2V5dXApPVwic3RvcCgpXCJcbiAgWyhuZ01vZGVsKV09XCJkaXNwbGF5VmFsdWVcIlxuICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICB0YWJpbmRleD1cIi0xXCIgLz5cbiJdfQ==
362
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0gsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJdEYsSUFBSyxJQUdKO0FBSEQsV0FBSyxJQUFJO0lBQ0wsMkJBQUUsQ0FBQTtJQUNGLCtCQUFJLENBQUE7QUFDUixDQUFDLEVBSEksSUFBSSxLQUFKLElBQUksUUFHUjtBQUVEOzs7O0dBSUc7QUFrQkgsTUFBTSxPQUFPLGNBQ1QsU0FBUSx5Q0FBeUM7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QkFBbEIsS0FBSztnQkFlaUMsT0FBTztzQkFBN0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBTUUsWUFBWTtzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBTTVCLE9BQU87c0JBQWYsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0ksT0FBTztzQkFBaEIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUtHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJJbmRleERpc2FibGVkQ29udHJvbFZhbHVlQWNjZXNzb3JNaXhpbiwgdXNlSG9zdEZvY3VzQ29udHJvbCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaHlNYXhEaXJlY3RpdmUsIFRoeU1pbkRpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvZm9ybSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBUaHlBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIERPV05fQVJST1csIEVOVEVSLCBpc0Zsb2F0LCBpc051bWJlciwgaXNVbmRlZmluZWRPck51bGwsIFVQX0FSUk9XIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuaW1wb3J0IHsgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxudHlwZSBJbnB1dFNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJyc7XG5cbmVudW0gVHlwZSB7XG4gICAgdXAsXG4gICAgZG93blxufVxuXG4vKipcbiAqIOaVsOWtl+i+k+WFpeahhlxuICogQG5hbWUgdGh5LWlucHV0LW51bWJlclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWlucHV0LW51bWJlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5SW5wdXROdW1iZXIpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5SWNvbiwgVGh5SW5wdXREaXJlY3RpdmUsIFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSwgRm9ybXNNb2R1bGUsIFRoeU1pbkRpcmVjdGl2ZSwgVGh5TWF4RGlyZWN0aXZlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LWlucHV0LW51bWJlcicsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAndGFiSW5kZXgnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUaHlJbnB1dE51bWJlclxuICAgIGV4dGVuZHMgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW5cbiAgICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PjtcblxuICAgIHByaXZhdGUgYXV0b1N0ZXBUaW1lcjogYW55O1xuXG4gICAgcHJpdmF0ZSBob3N0Rm9jdXNDb250cm9sID0gdXNlSG9zdEZvY3VzQ29udHJvbCgpO1xuXG4gICAgdmFsaWRWYWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgZGlzcGxheVZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICBkaXNhYmxlZFVwID0gZmFsc2U7XG5cbiAgICBkaXNhYmxlZERvd24gPSBmYWxzZTtcblxuICAgIGFjdGl2ZVZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuiHquWKqOiBmueEplxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5QXV0b0ZvY3VzOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG55qEcGxhY2Vob2xkZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKhcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5pyA5aSn5YC8XG4gICAgICogQGRlZmF1bHQgSW5maW5pdHlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TWF4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pbm5lck1heCA9IGlzTnVtYmVyKHZhbHVlKSA/IHZhbHVlIDogdGhpcy5pbm5lck1heDtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlIHx8IHRoaXMuZGlzcGxheVZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFVwID0gdmFsID49IHRoaXMuaW5uZXJNYXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5TWF4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lck1heDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmnIDlsI/lgLxcbiAgICAgKiBAZGVmYXVsdCAtSW5maW5pdHlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TWluKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pbm5lck1pbiA9IGlzTnVtYmVyKHZhbHVlKSA/IHZhbHVlIDogdGhpcy5pbm5lck1pbjtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlIHx8IHRoaXMuZGlzcGxheVZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZERvd24gPSB2YWwgPD0gdGhpcy5pbm5lck1pbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB0aHlNaW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyTWluO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOavj+asoeaUueWPmOatpeaVsO+8jOWPr+S7peS4uuWwj+aVsFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeVN0ZXAgPSAxO1xuXG4gICAgLyoqXG4gICAgICog5pS55Y+Y5q2l5pWw5pe255qE5bu26L+f5q+r56eS5pWw77yM5YC86LaK5bCP5Y+Y5YyW55qE6YCf5bqm6LaK5b+rXG4gICAgICogQGRlZmF1bHQgMzAwXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5U3RlcERlbGF5ID0gMzAwO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBJbnB1dFNpemU7XG5cbiAgICAvKipcbiAgICAgKiDmlbDlgLznsr7luqZcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQcmVjaXNpb246IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOaVsOWAvOWQjue8gFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVN1ZmZpeDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog54Sm54K55aSx5Y675LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog54Sm54K55r+A5rS75LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOS4iuS4i+eureWktOeCueWHu+S6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlTdGVwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBudW1iZXI7IHR5cGU6IFR5cGUgfT4oKTtcblxuICAgIHByaXZhdGUgaW5uZXJNYXg6IG51bWJlciA9IEluZmluaXR5O1xuXG4gICAgcHJpdmF0ZSBpbm5lck1pbjogbnVtYmVyID0gLUluZmluaXR5O1xuXG4gICAgcHJpdmF0ZSBpc0ZvY3VzZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGh5RGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmhvc3RGb2N1c0NvbnRyb2wuZm9jdXNDaGFuZ2VkID0gKG9yaWdpbjogRm9jdXNPcmlnaW4pID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzRm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHRoaXMudmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aHlCbHVyLmVtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy50aHlTdWZmaXggJiYgIWNoYW5nZXMudGh5U3VmZml4LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0Q3VycmVudFZhbGlkVmFsdWUodGhpcy52YWxpZFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZSh2YWxpZFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh2YWxpZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBfdmFsdWUgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKF92YWx1ZSk7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZShfdmFsdWUpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICB1cGRhdGVWYWxpZFZhbHVlKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOb3RWYWxpZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRWYWx1ZSA9ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudmFsaWRWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzYWJsZWRVcCA9IHRoaXMuZGlzYWJsZWREb3duID0gZmFsc2U7XG4gICAgICAgIGlmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgICAgIGlmICh2YWwgPj0gdGhpcy50aHlNYXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkVXAgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbCA8PSB0aGlzLnRoeU1pbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWREb3duID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJzZVZhbHVlID0gdGhpcy5wYXJzZXIodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5pc0lucHV0TnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBwYXJzZVZhbHVlO1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHBhcnNlVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0Q3VycmVudFZhbGlkVmFsdWUocGFyc2VWYWx1ZSk7XG4gICAgICAgIGlmIChgJHt0aGlzLnZhbGlkVmFsdWV9YCAhPT0gYCR7dmFsaWRWYWx1ZX1gKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkVmFsdWUodmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4odmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbklucHV0Rm9jdXMoZXZlbnQ/OiBFdmVudCkge1xuICAgICAgICB0aGlzLmFjdGl2ZVZhbHVlID0gdGhpcy5wYXJzZXIodGhpcy5kaXNwbGF5VmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMudGh5Rm9jdXMuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZS5rZXlDb2RlID09PSBVUF9BUlJPVykge1xuICAgICAgICAgICAgdGhpcy51cChlKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PT0gRE9XTl9BUlJPVykge1xuICAgICAgICAgICAgdGhpcy5kb3duKGUpO1xuICAgICAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHRoaXMudmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvU3RlcFRpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvU3RlcFRpbWVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMudG9OdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgIH1cblxuICAgIHN0ZXAodHlwZTogVHlwZSwgZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMudGh5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsaWRWYWx1ZSBhcyBudW1iZXI7XG4gICAgICAgIGxldCB2YWw7XG4gICAgICAgIGlmICh0eXBlID09PSBUeXBlLnVwKSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLnVwU3RlcCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVHlwZS5kb3duKSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLmRvd25TdGVwKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvdXRPZlJhbmdlID0gdmFsID4gdGhpcy50aHlNYXggfHwgdmFsIDwgdGhpcy50aHlNaW47XG4gICAgICAgIHZhbCA9IHRoaXMuZ2V0Q3VycmVudFZhbGlkVmFsdWUodmFsKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKHZhbCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2VGbih0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB0aGlzLnRoeVN0ZXBDaGFuZ2UuZW1pdCh7IHZhbHVlOiB0aGlzLnZhbGlkVmFsdWUgYXMgbnVtYmVyLCB0eXBlIH0pO1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUodmFsKTtcbiAgICAgICAgaWYgKG91dE9mUmFuZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF1dG9TdGVwVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICh0aGlzW1R5cGVbdHlwZV1dIGFzIChlOiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkgPT4gdm9pZCkoZSk7XG4gICAgICAgIH0sIHRoaXMudGh5U3RlcERlbGF5KTtcbiAgICB9XG5cbiAgICB1cFN0ZXAodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbkZhY3RvciA9IHRoaXMuZ2V0UHJlY2lzaW9uRmFjdG9yKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gdGhpcy5nZXRNYXhQcmVjaXNpb24odmFsdWUpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSAoKHByZWNpc2lvbkZhY3RvciAqIHZhbHVlICsgcHJlY2lzaW9uRmFjdG9yICogdGhpcy50aHlTdGVwKSAvIHByZWNpc2lvbkZhY3RvcikudG9GaXhlZChwcmVjaXNpb24pO1xuICAgICAgICByZXR1cm4gdGhpcy50b051bWJlcihyZXN1bHQpO1xuICAgIH1cblxuICAgIGRvd25TdGVwKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwcmVjaXNpb25GYWN0b3IgPSB0aGlzLmdldFByZWNpc2lvbkZhY3Rvcih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IE1hdGguYWJzKHRoaXMuZ2V0TWF4UHJlY2lzaW9uKHZhbHVlKSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9ICgocHJlY2lzaW9uRmFjdG9yICogdmFsdWUgLSBwcmVjaXNpb25GYWN0b3IgKiB0aGlzLnRoeVN0ZXApIC8gcHJlY2lzaW9uRmFjdG9yKS50b0ZpeGVkKHByZWNpc2lvbik7XG4gICAgICAgIHJldHVybiB0aGlzLnRvTnVtYmVyKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgZ2V0TWF4UHJlY2lzaW9uKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKHRoaXMudGh5UHJlY2lzaW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGh5UHJlY2lzaW9uO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ZXBQcmVjaXNpb24gPSB0aGlzLmdldFByZWNpc2lvbih0aGlzLnRoeVN0ZXApO1xuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWVQcmVjaXNpb24gPSB0aGlzLmdldFByZWNpc2lvbih2YWx1ZSBhcyBudW1iZXIpO1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RlcFByZWNpc2lvbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gTWF0aC5tYXgoY3VycmVudFZhbHVlUHJlY2lzaW9uLCBzdGVwUHJlY2lzaW9uKTtcbiAgICB9XG5cbiAgICBnZXRQcmVjaXNpb25GYWN0b3IoYWN0aXZlVmFsdWU6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IHRoaXMuZ2V0TWF4UHJlY2lzaW9uKGFjdGl2ZVZhbHVlKTtcbiAgICAgICAgcmV0dXJuIE1hdGgucG93KDEwLCBwcmVjaXNpb24pO1xuICAgIH1cblxuICAgIGdldFByZWNpc2lvbih2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICAvLyAwLjAwMDAwMDAwMDQudG9TdHJpbmcoKSA9IDRlMTAgID0+IDEwXG4gICAgICAgIGlmICh2YWx1ZVN0cmluZy5pbmRleE9mKCdlLScpID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZVN0cmluZy5zbGljZSh2YWx1ZVN0cmluZy5pbmRleE9mKCdlLScpICsgMiksIDEwKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcHJlY2lzaW9uID0gMDtcbiAgICAgICAgLy8gMS4yMjIyID0+ICA0XG4gICAgICAgIGlmICh2YWx1ZVN0cmluZy5pbmRleE9mKCcuJykgPj0gMCkge1xuICAgICAgICAgICAgcHJlY2lzaW9uID0gdmFsdWVTdHJpbmcubGVuZ3RoIC0gdmFsdWVTdHJpbmcuaW5kZXhPZignLicpIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJlY2lzaW9uO1xuICAgIH1cblxuICAgIHVwKGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5zdGVwKFR5cGUudXAsIGUpO1xuICAgIH1cblxuICAgIGRvd24oZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLnN0ZXAoVHlwZS5kb3duLCBlKTtcbiAgICB9XG5cbiAgICBmb3JtYXR0ZXJWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlVmFsdWUgPSB0aGlzLnBhcnNlcihgJHt2YWx1ZX1gKTtcbiAgICAgICAgaWYgKHBhcnNlVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeVN1ZmZpeCA/IGAke3BhcnNlVmFsdWV9ICR7dGhpcy50aHlTdWZmaXh9YCA6IHBhcnNlVmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJzZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAgIC5yZXBsYWNlKC/jgIIvZywgJy4nKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1teXFx3XFwuLV0rL2csICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UodGhpcy50aHlTdWZmaXgsICcnKTtcbiAgICB9XG5cbiAgICBnZXRDdXJyZW50VmFsaWRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHwgc3RyaW5nIHtcbiAgICAgICAgbGV0IHZhbCA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgPT09ICcnIHx8IGlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHZhbCA9IHBhcnNlRmxvYXQodmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgICAgaWYgKHRoaXMuaXNOb3RWYWxpZCh2YWwpKSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLnZhbGlkVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh2YWwgYXMgbnVtYmVyKSA8IHRoaXMudGh5TWluKSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLnRoeU1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHZhbCBhcyBudW1iZXIpID4gdGhpcy50aHlNYXgpIHtcbiAgICAgICAgICAgIHZhbCA9IHRoaXMudGh5TWF4O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIodmFsKTtcbiAgICB9XG5cbiAgICBpc05vdFZhbGlkKG51bTogc3RyaW5nIHwgbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hTihudW0gYXMgbnVtYmVyKSB8fCBudW0gPT09ICcnIHx8IG51bSA9PT0gbnVsbCB8fCAhIShudW0gJiYgbnVtLnRvU3RyaW5nKCkuaW5kZXhPZignLicpID09PSBudW0udG9TdHJpbmcoKS5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICB0b051bWJlcihudW06IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLmlzTm90VmFsaWQobnVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bSBhcyBudW1iZXI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnVtU3RyID0gU3RyaW5nKG51bSk7XG4gICAgICAgIGlmIChudW1TdHIuaW5kZXhPZignLicpID49IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKHRoaXMudGh5UHJlY2lzaW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihOdW1iZXIobnVtKS50b0ZpeGVkKHRoaXMudGh5UHJlY2lzaW9uKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE51bWJlcihudW0pO1xuICAgIH1cblxuICAgIGlzSW5wdXROdW1iZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gaXNGbG9hdCh2YWx1ZSkgfHwgL15bLStFZV0kfF4oWy0rLl0/WzAtOV0pKigoWy5dfFsuZUVdKT9bZUVdP1srLV0/KT8kfF4kLy50ZXN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5ob3N0Rm9jdXNDb250cm9sLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5wdXQtbnVtYmVyLWhhbmRsZXItd3JhcFwiIFtjbGFzcy5pbnB1dC1udW1iZXItZGlzYWJsZWRdPVwidGh5RGlzYWJsZWRcIj5cbiAgPHNwYW5cbiAgICB1bnNlbGVjdGFibGU9XCJ1bnNlbGVjdGFibGVcIlxuICAgIGNsYXNzPVwiaW5wdXQtbnVtYmVyLWhhbmRsZXIgaW5wdXQtbnVtYmVyLWhhbmRsZXItdXBcIlxuICAgIChtb3VzZWRvd24pPVwidXAoJGV2ZW50KVwiXG4gICAgKG1vdXNldXApPVwic3RvcCgpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJzdG9wKClcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFVwXCI+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtdXBcIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgdW5zZWxlY3RhYmxlPVwidW5zZWxlY3RhYmxlXCJcbiAgICBjbGFzcz1cImlucHV0LW51bWJlci1oYW5kbGVyIGlucHV0LW51bWJlci1oYW5kbGVyLWRvd25cIlxuICAgIChtb3VzZWRvd24pPVwiZG93bigkZXZlbnQpXCJcbiAgICAobW91c2V1cCk9XCJzdG9wKClcIlxuICAgIChtb3VzZWxlYXZlKT1cInN0b3AoKVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkRG93blwiPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWRvd25cIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG48L2Rpdj5cbjxpbnB1dFxuICB0aHlJbnB1dFxuICAjaW5wdXRcbiAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgY2xhc3M9XCJpbnB1dC1udW1iZXItaW5wdXQgZm9ybS1jb250cm9sXCJcbiAgW3RoeVNpemVdPVwidGh5U2l6ZVwiXG4gIFt0aHlBdXRvZm9jdXNdPVwidGh5QXV0b0ZvY3VzXCJcbiAgW2Rpc2FibGVkXT1cInRoeURpc2FibGVkXCJcbiAgW2F0dHIubWluXT1cInRoeU1pblwiXG4gIFthdHRyLm1heF09XCJ0aHlNYXhcIlxuICBbcGxhY2Vob2xkZXJdPVwidGh5UGxhY2Vob2xkZXJcIlxuICBbYXR0ci5zdGVwXT1cInRoeVN0ZXBcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIChrZXl1cCk9XCJzdG9wKClcIlxuICBbKG5nTW9kZWwpXT1cImRpc3BsYXlWYWx1ZVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiXG4gIHRhYmluZGV4PVwiLTFcIiAvPlxuIl19