pdm-ui-kit 0.4.1 → 1.0.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 (363) hide show
  1. package/accordion/accordion.module.d.ts +8 -0
  2. package/accordion/index.d.ts +2 -0
  3. package/accordion/index.mjs +2 -0
  4. package/alert/alert.module.d.ts +9 -0
  5. package/alert/index.d.ts +3 -0
  6. package/alert/index.mjs +3 -0
  7. package/aspect-ratio/aspect-ratio.module.d.ts +8 -0
  8. package/aspect-ratio/index.d.ts +2 -0
  9. package/aspect-ratio/index.mjs +2 -0
  10. package/avatar/avatar.module.d.ts +8 -0
  11. package/avatar/index.d.ts +2 -0
  12. package/avatar/index.mjs +2 -0
  13. package/badge/badge.module.d.ts +8 -0
  14. package/badge/index.d.ts +2 -0
  15. package/badge/index.mjs +2 -0
  16. package/breadcrumb/breadcrumb.module.d.ts +8 -0
  17. package/breadcrumb/index.d.ts +2 -0
  18. package/breadcrumb/index.mjs +2 -0
  19. package/button/button.module.d.ts +9 -0
  20. package/button/index.d.ts +3 -0
  21. package/button/index.mjs +3 -0
  22. package/calendar/calendar.module.d.ts +11 -0
  23. package/{lib/components/date-picker → calendar}/date-picker.component.d.ts +1 -1
  24. package/calendar/index.d.ts +3 -0
  25. package/calendar/index.mjs +3 -0
  26. package/card/card.module.d.ts +8 -0
  27. package/card/index.d.ts +2 -0
  28. package/card/index.mjs +2 -0
  29. package/carousel/carousel.module.d.ts +8 -0
  30. package/carousel/index.d.ts +2 -0
  31. package/carousel/index.mjs +2 -0
  32. package/chart/chart.module.d.ts +8 -0
  33. package/chart/index.d.ts +2 -0
  34. package/chart/index.mjs +2 -0
  35. package/checkbox/checkbox.module.d.ts +8 -0
  36. package/checkbox/index.d.ts +2 -0
  37. package/checkbox/index.mjs +2 -0
  38. package/collapsible/collapsible.module.d.ts +8 -0
  39. package/collapsible/index.d.ts +2 -0
  40. package/collapsible/index.mjs +2 -0
  41. package/combobox/combobox.module.d.ts +9 -0
  42. package/combobox/index.d.ts +2 -0
  43. package/combobox/index.mjs +2 -0
  44. package/command/command.module.d.ts +9 -0
  45. package/command/index.d.ts +2 -0
  46. package/command/index.mjs +2 -0
  47. package/context-menu/context-menu.module.d.ts +9 -0
  48. package/context-menu/index.d.ts +2 -0
  49. package/context-menu/index.mjs +2 -0
  50. package/{lib/components/data-table → data-table}/data-table.component.d.ts +1 -1
  51. package/data-table/data-table.module.d.ts +10 -0
  52. package/{lib/components/draggable-table → data-table}/draggable-table.component.d.ts +2 -2
  53. package/data-table/index.d.ts +4 -0
  54. package/data-table/index.mjs +4 -0
  55. package/{lib/components/table → data-table}/table.component.d.ts +1 -1
  56. package/dialog/dialog.module.d.ts +8 -0
  57. package/dialog/index.d.ts +2 -0
  58. package/dialog/index.mjs +2 -0
  59. package/drawer/drawer.module.d.ts +10 -0
  60. package/drawer/index.d.ts +3 -0
  61. package/drawer/index.mjs +3 -0
  62. package/{lib/components/dropdown-menu → dropdown-menu}/dropdown-menu.component.d.ts +1 -1
  63. package/dropdown-menu/dropdown-menu.module.d.ts +9 -0
  64. package/dropdown-menu/index.d.ts +2 -0
  65. package/dropdown-menu/index.mjs +2 -0
  66. package/empty/empty.module.d.ts +10 -0
  67. package/empty/index.d.ts +2 -0
  68. package/empty/index.mjs +2 -0
  69. package/esm2020/{lib/components/accordion → accordion}/accordion.component.mjs +1 -1
  70. package/esm2020/accordion/accordion.module.mjs +21 -0
  71. package/esm2020/{lib/components/alert-dialog → alert}/alert-dialog.component.mjs +1 -1
  72. package/esm2020/{lib/components/alert → alert}/alert.component.mjs +1 -1
  73. package/esm2020/alert/alert.module.mjs +25 -0
  74. package/esm2020/{lib/components/aspect-ratio → aspect-ratio}/aspect-ratio.component.mjs +1 -1
  75. package/esm2020/aspect-ratio/aspect-ratio.module.mjs +21 -0
  76. package/esm2020/{lib/components/avatar → avatar}/avatar.component.mjs +1 -1
  77. package/esm2020/avatar/avatar.module.mjs +21 -0
  78. package/esm2020/{lib/components/badge → badge}/badge.component.mjs +1 -1
  79. package/esm2020/badge/badge.module.mjs +21 -0
  80. package/esm2020/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.mjs +1 -1
  81. package/esm2020/breadcrumb/breadcrumb.module.mjs +21 -0
  82. package/esm2020/button/button-group.component.mjs +236 -0
  83. package/esm2020/button/button.component.mjs +114 -0
  84. package/esm2020/button/button.module.mjs +25 -0
  85. package/esm2020/calendar/calendar.component.mjs +529 -0
  86. package/esm2020/calendar/calendar.module.mjs +22 -0
  87. package/esm2020/{lib/components/date-picker → calendar}/date-picker.component.mjs +6 -6
  88. package/esm2020/{lib/components/card → card}/card.component.mjs +1 -1
  89. package/esm2020/card/card.module.mjs +21 -0
  90. package/esm2020/carousel/carousel.component.mjs +102 -0
  91. package/esm2020/carousel/carousel.module.mjs +21 -0
  92. package/esm2020/{lib/components/chart → chart}/chart.component.mjs +1 -1
  93. package/esm2020/chart/chart.module.mjs +21 -0
  94. package/esm2020/{lib/components/checkbox → checkbox}/checkbox.component.mjs +1 -1
  95. package/esm2020/checkbox/checkbox.module.mjs +21 -0
  96. package/esm2020/{lib/components/collapsible → collapsible}/collapsible.component.mjs +1 -1
  97. package/esm2020/collapsible/collapsible.module.mjs +21 -0
  98. package/esm2020/combobox/combobox.component.mjs +173 -0
  99. package/esm2020/combobox/combobox.module.mjs +22 -0
  100. package/esm2020/command/command.component.mjs +75 -0
  101. package/esm2020/command/command.module.mjs +20 -0
  102. package/esm2020/context-menu/context-menu.component.mjs +165 -0
  103. package/esm2020/context-menu/context-menu.module.mjs +22 -0
  104. package/esm2020/data-table/data-table.component.mjs +299 -0
  105. package/esm2020/data-table/data-table.module.mjs +29 -0
  106. package/esm2020/data-table/draggable-table.component.mjs +300 -0
  107. package/esm2020/data-table/table.component.mjs +182 -0
  108. package/esm2020/{lib/components/dialog → dialog}/dialog.component.mjs +3 -3
  109. package/esm2020/dialog/dialog.module.mjs +21 -0
  110. package/esm2020/{lib/components/drawer → drawer}/drawer.component.mjs +2 -2
  111. package/esm2020/drawer/drawer.module.mjs +21 -0
  112. package/esm2020/drawer/sheet.component.mjs +116 -0
  113. package/esm2020/dropdown-menu/dropdown-menu.component.mjs +192 -0
  114. package/esm2020/dropdown-menu/dropdown-menu.module.mjs +22 -0
  115. package/esm2020/{lib/components/empty → empty}/empty.component.mjs +1 -1
  116. package/esm2020/empty/empty.module.mjs +21 -0
  117. package/esm2020/{lib/components/field → field}/field.component.mjs +1 -1
  118. package/esm2020/field/field.module.mjs +21 -0
  119. package/esm2020/hover-card/hover-card.component.mjs +205 -0
  120. package/esm2020/hover-card/hover-card.module.mjs +22 -0
  121. package/esm2020/icon/icon.component.mjs +144 -0
  122. package/esm2020/icon/icon.module.mjs +21 -0
  123. package/esm2020/{lib/components/input-group → input}/input-group.component.mjs +1 -1
  124. package/esm2020/input/input-otp.component.mjs +144 -0
  125. package/esm2020/{lib/components/input-password → input}/input-password.component.mjs +1 -1
  126. package/esm2020/{lib/components/input → input}/input.component.mjs +1 -1
  127. package/esm2020/input/input.module.mjs +38 -0
  128. package/esm2020/{lib/components/textarea → input}/textarea.component.mjs +1 -1
  129. package/esm2020/{lib/components/item → item}/item.component.mjs +1 -1
  130. package/esm2020/item/item.module.mjs +21 -0
  131. package/esm2020/{lib/components/kbd → kbd}/kbd.component.mjs +1 -1
  132. package/esm2020/kbd/kbd.module.mjs +21 -0
  133. package/esm2020/{lib/components/label → label}/label.component.mjs +1 -1
  134. package/esm2020/label/label.module.mjs +21 -0
  135. package/esm2020/menubar/menubar.component.mjs +144 -0
  136. package/esm2020/menubar/menubar.module.mjs +22 -0
  137. package/esm2020/{lib/components/native-select → native-select}/native-select.component.mjs +1 -1
  138. package/esm2020/native-select/native-select.module.mjs +20 -0
  139. package/esm2020/{lib/components/navigation-menu → navigation-menu}/navigation-menu.component.mjs +1 -1
  140. package/esm2020/navigation-menu/navigation-menu.module.mjs +21 -0
  141. package/esm2020/overlay/create-flexible-position-strategy.mjs +54 -0
  142. package/esm2020/overlay/pdm-outside-click.directive.mjs +86 -0
  143. package/esm2020/overlay/pdm-outside-click.module.mjs +18 -0
  144. package/esm2020/overlay/pdm-overlay-options.mjs +2 -0
  145. package/esm2020/overlay/z-index-helper.mjs +69 -0
  146. package/esm2020/{lib/components/pagination → pagination}/pagination.component.mjs +1 -1
  147. package/esm2020/pagination/pagination.module.mjs +21 -0
  148. package/esm2020/pdm-ui-kit.module.mjs +260 -0
  149. package/esm2020/popover/popover.component.mjs +162 -0
  150. package/esm2020/popover/popover.module.mjs +22 -0
  151. package/esm2020/{lib/components/progress → progress}/progress.component.mjs +1 -1
  152. package/esm2020/progress/progress.module.mjs +21 -0
  153. package/esm2020/public-api.mjs +117 -67
  154. package/esm2020/{lib/components/radio-group → radio-group}/radio-group.component.mjs +1 -1
  155. package/esm2020/radio-group/radio-group.module.mjs +21 -0
  156. package/esm2020/{lib/components/scroll-area → scroll-area}/scroll-area.component.mjs +1 -1
  157. package/esm2020/scroll-area/scroll-area.module.mjs +21 -0
  158. package/esm2020/select/select-option.directive.mjs +55 -0
  159. package/esm2020/select/select.component.mjs +164 -0
  160. package/esm2020/select/select.module.mjs +22 -0
  161. package/esm2020/{lib/components/separator → separator}/separator.component.mjs +1 -1
  162. package/esm2020/separator/separator.module.mjs +21 -0
  163. package/esm2020/{lib/components/sidebar → sidebar}/sidebar.component.mjs +1 -1
  164. package/esm2020/sidebar/sidebar.module.mjs +21 -0
  165. package/esm2020/{lib/components/skeleton → skeleton}/skeleton.component.mjs +1 -1
  166. package/esm2020/skeleton/skeleton.module.mjs +21 -0
  167. package/esm2020/{lib/components/slider → slider}/slider.component.mjs +1 -1
  168. package/esm2020/slider/slider.module.mjs +21 -0
  169. package/esm2020/{lib/components/sonner → sonner}/sonner.component.mjs +1 -1
  170. package/esm2020/sonner/sonner.module.mjs +20 -0
  171. package/esm2020/{lib/components/spinner → spinner}/spinner.component.mjs +1 -1
  172. package/esm2020/spinner/spinner.module.mjs +21 -0
  173. package/esm2020/switch/switch.component.mjs +58 -0
  174. package/esm2020/switch/switch.module.mjs +21 -0
  175. package/esm2020/{lib/components/tabs → tabs}/tabs.component.mjs +1 -1
  176. package/esm2020/tabs/tabs.module.mjs +21 -0
  177. package/esm2020/{lib/components/toggle-group → toggle}/toggle-group.component.mjs +1 -1
  178. package/esm2020/{lib/components/toggle → toggle}/toggle.component.mjs +1 -1
  179. package/esm2020/toggle/toggle.module.mjs +25 -0
  180. package/esm2020/tooltip/tooltip.component.mjs +176 -0
  181. package/esm2020/tooltip/tooltip.module.mjs +22 -0
  182. package/esm2020/utils/responsive.mjs +143 -0
  183. package/esm2020/utils/z-index.mjs +90 -0
  184. package/fesm2015/pdm-ui-kit.mjs +3333 -2493
  185. package/fesm2015/pdm-ui-kit.mjs.map +1 -1
  186. package/fesm2020/pdm-ui-kit.mjs +2669 -1829
  187. package/fesm2020/pdm-ui-kit.mjs.map +1 -1
  188. package/field/field.module.d.ts +8 -0
  189. package/field/index.d.ts +2 -0
  190. package/field/index.mjs +2 -0
  191. package/hover-card/hover-card.module.d.ts +9 -0
  192. package/hover-card/index.d.ts +2 -0
  193. package/hover-card/index.mjs +2 -0
  194. package/icon/icon.module.d.ts +8 -0
  195. package/icon/index.d.ts +2 -0
  196. package/icon/index.mjs +2 -0
  197. package/input/index.d.ts +6 -0
  198. package/input/index.mjs +6 -0
  199. package/input/input.module.d.ts +13 -0
  200. package/item/index.d.ts +2 -0
  201. package/item/index.mjs +2 -0
  202. package/item/item.module.d.ts +8 -0
  203. package/kbd/index.d.ts +2 -0
  204. package/kbd/index.mjs +2 -0
  205. package/kbd/kbd.module.d.ts +8 -0
  206. package/label/index.d.ts +2 -0
  207. package/label/index.mjs +2 -0
  208. package/label/label.module.d.ts +8 -0
  209. package/menubar/index.d.ts +2 -0
  210. package/menubar/index.mjs +2 -0
  211. package/menubar/menubar.module.d.ts +9 -0
  212. package/native-select/index.d.ts +2 -0
  213. package/native-select/index.mjs +2 -0
  214. package/native-select/native-select.module.d.ts +9 -0
  215. package/navigation-menu/index.d.ts +2 -0
  216. package/navigation-menu/index.mjs +2 -0
  217. package/navigation-menu/navigation-menu.module.d.ts +8 -0
  218. package/overlay/index.d.ts +8 -0
  219. package/overlay/index.mjs +8 -0
  220. package/overlay/pdm-outside-click.module.d.ts +8 -0
  221. package/package.json +198 -2
  222. package/pagination/index.d.ts +2 -0
  223. package/pagination/index.mjs +2 -0
  224. package/pagination/pagination.module.d.ts +10 -0
  225. package/pdm-ui-kit.module.d.ts +60 -0
  226. package/popover/index.d.ts +2 -0
  227. package/popover/index.mjs +2 -0
  228. package/popover/popover.module.d.ts +9 -0
  229. package/progress/index.d.ts +2 -0
  230. package/progress/index.mjs +2 -0
  231. package/progress/progress.module.d.ts +8 -0
  232. package/public-api.d.ts +114 -66
  233. package/radio-group/index.d.ts +2 -0
  234. package/radio-group/index.mjs +2 -0
  235. package/radio-group/radio-group.module.d.ts +8 -0
  236. package/scroll-area/index.d.ts +2 -0
  237. package/scroll-area/index.mjs +2 -0
  238. package/scroll-area/scroll-area.module.d.ts +8 -0
  239. package/select/index.d.ts +3 -0
  240. package/select/index.mjs +3 -0
  241. package/{lib/components/select → select}/select.component.d.ts +1 -1
  242. package/select/select.module.d.ts +11 -0
  243. package/separator/index.d.ts +2 -0
  244. package/separator/index.mjs +2 -0
  245. package/separator/separator.module.d.ts +8 -0
  246. package/sidebar/index.d.ts +2 -0
  247. package/sidebar/index.mjs +2 -0
  248. package/sidebar/sidebar.module.d.ts +8 -0
  249. package/skeleton/index.d.ts +2 -0
  250. package/skeleton/index.mjs +2 -0
  251. package/skeleton/skeleton.module.d.ts +8 -0
  252. package/slider/index.d.ts +2 -0
  253. package/slider/index.mjs +2 -0
  254. package/slider/slider.module.d.ts +8 -0
  255. package/sonner/index.d.ts +2 -0
  256. package/sonner/index.mjs +2 -0
  257. package/sonner/sonner.module.d.ts +9 -0
  258. package/spinner/index.d.ts +2 -0
  259. package/spinner/index.mjs +2 -0
  260. package/spinner/spinner.module.d.ts +8 -0
  261. package/switch/index.d.ts +2 -0
  262. package/switch/index.mjs +2 -0
  263. package/switch/switch.module.d.ts +8 -0
  264. package/tabs/index.d.ts +2 -0
  265. package/tabs/index.mjs +2 -0
  266. package/tabs/tabs.module.d.ts +8 -0
  267. package/toggle/index.d.ts +3 -0
  268. package/toggle/index.mjs +3 -0
  269. package/toggle/toggle.module.d.ts +9 -0
  270. package/tooltip/index.d.ts +2 -0
  271. package/tooltip/index.mjs +2 -0
  272. package/tooltip/tooltip.module.d.ts +9 -0
  273. package/utils/index.d.ts +3 -0
  274. package/utils/index.mjs +3 -0
  275. package/esm2020/lib/components/button/button.component.mjs +0 -114
  276. package/esm2020/lib/components/button-group/button-group.component.mjs +0 -236
  277. package/esm2020/lib/components/calendar/calendar.component.mjs +0 -529
  278. package/esm2020/lib/components/carousel/carousel.component.mjs +0 -102
  279. package/esm2020/lib/components/combobox/combobox.component.mjs +0 -173
  280. package/esm2020/lib/components/command/command.component.mjs +0 -75
  281. package/esm2020/lib/components/context-menu/context-menu.component.mjs +0 -165
  282. package/esm2020/lib/components/data-table/data-table.component.mjs +0 -299
  283. package/esm2020/lib/components/draggable-table/draggable-table.component.mjs +0 -300
  284. package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +0 -192
  285. package/esm2020/lib/components/hover-card/hover-card.component.mjs +0 -205
  286. package/esm2020/lib/components/icon/icon.component.mjs +0 -144
  287. package/esm2020/lib/components/input-otp/input-otp.component.mjs +0 -144
  288. package/esm2020/lib/components/menubar/menubar.component.mjs +0 -144
  289. package/esm2020/lib/components/popover/popover.component.mjs +0 -162
  290. package/esm2020/lib/components/select/select-option.directive.mjs +0 -55
  291. package/esm2020/lib/components/select/select.component.mjs +0 -164
  292. package/esm2020/lib/components/sheet/sheet.component.mjs +0 -116
  293. package/esm2020/lib/components/switch/switch.component.mjs +0 -58
  294. package/esm2020/lib/components/table/table.component.mjs +0 -182
  295. package/esm2020/lib/components/tooltip/tooltip.component.mjs +0 -176
  296. package/esm2020/lib/overlay/create-flexible-position-strategy.mjs +0 -54
  297. package/esm2020/lib/overlay/pdm-outside-click.directive.mjs +0 -86
  298. package/esm2020/lib/overlay/pdm-overlay-options.mjs +0 -2
  299. package/esm2020/lib/overlay/z-index-helper.mjs +0 -69
  300. package/esm2020/lib/pdm-ui-kit.module.mjs +0 -258
  301. package/esm2020/lib/utils/responsive.mjs +0 -143
  302. package/esm2020/lib/utils/z-index.mjs +0 -90
  303. package/lib/pdm-ui-kit.module.d.ts +0 -68
  304. /package/{lib/components/accordion → accordion}/accordion.component.d.ts +0 -0
  305. /package/{lib/components/alert-dialog → alert}/alert-dialog.component.d.ts +0 -0
  306. /package/{lib/components/alert → alert}/alert.component.d.ts +0 -0
  307. /package/{lib/components/aspect-ratio → aspect-ratio}/aspect-ratio.component.d.ts +0 -0
  308. /package/{lib/components/avatar → avatar}/avatar.component.d.ts +0 -0
  309. /package/{lib/components/badge → badge}/badge.component.d.ts +0 -0
  310. /package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.d.ts +0 -0
  311. /package/{lib/components/button-group → button}/button-group.component.d.ts +0 -0
  312. /package/{lib/components/button → button}/button.component.d.ts +0 -0
  313. /package/{lib/components/calendar → calendar}/calendar.component.d.ts +0 -0
  314. /package/{lib/components/card → card}/card.component.d.ts +0 -0
  315. /package/{lib/components/carousel → carousel}/carousel.component.d.ts +0 -0
  316. /package/{lib/components/chart → chart}/chart.component.d.ts +0 -0
  317. /package/{lib/components/checkbox → checkbox}/checkbox.component.d.ts +0 -0
  318. /package/{lib/components/collapsible → collapsible}/collapsible.component.d.ts +0 -0
  319. /package/{lib/components/combobox → combobox}/combobox.component.d.ts +0 -0
  320. /package/{lib/components/command → command}/command.component.d.ts +0 -0
  321. /package/{lib/components/context-menu → context-menu}/context-menu.component.d.ts +0 -0
  322. /package/{lib/components/dialog → dialog}/dialog.component.d.ts +0 -0
  323. /package/{lib/components/drawer → drawer}/drawer.component.d.ts +0 -0
  324. /package/{lib/components/sheet → drawer}/sheet.component.d.ts +0 -0
  325. /package/{lib/components/empty → empty}/empty.component.d.ts +0 -0
  326. /package/{lib/components/field → field}/field.component.d.ts +0 -0
  327. /package/{lib/components/hover-card → hover-card}/hover-card.component.d.ts +0 -0
  328. /package/{lib/components/icon → icon}/icon.component.d.ts +0 -0
  329. /package/{lib/components/input-group → input}/input-group.component.d.ts +0 -0
  330. /package/{lib/components/input-otp → input}/input-otp.component.d.ts +0 -0
  331. /package/{lib/components/input-password → input}/input-password.component.d.ts +0 -0
  332. /package/{lib/components/input → input}/input.component.d.ts +0 -0
  333. /package/{lib/components/textarea → input}/textarea.component.d.ts +0 -0
  334. /package/{lib/components/item → item}/item.component.d.ts +0 -0
  335. /package/{lib/components/kbd → kbd}/kbd.component.d.ts +0 -0
  336. /package/{lib/components/label → label}/label.component.d.ts +0 -0
  337. /package/{lib/components/menubar → menubar}/menubar.component.d.ts +0 -0
  338. /package/{lib/components/native-select → native-select}/native-select.component.d.ts +0 -0
  339. /package/{lib/components/navigation-menu → navigation-menu}/navigation-menu.component.d.ts +0 -0
  340. /package/{lib/overlay → overlay}/create-flexible-position-strategy.d.ts +0 -0
  341. /package/{lib/overlay → overlay}/pdm-outside-click.directive.d.ts +0 -0
  342. /package/{lib/overlay → overlay}/pdm-overlay-options.d.ts +0 -0
  343. /package/{lib/overlay → overlay}/z-index-helper.d.ts +0 -0
  344. /package/{lib/components/pagination → pagination}/pagination.component.d.ts +0 -0
  345. /package/{lib/components/popover → popover}/popover.component.d.ts +0 -0
  346. /package/{lib/components/progress → progress}/progress.component.d.ts +0 -0
  347. /package/{lib/components/radio-group → radio-group}/radio-group.component.d.ts +0 -0
  348. /package/{lib/components/scroll-area → scroll-area}/scroll-area.component.d.ts +0 -0
  349. /package/{lib/components/select → select}/select-option.directive.d.ts +0 -0
  350. /package/{lib/components/separator → separator}/separator.component.d.ts +0 -0
  351. /package/{lib/components/sidebar → sidebar}/sidebar.component.d.ts +0 -0
  352. /package/{lib/components/skeleton → skeleton}/skeleton.component.d.ts +0 -0
  353. /package/{lib/components/slider → slider}/slider.component.d.ts +0 -0
  354. /package/{lib/components/sonner → sonner}/sonner.component.d.ts +0 -0
  355. /package/{lib/components/spinner → spinner}/spinner.component.d.ts +0 -0
  356. /package/src/{lib/styles → styles}/tokens.css +0 -0
  357. /package/{lib/components/switch → switch}/switch.component.d.ts +0 -0
  358. /package/{lib/components/tabs → tabs}/tabs.component.d.ts +0 -0
  359. /package/{lib/components/toggle-group → toggle}/toggle-group.component.d.ts +0 -0
  360. /package/{lib/components/toggle → toggle}/toggle.component.d.ts +0 -0
  361. /package/{lib/components/tooltip → tooltip}/tooltip.component.d.ts +0 -0
  362. /package/{lib/utils → utils}/responsive.d.ts +0 -0
  363. /package/{lib/utils → utils}/z-index.d.ts +0 -0
@@ -0,0 +1,22 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { OverlayModule } from "@angular/cdk/overlay";
4
+ import { PdmLabelModule } from "../label/label.module";
5
+ import { PdmCalendarComponent } from "./calendar.component";
6
+ import { PdmDatePickerComponent } from "./date-picker.component";
7
+ import * as i0 from "@angular/core";
8
+ const COMPONENTS = [PdmCalendarComponent, PdmDatePickerComponent];
9
+ export class PdmCalendarModule {
10
+ }
11
+ PdmCalendarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ PdmCalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmCalendarModule, declarations: [PdmCalendarComponent, PdmDatePickerComponent], imports: [CommonModule, OverlayModule, PdmLabelModule], exports: [PdmCalendarComponent, PdmDatePickerComponent] });
13
+ PdmCalendarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCalendarModule, imports: [CommonModule, OverlayModule, PdmLabelModule] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCalendarModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ imports: [CommonModule, OverlayModule, PdmLabelModule],
18
+ declarations: COMPONENTS,
19
+ exports: COMPONENTS,
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NhbGVuZGFyL2NhbGVuZGFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUVqRSxNQUFNLFVBQVUsR0FBRyxDQUFDLG9CQUFvQixFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFPbEUsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQVBWLG9CQUFvQixFQUFFLHNCQUFzQixhQUdyRCxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsYUFIbEMsb0JBQW9CLEVBQUUsc0JBQXNCOytHQU9uRCxpQkFBaUIsWUFKbkIsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjOzJGQUl6QyxpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUM7b0JBQ3RELFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUUsVUFBVTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBQZG1MYWJlbE1vZHVsZSB9IGZyb20gXCIuLi9sYWJlbC9sYWJlbC5tb2R1bGVcIjtcbmltcG9ydCB7IFBkbUNhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSBcIi4vY2FsZW5kYXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBQZG1EYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSBcIi4vZGF0ZS1waWNrZXIuY29tcG9uZW50XCI7XG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbUGRtQ2FsZW5kYXJDb21wb25lbnQsIFBkbURhdGVQaWNrZXJDb21wb25lbnRdO1xuXG5ATmdNb2R1bGUoe1xuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPdmVybGF5TW9kdWxlLCBQZG1MYWJlbE1vZHVsZV0sXG5cdGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcblx0ZXhwb3J0czogQ09NUE9ORU5UUyxcbn0pXG5leHBvcnQgY2xhc3MgUGRtQ2FsZW5kYXJNb2R1bGUge31cbiJdfQ==
@@ -1,13 +1,13 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
2
2
  import { TemplatePortal } from "@angular/cdk/portal";
3
3
  import { format as formatDateFns } from "date-fns";
4
- import { createFlexiblePositionStrategy } from "../../overlay/create-flexible-position-strategy";
5
- import { mergeOverlayPanelClass, OVERLAY_BASE_Z_INDEX, } from "../../overlay/z-index-helper";
4
+ import { createFlexiblePositionStrategy } from "../overlay/create-flexible-position-strategy";
5
+ import { mergeOverlayPanelClass, OVERLAY_BASE_Z_INDEX, } from "../overlay/z-index-helper";
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/cdk/overlay";
8
8
  import * as i2 from "@angular/common";
9
- import * as i3 from "../calendar/calendar.component";
10
- import * as i4 from "../label/label.component";
9
+ import * as i3 from "../label/label.component";
10
+ import * as i4 from "./calendar.component";
11
11
  let nextDatePickerId = 0;
12
12
  export class PdmDatePickerComponent {
13
13
  constructor(cdr, overlay, viewContainerRef) {
@@ -285,7 +285,7 @@ export class PdmDatePickerComponent {
285
285
  }
286
286
  }
287
287
  PdmDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDatePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
288
- PdmDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDatePickerComponent, selector: "pdm-date-picker", inputs: { id: "id", variant: "variant", label: "label", labelClassName: "labelClassName", className: "className", triggerClassName: "triggerClassName", panelClassName: "panelClassName", overlayOptions: "overlayOptions", placeholder: "placeholder", rangePlaceholder: "rangePlaceholder", format: "format", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", allowSameDayRange: "allowSameDayRange", closeOnSelect: "closeOnSelect", minDate: "minDate", maxDate: "maxDate", minYear: "minYear", maxYear: "maxYear", disabledDates: "disabledDates", isDateDisabled: "isDateDisabled", open: "open", value: "value", rangeValue: "rangeValue" }, outputs: { valueChange: "valueChange", rangeValueChange: "rangeValueChange", openChange: "openChange", monthChange: "monthChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"rootClasses\">\n <pdm-label *ngIf=\"label\" [forId]=\"triggerId\" [required]=\"required\" [className]=\"labelClassName\">\n {{ label }}\n </pdm-label>\n\n <button\n #triggerEl\n type=\"button\"\n [id]=\"triggerId\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"triggerClasses\"\n [attr.title]=\"displayText\"\n (click)=\"toggleOpen()\"\n (focus)=\"onTriggerFocus()\"\n (blur)=\"onTriggerBlur()\"\n >\n <span class=\"flex h-5 w-5 shrink-0 items-center justify-center p-0.5 text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\n <path d=\"M8 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M16 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <rect x=\"3\" y=\"4.5\" width=\"18\" height=\"16.5\" rx=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></rect>\n <path d=\"M3 9.5h18\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"textClasses\">{{ displayText }}</span>\n </button>\n</div>\n\n<ng-template #panelTemplate>\n <div [id]=\"panelId\" role=\"dialog\" [attr.aria-labelledby]=\"label ? triggerId : null\">\n <pdm-calendar\n [variant]=\"resolvedVariant\"\n [value]=\"value\"\n [rangeValue]=\"rangeValue\"\n [readonly]=\"readonly\"\n [allowSameDayRange]=\"allowSameDayRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [disabledDates]=\"disabledDates\"\n [isDateDisabled]=\"isDateDisabled\"\n (valueChange)=\"onCalendarValueChange($event)\"\n (rangeValueChange)=\"onCalendarRangeValueChange($event)\"\n (monthChange)=\"onCalendarMonthChange($event)\"\n ></pdm-calendar>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PdmCalendarComponent, selector: "pdm-calendar", inputs: ["variant", "className", "disabledDates", "minDate", "maxDate", "minYear", "maxYear", "isDateDisabled", "allowSameDayRange", "readonly", "value", "rangeValue", "month"], outputs: ["valueChange", "rangeValueChange", "monthChange", "dateClick", "disabledDateClick"] }, { kind: "component", type: i4.PdmLabelComponent, selector: "pdm-label", inputs: ["forId", "required", "className"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
288
+ PdmDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDatePickerComponent, selector: "pdm-date-picker", inputs: { id: "id", variant: "variant", label: "label", labelClassName: "labelClassName", className: "className", triggerClassName: "triggerClassName", panelClassName: "panelClassName", overlayOptions: "overlayOptions", placeholder: "placeholder", rangePlaceholder: "rangePlaceholder", format: "format", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", allowSameDayRange: "allowSameDayRange", closeOnSelect: "closeOnSelect", minDate: "minDate", maxDate: "maxDate", minYear: "minYear", maxYear: "maxYear", disabledDates: "disabledDates", isDateDisabled: "isDateDisabled", open: "open", value: "value", rangeValue: "rangeValue" }, outputs: { valueChange: "valueChange", rangeValueChange: "rangeValueChange", openChange: "openChange", monthChange: "monthChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"rootClasses\">\n <pdm-label *ngIf=\"label\" [forId]=\"triggerId\" [required]=\"required\" [className]=\"labelClassName\">\n {{ label }}\n </pdm-label>\n\n <button\n #triggerEl\n type=\"button\"\n [id]=\"triggerId\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"triggerClasses\"\n [attr.title]=\"displayText\"\n (click)=\"toggleOpen()\"\n (focus)=\"onTriggerFocus()\"\n (blur)=\"onTriggerBlur()\"\n >\n <span class=\"flex h-5 w-5 shrink-0 items-center justify-center p-0.5 text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\n <path d=\"M8 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M16 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <rect x=\"3\" y=\"4.5\" width=\"18\" height=\"16.5\" rx=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></rect>\n <path d=\"M3 9.5h18\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"textClasses\">{{ displayText }}</span>\n </button>\n</div>\n\n<ng-template #panelTemplate>\n <div [id]=\"panelId\" role=\"dialog\" [attr.aria-labelledby]=\"label ? triggerId : null\">\n <pdm-calendar\n [variant]=\"resolvedVariant\"\n [value]=\"value\"\n [rangeValue]=\"rangeValue\"\n [readonly]=\"readonly\"\n [allowSameDayRange]=\"allowSameDayRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [disabledDates]=\"disabledDates\"\n [isDateDisabled]=\"isDateDisabled\"\n (valueChange)=\"onCalendarValueChange($event)\"\n (rangeValueChange)=\"onCalendarRangeValueChange($event)\"\n (monthChange)=\"onCalendarMonthChange($event)\"\n ></pdm-calendar>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PdmLabelComponent, selector: "pdm-label", inputs: ["forId", "required", "className"] }, { kind: "component", type: i4.PdmCalendarComponent, selector: "pdm-calendar", inputs: ["variant", "className", "disabledDates", "minDate", "maxDate", "minYear", "maxYear", "isDateDisabled", "allowSameDayRange", "readonly", "value", "rangeValue", "month"], outputs: ["valueChange", "rangeValueChange", "monthChange", "dateClick", "disabledDateClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
289
289
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDatePickerComponent, decorators: [{
290
290
  type: Component,
291
291
  args: [{ selector: "pdm-date-picker", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"rootClasses\">\n <pdm-label *ngIf=\"label\" [forId]=\"triggerId\" [required]=\"required\" [className]=\"labelClassName\">\n {{ label }}\n </pdm-label>\n\n <button\n #triggerEl\n type=\"button\"\n [id]=\"triggerId\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"triggerClasses\"\n [attr.title]=\"displayText\"\n (click)=\"toggleOpen()\"\n (focus)=\"onTriggerFocus()\"\n (blur)=\"onTriggerBlur()\"\n >\n <span class=\"flex h-5 w-5 shrink-0 items-center justify-center p-0.5 text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\n <path d=\"M8 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M16 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <rect x=\"3\" y=\"4.5\" width=\"18\" height=\"16.5\" rx=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></rect>\n <path d=\"M3 9.5h18\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"textClasses\">{{ displayText }}</span>\n </button>\n</div>\n\n<ng-template #panelTemplate>\n <div [id]=\"panelId\" role=\"dialog\" [attr.aria-labelledby]=\"label ? triggerId : null\">\n <pdm-calendar\n [variant]=\"resolvedVariant\"\n [value]=\"value\"\n [rangeValue]=\"rangeValue\"\n [readonly]=\"readonly\"\n [allowSameDayRange]=\"allowSameDayRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [disabledDates]=\"disabledDates\"\n [isDateDisabled]=\"isDateDisabled\"\n (valueChange)=\"onCalendarValueChange($event)\"\n (rangeValueChange)=\"onCalendarRangeValueChange($event)\"\n (monthChange)=\"onCalendarMonthChange($event)\"\n ></pdm-calendar>\n </div>\n</ng-template>\n" }]
@@ -359,4 +359,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
359
359
  type: HostListener,
360
360
  args: ["document:keydown.escape"]
361
361
  }] } });
362
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsTUFBTSxJQUFJLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU1uRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLG9CQUFvQixHQUNwQixNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFFdEMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFPekIsTUFBTSxPQUFPLHNCQUFzQjtJQWNsQyxZQUNrQixHQUFzQixFQUN0QixPQUFnQixFQUNoQixnQkFBa0M7UUFGbEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBaEI1QyxXQUFNLEdBQWdCLElBQUksQ0FBQztRQUMzQixnQkFBVyxHQUE0QixJQUFJLENBQUM7UUFDNUMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVMLGVBQVUsR0FBRyxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZC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QWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBR0gsSUFBSTtzQkFEUCxLQUFLO2dCQWNGLEtBQUs7c0JBRFIsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBMkpOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRIb3N0TGlzdGVuZXIsXG5cdElucHV0LFxuXHRPbkRlc3Ryb3ksXG5cdE91dHB1dCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGZvcm1hdCBhcyBmb3JtYXREYXRlRm5zIH0gZnJvbSBcImRhdGUtZm5zXCI7XG5pbXBvcnQge1xuXHRQZG1DYWxlbmRhclJhbmdlLFxuXHRQZG1DYWxlbmRhclZhcmlhbnQsXG59IGZyb20gXCIuLi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnRcIjtcbmltcG9ydCB7IFBkbU92ZXJsYXlPcHRpb25zIH0gZnJvbSBcIi4uLy4uL292ZXJsYXkvcGRtLW92ZXJsYXktb3B0aW9uc1wiO1xuaW1wb3J0IHsgY3JlYXRlRmxleGlibGVQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSBcIi4uLy4uL292ZXJsYXkvY3JlYXRlLWZsZXhpYmxlLXBvc2l0aW9uLXN0cmF0ZWd5XCI7XG5pbXBvcnQge1xuXHRtZXJnZU92ZXJsYXlQYW5lbENsYXNzLFxuXHRPVkVSTEFZX0JBU0VfWl9JTkRFWCxcbn0gZnJvbSBcIi4uLy4uL292ZXJsYXkvei1pbmRleC1oZWxwZXJcIjtcblxubGV0IG5leHREYXRlUGlja2VySWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLWRhdGUtcGlja2VyXCIsXG5cdHRlbXBsYXRlVXJsOiBcIi4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWxcIixcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBkbURhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXHRwcml2YXRlIF92YWx1ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIF9yYW5nZVZhbHVlOiBQZG1DYWxlbmRhclJhbmdlIHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgX29wZW4gPSBmYWxzZTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlSWQgPSBgcGRtLWRhdGUtcGlja2VyLSR7KytuZXh0RGF0ZVBpY2tlcklkfWA7XG5cdHByaXZhdGUgdHJpZ2dlckZvY3VzZWQgPSBmYWxzZTtcblxuXHRwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBiYWNrZHJvcFN1YjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cblx0QFZpZXdDaGlsZChcInRyaWdnZXJFbFwiKSBwcml2YXRlIHRyaWdnZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcblx0QFZpZXdDaGlsZChcInBhbmVsVGVtcGxhdGVcIikgcHJpdmF0ZSBwYW5lbFRlbXBsYXRlUmVmITogYW55O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcblx0XHRwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXk6IE92ZXJsYXksXG5cdFx0cHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuXHQpIHt9XG5cblx0QElucHV0KCkgaWQgPSBcIlwiO1xuXHRASW5wdXQoKSB2YXJpYW50OiBQZG1DYWxlbmRhclZhcmlhbnQgfCBzdHJpbmcgPSBcInNpbmdsZVwiO1xuXHRASW5wdXQoKSBsYWJlbCA9IFwiXCI7XG5cdEBJbnB1dCgpIGxhYmVsQ2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgY2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgdHJpZ2dlckNsYXNzTmFtZSA9IFwiXCI7XG5cdC8qKlxuXHQgKiBBZGRpdGlvbmFsIENTUyBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlIG92ZXJsYXkgcGFuZWwuXG5cdCAqIEJhY2t3YXJkLWNvbXBhdGlibGU6IG1hcHBlZCB0byBgb3ZlcmxheU9wdGlvbnMucGFuZWxDbGFzc2Agd2hlbiBgb3ZlcmxheU9wdGlvbnNgIGlzIG5vdCBzZXQuXG5cdCAqIFdoZW4gYm90aCBhcmUgc3VwcGxpZWQsIGBvdmVybGF5T3B0aW9ucy5wYW5lbENsYXNzYCB0YWtlcyBwcmVjZWRlbmNlLlxuXHQgKi9cblx0QElucHV0KCkgcGFuZWxDbGFzc05hbWUgPSBcIlwiO1xuXHQvKipcblx0ICogT3B0aW9uYWwgQ0RLIE92ZXJsYXlDb25maWcgb3ZlcnJpZGVzLlxuXHQgKiBTaGFsbG93LW1lcmdlZCBvbiB0b3Agb2YgY29tcG9uZW50IGRlZmF1bHRzIOKAlCBjb25zdW1lciBhbHdheXMgd2lucy5cblx0ICogUHJvdmlkaW5nIGBwb3NpdGlvblN0cmF0ZWd5YCBvciBgc2Nyb2xsU3RyYXRlZ3lgIHJlcGxhY2VzIHRoZSBjb21wb25lbnQgZGVmYXVsdCBlbnRpcmVseS5cblx0ICovXG5cdEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zPzogUGRtT3ZlcmxheU9wdGlvbnM7XG5cdEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJQaWNrIGEgZGF0ZVwiO1xuXHRASW5wdXQoKSByYW5nZVBsYWNlaG9sZGVyID0gXCJQaWNrIGEgZGF0ZSByYW5nZVwiO1xuXHRASW5wdXQoKSBmb3JtYXQgPSBcIk1NTSBkLCB5eXl5XCI7XG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG5cdEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG5cdEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblx0QElucHV0KCkgYWxsb3dTYW1lRGF5UmFuZ2UgPSB0cnVlO1xuXHRASW5wdXQoKSBjbG9zZU9uU2VsZWN0ID0gdHJ1ZTtcblx0QElucHV0KCkgbWluRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXHRASW5wdXQoKSBtYXhEYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cdEBJbnB1dCgpIG1pblllYXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXHRASW5wdXQoKSBtYXhZZWFyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblx0QElucHV0KCkgZGlzYWJsZWREYXRlczogRGF0ZVtdID0gW107XG5cdEBJbnB1dCgpIGlzRGF0ZURpc2FibGVkOiAoKGRhdGU6IERhdGUpID0+IGJvb2xlYW4pIHwgbnVsbCA9IG51bGw7XG5cblx0QE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcblx0QE91dHB1dCgpIHJhbmdlVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBkbUNhbGVuZGFyUmFuZ2UgfCBudWxsPigpO1xuXHRAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblx0QE91dHB1dCgpIG1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG5cdEBJbnB1dCgpXG5cdHNldCBvcGVuKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0aWYgKHRoaXMuX29wZW4gPT09ICEhdmFsdWUpIHJldHVybjtcblx0XHRpZiAodmFsdWUpIHtcblx0XHRcdHRoaXMub3BlblBhbmVsKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHRcdH1cblx0fVxuXHRnZXQgb3BlbigpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5fb3Blbjtcblx0fVxuXG5cdEBJbnB1dCgpXG5cdHNldCB2YWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwpIHtcblx0XHR0aGlzLl92YWx1ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblx0Z2V0IHZhbHVlKCk6IERhdGUgfCBudWxsIHtcblx0XHRyZXR1cm4gdGhpcy5fdmFsdWU7XG5cdH1cblxuXHRASW5wdXQoKVxuXHRzZXQgcmFuZ2VWYWx1ZSh2YWx1ZTogUGRtQ2FsZW5kYXJSYW5nZSB8IG51bGwpIHtcblx0XHR0aGlzLl9yYW5nZVZhbHVlID0gdmFsdWVcblx0XHRcdD8ge1xuXHRcdFx0XHRcdHN0YXJ0OiB0aGlzLm5vcm1hbGl6ZURhdGUodmFsdWUuc3RhcnQpLFxuXHRcdFx0XHRcdGVuZDogdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlLmVuZCksXG5cdFx0XHRcdH1cblx0XHRcdDogbnVsbDtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXHRnZXQgcmFuZ2VWYWx1ZSgpOiBQZG1DYWxlbmRhclJhbmdlIHwgbnVsbCB7XG5cdFx0cmV0dXJuIHRoaXMuX3JhbmdlVmFsdWU7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLmRlc3Ryb3lPdmVybGF5KCk7XG5cdH1cblxuXHRnZXQgcmVzb2x2ZWRWYXJpYW50KCk6IFBkbUNhbGVuZGFyVmFyaWFudCB7XG5cdFx0cmV0dXJuIHRoaXMudmFyaWFudCA9PT0gXCJyYW5nZVwiID8gXCJyYW5nZVwiIDogXCJzaW5nbGVcIjtcblx0fVxuXG5cdGdldCB0cmlnZ2VySWQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5pZCB8fCBgJHt0aGlzLmluc3RhbmNlSWR9LXRyaWdnZXJgO1xuXHR9XG5cblx0Z2V0IHBhbmVsSWQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYCR7dGhpcy5pZCB8fCB0aGlzLmluc3RhbmNlSWR9LXBhbmVsYDtcblx0fVxuXG5cdGdldCBoYXNTaW5nbGVWYWx1ZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5yZXNvbHZlZFZhcmlhbnQgPT09IFwic2luZ2xlXCIgJiYgISF0aGlzLl92YWx1ZTtcblx0fVxuXG5cdGdldCBoYXNSYW5nZVZhbHVlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnJlc29sdmVkVmFyaWFudCA9PT0gXCJyYW5nZVwiICYmICEhdGhpcy5fcmFuZ2VWYWx1ZT8uc3RhcnQ7XG5cdH1cblxuXHRnZXQgZGlzcGxheVRleHQoKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5yZXNvbHZlZFZhcmlhbnQgPT09IFwic2luZ2xlXCIpIHtcblx0XHRcdHJldHVybiB0aGlzLl92YWx1ZSA/IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLl92YWx1ZSkgOiB0aGlzLnBsYWNlaG9sZGVyO1xuXHRcdH1cblxuXHRcdGNvbnN0IHN0YXJ0ID0gdGhpcy5fcmFuZ2VWYWx1ZT8uc3RhcnQgPz8gbnVsbDtcblx0XHRjb25zdCBlbmQgPSB0aGlzLl9yYW5nZVZhbHVlPy5lbmQgPz8gbnVsbDtcblxuXHRcdGlmICghc3RhcnQpIHtcblx0XHRcdHJldHVybiB0aGlzLnJhbmdlUGxhY2Vob2xkZXI7XG5cdFx0fVxuXG5cdFx0aWYgKCFlbmQpIHtcblx0XHRcdHJldHVybiBgJHt0aGlzLmZvcm1hdERhdGUoc3RhcnQpfSAtYDtcblx0XHR9XG5cblx0XHRyZXR1cm4gYCR7dGhpcy5mb3JtYXREYXRlKHN0YXJ0KX0gLSAke3RoaXMuZm9ybWF0RGF0ZShlbmQpfWA7XG5cdH1cblxuXHRnZXQgdGV4dENsYXNzZXMoKTogc3RyaW5nW10ge1xuXHRcdGNvbnN0IGhhc1ZhbHVlID1cblx0XHRcdHRoaXMucmVzb2x2ZWRWYXJpYW50ID09PSBcInNpbmdsZVwiXG5cdFx0XHRcdD8gdGhpcy5oYXNTaW5nbGVWYWx1ZVxuXHRcdFx0XHQ6IHRoaXMuaGFzUmFuZ2VWYWx1ZTtcblx0XHRyZXR1cm4gW1xuXHRcdFx0XCJtaW4tdy0wIGZsZXgtMSB0cnVuY2F0ZSB0ZXh0LWxlZnQgdGV4dC1zbSBsZWFkaW5nLTVcIixcblx0XHRcdGhhc1ZhbHVlID8gXCJ0ZXh0LWZvcmVncm91bmRcIiA6IFwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIsXG5cdFx0XTtcblx0fVxuXG5cdGdldCByb290Q2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdFwiZ3JpZCBnYXAtMlwiLFxuXHRcdFx0dGhpcy5yZXNvbHZlZFZhcmlhbnQgPT09IFwicmFuZ2VcIiA/IFwidy1bMjgwcHhdXCIgOiBcInctWzE5N3B4XVwiLFxuXHRcdFx0dGhpcy5jbGFzc05hbWUsXG5cdFx0XTtcblx0fVxuXG5cdGdldCB0cmlnZ2VyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0Y29uc3QgZm9jdXNTdHlsZSA9IHRoaXMuX29wZW4gfHwgdGhpcy50cmlnZ2VyRm9jdXNlZDtcblxuXHRcdHJldHVybiBbXG5cdFx0XHRcImJvcmRlci1pbnB1dCBmb2N1cy12aXNpYmxlOmJvcmRlci1yaW5nIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nLzUwIGFyaWEtaW52YWxpZDpyaW5nLTIgYXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUgYXJpYS1pbnZhbGlkOmJvcmRlci1kZXN0cnVjdGl2ZSByZWxhdGl2ZSBmbGV4IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIgZ2FwLTIgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zb2xpZCBiZy1iYWNrZ3JvdW5kIHB4LTMgcHktWzcuNXB4XSB0ZXh0LWxlZnQgdGV4dC1zbSBzaGFkb3ctc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzXCIsXG5cdFx0XHRcIm1pbi1oLVszNnB4XSBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwXCIsXG5cdFx0XHRmb2N1c1N0eWxlID8gXCJib3JkZXItcmluZyByaW5nLTIgcmluZy1yaW5nLzUwXCIgOiBcIlwiLFxuXHRcdFx0dGhpcy5pbnZhbGlkID8gXCJib3JkZXItZGVzdHJ1Y3RpdmUgcmluZy1kZXN0cnVjdGl2ZS8yMFwiIDogXCJcIixcblx0XHRcdHRoaXMudHJpZ2dlckNsYXNzTmFtZSxcblx0XHRdO1xuXHR9XG5cblx0dG9nZ2xlT3BlbigpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5zZXRPcGVuKCF0aGlzLl9vcGVuKTtcblx0fVxuXG5cdG9uVHJpZ2dlckZvY3VzKCk6IHZvaWQge1xuXHRcdHRoaXMudHJpZ2dlckZvY3VzZWQgPSB0cnVlO1xuXHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHR9XG5cblx0b25UcmlnZ2VyQmx1cigpOiB2b2lkIHtcblx0XHR0aGlzLnRyaWdnZXJGb2N1c2VkID0gZmFsc2U7XG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRvbkNhbGVuZGFyVmFsdWVDaGFuZ2UodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG5cdFx0dGhpcy5fdmFsdWUgPSB0aGlzLm5vcm1hbGl6ZURhdGUodmFsdWUpO1xuXHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSA/IHRoaXMuY2xvbmVEYXRlKHRoaXMuX3ZhbHVlKSA6IG51bGwpO1xuXG5cdFx0aWYgKHRoaXMuY2xvc2VPblNlbGVjdCAmJiB0aGlzLl92YWx1ZSkge1xuXHRcdFx0dGhpcy5zZXRPcGVuKGZhbHNlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdFx0fVxuXHR9XG5cblx0b25DYWxlbmRhclJhbmdlVmFsdWVDaGFuZ2UodmFsdWU6IFBkbUNhbGVuZGFyUmFuZ2UgfCBudWxsKTogdm9pZCB7XG5cdFx0dGhpcy5fcmFuZ2VWYWx1ZSA9IHZhbHVlXG5cdFx0XHQ/IHtcblx0XHRcdFx0XHRzdGFydDogdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlLnN0YXJ0KSxcblx0XHRcdFx0XHRlbmQ6IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZS5lbmQpLFxuXHRcdFx0XHR9XG5cdFx0XHQ6IG51bGw7XG5cblx0XHR0aGlzLnJhbmdlVmFsdWVDaGFuZ2UuZW1pdChcblx0XHRcdHRoaXMuX3JhbmdlVmFsdWVcblx0XHRcdFx0PyB7XG5cdFx0XHRcdFx0XHRzdGFydDogdGhpcy5fcmFuZ2VWYWx1ZS5zdGFydFxuXHRcdFx0XHRcdFx0XHQ/IHRoaXMuY2xvbmVEYXRlKHRoaXMuX3JhbmdlVmFsdWUuc3RhcnQpXG5cdFx0XHRcdFx0XHRcdDogbnVsbCxcblx0XHRcdFx0XHRcdGVuZDogdGhpcy5fcmFuZ2VWYWx1ZS5lbmRcblx0XHRcdFx0XHRcdFx0PyB0aGlzLmNsb25lRGF0ZSh0aGlzLl9yYW5nZVZhbHVlLmVuZClcblx0XHRcdFx0XHRcdFx0OiBudWxsLFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0OiBudWxsLFxuXHRcdCk7XG5cblx0XHRpZiAoXG5cdFx0XHR0aGlzLmNsb3NlT25TZWxlY3QgJiZcblx0XHRcdHRoaXMuX3JhbmdlVmFsdWU/LnN0YXJ0ICYmXG5cdFx0XHR0aGlzLl9yYW5nZVZhbHVlPy5lbmRcblx0XHQpIHtcblx0XHRcdHRoaXMuc2V0T3BlbihmYWxzZSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRvbkNhbGVuZGFyTW9udGhDaGFuZ2UobW9udGg6IERhdGUpOiB2b2lkIHtcblx0XHR0aGlzLm1vbnRoQ2hhbmdlLmVtaXQodGhpcy5jbG9uZURhdGUobW9udGgpKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDprZXlkb3duLmVzY2FwZVwiKVxuXHRvbkVzY2FwZSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5fb3Blbikge1xuXHRcdFx0dGhpcy5zZXRPcGVuKGZhbHNlKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHNldE9wZW4obmV4dE9wZW46IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAodGhpcy5fb3BlbiA9PT0gbmV4dE9wZW4pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAobmV4dE9wZW4pIHtcblx0XHRcdHRoaXMub3BlblBhbmVsKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgb3BlblBhbmVsKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdGNvbnN0IHRyaWdnZXJFbCA9IHRoaXMudHJpZ2dlclJlZj8ubmF0aXZlRWxlbWVudDtcblx0XHRpZiAoIXRyaWdnZXJFbCkgcmV0dXJuO1xuXG5cdFx0dGhpcy5fb3BlbiA9IHRydWU7XG5cdFx0dGhpcy5vcGVuQ2hhbmdlLmVtaXQodHJ1ZSk7XG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cblx0XHRjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gY3JlYXRlRmxleGlibGVQb3NpdGlvblN0cmF0ZWd5KFxuXHRcdFx0dGhpcy5vdmVybGF5LFxuXHRcdFx0dHJpZ2dlckVsLFxuXHRcdFx0OCxcblx0XHQpO1xuXG5cdFx0Ly8gQ1JJVElDQUw6IFVzZSBtZXJnZU92ZXJsYXlQYW5lbENsYXNzIHRvIGVuc3VyZSB6LWluZGV4IGlzIG5ldmVyIGxvc3QuXG5cdFx0Ly8gQ29uc3VtZXIgY2xhc3NlcyBhcmUgYXBwZW5kZWQgQUZURVIgYmFzZSB6LWluZGV4LlxuXHRcdGNvbnN0IHpJbmRleEVuZm9yY2VkID0gbWVyZ2VPdmVybGF5UGFuZWxDbGFzcyhcblx0XHRcdE9WRVJMQVlfQkFTRV9aX0lOREVYLFxuXHRcdFx0dGhpcy5wYW5lbENsYXNzTmFtZSxcblx0XHQpO1xuXG5cdFx0Ly8gUmVzb2x2ZSBwYW5lbENsYXNzOiBvdmVybGF5T3B0aW9ucy5wYW5lbENsYXNzIHdpbnM7IG90aGVyd2lzZSB1c2Ugei1pbmRleCBlbmZvcmNlZC5cblx0XHRjb25zdCByZXNvbHZlZFBhbmVsQ2xhc3MgPSB0aGlzLm92ZXJsYXlPcHRpb25zPy5wYW5lbENsYXNzXG5cdFx0XHQ/IG1lcmdlT3ZlcmxheVBhbmVsQ2xhc3MoXG5cdFx0XHRcdFx0T1ZFUkxBWV9CQVNFX1pfSU5ERVgsXG5cdFx0XHRcdFx0dGhpcy5vdmVybGF5T3B0aW9ucy5wYW5lbENsYXNzLFxuXHRcdFx0XHQpXG5cdFx0XHQ6IHpJbmRleEVuZm9yY2VkO1xuXG5cdFx0dGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG5cdFx0XHRwb3NpdGlvblN0cmF0ZWd5LFxuXHRcdFx0c2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcblx0XHRcdC8vIENvbnN1bWVyIG92ZXJyaWRlcyBhcmUgc3ByZWFkIGZpcnN0LlxuXHRcdFx0Li4udGhpcy5vdmVybGF5T3B0aW9ucyxcblx0XHRcdC8vIHBhbmVsQ2xhc3MgYWx3YXlzIGVuZm9yY2VkIGxhc3QgdG8gcHJlc2VydmUgei1pbmRleC5cblx0XHRcdHBhbmVsQ2xhc3M6IHJlc29sdmVkUGFuZWxDbGFzcyxcblx0XHR9KTtcblxuXHRcdGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcblx0XHRcdHRoaXMucGFuZWxUZW1wbGF0ZVJlZixcblx0XHRcdHRoaXMudmlld0NvbnRhaW5lclJlZixcblx0XHQpO1xuXHRcdHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuXHRcdHRoaXMuYmFja2Ryb3BTdWIgPSB0aGlzLm92ZXJsYXlSZWZcblx0XHRcdC5vdXRzaWRlUG9pbnRlckV2ZW50cygpXG5cdFx0XHQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgTm9kZTtcblx0XHRcdFx0aWYgKCF0cmlnZ2VyRWwuY29udGFpbnModGFyZ2V0KSkge1xuXHRcdFx0XHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHR9XG5cblx0cHJpdmF0ZSBjbG9zZVBhbmVsKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5vdmVybGF5UmVmICYmICF0aGlzLl9vcGVuKSByZXR1cm47XG5cblx0XHR0aGlzLl9vcGVuID0gZmFsc2U7XG5cdFx0dGhpcy5vcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdHByaXZhdGUgZGVzdHJveU92ZXJsYXkoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuYmFja2Ryb3BTdWIpIHtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIgPSBudWxsO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vdmVybGF5UmVmKSB7XG5cdFx0XHR0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmID0gbnVsbDtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBmb3JtYXREYXRlRm5zKGRhdGUsIHRoaXMuZm9ybWF0IHx8IFwiTU1NIGQsIHl5eXlcIik7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXR1cm4gZm9ybWF0RGF0ZUZucyhkYXRlLCBcIk1NTSBkLCB5eXl5XCIpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgbm9ybWFsaXplRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBEYXRlIHwgbnVsbCB7XG5cdFx0aWYgKCEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB8fCBOdW1iZXIuaXNOYU4odmFsdWUuZ2V0VGltZSgpKSkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG5ldyBEYXRlKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHZhbHVlLmdldERhdGUoKSk7XG5cdH1cblxuXHRwcml2YXRlIGNsb25lRGF0ZShkYXRlOiBEYXRlKTogRGF0ZSB7XG5cdFx0cmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG5cdH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwicm9vdENsYXNzZXNcIj5cbiAgPHBkbS1sYWJlbCAqbmdJZj1cImxhYmVsXCIgW2ZvcklkXT1cInRyaWdnZXJJZFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtjbGFzc05hbWVdPVwibGFiZWxDbGFzc05hbWVcIj5cbiAgICB7eyBsYWJlbCB9fVxuICA8L3BkbS1sYWJlbD5cblxuICA8YnV0dG9uXG4gICAgI3RyaWdnZXJFbFxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtpZF09XCJ0cmlnZ2VySWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuXCJcbiAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cInBhbmVsSWRcIlxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ2RpYWxvZydcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICBbbmdDbGFzc109XCJ0cmlnZ2VyQ2xhc3Nlc1wiXG4gICAgW2F0dHIudGl0bGVdPVwiZGlzcGxheVRleHRcIlxuICAgIChjbGljayk9XCJ0b2dnbGVPcGVuKClcIlxuICAgIChmb2N1cyk9XCJvblRyaWdnZXJGb2N1cygpXCJcbiAgICAoYmx1cik9XCJvblRyaWdnZXJCbHVyKClcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJmbGV4IGgtNSB3LTUgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtMC41IHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgY2xhc3M9XCJoLTQgdy00XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjhcIj5cbiAgICAgICAgPHBhdGggZD1cIk04IDJ2NFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgICAgPHBhdGggZD1cIk0xNiAydjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjQuNVwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxNi41XCIgcng9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9yZWN0PlxuICAgICAgICA8cGF0aCBkPVwiTTMgOS41aDE4XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPC9zdmc+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gW25nQ2xhc3NdPVwidGV4dENsYXNzZXNcIj57eyBkaXNwbGF5VGV4dCB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwYW5lbFRlbXBsYXRlPlxuICA8ZGl2IFtpZF09XCJwYW5lbElkXCIgcm9sZT1cImRpYWxvZ1wiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbCA/IHRyaWdnZXJJZCA6IG51bGxcIj5cbiAgICA8cGRtLWNhbGVuZGFyXG4gICAgICBbdmFyaWFudF09XCJyZXNvbHZlZFZhcmlhbnRcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtyYW5nZVZhbHVlXT1cInJhbmdlVmFsdWVcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFthbGxvd1NhbWVEYXlSYW5nZV09XCJhbGxvd1NhbWVEYXlSYW5nZVwiXG4gICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgW21pblllYXJdPVwibWluWWVhclwiXG4gICAgICBbbWF4WWVhcl09XCJtYXhZZWFyXCJcbiAgICAgIFtkaXNhYmxlZERhdGVzXT1cImRpc2FibGVkRGF0ZXNcIlxuICAgICAgW2lzRGF0ZURpc2FibGVkXT1cImlzRGF0ZURpc2FibGVkXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkNhbGVuZGFyVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAocmFuZ2VWYWx1ZUNoYW5nZSk9XCJvbkNhbGVuZGFyUmFuZ2VWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChtb250aENoYW5nZSk9XCJvbkNhbGVuZGFyTW9udGhDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvcGRtLWNhbGVuZGFyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
362
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NhbGVuZGFyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jYWxlbmRhci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsTUFBTSxJQUFJLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU1uRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RixPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLG9CQUFvQixHQUNwQixNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFFbkMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFPekIsTUFBTSxPQUFPLHNCQUFzQjtJQWNsQyxZQUNrQixHQUFzQixFQUN0QixPQUFnQixFQUNoQixnQkFBa0M7UUFGbEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBaEI1QyxXQUFNLEdBQWdCLElBQUksQ0FBQztRQUMzQixnQkFBVyxHQUE0QixJQUFJLENBQUM7UUFDNUMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVMLGVBQVUsR0FBRyxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLGVBQVUsR0FBc0IsSUFBSSxDQUFDO1FBQ3JDLGdCQUFXLEdBQXdCLElBQUksQ0FB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QUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBR0gsSUFBSTtzQkFEUCxLQUFLO2dCQWNGLEtBQUs7c0JBRFIsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBMkpOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRIb3N0TGlzdGVuZXIsXG5cdElucHV0LFxuXHRPbkRlc3Ryb3ksXG5cdE91dHB1dCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGZvcm1hdCBhcyBmb3JtYXREYXRlRm5zIH0gZnJvbSBcImRhdGUtZm5zXCI7XG5pbXBvcnQge1xuXHRQZG1DYWxlbmRhclJhbmdlLFxuXHRQZG1DYWxlbmRhclZhcmlhbnQsXG59IGZyb20gXCIuLi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnRcIjtcbmltcG9ydCB7IFBkbU92ZXJsYXlPcHRpb25zIH0gZnJvbSBcIi4uL292ZXJsYXkvcGRtLW92ZXJsYXktb3B0aW9uc1wiO1xuaW1wb3J0IHsgY3JlYXRlRmxleGlibGVQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSBcIi4uL292ZXJsYXkvY3JlYXRlLWZsZXhpYmxlLXBvc2l0aW9uLXN0cmF0ZWd5XCI7XG5pbXBvcnQge1xuXHRtZXJnZU92ZXJsYXlQYW5lbENsYXNzLFxuXHRPVkVSTEFZX0JBU0VfWl9JTkRFWCxcbn0gZnJvbSBcIi4uL292ZXJsYXkvei1pbmRleC1oZWxwZXJcIjtcblxubGV0IG5leHREYXRlUGlja2VySWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLWRhdGUtcGlja2VyXCIsXG5cdHRlbXBsYXRlVXJsOiBcIi4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWxcIixcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBkbURhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXHRwcml2YXRlIF92YWx1ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIF9yYW5nZVZhbHVlOiBQZG1DYWxlbmRhclJhbmdlIHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgX29wZW4gPSBmYWxzZTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlSWQgPSBgcGRtLWRhdGUtcGlja2VyLSR7KytuZXh0RGF0ZVBpY2tlcklkfWA7XG5cdHByaXZhdGUgdHJpZ2dlckZvY3VzZWQgPSBmYWxzZTtcblxuXHRwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBiYWNrZHJvcFN1YjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cblx0QFZpZXdDaGlsZChcInRyaWdnZXJFbFwiKSBwcml2YXRlIHRyaWdnZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcblx0QFZpZXdDaGlsZChcInBhbmVsVGVtcGxhdGVcIikgcHJpdmF0ZSBwYW5lbFRlbXBsYXRlUmVmITogYW55O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcblx0XHRwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXk6IE92ZXJsYXksXG5cdFx0cHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuXHQpIHt9XG5cblx0QElucHV0KCkgaWQgPSBcIlwiO1xuXHRASW5wdXQoKSB2YXJpYW50OiBQZG1DYWxlbmRhclZhcmlhbnQgfCBzdHJpbmcgPSBcInNpbmdsZVwiO1xuXHRASW5wdXQoKSBsYWJlbCA9IFwiXCI7XG5cdEBJbnB1dCgpIGxhYmVsQ2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgY2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgdHJpZ2dlckNsYXNzTmFtZSA9IFwiXCI7XG5cdC8qKlxuXHQgKiBBZGRpdGlvbmFsIENTUyBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlIG92ZXJsYXkgcGFuZWwuXG5cdCAqIEJhY2t3YXJkLWNvbXBhdGlibGU6IG1hcHBlZCB0byBgb3ZlcmxheU9wdGlvbnMucGFuZWxDbGFzc2Agd2hlbiBgb3ZlcmxheU9wdGlvbnNgIGlzIG5vdCBzZXQuXG5cdCAqIFdoZW4gYm90aCBhcmUgc3VwcGxpZWQsIGBvdmVybGF5T3B0aW9ucy5wYW5lbENsYXNzYCB0YWtlcyBwcmVjZWRlbmNlLlxuXHQgKi9cblx0QElucHV0KCkgcGFuZWxDbGFzc05hbWUgPSBcIlwiO1xuXHQvKipcblx0ICogT3B0aW9uYWwgQ0RLIE92ZXJsYXlDb25maWcgb3ZlcnJpZGVzLlxuXHQgKiBTaGFsbG93LW1lcmdlZCBvbiB0b3Agb2YgY29tcG9uZW50IGRlZmF1bHRzIOKAlCBjb25zdW1lciBhbHdheXMgd2lucy5cblx0ICogUHJvdmlkaW5nIGBwb3NpdGlvblN0cmF0ZWd5YCBvciBgc2Nyb2xsU3RyYXRlZ3lgIHJlcGxhY2VzIHRoZSBjb21wb25lbnQgZGVmYXVsdCBlbnRpcmVseS5cblx0ICovXG5cdEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zPzogUGRtT3ZlcmxheU9wdGlvbnM7XG5cdEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJQaWNrIGEgZGF0ZVwiO1xuXHRASW5wdXQoKSByYW5nZVBsYWNlaG9sZGVyID0gXCJQaWNrIGEgZGF0ZSByYW5nZVwiO1xuXHRASW5wdXQoKSBmb3JtYXQgPSBcIk1NTSBkLCB5eXl5XCI7XG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG5cdEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG5cdEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblx0QElucHV0KCkgYWxsb3dTYW1lRGF5UmFuZ2UgPSB0cnVlO1xuXHRASW5wdXQoKSBjbG9zZU9uU2VsZWN0ID0gdHJ1ZTtcblx0QElucHV0KCkgbWluRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXHRASW5wdXQoKSBtYXhEYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cdEBJbnB1dCgpIG1pblllYXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXHRASW5wdXQoKSBtYXhZZWFyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblx0QElucHV0KCkgZGlzYWJsZWREYXRlczogRGF0ZVtdID0gW107XG5cdEBJbnB1dCgpIGlzRGF0ZURpc2FibGVkOiAoKGRhdGU6IERhdGUpID0+IGJvb2xlYW4pIHwgbnVsbCA9IG51bGw7XG5cblx0QE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcblx0QE91dHB1dCgpIHJhbmdlVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBkbUNhbGVuZGFyUmFuZ2UgfCBudWxsPigpO1xuXHRAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblx0QE91dHB1dCgpIG1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG5cdEBJbnB1dCgpXG5cdHNldCBvcGVuKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0aWYgKHRoaXMuX29wZW4gPT09ICEhdmFsdWUpIHJldHVybjtcblx0XHRpZiAodmFsdWUpIHtcblx0XHRcdHRoaXMub3BlblBhbmVsKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHRcdH1cblx0fVxuXHRnZXQgb3BlbigpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5fb3Blbjtcblx0fVxuXG5cdEBJbnB1dCgpXG5cdHNldCB2YWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwpIHtcblx0XHR0aGlzLl92YWx1ZSA9IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZSk7XG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblx0Z2V0IHZhbHVlKCk6IERhdGUgfCBudWxsIHtcblx0XHRyZXR1cm4gdGhpcy5fdmFsdWU7XG5cdH1cblxuXHRASW5wdXQoKVxuXHRzZXQgcmFuZ2VWYWx1ZSh2YWx1ZTogUGRtQ2FsZW5kYXJSYW5nZSB8IG51bGwpIHtcblx0XHR0aGlzLl9yYW5nZVZhbHVlID0gdmFsdWVcblx0XHRcdD8ge1xuXHRcdFx0XHRcdHN0YXJ0OiB0aGlzLm5vcm1hbGl6ZURhdGUodmFsdWUuc3RhcnQpLFxuXHRcdFx0XHRcdGVuZDogdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlLmVuZCksXG5cdFx0XHRcdH1cblx0XHRcdDogbnVsbDtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXHRnZXQgcmFuZ2VWYWx1ZSgpOiBQZG1DYWxlbmRhclJhbmdlIHwgbnVsbCB7XG5cdFx0cmV0dXJuIHRoaXMuX3JhbmdlVmFsdWU7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLmRlc3Ryb3lPdmVybGF5KCk7XG5cdH1cblxuXHRnZXQgcmVzb2x2ZWRWYXJpYW50KCk6IFBkbUNhbGVuZGFyVmFyaWFudCB7XG5cdFx0cmV0dXJuIHRoaXMudmFyaWFudCA9PT0gXCJyYW5nZVwiID8gXCJyYW5nZVwiIDogXCJzaW5nbGVcIjtcblx0fVxuXG5cdGdldCB0cmlnZ2VySWQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5pZCB8fCBgJHt0aGlzLmluc3RhbmNlSWR9LXRyaWdnZXJgO1xuXHR9XG5cblx0Z2V0IHBhbmVsSWQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYCR7dGhpcy5pZCB8fCB0aGlzLmluc3RhbmNlSWR9LXBhbmVsYDtcblx0fVxuXG5cdGdldCBoYXNTaW5nbGVWYWx1ZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5yZXNvbHZlZFZhcmlhbnQgPT09IFwic2luZ2xlXCIgJiYgISF0aGlzLl92YWx1ZTtcblx0fVxuXG5cdGdldCBoYXNSYW5nZVZhbHVlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnJlc29sdmVkVmFyaWFudCA9PT0gXCJyYW5nZVwiICYmICEhdGhpcy5fcmFuZ2VWYWx1ZT8uc3RhcnQ7XG5cdH1cblxuXHRnZXQgZGlzcGxheVRleHQoKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5yZXNvbHZlZFZhcmlhbnQgPT09IFwic2luZ2xlXCIpIHtcblx0XHRcdHJldHVybiB0aGlzLl92YWx1ZSA/IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLl92YWx1ZSkgOiB0aGlzLnBsYWNlaG9sZGVyO1xuXHRcdH1cblxuXHRcdGNvbnN0IHN0YXJ0ID0gdGhpcy5fcmFuZ2VWYWx1ZT8uc3RhcnQgPz8gbnVsbDtcblx0XHRjb25zdCBlbmQgPSB0aGlzLl9yYW5nZVZhbHVlPy5lbmQgPz8gbnVsbDtcblxuXHRcdGlmICghc3RhcnQpIHtcblx0XHRcdHJldHVybiB0aGlzLnJhbmdlUGxhY2Vob2xkZXI7XG5cdFx0fVxuXG5cdFx0aWYgKCFlbmQpIHtcblx0XHRcdHJldHVybiBgJHt0aGlzLmZvcm1hdERhdGUoc3RhcnQpfSAtYDtcblx0XHR9XG5cblx0XHRyZXR1cm4gYCR7dGhpcy5mb3JtYXREYXRlKHN0YXJ0KX0gLSAke3RoaXMuZm9ybWF0RGF0ZShlbmQpfWA7XG5cdH1cblxuXHRnZXQgdGV4dENsYXNzZXMoKTogc3RyaW5nW10ge1xuXHRcdGNvbnN0IGhhc1ZhbHVlID1cblx0XHRcdHRoaXMucmVzb2x2ZWRWYXJpYW50ID09PSBcInNpbmdsZVwiXG5cdFx0XHRcdD8gdGhpcy5oYXNTaW5nbGVWYWx1ZVxuXHRcdFx0XHQ6IHRoaXMuaGFzUmFuZ2VWYWx1ZTtcblx0XHRyZXR1cm4gW1xuXHRcdFx0XCJtaW4tdy0wIGZsZXgtMSB0cnVuY2F0ZSB0ZXh0LWxlZnQgdGV4dC1zbSBsZWFkaW5nLTVcIixcblx0XHRcdGhhc1ZhbHVlID8gXCJ0ZXh0LWZvcmVncm91bmRcIiA6IFwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIsXG5cdFx0XTtcblx0fVxuXG5cdGdldCByb290Q2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdFwiZ3JpZCBnYXAtMlwiLFxuXHRcdFx0dGhpcy5yZXNvbHZlZFZhcmlhbnQgPT09IFwicmFuZ2VcIiA/IFwidy1bMjgwcHhdXCIgOiBcInctWzE5N3B4XVwiLFxuXHRcdFx0dGhpcy5jbGFzc05hbWUsXG5cdFx0XTtcblx0fVxuXG5cdGdldCB0cmlnZ2VyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0Y29uc3QgZm9jdXNTdHlsZSA9IHRoaXMuX29wZW4gfHwgdGhpcy50cmlnZ2VyRm9jdXNlZDtcblxuXHRcdHJldHVybiBbXG5cdFx0XHRcImJvcmRlci1pbnB1dCBmb2N1cy12aXNpYmxlOmJvcmRlci1yaW5nIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nLzUwIGFyaWEtaW52YWxpZDpyaW5nLTIgYXJpYS1pbnZhbGlkOnJpbmctZGVzdHJ1Y3RpdmUgYXJpYS1pbnZhbGlkOmJvcmRlci1kZXN0cnVjdGl2ZSByZWxhdGl2ZSBmbGV4IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIgZ2FwLTIgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zb2xpZCBiZy1iYWNrZ3JvdW5kIHB4LTMgcHktWzcuNXB4XSB0ZXh0LWxlZnQgdGV4dC1zbSBzaGFkb3ctc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzXCIsXG5cdFx0XHRcIm1pbi1oLVszNnB4XSBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpvcGFjaXR5LTUwXCIsXG5cdFx0XHRmb2N1c1N0eWxlID8gXCJib3JkZXItcmluZyByaW5nLTIgcmluZy1yaW5nLzUwXCIgOiBcIlwiLFxuXHRcdFx0dGhpcy5pbnZhbGlkID8gXCJib3JkZXItZGVzdHJ1Y3RpdmUgcmluZy1kZXN0cnVjdGl2ZS8yMFwiIDogXCJcIixcblx0XHRcdHRoaXMudHJpZ2dlckNsYXNzTmFtZSxcblx0XHRdO1xuXHR9XG5cblx0dG9nZ2xlT3BlbigpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5zZXRPcGVuKCF0aGlzLl9vcGVuKTtcblx0fVxuXG5cdG9uVHJpZ2dlckZvY3VzKCk6IHZvaWQge1xuXHRcdHRoaXMudHJpZ2dlckZvY3VzZWQgPSB0cnVlO1xuXHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHR9XG5cblx0b25UcmlnZ2VyQmx1cigpOiB2b2lkIHtcblx0XHR0aGlzLnRyaWdnZXJGb2N1c2VkID0gZmFsc2U7XG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRvbkNhbGVuZGFyVmFsdWVDaGFuZ2UodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG5cdFx0dGhpcy5fdmFsdWUgPSB0aGlzLm5vcm1hbGl6ZURhdGUodmFsdWUpO1xuXHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSA/IHRoaXMuY2xvbmVEYXRlKHRoaXMuX3ZhbHVlKSA6IG51bGwpO1xuXG5cdFx0aWYgKHRoaXMuY2xvc2VPblNlbGVjdCAmJiB0aGlzLl92YWx1ZSkge1xuXHRcdFx0dGhpcy5zZXRPcGVuKGZhbHNlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdFx0fVxuXHR9XG5cblx0b25DYWxlbmRhclJhbmdlVmFsdWVDaGFuZ2UodmFsdWU6IFBkbUNhbGVuZGFyUmFuZ2UgfCBudWxsKTogdm9pZCB7XG5cdFx0dGhpcy5fcmFuZ2VWYWx1ZSA9IHZhbHVlXG5cdFx0XHQ/IHtcblx0XHRcdFx0XHRzdGFydDogdGhpcy5ub3JtYWxpemVEYXRlKHZhbHVlLnN0YXJ0KSxcblx0XHRcdFx0XHRlbmQ6IHRoaXMubm9ybWFsaXplRGF0ZSh2YWx1ZS5lbmQpLFxuXHRcdFx0XHR9XG5cdFx0XHQ6IG51bGw7XG5cblx0XHR0aGlzLnJhbmdlVmFsdWVDaGFuZ2UuZW1pdChcblx0XHRcdHRoaXMuX3JhbmdlVmFsdWVcblx0XHRcdFx0PyB7XG5cdFx0XHRcdFx0XHRzdGFydDogdGhpcy5fcmFuZ2VWYWx1ZS5zdGFydFxuXHRcdFx0XHRcdFx0XHQ/IHRoaXMuY2xvbmVEYXRlKHRoaXMuX3JhbmdlVmFsdWUuc3RhcnQpXG5cdFx0XHRcdFx0XHRcdDogbnVsbCxcblx0XHRcdFx0XHRcdGVuZDogdGhpcy5fcmFuZ2VWYWx1ZS5lbmRcblx0XHRcdFx0XHRcdFx0PyB0aGlzLmNsb25lRGF0ZSh0aGlzLl9yYW5nZVZhbHVlLmVuZClcblx0XHRcdFx0XHRcdFx0OiBudWxsLFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0OiBudWxsLFxuXHRcdCk7XG5cblx0XHRpZiAoXG5cdFx0XHR0aGlzLmNsb3NlT25TZWxlY3QgJiZcblx0XHRcdHRoaXMuX3JhbmdlVmFsdWU/LnN0YXJ0ICYmXG5cdFx0XHR0aGlzLl9yYW5nZVZhbHVlPy5lbmRcblx0XHQpIHtcblx0XHRcdHRoaXMuc2V0T3BlbihmYWxzZSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRvbkNhbGVuZGFyTW9udGhDaGFuZ2UobW9udGg6IERhdGUpOiB2b2lkIHtcblx0XHR0aGlzLm1vbnRoQ2hhbmdlLmVtaXQodGhpcy5jbG9uZURhdGUobW9udGgpKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDprZXlkb3duLmVzY2FwZVwiKVxuXHRvbkVzY2FwZSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5fb3Blbikge1xuXHRcdFx0dGhpcy5zZXRPcGVuKGZhbHNlKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHNldE9wZW4obmV4dE9wZW46IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAodGhpcy5fb3BlbiA9PT0gbmV4dE9wZW4pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAobmV4dE9wZW4pIHtcblx0XHRcdHRoaXMub3BlblBhbmVsKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgb3BlblBhbmVsKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdGNvbnN0IHRyaWdnZXJFbCA9IHRoaXMudHJpZ2dlclJlZj8ubmF0aXZlRWxlbWVudDtcblx0XHRpZiAoIXRyaWdnZXJFbCkgcmV0dXJuO1xuXG5cdFx0dGhpcy5fb3BlbiA9IHRydWU7XG5cdFx0dGhpcy5vcGVuQ2hhbmdlLmVtaXQodHJ1ZSk7XG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cblx0XHRjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gY3JlYXRlRmxleGlibGVQb3NpdGlvblN0cmF0ZWd5KFxuXHRcdFx0dGhpcy5vdmVybGF5LFxuXHRcdFx0dHJpZ2dlckVsLFxuXHRcdFx0OCxcblx0XHQpO1xuXG5cdFx0Ly8gQ1JJVElDQUw6IFVzZSBtZXJnZU92ZXJsYXlQYW5lbENsYXNzIHRvIGVuc3VyZSB6LWluZGV4IGlzIG5ldmVyIGxvc3QuXG5cdFx0Ly8gQ29uc3VtZXIgY2xhc3NlcyBhcmUgYXBwZW5kZWQgQUZURVIgYmFzZSB6LWluZGV4LlxuXHRcdGNvbnN0IHpJbmRleEVuZm9yY2VkID0gbWVyZ2VPdmVybGF5UGFuZWxDbGFzcyhcblx0XHRcdE9WRVJMQVlfQkFTRV9aX0lOREVYLFxuXHRcdFx0dGhpcy5wYW5lbENsYXNzTmFtZSxcblx0XHQpO1xuXG5cdFx0Ly8gUmVzb2x2ZSBwYW5lbENsYXNzOiBvdmVybGF5T3B0aW9ucy5wYW5lbENsYXNzIHdpbnM7IG90aGVyd2lzZSB1c2Ugei1pbmRleCBlbmZvcmNlZC5cblx0XHRjb25zdCByZXNvbHZlZFBhbmVsQ2xhc3MgPSB0aGlzLm92ZXJsYXlPcHRpb25zPy5wYW5lbENsYXNzXG5cdFx0XHQ/IG1lcmdlT3ZlcmxheVBhbmVsQ2xhc3MoXG5cdFx0XHRcdFx0T1ZFUkxBWV9CQVNFX1pfSU5ERVgsXG5cdFx0XHRcdFx0dGhpcy5vdmVybGF5T3B0aW9ucy5wYW5lbENsYXNzLFxuXHRcdFx0XHQpXG5cdFx0XHQ6IHpJbmRleEVuZm9yY2VkO1xuXG5cdFx0dGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG5cdFx0XHRwb3NpdGlvblN0cmF0ZWd5LFxuXHRcdFx0c2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcblx0XHRcdC8vIENvbnN1bWVyIG92ZXJyaWRlcyBhcmUgc3ByZWFkIGZpcnN0LlxuXHRcdFx0Li4udGhpcy5vdmVybGF5T3B0aW9ucyxcblx0XHRcdC8vIHBhbmVsQ2xhc3MgYWx3YXlzIGVuZm9yY2VkIGxhc3QgdG8gcHJlc2VydmUgei1pbmRleC5cblx0XHRcdHBhbmVsQ2xhc3M6IHJlc29sdmVkUGFuZWxDbGFzcyxcblx0XHR9KTtcblxuXHRcdGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcblx0XHRcdHRoaXMucGFuZWxUZW1wbGF0ZVJlZixcblx0XHRcdHRoaXMudmlld0NvbnRhaW5lclJlZixcblx0XHQpO1xuXHRcdHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuXHRcdHRoaXMuYmFja2Ryb3BTdWIgPSB0aGlzLm92ZXJsYXlSZWZcblx0XHRcdC5vdXRzaWRlUG9pbnRlckV2ZW50cygpXG5cdFx0XHQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgTm9kZTtcblx0XHRcdFx0aWYgKCF0cmlnZ2VyRWwuY29udGFpbnModGFyZ2V0KSkge1xuXHRcdFx0XHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHR9XG5cblx0cHJpdmF0ZSBjbG9zZVBhbmVsKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5vdmVybGF5UmVmICYmICF0aGlzLl9vcGVuKSByZXR1cm47XG5cblx0XHR0aGlzLl9vcGVuID0gZmFsc2U7XG5cdFx0dGhpcy5vcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdHByaXZhdGUgZGVzdHJveU92ZXJsYXkoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuYmFja2Ryb3BTdWIpIHtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIgPSBudWxsO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vdmVybGF5UmVmKSB7XG5cdFx0XHR0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmID0gbnVsbDtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBmb3JtYXREYXRlRm5zKGRhdGUsIHRoaXMuZm9ybWF0IHx8IFwiTU1NIGQsIHl5eXlcIik7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXR1cm4gZm9ybWF0RGF0ZUZucyhkYXRlLCBcIk1NTSBkLCB5eXl5XCIpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgbm9ybWFsaXplRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBEYXRlIHwgbnVsbCB7XG5cdFx0aWYgKCEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB8fCBOdW1iZXIuaXNOYU4odmFsdWUuZ2V0VGltZSgpKSkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG5ldyBEYXRlKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHZhbHVlLmdldERhdGUoKSk7XG5cdH1cblxuXHRwcml2YXRlIGNsb25lRGF0ZShkYXRlOiBEYXRlKTogRGF0ZSB7XG5cdFx0cmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG5cdH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwicm9vdENsYXNzZXNcIj5cbiAgPHBkbS1sYWJlbCAqbmdJZj1cImxhYmVsXCIgW2ZvcklkXT1cInRyaWdnZXJJZFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtjbGFzc05hbWVdPVwibGFiZWxDbGFzc05hbWVcIj5cbiAgICB7eyBsYWJlbCB9fVxuICA8L3BkbS1sYWJlbD5cblxuICA8YnV0dG9uXG4gICAgI3RyaWdnZXJFbFxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtpZF09XCJ0cmlnZ2VySWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuXCJcbiAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cInBhbmVsSWRcIlxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ2RpYWxvZydcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICBbbmdDbGFzc109XCJ0cmlnZ2VyQ2xhc3Nlc1wiXG4gICAgW2F0dHIudGl0bGVdPVwiZGlzcGxheVRleHRcIlxuICAgIChjbGljayk9XCJ0b2dnbGVPcGVuKClcIlxuICAgIChmb2N1cyk9XCJvblRyaWdnZXJGb2N1cygpXCJcbiAgICAoYmx1cik9XCJvblRyaWdnZXJCbHVyKClcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJmbGV4IGgtNSB3LTUgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtMC41IHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgY2xhc3M9XCJoLTQgdy00XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjhcIj5cbiAgICAgICAgPHBhdGggZD1cIk04IDJ2NFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgICAgPHBhdGggZD1cIk0xNiAydjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjQuNVwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxNi41XCIgcng9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9yZWN0PlxuICAgICAgICA8cGF0aCBkPVwiTTMgOS41aDE4XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPC9zdmc+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gW25nQ2xhc3NdPVwidGV4dENsYXNzZXNcIj57eyBkaXNwbGF5VGV4dCB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwYW5lbFRlbXBsYXRlPlxuICA8ZGl2IFtpZF09XCJwYW5lbElkXCIgcm9sZT1cImRpYWxvZ1wiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbCA/IHRyaWdnZXJJZCA6IG51bGxcIj5cbiAgICA8cGRtLWNhbGVuZGFyXG4gICAgICBbdmFyaWFudF09XCJyZXNvbHZlZFZhcmlhbnRcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtyYW5nZVZhbHVlXT1cInJhbmdlVmFsdWVcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFthbGxvd1NhbWVEYXlSYW5nZV09XCJhbGxvd1NhbWVEYXlSYW5nZVwiXG4gICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgW21pblllYXJdPVwibWluWWVhclwiXG4gICAgICBbbWF4WWVhcl09XCJtYXhZZWFyXCJcbiAgICAgIFtkaXNhYmxlZERhdGVzXT1cImRpc2FibGVkRGF0ZXNcIlxuICAgICAgW2lzRGF0ZURpc2FibGVkXT1cImlzRGF0ZURpc2FibGVkXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkNhbGVuZGFyVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAocmFuZ2VWYWx1ZUNoYW5nZSk9XCJvbkNhbGVuZGFyUmFuZ2VWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChtb250aENoYW5nZSk9XCJvbkNhbGVuZGFyTW9udGhDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvcGRtLWNhbGVuZGFyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
45
45
  }], propDecorators: { className: [{
46
46
  type: Input
47
47
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jYXJkL2NhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUUxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBTUgsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1XLGNBQVMsR0FBRyxFQUFFLENBQUM7S0FDekI7OzZHQUZZLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG9GQ3RDN0IsMGZBa0JBOzJGRG9CYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsVUFBVSxtQkFFSCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBDYXJkIGNvbXBvbmVudCAtIFZpc3VhbCBjb250YWluZXIgcHJpbWl0aXZvXG4gKiBcbiAqIEJSRUFLSU5HIENIQU5HRSBlbiB2MC4yLjA6IHZhcmlhbnQ9XCJsb2dpblwiIGVsaW1pbmFkby5cbiAqIENhcmQgZXMgYWhvcmEgdW4gY29tcG9uZW50ZSBVSSBwdXJvIHNpbiBsw7NnaWNhIGRlIG5lZ29jaW8uXG4gKiBcbiAqIFBhcmEgY3JlYXIgdW4gbG9naW4gZm9ybSwgY29tcG9uZXIgY29uIHByaW1pdGl2b3M6XG4gKiBcbiAqIEBleGFtcGxlXG4gKiA8cGRtLWNhcmQ+XG4gKiAgIDxkaXYgcGRtQ2FyZEhlYWRlcj5cbiAqICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIj5Mb2dpbjwvaDM+XG4gKiAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPkVudGVyIHlvdXIgY3JlZGVudGlhbHM8L3A+XG4gKiAgIDwvZGl2PlxuICogICA8ZGl2IHBkbUNhcmRDb250ZW50PlxuICogICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICogICAgICAgPHBkbS1maWVsZD5cbiAqICAgICAgICAgPHBkbS1sYWJlbD5FbWFpbDwvcGRtLWxhYmVsPlxuICogICAgICAgICA8cGRtLWlucHV0IHR5cGU9XCJlbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgLz5cbiAqICAgICAgIDwvcGRtLWZpZWxkPlxuICogICAgICAgPHBkbS1maWVsZD5cbiAqICAgICAgICAgPHBkbS1sYWJlbD5QYXNzd29yZDwvcGRtLWxhYmVsPlxuICogICAgICAgICA8cGRtLWlucHV0LXBhc3N3b3JkIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCIgLz5cbiAqICAgICAgIDwvcGRtLWZpZWxkPlxuICogICAgIDwvZm9ybT5cbiAqICAgPC9kaXY+XG4gKiAgIDxkaXYgcGRtQ2FyZEZvb3Rlcj5cbiAqICAgICA8cGRtLWJ1dHRvbiAoY2xpY2spPVwib25Mb2dpbigpXCI+TG9naW48L3BkbS1idXR0b24+XG4gKiAgIDwvZGl2PlxuICogPC9wZG0tY2FyZD5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbUNhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbn1cbiIsIjxzZWN0aW9uXG4gIFtuZ0NsYXNzXT1cIltcbiAgICAndy1mdWxsIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgcHktNiBzaGFkb3ctc20nLFxuICAgIGNsYXNzTmFtZVxuICBdXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGZsZXgtY29sIGdhcC02XCI+XG4gICAgPGRpdiBjbGFzcz1cInB4LTZcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwZG1DYXJkSGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHgtNlwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3BkbUNhcmRDb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHgtNlwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3BkbUNhcmRGb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2FyZC9jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jYXJkL2NhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUUxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBTUgsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1XLGNBQVMsR0FBRyxFQUFFLENBQUM7S0FDekI7OzZHQUZZLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG9GQ3RDN0IsMGZBa0JBOzJGRG9CYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsVUFBVSxtQkFFSCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBDYXJkIGNvbXBvbmVudCAtIFZpc3VhbCBjb250YWluZXIgcHJpbWl0aXZvXG4gKiBcbiAqIEJSRUFLSU5HIENIQU5HRSBlbiB2MC4yLjA6IHZhcmlhbnQ9XCJsb2dpblwiIGVsaW1pbmFkby5cbiAqIENhcmQgZXMgYWhvcmEgdW4gY29tcG9uZW50ZSBVSSBwdXJvIHNpbiBsw7NnaWNhIGRlIG5lZ29jaW8uXG4gKiBcbiAqIFBhcmEgY3JlYXIgdW4gbG9naW4gZm9ybSwgY29tcG9uZXIgY29uIHByaW1pdGl2b3M6XG4gKiBcbiAqIEBleGFtcGxlXG4gKiA8cGRtLWNhcmQ+XG4gKiAgIDxkaXYgcGRtQ2FyZEhlYWRlcj5cbiAqICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIj5Mb2dpbjwvaDM+XG4gKiAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPkVudGVyIHlvdXIgY3JlZGVudGlhbHM8L3A+XG4gKiAgIDwvZGl2PlxuICogICA8ZGl2IHBkbUNhcmRDb250ZW50PlxuICogICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICogICAgICAgPHBkbS1maWVsZD5cbiAqICAgICAgICAgPHBkbS1sYWJlbD5FbWFpbDwvcGRtLWxhYmVsPlxuICogICAgICAgICA8cGRtLWlucHV0IHR5cGU9XCJlbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgLz5cbiAqICAgICAgIDwvcGRtLWZpZWxkPlxuICogICAgICAgPHBkbS1maWVsZD5cbiAqICAgICAgICAgPHBkbS1sYWJlbD5QYXNzd29yZDwvcGRtLWxhYmVsPlxuICogICAgICAgICA8cGRtLWlucHV0LXBhc3N3b3JkIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCIgLz5cbiAqICAgICAgIDwvcGRtLWZpZWxkPlxuICogICAgIDwvZm9ybT5cbiAqICAgPC9kaXY+XG4gKiAgIDxkaXYgcGRtQ2FyZEZvb3Rlcj5cbiAqICAgICA8cGRtLWJ1dHRvbiAoY2xpY2spPVwib25Mb2dpbigpXCI+TG9naW48L3BkbS1idXR0b24+XG4gKiAgIDwvZGl2PlxuICogPC9wZG0tY2FyZD5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBkbUNhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbn1cbiIsIjxzZWN0aW9uXG4gIFtuZ0NsYXNzXT1cIltcbiAgICAndy1mdWxsIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgcHktNiBzaGFkb3ctc20nLFxuICAgIGNsYXNzTmFtZVxuICBdXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGZsZXgtY29sIGdhcC02XCI+XG4gICAgPGRpdiBjbGFzcz1cInB4LTZcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwZG1DYXJkSGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHgtNlwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3BkbUNhcmRDb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHgtNlwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3BkbUNhcmRGb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { PdmCardComponent } from './card.component';
4
+ import * as i0 from "@angular/core";
5
+ const COMPONENTS = [
6
+ PdmCardComponent,
7
+ ];
8
+ export class PdmCardModule {
9
+ }
10
+ PdmCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ PdmCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmCardModule, declarations: [PdmCardComponent], imports: [CommonModule], exports: [PdmCardComponent] });
12
+ PdmCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCardModule, imports: [CommonModule] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCardModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [CommonModule],
17
+ declarations: COMPONENTS,
18
+ exports: COMPONENTS
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2FyZC9jYXJkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFcEQsTUFBTSxVQUFVLEdBQUc7SUFDakIsZ0JBQWdCO0NBQ2pCLENBQUM7QUFPRixNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTsyR0FBYixhQUFhLGlCQVJ4QixnQkFBZ0IsYUFJTixZQUFZLGFBSnRCLGdCQUFnQjsyR0FRTCxhQUFhLFlBSmQsWUFBWTsyRkFJWCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLFVBQVU7b0JBQ3hCLE9BQU8sRUFBRSxVQUFVO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGRtQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vY2FyZC5jb21wb25lbnQnO1xuXG5jb25zdCBDT01QT05FTlRTID0gW1xuICBQZG1DYXJkQ29tcG9uZW50LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcbiAgZXhwb3J0czogQ09NUE9ORU5UU1xufSlcbmV4cG9ydCBjbGFzcyBQZG1DYXJkTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,102 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class PdmCarouselComponent {
5
+ constructor() {
6
+ this.variant = 'default';
7
+ this.className = '';
8
+ this.slides = [];
9
+ this.startIndex = 0;
10
+ this.loop = false;
11
+ this.showCounter = false;
12
+ this.indexChange = new EventEmitter();
13
+ this._index = 0;
14
+ }
15
+ ngOnInit() {
16
+ this._index = this.normalizeIndex(this.startIndex);
17
+ }
18
+ get index() {
19
+ return this._index;
20
+ }
21
+ get canPrev() {
22
+ return this.loop || this._index > 0;
23
+ }
24
+ get canNext() {
25
+ return this.loop || this._index < this.maxIndex;
26
+ }
27
+ get maxIndex() {
28
+ if (this.slides.length === 0) {
29
+ return 0;
30
+ }
31
+ return Math.max(0, this.slides.length - this.currentWindowSize);
32
+ }
33
+ get visibleSlides() {
34
+ if (this.slides.length === 0) {
35
+ return [];
36
+ }
37
+ return this.sliceWindow(this.currentWindowSize);
38
+ }
39
+ get currentWindowSize() {
40
+ if (typeof this.windowSize === 'number' && this.windowSize > 0) {
41
+ return Math.max(1, Math.floor(this.windowSize));
42
+ }
43
+ if (this.variant === 'sizes') {
44
+ return 3;
45
+ }
46
+ if (this.variant === 'orientation') {
47
+ return 2;
48
+ }
49
+ return 1;
50
+ }
51
+ onPrev() {
52
+ if (!this.canPrev) {
53
+ return;
54
+ }
55
+ const next = this._index - 1;
56
+ this.setIndex(this.loop && next < 0 ? this.maxIndex : next);
57
+ }
58
+ onNext() {
59
+ if (!this.canNext) {
60
+ return;
61
+ }
62
+ const next = this._index + 1;
63
+ this.setIndex(this.loop && next > this.maxIndex ? 0 : next);
64
+ }
65
+ setIndex(value) {
66
+ const normalized = this.normalizeIndex(value);
67
+ this._index = normalized;
68
+ this.indexChange.emit(this._index);
69
+ }
70
+ normalizeIndex(value) {
71
+ if (this.slides.length === 0) {
72
+ return 0;
73
+ }
74
+ return Math.min(this.maxIndex, Math.max(0, value));
75
+ }
76
+ sliceWindow(size) {
77
+ return this.slides.slice(this._index, this._index + size);
78
+ }
79
+ }
80
+ PdmCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
+ PdmCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmCarouselComponent, selector: "pdm-carousel", inputs: { variant: "variant", className: "className", slides: "slides", startIndex: "startIndex", loop: "loop", windowSize: "windowSize", showCounter: "showCounter" }, outputs: { indexChange: "indexChange" }, ngImport: i0, template: "<section [ngClass]=\"[className]\">\n <div *ngIf=\"variant !== 'orientation'\" class=\"flex items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 appearance-none box-border items-center justify-center rounded-full border border-solid border-input bg-background p-2.5\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div class=\"flex items-center\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex items-center\" [ngClass]=\"i > 0 ? 'pl-4' : ''\">\n <div class=\"flex h-40 w-32 items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-lg border border-solid border-border bg-background py-6 shadow-sm\">\n <div class=\"text-center text-2xl font-semibold text-foreground\">{{ slide }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 appearance-none box-border items-center justify-center rounded-full border border-solid border-input bg-background p-2.5\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <p *ngIf=\"variant !== 'orientation' && showCounter\" class=\"m-0 pt-2 text-sm font-medium text-muted-foreground\">\n {{ slides.length ? (index + 1) : 0 }} / {{ slides.length }}\n </p>\n\n <div *ngIf=\"variant === 'orientation'\" class=\"flex flex-col items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 appearance-none box-border items-center justify-center rounded-full border border-solid border-input bg-background p-2.5\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 15L12 9L6 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div class=\"flex w-80 flex-col\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex h-36 w-full items-center p-1\" [ngClass]=\"i > 0 ? 'pt-1' : ''\">\n <div class=\"flex h-full w-full items-center justify-center rounded-lg border border-solid border-border bg-background py-6 shadow-sm\">\n <div class=\"text-center text-2xl font-semibold text-foreground\">{{ slide }}</div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 appearance-none box-border items-center justify-center rounded-full border border-solid border-input bg-background p-2.5\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCarouselComponent, decorators: [{
83
+ type: Component,
84
+ args: [{ selector: 'pdm-carousel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"[className]\">\n <div *ngIf=\"variant !== 'orientation'\" class=\"flex items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 appearance-none box-border items-center justify-center rounded-full border border-solid border-input bg-background p-2.5\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div class=\"flex items-center\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex items-center\" [ngClass]=\"i > 0 ? 'pl-4' : ''\">\n <div class=\"flex h-40 w-32 items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-lg border border-solid border-border bg-background py-6 shadow-sm\">\n <div class=\"text-center text-2xl font-semibold text-foreground\">{{ slide }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 appearance-none box-border items-center justify-center rounded-full border border-solid border-input bg-background p-2.5\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <p *ngIf=\"variant !== 'orientation' && showCounter\" class=\"m-0 pt-2 text-sm font-medium text-muted-foreground\">\n {{ slides.length ? (index + 1) : 0 }} / {{ slides.length }}\n </p>\n\n <div *ngIf=\"variant === 'orientation'\" class=\"flex flex-col items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 appearance-none box-border items-center justify-center rounded-full border border-solid border-input bg-background p-2.5\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 15L12 9L6 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div class=\"flex w-80 flex-col\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex h-36 w-full items-center p-1\" [ngClass]=\"i > 0 ? 'pt-1' : ''\">\n <div class=\"flex h-full w-full items-center justify-center rounded-lg border border-solid border-border bg-background py-6 shadow-sm\">\n <div class=\"text-center text-2xl font-semibold text-foreground\">{{ slide }}</div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 appearance-none box-border items-center justify-center rounded-full border border-solid border-input bg-background p-2.5\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-foreground\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n</section>\n" }]
85
+ }], propDecorators: { variant: [{
86
+ type: Input
87
+ }], className: [{
88
+ type: Input
89
+ }], slides: [{
90
+ type: Input
91
+ }], startIndex: [{
92
+ type: Input
93
+ }], loop: [{
94
+ type: Input
95
+ }], windowSize: [{
96
+ type: Input
97
+ }], showCounter: [{
98
+ type: Input
99
+ }], indexChange: [{
100
+ type: Output
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTaEcsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU1XLFlBQU8sR0FBdUIsU0FBUyxDQUFDO1FBQ3hDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixXQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUNwQyxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUViLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUUzQyxXQUFNLEdBQUcsQ0FBQyxDQUFDO0tBZ0ZwQjtJQTlFQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLE1B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S0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBQZG1DYXJvdXNlbFZhcmlhbnQgPSAnZGVmYXVsdCcgfCAnc2l6ZXMnIHwgJ29yaWVudGF0aW9uJyB8ICdhcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tY2Fyb3VzZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1DYXJvdXNlbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6IFBkbUNhcm91c2VsVmFyaWFudCA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG4gIEBJbnB1dCgpIHNsaWRlczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiA9IFtdO1xuICBASW5wdXQoKSBzdGFydEluZGV4ID0gMDtcbiAgQElucHV0KCkgbG9vcCA9IGZhbHNlO1xuICBASW5wdXQoKSB3aW5kb3dTaXplPzogbnVtYmVyO1xuICBASW5wdXQoKSBzaG93Q291bnRlciA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBpbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHByaXZhdGUgX2luZGV4ID0gMDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbmRleCA9IHRoaXMubm9ybWFsaXplSW5kZXgodGhpcy5zdGFydEluZGV4KTtcbiAgfVxuXG4gIGdldCBpbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9pbmRleDtcbiAgfVxuXG4gIGdldCBjYW5QcmV2KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxvb3AgfHwgdGhpcy5faW5kZXggPiAwO1xuICB9XG5cbiAgZ2V0IGNhbk5leHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubG9vcCB8fCB0aGlzLl9pbmRleCA8IHRoaXMubWF4SW5kZXg7XG4gIH1cblxuICBnZXQgbWF4SW5kZXgoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5zbGlkZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgubWF4KDAsIHRoaXMuc2xpZGVzLmxlbmd0aCAtIHRoaXMuY3VycmVudFdpbmRvd1NpemUpO1xuICB9XG5cbiAgZ2V0IHZpc2libGVTbGlkZXMoKTogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB7XG4gICAgaWYgKHRoaXMuc2xpZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNsaWNlV2luZG93KHRoaXMuY3VycmVudFdpbmRvd1NpemUpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRXaW5kb3dTaXplKCk6IG51bWJlciB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLndpbmRvd1NpemUgPT09ICdudW1iZXInICYmIHRoaXMud2luZG93U2l6ZSA+IDApIHtcbiAgICAgIHJldHVybiBNYXRoLm1heCgxLCBNYXRoLmZsb29yKHRoaXMud2luZG93U2l6ZSkpO1xuICAgIH1cbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAnc2l6ZXMnKSB7XG4gICAgICByZXR1cm4gMztcbiAgICB9XG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ29yaWVudGF0aW9uJykge1xuICAgICAgcmV0dXJuIDI7XG4gICAgfVxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgb25QcmV2KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jYW5QcmV2KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dCA9IHRoaXMuX2luZGV4IC0gMTtcbiAgICB0aGlzLnNldEluZGV4KHRoaXMubG9vcCAmJiBuZXh0IDwgMCA/IHRoaXMubWF4SW5kZXggOiBuZXh0KTtcbiAgfVxuXG4gIG9uTmV4dCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2FuTmV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHQgPSB0aGlzLl9pbmRleCArIDE7XG4gICAgdGhpcy5zZXRJbmRleCh0aGlzLmxvb3AgJiYgbmV4dCA+IHRoaXMubWF4SW5kZXggPyAwIDogbmV4dCk7XG4gIH1cblxuICBwcml2YXRlIHNldEluZGV4KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gdGhpcy5ub3JtYWxpemVJbmRleCh2YWx1ZSk7XG4gICAgdGhpcy5faW5kZXggPSBub3JtYWxpemVkO1xuICAgIHRoaXMuaW5kZXhDaGFuZ2UuZW1pdCh0aGlzLl9pbmRleCk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZUluZGV4KHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnNsaWRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5taW4odGhpcy5tYXhJbmRleCwgTWF0aC5tYXgoMCwgdmFsdWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2xpY2VXaW5kb3coc2l6ZTogbnVtYmVyKTogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuc2xpZGVzLnNsaWNlKHRoaXMuX2luZGV4LCB0aGlzLl9pbmRleCArIHNpemUpO1xuICB9XG59XG4iLCI8c2VjdGlvbiBbbmdDbGFzc109XCJbY2xhc3NOYW1lXVwiPlxuICA8ZGl2ICpuZ0lmPVwidmFyaWFudCAhPT0gJ29yaWVudGF0aW9uJ1wiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaC04IHctOCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWlucHV0IGJnLWJhY2tncm91bmQgcC0yLjVcIlxuICAgICAgW25nQ2xhc3NdPVwiIWNhblByZXYgPyAnb3BhY2l0eS01MCcgOiAnJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIWNhblByZXZcIlxuICAgICAgKGNsaWNrKT1cIm9uUHJldigpXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJQcmV2aW91cyBzbGlkZVwiXG4gICAgPlxuICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgY2xhc3M9XCJoLTQgdy00IHRleHQtZm9yZWdyb3VuZFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8cGF0aCBkPVwiTTE1IDE4TDkgMTJMMTUgNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzbGlkZSBvZiB2aXNpYmxlU2xpZGVzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiIFtuZ0NsYXNzXT1cImkgPiAwID8gJ3BsLTQnIDogJydcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaC00MCB3LTMyIGl0ZW1zLWNlbnRlciBwLTFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBoLWZ1bGwgdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHB5LTYgc2hhZG93LXNtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC0yeGwgZm9udC1zZW1pYm9sZCB0ZXh0LWZvcmVncm91bmRcIj57eyBzbGlkZSB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImlubGluZS1mbGV4IGgtOCB3LTggYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHAtMi41XCJcbiAgICAgIFtuZ0NsYXNzXT1cIiFjYW5OZXh0ID8gJ29wYWNpdHktNTAnIDogJydcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5OZXh0XCJcbiAgICAgIChjbGljayk9XCJvbk5leHQoKVwiXG4gICAgICBhcmlhLWxhYmVsPVwiTmV4dCBzbGlkZVwiXG4gICAgPlxuICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgY2xhc3M9XCJoLTQgdy00IHRleHQtZm9yZWdyb3VuZFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8cGF0aCBkPVwiTTkgMThMMTUgMTJMOSA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxwICpuZ0lmPVwidmFyaWFudCAhPT0gJ29yaWVudGF0aW9uJyAmJiBzaG93Q291bnRlclwiIGNsYXNzPVwibS0wIHB0LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICB7eyBzbGlkZXMubGVuZ3RoID8gKGluZGV4ICsgMSkgOiAwIH19IC8ge3sgc2xpZGVzLmxlbmd0aCB9fVxuICA8L3A+XG5cbiAgPGRpdiAqbmdJZj1cInZhcmlhbnQgPT09ICdvcmllbnRhdGlvbidcIiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImlubGluZS1mbGV4IGgtOCB3LTggYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHAtMi41XCJcbiAgICAgIFtuZ0NsYXNzXT1cIiFjYW5QcmV2ID8gJ29wYWNpdHktNTAnIDogJydcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5QcmV2XCJcbiAgICAgIChjbGljayk9XCJvblByZXYoKVwiXG4gICAgICBhcmlhLWxhYmVsPVwiUHJldmlvdXMgc2xpZGVcIlxuICAgID5cbiAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIGNsYXNzPVwiaC00IHctNCB0ZXh0LWZvcmVncm91bmRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPHBhdGggZD1cIk0xOCAxNUwxMiA5TDYgMTVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8L3N2Zz5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctODAgZmxleC1jb2xcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHZpc2libGVTbGlkZXM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImZsZXggaC0zNiB3LWZ1bGwgaXRlbXMtY2VudGVyIHAtMVwiIFtuZ0NsYXNzXT1cImkgPiAwID8gJ3B0LTEnIDogJydcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaC1mdWxsIHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCBweS02IHNoYWRvdy1zbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciB0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtZm9yZWdyb3VuZFwiPnt7IHNsaWRlIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaC04IHctOCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWlucHV0IGJnLWJhY2tncm91bmQgcC0yLjVcIlxuICAgICAgW25nQ2xhc3NdPVwiIWNhbk5leHQgPyAnb3BhY2l0eS01MCcgOiAnJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIWNhbk5leHRcIlxuICAgICAgKGNsaWNrKT1cIm9uTmV4dCgpXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJOZXh0IHNsaWRlXCJcbiAgICA+XG4gICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBjbGFzcz1cImgtNCB3LTQgdGV4dC1mb3JlZ3JvdW5kXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNNiA5TDEyIDE1TDE4IDlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8L3N2Zz5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { PdmCarouselComponent } from './carousel.component';
4
+ import * as i0 from "@angular/core";
5
+ const COMPONENTS = [
6
+ PdmCarouselComponent,
7
+ ];
8
+ export class PdmCarouselModule {
9
+ }
10
+ PdmCarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ PdmCarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmCarouselModule, declarations: [PdmCarouselComponent], imports: [CommonModule], exports: [PdmCarouselComponent] });
12
+ PdmCarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCarouselModule, imports: [CommonModule] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmCarouselModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [CommonModule],
17
+ declarations: COMPONENTS,
18
+ exports: COMPONENTS
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nhcm91c2VsL2Nhcm91c2VsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFNUQsTUFBTSxVQUFVLEdBQUc7SUFDakIsb0JBQW9CO0NBQ3JCLENBQUM7QUFPRixNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBUjVCLG9CQUFvQixhQUlWLFlBQVksYUFKdEIsb0JBQW9COytHQVFULGlCQUFpQixZQUpsQixZQUFZOzJGQUlYLGlCQUFpQjtrQkFMN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUUsVUFBVTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBkbUNhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJvdXNlbC5jb21wb25lbnQnO1xuXG5jb25zdCBDT01QT05FTlRTID0gW1xuICBQZG1DYXJvdXNlbENvbXBvbmVudCxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IENPTVBPTkVOVFMsXG4gIGV4cG9ydHM6IENPTVBPTkVOVFNcbn0pXG5leHBvcnQgY2xhc3MgUGRtQ2Fyb3VzZWxNb2R1bGUge31cbiJdfQ==
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
174
174
  }], emptyLabel: [{
175
175
  type: Input
176
176
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUzFFLE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFNVyxTQUFJLEdBQWlCLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFFdEIsU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUNwQixTQUFJLEdBQWEsRUFBRSxDQUFDO1FBQ3BCLFFBQUcsR0FBYSxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUNyQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsd0JBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUN6QiwwQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDM0IsMEJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQzNCLGNBQVMsR0FBYSxFQUFFLENB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bnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFBkbUNoYXJ0VHlwZSA9ICdhcmVhJyB8ICdiYXInIHwgJ2xpbmUnIHwgJ3BpZScgfCAncmFkYXInIHwgJ3JhZGlhbCcgfCAndG9vbHRpcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1DaGFydENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHR5cGU6IFBkbUNoYXJ0VHlwZSA9ICdiYXInO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgZGVzY3JpcHRpb24gPSAnJztcblxuICBASW5wdXQoKSBkZXNrdG9wTGFiZWwgPSAnJztcbiAgQElucHV0KCkgZGVza3RvcFZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIG1vYmlsZUxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIG1vYmlsZVZhbHVlID0gJyc7XG5cbiAgQElucHV0KCkgbGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIGJhcnM6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIGxpbmU6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIHBpZTogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgcmFkYXI6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIHJhZGlhbFZhbHVlID0gMDtcbiAgQElucHV0KCkgcmFkaWFsTGFiZWwgPSAnJztcbiAgQElucHV0KCkgcmFkaWFsRGVzY3JpcHRpb24gPSAnJztcbiAgQElucHV0KCkgdG9vbHRpcFRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHRvb2x0aXBQcmltYXJ5TGFiZWwgPSAnJztcbiAgQElucHV0KCkgdG9vbHRpcFByaW1hcnlWYWx1ZSA9ICcnO1xuICBASW5wdXQoKSB0b29sdGlwU2Vjb25kYXJ5TGFiZWwgPSAnJztcbiAgQElucHV0KCkgdG9vbHRpcFNlY29uZGFyeVZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIHBpZUxhYmVsczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgdG9vbHRpcEhpbnQgPSAnJztcbiAgQElucHV0KCkgcmFkYXJNZXRyaWNQcmVmaXggPSAnTWV0cmljJztcbiAgQElucHV0KCkgZW1wdHlMYWJlbCA9ICdObyBkYXRhIGF2YWlsYWJsZSc7XG5cbiAgZ2V0IG5vcm1hbGl6ZWRCYXJzKCk6IG51bWJlcltdIHtcbiAgICBpZiAoIXRoaXMuYmFycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXggPSBNYXRoLm1heCguLi50aGlzLmJhcnMpO1xuICAgIGlmIChtYXggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmJhcnMubWFwKCgpID0+IDApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJhcnMubWFwKCh2YWx1ZSkgPT4gTWF0aC5tYXgoOCwgTWF0aC5yb3VuZCgodmFsdWUgLyBtYXgpICogMTgzKSkpO1xuICB9XG5cbiAgZ2V0IG5vcm1hbGl6ZWRMaW5lKCk6IG51bWJlcltdIHtcbiAgICBpZiAoIXRoaXMubGluZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXggPSBNYXRoLm1heCguLi50aGlzLmxpbmUpO1xuICAgIGlmIChtYXggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmxpbmUubWFwKCgpID0+IDE3MCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGluZS5tYXAoKHZhbHVlKSA9PiAxODAgLSBNYXRoLnJvdW5kKCh2YWx1ZSAvIG1heCkgKiAxNTApKTtcbiAgfVxuXG4gIGdldCBsaW5lUGF0aCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBvaW50cyA9IHRoaXMubm9ybWFsaXplZExpbmU7XG4gICAgaWYgKCFwb2ludHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RlcCA9IHBvaW50cy5sZW5ndGggPiAxID8gMzIwIC8gKHBvaW50cy5sZW5ndGggLSAxKSA6IDA7XG4gICAgcmV0dXJuIHBvaW50c1xuICAgICAgLm1hcCgoeSwgaW5kZXgpID0+IGAke2luZGV4ID09PSAwID8gJ00nIDogJ0wnfSAke01hdGgucm91bmQoaW5kZXggKiBzdGVwKX0gJHt5fWApXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgZ2V0IGFyZWFQYXRoKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGluZVBhdGggPSB0aGlzLmxpbmVQYXRoO1xuICAgIGlmICghbGluZVBhdGgpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7bGluZVBhdGh9IEwgMzIwIDE4MCBMIDAgMTgwIFpgO1xuICB9XG5cbiAgZ2V0IHBpZVNlZ21lbnRzKCk6IHsgY29sb3I6IHN0cmluZzsgc2l6ZTogbnVtYmVyOyBvZmZzZXQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10ge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5waWUucmVkdWNlKChhY2MsIHZhbHVlKSA9PiBhY2MgKyBNYXRoLm1heCh2YWx1ZSwgMCksIDApO1xuICAgIGlmICh0b3RhbCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGNvbnN0IGNvbG9ycyA9IFsnaHNsKHZhcigtLWNoYXJ0LTEpKScsICdoc2wodmFyKC0tY2hhcnQtMikpJywgJ2hzbCh2YXIoLS1jaGFydC0zKSknLCAnaHNsKHZhcigtLWNoYXJ0LTQpKSddO1xuICAgIHJldHVybiB0aGlzLnBpZS5tYXAoKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IChNYXRoLm1heCh2YWx1ZSwgMCkgLyB0b3RhbCkgKiAxMDA7XG4gICAgICBjb25zdCBzZWdtZW50ID0ge1xuICAgICAgICBjb2xvcjogY29sb3JzW2luZGV4ICUgY29sb3JzLmxlbmd0aF0sXG4gICAgICAgIHNpemUsXG4gICAgICAgIG9mZnNldCxcbiAgICAgICAgbGFiZWw6IHRoaXMucGllTGFiZWxzW2luZGV4XSA/PyBgU2VyaWVzICR7aW5kZXggKyAxfWBcbiAgICAgIH07XG4gICAgICBvZmZzZXQgKz0gc2l6ZTtcbiAgICAgIHJldHVybiBzZWdtZW50O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHBpZUdyYWRpZW50KCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLnBpZVNlZ21lbnRzO1xuICAgIGlmICghc2VnbWVudHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ2NvbmljLWdyYWRpZW50KGhzbCh2YXIoLS1tdXRlZCkpIDAgMTAwJSknO1xuICAgIH1cblxuICAgIHJldHVybiBgY29uaWMtZ3JhZGllbnQoJHtzZWdtZW50c1xuICAgICAgLm1hcCgoc2VnbWVudCkgPT4gYCR7c2VnbWVudC5jb2xvcn0gJHtzZWdtZW50Lm9mZnNldH0lICR7c2VnbWVudC5vZmZzZXQgKyBzZWdtZW50LnNpemV9JWApXG4gICAgICAuam9pbignLCAnKX0pYDtcbiAgfVxuXG4gIGdldCByYWRhclBvaW50cygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMucmFkYXIuc2xpY2UoMCwgNik7XG4gICAgaWYgKCF2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoLi4udmFsdWVzLCAxKTtcbiAgICBjb25zdCByYWRpdXMgPSA3MjtcbiAgICBjb25zdCBjZW50ZXIgPSA4MDtcbiAgICByZXR1cm4gdmFsdWVzXG4gICAgICAubWFwKCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgYW5nbGUgPSAoKE1hdGguUEkgKiAyKSAvIHZhbHVlcy5sZW5ndGgpICogaW5kZXggLSBNYXRoLlBJIC8gMjtcbiAgICAgICAgY29uc3QgdmFsdWVSYWRpdXMgPSAoTWF0aC5tYXgodmFsdWUsIDApIC8gbWF4KSAqIHJhZGl1cztcbiAgICAgICAgY29uc3QgeCA9IGNlbnRlciArIE1hdGguY29zKGFuZ2xlKSAqIHZhbHVlUmFkaXVzO1xuICAgICAgICBjb25zdCB5ID0gY2VudGVyICsgTWF0aC5zaW4oYW5nbGUpICogdmFsdWVSYWRpdXM7XG4gICAgICAgIHJldHVybiBgJHt4fSwke3l9YDtcbiAgICAgIH0pXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgZ2V0IHJhZGlhbFN0cm9rZU9mZnNldCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGJvdW5kZWQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbih0aGlzLnJhZGlhbFZhbHVlLCAxMDApKTtcbiAgICBjb25zdCBjaXJjdW1mZXJlbmNlID0gMiAqIE1hdGguUEkgKiA0MjtcbiAgICByZXR1cm4gY2lyY3VtZmVyZW5jZSAtIChib3VuZGVkIC8gMTAwKSAqIGNpcmN1bWZlcmVuY2U7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIFtuZ0NsYXNzXT1cIlsndy1mdWxsIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyIGJnLWNhcmQgdGV4dC1jYXJkLWZvcmVncm91bmQnLCBjbGFzc05hbWVdXCI+XG4gIDxkaXYgKm5nSWY9XCJ0aXRsZSB8fCBkZXNjcmlwdGlvbiB8fCBkZXNrdG9wTGFiZWwgfHwgZGVza3RvcFZhbHVlIHx8IG1vYmlsZUxhYmVsIHx8IG1vYmlsZVZhbHVlXCIgY2xhc3M9XCJmbGV4IHctZnVsbCBpdGVtcy1zdHJldGNoIGJvcmRlci1iIGJvcmRlci1ib3JkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBtaW4tdy0wIGZsZXgtMSBmbGV4LWNvbCBnYXAtMSBweC02IHBiLTMgcHQtNFwiPlxuICAgICAgPGgzICpuZ0lmPVwidGl0bGVcIiBjbGFzcz1cIm0tMCB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0XCI+e3sgdGl0bGUgfX08L2gzPlxuICAgICAgPHAgKm5nSWY9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwibS0wIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiZGVza3RvcExhYmVsIHx8IGRlc2t0b3BWYWx1ZSB8fCBtb2JpbGVMYWJlbCB8fCBtb2JpbGVWYWx1ZVwiIGNsYXNzPVwiZmxleCBoLTI0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBoLWZ1bGwgdy00NCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBib3JkZXItbCBib3JkZXItYm9yZGVyIGJnLW11dGVkIHB4LTYgcHktNFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZGVza3RvcExhYmVsIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTEgdGV4dC0yeGwgZm9udC1zZW1pYm9sZFwiPnt7IGRlc2t0b3BWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaC1mdWxsIHctNDQgZmxleC1jb2wganVzdGlmeS1jZW50ZXIgcHgtNiBweS00XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBtb2JpbGVMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtdC0xIHRleHQtMnhsIGZvbnQtc2VtaWJvbGRcIj57eyBtb2JpbGVWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIHAtNlwiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidiYXInXCIgY2xhc3M9XCJmbGV4IGgtNjAgdy1mdWxsIGZsZXgtY29sIGp1c3RpZnktZW5kIGdhcC0yXCI+XG4gICAgICAgIDxwICpuZ0lmPVwibm9ybWFsaXplZEJhcnMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJtLTAgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBlbXB0eUxhYmVsIH19PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgaC00OCB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCByaWdodC0wIGJvcmRlci10IGJvcmRlci1ib3JkZXIgb3BhY2l0eS01MFwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBsZWZ0LTAgcmlnaHQtMCB0b3AtMS80IGJvcmRlci10IGJvcmRlci1ib3JkZXIgb3BhY2l0eS01MFwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBsZWZ0LTAgcmlnaHQtMCB0b3AtMS8yIGJvcmRlci10IGJvcmRlci1ib3JkZXIgb3BhY2l0eS01MFwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBsZWZ0LTAgcmlnaHQtMCB0b3AtMy80IGJvcmRlci10IGJvcmRlci1ib3JkZXIgb3BhY2l0eS01MFwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgYm90dG9tLTAgZmxleCBoLTQ4IGl0ZW1zLWVuZCBnYXAtMC41IHB4LTAuNVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYmFyIG9mIG5vcm1hbGl6ZWRCYXJzXCIgY2xhc3M9XCJ3LTEuNSByb3VuZGVkLXNtIGJnLXByaW1hcnlcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImJhclwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImxhYmVscy5sZW5ndGhcIiBjbGFzcz1cImZsZXggaC00IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0yXCI+XG4gICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGxhYmVsIG9mIGxhYmVsc1wiIGNsYXNzPVwidHJ1bmNhdGUgdGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmUnXCIgY2xhc3M9XCJmbGV4IGgtNjAgdy1mdWxsIGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgIDxwICpuZ0lmPVwibm9ybWFsaXplZExpbmUubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJtLTAgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBlbXB0eUxhYmVsIH19PC9wPlxuICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMzIwIDE4MFwiIGNsYXNzPVwiaC00OCB3LWZ1bGxcIj5cbiAgICAgICAgICA8bGluZSB4MT1cIjBcIiB5MT1cIjE4MFwiIHgyPVwiMzIwXCIgeTI9XCIxODBcIiBzdHJva2U9XCJoc2wodmFyKC0tYm9yZGVyKSlcIiBzdHJva2Utd2lkdGg9XCIxXCI+PC9saW5lPlxuICAgICAgICAgIDxsaW5lIHgxPVwiMFwiIHkxPVwiMTM1XCIgeDI9XCIzMjBcIiB5Mj1cIjEzNVwiIHN0cm9rZT1cImhzbCh2YXIoLS1ib3JkZXIpKVwiIHN0cm9rZS13aWR0aD1cIjFcIiBvcGFjaXR5PVwiMC41XCI+PC9saW5lPlxuICAgICAgICAgIDxsaW5lIHgxPVwiMFwiIHkxPVwiOTBcIiB4Mj1cIjMyMFwiIHkyPVwiOTBcIiBzdHJva2U9XCJoc2wodmFyKC0tYm9yZGVyKSlcIiBzdHJva2Utd2lkdGg9XCIxXCIgb3BhY2l0eT1cIjAuNVwiPjwvbGluZT5cbiAgICAgICAgICA8bGluZSB4MT1cIjBcIiB5MT1cIjQ1XCIgeDI9XCIzMjBcIiB5Mj1cIjQ1XCIgc3Ryb2tlPVwiaHNsKHZhcigtLWJvcmRlcikpXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIG9wYWNpdHk9XCIwLjVcIj48L2xpbmU+XG4gICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJsaW5lUGF0aFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiaHNsKHZhcigtLXByaW1hcnkpKVwiIHN0cm9rZS13aWR0aD1cIjIuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJsYWJlbHMubGVuZ3RoXCIgY2xhc3M9XCJmbGV4IGgtNCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtMlwiPlxuICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBsYWJlbHNcIiBjbGFzcz1cInRydW5jYXRlIHRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidhcmVhJ1wiIGNsYXNzPVwiZmxleCBoLTYwIHctZnVsbCBmbGV4LWNvbCBnYXAtMlwiPlxuICAgICAgICA8cCAqbmdJZj1cIm5vcm1hbGl6ZWRMaW5lLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwibS0wIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZW1wdHlMYWJlbCB9fTwvcD5cbiAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDMyMCAxODBcIiBjbGFzcz1cImgtNDggdy1mdWxsXCI+XG4gICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwZG0tY2hhcnQtYXJlYS1ncmFkaWVudFwiIHgxPVwiMFwiIHkxPVwiMFwiIHgyPVwiMFwiIHkyPVwiMVwiPlxuICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwJVwiIHN0b3AtY29sb3I9XCJoc2wodmFyKC0tcHJpbWFyeSkpXCIgc3RvcC1vcGFjaXR5PVwiMC4zNVwiPjwvc3RvcD5cbiAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMTAwJVwiIHN0b3AtY29sb3I9XCJoc2wodmFyKC0tcHJpbWFyeSkpXCIgc3RvcC1vcGFjaXR5PVwiMC4wMlwiPjwvc3RvcD5cbiAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgIDxsaW5lIHgxPVwiMFwiIHkxPVwiMTgwXCIgeDI9XCIzMjBcIiB5Mj1cIjE4MFwiIHN0cm9rZT1cImhzbCh2YXIoLS1ib3JkZXIpKVwiIHN0cm9rZS13aWR0aD1cIjFcIj48L2xpbmU+XG4gICAgICAgICAgPGxpbmUgeDE9XCIwXCIgeTE9XCIxMzVcIiB4Mj1cIjMyMFwiIHkyPVwiMTM1XCIgc3Ryb2tlPVwiaHNsKHZhcigtLWJvcmRlcikpXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIG9wYWNpdHk9XCIwLjVcIj48L2xpbmU+XG4gICAgICAgICAgPGxpbmUgeDE9XCIwXCIgeTE9XCI5MFwiIHgyPVwiMzIwXCIgeTI9XCI5MFwiIHN0cm9rZT1cImhzbCh2YXIoLS1ib3JkZXIpKVwiIHN0cm9rZS13aWR0aD1cIjFcIiBvcGFjaXR5PVwiMC41XCI+PC9saW5lPlxuICAgICAgICAgIDxsaW5lIHgxPVwiMFwiIHkxPVwiNDVcIiB4Mj1cIjMyMFwiIHkyPVwiNDVcIiBzdHJva2U9XCJoc2wodmFyKC0tYm9yZGVyKSlcIiBzdHJva2Utd2lkdGg9XCIxXCIgb3BhY2l0eT1cIjAuNVwiPjwvbGluZT5cbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImFyZWFQYXRoXCIgZmlsbD1cInVybCgjcGRtLWNoYXJ0LWFyZWEtZ3JhZGllbnQpXCI+PC9wYXRoPlxuICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwibGluZVBhdGhcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImhzbCh2YXIoLS1wcmltYXJ5KSlcIiBzdHJva2Utd2lkdGg9XCIyLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibGFiZWxzLmxlbmd0aFwiIGNsYXNzPVwiZmxleCBoLTQgdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTJcIj5cbiAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbGFiZWwgb2YgbGFiZWxzXCIgY2xhc3M9XCJ0cnVuY2F0ZSB0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncGllJ1wiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGgtNDAgdy00MCByb3VuZGVkLWZ1bGxcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwaWVHcmFkaWVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC03IHJvdW5kZWQtZnVsbCBiZy1jYXJkXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBmbGV4LTEgZ2FwLTJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzZWdtZW50IG9mIHBpZVNlZ21lbnRzXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgcHgtMyBweS0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzaXplLTIuNSByb3VuZGVkLWZ1bGxcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJzZWdtZW50LmNvbG9yXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIj57eyBzZWdtZW50LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIj57eyBzZWdtZW50LnNpemUgfCBudW1iZXI6ICcxLjAtMCcgfX0lPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncmFkYXInXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNlwiPlxuICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMTYwIDE2MFwiIGNsYXNzPVwiaC00NCB3LTQ0XCI+XG4gICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiODAsOCAxNDQsNDQgMTQ0LDExNiA4MCwxNTIgMTYsMTE2IDE2LDQ0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJoc2wodmFyKC0tYm9yZGVyKSlcIj48L3BvbHlnb24+XG4gICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiODAsMjggMTI2LDU0IDEyNiwxMDYgODAsMTMyIDM0LDEwNiAzNCw1NFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiaHNsKHZhcigtLWJvcmRlcikpXCIgb3BhY2l0eT1cIjAuNzVcIj48L3BvbHlnb24+XG4gICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiODAsNDggMTA5LDY0IDEwOSw5NiA4MCwxMTIgNTEsOTYgNTEsNjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImhzbCh2YXIoLS1ib3JkZXIpKVwiIG9wYWNpdHk9XCIwLjU1XCI+PC9wb2x5Z29uPlxuICAgICAgICAgIDxwb2x5Z29uIFthdHRyLnBvaW50c109XCJyYWRhclBvaW50c1wiIGZpbGw9XCJoc2wodmFyKC0tcHJpbWFyeSkpXCIgZmlsbC1vcGFjaXR5PVwiMC4yMlwiIHN0cm9rZT1cImhzbCh2YXIoLS1wcmltYXJ5KSlcIiBzdHJva2Utd2lkdGg9XCIyXCI+PC9wb2x5Z29uPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZmxleC0xIGdhcC0yXCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByYWRhcjsgaW5kZXggYXMgaVwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyIHB4LTMgcHktMiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHJhZGFyTWV0cmljUHJlZml4IH19IHt7IGkgKyAxIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiPnt7IGl0ZW0gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidyYWRpYWwnXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXggc2l6ZS00NCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgOTYgOTZcIiBjbGFzcz1cInNpemUtNDAgLXJvdGF0ZS05MFwiPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjQ4XCIgY3k9XCI0OFwiIHI9XCI0MlwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiaHNsKHZhcigtLW11dGVkKSlcIiBzdHJva2Utd2lkdGg9XCIxMFwiPjwvY2lyY2xlPlxuICAgICAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgICBjeD1cIjQ4XCJcbiAgICAgICAgICAgICAgY3k9XCI0OFwiXG4gICAgICAgICAgICAgIHI9XCI0MlwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiaHNsKHZhcigtLXByaW1hcnkpKVwiXG4gICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEwXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9XCIyNjMuODlcIlxuICAgICAgICAgICAgICBbYXR0ci5zdHJva2UtZGFzaG9mZnNldF09XCJyYWRpYWxTdHJva2VPZmZzZXRcIlxuICAgICAgICAgICAgPjwvY2lyY2xlPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtMnhsIGZvbnQtc2VtaWJvbGRcIj57eyByYWRpYWxWYWx1ZSB9fSU8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHJhZGlhbExhYmVsIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJtLTAgdGV4dC1zbSBmb250LW1lZGl1bVwiPnt7IHJhZGlhbExhYmVsIH19PC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwibS0wIG10LTEgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyByYWRpYWxEZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3Rvb2x0aXBzJ1wiIGNsYXNzPVwiZ3JpZCBnYXAtM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggdy1maXQgbWluLXctNTYgZmxleC1jb2wgZ2FwLTIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctY2FyZCBwLTMgc2hhZG93LXNtXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJtLTAgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyB0b29sdGlwVGl0bGUgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyB0b29sdGlwUHJpbWFyeUxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNlbWlib2xkXCI+e3sgdG9vbHRpcFByaW1hcnlWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHRleHQtc21cIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHRvb2x0aXBTZWNvbmRhcnlMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPnt7IHRvb2x0aXBTZWNvbmRhcnlWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxwICpuZ0lmPVwidG9vbHRpcEhpbnRcIiBjbGFzcz1cIm0tMCB0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHRvb2x0aXBIaW50IH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUzFFLE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFNVyxTQUFJLEdBQWlCLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFFdEIsU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUNwQixTQUFJLEdBQWEsRUFBRSxDQUFDO1FBQ3BCLFFBQUcsR0FBYSxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUNyQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsd0JBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUN6QiwwQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDM0IsMEJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQzNCLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsc0JBQWlC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QUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDdkMsT0FBTyxhQUFhLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDO0lBQ3pELENBQUM7OzhHQXJJVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix5dkJDVDlCLHVwU0FrSkE7MkZEeklhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxXQUFXLG1CQUVKLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFBkbUNoYXJ0VHlwZSA9ICdhcmVhJyB8ICdiYXInIHwgJ2xpbmUnIHwgJ3BpZScgfCAncmFkYXInIHwgJ3JhZGlhbCcgfCAndG9vbHRpcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0tY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1DaGFydENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHR5cGU6IFBkbUNoYXJ0VHlwZSA9ICdiYXInO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgZGVzY3JpcHRpb24gPSAnJztcblxuICBASW5wdXQoKSBkZXNrdG9wTGFiZWwgPSAnJztcbiAgQElucHV0KCkgZGVza3RvcFZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIG1vYmlsZUxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIG1vYmlsZVZhbHVlID0gJyc7XG5cbiAgQElucHV0KCkgbGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIGJhcnM6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIGxpbmU6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIHBpZTogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgcmFkYXI6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIHJhZGlhbFZhbHVlID0gMDtcbiAgQElucHV0KCkgcmFkaWFsTGFiZWwgPSAnJztcbiAgQElucHV0KCkgcmFkaWFsRGVzY3JpcHRpb24gPSAnJztcbiAgQElucHV0KCkgdG9vbHRpcFRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHRvb2x0aXBQcmltYXJ5TGFiZWwgPSAnJztcbiAgQElucHV0KCkgdG9vbHRpcFByaW1hcnlWYWx1ZSA9ICcnO1xuICBASW5wdXQoKSB0b29sdGlwU2Vjb25kYXJ5TGFiZWwgPSAnJztcbiAgQElucHV0KCkgdG9vbHRpcFNlY29uZGFyeVZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIHBpZUxhYmVsczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgdG9vbHRpcEhpbnQgPSAnJztcbiAgQElucHV0KCkgcmFkYXJNZXRyaWNQcmVmaXggPSAnTWV0cmljJztcbiAgQElucHV0KCkgZW1wdHlMYWJlbCA9ICdObyBkYXRhIGF2YWlsYWJsZSc7XG5cbiAgZ2V0IG5vcm1hbGl6ZWRCYXJzKCk6IG51bWJlcltdIHtcbiAgICBpZiAoIXRoaXMuYmFycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXggPSBNYXRoLm1heCguLi50aGlzLmJhcnMpO1xuICAgIGlmIChtYXggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmJhcnMubWFwKCgpID0+IDApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJhcnMubWFwKCh2YWx1ZSkgPT4gTWF0aC5tYXgoOCwgTWF0aC5yb3VuZCgodmFsdWUgLyBtYXgpICogMTgzKSkpO1xuICB9XG5cbiAgZ2V0IG5vcm1hbGl6ZWRMaW5lKCk6IG51bWJlcltdIHtcbiAgICBpZiAoIXRoaXMubGluZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXggPSBNYXRoLm1heCguLi50aGlzLmxpbmUpO1xuICAgIGlmIChtYXggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmxpbmUubWFwKCgpID0+IDE3MCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGluZS5tYXAoKHZhbHVlKSA9PiAxODAgLSBNYXRoLnJvdW5kKCh2YWx1ZSAvIG1heCkgKiAxNTApKTtcbiAgfVxuXG4gIGdldCBsaW5lUGF0aCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBvaW50cyA9IHRoaXMubm9ybWFsaXplZExpbmU7XG4gICAgaWYgKCFwb2ludHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RlcCA9IHBvaW50cy5sZW5ndGggPiAxID8gMzIwIC8gKHBvaW50cy5sZW5ndGggLSAxKSA6IDA7XG4gICAgcmV0dXJuIHBvaW50c1xuICAgICAgLm1hcCgoeSwgaW5kZXgpID0+IGAke2luZGV4ID09PSAwID8gJ00nIDogJ0wnfSAke01hdGgucm91bmQoaW5kZXggKiBzdGVwKX0gJHt5fWApXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgZ2V0IGFyZWFQYXRoKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGluZVBhdGggPSB0aGlzLmxpbmVQYXRoO1xuICAgIGlmICghbGluZVBhdGgpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7bGluZVBhdGh9IEwgMzIwIDE4MCBMIDAgMTgwIFpgO1xuICB9XG5cbiAgZ2V0IHBpZVNlZ21lbnRzKCk6IHsgY29sb3I6IHN0cmluZzsgc2l6ZTogbnVtYmVyOyBvZmZzZXQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10ge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5waWUucmVkdWNlKChhY2MsIHZhbHVlKSA9PiBhY2MgKyBNYXRoLm1heCh2YWx1ZSwgMCksIDApO1xuICAgIGlmICh0b3RhbCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGNvbnN0IGNvbG9ycyA9IFsnaHNsKHZhcigtLWNoYXJ0LTEpKScsICdoc2wodmFyKC0tY2hhcnQtMikpJywgJ2hzbCh2YXIoLS1jaGFydC0zKSknLCAnaHNsKHZhcigtLWNoYXJ0LTQpKSddO1xuICAgIHJldHVybiB0aGlzLnBpZS5tYXAoKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IChNYXRoLm1heCh2YWx1ZSwgMCkgLyB0b3RhbCkgKiAxMDA7XG4gICAgICBjb25zdCBzZWdtZW50ID0ge1xuICAgICAgICBjb2xvcjogY29sb3JzW2luZGV4ICUgY29sb3JzLmxlbmd0aF0sXG4gICAgICAgIHNpemUsXG4gICAgICAgIG9mZnNldCxcbiAgICAgICAgbGFiZWw6IHRoaXMucGllTGFiZWxzW2luZGV4XSA/PyBgU2VyaWVzICR7aW5kZXggKyAxfWBcbiAgICAgIH07XG4gICAgICBvZmZzZXQgKz0gc2l6ZTtcbiAgICAgIHJldHVybiBzZWdtZW50O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHBpZUdyYWRpZW50KCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLnBpZVNlZ21lbnRzO1xuICAgIGlmICghc2VnbWVudHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ2NvbmljLWdyYWRpZW50KGhzbCh2YXIoLS1tdXRlZCkpIDAgMTAwJSknO1xuICAgIH1cblxuICAgIHJldHVybiBgY29uaWMtZ3JhZGllbnQoJHtzZWdtZW50c1xuICAgICAgLm1hcCgoc2VnbWVudCkgPT4gYCR7c2VnbWVudC5jb2xvcn0gJHtzZWdtZW50Lm9mZnNldH0lICR7c2VnbWVudC5vZmZzZXQgKyBzZWdtZW50LnNpemV9JWApXG4gICAgICAuam9pbignLCAnKX0pYDtcbiAgfVxuXG4gIGdldCByYWRhclBvaW50cygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMucmFkYXIuc2xpY2UoMCwgNik7XG4gICAgaWYgKCF2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoLi4udmFsdWVzLCAxKTtcbiAgICBjb25zdCByYWRpdXMgPSA3MjtcbiAgICBjb25zdCBjZW50ZXIgPSA4MDtcbiAgICByZXR1cm4gdmFsdWVzXG4gICAgICAubWFwKCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgYW5nbGUgPSAoKE1hdGguUEkgKiAyKSAvIHZhbHVlcy5sZW5ndGgpICogaW5kZXggLSBNYXRoLlBJIC8gMjtcbiAgICAgICAgY29uc3QgdmFsdWVSYWRpdXMgPSAoTWF0aC5tYXgodmFsdWUsIDApIC8gbWF4KSAqIHJhZGl1cztcbiAgICAgICAgY29uc3QgeCA9IGNlbnRlciArIE1hdGguY29zKGFuZ2xlKSAqIHZhbHVlUmFkaXVzO1xuICAgICAgICBjb25zdCB5ID0gY2VudGVyICsgTWF0aC5zaW4oYW5nbGUpICogdmFsdWVSYWRpdXM7XG4gICAgICAgIHJldHVybiBgJHt4fSwke3l9YDtcbiAgICAgIH0pXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgZ2V0IHJhZGlhbFN0cm9rZU9mZnNldCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGJvdW5kZWQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbih0aGlzLnJhZGlhbFZhbHVlLCAxMDApKTtcbiAgICBjb25zdCBjaXJjdW1mZXJlbmNlID0gMiAqIE1hdGguUEkgKiA0MjtcbiAgICByZXR1cm4gY2lyY3VtZmVyZW5jZSAtIChib3VuZGVkIC8gMTAwKSAqIGNpcmN1bWZlcmVuY2U7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIFtuZ0NsYXNzXT1cIlsndy1mdWxsIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyIGJnLWNhcmQgdGV4dC1jYXJkLWZvcmVncm91bmQnLCBjbGFzc05hbWVdXCI+XG4gIDxkaXYgKm5nSWY9XCJ0aXRsZSB8fCBkZXNjcmlwdGlvbiB8fCBkZXNrdG9wTGFiZWwgfHwgZGVza3RvcFZhbHVlIHx8IG1vYmlsZUxhYmVsIHx8IG1vYmlsZVZhbHVlXCIgY2xhc3M9XCJmbGV4IHctZnVsbCBpdGVtcy1zdHJldGNoIGJvcmRlci1iIGJvcmRlci1ib3JkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBtaW4tdy0wIGZsZXgtMSBmbGV4LWNvbCBnYXAtMSBweC02IHBiLTMgcHQtNFwiPlxuICAgICAgPGgzICpuZ0lmPVwidGl0bGVcIiBjbGFzcz1cIm0tMCB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0XCI+e3sgdGl0bGUgfX08L2gzPlxuICAgICAgPHAgKm5nSWY9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwibS0wIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiZGVza3RvcExhYmVsIHx8IGRlc2t0b3BWYWx1ZSB8fCBtb2JpbGVMYWJlbCB8fCBtb2JpbGVWYWx1ZVwiIGNsYXNzPVwiZmxleCBoLTI0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBoLWZ1bGwgdy00NCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBib3JkZXItbCBib3JkZXItYm9yZGVyIGJnLW11dGVkIHB4LTYgcHktNFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZGVza3RvcExhYmVsIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTEgdGV4dC0yeGwgZm9udC1zZW1pYm9sZFwiPnt7IGRlc2t0b3BWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaC1mdWxsIHctNDQgZmxleC1jb2wganVzdGlmeS1jZW50ZXIgcHgtNiBweS00XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBtb2JpbGVMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtdC0xIHRleHQtMnhsIGZvbnQtc2VtaWJvbGRcIj57eyBtb2JpbGVWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIHAtNlwiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidiYXInXCIgY2xhc3M9XCJmbGV4IGgtNjAgdy1mdWxsIGZsZXgtY29sIGp1c3RpZnktZW5kIGdhcC0yXCI+XG4gICAgICAgIDxwICpuZ0lmPVwibm9ybWFsaXplZEJhcnMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJtLTAgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBlbXB0eUxhYmVsIH19PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgaC00OCB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGJvdHRvbS0wIGxlZnQtMCByaWdodC0wIGJvcmRlci10IGJvcmRlci1ib3JkZXIgb3BhY2l0eS01MFwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBsZWZ0LTAgcmlnaHQtMCB0b3AtMS80IGJvcmRlci10IGJvcmRlci1ib3JkZXIgb3BhY2l0eS01MFwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBsZWZ0LTAgcmlnaHQtMCB0b3AtMS8yIGJvcmRlci10IGJvcmRlci1ib3JkZXIgb3BhY2l0eS01MFwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBsZWZ0LTAgcmlnaHQtMCB0b3AtMy80IGJvcmRlci10IGJvcmRlci1ib3JkZXIgb3BhY2l0eS01MFwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgYm90dG9tLTAgZmxleCBoLTQ4IGl0ZW1zLWVuZCBnYXAtMC41IHB4LTAuNVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYmFyIG9mIG5vcm1hbGl6ZWRCYXJzXCIgY2xhc3M9XCJ3LTEuNSByb3VuZGVkLXNtIGJnLXByaW1hcnlcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImJhclwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImxhYmVscy5sZW5ndGhcIiBjbGFzcz1cImZsZXggaC00IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0yXCI+XG4gICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGxhYmVsIG9mIGxhYmVsc1wiIGNsYXNzPVwidHJ1bmNhdGUgdGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmUnXCIgY2xhc3M9XCJmbGV4IGgtNjAgdy1mdWxsIGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgIDxwICpuZ0lmPVwibm9ybWFsaXplZExpbmUubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJtLTAgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBlbXB0eUxhYmVsIH19PC9wPlxuICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMzIwIDE4MFwiIGNsYXNzPVwiaC00OCB3LWZ1bGxcIj5cbiAgICAgICAgICA8bGluZSB4MT1cIjBcIiB5MT1cIjE4MFwiIHgyPVwiMzIwXCIgeTI9XCIxODBcIiBzdHJva2U9XCJoc2wodmFyKC0tYm9yZGVyKSlcIiBzdHJva2Utd2lkdGg9XCIxXCI+PC9saW5lPlxuICAgICAgICAgIDxsaW5lIHgxPVwiMFwiIHkxPVwiMTM1XCIgeDI9XCIzMjBcIiB5Mj1cIjEzNVwiIHN0cm9rZT1cImhzbCh2YXIoLS1ib3JkZXIpKVwiIHN0cm9rZS13aWR0aD1cIjFcIiBvcGFjaXR5PVwiMC41XCI+PC9saW5lPlxuICAgICAgICAgIDxsaW5lIHgxPVwiMFwiIHkxPVwiOTBcIiB4Mj1cIjMyMFwiIHkyPVwiOTBcIiBzdHJva2U9XCJoc2wodmFyKC0tYm9yZGVyKSlcIiBzdHJva2Utd2lkdGg9XCIxXCIgb3BhY2l0eT1cIjAuNVwiPjwvbGluZT5cbiAgICAgICAgICA8bGluZSB4MT1cIjBcIiB5MT1cIjQ1XCIgeDI9XCIzMjBcIiB5Mj1cIjQ1XCIgc3Ryb2tlPVwiaHNsKHZhcigtLWJvcmRlcikpXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIG9wYWNpdHk9XCIwLjVcIj48L2xpbmU+XG4gICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJsaW5lUGF0aFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiaHNsKHZhcigtLXByaW1hcnkpKVwiIHN0cm9rZS13aWR0aD1cIjIuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJsYWJlbHMubGVuZ3RoXCIgY2xhc3M9XCJmbGV4IGgtNCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtMlwiPlxuICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBsYWJlbHNcIiBjbGFzcz1cInRydW5jYXRlIHRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidhcmVhJ1wiIGNsYXNzPVwiZmxleCBoLTYwIHctZnVsbCBmbGV4LWNvbCBnYXAtMlwiPlxuICAgICAgICA8cCAqbmdJZj1cIm5vcm1hbGl6ZWRMaW5lLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwibS0wIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZW1wdHlMYWJlbCB9fTwvcD5cbiAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDMyMCAxODBcIiBjbGFzcz1cImgtNDggdy1mdWxsXCI+XG4gICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwZG0tY2hhcnQtYXJlYS1ncmFkaWVudFwiIHgxPVwiMFwiIHkxPVwiMFwiIHgyPVwiMFwiIHkyPVwiMVwiPlxuICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwJVwiIHN0b3AtY29sb3I9XCJoc2wodmFyKC0tcHJpbWFyeSkpXCIgc3RvcC1vcGFjaXR5PVwiMC4zNVwiPjwvc3RvcD5cbiAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMTAwJVwiIHN0b3AtY29sb3I9XCJoc2wodmFyKC0tcHJpbWFyeSkpXCIgc3RvcC1vcGFjaXR5PVwiMC4wMlwiPjwvc3RvcD5cbiAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgIDxsaW5lIHgxPVwiMFwiIHkxPVwiMTgwXCIgeDI9XCIzMjBcIiB5Mj1cIjE4MFwiIHN0cm9rZT1cImhzbCh2YXIoLS1ib3JkZXIpKVwiIHN0cm9rZS13aWR0aD1cIjFcIj48L2xpbmU+XG4gICAgICAgICAgPGxpbmUgeDE9XCIwXCIgeTE9XCIxMzVcIiB4Mj1cIjMyMFwiIHkyPVwiMTM1XCIgc3Ryb2tlPVwiaHNsKHZhcigtLWJvcmRlcikpXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIG9wYWNpdHk9XCIwLjVcIj48L2xpbmU+XG4gICAgICAgICAgPGxpbmUgeDE9XCIwXCIgeTE9XCI5MFwiIHgyPVwiMzIwXCIgeTI9XCI5MFwiIHN0cm9rZT1cImhzbCh2YXIoLS1ib3JkZXIpKVwiIHN0cm9rZS13aWR0aD1cIjFcIiBvcGFjaXR5PVwiMC41XCI+PC9saW5lPlxuICAgICAgICAgIDxsaW5lIHgxPVwiMFwiIHkxPVwiNDVcIiB4Mj1cIjMyMFwiIHkyPVwiNDVcIiBzdHJva2U9XCJoc2wodmFyKC0tYm9yZGVyKSlcIiBzdHJva2Utd2lkdGg9XCIxXCIgb3BhY2l0eT1cIjAuNVwiPjwvbGluZT5cbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImFyZWFQYXRoXCIgZmlsbD1cInVybCgjcGRtLWNoYXJ0LWFyZWEtZ3JhZGllbnQpXCI+PC9wYXRoPlxuICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwibGluZVBhdGhcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImhzbCh2YXIoLS1wcmltYXJ5KSlcIiBzdHJva2Utd2lkdGg9XCIyLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibGFiZWxzLmxlbmd0aFwiIGNsYXNzPVwiZmxleCBoLTQgdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTJcIj5cbiAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbGFiZWwgb2YgbGFiZWxzXCIgY2xhc3M9XCJ0cnVuY2F0ZSB0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncGllJ1wiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGgtNDAgdy00MCByb3VuZGVkLWZ1bGxcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwaWVHcmFkaWVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC03IHJvdW5kZWQtZnVsbCBiZy1jYXJkXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBmbGV4LTEgZ2FwLTJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzZWdtZW50IG9mIHBpZVNlZ21lbnRzXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgcHgtMyBweS0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzaXplLTIuNSByb3VuZGVkLWZ1bGxcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJzZWdtZW50LmNvbG9yXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIj57eyBzZWdtZW50LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIj57eyBzZWdtZW50LnNpemUgfCBudW1iZXI6ICcxLjAtMCcgfX0lPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncmFkYXInXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNlwiPlxuICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMTYwIDE2MFwiIGNsYXNzPVwiaC00NCB3LTQ0XCI+XG4gICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiODAsOCAxNDQsNDQgMTQ0LDExNiA4MCwxNTIgMTYsMTE2IDE2LDQ0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJoc2wodmFyKC0tYm9yZGVyKSlcIj48L3BvbHlnb24+XG4gICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiODAsMjggMTI2LDU0IDEyNiwxMDYgODAsMTMyIDM0LDEwNiAzNCw1NFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiaHNsKHZhcigtLWJvcmRlcikpXCIgb3BhY2l0eT1cIjAuNzVcIj48L3BvbHlnb24+XG4gICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiODAsNDggMTA5LDY0IDEwOSw5NiA4MCwxMTIgNTEsOTYgNTEsNjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImhzbCh2YXIoLS1ib3JkZXIpKVwiIG9wYWNpdHk9XCIwLjU1XCI+PC9wb2x5Z29uPlxuICAgICAgICAgIDxwb2x5Z29uIFthdHRyLnBvaW50c109XCJyYWRhclBvaW50c1wiIGZpbGw9XCJoc2wodmFyKC0tcHJpbWFyeSkpXCIgZmlsbC1vcGFjaXR5PVwiMC4yMlwiIHN0cm9rZT1cImhzbCh2YXIoLS1wcmltYXJ5KSlcIiBzdHJva2Utd2lkdGg9XCIyXCI+PC9wb2x5Z29uPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZmxleC0xIGdhcC0yXCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByYWRhcjsgaW5kZXggYXMgaVwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyIHB4LTMgcHktMiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHJhZGFyTWV0cmljUHJlZml4IH19IHt7IGkgKyAxIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiPnt7IGl0ZW0gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidyYWRpYWwnXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXggc2l6ZS00NCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgOTYgOTZcIiBjbGFzcz1cInNpemUtNDAgLXJvdGF0ZS05MFwiPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjQ4XCIgY3k9XCI0OFwiIHI9XCI0MlwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiaHNsKHZhcigtLW11dGVkKSlcIiBzdHJva2Utd2lkdGg9XCIxMFwiPjwvY2lyY2xlPlxuICAgICAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgICBjeD1cIjQ4XCJcbiAgICAgICAgICAgICAgY3k9XCI0OFwiXG4gICAgICAgICAgICAgIHI9XCI0MlwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiaHNsKHZhcigtLXByaW1hcnkpKVwiXG4gICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEwXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9XCIyNjMuODlcIlxuICAgICAgICAgICAgICBbYXR0ci5zdHJva2UtZGFzaG9mZnNldF09XCJyYWRpYWxTdHJva2VPZmZzZXRcIlxuICAgICAgICAgICAgPjwvY2lyY2xlPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtMnhsIGZvbnQtc2VtaWJvbGRcIj57eyByYWRpYWxWYWx1ZSB9fSU8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHJhZGlhbExhYmVsIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJtLTAgdGV4dC1zbSBmb250LW1lZGl1bVwiPnt7IHJhZGlhbExhYmVsIH19PC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwibS0wIG10LTEgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyByYWRpYWxEZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3Rvb2x0aXBzJ1wiIGNsYXNzPVwiZ3JpZCBnYXAtM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXggdy1maXQgbWluLXctNTYgZmxleC1jb2wgZ2FwLTIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctY2FyZCBwLTMgc2hhZG93LXNtXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJtLTAgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyB0b29sdGlwVGl0bGUgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyB0b29sdGlwUHJpbWFyeUxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNlbWlib2xkXCI+e3sgdG9vbHRpcFByaW1hcnlWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHRleHQtc21cIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHRvb2x0aXBTZWNvbmRhcnlMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPnt7IHRvb2x0aXBTZWNvbmRhcnlWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxwICpuZ0lmPVwidG9vbHRpcEhpbnRcIiBjbGFzcz1cIm0tMCB0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHRvb2x0aXBIaW50IH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
@@ -0,0 +1,21 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { PdmChartComponent } from './chart.component';
4
+ import * as i0 from "@angular/core";
5
+ const COMPONENTS = [
6
+ PdmChartComponent,
7
+ ];
8
+ export class PdmChartModule {
9
+ }
10
+ PdmChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ PdmChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmChartModule, declarations: [PdmChartComponent], imports: [CommonModule], exports: [PdmChartComponent] });
12
+ PdmChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmChartModule, imports: [CommonModule] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmChartModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [CommonModule],
17
+ declarations: COMPONENTS,
18
+ exports: COMPONENTS
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFdEQsTUFBTSxVQUFVLEdBQUc7SUFDakIsaUJBQWlCO0NBQ2xCLENBQUM7QUFPRixNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQVJ6QixpQkFBaUIsYUFJUCxZQUFZLGFBSnRCLGlCQUFpQjs0R0FRTixjQUFjLFlBSmYsWUFBWTsyRkFJWCxjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLFVBQVU7b0JBQ3hCLE9BQU8sRUFBRSxVQUFVO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGRtQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2NoYXJ0LmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbXG4gIFBkbUNoYXJ0Q29tcG9uZW50LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcbiAgZXhwb3J0czogQ09NUE9ORU5UU1xufSlcbmV4cG9ydCBjbGFzcyBQZG1DaGFydE1vZHVsZSB7fVxuIl19