primeng 18.0.1 → 19.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 (1078) hide show
  1. package/base/style/basestyle.d.ts +11 -11
  2. package/config/themeprovider.d.ts +6 -0
  3. package/confirmdialog/confirmdialog.d.ts +1 -0
  4. package/dynamicdialog/dynamicdialog.d.ts +2 -2
  5. package/fesm2022/primeng-accordion.mjs +10 -10
  6. package/fesm2022/primeng-accordion.mjs.map +1 -1
  7. package/fesm2022/primeng-animateonscroll.mjs +1 -1
  8. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  9. package/fesm2022/primeng-api.mjs +5 -5
  10. package/fesm2022/primeng-api.mjs.map +1 -1
  11. package/fesm2022/primeng-autocomplete.mjs +2 -2
  12. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  13. package/fesm2022/primeng-autofocus.mjs +1 -1
  14. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  15. package/fesm2022/primeng-avatar.mjs +2 -2
  16. package/fesm2022/primeng-avatar.mjs.map +1 -1
  17. package/fesm2022/primeng-avatargroup.mjs +2 -2
  18. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  19. package/fesm2022/primeng-badge.mjs +3 -3
  20. package/fesm2022/primeng-badge.mjs.map +1 -1
  21. package/fesm2022/primeng-basecomponent.mjs +1 -1
  22. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  23. package/fesm2022/primeng-blockui.mjs +2 -2
  24. package/fesm2022/primeng-blockui.mjs.map +1 -1
  25. package/fesm2022/primeng-breadcrumb.mjs +2 -2
  26. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  27. package/fesm2022/primeng-button.mjs +5 -5
  28. package/fesm2022/primeng-button.mjs.map +1 -1
  29. package/fesm2022/primeng-buttongroup.mjs +2 -2
  30. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  31. package/fesm2022/primeng-calendar.mjs +4 -4
  32. package/fesm2022/primeng-calendar.mjs.map +1 -1
  33. package/fesm2022/primeng-card.mjs +2 -2
  34. package/fesm2022/primeng-card.mjs.map +1 -1
  35. package/fesm2022/primeng-carousel.mjs +2 -2
  36. package/fesm2022/primeng-carousel.mjs.map +1 -1
  37. package/fesm2022/primeng-cascadeselect.mjs +4 -4
  38. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  39. package/fesm2022/primeng-chart.mjs +2 -2
  40. package/fesm2022/primeng-chart.mjs.map +1 -1
  41. package/fesm2022/primeng-checkbox.mjs +2 -2
  42. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  43. package/fesm2022/primeng-chip.mjs +2 -2
  44. package/fesm2022/primeng-chip.mjs.map +1 -1
  45. package/fesm2022/primeng-colorpicker.mjs +2 -2
  46. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  47. package/fesm2022/primeng-config.mjs +14 -12
  48. package/fesm2022/primeng-config.mjs.map +1 -1
  49. package/fesm2022/primeng-confirmdialog.mjs +11 -8
  50. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  51. package/fesm2022/primeng-confirmpopup.mjs +2 -2
  52. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  53. package/fesm2022/primeng-contextmenu.mjs +5 -5
  54. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  55. package/fesm2022/primeng-dataview.mjs +2 -2
  56. package/fesm2022/primeng-dataview.mjs.map +1 -1
  57. package/fesm2022/primeng-datepicker.mjs +2 -2
  58. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  59. package/fesm2022/primeng-defer.mjs +1 -1
  60. package/fesm2022/primeng-dialog.mjs +2 -2
  61. package/fesm2022/primeng-dialog.mjs.map +1 -1
  62. package/fesm2022/primeng-divider.mjs +2 -2
  63. package/fesm2022/primeng-divider.mjs.map +1 -1
  64. package/fesm2022/primeng-dock.mjs +2 -2
  65. package/fesm2022/primeng-dock.mjs.map +1 -1
  66. package/fesm2022/primeng-dragdrop.mjs +2 -2
  67. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  68. package/fesm2022/primeng-drawer.mjs +2 -2
  69. package/fesm2022/primeng-drawer.mjs.map +1 -1
  70. package/fesm2022/primeng-dropdown.mjs +4 -4
  71. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  72. package/fesm2022/primeng-dynamicdialog.mjs +7 -7
  73. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  74. package/fesm2022/primeng-editor.mjs +2 -2
  75. package/fesm2022/primeng-editor.mjs.map +1 -1
  76. package/fesm2022/primeng-fieldset.mjs +2 -2
  77. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  78. package/fesm2022/primeng-fileupload.mjs +2 -2
  79. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  80. package/fesm2022/primeng-floatlabel.mjs +2 -2
  81. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  82. package/fesm2022/primeng-fluid.mjs +2 -2
  83. package/fesm2022/primeng-fluid.mjs.map +1 -1
  84. package/fesm2022/primeng-focustrap.mjs +1 -1
  85. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  86. package/fesm2022/primeng-galleria.mjs +10 -10
  87. package/fesm2022/primeng-galleria.mjs.map +1 -1
  88. package/fesm2022/primeng-iconfield.mjs +2 -2
  89. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  90. package/fesm2022/primeng-icons-angledoubledown.mjs +2 -2
  91. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  92. package/fesm2022/primeng-icons-angledoubleleft.mjs +2 -2
  93. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  94. package/fesm2022/primeng-icons-angledoubleright.mjs +2 -2
  95. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  96. package/fesm2022/primeng-icons-angledoubleup.mjs +2 -2
  97. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  98. package/fesm2022/primeng-icons-angledown.mjs +2 -2
  99. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  100. package/fesm2022/primeng-icons-angleleft.mjs +2 -2
  101. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  102. package/fesm2022/primeng-icons-angleright.mjs +2 -2
  103. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  104. package/fesm2022/primeng-icons-angleup.mjs +2 -2
  105. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  106. package/fesm2022/primeng-icons-arrowdown.mjs +2 -2
  107. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  108. package/fesm2022/primeng-icons-arrowdownleft.mjs +2 -2
  109. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  110. package/fesm2022/primeng-icons-arrowdownright.mjs +2 -2
  111. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  112. package/fesm2022/primeng-icons-arrowleft.mjs +2 -2
  113. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  114. package/fesm2022/primeng-icons-arrowright.mjs +2 -2
  115. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  116. package/fesm2022/primeng-icons-arrowup.mjs +2 -2
  117. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  118. package/fesm2022/primeng-icons-ban.mjs +2 -2
  119. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  120. package/fesm2022/primeng-icons-bars.mjs +2 -2
  121. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  122. package/fesm2022/primeng-icons-baseicon.mjs +2 -2
  123. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  124. package/fesm2022/primeng-icons-blank.mjs +2 -2
  125. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  126. package/fesm2022/primeng-icons-calendar.mjs +2 -2
  127. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  128. package/fesm2022/primeng-icons-caretleft.mjs +2 -2
  129. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  130. package/fesm2022/primeng-icons-caretright.mjs +2 -2
  131. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  132. package/fesm2022/primeng-icons-check.mjs +2 -2
  133. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  134. package/fesm2022/primeng-icons-chevrondown.mjs +2 -2
  135. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  136. package/fesm2022/primeng-icons-chevronleft.mjs +2 -2
  137. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  138. package/fesm2022/primeng-icons-chevronright.mjs +2 -2
  139. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  140. package/fesm2022/primeng-icons-chevronup.mjs +2 -2
  141. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  142. package/fesm2022/primeng-icons-exclamationtriangle.mjs +2 -2
  143. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  144. package/fesm2022/primeng-icons-eye.mjs +2 -2
  145. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  146. package/fesm2022/primeng-icons-eyeslash.mjs +2 -2
  147. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  148. package/fesm2022/primeng-icons-filter.mjs +2 -2
  149. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  150. package/fesm2022/primeng-icons-filterslash.mjs +2 -2
  151. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  152. package/fesm2022/primeng-icons-home.mjs +2 -2
  153. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  154. package/fesm2022/primeng-icons-infocircle.mjs +2 -2
  155. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  156. package/fesm2022/primeng-icons-minus.mjs +2 -2
  157. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  158. package/fesm2022/primeng-icons-pencil.mjs +2 -2
  159. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  160. package/fesm2022/primeng-icons-plus.mjs +2 -2
  161. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  162. package/fesm2022/primeng-icons-refresh.mjs +2 -2
  163. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  164. package/fesm2022/primeng-icons-search.mjs +2 -2
  165. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  166. package/fesm2022/primeng-icons-searchminus.mjs +2 -2
  167. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  168. package/fesm2022/primeng-icons-searchplus.mjs +2 -2
  169. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  170. package/fesm2022/primeng-icons-sortalt.mjs +2 -2
  171. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  172. package/fesm2022/primeng-icons-sortamountdown.mjs +2 -2
  173. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  174. package/fesm2022/primeng-icons-sortamountupalt.mjs +2 -2
  175. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  176. package/fesm2022/primeng-icons-spinner.mjs +2 -2
  177. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  178. package/fesm2022/primeng-icons-star.mjs +2 -2
  179. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  180. package/fesm2022/primeng-icons-starfill.mjs +2 -2
  181. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  182. package/fesm2022/primeng-icons-thlarge.mjs +2 -2
  183. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  184. package/fesm2022/primeng-icons-times.mjs +2 -2
  185. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  186. package/fesm2022/primeng-icons-timescircle.mjs +2 -2
  187. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  188. package/fesm2022/primeng-icons-trash.mjs +2 -2
  189. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  190. package/fesm2022/primeng-icons-undo.mjs +2 -2
  191. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  192. package/fesm2022/primeng-icons-upload.mjs +2 -2
  193. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  194. package/fesm2022/primeng-icons-windowmaximize.mjs +2 -2
  195. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  196. package/fesm2022/primeng-icons-windowminimize.mjs +2 -2
  197. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  198. package/fesm2022/primeng-iftalabel.mjs +2 -2
  199. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  200. package/fesm2022/primeng-image.mjs +2 -2
  201. package/fesm2022/primeng-image.mjs.map +1 -1
  202. package/fesm2022/primeng-imagecompare.mjs +2 -2
  203. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  204. package/fesm2022/primeng-inplace.mjs +6 -6
  205. package/fesm2022/primeng-inplace.mjs.map +1 -1
  206. package/fesm2022/primeng-inputgroup.mjs +2 -2
  207. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  208. package/fesm2022/primeng-inputgroupaddon.mjs +2 -2
  209. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  210. package/fesm2022/primeng-inputicon.mjs +2 -2
  211. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  212. package/fesm2022/primeng-inputmask.mjs +2 -2
  213. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  214. package/fesm2022/primeng-inputnumber.mjs +2 -2
  215. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  216. package/fesm2022/primeng-inputotp.mjs +2 -2
  217. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  218. package/fesm2022/primeng-inputswitch.mjs +2 -2
  219. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  220. package/fesm2022/primeng-inputtext.mjs +1 -1
  221. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  222. package/fesm2022/primeng-inputtextarea.mjs +1 -1
  223. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  224. package/fesm2022/primeng-keyfilter.mjs +1 -1
  225. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  226. package/fesm2022/primeng-knob.mjs +2 -2
  227. package/fesm2022/primeng-knob.mjs.map +1 -1
  228. package/fesm2022/primeng-listbox.mjs +2 -2
  229. package/fesm2022/primeng-listbox.mjs.map +1 -1
  230. package/fesm2022/primeng-megamenu.mjs +4 -4
  231. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  232. package/fesm2022/primeng-menu.mjs +5 -5
  233. package/fesm2022/primeng-menu.mjs.map +1 -1
  234. package/fesm2022/primeng-menubar.mjs +4 -4
  235. package/fesm2022/primeng-menubar.mjs.map +1 -1
  236. package/fesm2022/primeng-message.mjs +2 -2
  237. package/fesm2022/primeng-message.mjs.map +1 -1
  238. package/fesm2022/primeng-messages.mjs +2 -2
  239. package/fesm2022/primeng-messages.mjs.map +1 -1
  240. package/fesm2022/primeng-metergroup.mjs +4 -4
  241. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  242. package/fesm2022/primeng-multiselect.mjs +4 -4
  243. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  244. package/fesm2022/primeng-orderlist.mjs +2 -2
  245. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  246. package/fesm2022/primeng-organizationchart.mjs +5 -5
  247. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  248. package/fesm2022/primeng-overlay.mjs +2 -2
  249. package/fesm2022/primeng-overlay.mjs.map +1 -1
  250. package/fesm2022/primeng-overlaybadge.mjs +2 -2
  251. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  252. package/fesm2022/primeng-overlaypanel.mjs +2 -2
  253. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  254. package/fesm2022/primeng-paginator.mjs +2 -2
  255. package/fesm2022/primeng-paginator.mjs.map +1 -1
  256. package/fesm2022/primeng-panel.mjs +2 -2
  257. package/fesm2022/primeng-panel.mjs.map +1 -1
  258. package/fesm2022/primeng-panelmenu.mjs +7 -7
  259. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  260. package/fesm2022/primeng-password.mjs +4 -4
  261. package/fesm2022/primeng-password.mjs.map +1 -1
  262. package/fesm2022/primeng-picklist.mjs +2 -2
  263. package/fesm2022/primeng-picklist.mjs.map +1 -1
  264. package/fesm2022/primeng-popover.mjs +2 -2
  265. package/fesm2022/primeng-popover.mjs.map +1 -1
  266. package/fesm2022/primeng-progressbar.mjs +2 -2
  267. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  268. package/fesm2022/primeng-progressspinner.mjs +2 -2
  269. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  270. package/fesm2022/primeng-radiobutton.mjs +2 -2
  271. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  272. package/fesm2022/primeng-rating.mjs +2 -2
  273. package/fesm2022/primeng-rating.mjs.map +1 -1
  274. package/fesm2022/primeng-ripple.mjs +1 -1
  275. package/fesm2022/primeng-ripple.mjs.map +1 -1
  276. package/fesm2022/primeng-scroller.mjs +2 -2
  277. package/fesm2022/primeng-scroller.mjs.map +1 -1
  278. package/fesm2022/primeng-scrollpanel.mjs +2 -2
  279. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  280. package/fesm2022/primeng-scrolltop.mjs +2 -2
  281. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  282. package/fesm2022/primeng-select.mjs +4 -4
  283. package/fesm2022/primeng-select.mjs.map +1 -1
  284. package/fesm2022/primeng-selectbutton.mjs +2 -2
  285. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  286. package/fesm2022/primeng-sidebar.mjs +2 -2
  287. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  288. package/fesm2022/primeng-skeleton.mjs +2 -2
  289. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  290. package/fesm2022/primeng-slider.mjs +2 -2
  291. package/fesm2022/primeng-slider.mjs.map +1 -1
  292. package/fesm2022/primeng-speeddial.mjs +2 -2
  293. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  294. package/fesm2022/primeng-splitbutton.mjs +2 -2
  295. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  296. package/fesm2022/primeng-splitter.mjs +4 -4
  297. package/fesm2022/primeng-splitter.mjs.map +1 -1
  298. package/fesm2022/primeng-stepper.mjs +16 -16
  299. package/fesm2022/primeng-stepper.mjs.map +1 -1
  300. package/fesm2022/primeng-steps.mjs +2 -2
  301. package/fesm2022/primeng-steps.mjs.map +1 -1
  302. package/fesm2022/primeng-styleclass.mjs +1 -1
  303. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  304. package/fesm2022/primeng-table.mjs +64 -38
  305. package/fesm2022/primeng-table.mjs.map +1 -1
  306. package/fesm2022/primeng-tabmenu.mjs +2 -2
  307. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  308. package/fesm2022/primeng-tabs.mjs +11 -11
  309. package/fesm2022/primeng-tabs.mjs.map +1 -1
  310. package/fesm2022/primeng-tabview.mjs +4 -4
  311. package/fesm2022/primeng-tabview.mjs.map +1 -1
  312. package/fesm2022/primeng-tag.mjs +2 -2
  313. package/fesm2022/primeng-tag.mjs.map +1 -1
  314. package/fesm2022/primeng-terminal.mjs +2 -2
  315. package/fesm2022/primeng-terminal.mjs.map +1 -1
  316. package/fesm2022/primeng-textarea.mjs +1 -1
  317. package/fesm2022/primeng-textarea.mjs.map +1 -1
  318. package/fesm2022/primeng-tieredmenu.mjs +4 -4
  319. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  320. package/fesm2022/primeng-timeline.mjs +2 -2
  321. package/fesm2022/primeng-timeline.mjs.map +1 -1
  322. package/fesm2022/primeng-toast.mjs +4 -4
  323. package/fesm2022/primeng-toast.mjs.map +1 -1
  324. package/fesm2022/primeng-togglebutton.mjs +3 -3
  325. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  326. package/fesm2022/primeng-toggleswitch.mjs +2 -2
  327. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  328. package/fesm2022/primeng-toolbar.mjs +2 -2
  329. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  330. package/fesm2022/primeng-tooltip.mjs +1 -1
  331. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  332. package/fesm2022/primeng-tree.mjs +4 -4
  333. package/fesm2022/primeng-tree.mjs.map +1 -1
  334. package/fesm2022/primeng-treeselect.mjs +2 -2
  335. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  336. package/fesm2022/primeng-treetable.mjs +24 -24
  337. package/fesm2022/primeng-treetable.mjs.map +1 -1
  338. package/package.json +163 -511
  339. package/speeddial/speeddial.d.ts +2 -2
  340. package/esm2022/accordion/accordion.mjs +0 -1281
  341. package/esm2022/accordion/primeng-accordion.mjs +0 -5
  342. package/esm2022/accordion/public_api.mjs +0 -3
  343. package/esm2022/accordion/style/accordionstyle.mjs +0 -163
  344. package/esm2022/animateonscroll/animateonscroll.mjs +0 -174
  345. package/esm2022/animateonscroll/primeng-animateonscroll.mjs +0 -5
  346. package/esm2022/animateonscroll/public_api.mjs +0 -2
  347. package/esm2022/api/blockableui.mjs +0 -2
  348. package/esm2022/api/confirmaeventtype.mjs +0 -10
  349. package/esm2022/api/confirmation.mjs +0 -2
  350. package/esm2022/api/confirmationservice.mjs +0 -43
  351. package/esm2022/api/contextmenuservice.mjs +0 -22
  352. package/esm2022/api/filtermatchmode.mjs +0 -23
  353. package/esm2022/api/filtermetadata.mjs +0 -2
  354. package/esm2022/api/filteroperator.mjs +0 -5
  355. package/esm2022/api/filterservice.mjs +0 -224
  356. package/esm2022/api/lazyloadevent.mjs +0 -2
  357. package/esm2022/api/lazyloadmeta.mjs +0 -2
  358. package/esm2022/api/megamenuitem.mjs +0 -2
  359. package/esm2022/api/menuitem.mjs +0 -2
  360. package/esm2022/api/messageservice.mjs +0 -47
  361. package/esm2022/api/overlayoptions.mjs +0 -2
  362. package/esm2022/api/overlayservice.mjs +0 -19
  363. package/esm2022/api/primeicons.mjs +0 -314
  364. package/esm2022/api/primeng-api.mjs +0 -5
  365. package/esm2022/api/public_api.mjs +0 -33
  366. package/esm2022/api/scrolleroptions.mjs +0 -2
  367. package/esm2022/api/selectitem.mjs +0 -2
  368. package/esm2022/api/selectitemgroup.mjs +0 -2
  369. package/esm2022/api/shared.mjs +0 -76
  370. package/esm2022/api/sortevent.mjs +0 -2
  371. package/esm2022/api/sortmeta.mjs +0 -2
  372. package/esm2022/api/tablestate.mjs +0 -2
  373. package/esm2022/api/toastmessage.mjs +0 -2
  374. package/esm2022/api/tooltipoptions.mjs +0 -2
  375. package/esm2022/api/translation.mjs +0 -2
  376. package/esm2022/api/translationkeys.mjs +0 -51
  377. package/esm2022/api/treedragdropservice.mjs +0 -21
  378. package/esm2022/api/treenode.mjs +0 -2
  379. package/esm2022/api/treenodedragevent.mjs +0 -2
  380. package/esm2022/api/treetablenode.mjs +0 -2
  381. package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
  382. package/esm2022/autocomplete/autocomplete.mjs +0 -2284
  383. package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
  384. package/esm2022/autocomplete/public_api.mjs +0 -4
  385. package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -409
  386. package/esm2022/autofocus/autofocus.mjs +0 -86
  387. package/esm2022/autofocus/primeng-autofocus.mjs +0 -5
  388. package/esm2022/autofocus/public_api.mjs +0 -2
  389. package/esm2022/avatar/avatar.mjs +0 -193
  390. package/esm2022/avatar/primeng-avatar.mjs +0 -5
  391. package/esm2022/avatar/public_api.mjs +0 -3
  392. package/esm2022/avatar/style/avatarstyle.mjs +0 -130
  393. package/esm2022/avatargroup/avatargroup.mjs +0 -80
  394. package/esm2022/avatargroup/primeng-avatargroup.mjs +0 -5
  395. package/esm2022/avatargroup/public_api.mjs +0 -3
  396. package/esm2022/avatargroup/style/avatargroupstyle.mjs +0 -29
  397. package/esm2022/badge/badge.mjs +0 -339
  398. package/esm2022/badge/primeng-badge.mjs +0 -5
  399. package/esm2022/badge/public_api.mjs +0 -3
  400. package/esm2022/badge/style/badgestyle.mjs +0 -143
  401. package/esm2022/base/base.mjs +0 -19
  402. package/esm2022/base/primeng-base.mjs +0 -5
  403. package/esm2022/base/public_api.mjs +0 -3
  404. package/esm2022/base/style/basestyle.mjs +0 -256
  405. package/esm2022/basecomponent/basecomponent.mjs +0 -160
  406. package/esm2022/basecomponent/primeng-basecomponent.mjs +0 -5
  407. package/esm2022/basecomponent/public_api.mjs +0 -3
  408. package/esm2022/basecomponent/style/basecomponentstyle.mjs +0 -13
  409. package/esm2022/blockui/blockui.interface.mjs +0 -2
  410. package/esm2022/blockui/blockui.mjs +0 -230
  411. package/esm2022/blockui/primeng-blockui.mjs +0 -5
  412. package/esm2022/blockui/public_api.mjs +0 -4
  413. package/esm2022/blockui/style/blockuistyle.mjs +0 -50
  414. package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
  415. package/esm2022/breadcrumb/breadcrumb.mjs +0 -601
  416. package/esm2022/breadcrumb/primeng-breadcrumb.mjs +0 -5
  417. package/esm2022/breadcrumb/public_api.mjs +0 -4
  418. package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +0 -133
  419. package/esm2022/button/button.interface.mjs +0 -2
  420. package/esm2022/button/button.mjs +0 -923
  421. package/esm2022/button/primeng-button.mjs +0 -5
  422. package/esm2022/button/public_api.mjs +0 -4
  423. package/esm2022/button/style/buttonstyle.mjs +0 -707
  424. package/esm2022/buttongroup/buttongroup.mjs +0 -47
  425. package/esm2022/buttongroup/primeng-buttongroup.mjs +0 -5
  426. package/esm2022/buttongroup/public_api.mjs +0 -3
  427. package/esm2022/buttongroup/style/buttongroupstyle.mjs +0 -120
  428. package/esm2022/calendar/calendar.interface.mjs +0 -2
  429. package/esm2022/calendar/calendar.mjs +0 -4567
  430. package/esm2022/calendar/primeng-calendar.mjs +0 -5
  431. package/esm2022/calendar/public_api.mjs +0 -4
  432. package/esm2022/calendar/style/calendarstyle.mjs +0 -472
  433. package/esm2022/card/card.interface.mjs +0 -2
  434. package/esm2022/card/card.mjs +0 -293
  435. package/esm2022/card/primeng-card.mjs +0 -5
  436. package/esm2022/card/public_api.mjs +0 -4
  437. package/esm2022/card/style/cardstyle.mjs +0 -100
  438. package/esm2022/carousel/carousel.interface.mjs +0 -2
  439. package/esm2022/carousel/carousel.mjs +0 -1213
  440. package/esm2022/carousel/primeng-carousel.mjs +0 -5
  441. package/esm2022/carousel/public_api.mjs +0 -4
  442. package/esm2022/carousel/style/carouselstyle.mjs +0 -234
  443. package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
  444. package/esm2022/cascadeselect/cascadeselect.mjs +0 -1878
  445. package/esm2022/cascadeselect/primeng-cascadeselect.mjs +0 -5
  446. package/esm2022/cascadeselect/public_api.mjs +0 -4
  447. package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +0 -379
  448. package/esm2022/chart/chart.mjs +0 -210
  449. package/esm2022/chart/primeng-chart.mjs +0 -5
  450. package/esm2022/chart/public_api.mjs +0 -3
  451. package/esm2022/chart/style/chartstyle.mjs +0 -36
  452. package/esm2022/checkbox/checkbox.interface.mjs +0 -2
  453. package/esm2022/checkbox/checkbox.mjs +0 -468
  454. package/esm2022/checkbox/primeng-checkbox.mjs +0 -5
  455. package/esm2022/checkbox/public_api.mjs +0 -4
  456. package/esm2022/checkbox/style/checkboxstyle.mjs +0 -191
  457. package/esm2022/chip/chip.interface.mjs +0 -2
  458. package/esm2022/chip/chip.mjs +0 -358
  459. package/esm2022/chip/primeng-chip.mjs +0 -5
  460. package/esm2022/chip/public_api.mjs +0 -4
  461. package/esm2022/chip/style/chipstyle.mjs +0 -104
  462. package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
  463. package/esm2022/colorpicker/colorpicker.mjs +0 -856
  464. package/esm2022/colorpicker/primeng-colorpicker.mjs +0 -5
  465. package/esm2022/colorpicker/public_api.mjs +0 -4
  466. package/esm2022/colorpicker/style/colorpickerstyle.mjs +0 -213
  467. package/esm2022/config/primeng-config.mjs +0 -5
  468. package/esm2022/config/primeng.mjs +0 -185
  469. package/esm2022/config/provideprimeng.mjs +0 -19
  470. package/esm2022/config/public_api.mjs +0 -4
  471. package/esm2022/config/themeprovider.mjs +0 -68
  472. package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
  473. package/esm2022/confirmdialog/confirmdialog.mjs +0 -854
  474. package/esm2022/confirmdialog/primeng-confirmdialog.mjs +0 -5
  475. package/esm2022/confirmdialog/public_api.mjs +0 -4
  476. package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +0 -67
  477. package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
  478. package/esm2022/confirmpopup/confirmpopup.mjs +0 -647
  479. package/esm2022/confirmpopup/primeng-confirmpopup.mjs +0 -5
  480. package/esm2022/confirmpopup/public_api.mjs +0 -4
  481. package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +0 -170
  482. package/esm2022/contextmenu/contextmenu.mjs +0 -1467
  483. package/esm2022/contextmenu/primeng-contextmenu.mjs +0 -5
  484. package/esm2022/contextmenu/public_api.mjs +0 -3
  485. package/esm2022/contextmenu/style/contextmenustyle.mjs +0 -244
  486. package/esm2022/dataview/dataview.interface.mjs +0 -2
  487. package/esm2022/dataview/dataview.mjs +0 -819
  488. package/esm2022/dataview/primeng-dataview.mjs +0 -5
  489. package/esm2022/dataview/public_api.mjs +0 -4
  490. package/esm2022/dataview/style/dataviewstyle.mjs +0 -115
  491. package/esm2022/datepicker/datepicker.interface.mjs +0 -2
  492. package/esm2022/datepicker/datepicker.mjs +0 -4580
  493. package/esm2022/datepicker/primeng-datepicker.mjs +0 -5
  494. package/esm2022/datepicker/public_api.mjs +0 -4
  495. package/esm2022/datepicker/style/datepickerstyle.mjs +0 -663
  496. package/esm2022/defer/defer.mjs +0 -100
  497. package/esm2022/defer/primeng-defer.mjs +0 -5
  498. package/esm2022/defer/public_api.mjs +0 -2
  499. package/esm2022/dialog/dialog.interface.mjs +0 -2
  500. package/esm2022/dialog/dialog.mjs +0 -1430
  501. package/esm2022/dialog/primeng-dialog.mjs +0 -5
  502. package/esm2022/dialog/public_api.mjs +0 -4
  503. package/esm2022/dialog/style/dialogstyle.mjs +0 -283
  504. package/esm2022/divider/divider.mjs +0 -117
  505. package/esm2022/divider/primeng-divider.mjs +0 -5
  506. package/esm2022/divider/public_api.mjs +0 -3
  507. package/esm2022/divider/style/dividerstyle.mjs +0 -138
  508. package/esm2022/dock/dock.interface.mjs +0 -2
  509. package/esm2022/dock/dock.mjs +0 -465
  510. package/esm2022/dock/primeng-dock.mjs +0 -5
  511. package/esm2022/dock/public_api.mjs +0 -4
  512. package/esm2022/dock/style/dockstyle.mjs +0 -210
  513. package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
  514. package/esm2022/dom/domhandler.mjs +0 -725
  515. package/esm2022/dom/primeng-dom.mjs +0 -5
  516. package/esm2022/dom/public_api.mjs +0 -3
  517. package/esm2022/dragdrop/dragdrop.mjs +0 -323
  518. package/esm2022/dragdrop/primeng-dragdrop.mjs +0 -5
  519. package/esm2022/dragdrop/public_api.mjs +0 -2
  520. package/esm2022/drawer/drawer.interface.mjs +0 -2
  521. package/esm2022/drawer/drawer.mjs +0 -705
  522. package/esm2022/drawer/primeng-drawer.mjs +0 -5
  523. package/esm2022/drawer/public_api.mjs +0 -4
  524. package/esm2022/drawer/style/drawerstyle.mjs +0 -283
  525. package/esm2022/dropdown/dropdown.interface.mjs +0 -2
  526. package/esm2022/dropdown/dropdown.mjs +0 -2506
  527. package/esm2022/dropdown/primeng-dropdown.mjs +0 -5
  528. package/esm2022/dropdown/public_api.mjs +0 -4
  529. package/esm2022/dropdown/style/dropdownstyle.mjs +0 -264
  530. package/esm2022/dynamicdialog/dialogservice.mjs +0 -105
  531. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -182
  532. package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
  533. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
  534. package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -879
  535. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -18
  536. package/esm2022/dynamicdialog/primeng-dynamicdialog.mjs +0 -5
  537. package/esm2022/dynamicdialog/public_api.mjs +0 -8
  538. package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +0 -60
  539. package/esm2022/editor/editor.interface.mjs +0 -2
  540. package/esm2022/editor/editor.mjs +0 -443
  541. package/esm2022/editor/primeng-editor.mjs +0 -5
  542. package/esm2022/editor/public_api.mjs +0 -4
  543. package/esm2022/editor/style/editorstyle.mjs +0 -1008
  544. package/esm2022/fieldset/fieldset.interface.mjs +0 -2
  545. package/esm2022/fieldset/fieldset.mjs +0 -455
  546. package/esm2022/fieldset/primeng-fieldset.mjs +0 -5
  547. package/esm2022/fieldset/public_api.mjs +0 -4
  548. package/esm2022/fieldset/style/fieldsetstyle.mjs +0 -143
  549. package/esm2022/fileupload/fileupload.interface.mjs +0 -2
  550. package/esm2022/fileupload/fileupload.mjs +0 -1647
  551. package/esm2022/fileupload/primeng-fileupload.mjs +0 -5
  552. package/esm2022/fileupload/public_api.mjs +0 -4
  553. package/esm2022/fileupload/style/fileuploadstyle.mjs +0 -194
  554. package/esm2022/floatlabel/floatlabel.mjs +0 -61
  555. package/esm2022/floatlabel/primeng-floatlabel.mjs +0 -5
  556. package/esm2022/floatlabel/public_api.mjs +0 -3
  557. package/esm2022/floatlabel/style/floatlabelstyle.mjs +0 -133
  558. package/esm2022/fluid/fluid.mjs +0 -50
  559. package/esm2022/fluid/primeng-fluid.mjs +0 -5
  560. package/esm2022/fluid/public_api.mjs +0 -3
  561. package/esm2022/fluid/style/fluidstyle.mjs +0 -38
  562. package/esm2022/focustrap/focustrap.mjs +0 -104
  563. package/esm2022/focustrap/primeng-focustrap.mjs +0 -5
  564. package/esm2022/focustrap/public_api.mjs +0 -2
  565. package/esm2022/galleria/galleria.interface.mjs +0 -2
  566. package/esm2022/galleria/galleria.mjs +0 -1867
  567. package/esm2022/galleria/primeng-galleria.mjs +0 -5
  568. package/esm2022/galleria/public_api.mjs +0 -4
  569. package/esm2022/galleria/style/galleriastyle.mjs +0 -644
  570. package/esm2022/iconfield/iconfield.mjs +0 -73
  571. package/esm2022/iconfield/primeng-iconfield.mjs +0 -5
  572. package/esm2022/iconfield/public_api.mjs +0 -3
  573. package/esm2022/iconfield/style/iconfieldstyle.mjs +0 -77
  574. package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -34
  575. package/esm2022/icons/angledoubledown/primeng-icons-angledoubledown.mjs +0 -5
  576. package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
  577. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -34
  578. package/esm2022/icons/angledoubleleft/primeng-icons-angledoubleleft.mjs +0 -5
  579. package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
  580. package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -34
  581. package/esm2022/icons/angledoubleright/primeng-icons-angledoubleright.mjs +0 -5
  582. package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
  583. package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -34
  584. package/esm2022/icons/angledoubleup/primeng-icons-angledoubleup.mjs +0 -5
  585. package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
  586. package/esm2022/icons/angledown/angledown.mjs +0 -32
  587. package/esm2022/icons/angledown/primeng-icons-angledown.mjs +0 -5
  588. package/esm2022/icons/angledown/public_api.mjs +0 -2
  589. package/esm2022/icons/angleleft/angleleft.mjs +0 -32
  590. package/esm2022/icons/angleleft/primeng-icons-angleleft.mjs +0 -5
  591. package/esm2022/icons/angleleft/public_api.mjs +0 -2
  592. package/esm2022/icons/angleright/angleright.mjs +0 -32
  593. package/esm2022/icons/angleright/primeng-icons-angleright.mjs +0 -5
  594. package/esm2022/icons/angleright/public_api.mjs +0 -2
  595. package/esm2022/icons/angleup/angleup.mjs +0 -32
  596. package/esm2022/icons/angleup/primeng-icons-angleup.mjs +0 -5
  597. package/esm2022/icons/angleup/public_api.mjs +0 -2
  598. package/esm2022/icons/arrowdown/arrowdown.mjs +0 -53
  599. package/esm2022/icons/arrowdown/primeng-icons-arrowdown.mjs +0 -5
  600. package/esm2022/icons/arrowdown/public_api.mjs +0 -2
  601. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -32
  602. package/esm2022/icons/arrowdownleft/primeng-icons-arrowdownleft.mjs +0 -5
  603. package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
  604. package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -32
  605. package/esm2022/icons/arrowdownright/primeng-icons-arrowdownright.mjs +0 -5
  606. package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
  607. package/esm2022/icons/arrowleft/arrowleft.mjs +0 -53
  608. package/esm2022/icons/arrowleft/primeng-icons-arrowleft.mjs +0 -5
  609. package/esm2022/icons/arrowleft/public_api.mjs +0 -2
  610. package/esm2022/icons/arrowright/arrowright.mjs +0 -34
  611. package/esm2022/icons/arrowright/primeng-icons-arrowright.mjs +0 -5
  612. package/esm2022/icons/arrowright/public_api.mjs +0 -2
  613. package/esm2022/icons/arrowup/arrowup.mjs +0 -53
  614. package/esm2022/icons/arrowup/primeng-icons-arrowup.mjs +0 -5
  615. package/esm2022/icons/arrowup/public_api.mjs +0 -2
  616. package/esm2022/icons/ban/ban.mjs +0 -51
  617. package/esm2022/icons/ban/primeng-icons-ban.mjs +0 -5
  618. package/esm2022/icons/ban/public_api.mjs +0 -2
  619. package/esm2022/icons/bars/bars.mjs +0 -34
  620. package/esm2022/icons/bars/primeng-icons-bars.mjs +0 -5
  621. package/esm2022/icons/bars/public_api.mjs +0 -2
  622. package/esm2022/icons/baseicon/baseicon.mjs +0 -54
  623. package/esm2022/icons/baseicon/primeng-icons-baseicon.mjs +0 -5
  624. package/esm2022/icons/baseicon/public_api.mjs +0 -3
  625. package/esm2022/icons/baseicon/style/baseiconstyle.mjs +0 -57
  626. package/esm2022/icons/blank/blank.mjs +0 -26
  627. package/esm2022/icons/blank/primeng-icons-blank.mjs +0 -5
  628. package/esm2022/icons/blank/public_api.mjs +0 -2
  629. package/esm2022/icons/calendar/calendar.mjs +0 -32
  630. package/esm2022/icons/calendar/primeng-icons-calendar.mjs +0 -5
  631. package/esm2022/icons/calendar/public_api.mjs +0 -2
  632. package/esm2022/icons/caretleft/caretleft.mjs +0 -32
  633. package/esm2022/icons/caretleft/primeng-icons-caretleft.mjs +0 -5
  634. package/esm2022/icons/caretleft/public_api.mjs +0 -2
  635. package/esm2022/icons/caretright/caretright.mjs +0 -32
  636. package/esm2022/icons/caretright/primeng-icons-caretright.mjs +0 -5
  637. package/esm2022/icons/caretright/public_api.mjs +0 -2
  638. package/esm2022/icons/check/check.mjs +0 -32
  639. package/esm2022/icons/check/primeng-icons-check.mjs +0 -5
  640. package/esm2022/icons/check/public_api.mjs +0 -2
  641. package/esm2022/icons/chevrondown/chevrondown.mjs +0 -32
  642. package/esm2022/icons/chevrondown/primeng-icons-chevrondown.mjs +0 -5
  643. package/esm2022/icons/chevrondown/public_api.mjs +0 -2
  644. package/esm2022/icons/chevronleft/chevronleft.mjs +0 -32
  645. package/esm2022/icons/chevronleft/primeng-icons-chevronleft.mjs +0 -5
  646. package/esm2022/icons/chevronleft/public_api.mjs +0 -2
  647. package/esm2022/icons/chevronright/chevronright.mjs +0 -32
  648. package/esm2022/icons/chevronright/primeng-icons-chevronright.mjs +0 -5
  649. package/esm2022/icons/chevronright/public_api.mjs +0 -2
  650. package/esm2022/icons/chevronup/chevronup.mjs +0 -32
  651. package/esm2022/icons/chevronup/primeng-icons-chevronup.mjs +0 -5
  652. package/esm2022/icons/chevronup/public_api.mjs +0 -2
  653. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -59
  654. package/esm2022/icons/exclamationtriangle/primeng-icons-exclamationtriangle.mjs +0 -5
  655. package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
  656. package/esm2022/icons/eye/eye.mjs +0 -34
  657. package/esm2022/icons/eye/primeng-icons-eye.mjs +0 -5
  658. package/esm2022/icons/eye/public_api.mjs +0 -2
  659. package/esm2022/icons/eyeslash/eyeslash.mjs +0 -53
  660. package/esm2022/icons/eyeslash/primeng-icons-eyeslash.mjs +0 -5
  661. package/esm2022/icons/eyeslash/public_api.mjs +0 -2
  662. package/esm2022/icons/filter/filter.mjs +0 -51
  663. package/esm2022/icons/filter/primeng-icons-filter.mjs +0 -5
  664. package/esm2022/icons/filter/public_api.mjs +0 -2
  665. package/esm2022/icons/filterslash/filterslash.mjs +0 -53
  666. package/esm2022/icons/filterslash/primeng-icons-filterslash.mjs +0 -5
  667. package/esm2022/icons/filterslash/public_api.mjs +0 -2
  668. package/esm2022/icons/home/home.mjs +0 -53
  669. package/esm2022/icons/home/primeng-icons-home.mjs +0 -5
  670. package/esm2022/icons/home/public_api.mjs +0 -2
  671. package/esm2022/icons/infocircle/infocircle.mjs +0 -53
  672. package/esm2022/icons/infocircle/primeng-icons-infocircle.mjs +0 -5
  673. package/esm2022/icons/infocircle/public_api.mjs +0 -2
  674. package/esm2022/icons/minus/minus.mjs +0 -32
  675. package/esm2022/icons/minus/primeng-icons-minus.mjs +0 -5
  676. package/esm2022/icons/minus/public_api.mjs +0 -2
  677. package/esm2022/icons/pencil/pencil.mjs +0 -51
  678. package/esm2022/icons/pencil/primeng-icons-pencil.mjs +0 -5
  679. package/esm2022/icons/pencil/public_api.mjs +0 -2
  680. package/esm2022/icons/plus/plus.mjs +0 -51
  681. package/esm2022/icons/plus/primeng-icons-plus.mjs +0 -5
  682. package/esm2022/icons/plus/public_api.mjs +0 -2
  683. package/esm2022/icons/primeng-icons.mjs +0 -5
  684. package/esm2022/icons/public_api.mjs +0 -58
  685. package/esm2022/icons/refresh/primeng-icons-refresh.mjs +0 -5
  686. package/esm2022/icons/refresh/public_api.mjs +0 -2
  687. package/esm2022/icons/refresh/refresh.mjs +0 -53
  688. package/esm2022/icons/search/primeng-icons-search.mjs +0 -5
  689. package/esm2022/icons/search/public_api.mjs +0 -2
  690. package/esm2022/icons/search/search.mjs +0 -53
  691. package/esm2022/icons/searchminus/primeng-icons-searchminus.mjs +0 -5
  692. package/esm2022/icons/searchminus/public_api.mjs +0 -2
  693. package/esm2022/icons/searchminus/searchminus.mjs +0 -53
  694. package/esm2022/icons/searchplus/primeng-icons-searchplus.mjs +0 -5
  695. package/esm2022/icons/searchplus/public_api.mjs +0 -2
  696. package/esm2022/icons/searchplus/searchplus.mjs +0 -53
  697. package/esm2022/icons/sortalt/primeng-icons-sortalt.mjs +0 -5
  698. package/esm2022/icons/sortalt/public_api.mjs +0 -2
  699. package/esm2022/icons/sortalt/sortalt.mjs +0 -57
  700. package/esm2022/icons/sortamountdown/primeng-icons-sortamountdown.mjs +0 -5
  701. package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
  702. package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -51
  703. package/esm2022/icons/sortamountupalt/primeng-icons-sortamountupalt.mjs +0 -5
  704. package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
  705. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -51
  706. package/esm2022/icons/spinner/primeng-icons-spinner.mjs +0 -5
  707. package/esm2022/icons/spinner/public_api.mjs +0 -2
  708. package/esm2022/icons/spinner/spinner.mjs +0 -51
  709. package/esm2022/icons/star/primeng-icons-star.mjs +0 -5
  710. package/esm2022/icons/star/public_api.mjs +0 -2
  711. package/esm2022/icons/star/star.mjs +0 -51
  712. package/esm2022/icons/starfill/primeng-icons-starfill.mjs +0 -5
  713. package/esm2022/icons/starfill/public_api.mjs +0 -2
  714. package/esm2022/icons/starfill/starfill.mjs +0 -51
  715. package/esm2022/icons/thlarge/primeng-icons-thlarge.mjs +0 -5
  716. package/esm2022/icons/thlarge/public_api.mjs +0 -2
  717. package/esm2022/icons/thlarge/thlarge.mjs +0 -53
  718. package/esm2022/icons/times/primeng-icons-times.mjs +0 -5
  719. package/esm2022/icons/times/public_api.mjs +0 -2
  720. package/esm2022/icons/times/times.mjs +0 -32
  721. package/esm2022/icons/timescircle/primeng-icons-timescircle.mjs +0 -5
  722. package/esm2022/icons/timescircle/public_api.mjs +0 -2
  723. package/esm2022/icons/timescircle/timescircle.mjs +0 -53
  724. package/esm2022/icons/trash/primeng-icons-trash.mjs +0 -5
  725. package/esm2022/icons/trash/public_api.mjs +0 -2
  726. package/esm2022/icons/trash/trash.mjs +0 -53
  727. package/esm2022/icons/undo/primeng-icons-undo.mjs +0 -5
  728. package/esm2022/icons/undo/public_api.mjs +0 -2
  729. package/esm2022/icons/undo/undo.mjs +0 -53
  730. package/esm2022/icons/upload/primeng-icons-upload.mjs +0 -5
  731. package/esm2022/icons/upload/public_api.mjs +0 -2
  732. package/esm2022/icons/upload/upload.mjs +0 -53
  733. package/esm2022/icons/windowmaximize/primeng-icons-windowmaximize.mjs +0 -5
  734. package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
  735. package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -53
  736. package/esm2022/icons/windowminimize/primeng-icons-windowminimize.mjs +0 -5
  737. package/esm2022/icons/windowminimize/public_api.mjs +0 -2
  738. package/esm2022/icons/windowminimize/windowminimize.mjs +0 -53
  739. package/esm2022/iftalabel/iftalabel.mjs +0 -49
  740. package/esm2022/iftalabel/primeng-iftalabel.mjs +0 -5
  741. package/esm2022/iftalabel/public_api.mjs +0 -3
  742. package/esm2022/iftalabel/style/iftalabelstyle.mjs +0 -96
  743. package/esm2022/image/image.interface.mjs +0 -2
  744. package/esm2022/image/image.mjs +0 -794
  745. package/esm2022/image/primeng-image.mjs +0 -5
  746. package/esm2022/image/public_api.mjs +0 -4
  747. package/esm2022/image/style/imagestyle.mjs +0 -219
  748. package/esm2022/imagecompare/imagecompare.mjs +0 -178
  749. package/esm2022/imagecompare/primeng-imagecompare.mjs +0 -5
  750. package/esm2022/imagecompare/public_api.mjs +0 -3
  751. package/esm2022/imagecompare/style/imagecomparestyle.mjs +0 -124
  752. package/esm2022/inplace/inplace.interface.mjs +0 -2
  753. package/esm2022/inplace/inplace.mjs +0 -369
  754. package/esm2022/inplace/primeng-inplace.mjs +0 -5
  755. package/esm2022/inplace/public_api.mjs +0 -4
  756. package/esm2022/inplace/style/inplacestyle.mjs +0 -69
  757. package/esm2022/inputgroup/inputgroup.mjs +0 -68
  758. package/esm2022/inputgroup/primeng-inputgroup.mjs +0 -5
  759. package/esm2022/inputgroup/public_api.mjs +0 -3
  760. package/esm2022/inputgroup/style/inputgroupstyle.mjs +0 -145
  761. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -74
  762. package/esm2022/inputgroupaddon/primeng-inputgroupaddon.mjs +0 -5
  763. package/esm2022/inputgroupaddon/public_api.mjs +0 -3
  764. package/esm2022/inputgroupaddon/style/inputgroupaddonstyle.mjs +0 -16
  765. package/esm2022/inputicon/inputicon.mjs +0 -66
  766. package/esm2022/inputicon/primeng-inputicon.mjs +0 -5
  767. package/esm2022/inputicon/public_api.mjs +0 -3
  768. package/esm2022/inputicon/style/inputiconstyle.mjs +0 -16
  769. package/esm2022/inputmask/inputmask.interface.mjs +0 -2
  770. package/esm2022/inputmask/inputmask.mjs +0 -927
  771. package/esm2022/inputmask/primeng-inputmask.mjs +0 -5
  772. package/esm2022/inputmask/public_api.mjs +0 -4
  773. package/esm2022/inputmask/style/inputmaskstyle.mjs +0 -62
  774. package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
  775. package/esm2022/inputnumber/inputnumber.mjs +0 -1753
  776. package/esm2022/inputnumber/primeng-inputnumber.mjs +0 -5
  777. package/esm2022/inputnumber/public_api.mjs +0 -4
  778. package/esm2022/inputnumber/style/inputnumberstyle.mjs +0 -240
  779. package/esm2022/inputotp/inputotp.mjs +0 -425
  780. package/esm2022/inputotp/primeng-inputotp.mjs +0 -5
  781. package/esm2022/inputotp/public_api.mjs +0 -3
  782. package/esm2022/inputotp/style/inputotpstyle.mjs +0 -60
  783. package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
  784. package/esm2022/inputswitch/inputswitch.mjs +0 -241
  785. package/esm2022/inputswitch/primeng-inputswitch.mjs +0 -5
  786. package/esm2022/inputswitch/public_api.mjs +0 -4
  787. package/esm2022/inputswitch/style/inputswitchstyle.mjs +0 -130
  788. package/esm2022/inputtext/inputtext.mjs +0 -104
  789. package/esm2022/inputtext/primeng-inputtext.mjs +0 -5
  790. package/esm2022/inputtext/public_api.mjs +0 -3
  791. package/esm2022/inputtext/style/inputtextstyle.mjs +0 -117
  792. package/esm2022/inputtextarea/inputtextarea.mjs +0 -156
  793. package/esm2022/inputtextarea/primeng-inputtextarea.mjs +0 -5
  794. package/esm2022/inputtextarea/public_api.mjs +0 -3
  795. package/esm2022/inputtextarea/style/textareastyle.mjs +0 -107
  796. package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
  797. package/esm2022/keyfilter/keyfilter.mjs +0 -263
  798. package/esm2022/keyfilter/primeng-keyfilter.mjs +0 -5
  799. package/esm2022/keyfilter/public_api.mjs +0 -3
  800. package/esm2022/knob/knob.mjs +0 -471
  801. package/esm2022/knob/primeng-knob.mjs +0 -5
  802. package/esm2022/knob/public_api.mjs +0 -3
  803. package/esm2022/knob/style/knobstyle.mjs +0 -83
  804. package/esm2022/listbox/listbox.interface.mjs +0 -2
  805. package/esm2022/listbox/listbox.mjs +0 -2103
  806. package/esm2022/listbox/primeng-listbox.mjs +0 -5
  807. package/esm2022/listbox/public_api.mjs +0 -4
  808. package/esm2022/listbox/style/listboxstyle.mjs +0 -206
  809. package/esm2022/megamenu/megamenu.interface.mjs +0 -2
  810. package/esm2022/megamenu/megamenu.mjs +0 -1653
  811. package/esm2022/megamenu/primeng-megamenu.mjs +0 -5
  812. package/esm2022/megamenu/public_api.mjs +0 -4
  813. package/esm2022/megamenu/style/megamenustyle.mjs +0 -487
  814. package/esm2022/menu/menu.mjs +0 -1193
  815. package/esm2022/menu/primeng-menu.mjs +0 -5
  816. package/esm2022/menu/public_api.mjs +0 -3
  817. package/esm2022/menu/style/menustyle.mjs +0 -179
  818. package/esm2022/menubar/menubar.interface.mjs +0 -2
  819. package/esm2022/menubar/menubar.mjs +0 -1519
  820. package/esm2022/menubar/primeng-menubar.mjs +0 -5
  821. package/esm2022/menubar/public_api.mjs +0 -4
  822. package/esm2022/menubar/style/menubarstyle.mjs +0 -375
  823. package/esm2022/message/message.mjs +0 -445
  824. package/esm2022/message/primeng-message.mjs +0 -5
  825. package/esm2022/message/public_api.mjs +0 -3
  826. package/esm2022/message/style/messagestyle.mjs +0 -357
  827. package/esm2022/messages/messages.interface.mjs +0 -2
  828. package/esm2022/messages/messages.mjs +0 -538
  829. package/esm2022/messages/primeng-messages.mjs +0 -5
  830. package/esm2022/messages/public_api.mjs +0 -4
  831. package/esm2022/messages/style/messagesstyle.mjs +0 -229
  832. package/esm2022/metergroup/metergroup.interface.mjs +0 -2
  833. package/esm2022/metergroup/metergroup.mjs +0 -455
  834. package/esm2022/metergroup/primeng-metergroup.mjs +0 -5
  835. package/esm2022/metergroup/public_api.mjs +0 -4
  836. package/esm2022/metergroup/style/metergroupstyle.mjs +0 -169
  837. package/esm2022/multiselect/multiselect.interface.mjs +0 -2
  838. package/esm2022/multiselect/multiselect.mjs +0 -3015
  839. package/esm2022/multiselect/primeng-multiselect.mjs +0 -5
  840. package/esm2022/multiselect/public_api.mjs +0 -4
  841. package/esm2022/multiselect/style/multiselectstyle.mjs +0 -373
  842. package/esm2022/orderlist/orderlist.interface.mjs +0 -2
  843. package/esm2022/orderlist/orderlist.mjs +0 -1176
  844. package/esm2022/orderlist/primeng-orderlist.mjs +0 -5
  845. package/esm2022/orderlist/public_api.mjs +0 -4
  846. package/esm2022/orderlist/style/orderliststyle.mjs +0 -51
  847. package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
  848. package/esm2022/organizationchart/organizationchart.mjs +0 -607
  849. package/esm2022/organizationchart/primeng-organizationchart.mjs +0 -5
  850. package/esm2022/organizationchart/public_api.mjs +0 -4
  851. package/esm2022/organizationchart/style/organizationchartstyle.mjs +0 -191
  852. package/esm2022/overlay/overlay.mjs +0 -688
  853. package/esm2022/overlay/primeng-overlay.mjs +0 -5
  854. package/esm2022/overlay/public_api.mjs +0 -3
  855. package/esm2022/overlay/style/overlaystyle.mjs +0 -93
  856. package/esm2022/overlaybadge/overlaybadge.mjs +0 -121
  857. package/esm2022/overlaybadge/primeng-overlaybadge.mjs +0 -5
  858. package/esm2022/overlaybadge/public_api.mjs +0 -3
  859. package/esm2022/overlaybadge/style/overlaybadgestyle.mjs +0 -34
  860. package/esm2022/overlaypanel/overlaypanel.mjs +0 -552
  861. package/esm2022/overlaypanel/primeng-overlaypanel.mjs +0 -5
  862. package/esm2022/overlaypanel/public_api.mjs +0 -3
  863. package/esm2022/overlaypanel/style/popoverstyle.mjs +0 -119
  864. package/esm2022/paginator/paginator.interface.mjs +0 -2
  865. package/esm2022/paginator/paginator.mjs +0 -925
  866. package/esm2022/paginator/primeng-paginator.mjs +0 -5
  867. package/esm2022/paginator/public_api.mjs +0 -4
  868. package/esm2022/paginator/style/paginatorstyle.mjs +0 -243
  869. package/esm2022/panel/panel.mjs +0 -645
  870. package/esm2022/panel/primeng-panel.mjs +0 -5
  871. package/esm2022/panel/public_api.mjs +0 -3
  872. package/esm2022/panel/style/panelstyle.mjs +0 -120
  873. package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
  874. package/esm2022/panelmenu/panelmenu.mjs +0 -1651
  875. package/esm2022/panelmenu/primeng-panelmenu.mjs +0 -5
  876. package/esm2022/panelmenu/public_api.mjs +0 -4
  877. package/esm2022/panelmenu/style/panelmenustyle.mjs +0 -291
  878. package/esm2022/password/password.mjs +0 -1240
  879. package/esm2022/password/primeng-password.mjs +0 -5
  880. package/esm2022/password/public_api.mjs +0 -3
  881. package/esm2022/password/style/passwordstyle.mjs +0 -182
  882. package/esm2022/picklist/picklist.interface.mjs +0 -2
  883. package/esm2022/picklist/picklist.mjs +0 -2426
  884. package/esm2022/picklist/primeng-picklist.mjs +0 -5
  885. package/esm2022/picklist/public_api.mjs +0 -4
  886. package/esm2022/picklist/style/pickliststyle.mjs +0 -79
  887. package/esm2022/popover/popover.mjs +0 -535
  888. package/esm2022/popover/primeng-popover.mjs +0 -5
  889. package/esm2022/popover/public_api.mjs +0 -3
  890. package/esm2022/popover/style/popoverstyle.mjs +0 -99
  891. package/esm2022/primeng.mjs +0 -5
  892. package/esm2022/progressbar/primeng-progressbar.mjs +0 -5
  893. package/esm2022/progressbar/progressbar.mjs +0 -215
  894. package/esm2022/progressbar/public_api.mjs +0 -3
  895. package/esm2022/progressbar/style/progressbarstyle.mjs +0 -165
  896. package/esm2022/progressspinner/primeng-progressspinner.mjs +0 -5
  897. package/esm2022/progressspinner/progressspinner.mjs +0 -105
  898. package/esm2022/progressspinner/public_api.mjs +0 -3
  899. package/esm2022/progressspinner/style/progressspinnerstyle.mjs +0 -115
  900. package/esm2022/public_api.mjs +0 -2
  901. package/esm2022/radiobutton/primeng-radiobutton.mjs +0 -5
  902. package/esm2022/radiobutton/public_api.mjs +0 -4
  903. package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
  904. package/esm2022/radiobutton/radiobutton.mjs +0 -356
  905. package/esm2022/radiobutton/style/radiobuttonstyle.mjs +0 -196
  906. package/esm2022/rating/primeng-rating.mjs +0 -5
  907. package/esm2022/rating/public_api.mjs +0 -4
  908. package/esm2022/rating/rating.interface.mjs +0 -2
  909. package/esm2022/rating/rating.mjs +0 -449
  910. package/esm2022/rating/style/ratingstyle.mjs +0 -103
  911. package/esm2022/ripple/primeng-ripple.mjs +0 -5
  912. package/esm2022/ripple/public_api.mjs +0 -3
  913. package/esm2022/ripple/ripple.mjs +0 -134
  914. package/esm2022/ripple/style/ripplestyle.mjs +0 -63
  915. package/esm2022/scroller/primeng-scroller.mjs +0 -5
  916. package/esm2022/scroller/public_api.mjs +0 -4
  917. package/esm2022/scroller/scroller.interface.mjs +0 -2
  918. package/esm2022/scroller/scroller.mjs +0 -1300
  919. package/esm2022/scroller/style/scrollerstyle.mjs +0 -104
  920. package/esm2022/scrollpanel/primeng-scrollpanel.mjs +0 -5
  921. package/esm2022/scrollpanel/public_api.mjs +0 -4
  922. package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
  923. package/esm2022/scrollpanel/scrollpanel.mjs +0 -525
  924. package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +0 -120
  925. package/esm2022/scrolltop/primeng-scrolltop.mjs +0 -5
  926. package/esm2022/scrolltop/public_api.mjs +0 -4
  927. package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
  928. package/esm2022/scrolltop/scrolltop.mjs +0 -343
  929. package/esm2022/scrolltop/style/scrolltopstyle.mjs +0 -77
  930. package/esm2022/select/primeng-select.mjs +0 -5
  931. package/esm2022/select/public_api.mjs +0 -4
  932. package/esm2022/select/select.interface.mjs +0 -2
  933. package/esm2022/select/select.mjs +0 -2697
  934. package/esm2022/select/style/selectstyle.mjs +0 -365
  935. package/esm2022/selectbutton/primeng-selectbutton.mjs +0 -5
  936. package/esm2022/selectbutton/public_api.mjs +0 -4
  937. package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
  938. package/esm2022/selectbutton/selectbutton.mjs +0 -388
  939. package/esm2022/selectbutton/style/selectbuttonstyle.mjs +0 -73
  940. package/esm2022/sidebar/primeng-sidebar.mjs +0 -5
  941. package/esm2022/sidebar/public_api.mjs +0 -4
  942. package/esm2022/sidebar/sidebar.interface.mjs +0 -2
  943. package/esm2022/sidebar/sidebar.mjs +0 -600
  944. package/esm2022/sidebar/style/drawerstyle.mjs +0 -174
  945. package/esm2022/skeleton/primeng-skeleton.mjs +0 -5
  946. package/esm2022/skeleton/public_api.mjs +0 -3
  947. package/esm2022/skeleton/skeleton.mjs +0 -121
  948. package/esm2022/skeleton/style/skeletonstyle.mjs +0 -93
  949. package/esm2022/slider/primeng-slider.mjs +0 -5
  950. package/esm2022/slider/public_api.mjs +0 -4
  951. package/esm2022/slider/slider.interface.mjs +0 -2
  952. package/esm2022/slider/slider.mjs +0 -820
  953. package/esm2022/slider/style/sliderstyle.mjs +0 -141
  954. package/esm2022/speeddial/primeng-speeddial.mjs +0 -5
  955. package/esm2022/speeddial/public_api.mjs +0 -4
  956. package/esm2022/speeddial/speeddial.interface.mjs +0 -2
  957. package/esm2022/speeddial/speeddial.mjs +0 -891
  958. package/esm2022/speeddial/style/speeddialstyle.mjs +0 -167
  959. package/esm2022/splitbutton/primeng-splitbutton.mjs +0 -5
  960. package/esm2022/splitbutton/public_api.mjs +0 -4
  961. package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
  962. package/esm2022/splitbutton/splitbutton.mjs +0 -602
  963. package/esm2022/splitbutton/style/splitbuttonstyle.mjs +0 -100
  964. package/esm2022/splitter/primeng-splitter.mjs +0 -5
  965. package/esm2022/splitter/public_api.mjs +0 -4
  966. package/esm2022/splitter/splitter.interface.mjs +0 -2
  967. package/esm2022/splitter/splitter.mjs +0 -626
  968. package/esm2022/splitter/style/splitterstyle.mjs +0 -127
  969. package/esm2022/stepper/primeng-stepper.mjs +0 -5
  970. package/esm2022/stepper/public_api.mjs +0 -3
  971. package/esm2022/stepper/stepper.mjs +0 -535
  972. package/esm2022/stepper/style/stepperstyle.mjs +0 -228
  973. package/esm2022/steps/primeng-steps.mjs +0 -5
  974. package/esm2022/steps/public_api.mjs +0 -3
  975. package/esm2022/steps/steps.mjs +0 -405
  976. package/esm2022/steps/style/stepsstyle.mjs +0 -180
  977. package/esm2022/styleclass/primeng-styleclass.mjs +0 -5
  978. package/esm2022/styleclass/public_api.mjs +0 -2
  979. package/esm2022/styleclass/styleclass.mjs +0 -315
  980. package/esm2022/table/columnfilter.interface.mjs +0 -2
  981. package/esm2022/table/primeng-table.mjs +0 -5
  982. package/esm2022/table/public_api.mjs +0 -5
  983. package/esm2022/table/style/tablestyle.mjs +0 -906
  984. package/esm2022/table/table.interface.mjs +0 -2
  985. package/esm2022/table/table.mjs +0 -7840
  986. package/esm2022/tabmenu/primeng-tabmenu.mjs +0 -5
  987. package/esm2022/tabmenu/public_api.mjs +0 -4
  988. package/esm2022/tabmenu/style/tabmenustyle.mjs +0 -192
  989. package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
  990. package/esm2022/tabmenu/tabmenu.mjs +0 -757
  991. package/esm2022/tabs/primeng-tabs.mjs +0 -5
  992. package/esm2022/tabs/public_api.mjs +0 -7
  993. package/esm2022/tabs/style/tabsstyle.mjs +0 -211
  994. package/esm2022/tabs/tab.mjs +0 -175
  995. package/esm2022/tabs/tablist.mjs +0 -305
  996. package/esm2022/tabs/tabpanel.mjs +0 -60
  997. package/esm2022/tabs/tabpanels.mjs +0 -38
  998. package/esm2022/tabs/tabs.mjs +0 -105
  999. package/esm2022/tabview/primeng-tabview.mjs +0 -5
  1000. package/esm2022/tabview/public_api.mjs +0 -4
  1001. package/esm2022/tabview/style/tabsstyle.mjs +0 -211
  1002. package/esm2022/tabview/tabview.interface.mjs +0 -2
  1003. package/esm2022/tabview/tabview.mjs +0 -1141
  1004. package/esm2022/tag/primeng-tag.mjs +0 -5
  1005. package/esm2022/tag/public_api.mjs +0 -4
  1006. package/esm2022/tag/style/tagstyle.mjs +0 -108
  1007. package/esm2022/tag/tag.interface.mjs +0 -2
  1008. package/esm2022/tag/tag.mjs +0 -192
  1009. package/esm2022/terminal/primeng-terminal.mjs +0 -5
  1010. package/esm2022/terminal/public_api.mjs +0 -4
  1011. package/esm2022/terminal/style/terminalstyle.mjs +0 -113
  1012. package/esm2022/terminal/terminal.mjs +0 -195
  1013. package/esm2022/terminal/terminalservice.mjs +0 -25
  1014. package/esm2022/textarea/primeng-textarea.mjs +0 -5
  1015. package/esm2022/textarea/public_api.mjs +0 -3
  1016. package/esm2022/textarea/style/textareastyle.mjs +0 -120
  1017. package/esm2022/textarea/textarea.mjs +0 -165
  1018. package/esm2022/tieredmenu/primeng-tieredmenu.mjs +0 -5
  1019. package/esm2022/tieredmenu/public_api.mjs +0 -4
  1020. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +0 -276
  1021. package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
  1022. package/esm2022/tieredmenu/tieredmenu.mjs +0 -1467
  1023. package/esm2022/timeline/primeng-timeline.mjs +0 -5
  1024. package/esm2022/timeline/public_api.mjs +0 -4
  1025. package/esm2022/timeline/style/timelinestyle.mjs +0 -217
  1026. package/esm2022/timeline/timeline.interface.mjs +0 -2
  1027. package/esm2022/timeline/timeline.mjs +0 -247
  1028. package/esm2022/toast/primeng-toast.mjs +0 -5
  1029. package/esm2022/toast/public_api.mjs +0 -4
  1030. package/esm2022/toast/style/toaststyle.mjs +0 -351
  1031. package/esm2022/toast/toast.interface.mjs +0 -2
  1032. package/esm2022/toast/toast.mjs +0 -760
  1033. package/esm2022/togglebutton/primeng-togglebutton.mjs +0 -5
  1034. package/esm2022/togglebutton/public_api.mjs +0 -3
  1035. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +0 -170
  1036. package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
  1037. package/esm2022/togglebutton/togglebutton.mjs +0 -368
  1038. package/esm2022/toggleswitch/primeng-toggleswitch.mjs +0 -5
  1039. package/esm2022/toggleswitch/public_api.mjs +0 -4
  1040. package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +0 -165
  1041. package/esm2022/toggleswitch/toggleswitch.interface.mjs +0 -2
  1042. package/esm2022/toggleswitch/toggleswitch.mjs +0 -297
  1043. package/esm2022/toolbar/primeng-toolbar.mjs +0 -5
  1044. package/esm2022/toolbar/public_api.mjs +0 -4
  1045. package/esm2022/toolbar/style/toolbarstyle.mjs +0 -69
  1046. package/esm2022/toolbar/toolbar.interface.mjs +0 -2
  1047. package/esm2022/toolbar/toolbar.mjs +0 -198
  1048. package/esm2022/tooltip/primeng-tooltip.mjs +0 -5
  1049. package/esm2022/tooltip/public_api.mjs +0 -3
  1050. package/esm2022/tooltip/style/tooltipstyle.mjs +0 -113
  1051. package/esm2022/tooltip/tooltip.mjs +0 -680
  1052. package/esm2022/tree/primeng-tree.mjs +0 -5
  1053. package/esm2022/tree/public_api.mjs +0 -4
  1054. package/esm2022/tree/style/treestyle.mjs +0 -333
  1055. package/esm2022/tree/tree.interface.mjs +0 -2
  1056. package/esm2022/tree/tree.mjs +0 -2304
  1057. package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
  1058. package/esm2022/treeselect/public_api.mjs +0 -4
  1059. package/esm2022/treeselect/style/treeselectstyle.mjs +0 -271
  1060. package/esm2022/treeselect/treeselect.interface.mjs +0 -2
  1061. package/esm2022/treeselect/treeselect.mjs +0 -1439
  1062. package/esm2022/treetable/primeng-treetable.mjs +0 -5
  1063. package/esm2022/treetable/public_api.mjs +0 -4
  1064. package/esm2022/treetable/style/treetablestyle.mjs +0 -621
  1065. package/esm2022/treetable/treetable.interface.mjs +0 -2
  1066. package/esm2022/treetable/treetable.mjs +0 -4661
  1067. package/esm2022/ts-helpers/primeng-ts-helpers.mjs +0 -5
  1068. package/esm2022/ts-helpers/public_api.mjs +0 -2
  1069. package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
  1070. package/esm2022/usestyle/primeng-usestyle.mjs +0 -5
  1071. package/esm2022/usestyle/public_api.mjs +0 -2
  1072. package/esm2022/usestyle/usestyle.mjs +0 -44
  1073. package/esm2022/utils/inpututils.mjs +0 -7
  1074. package/esm2022/utils/objectutils.mjs +0 -276
  1075. package/esm2022/utils/primeng-utils.mjs +0 -5
  1076. package/esm2022/utils/public_api.mjs +0 -6
  1077. package/esm2022/utils/uniquecomponentid.mjs +0 -6
  1078. package/esm2022/utils/zindexutils.mjs +0 -35
@@ -1,1439 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, forwardRef, inject, Input, NgModule, Output, ViewChild, ViewEncapsulation } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, hasClass, isNotEmpty, uuid } from '@primeuix/utils';
5
- import { PrimeTemplate, SharedModule } from 'primeng/api';
6
- import { AutoFocus } from 'primeng/autofocus';
7
- import { BaseComponent } from 'primeng/basecomponent';
8
- import { Chip } from 'primeng/chip';
9
- import { ChevronDownIcon, TimesIcon } from 'primeng/icons';
10
- import { Overlay } from 'primeng/overlay';
11
- import { Tree } from 'primeng/tree';
12
- import { TreeSelectStyle } from './style/treeselectstyle';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/common";
15
- const _c0 = ["value"];
16
- const _c1 = ["header"];
17
- const _c2 = ["empty"];
18
- const _c3 = ["footer"];
19
- const _c4 = ["clearicon"];
20
- const _c5 = ["triggericon"];
21
- const _c6 = ["dropdownicon"];
22
- const _c7 = ["filtericon"];
23
- const _c8 = ["closeicon"];
24
- const _c9 = ["itemtogglericon"];
25
- const _c10 = ["itemcheckboxicon"];
26
- const _c11 = ["itemloadingicon"];
27
- const _c12 = ["container"];
28
- const _c13 = ["focusInput"];
29
- const _c14 = ["filter"];
30
- const _c15 = ["tree"];
31
- const _c16 = ["panel"];
32
- const _c17 = ["overlay"];
33
- const _c18 = ["firstHiddenFocusableEl"];
34
- const _c19 = ["lastHiddenFocusableEl"];
35
- const _c20 = (a0, a1) => ({ $implicit: a0, placeholder: a1 });
36
- const _c21 = (a0, a1) => ({ $implicit: a0, options: a1 });
37
- const _c22 = a0 => ({ "max-height": a0 });
38
- const _c23 = a0 => ({ $implicit: a0 });
39
- const _c24 = (a0, a1) => ({ $implicit: a0, partialSelected: a1 });
40
- function TreeSelect_ng_container_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelementContainer(0);
42
- } }
43
- function TreeSelect_ng_container_7_Template(rf, ctx) { if (rf & 1) {
44
- i0.ɵɵelementContainerStart(0);
45
- i0.ɵɵtemplate(1, TreeSelect_ng_container_7_ng_container_1_Template, 1, 0, "ng-container", 25);
46
- i0.ɵɵelementContainerEnd();
47
- } if (rf & 2) {
48
- const ctx_r1 = i0.ɵɵnextContext();
49
- i0.ɵɵadvance();
50
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.valueTemplate || ctx_r1._valueTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c20, ctx_r1.value, ctx_r1.placeholder));
51
- } }
52
- function TreeSelect_ng_template_8_ng_container_0_Template(rf, ctx) { if (rf & 1) {
53
- i0.ɵɵelementContainerStart(0);
54
- i0.ɵɵtext(1);
55
- i0.ɵɵelementContainerEnd();
56
- } if (rf & 2) {
57
- const ctx_r1 = i0.ɵɵnextContext(2);
58
- i0.ɵɵadvance();
59
- i0.ɵɵtextInterpolate1(" ", ctx_r1.label || "empty", " ");
60
- } }
61
- function TreeSelect_ng_template_8_ng_template_1_div_0_Template(rf, ctx) { if (rf & 1) {
62
- i0.ɵɵelementStart(0, "div", 27);
63
- i0.ɵɵelement(1, "p-chip", 28);
64
- i0.ɵɵelementEnd();
65
- } if (rf & 2) {
66
- const node_r3 = ctx.$implicit;
67
- i0.ɵɵadvance();
68
- i0.ɵɵproperty("label", node_r3.label);
69
- } }
70
- function TreeSelect_ng_template_8_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
71
- i0.ɵɵelementContainerStart(0);
72
- i0.ɵɵtext(1);
73
- i0.ɵɵelementContainerEnd();
74
- } if (rf & 2) {
75
- const ctx_r1 = i0.ɵɵnextContext(3);
76
- i0.ɵɵadvance();
77
- i0.ɵɵtextInterpolate(ctx_r1.placeholder || "empty");
78
- } }
79
- function TreeSelect_ng_template_8_ng_template_1_Template(rf, ctx) { if (rf & 1) {
80
- i0.ɵɵtemplate(0, TreeSelect_ng_template_8_ng_template_1_div_0_Template, 2, 1, "div", 26)(1, TreeSelect_ng_template_8_ng_template_1_ng_container_1_Template, 2, 1, "ng-container", 20);
81
- } if (rf & 2) {
82
- const ctx_r1 = i0.ɵɵnextContext(2);
83
- i0.ɵɵproperty("ngForOf", ctx_r1.value);
84
- i0.ɵɵadvance();
85
- i0.ɵɵproperty("ngIf", ctx_r1.emptyValue);
86
- } }
87
- function TreeSelect_ng_template_8_Template(rf, ctx) { if (rf & 1) {
88
- i0.ɵɵtemplate(0, TreeSelect_ng_template_8_ng_container_0_Template, 2, 1, "ng-container", 19)(1, TreeSelect_ng_template_8_ng_template_1_Template, 2, 2, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
89
- } if (rf & 2) {
90
- const chipsValueTemplate_r4 = i0.ɵɵreference(2);
91
- const ctx_r1 = i0.ɵɵnextContext();
92
- i0.ɵɵproperty("ngIf", ctx_r1.display === "comma")("ngIfElse", chipsValueTemplate_r4);
93
- } }
94
- function TreeSelect_ng_container_10_TimesIcon_1_Template(rf, ctx) { if (rf & 1) {
95
- const _r5 = i0.ɵɵgetCurrentView();
96
- i0.ɵɵelementStart(0, "TimesIcon", 31);
97
- i0.ɵɵlistener("click", function TreeSelect_ng_container_10_TimesIcon_1_Template_TimesIcon_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.clear($event)); });
98
- i0.ɵɵelementEnd();
99
- } if (rf & 2) {
100
- i0.ɵɵclassMap("p-treeselect-clear-icon");
101
- } }
102
- function TreeSelect_ng_container_10_span_2_1_ng_template_0_Template(rf, ctx) { }
103
- function TreeSelect_ng_container_10_span_2_1_Template(rf, ctx) { if (rf & 1) {
104
- i0.ɵɵtemplate(0, TreeSelect_ng_container_10_span_2_1_ng_template_0_Template, 0, 0, "ng-template");
105
- } }
106
- function TreeSelect_ng_container_10_span_2_Template(rf, ctx) { if (rf & 1) {
107
- const _r6 = i0.ɵɵgetCurrentView();
108
- i0.ɵɵelementStart(0, "span", 32);
109
- i0.ɵɵlistener("click", function TreeSelect_ng_container_10_span_2_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.clear($event)); });
110
- i0.ɵɵtemplate(1, TreeSelect_ng_container_10_span_2_1_Template, 1, 0, null, 33);
111
- i0.ɵɵelementEnd();
112
- } if (rf & 2) {
113
- const ctx_r1 = i0.ɵɵnextContext(2);
114
- i0.ɵɵadvance();
115
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.clearIconTemplate || ctx_r1._clearIconTemplate);
116
- } }
117
- function TreeSelect_ng_container_10_Template(rf, ctx) { if (rf & 1) {
118
- i0.ɵɵelementContainerStart(0);
119
- i0.ɵɵtemplate(1, TreeSelect_ng_container_10_TimesIcon_1_Template, 1, 2, "TimesIcon", 29)(2, TreeSelect_ng_container_10_span_2_Template, 2, 1, "span", 30);
120
- i0.ɵɵelementContainerEnd();
121
- } if (rf & 2) {
122
- const ctx_r1 = i0.ɵɵnextContext();
123
- i0.ɵɵadvance();
124
- i0.ɵɵproperty("ngIf", !ctx_r1.clearIconTemplate && !ctx_r1._clearIconTemplate);
125
- i0.ɵɵadvance();
126
- i0.ɵɵproperty("ngIf", ctx_r1.clearIconTemplate || ctx_r1.clearIconTemplate);
127
- } }
128
- function TreeSelect_ChevronDownIcon_12_Template(rf, ctx) { if (rf & 1) {
129
- i0.ɵɵelement(0, "ChevronDownIcon", 34);
130
- } if (rf & 2) {
131
- i0.ɵɵproperty("styleClass", "p-treeselect-dropdown-icon");
132
- } }
133
- function TreeSelect_span_13_1_ng_template_0_Template(rf, ctx) { }
134
- function TreeSelect_span_13_1_Template(rf, ctx) { if (rf & 1) {
135
- i0.ɵɵtemplate(0, TreeSelect_span_13_1_ng_template_0_Template, 0, 0, "ng-template");
136
- } }
137
- function TreeSelect_span_13_Template(rf, ctx) { if (rf & 1) {
138
- i0.ɵɵelementStart(0, "span", 35);
139
- i0.ɵɵtemplate(1, TreeSelect_span_13_1_Template, 1, 0, null, 33);
140
- i0.ɵɵelementEnd();
141
- } if (rf & 2) {
142
- const ctx_r1 = i0.ɵɵnextContext();
143
- i0.ɵɵadvance();
144
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.triggerIconTemplate || ctx_r1._triggerIconTemplate || ctx_r1.dropdownIconTemplate || ctx_r1._dropdownIconTemplate);
145
- } }
146
- function TreeSelect_ng_template_16_ng_container_4_Template(rf, ctx) { if (rf & 1) {
147
- i0.ɵɵelementContainer(0);
148
- } }
149
- function TreeSelect_ng_template_16_ng_container_8_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
150
- i0.ɵɵelementContainer(0);
151
- } }
152
- function TreeSelect_ng_template_16_ng_container_8_ng_template_1_Template(rf, ctx) { if (rf & 1) {
153
- i0.ɵɵtemplate(0, TreeSelect_ng_template_16_ng_container_8_ng_template_1_ng_container_0_Template, 1, 0, "ng-container", 33);
154
- } if (rf & 2) {
155
- const ctx_r1 = i0.ɵɵnextContext(3);
156
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.emptyTemplate || ctx_r1._emptyTemplate);
157
- } }
158
- function TreeSelect_ng_template_16_ng_container_8_Template(rf, ctx) { if (rf & 1) {
159
- i0.ɵɵelementContainerStart(0);
160
- i0.ɵɵtemplate(1, TreeSelect_ng_template_16_ng_container_8_ng_template_1_Template, 1, 1, "ng-template", null, 10, i0.ɵɵtemplateRefExtractor);
161
- i0.ɵɵelementContainerEnd();
162
- } }
163
- function TreeSelect_ng_template_16_9_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
164
- i0.ɵɵelementContainer(0);
165
- } }
166
- function TreeSelect_ng_template_16_9_ng_template_0_Template(rf, ctx) { if (rf & 1) {
167
- i0.ɵɵtemplate(0, TreeSelect_ng_template_16_9_ng_template_0_ng_container_0_Template, 1, 0, "ng-container", 25);
168
- } if (rf & 2) {
169
- const expanded_r8 = ctx.$implicit;
170
- const ctx_r1 = i0.ɵɵnextContext(3);
171
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.itemTogglerIconTemplate || ctx_r1._itemTogglerIconTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c23, expanded_r8));
172
- } }
173
- function TreeSelect_ng_template_16_9_Template(rf, ctx) { if (rf & 1) {
174
- i0.ɵɵtemplate(0, TreeSelect_ng_template_16_9_ng_template_0_Template, 1, 4, "ng-template", null, 11, i0.ɵɵtemplateRefExtractor);
175
- } }
176
- function TreeSelect_ng_template_16_10_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
177
- i0.ɵɵelementContainer(0);
178
- } }
179
- function TreeSelect_ng_template_16_10_ng_template_0_Template(rf, ctx) { if (rf & 1) {
180
- i0.ɵɵtemplate(0, TreeSelect_ng_template_16_10_ng_template_0_ng_container_0_Template, 1, 0, "ng-container", 25);
181
- } if (rf & 2) {
182
- const selected_r9 = ctx.$implicit;
183
- const partialSelected_r10 = ctx.partialSelected;
184
- const ctx_r1 = i0.ɵɵnextContext(3);
185
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.itemCheckboxIconTemplate || ctx_r1._itemCheckboxIconTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c24, selected_r9, partialSelected_r10));
186
- } }
187
- function TreeSelect_ng_template_16_10_Template(rf, ctx) { if (rf & 1) {
188
- i0.ɵɵtemplate(0, TreeSelect_ng_template_16_10_ng_template_0_Template, 1, 5, "ng-template", null, 12, i0.ɵɵtemplateRefExtractor);
189
- } }
190
- function TreeSelect_ng_template_16_11_ng_template_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
191
- i0.ɵɵelementContainer(0);
192
- } }
193
- function TreeSelect_ng_template_16_11_ng_template_0_Template(rf, ctx) { if (rf & 1) {
194
- i0.ɵɵtemplate(0, TreeSelect_ng_template_16_11_ng_template_0_ng_container_0_Template, 1, 0, "ng-container", 33);
195
- } if (rf & 2) {
196
- const ctx_r1 = i0.ɵɵnextContext(3);
197
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.itemLoadingIconTemplate || ctx_r1._itemLoadingIconTemplate);
198
- } }
199
- function TreeSelect_ng_template_16_11_Template(rf, ctx) { if (rf & 1) {
200
- i0.ɵɵtemplate(0, TreeSelect_ng_template_16_11_ng_template_0_Template, 1, 1, "ng-template", null, 13, i0.ɵɵtemplateRefExtractor);
201
- } }
202
- function TreeSelect_ng_template_16_ng_container_12_Template(rf, ctx) { if (rf & 1) {
203
- i0.ɵɵelementContainer(0);
204
- } }
205
- function TreeSelect_ng_template_16_Template(rf, ctx) { if (rf & 1) {
206
- const _r7 = i0.ɵɵgetCurrentView();
207
- i0.ɵɵelementStart(0, "div", 36, 6)(2, "span", 37, 7);
208
- i0.ɵɵlistener("focus", function TreeSelect_ng_template_16_Template_span_focus_2_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFirstHiddenFocus($event)); });
209
- i0.ɵɵelementEnd();
210
- i0.ɵɵtemplate(4, TreeSelect_ng_template_16_ng_container_4_Template, 1, 0, "ng-container", 25);
211
- i0.ɵɵelementStart(5, "div", 38)(6, "p-tree", 39, 8);
212
- i0.ɵɵlistener("selectionChange", function TreeSelect_ng_template_16_Template_p_tree_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSelectionChange($event)); })("onNodeExpand", function TreeSelect_ng_template_16_Template_p_tree_onNodeExpand_6_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.nodeExpand($event)); })("onNodeCollapse", function TreeSelect_ng_template_16_Template_p_tree_onNodeCollapse_6_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.nodeCollapse($event)); })("onNodeSelect", function TreeSelect_ng_template_16_Template_p_tree_onNodeSelect_6_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSelect($event)); })("onNodeUnselect", function TreeSelect_ng_template_16_Template_p_tree_onNodeUnselect_6_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onUnselect($event)); });
213
- i0.ɵɵtemplate(8, TreeSelect_ng_template_16_ng_container_8_Template, 3, 0, "ng-container", 20)(9, TreeSelect_ng_template_16_9_Template, 2, 0, null, 20)(10, TreeSelect_ng_template_16_10_Template, 2, 0, null, 20)(11, TreeSelect_ng_template_16_11_Template, 2, 0, null, 20);
214
- i0.ɵɵelementEnd()();
215
- i0.ɵɵtemplate(12, TreeSelect_ng_template_16_ng_container_12_Template, 1, 0, "ng-container", 25);
216
- i0.ɵɵelementStart(13, "span", 37, 9);
217
- i0.ɵɵlistener("focus", function TreeSelect_ng_template_16_Template_span_focus_13_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onLastHiddenFocus($event)); });
218
- i0.ɵɵelementEnd()();
219
- } if (rf & 2) {
220
- const ctx_r1 = i0.ɵɵnextContext();
221
- i0.ɵɵclassMap(ctx_r1.panelStyleClass);
222
- i0.ɵɵproperty("ngStyle", ctx_r1.panelStyle)("ngClass", ctx_r1.panelClass);
223
- i0.ɵɵattribute("id", ctx_r1.listId);
224
- i0.ɵɵadvance(2);
225
- i0.ɵɵattribute("tabindex", 0)("data-p-hidden-accessible", true)("data-p-hidden-focusable", true);
226
- i0.ɵɵadvance(2);
227
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.headerTemplate || ctx_r1._headerTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(38, _c21, ctx_r1.value, ctx_r1.options));
228
- i0.ɵɵadvance();
229
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(41, _c22, ctx_r1.scrollHeight));
230
- i0.ɵɵadvance();
231
- i0.ɵɵproperty("value", ctx_r1.options)("propagateSelectionDown", ctx_r1.propagateSelectionDown)("propagateSelectionUp", ctx_r1.propagateSelectionUp)("selectionMode", ctx_r1.selectionMode)("selection", ctx_r1.value)("metaKeySelection", ctx_r1.metaKeySelection)("emptyMessage", ctx_r1.emptyMessage)("filter", ctx_r1.filter)("filterBy", ctx_r1.filterBy)("filterMode", ctx_r1.filterMode)("filterPlaceholder", ctx_r1.filterPlaceholder)("filterLocale", ctx_r1.filterLocale)("filteredNodes", ctx_r1.filteredNodes)("virtualScroll", ctx_r1.virtualScroll)("virtualScrollItemSize", ctx_r1.virtualScrollItemSize)("virtualScrollOptions", ctx_r1.virtualScrollOptions)("_templateMap", ctx_r1.templateMap)("loading", ctx_r1.loading);
232
- i0.ɵɵadvance(2);
233
- i0.ɵɵproperty("ngIf", ctx_r1.emptyTemplate || ctx_r1._emptyTemplate);
234
- i0.ɵɵadvance();
235
- i0.ɵɵproperty("ngIf", ctx_r1.itemTogglerIconTemplate || ctx_r1._itemTogglerIconTemplate);
236
- i0.ɵɵadvance();
237
- i0.ɵɵproperty("ngIf", ctx_r1.itemCheckboxIconTemplate || ctx_r1._itemCheckboxIconTemplate);
238
- i0.ɵɵadvance();
239
- i0.ɵɵproperty("ngIf", ctx_r1.itemLoadingIconTemplate || ctx_r1._itemLoadingIconTemplate);
240
- i0.ɵɵadvance();
241
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.footerTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(43, _c21, ctx_r1.value, ctx_r1.options));
242
- i0.ɵɵadvance();
243
- i0.ɵɵattribute("tabindex", 0)("data-p-hidden-accessible", true)("data-p-hidden-focusable", true);
244
- } }
245
- export const TREESELECT_VALUE_ACCESSOR = {
246
- provide: NG_VALUE_ACCESSOR,
247
- useExisting: forwardRef(() => TreeSelect),
248
- multi: true
249
- };
250
- /**
251
- * TreeSelect is a form component to choose from hierarchical data.
252
- * @group Components
253
- */
254
- export class TreeSelect extends BaseComponent {
255
- /**
256
- * Identifier of the underlying input element.
257
- * @group Props
258
- */
259
- inputId;
260
- /**
261
- * Height of the viewport, a scrollbar is defined if height of list exceeds this value.
262
- * @group Props
263
- */
264
- scrollHeight = '400px';
265
- /**
266
- * When present, it specifies that the component should be disabled.
267
- * @group Props
268
- */
269
- disabled;
270
- /**
271
- * Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.
272
- * @group Props
273
- */
274
- metaKeySelection = false;
275
- /**
276
- * Specifies the input variant of the component.
277
- * @group Props
278
- */
279
- variant = 'outlined';
280
- /**
281
- * Defines how the selected items are displayed.
282
- * @group Props
283
- */
284
- display = 'comma';
285
- /**
286
- * Defines the selection mode.
287
- * @group Props
288
- */
289
- selectionMode = 'single';
290
- /**
291
- * Index of the element in tabbing order.
292
- * @group Props
293
- */
294
- tabindex = '0';
295
- /**
296
- * Defines a string that labels the input for accessibility.
297
- * @group Props
298
- */
299
- ariaLabel;
300
- /**
301
- * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
302
- * @group Props
303
- */
304
- ariaLabelledBy;
305
- /**
306
- * Label to display when there are no selections.
307
- * @group Props
308
- */
309
- placeholder;
310
- /**
311
- * Style class of the overlay panel.
312
- * @group Props
313
- */
314
- panelClass;
315
- /**
316
- * Inline style of the panel element.
317
- * @group Props
318
- */
319
- panelStyle;
320
- /**
321
- * Spans 100% width of the container when enabled.
322
- * @group Props
323
- */
324
- fluid = false;
325
- /**
326
- * Style class of the panel element.
327
- * @group Props
328
- */
329
- panelStyleClass;
330
- /**
331
- * Inline style of the container element.
332
- * @group Props
333
- */
334
- set containerStyle(val) {
335
- const _rootStyle = this._componentStyle.inlineStyles.root({ instance: this });
336
- this._containerStyle = { ..._rootStyle, ...val };
337
- }
338
- get containerStyle() {
339
- return this._containerStyle;
340
- }
341
- _containerStyle;
342
- /**
343
- * Style class of the container element.
344
- * @group Props
345
- */
346
- containerStyleClass;
347
- /**
348
- * Inline style of the label element.
349
- * @group Props
350
- */
351
- labelStyle;
352
- /**
353
- * Style class of the label element.
354
- * @group Props
355
- */
356
- labelStyleClass;
357
- /**
358
- * Specifies the options for the overlay.
359
- * @group Props
360
- */
361
- overlayOptions;
362
- /**
363
- * Text to display when there are no options available. Defaults to value from PrimeNG locale configuration.
364
- * @group Props
365
- */
366
- emptyMessage = '';
367
- /**
368
- * A valid query selector or an HTMLElement to specify where the overlay gets attached. Special keywords are "body" for document body and "self" for the element itself.
369
- * @group Props
370
- */
371
- appendTo;
372
- /**
373
- * When specified, displays an input field to filter the items.
374
- * @group Props
375
- */
376
- filter = false;
377
- /**
378
- * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.
379
- * @group Props
380
- */
381
- filterBy = 'label';
382
- /**
383
- * Mode for filtering valid values are "lenient" and "strict". Default is lenient.
384
- * @group Props
385
- */
386
- filterMode = 'lenient';
387
- /**
388
- * Placeholder text to show when filter input is empty.
389
- * @group Props
390
- */
391
- filterPlaceholder;
392
- /**
393
- * Locale to use in filtering. The default locale is the host environment's current locale.
394
- * @group Props
395
- */
396
- filterLocale;
397
- /**
398
- * Determines whether the filter input should be automatically focused when the component is rendered.
399
- * @group Props
400
- */
401
- filterInputAutoFocus = true;
402
- /**
403
- * Whether checkbox selections propagate to descendant nodes.
404
- * @group Props
405
- */
406
- propagateSelectionDown = true;
407
- /**
408
- * Whether checkbox selections propagate to ancestor nodes.
409
- * @group Props
410
- */
411
- propagateSelectionUp = true;
412
- /**
413
- * When enabled, a clear icon is displayed to clear the value.
414
- * @group Props
415
- */
416
- showClear = false;
417
- /**
418
- * Clears the filter value when hiding the dropdown.
419
- * @group Props
420
- */
421
- resetFilterOnHide = true;
422
- /**
423
- * Whether the data should be loaded on demand during scroll.
424
- * @group Props
425
- */
426
- virtualScroll;
427
- /**
428
- * Height of an item in the list for VirtualScrolling.
429
- * @group Props
430
- */
431
- virtualScrollItemSize;
432
- /**
433
- * Defines the size of the component.
434
- * @group Props
435
- */
436
- size;
437
- /**
438
- * Whether to use the scroller feature. The properties of scroller component can be used like an object in it.
439
- * @group Props
440
- */
441
- virtualScrollOptions;
442
- /**
443
- * When present, it specifies that the component should automatically get focus on load.
444
- * @group Props
445
- */
446
- autofocus;
447
- /**
448
- * An array of treenodes.
449
- * @defaultValue undefined
450
- * @group Props
451
- */
452
- get options() {
453
- return this._options;
454
- }
455
- set options(options) {
456
- this._options = options;
457
- this.updateTreeState();
458
- }
459
- /**
460
- * Transition options of the show animation.
461
- * @group Props
462
- * @deprecated since v14.2.0 use overlayOptions property instead.
463
- */
464
- get showTransitionOptions() {
465
- return this._showTransitionOptions;
466
- }
467
- set showTransitionOptions(val) {
468
- this._showTransitionOptions = val;
469
- console.log('The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');
470
- }
471
- /**
472
- * Transition options of the hide animation.
473
- * @group Props
474
- * @deprecated since v14.2.0 use overlayOptions property instead.
475
- */
476
- get hideTransitionOptions() {
477
- return this._hideTransitionOptions;
478
- }
479
- set hideTransitionOptions(val) {
480
- this._hideTransitionOptions = val;
481
- console.log('The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');
482
- }
483
- /**
484
- * Displays a loader to indicate data load is in progress.
485
- * @group Props
486
- */
487
- loading;
488
- /**
489
- * Callback to invoke when a node is expanded.
490
- * @param {TreeSelectNodeExpandEvent} event - Custom node expand event.
491
- * @group Emits
492
- */
493
- onNodeExpand = new EventEmitter();
494
- /**
495
- * Callback to invoke when a node is collapsed.
496
- * @param {TreeSelectNodeCollapseEvent} event - Custom node collapse event.
497
- * @group Emits
498
- */
499
- onNodeCollapse = new EventEmitter();
500
- /**
501
- * Callback to invoke when the overlay is shown.
502
- * @param {Event} event - Browser event.
503
- * @group Emits
504
- */
505
- onShow = new EventEmitter();
506
- /**
507
- * Callback to invoke when the overlay is hidden.
508
- * @param {Event} event - Browser event.
509
- * @group Emits
510
- */
511
- onHide = new EventEmitter();
512
- /**
513
- * Callback to invoke when input field is cleared.
514
- * @group Emits
515
- */
516
- onClear = new EventEmitter();
517
- /**
518
- * Callback to invoke when data is filtered.
519
- * @group Emits
520
- */
521
- onFilter = new EventEmitter();
522
- /**
523
- * Callback to invoke when treeselect gets focus.
524
- * @param {Event} event - Browser event.
525
- * @group Emits
526
- */
527
- onFocus = new EventEmitter();
528
- /**
529
- * Callback to invoke when treeselect loses focus.
530
- * @param {Event} event - Browser event.
531
- * @group Emits
532
- */
533
- onBlur = new EventEmitter();
534
- /**
535
- * Callback to invoke when a node is unselected.
536
- * @param {TreeNodeUnSelectEvent} event - node unselect event.
537
- * @group Emits
538
- */
539
- onNodeUnselect = new EventEmitter();
540
- /**
541
- * Callback to invoke when a node is selected.
542
- * @param {TreeNodeSelectEvent} event - node select event.
543
- * @group Emits
544
- */
545
- onNodeSelect = new EventEmitter();
546
- _showTransitionOptions;
547
- _hideTransitionOptions;
548
- containerEl;
549
- focusInput;
550
- filterViewChild;
551
- treeViewChild;
552
- panelEl;
553
- overlayViewChild;
554
- firstHiddenFocusableElementOnOverlay;
555
- lastHiddenFocusableElementOnOverlay;
556
- filteredNodes;
557
- filterValue = null;
558
- serializedValue;
559
- /**
560
- * Custom value template.
561
- * @group Templates
562
- */
563
- valueTemplate;
564
- /**
565
- * Custom header template.
566
- * @group Templates
567
- */
568
- headerTemplate;
569
- /**
570
- * Custom empty message template.
571
- * @group Templates
572
- */
573
- emptyTemplate;
574
- /**
575
- * Custom footer template.
576
- * @group Templates
577
- */
578
- footerTemplate;
579
- /**
580
- * Custom clear icon template.
581
- * @group Templates
582
- */
583
- clearIconTemplate;
584
- /**
585
- * Custom trigger icon template.
586
- * @group Templates
587
- */
588
- triggerIconTemplate;
589
- /**
590
- * Custom dropdown icon template.
591
- * @group Templates
592
- */
593
- dropdownIconTemplate;
594
- /**
595
- * Custom filter icon template.
596
- * @group Templates
597
- */
598
- filterIconTemplate;
599
- /**
600
- * Custom close icon template.
601
- * @group Templates
602
- */
603
- closeIconTemplate;
604
- /**
605
- * Custom item toggler icon template.
606
- * @group Templates
607
- */
608
- itemTogglerIconTemplate;
609
- /**
610
- * Custom item checkbox icon template.
611
- * @group Templates
612
- */
613
- itemCheckboxIconTemplate;
614
- /**
615
- * Custom item loading icon template.
616
- * @group Templates
617
- */
618
- itemLoadingIconTemplate;
619
- templates;
620
- _valueTemplate;
621
- _headerTemplate;
622
- _emptyTemplate;
623
- _footerTemplate;
624
- _clearIconTemplate;
625
- _triggerIconTemplate;
626
- _filterIconTemplate;
627
- _closeIconTemplate;
628
- _itemTogglerIconTemplate;
629
- _itemCheckboxIconTemplate;
630
- _itemLoadingIconTemplate;
631
- _dropdownIconTemplate;
632
- focused;
633
- overlayVisible;
634
- selfChange;
635
- value;
636
- expandedNodes = [];
637
- _options;
638
- templateMap;
639
- onModelChange = () => { };
640
- onModelTouched = () => { };
641
- listId = '';
642
- _componentStyle = inject(TreeSelectStyle);
643
- ngOnInit() {
644
- super.ngOnInit();
645
- this.listId = uuid('pn_id_') + '_list';
646
- this.updateTreeState();
647
- }
648
- ngAfterContentInit() {
649
- if (this.templates.length) {
650
- this.templateMap = {};
651
- }
652
- this.templates.forEach((item) => {
653
- switch (item.getType()) {
654
- case 'value':
655
- this._valueTemplate = item.template;
656
- break;
657
- case 'header':
658
- this._headerTemplate = item.template;
659
- break;
660
- case 'empty':
661
- this._emptyTemplate = item.template;
662
- break;
663
- case 'footer':
664
- this._footerTemplate = item.template;
665
- break;
666
- case 'clearicon':
667
- this._clearIconTemplate = item.template;
668
- break;
669
- case 'triggericon':
670
- this._triggerIconTemplate = item.template;
671
- break;
672
- case 'filtericon':
673
- this._filterIconTemplate = item.template;
674
- break;
675
- case 'closeicon':
676
- this._closeIconTemplate = item.template;
677
- break;
678
- case 'itemtogglericon':
679
- this._itemTogglerIconTemplate = item.template;
680
- break;
681
- case 'itemcheckboxicon':
682
- this._itemCheckboxIconTemplate = item.template;
683
- break;
684
- case 'dropdownicon':
685
- this._dropdownIconTemplate = item.template;
686
- break;
687
- case 'itemloadingicon':
688
- this._itemLoadingIconTemplate = item.template;
689
- break;
690
- default: //TODO: @deprecated Used "value" template instead
691
- if (item.name)
692
- this.templateMap[item.name] = item.template;
693
- else
694
- this.valueTemplate = item.template;
695
- break;
696
- }
697
- });
698
- }
699
- onOverlayAnimationStart(event) {
700
- switch (event.toState) {
701
- case 'visible':
702
- if (this.filter) {
703
- isNotEmpty(this.filterValue) && this.treeViewChild?._filter(this.filterValue);
704
- this.filterInputAutoFocus && this.filterViewChild?.nativeElement.focus();
705
- }
706
- else {
707
- let focusableElements = getFocusableElements(this.panelEl.nativeElement);
708
- if (focusableElements && focusableElements.length > 0) {
709
- focusableElements[0].focus();
710
- }
711
- }
712
- break;
713
- }
714
- }
715
- onOverlayBeforeHide(event) {
716
- let focusableElements = getFocusableElements(this.containerEl.nativeElement);
717
- if (focusableElements && focusableElements.length > 0) {
718
- focusableElements[0].focus();
719
- }
720
- }
721
- onSelectionChange(event) {
722
- this.value = event;
723
- this.onModelChange(this.value);
724
- this.cd.markForCheck();
725
- }
726
- onClick(event) {
727
- if (this.disabled) {
728
- return;
729
- }
730
- if (!this.overlayViewChild?.el?.nativeElement?.contains(event.target) && !hasClass(event.target, 'p-treeselect-close') && !hasClass(event.target, 'p-checkbox-box') && !hasClass(event.target, 'p-checkbox-icon')) {
731
- if (this.overlayVisible) {
732
- this.hide();
733
- }
734
- else {
735
- this.show();
736
- }
737
- this.focusInput?.nativeElement.focus();
738
- }
739
- }
740
- onKeyDown(event) {
741
- switch (event.code) {
742
- //down
743
- case 'ArrowDown':
744
- if (!this.overlayVisible) {
745
- this.show();
746
- event.preventDefault();
747
- }
748
- this.onArrowDown(event);
749
- event.preventDefault();
750
- break;
751
- //space
752
- case 'Space':
753
- case 'Enter':
754
- if (!this.overlayVisible) {
755
- this.show();
756
- event.preventDefault();
757
- }
758
- break;
759
- //escape
760
- case 'Escape':
761
- if (this.overlayVisible) {
762
- this.hide();
763
- this.focusInput?.nativeElement.focus();
764
- event.preventDefault();
765
- }
766
- break;
767
- //tab
768
- case 'Tab':
769
- this.onTabKey(event);
770
- break;
771
- default:
772
- break;
773
- }
774
- }
775
- onFilterInput(event) {
776
- this.filterValue = event.target.value;
777
- this.treeViewChild?._filter(this.filterValue);
778
- this.onFilter.emit({
779
- filter: this.filterValue,
780
- filteredValue: this.treeViewChild?.filteredNodes
781
- });
782
- setTimeout(() => {
783
- this.overlayViewChild.alignOverlay();
784
- });
785
- }
786
- onArrowDown(event) {
787
- if (this.overlayVisible && this.panelEl?.nativeElement) {
788
- let focusableElements = getFocusableElements(this.panelEl.nativeElement, '.p-tree-node');
789
- if (focusableElements && focusableElements.length > 0) {
790
- focusableElements[0].focus();
791
- }
792
- event.preventDefault();
793
- }
794
- }
795
- onFirstHiddenFocus(event) {
796
- const focusableEl = event.relatedTarget === this.focusInput?.nativeElement ? getFirstFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable="true"])') : this.focusInput?.nativeElement;
797
- focus(focusableEl);
798
- }
799
- onLastHiddenFocus(event) {
800
- const focusableEl = event.relatedTarget === this.focusInput?.nativeElement ? getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement, ':not([data-p-hidden-focusable="true"])') : this.focusInput?.nativeElement;
801
- focus(focusableEl);
802
- }
803
- show() {
804
- this.overlayVisible = true;
805
- }
806
- hide(event) {
807
- this.overlayVisible = false;
808
- this.resetFilter();
809
- this.onHide.emit(event);
810
- this.cd.markForCheck();
811
- }
812
- clear(event) {
813
- this.value = null;
814
- this.resetExpandedNodes();
815
- this.resetPartialSelected();
816
- this.onModelChange(this.value);
817
- this.onClear.emit();
818
- event.stopPropagation();
819
- }
820
- checkValue() {
821
- return this.value !== null && isNotEmpty(this.value);
822
- }
823
- onTabKey(event, pressedInInputText = false) {
824
- if (!pressedInInputText) {
825
- if (this.overlayVisible && this.hasFocusableElements()) {
826
- focus(event.shiftKey ? this.lastHiddenFocusableElementOnOverlay.nativeElement : this.firstHiddenFocusableElementOnOverlay.nativeElement);
827
- event.preventDefault();
828
- }
829
- else {
830
- this.overlayVisible && this.hide(this.filter);
831
- }
832
- }
833
- }
834
- hasFocusableElements() {
835
- return getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement, ':not([data-p-hidden-focusable="true"])').length > 0;
836
- }
837
- resetFilter() {
838
- if (this.filter && !this.resetFilterOnHide) {
839
- this.filteredNodes = this.treeViewChild?.filteredNodes;
840
- this.treeViewChild?.resetFilter();
841
- }
842
- else {
843
- this.filterValue = null;
844
- }
845
- }
846
- updateTreeState() {
847
- if (this.value) {
848
- let selectedNodes = this.selectionMode === 'single' ? [this.value] : [...this.value];
849
- this.resetExpandedNodes();
850
- this.resetPartialSelected();
851
- if (selectedNodes && this.options) {
852
- this.updateTreeBranchState(null, null, selectedNodes);
853
- }
854
- }
855
- }
856
- updateTreeBranchState(node, path, selectedNodes) {
857
- if (node) {
858
- if (this.isSelected(node)) {
859
- this.expandPath(path);
860
- selectedNodes.splice(selectedNodes.indexOf(node), 1);
861
- }
862
- if (selectedNodes.length > 0 && node.children) {
863
- for (let childNode of node.children) {
864
- this.updateTreeBranchState(childNode, [...path, node], selectedNodes);
865
- }
866
- }
867
- }
868
- else {
869
- for (let childNode of this.options) {
870
- this.updateTreeBranchState(childNode, [], selectedNodes);
871
- }
872
- }
873
- }
874
- expandPath(expandedNodes) {
875
- for (let node of expandedNodes) {
876
- node.expanded = true;
877
- }
878
- this.expandedNodes = [...expandedNodes];
879
- }
880
- nodeExpand(event) {
881
- this.onNodeExpand.emit(event);
882
- this.expandedNodes.push(event.node);
883
- }
884
- nodeCollapse(event) {
885
- this.onNodeCollapse.emit(event);
886
- this.expandedNodes.splice(this.expandedNodes.indexOf(event.node), 1);
887
- }
888
- resetExpandedNodes() {
889
- for (let node of this.expandedNodes) {
890
- node.expanded = false;
891
- }
892
- this.expandedNodes = [];
893
- }
894
- resetPartialSelected(nodes = this.options) {
895
- if (!nodes) {
896
- return;
897
- }
898
- for (let node of nodes) {
899
- node.partialSelected = false;
900
- if (node.children && node.children?.length > 0) {
901
- this.resetPartialSelected(node.children);
902
- }
903
- }
904
- }
905
- findSelectedNodes(node, keys, selectedNodes) {
906
- if (node) {
907
- if (this.isSelected(node)) {
908
- selectedNodes.push(node);
909
- delete keys[node.key];
910
- }
911
- if (Object.keys(keys).length && node.children) {
912
- for (let childNode of node.children) {
913
- this.findSelectedNodes(childNode, keys, selectedNodes);
914
- }
915
- }
916
- }
917
- else {
918
- for (let childNode of this.options) {
919
- this.findSelectedNodes(childNode, keys, selectedNodes);
920
- }
921
- }
922
- }
923
- isSelected(node) {
924
- return this.findIndexInSelection(node) != -1;
925
- }
926
- findIndexInSelection(node) {
927
- let index = -1;
928
- if (this.value) {
929
- if (this.selectionMode === 'single') {
930
- let areNodesEqual = (this.value.key && this.value.key === node.key) || this.value == node;
931
- index = areNodesEqual ? 0 : -1;
932
- }
933
- else {
934
- for (let i = 0; i < this.value.length; i++) {
935
- let selectedNode = this.value[i];
936
- let areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode == node;
937
- if (areNodesEqual) {
938
- index = i;
939
- break;
940
- }
941
- }
942
- }
943
- }
944
- return index;
945
- }
946
- onSelect(event) {
947
- this.onNodeSelect.emit(event);
948
- if (this.selectionMode === 'single') {
949
- this.hide();
950
- this.focusInput?.nativeElement.focus();
951
- }
952
- }
953
- onUnselect(event) {
954
- this.onNodeUnselect.emit(event);
955
- }
956
- onInputFocus(event) {
957
- if (this.disabled) {
958
- // For ScreenReaders
959
- return;
960
- }
961
- this.focused = true;
962
- this.onFocus.emit(event);
963
- }
964
- onInputBlur(event) {
965
- this.focused = false;
966
- this.onBlur.emit(event);
967
- this.onModelTouched();
968
- }
969
- writeValue(value) {
970
- this.value = value;
971
- this.updateTreeState();
972
- this.cd.markForCheck();
973
- }
974
- registerOnChange(fn) {
975
- this.onModelChange = fn;
976
- }
977
- registerOnTouched(fn) {
978
- this.onModelTouched = fn;
979
- }
980
- setDisabledState(val) {
981
- setTimeout(() => {
982
- this.disabled = val;
983
- this.cd.markForCheck();
984
- });
985
- }
986
- get containerClass() {
987
- return this._componentStyle.classes.root({ instance: this });
988
- }
989
- get hasFluid() {
990
- const nativeElement = this.el.nativeElement;
991
- const fluidComponent = nativeElement.closest('p-fluid');
992
- return this.fluid || !!fluidComponent;
993
- }
994
- get labelClass() {
995
- return this._componentStyle.classes.label({ instance: this });
996
- }
997
- get emptyValue() {
998
- return !this.value || Object.keys(this.value).length === 0;
999
- }
1000
- get emptyOptions() {
1001
- return !this.options || this.options.length === 0;
1002
- }
1003
- get label() {
1004
- let value = this.value || [];
1005
- return value.length ? value.map((node) => node.label).join(', ') : this.selectionMode === 'single' && this.value ? value.label : this.placeholder;
1006
- }
1007
- static ɵfac = /*@__PURE__*/ (() => { let ɵTreeSelect_BaseFactory; return function TreeSelect_Factory(__ngFactoryType__) { return (ɵTreeSelect_BaseFactory || (ɵTreeSelect_BaseFactory = i0.ɵɵgetInheritedFactory(TreeSelect)))(__ngFactoryType__ || TreeSelect); }; })();
1008
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TreeSelect, selectors: [["p-treeSelect"], ["p-treeselect"], ["p-tree-select"]], contentQueries: function TreeSelect_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
1009
- i0.ɵɵcontentQuery(dirIndex, _c0, 4);
1010
- i0.ɵɵcontentQuery(dirIndex, _c1, 4);
1011
- i0.ɵɵcontentQuery(dirIndex, _c2, 4);
1012
- i0.ɵɵcontentQuery(dirIndex, _c3, 4);
1013
- i0.ɵɵcontentQuery(dirIndex, _c4, 4);
1014
- i0.ɵɵcontentQuery(dirIndex, _c5, 4);
1015
- i0.ɵɵcontentQuery(dirIndex, _c6, 4);
1016
- i0.ɵɵcontentQuery(dirIndex, _c7, 4);
1017
- i0.ɵɵcontentQuery(dirIndex, _c8, 4);
1018
- i0.ɵɵcontentQuery(dirIndex, _c9, 4);
1019
- i0.ɵɵcontentQuery(dirIndex, _c10, 4);
1020
- i0.ɵɵcontentQuery(dirIndex, _c11, 4);
1021
- i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
1022
- } if (rf & 2) {
1023
- let _t;
1024
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.valueTemplate = _t.first);
1025
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);
1026
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emptyTemplate = _t.first);
1027
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);
1028
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearIconTemplate = _t.first);
1029
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.triggerIconTemplate = _t.first);
1030
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownIconTemplate = _t.first);
1031
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterIconTemplate = _t.first);
1032
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.closeIconTemplate = _t.first);
1033
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTogglerIconTemplate = _t.first);
1034
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemCheckboxIconTemplate = _t.first);
1035
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemLoadingIconTemplate = _t.first);
1036
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
1037
- } }, viewQuery: function TreeSelect_Query(rf, ctx) { if (rf & 1) {
1038
- i0.ɵɵviewQuery(_c12, 5);
1039
- i0.ɵɵviewQuery(_c13, 5);
1040
- i0.ɵɵviewQuery(_c14, 5);
1041
- i0.ɵɵviewQuery(_c15, 5);
1042
- i0.ɵɵviewQuery(_c16, 5);
1043
- i0.ɵɵviewQuery(_c17, 5);
1044
- i0.ɵɵviewQuery(_c18, 5);
1045
- i0.ɵɵviewQuery(_c19, 5);
1046
- } if (rf & 2) {
1047
- let _t;
1048
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerEl = _t.first);
1049
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.focusInput = _t.first);
1050
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterViewChild = _t.first);
1051
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.treeViewChild = _t.first);
1052
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panelEl = _t.first);
1053
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.overlayViewChild = _t.first);
1054
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.firstHiddenFocusableElementOnOverlay = _t.first);
1055
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lastHiddenFocusableElementOnOverlay = _t.first);
1056
- } }, inputs: { inputId: "inputId", scrollHeight: "scrollHeight", disabled: [2, "disabled", "disabled", booleanAttribute], metaKeySelection: [2, "metaKeySelection", "metaKeySelection", booleanAttribute], variant: "variant", display: "display", selectionMode: "selectionMode", tabindex: "tabindex", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", placeholder: "placeholder", panelClass: "panelClass", panelStyle: "panelStyle", fluid: [2, "fluid", "fluid", booleanAttribute], panelStyleClass: "panelStyleClass", containerStyle: "containerStyle", containerStyleClass: "containerStyleClass", labelStyle: "labelStyle", labelStyleClass: "labelStyleClass", overlayOptions: "overlayOptions", emptyMessage: "emptyMessage", appendTo: "appendTo", filter: [2, "filter", "filter", booleanAttribute], filterBy: "filterBy", filterMode: "filterMode", filterPlaceholder: "filterPlaceholder", filterLocale: "filterLocale", filterInputAutoFocus: [2, "filterInputAutoFocus", "filterInputAutoFocus", booleanAttribute], propagateSelectionDown: [2, "propagateSelectionDown", "propagateSelectionDown", booleanAttribute], propagateSelectionUp: [2, "propagateSelectionUp", "propagateSelectionUp", booleanAttribute], showClear: [2, "showClear", "showClear", booleanAttribute], resetFilterOnHide: [2, "resetFilterOnHide", "resetFilterOnHide", booleanAttribute], virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", size: "size", virtualScrollOptions: "virtualScrollOptions", autofocus: [2, "autofocus", "autofocus", booleanAttribute], options: "options", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", loading: [2, "loading", "loading", booleanAttribute] }, outputs: { onNodeExpand: "onNodeExpand", onNodeCollapse: "onNodeCollapse", onShow: "onShow", onHide: "onHide", onClear: "onClear", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onNodeUnselect: "onNodeUnselect", onNodeSelect: "onNodeSelect" }, standalone: true, features: [i0.ɵɵProvidersFeature([TREESELECT_VALUE_ACCESSOR, TreeSelectStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 18, vars: 30, consts: [["container", ""], ["focusInput", ""], ["defaultValueTemplate", ""], ["overlay", ""], ["content", ""], ["chipsValueTemplate", ""], ["panel", ""], ["firstHiddenFocusableEl", ""], ["tree", ""], ["lastHiddenFocusableEl", ""], ["empty", ""], ["togglericon", ""], ["checkboxicon", ""], ["loadingicon", ""], [3, "click", "ngClass", "ngStyle"], [1, "p-hidden-accessible"], ["type", "text", "role", "combobox", "readonly", "", 3, "focus", "blur", "keydown", "disabled", "pAutoFocus"], [1, "p-treeselect-label-container"], [3, "ngClass", "ngStyle"], [4, "ngIf", "ngIfElse"], [4, "ngIf"], ["role", "button", "aria-haspopup", "tree", 1, "p-treeselect-dropdown"], [3, "styleClass", 4, "ngIf"], ["class", "p-treeselect-dropdown-icon", 4, "ngIf"], [3, "visibleChange", "onAnimationStart", "onBeforeHide", "onShow", "onHide", "visible", "options", "target", "appendTo", "showTransitionOptions", "hideTransitionOptions"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "p-treeselect-chip-item", 4, "ngFor", "ngForOf"], [1, "p-treeselect-chip-item"], ["styleClass", "p-treeselect-chip", 3, "label"], [3, "class", "click", 4, "ngIf"], ["class", "p-treeselect-clear-icon", 3, "click", 4, "ngIf"], [3, "click"], [1, "p-treeselect-clear-icon", 3, "click"], [4, "ngTemplateOutlet"], [3, "styleClass"], [1, "p-treeselect-dropdown-icon"], [1, "p-treeselect-overlay", "p-component", 3, "ngStyle", "ngClass"], ["role", "presentation", 1, "p-hidden-accessible", "p-hidden-focusable", 3, "focus"], [1, "p-treeselect-tree-container", 3, "ngStyle"], [3, "selectionChange", "onNodeExpand", "onNodeCollapse", "onNodeSelect", "onNodeUnselect", "value", "propagateSelectionDown", "propagateSelectionUp", "selectionMode", "selection", "metaKeySelection", "emptyMessage", "filter", "filterBy", "filterMode", "filterPlaceholder", "filterLocale", "filteredNodes", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "_templateMap", "loading"]], template: function TreeSelect_Template(rf, ctx) { if (rf & 1) {
1057
- const _r1 = i0.ɵɵgetCurrentView();
1058
- i0.ɵɵelementStart(0, "div", 14, 0);
1059
- i0.ɵɵlistener("click", function TreeSelect_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onClick($event)); });
1060
- i0.ɵɵelementStart(2, "div", 15)(3, "input", 16, 1);
1061
- i0.ɵɵlistener("focus", function TreeSelect_Template_input_focus_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputFocus($event)); })("blur", function TreeSelect_Template_input_blur_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputBlur($event)); })("keydown", function TreeSelect_Template_input_keydown_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onKeyDown($event)); });
1062
- i0.ɵɵelementEnd()();
1063
- i0.ɵɵelementStart(5, "div", 17)(6, "div", 18);
1064
- i0.ɵɵtemplate(7, TreeSelect_ng_container_7_Template, 2, 5, "ng-container", 19)(8, TreeSelect_ng_template_8_Template, 3, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
1065
- i0.ɵɵelementEnd()();
1066
- i0.ɵɵtemplate(10, TreeSelect_ng_container_10_Template, 3, 2, "ng-container", 20);
1067
- i0.ɵɵelementStart(11, "div", 21);
1068
- i0.ɵɵtemplate(12, TreeSelect_ChevronDownIcon_12_Template, 1, 1, "ChevronDownIcon", 22)(13, TreeSelect_span_13_Template, 2, 1, "span", 23);
1069
- i0.ɵɵelementEnd();
1070
- i0.ɵɵelementStart(14, "p-overlay", 24, 3);
1071
- i0.ɵɵtwoWayListener("visibleChange", function TreeSelect_Template_p_overlay_visibleChange_14_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.overlayVisible, $event) || (ctx.overlayVisible = $event); return i0.ɵɵresetView($event); });
1072
- i0.ɵɵlistener("onAnimationStart", function TreeSelect_Template_p_overlay_onAnimationStart_14_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onOverlayAnimationStart($event)); })("onBeforeHide", function TreeSelect_Template_p_overlay_onBeforeHide_14_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onOverlayBeforeHide($event)); })("onShow", function TreeSelect_Template_p_overlay_onShow_14_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onShow.emit($event)); })("onHide", function TreeSelect_Template_p_overlay_onHide_14_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.hide($event)); });
1073
- i0.ɵɵtemplate(16, TreeSelect_ng_template_16_Template, 15, 46, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
1074
- i0.ɵɵelementEnd()();
1075
- } if (rf & 2) {
1076
- let tmp_14_0;
1077
- let tmp_23_0;
1078
- const defaultValueTemplate_r11 = i0.ɵɵreference(9);
1079
- i0.ɵɵclassMap(ctx.containerStyleClass);
1080
- i0.ɵɵproperty("ngClass", ctx.containerClass)("ngStyle", ctx.containerStyle);
1081
- i0.ɵɵadvance(3);
1082
- i0.ɵɵproperty("disabled", ctx.disabled)("pAutoFocus", ctx.autofocus);
1083
- i0.ɵɵattribute("id", ctx.inputId)("tabindex", !ctx.disabled ? ctx.tabindex : -1)("aria-controls", ctx.overlayVisible ? ctx.listId : null)("aria-haspopup", "tree")("aria-expanded", (tmp_14_0 = ctx.overlayVisible) !== null && tmp_14_0 !== undefined ? tmp_14_0 : false)("aria-labelledby", ctx.ariaLabelledBy)("aria-label", ctx.ariaLabel || (ctx.label === "p-emptylabel" ? undefined : ctx.label));
1084
- i0.ɵɵadvance(3);
1085
- i0.ɵɵclassMap(ctx.labelStyleClass);
1086
- i0.ɵɵproperty("ngClass", ctx.labelClass)("ngStyle", ctx.labelStyle);
1087
- i0.ɵɵadvance();
1088
- i0.ɵɵproperty("ngIf", ctx.valueTemplate || ctx._valueTemplate)("ngIfElse", defaultValueTemplate_r11);
1089
- i0.ɵɵadvance(3);
1090
- i0.ɵɵproperty("ngIf", ctx.checkValue() && !ctx.disabled && ctx.showClear);
1091
- i0.ɵɵadvance();
1092
- i0.ɵɵattribute("aria-expanded", (tmp_23_0 = ctx.overlayVisible) !== null && tmp_23_0 !== undefined ? tmp_23_0 : false)("aria-label", "treeselect trigger");
1093
- i0.ɵɵadvance();
1094
- i0.ɵɵproperty("ngIf", !ctx.triggerIconTemplate && !ctx._triggerIconTemplate && !ctx.dropdownIconTemplate && !ctx._dropdownIconTemplate);
1095
- i0.ɵɵadvance();
1096
- i0.ɵɵproperty("ngIf", ctx.triggerIconTemplate || ctx._triggerIconTemplate || ctx.dropdownIconTemplate || ctx._dropdownIconTemplate);
1097
- i0.ɵɵadvance();
1098
- i0.ɵɵtwoWayProperty("visible", ctx.overlayVisible);
1099
- i0.ɵɵproperty("options", ctx.overlayOptions)("target", "@parent")("appendTo", ctx.appendTo)("showTransitionOptions", ctx.showTransitionOptions)("hideTransitionOptions", ctx.hideTransitionOptions);
1100
- } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, Overlay, SharedModule, Tree, AutoFocus, TimesIcon, ChevronDownIcon, Chip], encapsulation: 2, changeDetection: 0 });
1101
- }
1102
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TreeSelect, [{
1103
- type: Component,
1104
- args: [{
1105
- selector: 'p-treeSelect, p-treeselect, p-tree-select',
1106
- standalone: true,
1107
- imports: [CommonModule, Overlay, SharedModule, Tree, AutoFocus, TimesIcon, ChevronDownIcon, Chip],
1108
- template: `
1109
- <div #container [ngClass]="containerClass" [class]="containerStyleClass" [ngStyle]="containerStyle" (click)="onClick($event)">
1110
- <div class="p-hidden-accessible">
1111
- <input
1112
- #focusInput
1113
- type="text"
1114
- role="combobox"
1115
- [attr.id]="inputId"
1116
- readonly
1117
- [disabled]="disabled"
1118
- (focus)="onInputFocus($event)"
1119
- (blur)="onInputBlur($event)"
1120
- (keydown)="onKeyDown($event)"
1121
- [attr.tabindex]="!disabled ? tabindex : -1"
1122
- [attr.aria-controls]="overlayVisible ? listId : null"
1123
- [attr.aria-haspopup]="'tree'"
1124
- [attr.aria-expanded]="overlayVisible ?? false"
1125
- [attr.aria-labelledby]="ariaLabelledBy"
1126
- [attr.aria-label]="ariaLabel || (label === 'p-emptylabel' ? undefined : label)"
1127
- [pAutoFocus]="autofocus"
1128
- />
1129
- </div>
1130
- <div class="p-treeselect-label-container">
1131
- <div [ngClass]="labelClass" [class]="labelStyleClass" [ngStyle]="labelStyle">
1132
- <ng-container *ngIf="valueTemplate || _valueTemplate; else defaultValueTemplate">
1133
- <ng-container *ngTemplateOutlet="valueTemplate || _valueTemplate; context: { $implicit: value, placeholder: placeholder }"></ng-container>
1134
- </ng-container>
1135
- <ng-template #defaultValueTemplate>
1136
- <ng-container *ngIf="display === 'comma'; else chipsValueTemplate">
1137
- {{ label || 'empty' }}
1138
- </ng-container>
1139
- <ng-template #chipsValueTemplate>
1140
- <div *ngFor="let node of value" class="p-treeselect-chip-item">
1141
- <p-chip [label]="node.label" styleClass="p-treeselect-chip" />
1142
- </div>
1143
- <ng-container *ngIf="emptyValue">{{ placeholder || 'empty' }}</ng-container>
1144
- </ng-template>
1145
- </ng-template>
1146
- </div>
1147
- </div>
1148
- <ng-container *ngIf="checkValue() && !disabled && showClear">
1149
- <TimesIcon *ngIf="!clearIconTemplate && !_clearIconTemplate" [class]="'p-treeselect-clear-icon'" (click)="clear($event)" />
1150
- <span *ngIf="clearIconTemplate || clearIconTemplate" class="p-treeselect-clear-icon" (click)="clear($event)">
1151
- <ng-template *ngTemplateOutlet="clearIconTemplate || _clearIconTemplate"></ng-template>
1152
- </span>
1153
- </ng-container>
1154
- <div class="p-treeselect-dropdown" role="button" aria-haspopup="tree" [attr.aria-expanded]="overlayVisible ?? false" [attr.aria-label]="'treeselect trigger'">
1155
- <ChevronDownIcon *ngIf="!triggerIconTemplate && !_triggerIconTemplate && !dropdownIconTemplate && !_dropdownIconTemplate" [styleClass]="'p-treeselect-dropdown-icon'" />
1156
- <span *ngIf="triggerIconTemplate || _triggerIconTemplate || dropdownIconTemplate || _dropdownIconTemplate" class="p-treeselect-dropdown-icon">
1157
- <ng-template *ngTemplateOutlet="triggerIconTemplate || _triggerIconTemplate || dropdownIconTemplate || _dropdownIconTemplate"></ng-template>
1158
- </span>
1159
- </div>
1160
- <p-overlay
1161
- #overlay
1162
- [(visible)]="overlayVisible"
1163
- [options]="overlayOptions"
1164
- [target]="'@parent'"
1165
- [appendTo]="appendTo"
1166
- [showTransitionOptions]="showTransitionOptions"
1167
- [hideTransitionOptions]="hideTransitionOptions"
1168
- (onAnimationStart)="onOverlayAnimationStart($event)"
1169
- (onBeforeHide)="onOverlayBeforeHide($event)"
1170
- (onShow)="onShow.emit($event)"
1171
- (onHide)="hide($event)"
1172
- >
1173
- <ng-template #content>
1174
- <div #panel [attr.id]="listId" class="p-treeselect-overlay p-component" [ngStyle]="panelStyle" [class]="panelStyleClass" [ngClass]="panelClass">
1175
- <span
1176
- #firstHiddenFocusableEl
1177
- role="presentation"
1178
- class="p-hidden-accessible p-hidden-focusable"
1179
- [attr.tabindex]="0"
1180
- (focus)="onFirstHiddenFocus($event)"
1181
- [attr.data-p-hidden-accessible]="true"
1182
- [attr.data-p-hidden-focusable]="true"
1183
- >
1184
- </span>
1185
- <ng-container *ngTemplateOutlet="headerTemplate || _headerTemplate; context: { $implicit: value, options: options }"></ng-container>
1186
- <div class="p-treeselect-tree-container" [ngStyle]="{ 'max-height': scrollHeight }">
1187
- <p-tree
1188
- #tree
1189
- [value]="options"
1190
- [propagateSelectionDown]="propagateSelectionDown"
1191
- [propagateSelectionUp]="propagateSelectionUp"
1192
- [selectionMode]="selectionMode"
1193
- (selectionChange)="onSelectionChange($event)"
1194
- [selection]="value"
1195
- [metaKeySelection]="metaKeySelection"
1196
- (onNodeExpand)="nodeExpand($event)"
1197
- (onNodeCollapse)="nodeCollapse($event)"
1198
- (onNodeSelect)="onSelect($event)"
1199
- [emptyMessage]="emptyMessage"
1200
- (onNodeUnselect)="onUnselect($event)"
1201
- [filter]="filter"
1202
- [filterBy]="filterBy"
1203
- [filterMode]="filterMode"
1204
- [filterPlaceholder]="filterPlaceholder"
1205
- [filterLocale]="filterLocale"
1206
- [filteredNodes]="filteredNodes"
1207
- [virtualScroll]="virtualScroll"
1208
- [virtualScrollItemSize]="virtualScrollItemSize"
1209
- [virtualScrollOptions]="virtualScrollOptions"
1210
- [_templateMap]="templateMap"
1211
- [loading]="loading"
1212
- >
1213
- <ng-container *ngIf="emptyTemplate || _emptyTemplate">
1214
- <ng-template #empty>
1215
- <ng-container *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
1216
- </ng-template>
1217
- </ng-container>
1218
- <ng-template #togglericon let-expanded *ngIf="itemTogglerIconTemplate || _itemTogglerIconTemplate">
1219
- <ng-container *ngTemplateOutlet="itemTogglerIconTemplate || _itemTogglerIconTemplate; context: { $implicit: expanded }"></ng-container>
1220
- </ng-template>
1221
- <ng-template #checkboxicon let-selected let-partialSelected="partialSelected" *ngIf="itemCheckboxIconTemplate || _itemCheckboxIconTemplate">
1222
- <ng-container *ngTemplateOutlet="itemCheckboxIconTemplate || _itemCheckboxIconTemplate; context: { $implicit: selected, partialSelected: partialSelected }"></ng-container>
1223
- </ng-template>
1224
- <ng-template #loadingicon *ngIf="itemLoadingIconTemplate || _itemLoadingIconTemplate">
1225
- <ng-container *ngTemplateOutlet="itemLoadingIconTemplate || _itemLoadingIconTemplate"></ng-container>
1226
- </ng-template>
1227
- </p-tree>
1228
- </div>
1229
- <ng-container *ngTemplateOutlet="footerTemplate; context: { $implicit: value, options: options }"></ng-container>
1230
- <span
1231
- #lastHiddenFocusableEl
1232
- role="presentation"
1233
- class="p-hidden-accessible p-hidden-focusable"
1234
- [attr.tabindex]="0"
1235
- (focus)="onLastHiddenFocus($event)"
1236
- [attr.data-p-hidden-accessible]="true"
1237
- [attr.data-p-hidden-focusable]="true"
1238
- ></span>
1239
- </div>
1240
- </ng-template>
1241
- </p-overlay>
1242
- </div>
1243
- `,
1244
- changeDetection: ChangeDetectionStrategy.OnPush,
1245
- providers: [TREESELECT_VALUE_ACCESSOR, TreeSelectStyle],
1246
- encapsulation: ViewEncapsulation.None
1247
- }]
1248
- }], null, { inputId: [{
1249
- type: Input
1250
- }], scrollHeight: [{
1251
- type: Input
1252
- }], disabled: [{
1253
- type: Input,
1254
- args: [{ transform: booleanAttribute }]
1255
- }], metaKeySelection: [{
1256
- type: Input,
1257
- args: [{ transform: booleanAttribute }]
1258
- }], variant: [{
1259
- type: Input
1260
- }], display: [{
1261
- type: Input
1262
- }], selectionMode: [{
1263
- type: Input
1264
- }], tabindex: [{
1265
- type: Input
1266
- }], ariaLabel: [{
1267
- type: Input
1268
- }], ariaLabelledBy: [{
1269
- type: Input
1270
- }], placeholder: [{
1271
- type: Input
1272
- }], panelClass: [{
1273
- type: Input
1274
- }], panelStyle: [{
1275
- type: Input
1276
- }], fluid: [{
1277
- type: Input,
1278
- args: [{ transform: booleanAttribute }]
1279
- }], panelStyleClass: [{
1280
- type: Input
1281
- }], containerStyle: [{
1282
- type: Input
1283
- }], containerStyleClass: [{
1284
- type: Input
1285
- }], labelStyle: [{
1286
- type: Input
1287
- }], labelStyleClass: [{
1288
- type: Input
1289
- }], overlayOptions: [{
1290
- type: Input
1291
- }], emptyMessage: [{
1292
- type: Input
1293
- }], appendTo: [{
1294
- type: Input
1295
- }], filter: [{
1296
- type: Input,
1297
- args: [{ transform: booleanAttribute }]
1298
- }], filterBy: [{
1299
- type: Input
1300
- }], filterMode: [{
1301
- type: Input
1302
- }], filterPlaceholder: [{
1303
- type: Input
1304
- }], filterLocale: [{
1305
- type: Input
1306
- }], filterInputAutoFocus: [{
1307
- type: Input,
1308
- args: [{ transform: booleanAttribute }]
1309
- }], propagateSelectionDown: [{
1310
- type: Input,
1311
- args: [{ transform: booleanAttribute }]
1312
- }], propagateSelectionUp: [{
1313
- type: Input,
1314
- args: [{ transform: booleanAttribute }]
1315
- }], showClear: [{
1316
- type: Input,
1317
- args: [{ transform: booleanAttribute }]
1318
- }], resetFilterOnHide: [{
1319
- type: Input,
1320
- args: [{ transform: booleanAttribute }]
1321
- }], virtualScroll: [{
1322
- type: Input
1323
- }], virtualScrollItemSize: [{
1324
- type: Input
1325
- }], size: [{
1326
- type: Input
1327
- }], virtualScrollOptions: [{
1328
- type: Input
1329
- }], autofocus: [{
1330
- type: Input,
1331
- args: [{ transform: booleanAttribute }]
1332
- }], options: [{
1333
- type: Input
1334
- }], showTransitionOptions: [{
1335
- type: Input
1336
- }], hideTransitionOptions: [{
1337
- type: Input
1338
- }], loading: [{
1339
- type: Input,
1340
- args: [{ transform: booleanAttribute }]
1341
- }], onNodeExpand: [{
1342
- type: Output
1343
- }], onNodeCollapse: [{
1344
- type: Output
1345
- }], onShow: [{
1346
- type: Output
1347
- }], onHide: [{
1348
- type: Output
1349
- }], onClear: [{
1350
- type: Output
1351
- }], onFilter: [{
1352
- type: Output
1353
- }], onFocus: [{
1354
- type: Output
1355
- }], onBlur: [{
1356
- type: Output
1357
- }], onNodeUnselect: [{
1358
- type: Output
1359
- }], onNodeSelect: [{
1360
- type: Output
1361
- }], containerEl: [{
1362
- type: ViewChild,
1363
- args: ['container']
1364
- }], focusInput: [{
1365
- type: ViewChild,
1366
- args: ['focusInput']
1367
- }], filterViewChild: [{
1368
- type: ViewChild,
1369
- args: ['filter']
1370
- }], treeViewChild: [{
1371
- type: ViewChild,
1372
- args: ['tree']
1373
- }], panelEl: [{
1374
- type: ViewChild,
1375
- args: ['panel']
1376
- }], overlayViewChild: [{
1377
- type: ViewChild,
1378
- args: ['overlay']
1379
- }], firstHiddenFocusableElementOnOverlay: [{
1380
- type: ViewChild,
1381
- args: ['firstHiddenFocusableEl']
1382
- }], lastHiddenFocusableElementOnOverlay: [{
1383
- type: ViewChild,
1384
- args: ['lastHiddenFocusableEl']
1385
- }], valueTemplate: [{
1386
- type: ContentChild,
1387
- args: ['value', { descendants: false }]
1388
- }], headerTemplate: [{
1389
- type: ContentChild,
1390
- args: ['header', { descendants: false }]
1391
- }], emptyTemplate: [{
1392
- type: ContentChild,
1393
- args: ['empty', { descendants: false }]
1394
- }], footerTemplate: [{
1395
- type: ContentChild,
1396
- args: ['footer', { descendants: false }]
1397
- }], clearIconTemplate: [{
1398
- type: ContentChild,
1399
- args: ['clearicon', { descendants: false }]
1400
- }], triggerIconTemplate: [{
1401
- type: ContentChild,
1402
- args: ['triggericon', { descendants: false }]
1403
- }], dropdownIconTemplate: [{
1404
- type: ContentChild,
1405
- args: ['dropdownicon', { descendants: false }]
1406
- }], filterIconTemplate: [{
1407
- type: ContentChild,
1408
- args: ['filtericon', { descendants: false }]
1409
- }], closeIconTemplate: [{
1410
- type: ContentChild,
1411
- args: ['closeicon', { descendants: false }]
1412
- }], itemTogglerIconTemplate: [{
1413
- type: ContentChild,
1414
- args: ['itemtogglericon', { descendants: false }]
1415
- }], itemCheckboxIconTemplate: [{
1416
- type: ContentChild,
1417
- args: ['itemcheckboxicon', { descendants: false }]
1418
- }], itemLoadingIconTemplate: [{
1419
- type: ContentChild,
1420
- args: ['itemloadingicon', { descendants: false }]
1421
- }], templates: [{
1422
- type: ContentChildren,
1423
- args: [PrimeTemplate]
1424
- }] }); })();
1425
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TreeSelect, { className: "TreeSelect" }); })();
1426
- export class TreeSelectModule {
1427
- static ɵfac = function TreeSelectModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TreeSelectModule)(); };
1428
- static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TreeSelectModule });
1429
- static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [TreeSelect, SharedModule, SharedModule] });
1430
- }
1431
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TreeSelectModule, [{
1432
- type: NgModule,
1433
- args: [{
1434
- imports: [TreeSelect, SharedModule],
1435
- exports: [TreeSelect, SharedModule]
1436
- }]
1437
- }], null, null); })();
1438
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(TreeSelectModule, { imports: [TreeSelect, SharedModule], exports: [TreeSelect, SharedModule] }); })();
1439
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXNlbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmVlc2VsZWN0L3RyZWVzZWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUVmLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUdOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdJLE9BQU8sRUFBa0IsYUFBYSxFQUFtQixZQUFZLEVBQVksTUFBTSxhQUFhLENBQUM7QUFDckcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUErRCxNQUFNLGNBQWMsQ0FBQztBQUVqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBeUNsQyx3QkFBMEk7OztJQUQ5SSw2QkFBaUY7SUFDN0UsNkZBQTJIOzs7O0lBQTVHLGNBQW1EO0lBQUEsQUFBbkQsZ0ZBQW1ELDBGQUF1RDs7O0lBR3pILDZCQUFtRTtJQUMvRCxZQUNKOzs7O0lBREksY0FDSjtJQURJLHdEQUNKOzs7SUFFSSwrQkFBK0Q7SUFDM0QsNkJBQThEO0lBQ2xFLGlCQUFNOzs7SUFETSxjQUFvQjtJQUFwQixxQ0FBb0I7OztJQUVoQyw2QkFBaUM7SUFBQSxZQUE0Qjs7OztJQUE1QixjQUE0QjtJQUE1QixtREFBNEI7OztJQUE3RCxBQUhBLHdGQUErRCw2RkFHOUI7OztJQUhYLHNDQUFRO0lBR2YsY0FBZ0I7SUFBaEIsd0NBQWdCOzs7SUFKbkMsQUFIQSw0RkFBbUUsNkdBR2xDOzs7O0lBSFMsQUFBM0IsaURBQTJCLG1DQUF1Qjs7OztJQWF6RSxxQ0FBMkg7SUFBMUIsc01BQVMsb0JBQWEsS0FBQztJQUF4SCxpQkFBMkg7O0lBQTlELHdDQUFtQzs7OztJQUU1RixpR0FBeUU7Ozs7SUFEN0UsZ0NBQTZHO0lBQXhCLDRMQUFTLG9CQUFhLEtBQUM7SUFDeEcsOEVBQXlFO0lBQzdFLGlCQUFPOzs7SUFEVyxjQUF5RDtJQUF6RCx3RkFBeUQ7OztJQUgvRSw2QkFBNkQ7SUFFekQsQUFEQSx3RkFBMkgsaUVBQ2Q7Ozs7SUFEakcsY0FBK0M7SUFBL0MsOEVBQStDO0lBQ3BELGNBQTRDO0lBQTVDLDJFQUE0Qzs7O0lBS25ELHNDQUF3Szs7SUFBOUMseURBQTJDOzs7O0lBRWpLLGtGQUE4SDs7O0lBRGxJLGdDQUE4STtJQUMxSSwrREFBOEg7SUFDbEksaUJBQU87OztJQURXLGNBQThHO0lBQTlHLDJKQUE4Rzs7O0lBNEJ4SCx3QkFBb0k7OztJQThCcEgsd0JBQWlGOzs7SUFBakYsMEhBQWtFOzs7SUFBbkQsZ0ZBQWlEOzs7SUFGeEUsNkJBQXNEO0lBQ2xELDJJQUFvQjs7OztJQUtwQix3QkFBdUk7OztJQUF2SSw2R0FBd0g7Ozs7SUFBbEMsQUFBdkUsb0dBQXVFLHFFQUFnQzs7O0lBRDFILDhIQUFtRzs7O0lBSS9GLHdCQUEySzs7O0lBQTNLLDhHQUE0Sjs7Ozs7SUFBcEUsQUFBekUsc0dBQXlFLDBGQUFrRTs7O0lBRDlKLCtIQUE0STs7O0lBSXhJLHdCQUFxRzs7O0lBQXJHLDhHQUFzRjs7O0lBQXZFLG9HQUFxRTs7O0lBRHhGLCtIQUFzRjs7O0lBSzlGLHdCQUFpSDs7OztJQXREakgsQUFESixrQ0FBZ0osa0JBUzNJO0lBSEcsbUxBQVMsaUNBQTBCLEtBQUM7SUFJeEMsaUJBQU87SUFDUCw2RkFBcUg7SUFFakgsQUFESiwrQkFBb0Ysb0JBMEIvRTtJQVpHLEFBRkEsQUFEQSxBQURBLEFBSEEseU1BQW1CLGdDQUF5QixLQUFDLHNMQUc3Qix5QkFBa0IsS0FBQywwTEFDakIsMkJBQW9CLEtBQUMsc0xBQ3ZCLHVCQUFnQixLQUFDLDBMQUVmLHlCQUFrQixLQUFDO0lBd0JyQyxBQUhBLEFBSEEsQUFMQSw2RkFBc0QseURBSzZDLDJEQUd5QywyREFHdEQ7SUFJOUYsQUFESSxpQkFBUyxFQUNQO0lBQ04sK0ZBQWtHO0lBQ2xHLG9DQVFDO0lBSEcsb0xBQVMsZ0NBQXlCLEtBQUM7SUFJM0MsQUFESyxpQkFBTyxFQUNOOzs7SUFqRXlGLHFDQUF5QjtJQUFDLEFBQWpELDJDQUFzQiw4QkFBaUQ7O0lBS3ZJLGVBQW1COztJQU1SLGVBQXFEO0lBQUEsQUFBckQsa0ZBQXFELHVGQUErQztJQUMxRSxjQUEwQztJQUExQywyRUFBMEM7SUFHM0UsY0FBaUI7SUFzQmpCLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsQUFGQSxBQUpBLEFBREEsQUFGQSxBQURBLEFBREEsQUFEQSxzQ0FBaUIseURBQ2dDLHFEQUNKLHVDQUNkLDJCQUVaLDZDQUNrQixxQ0FJUix5QkFFWiw2QkFDSSxpQ0FDSSwrQ0FDYyxxQ0FDVix1Q0FDRSx1Q0FDQSx1REFDZ0IscURBQ0Ysb0NBQ2pCLDJCQUNUO0lBRUosZUFBcUM7SUFBckMsb0VBQXFDO0lBS1osY0FBeUQ7SUFBekQsd0ZBQXlEO0lBR2xCLGNBQTJEO0lBQTNELDBGQUEyRDtJQUcvRyxjQUF5RDtJQUF6RCx3RkFBeUQ7SUFLN0UsY0FBa0M7SUFBQSxBQUFsQyx3REFBa0MsdUZBQStDO0lBSzVGLGNBQW1COzs7QUEzSS9DLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFRO0lBQzFDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7SUFDekMsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBQ0Y7OztHQUdHO0FBaUpILE1BQU0sT0FBTyxVQUFXLFNBQVEsYUFBYTtJQUN6Qzs7O09BR0c7SUFDTSxPQUFPLENBQXFCO0lBQ3JDOzs7T0FHRztJQUNNLFlBQVksR0FBVyxPQUFPLENBQUM7SUFDeEM7OztPQUdHO0lBQ3FDLFFBQVEsQ0FBc0I7SUFDdEU7OztPQUdHO0lBQ3FDLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUMxRTs7O09BR0c7SUFDTSxPQUFPLEdBQTBCLFVBQVUsQ0FBQztJQUNyRDs7O09BR0c7SUFDTSxPQUFPLEdBQXFCLE9BQU8sQ0FBQztJQUM3Qzs7O09BR0c7SUFDTSxhQUFhLEdBQXVDLFFBQVEsQ0FBQztJQUN0RTs7O09BR0c7SUFDTSxRQUFRLEdBQXVCLEdBQUcsQ0FBQztJQUM1Qzs7O09BR0c7SUFDTSxTQUFTLENBQXFCO0lBQ3ZDOzs7T0FHRztJQUNNLGNBQWMsQ0FBcUI7SUFDNUM7OztPQUdHO0lBQ00sV0FBVyxDQUFxQjtJQUN6Qzs7O09BR0c7SUFDTSxVQUFVLENBQXlFO0lBQzVGOzs7T0FHRztJQUNNLFVBQVUsQ0FBOEM7SUFDakU7OztPQUdHO0lBQ3FDLEtBQUssR0FBWSxLQUFLLENBQUM7SUFDL0Q7OztPQUdHO0lBQ00sZUFBZSxDQUFxQjtJQUM3Qzs7O09BR0c7SUFDSCxJQUFhLGNBQWMsQ0FBQyxHQUFnRDtRQUN4RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxlQUFlLENBQThDO0lBQzdEOzs7T0FHRztJQUNNLG1CQUFtQixDQUFxQjtJQUNqRDs7O09BR0c7SUFDTSxVQUFVLENBQThDO0lBQ2pFOzs7T0FHRztJQUNNLGVBQWUsQ0FBcUI7SUFDN0M7OztPQUdHO0lBQ00sY0FBYyxDQUE2QjtJQUNwRDs7O09BR0c7SUFDTSxZQUFZLEdBQVcsRUFBRSxDQUFDO0lBQ25DOzs7T0FHRztJQUNNLFFBQVEsQ0FBZ0Y7SUFDakc7OztPQUdHO0lBQ3FDLE1BQU0sR0FBWSxLQUFLLENBQUM7SUFDaEU7OztPQUdHO0lBQ00sUUFBUSxHQUFXLE9BQU8sQ0FBQztJQUNwQzs7O09BR0c7SUFDTSxVQUFVLEdBQVcsU0FBUyxDQUFDO0lBQ3hDOzs7T0FHRztJQUNNLGlCQUFpQixDQUFxQjtJQUMvQzs7O09BR0c7SUFDTSxZQUFZLENBQXFCO0lBQzFDOzs7T0FHRztJQUNxQyxvQkFBb0IsR0FBWSxJQUFJLENBQUM7SUFDN0U7OztPQUdHO0lBQ3FDLHNCQUFzQixHQUFZLElBQUksQ0FBQztJQUMvRTs7O09BR0c7SUFDcUMsb0JBQW9CLEdBQVksSUFBSSxDQUFDO0lBQzdFOzs7T0FHRztJQUNxQyxTQUFTLEdBQVksS0FBSyxDQUFDO0lBQ25FOzs7T0FHRztJQUNxQyxpQkFBaUIsR0FBWSxJQUFJLENBQUM7SUFDMUU7OztPQUdHO0lBQ00sYUFBYSxDQUFzQjtJQUM1Qzs7O09BR0c7SUFDTSxxQkFBcUIsQ0FBcUI7SUFDbkQ7OztPQUdHO0lBQ00sSUFBSSxDQUFvQjtJQUNqQzs7O09BR0c7SUFDTSxvQkFBb0IsQ0FBOEI7SUFDM0Q7OztPQUdHO0lBQ3FDLFNBQVMsQ0FBc0I7SUFDdkU7Ozs7T0FJRztJQUNILElBQWEsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLE9BQStCO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILElBQWEscUJBQXFCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLHFCQUFxQixDQUFDLEdBQXVCO1FBQzdDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUM7UUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzR0FBc0csQ0FBQyxDQUFDO0lBQ3hILENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsSUFBYSxxQkFBcUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkMsQ0FBQztJQUNELElBQUkscUJBQXFCLENBQUMsR0FBdUI7UUFDN0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztRQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNHQUFzRyxDQUFDLENBQUM7SUFDeEgsQ0FBQztJQUNEOzs7T0FHRztJQUNxQyxPQUFPLENBQXNCO0lBQ3JFOzs7O09BSUc7SUFDTyxZQUFZLEdBQTRDLElBQUksWUFBWSxFQUE2QixDQUFDO0lBQ2hIOzs7O09BSUc7SUFDTyxjQUFjLEdBQThDLElBQUksWUFBWSxFQUErQixDQUFDO0lBRXRIOzs7O09BSUc7SUFDTyxNQUFNLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDOUQ7Ozs7T0FJRztJQUNPLE1BQU0sR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUNsRTs7O09BR0c7SUFDTyxPQUFPLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDL0Q7OztPQUdHO0lBQ08sUUFBUSxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUN4Rjs7OztPQUlHO0lBQ08sT0FBTyxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO0lBQ25FOzs7O09BSUc7SUFDTyxNQUFNLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7SUFDbEU7Ozs7T0FJRztJQUNPLGNBQWMsR0FBd0MsSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFDMUc7Ozs7T0FJRztJQUNPLFlBQVksR0FBc0MsSUFBSSxZQUFZLEVBQXVCLENBQUM7SUFFcEcsc0JBQXNCLENBQXFCO0lBRTNDLHNCQUFzQixDQUFxQjtJQUVuQixXQUFXLENBQXVCO0lBRWpDLFVBQVUsQ0FBdUI7SUFFckMsZUFBZSxDQUF1QjtJQUV4QyxhQUFhLENBQWlCO0lBRTdCLE9BQU8sQ0FBdUI7SUFFNUIsZ0JBQWdCLENBQW9CO0lBRXJCLG9DQUFvQyxDQUF1QjtJQUU1RCxtQ0FBbUMsQ0FBdUI7SUFFdkYsYUFBYSxDQUFnQztJQUVwRCxXQUFXLEdBQXFCLElBQUksQ0FBQztJQUVyQyxlQUFlLENBQWtCO0lBQ2pDOzs7T0FHRztJQUM0QyxhQUFhLENBQTZCO0lBRXpGOzs7T0FHRztJQUM2QyxjQUFjLENBQTZCO0lBRTNGOzs7T0FHRztJQUM0QyxhQUFhLENBQTZCO0lBRXpGOzs7T0FHRztJQUM2QyxjQUFjLENBQTZCO0lBRTNGOzs7T0FHRztJQUNnRCxpQkFBaUIsQ0FBNkI7SUFFakc7OztPQUdHO0lBQ2tELG1CQUFtQixDQUE2QjtJQUVyRzs7O09BR0c7SUFDbUQsb0JBQW9CLENBQTZCO0lBRXZHOzs7T0FHRztJQUNpRCxrQkFBa0IsQ0FBNkI7SUFFbkc7OztPQUdHO0lBQ2dELGlCQUFpQixDQUE2QjtJQUVqRzs7O09BR0c7SUFDc0QsdUJBQXVCLENBQTZCO0lBRTdHOzs7T0FHRztJQUN1RCx3QkFBd0IsQ0FBNkI7SUFFL0c7OztPQUdHO0lBQ3NELHVCQUF1QixDQUE2QjtJQUU3RSxTQUFTLENBQXFDO0lBRTlFLGNBQWMsQ0FBK0I7SUFFN0MsZUFBZSxDQUErQjtJQUU5QyxjQUFjLENBQStCO0lBRTdDLGVBQWUsQ0FBK0I7SUFFOUMsa0JBQWtCLENBQStCO0lBRWpELG9CQUFvQixDQUErQjtJQUVuRCxtQkFBbUIsQ0FBK0I7SUFFbEQsa0JBQWtCLENBQStCO0lBRWpELHdCQUF3QixDQUErQjtJQUV2RCx5QkFBeUIsQ0FBK0I7SUFFeEQsd0JBQXdCLENBQStCO0lBRXZELHFCQUFxQixDQUErQjtJQUVwRCxPQUFPLENBQW9CO0lBRTNCLGNBQWMsQ0FBb0I7SUFFbEMsVUFBVSxDQUFvQjtJQUU5QixLQUFLLENBQWtCO0lBRXZCLGFBQWEsR0FBVSxFQUFFLENBQUM7SUFFMUIsUUFBUSxDQUF5QjtJQUUxQixXQUFXLENBQU07SUFFeEIsYUFBYSxHQUFhLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUVuQyxjQUFjLEdBQWEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRXBDLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFFcEIsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUUxQyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUssSUFBSSxDQUFDLFNBQXNDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUVBLElBQUksQ0FBQyxTQUFzQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFELFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQ3JCLEtBQUssT0FBTztvQkFDUixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ3BDLE1BQU07Z0JBRVYsS0FBSyxRQUFRO29CQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDckMsTUFBTTtnQkFFVixLQUFLLE9BQU87b0JBQ1IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNwQyxNQUFNO2dCQUVWLEtBQUssUUFBUTtvQkFDVCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ3JDLE1BQU07Z0JBRVYsS0FBSyxXQUFXO29CQUNaLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUN4QyxNQUFNO2dCQUVWLEtBQUssYUFBYTtvQkFDZCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDMUMsTUFBTTtnQkFFVixLQUFLLFlBQVk7b0JBQ2IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ3pDLE1BQU07Z0JBRVYsS0FBSyxXQUFXO29CQUNaLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUN4QyxNQUFNO2dCQUVWLEtBQUssaUJBQWlCO29CQUNsQixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDOUMsTUFBTTtnQkFFVixLQUFLLGtCQUFrQjtvQkFDbkIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQy9DLE1BQU07Z0JBRVYsS0FBSyxjQUFjO29CQUNmLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUMzQyxNQUFNO2dCQUVWLEtBQUssaUJBQWlCO29CQUNsQixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDOUMsTUFBTTtnQkFFVixTQUFTLGlEQUFpRDtvQkFDdEQsSUFBSSxJQUFJLENBQUMsSUFBSTt3QkFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDOzt3QkFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUN4QyxNQUFNO1lBQ2QsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHVCQUF1QixDQUFDLEtBQXFCO1FBQ3pDLFFBQVEsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLEtBQUssU0FBUztnQkFDVixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDZCxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDbkYsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM3RSxDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxpQkFBaUIsR0FBUSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUU5RSxJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDcEQsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2pDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxNQUFNO1FBQ2QsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksaUJBQWlCLEdBQVEsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVsRixJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDaE4sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixNQUFNO1lBQ04sS0FBSyxXQUFXO2dCQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDWixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixNQUFNO1lBRVYsT0FBTztZQUNQLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxPQUFPO2dCQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDWixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0QsTUFBTTtZQUVWLFFBQVE7WUFDUixLQUFLLFFBQVE7Z0JBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3RCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDWixJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDdkMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUMzQixDQUFDO2dCQUNELE1BQU07WUFFVixLQUFLO1lBQ0wsS0FBSyxLQUFLO2dCQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLE1BQU07WUFFVjtnQkFDSSxNQUFNO1FBQ2QsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBWTtRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztRQUM1RCxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDeEIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYTtTQUNuRCxDQUFDLENBQUM7UUFDSCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFvQjtRQUM1QixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUNyRCxJQUFJLGlCQUFpQixHQUFRLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBRTlGLElBQUksaUJBQWlCLElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxDQUFDO1lBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBSztRQUNwQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLHdDQUF3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO1FBRXpPLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBSztRQUNuQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLHdDQUF3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO1FBRXhPLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBVztRQUNaLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBWTtRQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFcEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSyxFQUFFLGtCQUFrQixHQUFHLEtBQUs7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7Z0JBQ3JELEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBRXpJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMzQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLHdDQUF3QyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMzSSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVCLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBcUIsRUFBRSxJQUFTLEVBQUUsYUFBeUI7UUFDN0UsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QixhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUVELElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM1QyxLQUFLLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUMxRSxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBcUIsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsYUFBeUI7UUFDaEMsS0FBSyxJQUFJLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUErQztRQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUErQztRQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELGtCQUFrQjtRQUNkLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULE9BQU87UUFDWCxDQUFDO1FBRUQsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUU3QixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0MsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBYyxFQUFFLElBQVcsRUFBRSxhQUF5QjtRQUNwRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFVLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzVDLEtBQUssSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLE9BQXFCLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQWM7UUFDL0IsSUFBSSxLQUFLLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2xDLElBQUksYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO2dCQUMxRixLQUFLLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLENBQUM7aUJBQU0sQ0FBQztnQkFDSixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDekMsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDakMsSUFBSSxhQUFhLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLFlBQVksQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksSUFBSSxJQUFJLENBQUM7b0JBQ2hHLElBQUksYUFBYSxFQUFFLENBQUM7d0JBQ2hCLEtBQUssR0FBRyxDQUFDLENBQUM7d0JBQ1YsTUFBTTtvQkFDVixDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBMEI7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUIsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQTRCO1FBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBWTtRQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixvQkFBb0I7WUFDcEIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVk7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBWTtRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBWTtRQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBWTtRQUN6QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUM1QyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNoSyxDQUFDO3FOQXgyQlEsVUFBVSx5QkFBVixVQUFVOzZEQUFWLFVBQVU7Ozs7Ozs7Ozs7Ozs7d0NBdVlGLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytHQXhYVixnQkFBZ0IsaUVBS2hCLGdCQUFnQix3UUFrRGhCLGdCQUFnQix5U0FvRGhCLGdCQUFnQixtTUF5QmhCLGdCQUFnQixtRkFLaEIsZ0JBQWdCLDZFQUtoQixnQkFBZ0IsNENBS2hCLGdCQUFnQixvRUFLaEIsZ0JBQWdCLHdMQXlCaEIsZ0JBQWdCLDBKQXlDaEIsZ0JBQWdCLHlUQTVPekIsQ0FBQyx5QkFBeUIsRUFBRSxlQUFlLENBQUM7O1lBeEluRCxrQ0FBOEg7WUFBMUIsZ0lBQVMsbUJBQWUsS0FBQztZQUVySCxBQURKLCtCQUFpQyxtQkFrQjNCO1lBUkUsQUFEQSxBQURBLGtJQUFTLHdCQUFvQixLQUFDLG1IQUN0Qix1QkFBbUIsS0FBQyx5SEFDakIscUJBQWlCLEtBQUM7WUFTckMsQUFsQkksaUJBaUJFLEVBQ0E7WUFFRixBQURKLCtCQUEwQyxjQUN1QztZQUl6RSxBQUhBLDhFQUFpRiwrRkFHOUM7WUFZM0MsQUFESSxpQkFBTSxFQUNKO1lBQ04sZ0ZBQTZEO1lBTTdELGdDQUE4SjtZQUUxSixBQURBLHNGQUF3SyxtREFDMUI7WUFHbEosaUJBQU07WUFDTix5Q0FZQztZQVZHLDRQQUE0QjtZQVM1QixBQURBLEFBREEsQUFEQSw2SkFBb0IsbUNBQStCLEtBQUMsd0lBQ3BDLCtCQUEyQixLQUFDLDRIQUNsQyx1QkFBbUIsS0FBQyw0SEFDcEIsZ0JBQVksS0FBQztZQUV2QixnSEFBc0I7WUFxRTlCLEFBREksaUJBQVksRUFDVjs7Ozs7WUFySXFDLHNDQUE2QjtZQUFDLEFBQXpELDRDQUEwQiwrQkFBeUQ7WUFRdkYsZUFBcUI7WUFVckIsQUFWQSx1Q0FBcUIsNkJBVUc7O1lBSUEsZUFBeUI7WUFBekIsa0NBQXlCO1lBQUMsQUFBakQsd0NBQXNCLDJCQUFpRDtZQUN6RCxjQUF1QztZQUFBLEFBQXZDLDhEQUF1QyxzQ0FBeUI7WUFnQnhFLGVBQTRDO1lBQTVDLHlFQUE0QztZQU1XLGNBQThDOztZQUM5RixjQUFzRztZQUF0Ryx1SUFBc0c7WUFDakgsY0FBa0c7WUFBbEcsbUlBQWtHO1lBTXpHLGNBQTRCO1lBQTVCLGtEQUE0QjtZQUs1QixBQURBLEFBREEsQUFEQSxBQURBLDRDQUEwQixxQkFDTiwwQkFDQyxvREFDMEIsb0RBQ0E7NEJBNURqRCxZQUFZLG9FQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLElBQUk7O2lGQTZJdkYsVUFBVTtjQWhKdEIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSwyQ0FBMkM7Z0JBQ3JELFVBQVUsRUFBRSxJQUFJO2dCQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDO2dCQUNqRyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXVJVDtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsU0FBUyxFQUFFLENBQUMseUJBQXlCLEVBQUUsZUFBZSxDQUFDO2dCQUN2RCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN4QztnQkFNWSxPQUFPO2tCQUFmLEtBQUs7WUFLRyxZQUFZO2tCQUFwQixLQUFLO1lBS2tDLFFBQVE7a0JBQS9DLEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFLRSxnQkFBZ0I7a0JBQXZELEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFLN0IsT0FBTztrQkFBZixLQUFLO1lBS0csT0FBTztrQkFBZixLQUFLO1lBS0csYUFBYTtrQkFBckIsS0FBSztZQUtHLFFBQVE7a0JBQWhCLEtBQUs7WUFLRyxTQUFTO2tCQUFqQixLQUFLO1lBS0csY0FBYztrQkFBdEIsS0FBSztZQUtHLFdBQVc7a0JBQW5CLEtBQUs7WUFLRyxVQUFVO2tCQUFsQixLQUFLO1lBS0csVUFBVTtrQkFBbEIsS0FBSztZQUtrQyxLQUFLO2tCQUE1QyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBSzdCLGVBQWU7a0JBQXZCLEtBQUs7WUFLTyxjQUFjO2tCQUExQixLQUFLO1lBWUcsbUJBQW1CO2tCQUEzQixLQUFLO1lBS0csVUFBVTtrQkFBbEIsS0FBSztZQUtHLGVBQWU7a0JBQXZCLEtBQUs7WUFLRyxjQUFjO2tCQUF0QixLQUFLO1lBS0csWUFBWTtrQkFBcEIsS0FBSztZQUtHLFFBQVE7a0JBQWhCLEtBQUs7WUFLa0MsTUFBTTtrQkFBN0MsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUs3QixRQUFRO2tCQUFoQixLQUFLO1lBS0csVUFBVTtrQkFBbEIsS0FBSztZQUtHLGlCQUFpQjtrQkFBekIsS0FBSztZQUtHLFlBQVk7a0JBQXBCLEtBQUs7WUFLa0Msb0JBQW9CO2tCQUEzRCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBS0Usc0JBQXNCO2tCQUE3RCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBS0Usb0JBQW9CO2tCQUEzRCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBS0UsU0FBUztrQkFBaEQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUtFLGlCQUFpQjtrQkFBeEQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUs3QixhQUFhO2tCQUFyQixLQUFLO1lBS0cscUJBQXFCO2tCQUE3QixLQUFLO1lBS0csSUFBSTtrQkFBWixLQUFLO1lBS0csb0JBQW9CO2tCQUE1QixLQUFLO1lBS2tDLFNBQVM7a0JBQWhELEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFNekIsT0FBTztrQkFBbkIsS0FBSztZQVlPLHFCQUFxQjtrQkFBakMsS0FBSztZQVlPLHFCQUFxQjtrQkFBakMsS0FBSztZQVdrQyxPQUFPO2tCQUE5QyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBTTVCLFlBQVk7a0JBQXJCLE1BQU07WUFNRyxjQUFjO2tCQUF2QixNQUFNO1lBT0csTUFBTTtrQkFBZixNQUFNO1lBTUcsTUFBTTtrQkFBZixNQUFNO1lBS0csT0FBTztrQkFBaEIsTUFBTTtZQUtHLFFBQVE7a0JBQWpCLE1BQU07WUFNRyxPQUFPO2tCQUFoQixNQUFNO1lBTUcsTUFBTTtrQkFBZixNQUFNO1lBTUcsY0FBYztrQkFBdkIsTUFBTTtZQU1HLFlBQVk7a0JBQXJCLE1BQU07WUFNaUIsV0FBVztrQkFBbEMsU0FBUzttQkFBQyxXQUFXO1lBRUcsVUFBVTtrQkFBbEMsU0FBUzttQkFBQyxZQUFZO1lBRUYsZUFBZTtrQkFBbkMsU0FBUzttQkFBQyxRQUFRO1lBRUEsYUFBYTtrQkFBL0IsU0FBUzttQkFBQyxNQUFNO1lBRUcsT0FBTztrQkFBMUIsU0FBUzttQkFBQyxPQUFPO1lBRUksZ0JBQWdCO2tCQUFyQyxTQUFTO21CQUFDLFNBQVM7WUFFaUIsb0NBQW9DO2tCQUF4RSxTQUFTO21CQUFDLHdCQUF3QjtZQUVDLG1DQUFtQztrQkFBdEUsU0FBUzttQkFBQyx1QkFBdUI7WUFXYSxhQUFhO2tCQUEzRCxZQUFZO21CQUFDLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFNRyxjQUFjO2tCQUE3RCxZQUFZO21CQUFDLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFNQyxhQUFhO2tCQUEzRCxZQUFZO21CQUFDLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFNRyxjQUFjO2tCQUE3RCxZQUFZO21CQUFDLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFNSyxpQkFBaUI7a0JBQW5FLFlBQVk7bUJBQUMsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtZQU1JLG1CQUFtQjtrQkFBdkUsWUFBWTttQkFBQyxhQUFhLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO1lBTUcsb0JBQW9CO2tCQUF6RSxZQUFZO21CQUFDLGNBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFNQSxrQkFBa0I7a0JBQXJFLFlBQVk7bUJBQUMsWUFBWSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtZQU1DLGlCQUFpQjtrQkFBbkUsWUFBWTttQkFBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO1lBTVEsdUJBQXVCO2tCQUEvRSxZQUFZO21CQUFDLGlCQUFpQixFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtZQU1HLHdCQUF3QjtrQkFBakYsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFNQyx1QkFBdUI7a0JBQS9FLFlBQVk7bUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO1lBRXZCLFNBQVM7a0JBQXhDLGVBQWU7bUJBQUMsYUFBYTs7a0ZBdllyQixVQUFVO0FBKzJCdkIsTUFBTSxPQUFPLGdCQUFnQjswR0FBaEIsZ0JBQWdCOzREQUFoQixnQkFBZ0I7Z0VBSGYsVUFBVSxFQUFFLFlBQVksRUFDWixZQUFZOztpRkFFekIsZ0JBQWdCO2NBSjVCLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDO2dCQUNuQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDO2FBQ3RDOzt3RkFDWSxnQkFBZ0IsY0EvMkJoQixVQUFVLEVBNDJCRyxZQUFZLGFBNTJCekIsVUFBVSxFQTYyQkcsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZvY3VzLCBnZXRGaXJzdEZvY3VzYWJsZUVsZW1lbnQsIGdldEZvY3VzYWJsZUVsZW1lbnRzLCBnZXRMYXN0Rm9jdXNhYmxlRWxlbWVudCwgaGFzQ2xhc3MsIGlzTm90RW1wdHksIHV1aWQgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgT3ZlcmxheU9wdGlvbnMsIFByaW1lVGVtcGxhdGUsIFNjcm9sbGVyT3B0aW9ucywgU2hhcmVkTW9kdWxlLCBUcmVlTm9kZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEF1dG9Gb2N1cyB9IGZyb20gJ3ByaW1lbmcvYXV0b2ZvY3VzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2Jhc2Vjb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hpcCB9IGZyb20gJ3ByaW1lbmcvY2hpcCc7XG5pbXBvcnQgeyBDaGV2cm9uRG93bkljb24sIFRpbWVzSWNvbiB9IGZyb20gJ3ByaW1lbmcvaWNvbnMnO1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheSc7XG5pbXBvcnQgeyBUcmVlLCBUcmVlRmlsdGVyRXZlbnQsIFRyZWVOb2RlU2VsZWN0RXZlbnQsIFRyZWVOb2RlVW5TZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvdHJlZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHMtaGVscGVycyc7XG5pbXBvcnQgeyBUcmVlU2VsZWN0U3R5bGUgfSBmcm9tICcuL3N0eWxlL3RyZWVzZWxlY3RzdHlsZSc7XG5pbXBvcnQgeyBUcmVlU2VsZWN0Tm9kZUNvbGxhcHNlRXZlbnQsIFRyZWVTZWxlY3ROb2RlRXhwYW5kRXZlbnQgfSBmcm9tICcuL3RyZWVzZWxlY3QuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IFRSRUVTRUxFQ1RfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUcmVlU2VsZWN0KSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcbi8qKlxuICogVHJlZVNlbGVjdCBpcyBhIGZvcm0gY29tcG9uZW50IHRvIGNob29zZSBmcm9tIGhpZXJhcmNoaWNhbCBkYXRhLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXRyZWVTZWxlY3QsIHAtdHJlZXNlbGVjdCwgcC10cmVlLXNlbGVjdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPdmVybGF5LCBTaGFyZWRNb2R1bGUsIFRyZWUsIEF1dG9Gb2N1cywgVGltZXNJY29uLCBDaGV2cm9uRG93bkljb24sIENoaXBdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgI2NvbnRhaW5lciBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc1wiIFtjbGFzc109XCJjb250YWluZXJTdHlsZUNsYXNzXCIgW25nU3R5bGVdPVwiY29udGFpbmVyU3R5bGVcIiAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1oaWRkZW4tYWNjZXNzaWJsZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAjZm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImlucHV0SWRcIlxuICAgICAgICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCIhZGlzYWJsZWQgPyB0YWJpbmRleCA6IC0xXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJvdmVybGF5VmlzaWJsZSA/IGxpc3RJZCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIid0cmVlJ1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3ZlcmxheVZpc2libGUgPz8gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCB8fCAobGFiZWwgPT09ICdwLWVtcHR5bGFiZWwnID8gdW5kZWZpbmVkIDogbGFiZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgW3BBdXRvRm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC10cmVlc2VsZWN0LWxhYmVsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwibGFiZWxDbGFzc1wiIFtjbGFzc109XCJsYWJlbFN0eWxlQ2xhc3NcIiBbbmdTdHlsZV09XCJsYWJlbFN0eWxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWx1ZVRlbXBsYXRlIHx8IF92YWx1ZVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRWYWx1ZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmFsdWVUZW1wbGF0ZSB8fCBfdmFsdWVUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZhbHVlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VmFsdWVUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5ID09PSAnY29tbWEnOyBlbHNlIGNoaXBzVmFsdWVUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxhYmVsIHx8ICdlbXB0eScgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjaGlwc1ZhbHVlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbm9kZSBvZiB2YWx1ZVwiIGNsYXNzPVwicC10cmVlc2VsZWN0LWNoaXAtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1jaGlwIFtsYWJlbF09XCJub2RlLmxhYmVsXCIgc3R5bGVDbGFzcz1cInAtdHJlZXNlbGVjdC1jaGlwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlWYWx1ZVwiPnt7IHBsYWNlaG9sZGVyIHx8ICdlbXB0eScgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGVja1ZhbHVlKCkgJiYgIWRpc2FibGVkICYmIHNob3dDbGVhclwiPlxuICAgICAgICAgICAgICAgIDxUaW1lc0ljb24gKm5nSWY9XCIhY2xlYXJJY29uVGVtcGxhdGUgJiYgIV9jbGVhckljb25UZW1wbGF0ZVwiIFtjbGFzc109XCIncC10cmVlc2VsZWN0LWNsZWFyLWljb24nXCIgKGNsaWNrKT1cImNsZWFyKCRldmVudClcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2xlYXJJY29uVGVtcGxhdGUgfHwgY2xlYXJJY29uVGVtcGxhdGVcIiBjbGFzcz1cInAtdHJlZXNlbGVjdC1jbGVhci1pY29uXCIgKGNsaWNrKT1cImNsZWFyKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xlYXJJY29uVGVtcGxhdGUgfHwgX2NsZWFySWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXRyZWVzZWxlY3QtZHJvcGRvd25cIiByb2xlPVwiYnV0dG9uXCIgYXJpYS1oYXNwb3B1cD1cInRyZWVcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm92ZXJsYXlWaXNpYmxlID8/IGZhbHNlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCIndHJlZXNlbGVjdCB0cmlnZ2VyJ1wiPlxuICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93bkljb24gKm5nSWY9XCIhdHJpZ2dlckljb25UZW1wbGF0ZSAmJiAhX3RyaWdnZXJJY29uVGVtcGxhdGUgJiYgIWRyb3Bkb3duSWNvblRlbXBsYXRlICYmICFfZHJvcGRvd25JY29uVGVtcGxhdGVcIiBbc3R5bGVDbGFzc109XCIncC10cmVlc2VsZWN0LWRyb3Bkb3duLWljb24nXCIgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRyaWdnZXJJY29uVGVtcGxhdGUgfHwgX3RyaWdnZXJJY29uVGVtcGxhdGUgfHwgZHJvcGRvd25JY29uVGVtcGxhdGUgfHwgX2Ryb3Bkb3duSWNvblRlbXBsYXRlXCIgY2xhc3M9XCJwLXRyZWVzZWxlY3QtZHJvcGRvd24taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmlnZ2VySWNvblRlbXBsYXRlIHx8IF90cmlnZ2VySWNvblRlbXBsYXRlIHx8IGRyb3Bkb3duSWNvblRlbXBsYXRlIHx8IF9kcm9wZG93bkljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cC1vdmVybGF5XG4gICAgICAgICAgICAgICAgI292ZXJsYXlcbiAgICAgICAgICAgICAgICBbKHZpc2libGUpXT1cIm92ZXJsYXlWaXNpYmxlXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJvdmVybGF5T3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3RhcmdldF09XCInQHBhcmVudCdcIlxuICAgICAgICAgICAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgICAgICAgICAgICAgW3Nob3dUcmFuc2l0aW9uT3B0aW9uc109XCJzaG93VHJhbnNpdGlvbk9wdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtoaWRlVHJhbnNpdGlvbk9wdGlvbnNdPVwiaGlkZVRyYW5zaXRpb25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICAob25BbmltYXRpb25TdGFydCk9XCJvbk92ZXJsYXlBbmltYXRpb25TdGFydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25CZWZvcmVIaWRlKT1cIm9uT3ZlcmxheUJlZm9yZUhpZGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uU2hvdyk9XCJvblNob3cuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25IaWRlKT1cImhpZGUoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICNwYW5lbCBbYXR0ci5pZF09XCJsaXN0SWRcIiBjbGFzcz1cInAtdHJlZXNlbGVjdC1vdmVybGF5IHAtY29tcG9uZW50XCIgW25nU3R5bGVdPVwicGFuZWxTdHlsZVwiIFtjbGFzc109XCJwYW5lbFN0eWxlQ2xhc3NcIiBbbmdDbGFzc109XCJwYW5lbENsYXNzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmaXJzdEhpZGRlbkZvY3VzYWJsZUVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWhpZGRlbi1hY2Nlc3NpYmxlIHAtaGlkZGVuLWZvY3VzYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uRmlyc3RIaWRkZW5Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXAtaGlkZGVuLWFjY2Vzc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wLWhpZGRlbi1mb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGUgfHwgX2hlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogdmFsdWUsIG9wdGlvbnM6IG9wdGlvbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtdHJlZXNlbGVjdC10cmVlLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsgJ21heC1oZWlnaHQnOiBzY3JvbGxIZWlnaHQgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXRyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3RyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvcGFnYXRlU2VsZWN0aW9uRG93bl09XCJwcm9wYWdhdGVTZWxlY3Rpb25Eb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BhZ2F0ZVNlbGVjdGlvblVwXT1cInByb3BhZ2F0ZVNlbGVjdGlvblVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3Rpb25dPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWV0YUtleVNlbGVjdGlvbl09XCJtZXRhS2V5U2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uTm9kZUV4cGFuZCk9XCJub2RlRXhwYW5kKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25Ob2RlQ29sbGFwc2UpPVwibm9kZUNvbGxhcHNlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25Ob2RlU2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1wdHlNZXNzYWdlXT1cImVtcHR5TWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbk5vZGVVbnNlbGVjdCk9XCJvblVuc2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyXT1cImZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJCeV09XCJmaWx0ZXJCeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJNb2RlXT1cImZpbHRlck1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyUGxhY2Vob2xkZXJdPVwiZmlsdGVyUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyTG9jYWxlXT1cImZpbHRlckxvY2FsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJlZE5vZGVzXT1cImZpbHRlcmVkTm9kZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZpcnR1YWxTY3JvbGxJdGVtU2l6ZV09XCJ2aXJ0dWFsU2Nyb2xsSXRlbVNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlydHVhbFNjcm9sbE9wdGlvbnNdPVwidmlydHVhbFNjcm9sbE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbX3RlbXBsYXRlTWFwXT1cInRlbXBsYXRlTWFwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZSB8fCBfZW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlUZW1wbGF0ZSB8fCBfZW1wdHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdG9nZ2xlcmljb24gbGV0LWV4cGFuZGVkICpuZ0lmPVwiaXRlbVRvZ2dsZXJJY29uVGVtcGxhdGUgfHwgX2l0ZW1Ub2dnbGVySWNvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRvZ2dsZXJJY29uVGVtcGxhdGUgfHwgX2l0ZW1Ub2dnbGVySWNvblRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZXhwYW5kZWQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NoZWNrYm94aWNvbiBsZXQtc2VsZWN0ZWQgbGV0LXBhcnRpYWxTZWxlY3RlZD1cInBhcnRpYWxTZWxlY3RlZFwiICpuZ0lmPVwiaXRlbUNoZWNrYm94SWNvblRlbXBsYXRlIHx8IF9pdGVtQ2hlY2tib3hJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtQ2hlY2tib3hJY29uVGVtcGxhdGUgfHwgX2l0ZW1DaGVja2JveEljb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHNlbGVjdGVkLCBwYXJ0aWFsU2VsZWN0ZWQ6IHBhcnRpYWxTZWxlY3RlZCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGluZ2ljb24gKm5nSWY9XCJpdGVtTG9hZGluZ0ljb25UZW1wbGF0ZSB8fCBfaXRlbUxvYWRpbmdJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtTG9hZGluZ0ljb25UZW1wbGF0ZSB8fCBfaXRlbUxvYWRpbmdJY29uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtdHJlZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogdmFsdWUsIG9wdGlvbnM6IG9wdGlvbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbGFzdEhpZGRlbkZvY3VzYWJsZUVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWhpZGRlbi1hY2Nlc3NpYmxlIHAtaGlkZGVuLWZvY3VzYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uTGFzdEhpZGRlbkZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcC1oaWRkZW4tYWNjZXNzaWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXAtaGlkZGVuLWZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3Atb3ZlcmxheT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtUUkVFU0VMRUNUX1ZBTFVFX0FDQ0VTU09SLCBUcmVlU2VsZWN0U3R5bGVdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVHJlZVNlbGVjdCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVyIG9mIHRoZSB1bmRlcmx5aW5nIGlucHV0IGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEhlaWdodCBvZiB0aGUgdmlld3BvcnQsIGEgc2Nyb2xsYmFyIGlzIGRlZmluZWQgaWYgaGVpZ2h0IG9mIGxpc3QgZXhjZWVkcyB0aGlzIHZhbHVlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNjcm9sbEhlaWdodDogc3RyaW5nID0gJzQwMHB4JztcbiAgICAvKipcbiAgICAgKiBXaGVuIHByZXNlbnQsIGl0IHNwZWNpZmllcyB0aGF0IHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGhvdyBtdWx0aXBsZSBpdGVtcyBjYW4gYmUgc2VsZWN0ZWQsIHdoZW4gdHJ1ZSBtZXRhS2V5IG5lZWRzIHRvIGJlIHByZXNzZWQgdG8gc2VsZWN0IG9yIHVuc2VsZWN0IGFuIGl0ZW0gYW5kIHdoZW4gc2V0IHRvIGZhbHNlIHNlbGVjdGlvbiBvZiBlYWNoIGl0ZW0gY2FuIGJlIHRvZ2dsZWQgaW5kaXZpZHVhbGx5LiBPbiB0b3VjaCBlbmFibGVkIGRldmljZXMsIG1ldGFLZXlTZWxlY3Rpb24gaXMgdHVybmVkIG9mZiBhdXRvbWF0aWNhbGx5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBtZXRhS2V5U2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIHRoZSBpbnB1dCB2YXJpYW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdmFyaWFudDogJ2ZpbGxlZCcgfCAnb3V0bGluZWQnID0gJ291dGxpbmVkJztcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGhvdyB0aGUgc2VsZWN0ZWQgaXRlbXMgYXJlIGRpc3BsYXllZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkaXNwbGF5OiAnY29tbWEnIHwgJ2NoaXAnID0gJ2NvbW1hJztcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBzZWxlY3Rpb24gbW9kZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZWxlY3Rpb25Nb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgfCAnY2hlY2tib3gnID0gJ3NpbmdsZSc7XG4gICAgLyoqXG4gICAgICogSW5kZXggb2YgdGhlIGVsZW1lbnQgaW4gdGFiYmluZyBvcmRlci5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0YWJpbmRleDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJzAnO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgYSBzdHJpbmcgdGhhdCBsYWJlbHMgdGhlIGlucHV0IGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEVzdGFibGlzaGVzIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgY29tcG9uZW50IGFuZCBsYWJlbChzKSB3aGVyZSBpdHMgdmFsdWUgc2hvdWxkIGJlIG9uZSBvciBtb3JlIGVsZW1lbnQgSURzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogTGFiZWwgdG8gZGlzcGxheSB3aGVuIHRoZXJlIGFyZSBubyBzZWxlY3Rpb25zLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIG92ZXJsYXkgcGFuZWwuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcGFuZWxDbGFzczogc3RyaW5nIHwgc3RyaW5nW10gfCBTZXQ8c3RyaW5nPiB8IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIHBhbmVsIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcGFuZWxTdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTcGFucyAxMDAlIHdpZHRoIG9mIHRoZSBjb250YWluZXIgd2hlbiBlbmFibGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBmbHVpZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBwYW5lbCBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHBhbmVsU3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgY29udGFpbmVyIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IGNvbnRhaW5lclN0eWxlKHZhbDogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBfcm9vdFN0eWxlID0gdGhpcy5fY29tcG9uZW50U3R5bGUuaW5saW5lU3R5bGVzLnJvb3QoeyBpbnN0YW5jZTogdGhpcyB9KTtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyU3R5bGUgPSB7IC4uLl9yb290U3R5bGUsIC4uLnZhbCB9O1xuICAgIH1cbiAgICBnZXQgY29udGFpbmVyU3R5bGUoKTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250YWluZXJTdHlsZTtcbiAgICB9XG4gICAgX2NvbnRhaW5lclN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb250YWluZXIgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjb250YWluZXJTdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBsYWJlbCBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxhYmVsU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIGxhYmVsIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbGFiZWxTdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIHRoZSBvcHRpb25zIGZvciB0aGUgb3ZlcmxheS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBvdmVybGF5T3B0aW9uczogT3ZlcmxheU9wdGlvbnMgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVGV4dCB0byBkaXNwbGF5IHdoZW4gdGhlcmUgYXJlIG5vIG9wdGlvbnMgYXZhaWxhYmxlLiBEZWZhdWx0cyB0byB2YWx1ZSBmcm9tIFByaW1lTkcgbG9jYWxlIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZW1wdHlNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgICAvKipcbiAgICAgKiBBIHZhbGlkIHF1ZXJ5IHNlbGVjdG9yIG9yIGFuIEhUTUxFbGVtZW50IHRvIHNwZWNpZnkgd2hlcmUgdGhlIG92ZXJsYXkgZ2V0cyBhdHRhY2hlZC4gU3BlY2lhbCBrZXl3b3JkcyBhcmUgXCJib2R5XCIgZm9yIGRvY3VtZW50IGJvZHkgYW5kIFwic2VsZlwiIGZvciB0aGUgZWxlbWVudCBpdHNlbGYuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYXBwZW5kVG86IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiB8IFRlbXBsYXRlUmVmPGFueT4gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkIHwgYW55O1xuICAgIC8qKlxuICAgICAqIFdoZW4gc3BlY2lmaWVkLCBkaXNwbGF5cyBhbiBpbnB1dCBmaWVsZCB0byBmaWx0ZXIgdGhlIGl0ZW1zLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBmaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBXaGVuIGZpbHRlcmluZyBpcyBlbmFibGVkLCBmaWx0ZXJCeSBkZWNpZGVzIHdoaWNoIGZpZWxkIG9yIGZpZWxkcyAoY29tbWEgc2VwYXJhdGVkKSB0byBzZWFyY2ggYWdhaW5zdC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBmaWx0ZXJCeTogc3RyaW5nID0gJ2xhYmVsJztcbiAgICAvKipcbiAgICAgKiBNb2RlIGZvciBmaWx0ZXJpbmcgdmFsaWQgdmFsdWVzIGFyZSBcImxlbmllbnRcIiBhbmQgXCJzdHJpY3RcIi4gRGVmYXVsdCBpcyBsZW5pZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGZpbHRlck1vZGU6IHN0cmluZyA9ICdsZW5pZW50JztcbiAgICAvKipcbiAgICAgKiBQbGFjZWhvbGRlciB0ZXh0IHRvIHNob3cgd2hlbiBmaWx0ZXIgaW5wdXQgaXMgZW1wdHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZmlsdGVyUGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBMb2NhbGUgdG8gdXNlIGluIGZpbHRlcmluZy4gVGhlIGRlZmF1bHQgbG9jYWxlIGlzIHRoZSBob3N0IGVudmlyb25tZW50J3MgY3VycmVudCBsb2NhbGUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZmlsdGVyTG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmaWx0ZXIgaW5wdXQgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgZm9jdXNlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgcmVuZGVyZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGZpbHRlcklucHV0QXV0b0ZvY3VzOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGNoZWNrYm94IHNlbGVjdGlvbnMgcHJvcGFnYXRlIHRvIGRlc2NlbmRhbnQgbm9kZXMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHByb3BhZ2F0ZVNlbGVjdGlvbkRvd246IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgY2hlY2tib3ggc2VsZWN0aW9ucyBwcm9wYWdhdGUgdG8gYW5jZXN0b3Igbm9kZXMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHByb3BhZ2F0ZVNlbGVjdGlvblVwOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBXaGVuIGVuYWJsZWQsIGEgY2xlYXIgaWNvbiBpcyBkaXNwbGF5ZWQgdG8gY2xlYXIgdGhlIHZhbHVlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93Q2xlYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBDbGVhcnMgdGhlIGZpbHRlciB2YWx1ZSB3aGVuIGhpZGluZyB0aGUgZHJvcGRvd24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlc2V0RmlsdGVyT25IaWRlOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBkYXRhIHNob3VsZCBiZSBsb2FkZWQgb24gZGVtYW5kIGR1cmluZyBzY3JvbGwuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdmlydHVhbFNjcm9sbDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBIZWlnaHQgb2YgYW4gaXRlbSBpbiB0aGUgbGlzdCBmb3IgVmlydHVhbFNjcm9sbGluZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB2aXJ0dWFsU2Nyb2xsSXRlbVNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBzaXplIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2l6ZTogJ2xhcmdlJyB8ICdzbWFsbCc7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byB1c2UgdGhlIHNjcm9sbGVyIGZlYXR1cmUuIFRoZSBwcm9wZXJ0aWVzIG9mIHNjcm9sbGVyIGNvbXBvbmVudCBjYW4gYmUgdXNlZCBsaWtlIGFuIG9iamVjdCBpbiBpdC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB2aXJ0dWFsU2Nyb2xsT3B0aW9uczogU2Nyb2xsZXJPcHRpb25zIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZW4gcHJlc2VudCwgaXQgc3BlY2lmaWVzIHRoYXQgdGhlIGNvbXBvbmVudCBzaG91bGQgYXV0b21hdGljYWxseSBnZXQgZm9jdXMgb24gbG9hZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXV0b2ZvY3VzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIHRyZWVub2Rlcy5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBvcHRpb25zKCk6IFRyZWVOb2RlW10gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgICB9XG4gICAgc2V0IG9wdGlvbnMob3B0aW9uczogVHJlZU5vZGVbXSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy51cGRhdGVUcmVlU3RhdGUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIHRoZSBzaG93IGFuaW1hdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSB2MTQuMi4wIHVzZSBvdmVybGF5T3B0aW9ucyBwcm9wZXJ0eSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBzaG93VHJhbnNpdGlvbk9wdGlvbnMoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dUcmFuc2l0aW9uT3B0aW9ucztcbiAgICB9XG4gICAgc2V0IHNob3dUcmFuc2l0aW9uT3B0aW9ucyh2YWw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9zaG93VHJhbnNpdGlvbk9wdGlvbnMgPSB2YWw7XG4gICAgICAgIGNvbnNvbGUubG9nKCdUaGUgc2hvd1RyYW5zaXRpb25PcHRpb25zIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgc2luY2UgdjE0LjIuMCwgdXNlIG92ZXJsYXlPcHRpb25zIHByb3BlcnR5IGluc3RlYWQuJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRyYW5zaXRpb24gb3B0aW9ucyBvZiB0aGUgaGlkZSBhbmltYXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICogQGRlcHJlY2F0ZWQgc2luY2UgdjE0LjIuMCB1c2Ugb3ZlcmxheU9wdGlvbnMgcHJvcGVydHkgaW5zdGVhZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgaGlkZVRyYW5zaXRpb25PcHRpb25zKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRlVHJhbnNpdGlvbk9wdGlvbnM7XG4gICAgfVxuICAgIHNldCBoaWRlVHJhbnNpdGlvbk9wdGlvbnModmFsOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5faGlkZVRyYW5zaXRpb25PcHRpb25zID0gdmFsO1xuICAgICAgICBjb25zb2xlLmxvZygnVGhlIGhpZGVUcmFuc2l0aW9uT3B0aW9ucyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIHNpbmNlIHYxNC4yLjAsIHVzZSBvdmVybGF5T3B0aW9ucyBwcm9wZXJ0eSBpbnN0ZWFkLicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEaXNwbGF5cyBhIGxvYWRlciB0byBpbmRpY2F0ZSBkYXRhIGxvYWQgaXMgaW4gcHJvZ3Jlc3MuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGxvYWRpbmc6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gYSBub2RlIGlzIGV4cGFuZGVkLlxuICAgICAqIEBwYXJhbSB7VHJlZVNlbGVjdE5vZGVFeHBhbmRFdmVudH0gZXZlbnQgLSBDdXN0b20gbm9kZSBleHBhbmQgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uTm9kZUV4cGFuZDogRXZlbnRFbWl0dGVyPFRyZWVTZWxlY3ROb2RlRXhwYW5kRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVlU2VsZWN0Tm9kZUV4cGFuZEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGEgbm9kZSBpcyBjb2xsYXBzZWQuXG4gICAgICogQHBhcmFtIHtUcmVlU2VsZWN0Tm9kZUNvbGxhcHNlRXZlbnR9IGV2ZW50IC0gQ3VzdG9tIG5vZGUgY29sbGFwc2UgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uTm9kZUNvbGxhcHNlOiBFdmVudEVtaXR0ZXI8VHJlZVNlbGVjdE5vZGVDb2xsYXBzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJlZVNlbGVjdE5vZGVDb2xsYXBzZUV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gdGhlIG92ZXJsYXkgaXMgc2hvd24uXG4gICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBCcm93c2VyIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblNob3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gdGhlIG92ZXJsYXkgaXMgaGlkZGVuLlxuICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gQnJvd3NlciBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25IaWRlOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBpbnB1dCBmaWVsZCBpcyBjbGVhcmVkLlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkNsZWFyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGRhdGEgaXMgZmlsdGVyZWQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uRmlsdGVyOiBFdmVudEVtaXR0ZXI8VHJlZUZpbHRlckV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJlZUZpbHRlckV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHRyZWVzZWxlY3QgZ2V0cyBmb2N1cy5cbiAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIEJyb3dzZXIgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHRyZWVzZWxlY3QgbG9zZXMgZm9jdXMuXG4gICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBCcm93c2VyIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGEgbm9kZSBpcyB1bnNlbGVjdGVkLlxuICAgICAqIEBwYXJhbSB7VHJlZU5vZGVVblNlbGVjdEV2ZW50fSBldmVudCAtIG5vZGUgdW5zZWxlY3QgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uTm9kZVVuc2VsZWN0OiBFdmVudEVtaXR0ZXI8VHJlZU5vZGVVblNlbGVjdEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJlZU5vZGVVblNlbGVjdEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGEgbm9kZSBpcyBzZWxlY3RlZC5cbiAgICAgKiBAcGFyYW0ge1RyZWVOb2RlU2VsZWN0RXZlbnR9IGV2ZW50IC0gbm9kZSBzZWxlY3QgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uTm9kZVNlbGVjdDogRXZlbnRFbWl0dGVyPFRyZWVOb2RlU2VsZWN0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVlTm9kZVNlbGVjdEV2ZW50PigpO1xuXG4gICAgX3Nob3dUcmFuc2l0aW9uT3B0aW9uczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgX2hpZGVUcmFuc2l0aW9uT3B0aW9uczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyRWw6IE51bGxhYmxlPEVsZW1lbnRSZWY+O1xuXG4gICAgQFZpZXdDaGlsZCgnZm9jdXNJbnB1dCcpIGZvY3VzSW5wdXQ6IE51bGxhYmxlPEVsZW1lbnRSZWY+O1xuXG4gICAgQFZpZXdDaGlsZCgnZmlsdGVyJykgZmlsdGVyVmlld0NoaWxkOiBOdWxsYWJsZTxFbGVtZW50UmVmPjtcblxuICAgIEBWaWV3Q2hpbGQoJ3RyZWUnKSB0cmVlVmlld0NoaWxkOiBOdWxsYWJsZTxUcmVlPjtcblxuICAgIEBWaWV3Q2hpbGQoJ3BhbmVsJykgcGFuZWxFbDogTnVsbGFibGU8RWxlbWVudFJlZj47XG5cbiAgICBAVmlld0NoaWxkKCdvdmVybGF5Jykgb3ZlcmxheVZpZXdDaGlsZDogTnVsbGFibGU8T3ZlcmxheT47XG5cbiAgICBAVmlld0NoaWxkKCdmaXJzdEhpZGRlbkZvY3VzYWJsZUVsJykgZmlyc3RIaWRkZW5Gb2N1c2FibGVFbGVtZW50T25PdmVybGF5OiBOdWxsYWJsZTxFbGVtZW50UmVmPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2xhc3RIaWRkZW5Gb2N1c2FibGVFbCcpIGxhc3RIaWRkZW5Gb2N1c2FibGVFbGVtZW50T25PdmVybGF5OiBOdWxsYWJsZTxFbGVtZW50UmVmPjtcblxuICAgIHB1YmxpYyBmaWx0ZXJlZE5vZGVzOiBUcmVlTm9kZVtdIHwgdW5kZWZpbmVkIHwgbnVsbDtcblxuICAgIGZpbHRlclZhbHVlOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcblxuICAgIHNlcmlhbGl6ZWRWYWx1ZTogTnVsbGFibGU8YW55W10+O1xuICAgIC8qKlxuICAgICAqIEN1c3RvbSB2YWx1ZSB0ZW1wbGF0ZS5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndmFsdWUnLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSB2YWx1ZVRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBoZWFkZXIgdGVtcGxhdGUuXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGhlYWRlclRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBlbXB0eSBtZXNzYWdlIHRlbXBsYXRlLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdlbXB0eScsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGVtcHR5VGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGZvb3RlciB0ZW1wbGF0ZS5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZm9vdGVyJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgZm9vdGVyVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNsZWFyIGljb24gdGVtcGxhdGUuXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NsZWFyaWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGNsZWFySWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSB0cmlnZ2VyIGljb24gdGVtcGxhdGUuXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3RyaWdnZXJpY29uJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgdHJpZ2dlckljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gZHJvcGRvd24gaWNvbiB0ZW1wbGF0ZS5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZHJvcGRvd25pY29uJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgZHJvcGRvd25JY29uVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGZpbHRlciBpY29uIHRlbXBsYXRlLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdmaWx0ZXJpY29uJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgZmlsdGVySWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBjbG9zZSBpY29uIHRlbXBsYXRlLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdjbG9zZWljb24nLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBjbG9zZUljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gaXRlbSB0b2dnbGVyIGljb24gdGVtcGxhdGUuXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2l0ZW10b2dnbGVyaWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGl0ZW1Ub2dnbGVySWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBpdGVtIGNoZWNrYm94IGljb24gdGVtcGxhdGUuXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2l0ZW1jaGVja2JveGljb24nLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBpdGVtQ2hlY2tib3hJY29uVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGl0ZW0gbG9hZGluZyBpY29uIHRlbXBsYXRlLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdpdGVtbG9hZGluZ2ljb24nLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBpdGVtTG9hZGluZ0ljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFByaW1lVGVtcGxhdGUpIHRlbXBsYXRlczogTnVsbGFibGU8UXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+PjtcblxuICAgIF92YWx1ZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX2hlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX2VtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfY2xlYXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfdHJpZ2dlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIF9maWx0ZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfY2xvc2VJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfaXRlbVRvZ2dsZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfaXRlbUNoZWNrYm94SWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX2l0ZW1Mb2FkaW5nSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX2Ryb3Bkb3duSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgZm9jdXNlZDogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICBvdmVybGF5VmlzaWJsZTogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICBzZWxmQ2hhbmdlOiBOdWxsYWJsZTxib29sZWFuPjtcblxuICAgIHZhbHVlOiBhbnkgfCB1bmRlZmluZWQ7XG5cbiAgICBleHBhbmRlZE5vZGVzOiBhbnlbXSA9IFtdO1xuXG4gICAgX29wdGlvbnM6IFRyZWVOb2RlW10gfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgdGVtcGxhdGVNYXA6IGFueTtcblxuICAgIG9uTW9kZWxDaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4ge307XG5cbiAgICBvbk1vZGVsVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7fTtcblxuICAgIGxpc3RJZDogc3RyaW5nID0gJyc7XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoVHJlZVNlbGVjdFN0eWxlKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmxpc3RJZCA9IHV1aWQoJ3BuX2lkXycpICsgJ19saXN0JztcbiAgICAgICAgdGhpcy51cGRhdGVUcmVlU3RhdGUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIGlmICgodGhpcy50ZW1wbGF0ZXMgYXMgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+KS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVNYXAgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgICh0aGlzLnRlbXBsYXRlcyBhcyBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4pLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2hlYWRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2hlYWRlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdlbXB0eSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zvb3Rlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Zvb3RlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdjbGVhcmljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jbGVhckljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAndHJpZ2dlcmljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VySWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdmaWx0ZXJpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZmlsdGVySWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdjbG9zZWljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jbG9zZUljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnaXRlbXRvZ2dsZXJpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXRlbVRvZ2dsZXJJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2l0ZW1jaGVja2JveGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pdGVtQ2hlY2tib3hJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2Ryb3Bkb3duaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Ryb3Bkb3duSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdpdGVtbG9hZGluZ2ljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pdGVtTG9hZGluZ0ljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogLy9UT0RPOiBAZGVwcmVjYXRlZCBVc2VkIFwidmFsdWVcIiB0ZW1wbGF0ZSBpbnN0ZWFkXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLm5hbWUpIHRoaXMudGVtcGxhdGVNYXBbaXRlbS5uYW1lXSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy52YWx1ZVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uT3ZlcmxheUFuaW1hdGlvblN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LnRvU3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3Zpc2libGUnOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICBpc05vdEVtcHR5KHRoaXMuZmlsdGVyVmFsdWUpICYmIHRoaXMudHJlZVZpZXdDaGlsZD8uX2ZpbHRlcig8YW55PnRoaXMuZmlsdGVyVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcklucHV0QXV0b0ZvY3VzICYmIHRoaXMuZmlsdGVyVmlld0NoaWxkPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZvY3VzYWJsZUVsZW1lbnRzID0gPGFueT5nZXRGb2N1c2FibGVFbGVtZW50cyh0aGlzLnBhbmVsRWwubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvY3VzYWJsZUVsZW1lbnRzICYmIGZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZUVsZW1lbnRzWzBdLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk92ZXJsYXlCZWZvcmVIaWRlKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgbGV0IGZvY3VzYWJsZUVsZW1lbnRzID0gPGFueT5nZXRGb2N1c2FibGVFbGVtZW50cyh0aGlzLmNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChmb2N1c2FibGVFbGVtZW50cyAmJiBmb2N1c2FibGVFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb2N1c2FibGVFbGVtZW50c1swXS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gZXZlbnQ7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5vdmVybGF5Vmlld0NoaWxkPy5lbD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiAhaGFzQ2xhc3MoZXZlbnQudGFyZ2V0LCAncC10cmVlc2VsZWN0LWNsb3NlJykgJiYgIWhhc0NsYXNzKGV2ZW50LnRhcmdldCwgJ3AtY2hlY2tib3gtYm94JykgJiYgIWhhc0NsYXNzKGV2ZW50LnRhcmdldCwgJ3AtY2hlY2tib3gtaWNvbicpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vdmVybGF5VmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5mb2N1c0lucHV0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgICAgICAvL2Rvd25cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm92ZXJsYXlWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm9uQXJyb3dEb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAvL3NwYWNlXG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm92ZXJsYXlWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgLy9lc2NhcGVcbiAgICAgICAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheVZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNJbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgLy90YWJcbiAgICAgICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgICAgICAgdGhpcy5vblRhYktleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZpbHRlcklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLmZpbHRlclZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgdGhpcy50cmVlVmlld0NoaWxkPy5fZmlsdGVyKHRoaXMuZmlsdGVyVmFsdWUpO1xuICAgICAgICB0aGlzLm9uRmlsdGVyLmVtaXQoe1xuICAgICAgICAgICAgZmlsdGVyOiB0aGlzLmZpbHRlclZhbHVlLFxuICAgICAgICAgICAgZmlsdGVyZWRWYWx1ZTogdGhpcy50cmVlVmlld0NoaWxkPy5maWx0ZXJlZE5vZGVzXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVZpZXdDaGlsZC5hbGlnbk92ZXJsYXkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25BcnJvd0Rvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVZpc2libGUgJiYgdGhpcy5wYW5lbEVsPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBsZXQgZm9jdXNhYmxlRWxlbWVudHMgPSA8YW55PmdldEZvY3VzYWJsZUVsZW1lbnRzKHRoaXMucGFuZWxFbC5uYXRpdmVFbGVtZW50LCAnLnAtdHJlZS1ub2RlJyk7XG5cbiAgICAgICAgICAgIGlmIChmb2N1c2FibGVFbGVtZW50cyAmJiBmb2N1c2FibGVFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgZm9jdXNhYmxlRWxlbWVudHNbMF0uZm9jdXMoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRmlyc3RIaWRkZW5Gb2N1cyhldmVudCkge1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMuZm9jdXNJbnB1dD8ubmF0aXZlRWxlbWVudCA/IGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCh0aGlzLm92ZXJsYXlWaWV3Q2hpbGQ/Lm92ZXJsYXlWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQsICc6bm90KFtkYXRhLXAtaGlkZGVuLWZvY3VzYWJsZT1cInRydWVcIl0pJykgOiB0aGlzLmZvY3VzSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgZm9jdXMoZm9jdXNhYmxlRWwpO1xuICAgIH1cblxuICAgIG9uTGFzdEhpZGRlbkZvY3VzKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZUVsID0gZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gdGhpcy5mb2N1c0lucHV0Py5uYXRpdmVFbGVtZW50ID8gZ2V0TGFzdEZvY3VzYWJsZUVsZW1lbnQodGhpcy5vdmVybGF5Vmlld0NoaWxkPy5vdmVybGF5Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50LCAnOm5vdChbZGF0YS1wLWhpZGRlbi1mb2N1c2FibGU9XCJ0cnVlXCJdKScpIDogdGhpcy5mb2N1c0lucHV0Py5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGZvY3VzKGZvY3VzYWJsZUVsKTtcbiAgICB9XG5cbiAgICBzaG93KCkge1xuICAgICAgICB0aGlzLm92ZXJsYXlWaXNpYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBoaWRlKGV2ZW50PzogYW55KSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXNldEZpbHRlcigpO1xuXG4gICAgICAgIHRoaXMub25IaWRlLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGNsZWFyKGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZXNldEV4cGFuZGVkTm9kZXMoKTtcbiAgICAgICAgdGhpcy5yZXNldFBhcnRpYWxTZWxlY3RlZCgpO1xuICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMub25DbGVhci5lbWl0KCk7XG5cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgY2hlY2tWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgIT09IG51bGwgJiYgaXNOb3RFbXB0eSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBvblRhYktleShldmVudCwgcHJlc3NlZEluSW5wdXRUZXh0ID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCFwcmVzc2VkSW5JbnB1dFRleHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm92ZXJsYXlWaXNpYmxlICYmIHRoaXMuaGFzRm9jdXNhYmxlRWxlbWVudHMoKSkge1xuICAgICAgICAgICAgICAgIGZvY3VzKGV2ZW50LnNoaWZ0S2V5ID8gdGhpcy5sYXN0SGlkZGVuRm9jdXNhYmxlRWxlbWVudE9uT3ZlcmxheS5uYXRpdmVFbGVtZW50IDogdGhpcy5maXJzdEhpZGRlbkZvY3VzYWJsZUVsZW1lbnRPbk92ZXJsYXkubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlWaXNpYmxlICYmIHRoaXMuaGlkZSh0aGlzLmZpbHRlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYXNGb2N1c2FibGVFbGVtZW50cygpIHtcbiAgICAgICAgcmV0dXJuIGdldEZvY3VzYWJsZUVsZW1lbnRzKHRoaXMub3ZlcmxheVZpZXdDaGlsZC5vdmVybGF5Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQsICc6bm90KFtkYXRhLXAtaGlkZGVuLWZvY3VzYWJsZT1cInRydWVcIl0pJykubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICByZXNldEZpbHRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyICYmICF0aGlzLnJlc2V0RmlsdGVyT25IaWRlKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTm9kZXMgPSB0aGlzLnRyZWVWaWV3Q2hpbGQ/LmZpbHRlcmVkTm9kZXM7XG4gICAgICAgICAgICB0aGlzLnRyZWVWaWV3Q2hpbGQ/LnJlc2V0RmlsdGVyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlclZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVRyZWVTdGF0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3RlZE5vZGVzID0gdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJyA/IFt0aGlzLnZhbHVlXSA6IFsuLi50aGlzLnZhbHVlXTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRFeHBhbmRlZE5vZGVzKCk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0UGFydGlhbFNlbGVjdGVkKCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWROb2RlcyAmJiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRyZWVCcmFuY2hTdGF0ZShudWxsLCBudWxsLCBzZWxlY3RlZE5vZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVRyZWVCcmFuY2hTdGF0ZShub2RlOiBUcmVlTm9kZSB8IG51bGwsIHBhdGg6IGFueSwgc2VsZWN0ZWROb2RlczogVHJlZU5vZGVbXSkge1xuICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZChub2RlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kUGF0aChwYXRoKTtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE5vZGVzLnNwbGljZShzZWxlY3RlZE5vZGVzLmluZGV4T2Yobm9kZSksIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWROb2Rlcy5sZW5ndGggPiAwICYmIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBjaGlsZE5vZGUgb2Ygbm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRyZWVCcmFuY2hTdGF0ZShjaGlsZE5vZGUsIFsuLi5wYXRoLCBub2RlXSwgc2VsZWN0ZWROb2Rlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChsZXQgY2hpbGROb2RlIG9mIHRoaXMub3B0aW9ucyBhcyBUcmVlTm9kZVtdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUcmVlQnJhbmNoU3RhdGUoY2hpbGROb2RlLCBbXSwgc2VsZWN0ZWROb2Rlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHBhbmRQYXRoKGV4cGFuZGVkTm9kZXM6IFRyZWVOb2RlW10pIHtcbiAgICAgICAgZm9yIChsZXQgbm9kZSBvZiBleHBhbmRlZE5vZGVzKSB7XG4gICAgICAgICAgICBub2RlLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXhwYW5kZWROb2RlcyA9IFsuLi5leHBhbmRlZE5vZGVzXTtcbiAgICB9XG5cbiAgICBub2RlRXhwYW5kKGV2ZW50OiB7IG9yaWdpbmFsRXZlbnQ6IEV2ZW50OyBub2RlOiBUcmVlTm9kZSB9KSB7XG4gICAgICAgIHRoaXMub25Ob2RlRXhwYW5kLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLmV4cGFuZGVkTm9kZXMucHVzaChldmVudC5ub2RlKTtcbiAgICB9XG5cbiAgICBub2RlQ29sbGFwc2UoZXZlbnQ6IHsgb3JpZ2luYWxFdmVudDogRXZlbnQ7IG5vZGU6IFRyZWVOb2RlIH0pIHtcbiAgICAgICAgdGhpcy5vbk5vZGVDb2xsYXBzZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5leHBhbmRlZE5vZGVzLnNwbGljZSh0aGlzLmV4cGFuZGVkTm9kZXMuaW5kZXhPZihldmVudC5ub2RlKSwgMSk7XG4gICAgfVxuXG4gICAgcmVzZXRFeHBhbmRlZE5vZGVzKCkge1xuICAgICAgICBmb3IgKGxldCBub2RlIG9mIHRoaXMuZXhwYW5kZWROb2Rlcykge1xuICAgICAgICAgICAgbm9kZS5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leHBhbmRlZE5vZGVzID0gW107XG4gICAgfVxuXG4gICAgcmVzZXRQYXJ0aWFsU2VsZWN0ZWQobm9kZXMgPSB0aGlzLm9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFub2Rlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgbm9kZSBvZiBub2Rlcykge1xuICAgICAgICAgICAgbm9kZS5wYXJ0aWFsU2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRQYXJ0aWFsU2VsZWN0ZWQobm9kZS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kU2VsZWN0ZWROb2Rlcyhub2RlOiBUcmVlTm9kZSwga2V5czogYW55W10sIHNlbGVjdGVkTm9kZXM6IFRyZWVOb2RlW10pIHtcbiAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQobm9kZSkpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE5vZGVzLnB1c2gobm9kZSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGtleXNbbm9kZS5rZXkgYXMgYW55XTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGtleXMpLmxlbmd0aCAmJiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgY2hpbGROb2RlIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5kU2VsZWN0ZWROb2RlcyhjaGlsZE5vZGUsIGtleXMsIHNlbGVjdGVkTm9kZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGNoaWxkTm9kZSBvZiB0aGlzLm9wdGlvbnMgYXMgVHJlZU5vZGVbXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmluZFNlbGVjdGVkTm9kZXMoY2hpbGROb2RlLCBrZXlzLCBzZWxlY3RlZE5vZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQobm9kZTogVHJlZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZEluZGV4SW5TZWxlY3Rpb24obm9kZSkgIT0gLTE7XG4gICAgfVxuXG4gICAgZmluZEluZGV4SW5TZWxlY3Rpb24obm9kZTogVHJlZU5vZGUpIHtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSAtMTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgICAgICBsZXQgYXJlTm9kZXNFcXVhbCA9ICh0aGlzLnZhbHVlLmtleSAmJiB0aGlzLnZhbHVlLmtleSA9PT0gbm9kZS5rZXkpIHx8IHRoaXMudmFsdWUgPT0gbm9kZTtcbiAgICAgICAgICAgICAgICBpbmRleCA9IGFyZU5vZGVzRXF1YWwgPyAwIDogLTE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy52YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWROb2RlID0gdGhpcy52YWx1ZVtpXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFyZU5vZGVzRXF1YWwgPSAoc2VsZWN0ZWROb2RlLmtleSAmJiBzZWxlY3RlZE5vZGUua2V5ID09PSBub2RlLmtleSkgfHwgc2VsZWN0ZWROb2RlID09IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhcmVOb2Rlc0VxdWFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBvblNlbGVjdChldmVudDogVHJlZU5vZGVTZWxlY3RFdmVudCkge1xuICAgICAgICB0aGlzLm9uTm9kZVNlbGVjdC5lbWl0KGV2ZW50KTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVW5zZWxlY3QoZXZlbnQ6IFRyZWVOb2RlVW5TZWxlY3RFdmVudCkge1xuICAgICAgICB0aGlzLm9uTm9kZVVuc2VsZWN0LmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uSW5wdXRGb2N1cyhldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIC8vIEZvciBTY3JlZW5SZWFkZXJzXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9uRm9jdXMuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25JbnB1dEJsdXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uQmx1ci5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5vbk1vZGVsVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlVHJlZVN0YXRlKCk7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKHZhbDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSB2YWw7XG4gICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgY29udGFpbmVyQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRTdHlsZS5jbGFzc2VzLnJvb3QoeyBpbnN0YW5jZTogdGhpcyB9KTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRmx1aWQoKSB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGZsdWlkQ29tcG9uZW50ID0gbmF0aXZlRWxlbWVudC5jbG9zZXN0KCdwLWZsdWlkJyk7XG4gICAgICAgIHJldHVybiB0aGlzLmZsdWlkIHx8ICEhZmx1aWRDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGxhYmVsQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRTdHlsZS5jbGFzc2VzLmxhYmVsKHsgaW5zdGFuY2U6IHRoaXMgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGVtcHR5VmFsdWUoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy52YWx1ZSB8fCBPYmplY3Qua2V5cyh0aGlzLnZhbHVlKS5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgZ2V0IGVtcHR5T3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLm9wdGlvbnMgfHwgdGhpcy5vcHRpb25zLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICBnZXQgbGFiZWwoKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMudmFsdWUgfHwgW107XG4gICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPyB2YWx1ZS5tYXAoKG5vZGU6IFRyZWVOb2RlKSA9PiBub2RlLmxhYmVsKS5qb2luKCcsICcpIDogdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJyAmJiB0aGlzLnZhbHVlID8gdmFsdWUubGFiZWwgOiB0aGlzLnBsYWNlaG9sZGVyO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbVHJlZVNlbGVjdCwgU2hhcmVkTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbVHJlZVNlbGVjdCwgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VsZWN0TW9kdWxlIHt9XG4iXX0=