@simpleangularcontrols/sac-common 13.0.0-rc.12 → 13.0.0-rc.14

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 (822) hide show
  1. package/README.md +15 -15
  2. package/common/basedatetimecontrol.d.ts +172 -172
  3. package/common/basedatetimecontrol.ngfactory.d.ts +3 -3
  4. package/common/basedatetimecontrol.ngsummary.d.ts +1 -1
  5. package/common/baseinputcontrol.d.ts +41 -41
  6. package/common/baseinputcontrol.ngfactory.d.ts +3 -3
  7. package/common/baseinputcontrol.ngsummary.d.ts +1 -1
  8. package/common/baselistcontrol.d.ts +46 -46
  9. package/common/baselistcontrol.ngfactory.d.ts +3 -3
  10. package/common/baselistcontrol.ngsummary.d.ts +1 -1
  11. package/common/basemodelcontrol.d.ts +283 -283
  12. package/common/basemodelcontrol.ngfactory.d.ts +3 -3
  13. package/common/basemodelcontrol.ngsummary.d.ts +1 -1
  14. package/common/baseselectcontrol.d.ts +17 -17
  15. package/common/baseselectcontrol.ngfactory.d.ts +3 -3
  16. package/common/baseselectcontrol.ngsummary.d.ts +1 -1
  17. package/common/baseuploadcontrol.d.ts +303 -303
  18. package/common/baseuploadcontrol.ngfactory.d.ts +3 -3
  19. package/common/baseuploadcontrol.ngsummary.d.ts +1 -1
  20. package/components/browser/browser.d.ts +270 -270
  21. package/components/browser/browser.ngfactory.d.ts +3 -3
  22. package/components/browser/browser.ngsummary.d.ts +1 -1
  23. package/components/browser/models/browserfile.d.ts +17 -17
  24. package/components/browser/models/browserfile.ngfactory.d.ts +1 -1
  25. package/components/browser/models/browserfile.ngsummary.d.ts +1 -1
  26. package/components/browser/models/browserfiledeleterequest.d.ts +18 -18
  27. package/components/browser/models/browserfiledeleterequest.ngfactory.d.ts +1 -1
  28. package/components/browser/models/browserfiledeleterequest.ngsummary.d.ts +1 -1
  29. package/components/browser/models/browserfilerenamerequest.d.ts +22 -22
  30. package/components/browser/models/browserfilerenamerequest.ngfactory.d.ts +1 -1
  31. package/components/browser/models/browserfilerenamerequest.ngsummary.d.ts +1 -1
  32. package/components/browser/models/browserfileresponse.d.ts +10 -10
  33. package/components/browser/models/browserfileresponse.ngfactory.d.ts +1 -1
  34. package/components/browser/models/browserfileresponse.ngsummary.d.ts +1 -1
  35. package/components/browser/models/browserfilesaverequest.d.ts +22 -22
  36. package/components/browser/models/browserfilesaverequest.ngfactory.d.ts +1 -1
  37. package/components/browser/models/browserfilesaverequest.ngsummary.d.ts +1 -1
  38. package/components/browser/models/browsernode.d.ts +34 -34
  39. package/components/browser/models/browsernode.ngfactory.d.ts +1 -1
  40. package/components/browser/models/browsernode.ngsummary.d.ts +1 -1
  41. package/components/browser/models/browsernodedeleterequest.d.ts +14 -14
  42. package/components/browser/models/browsernodedeleterequest.ngfactory.d.ts +1 -1
  43. package/components/browser/models/browsernodedeleterequest.ngsummary.d.ts +1 -1
  44. package/components/browser/models/browsernodenewrequest.d.ts +18 -18
  45. package/components/browser/models/browsernodenewrequest.ngfactory.d.ts +1 -1
  46. package/components/browser/models/browsernodenewrequest.ngsummary.d.ts +1 -1
  47. package/components/browser/models/browsernoderenamerequest.d.ts +18 -18
  48. package/components/browser/models/browsernoderenamerequest.ngfactory.d.ts +1 -1
  49. package/components/browser/models/browsernoderenamerequest.ngsummary.d.ts +1 -1
  50. package/components/browser/models/browsernoderequest.d.ts +18 -18
  51. package/components/browser/models/browsernoderequest.ngfactory.d.ts +1 -1
  52. package/components/browser/models/browsernoderequest.ngsummary.d.ts +1 -1
  53. package/components/browser/models/browsernoderesponse.d.ts +10 -10
  54. package/components/browser/models/browsernoderesponse.ngfactory.d.ts +1 -1
  55. package/components/browser/models/browsernoderesponse.ngsummary.d.ts +1 -1
  56. package/controls/buttons/button.d.ts +73 -73
  57. package/controls/buttons/button.ngfactory.d.ts +3 -3
  58. package/controls/buttons/button.ngsummary.d.ts +1 -1
  59. package/controls/checkbox/checkbox.d.ts +35 -35
  60. package/controls/checkbox/checkbox.ngfactory.d.ts +3 -3
  61. package/controls/checkbox/checkbox.ngsummary.d.ts +1 -1
  62. package/controls/checkbox/radiobutton.d.ts +117 -117
  63. package/controls/checkbox/radiobutton.ngfactory.d.ts +3 -3
  64. package/controls/checkbox/radiobutton.ngsummary.d.ts +1 -1
  65. package/controls/checkbox/radiobuttons.d.ts +63 -63
  66. package/controls/checkbox/radiobuttons.ngfactory.d.ts +3 -3
  67. package/controls/checkbox/radiobuttons.ngsummary.d.ts +1 -1
  68. package/controls/confirm/confirm.button.d.ts +25 -25
  69. package/controls/confirm/confirm.button.ngfactory.d.ts +1 -1
  70. package/controls/confirm/confirm.button.ngsummary.d.ts +1 -1
  71. package/controls/confirm/confirm.d.ts +52 -52
  72. package/controls/confirm/confirm.ngfactory.d.ts +3 -3
  73. package/controls/confirm/confirm.ngsummary.d.ts +1 -1
  74. package/controls/confirm/confirm.service.d.ts +63 -63
  75. package/controls/confirm/confirm.service.ngfactory.d.ts +1 -1
  76. package/controls/confirm/confirm.service.ngsummary.d.ts +1 -1
  77. package/controls/contextmenu/contextmenu.d.ts +123 -123
  78. package/controls/contextmenu/contextmenu.interface.d.ts +3 -3
  79. package/controls/contextmenu/contextmenu.interface.ngfactory.d.ts +1 -1
  80. package/controls/contextmenu/contextmenu.interface.ngsummary.d.ts +1 -1
  81. package/controls/contextmenu/contextmenu.ngfactory.d.ts +3 -3
  82. package/controls/contextmenu/contextmenu.ngsummary.d.ts +1 -1
  83. package/controls/contextmenu/contextmenuanchor.d.ts +18 -18
  84. package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts +3 -3
  85. package/controls/contextmenu/contextmenuanchor.ngsummary.d.ts +1 -1
  86. package/controls/contextmenu/contextmenucontainer.d.ts +18 -18
  87. package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts +3 -3
  88. package/controls/contextmenu/contextmenucontainer.ngsummary.d.ts +1 -1
  89. package/controls/contextmenu/contextmenuitem.d.ts +13 -13
  90. package/controls/contextmenu/contextmenuitem.ngfactory.d.ts +3 -3
  91. package/controls/contextmenu/contextmenuitem.ngsummary.d.ts +1 -1
  92. package/controls/contextmenu/contextmenuitembutton.d.ts +70 -70
  93. package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts +3 -3
  94. package/controls/contextmenu/contextmenuitembutton.ngsummary.d.ts +1 -1
  95. package/controls/datetime/date.d.ts +120 -120
  96. package/controls/datetime/date.ngfactory.d.ts +3 -3
  97. package/controls/datetime/date.ngsummary.d.ts +1 -1
  98. package/controls/datetime/dateselector.d.ts +164 -164
  99. package/controls/datetime/dateselector.ngfactory.d.ts +3 -3
  100. package/controls/datetime/dateselector.ngsummary.d.ts +1 -1
  101. package/controls/datetime/datetime.d.ts +134 -134
  102. package/controls/datetime/datetime.ngfactory.d.ts +3 -3
  103. package/controls/datetime/datetime.ngsummary.d.ts +1 -1
  104. package/controls/datetime/time.d.ts +114 -114
  105. package/controls/datetime/time.ngfactory.d.ts +3 -3
  106. package/controls/datetime/time.ngsummary.d.ts +1 -1
  107. package/controls/dialog/dialog.d.ts +96 -96
  108. package/controls/dialog/dialog.ngfactory.d.ts +3 -3
  109. package/controls/dialog/dialog.ngsummary.d.ts +1 -1
  110. package/controls/form/form.d.ts +50 -50
  111. package/controls/form/form.ngfactory.d.ts +3 -3
  112. package/controls/form/form.ngsummary.d.ts +1 -1
  113. package/controls/grid/grid.d.ts +130 -130
  114. package/controls/grid/grid.ngfactory.d.ts +3 -3
  115. package/controls/grid/grid.ngsummary.d.ts +1 -1
  116. package/controls/grid/gridbutton.d.ts +36 -36
  117. package/controls/grid/gridbutton.ngfactory.d.ts +3 -3
  118. package/controls/grid/gridbutton.ngsummary.d.ts +1 -1
  119. package/controls/grid/gridcolumn.d.ts +31 -31
  120. package/controls/grid/gridcolumn.ngfactory.d.ts +3 -3
  121. package/controls/grid/gridcolumn.ngsummary.d.ts +1 -1
  122. package/controls/grid/gridcolumnaction.d.ts +18 -18
  123. package/controls/grid/gridcolumnaction.ngfactory.d.ts +3 -3
  124. package/controls/grid/gridcolumnaction.ngsummary.d.ts +1 -1
  125. package/controls/grid/gridcolumnbase.d.ts +97 -97
  126. package/controls/grid/gridcolumnbase.ngfactory.d.ts +3 -3
  127. package/controls/grid/gridcolumnbase.ngsummary.d.ts +1 -1
  128. package/controls/grid/gridimage.d.ts +12 -12
  129. package/controls/grid/gridimage.ngfactory.d.ts +3 -3
  130. package/controls/grid/gridimage.ngsummary.d.ts +1 -1
  131. package/controls/grid/model.d.ts +92 -92
  132. package/controls/grid/model.ngfactory.d.ts +1 -1
  133. package/controls/grid/model.ngsummary.d.ts +1 -1
  134. package/controls/grid/paging.d.ts +148 -148
  135. package/controls/grid/paging.ngfactory.d.ts +3 -3
  136. package/controls/grid/paging.ngsummary.d.ts +1 -1
  137. package/controls/input/input.d.ts +38 -38
  138. package/controls/input/input.d.ts.map +1 -1
  139. package/controls/input/input.ngfactory.d.ts +3 -3
  140. package/controls/input/input.ngsummary.d.ts +1 -1
  141. package/controls/input/inputarea.d.ts +29 -29
  142. package/controls/input/inputarea.d.ts.map +1 -1
  143. package/controls/input/inputarea.ngfactory.d.ts +3 -3
  144. package/controls/input/inputarea.ngsummary.d.ts +1 -1
  145. package/controls/input/inputcurrency.d.ts +14 -14
  146. package/controls/input/inputcurrency.ngfactory.d.ts +3 -3
  147. package/controls/input/inputcurrency.ngsummary.d.ts +1 -1
  148. package/controls/input/inputdecimal.d.ts +62 -62
  149. package/controls/input/inputdecimal.ngfactory.d.ts +3 -3
  150. package/controls/input/inputdecimal.ngsummary.d.ts +1 -1
  151. package/controls/input/inputemail.d.ts +22 -22
  152. package/controls/input/inputemail.ngfactory.d.ts +3 -3
  153. package/controls/input/inputemail.ngsummary.d.ts +1 -1
  154. package/controls/input/inputinteger.d.ts +62 -62
  155. package/controls/input/inputinteger.ngfactory.d.ts +3 -3
  156. package/controls/input/inputinteger.ngsummary.d.ts +1 -1
  157. package/controls/input/inputpassword.d.ts +26 -26
  158. package/controls/input/inputpassword.d.ts.map +1 -1
  159. package/controls/input/inputpassword.ngfactory.d.ts +3 -3
  160. package/controls/input/inputpassword.ngsummary.d.ts +1 -1
  161. package/controls/input/inputsearch.d.ts +35 -35
  162. package/controls/input/inputsearch.ngfactory.d.ts +3 -3
  163. package/controls/input/inputsearch.ngsummary.d.ts +1 -1
  164. package/controls/layout/formlayout.d.ts +65 -65
  165. package/controls/layout/formlayout.ngfactory.d.ts +3 -3
  166. package/controls/layout/formlayout.ngsummary.d.ts +1 -1
  167. package/controls/list/buildvaluestring.d.ts +6 -6
  168. package/controls/list/buildvaluestring.ngfactory.d.ts +1 -1
  169. package/controls/list/buildvaluestring.ngsummary.d.ts +1 -1
  170. package/controls/list/dropdown.d.ts +99 -99
  171. package/controls/list/dropdown.ngfactory.d.ts +3 -3
  172. package/controls/list/dropdown.ngsummary.d.ts +1 -1
  173. package/controls/list/dropdownoptions.d.ts +41 -41
  174. package/controls/list/dropdownoptions.ngfactory.d.ts +3 -3
  175. package/controls/list/dropdownoptions.ngsummary.d.ts +1 -1
  176. package/controls/list/list.module.d.ts +6 -6
  177. package/controls/list/list.module.ngfactory.d.ts +3 -3
  178. package/controls/list/list.module.ngsummary.d.ts +1 -1
  179. package/controls/list/listbox.d.ts +91 -91
  180. package/controls/list/listbox.ngfactory.d.ts +4 -4
  181. package/controls/list/listbox.ngsummary.d.ts +2 -2
  182. package/controls/multilanguage/multilanguageinput.d.ts +105 -105
  183. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  184. package/controls/multilanguage/multilanguageinput.ngfactory.d.ts +3 -3
  185. package/controls/multilanguage/multilanguageinput.ngsummary.d.ts +1 -1
  186. package/controls/multilanguage/multilanguageinputarea.d.ts +110 -110
  187. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  188. package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts +3 -3
  189. package/controls/multilanguage/multilanguageinputarea.ngsummary.d.ts +1 -1
  190. package/controls/static/formcontainer.d.ts +38 -38
  191. package/controls/static/formcontainer.ngfactory.d.ts +3 -3
  192. package/controls/static/formcontainer.ngsummary.d.ts +1 -1
  193. package/controls/static/staticlabel.d.ts +21 -21
  194. package/controls/static/staticlabel.ngfactory.d.ts +3 -3
  195. package/controls/static/staticlabel.ngsummary.d.ts +1 -1
  196. package/controls/tabs/tab.d.ts +48 -48
  197. package/controls/tabs/tab.ngfactory.d.ts +3 -3
  198. package/controls/tabs/tab.ngsummary.d.ts +1 -1
  199. package/controls/tabs/tabitem.d.ts +33 -33
  200. package/controls/tabs/tabitem.ngfactory.d.ts +3 -3
  201. package/controls/tabs/tabitem.ngsummary.d.ts +1 -1
  202. package/controls/tinymce/tinymce.d.ts +152 -152
  203. package/controls/tinymce/tinymce.ngfactory.d.ts +3 -3
  204. package/controls/tinymce/tinymce.ngsummary.d.ts +1 -1
  205. package/controls/tinymce/tinymcedialogsettings.d.ts +27 -27
  206. package/controls/tinymce/tinymcedialogsettings.ngfactory.d.ts +1 -1
  207. package/controls/tinymce/tinymcedialogsettings.ngsummary.d.ts +1 -1
  208. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +9 -9
  209. package/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.d.ts +4 -1
  210. package/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.d.ts.map +1 -1
  211. package/controls/tinymce/tinymcedialogsettingsmeta.ngsummary.d.ts +1 -1
  212. package/controls/tinymce/tinymceinstance.d.ts +10 -10
  213. package/controls/tinymce/tinymceinstance.ngfactory.d.ts +1 -1
  214. package/controls/tinymce/tinymceinstance.ngsummary.d.ts +1 -1
  215. package/controls/tooltip/tooltip.d.ts +148 -148
  216. package/controls/tooltip/tooltip.ngfactory.d.ts +3 -3
  217. package/controls/tooltip/tooltip.ngsummary.d.ts +1 -1
  218. package/controls/treeview/treeview.d.ts +188 -188
  219. package/controls/treeview/treeview.ngfactory.d.ts +3 -3
  220. package/controls/treeview/treeview.ngsummary.d.ts +1 -1
  221. package/controls/upload/dropzonemultiple.d.ts +73 -73
  222. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  223. package/controls/upload/dropzonemultiple.ngfactory.d.ts +3 -3
  224. package/controls/upload/dropzonemultiple.ngsummary.d.ts +1 -1
  225. package/controls/upload/dropzonesingle.d.ts +50 -50
  226. package/controls/upload/dropzonesingle.d.ts.map +1 -1
  227. package/controls/upload/dropzonesingle.ngfactory.d.ts +3 -3
  228. package/controls/upload/dropzonesingle.ngsummary.d.ts +1 -1
  229. package/controls/upload/uploadmultiple.d.ts +53 -53
  230. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  231. package/controls/upload/uploadmultiple.ngfactory.d.ts +3 -3
  232. package/controls/upload/uploadmultiple.ngsummary.d.ts +1 -1
  233. package/controls/upload/uploadsingle.d.ts +30 -30
  234. package/controls/upload/uploadsingle.d.ts.map +1 -1
  235. package/controls/upload/uploadsingle.ngfactory.d.ts +3 -3
  236. package/controls/upload/uploadsingle.ngsummary.d.ts +1 -1
  237. package/controls/validation/validationsummary.d.ts +63 -63
  238. package/controls/validation/validationsummary.ngfactory.d.ts +3 -3
  239. package/controls/validation/validationsummary.ngsummary.d.ts +1 -1
  240. package/controls/wizard/wizard.d.ts +76 -76
  241. package/controls/wizard/wizard.ngfactory.d.ts +3 -3
  242. package/controls/wizard/wizard.ngsummary.d.ts +1 -1
  243. package/controls/wizard/wizarditem.d.ts +28 -28
  244. package/controls/wizard/wizarditem.ngfactory.d.ts +3 -3
  245. package/controls/wizard/wizarditem.ngsummary.d.ts +1 -1
  246. package/enums/ButtonRoleType.d.ts +1 -1
  247. package/enums/ButtonRoleType.ngfactory.d.ts +1 -1
  248. package/enums/ButtonRoleType.ngsummary.d.ts +1 -1
  249. package/enums/ControlHeight.d.ts +17 -17
  250. package/enums/ControlHeight.ngfactory.d.ts +1 -1
  251. package/enums/ControlHeight.ngsummary.d.ts +1 -1
  252. package/enums/IconType.d.ts +7 -7
  253. package/enums/IconType.ngfactory.d.ts +1 -1
  254. package/enums/IconType.ngsummary.d.ts +1 -1
  255. package/esm2020/common/basedatetimecontrol.mjs +84 -84
  256. package/esm2020/common/basedatetimecontrol.ngfactory.mjs +3 -3
  257. package/esm2020/common/basedatetimecontrol.ngsummary.mjs +3 -3
  258. package/esm2020/common/baseinputcontrol.mjs +25 -25
  259. package/esm2020/common/baseinputcontrol.ngfactory.mjs +3 -3
  260. package/esm2020/common/baseinputcontrol.ngsummary.mjs +3 -3
  261. package/esm2020/common/baselistcontrol.mjs +19 -19
  262. package/esm2020/common/baselistcontrol.ngfactory.mjs +3 -3
  263. package/esm2020/common/baselistcontrol.ngsummary.mjs +3 -3
  264. package/esm2020/common/basemodelcontrol.mjs +143 -143
  265. package/esm2020/common/basemodelcontrol.ngfactory.mjs +3 -3
  266. package/esm2020/common/basemodelcontrol.ngsummary.mjs +3 -3
  267. package/esm2020/common/baseselectcontrol.mjs +9 -9
  268. package/esm2020/common/baseselectcontrol.ngfactory.mjs +3 -3
  269. package/esm2020/common/baseselectcontrol.ngsummary.mjs +3 -3
  270. package/esm2020/common/baseuploadcontrol.mjs +140 -140
  271. package/esm2020/common/baseuploadcontrol.ngfactory.mjs +3 -3
  272. package/esm2020/common/baseuploadcontrol.ngsummary.mjs +3 -3
  273. package/esm2020/components/browser/browser.mjs +141 -141
  274. package/esm2020/components/browser/browser.ngfactory.mjs +3 -3
  275. package/esm2020/components/browser/browser.ngsummary.mjs +3 -3
  276. package/esm2020/components/browser/models/browserfile.mjs +3 -3
  277. package/esm2020/components/browser/models/browserfile.ngfactory.mjs +3 -3
  278. package/esm2020/components/browser/models/browserfile.ngsummary.mjs +3 -3
  279. package/esm2020/components/browser/models/browserfiledeleterequest.mjs +8 -8
  280. package/esm2020/components/browser/models/browserfiledeleterequest.ngfactory.mjs +3 -3
  281. package/esm2020/components/browser/models/browserfiledeleterequest.ngsummary.mjs +3 -3
  282. package/esm2020/components/browser/models/browserfilerenamerequest.mjs +8 -8
  283. package/esm2020/components/browser/models/browserfilerenamerequest.ngfactory.mjs +3 -3
  284. package/esm2020/components/browser/models/browserfilerenamerequest.ngsummary.mjs +3 -3
  285. package/esm2020/components/browser/models/browserfileresponse.mjs +3 -3
  286. package/esm2020/components/browser/models/browserfileresponse.ngfactory.mjs +3 -3
  287. package/esm2020/components/browser/models/browserfileresponse.ngsummary.mjs +3 -3
  288. package/esm2020/components/browser/models/browserfilesaverequest.mjs +8 -8
  289. package/esm2020/components/browser/models/browserfilesaverequest.ngfactory.mjs +3 -3
  290. package/esm2020/components/browser/models/browserfilesaverequest.ngsummary.mjs +3 -3
  291. package/esm2020/components/browser/models/browsernode.mjs +3 -3
  292. package/esm2020/components/browser/models/browsernode.ngfactory.mjs +3 -3
  293. package/esm2020/components/browser/models/browsernode.ngsummary.mjs +3 -3
  294. package/esm2020/components/browser/models/browsernodedeleterequest.mjs +8 -8
  295. package/esm2020/components/browser/models/browsernodedeleterequest.ngfactory.mjs +3 -3
  296. package/esm2020/components/browser/models/browsernodedeleterequest.ngsummary.mjs +3 -3
  297. package/esm2020/components/browser/models/browsernodenewrequest.mjs +8 -8
  298. package/esm2020/components/browser/models/browsernodenewrequest.ngfactory.mjs +3 -3
  299. package/esm2020/components/browser/models/browsernodenewrequest.ngsummary.mjs +3 -3
  300. package/esm2020/components/browser/models/browsernoderenamerequest.mjs +8 -8
  301. package/esm2020/components/browser/models/browsernoderenamerequest.ngfactory.mjs +3 -3
  302. package/esm2020/components/browser/models/browsernoderenamerequest.ngsummary.mjs +3 -3
  303. package/esm2020/components/browser/models/browsernoderequest.mjs +8 -8
  304. package/esm2020/components/browser/models/browsernoderequest.ngfactory.mjs +3 -3
  305. package/esm2020/components/browser/models/browsernoderequest.ngsummary.mjs +3 -3
  306. package/esm2020/components/browser/models/browsernoderesponse.mjs +3 -3
  307. package/esm2020/components/browser/models/browsernoderesponse.ngfactory.mjs +3 -3
  308. package/esm2020/components/browser/models/browsernoderesponse.ngsummary.mjs +3 -3
  309. package/esm2020/controls/buttons/button.mjs +43 -43
  310. package/esm2020/controls/buttons/button.ngfactory.mjs +3 -3
  311. package/esm2020/controls/buttons/button.ngsummary.mjs +3 -3
  312. package/esm2020/controls/checkbox/checkbox.mjs +15 -15
  313. package/esm2020/controls/checkbox/checkbox.ngfactory.mjs +3 -3
  314. package/esm2020/controls/checkbox/checkbox.ngsummary.mjs +3 -3
  315. package/esm2020/controls/checkbox/radiobutton.mjs +47 -47
  316. package/esm2020/controls/checkbox/radiobutton.ngfactory.mjs +3 -3
  317. package/esm2020/controls/checkbox/radiobutton.ngsummary.mjs +3 -3
  318. package/esm2020/controls/checkbox/radiobuttons.mjs +33 -33
  319. package/esm2020/controls/checkbox/radiobuttons.ngfactory.mjs +3 -3
  320. package/esm2020/controls/checkbox/radiobuttons.ngsummary.mjs +3 -3
  321. package/esm2020/controls/confirm/confirm.button.mjs +17 -17
  322. package/esm2020/controls/confirm/confirm.button.ngfactory.mjs +3 -3
  323. package/esm2020/controls/confirm/confirm.button.ngsummary.mjs +3 -3
  324. package/esm2020/controls/confirm/confirm.mjs +29 -29
  325. package/esm2020/controls/confirm/confirm.ngfactory.mjs +3 -3
  326. package/esm2020/controls/confirm/confirm.ngsummary.mjs +3 -3
  327. package/esm2020/controls/confirm/confirm.service.mjs +33 -33
  328. package/esm2020/controls/confirm/confirm.service.ngfactory.mjs +3 -3
  329. package/esm2020/controls/confirm/confirm.service.ngsummary.mjs +3 -3
  330. package/esm2020/controls/contextmenu/contextmenu.interface.mjs +3 -3
  331. package/esm2020/controls/contextmenu/contextmenu.interface.ngfactory.mjs +3 -3
  332. package/esm2020/controls/contextmenu/contextmenu.interface.ngsummary.mjs +3 -3
  333. package/esm2020/controls/contextmenu/contextmenu.mjs +58 -58
  334. package/esm2020/controls/contextmenu/contextmenu.ngfactory.mjs +3 -3
  335. package/esm2020/controls/contextmenu/contextmenu.ngsummary.mjs +3 -3
  336. package/esm2020/controls/contextmenu/contextmenuanchor.mjs +8 -8
  337. package/esm2020/controls/contextmenu/contextmenuanchor.ngfactory.mjs +3 -3
  338. package/esm2020/controls/contextmenu/contextmenuanchor.ngsummary.mjs +3 -3
  339. package/esm2020/controls/contextmenu/contextmenucontainer.mjs +8 -8
  340. package/esm2020/controls/contextmenu/contextmenucontainer.ngfactory.mjs +3 -3
  341. package/esm2020/controls/contextmenu/contextmenucontainer.ngsummary.mjs +3 -3
  342. package/esm2020/controls/contextmenu/contextmenuitem.mjs +8 -8
  343. package/esm2020/controls/contextmenu/contextmenuitem.ngfactory.mjs +3 -3
  344. package/esm2020/controls/contextmenu/contextmenuitem.ngsummary.mjs +3 -3
  345. package/esm2020/controls/contextmenu/contextmenuitembutton.mjs +32 -32
  346. package/esm2020/controls/contextmenu/contextmenuitembutton.ngfactory.mjs +3 -3
  347. package/esm2020/controls/contextmenu/contextmenuitembutton.ngsummary.mjs +3 -3
  348. package/esm2020/controls/datetime/date.mjs +51 -51
  349. package/esm2020/controls/datetime/date.ngfactory.mjs +3 -3
  350. package/esm2020/controls/datetime/date.ngsummary.mjs +3 -3
  351. package/esm2020/controls/datetime/dateselector.mjs +111 -111
  352. package/esm2020/controls/datetime/dateselector.ngfactory.mjs +3 -3
  353. package/esm2020/controls/datetime/dateselector.ngsummary.mjs +3 -3
  354. package/esm2020/controls/datetime/datetime.mjs +53 -53
  355. package/esm2020/controls/datetime/datetime.ngfactory.mjs +3 -3
  356. package/esm2020/controls/datetime/datetime.ngsummary.mjs +3 -3
  357. package/esm2020/controls/datetime/time.mjs +50 -50
  358. package/esm2020/controls/datetime/time.ngfactory.mjs +3 -3
  359. package/esm2020/controls/datetime/time.ngsummary.mjs +3 -3
  360. package/esm2020/controls/dialog/dialog.mjs +48 -48
  361. package/esm2020/controls/dialog/dialog.ngfactory.mjs +3 -3
  362. package/esm2020/controls/dialog/dialog.ngsummary.mjs +3 -3
  363. package/esm2020/controls/form/form.mjs +31 -31
  364. package/esm2020/controls/form/form.ngfactory.mjs +3 -3
  365. package/esm2020/controls/form/form.ngsummary.mjs +3 -3
  366. package/esm2020/controls/grid/grid.mjs +46 -46
  367. package/esm2020/controls/grid/grid.ngfactory.mjs +3 -3
  368. package/esm2020/controls/grid/grid.ngsummary.mjs +3 -3
  369. package/esm2020/controls/grid/gridbutton.mjs +20 -20
  370. package/esm2020/controls/grid/gridbutton.ngfactory.mjs +3 -3
  371. package/esm2020/controls/grid/gridbutton.ngsummary.mjs +3 -3
  372. package/esm2020/controls/grid/gridcolumn.mjs +18 -18
  373. package/esm2020/controls/grid/gridcolumn.ngfactory.mjs +3 -3
  374. package/esm2020/controls/grid/gridcolumn.ngsummary.mjs +3 -3
  375. package/esm2020/controls/grid/gridcolumnaction.mjs +10 -10
  376. package/esm2020/controls/grid/gridcolumnaction.ngfactory.mjs +3 -3
  377. package/esm2020/controls/grid/gridcolumnaction.ngsummary.mjs +3 -3
  378. package/esm2020/controls/grid/gridcolumnbase.mjs +36 -36
  379. package/esm2020/controls/grid/gridcolumnbase.ngfactory.mjs +3 -3
  380. package/esm2020/controls/grid/gridcolumnbase.ngsummary.mjs +3 -3
  381. package/esm2020/controls/grid/gridimage.mjs +5 -5
  382. package/esm2020/controls/grid/gridimage.ngfactory.mjs +3 -3
  383. package/esm2020/controls/grid/gridimage.ngsummary.mjs +3 -3
  384. package/esm2020/controls/grid/model.mjs +47 -47
  385. package/esm2020/controls/grid/model.ngfactory.mjs +3 -3
  386. package/esm2020/controls/grid/model.ngsummary.mjs +3 -3
  387. package/esm2020/controls/grid/paging.mjs +80 -80
  388. package/esm2020/controls/grid/paging.ngfactory.mjs +3 -3
  389. package/esm2020/controls/grid/paging.ngsummary.mjs +3 -3
  390. package/esm2020/controls/input/input.mjs +21 -21
  391. package/esm2020/controls/input/input.ngfactory.mjs +3 -3
  392. package/esm2020/controls/input/input.ngsummary.mjs +3 -3
  393. package/esm2020/controls/input/inputarea.mjs +21 -16
  394. package/esm2020/controls/input/inputarea.ngfactory.mjs +3 -3
  395. package/esm2020/controls/input/inputarea.ngsummary.mjs +3 -3
  396. package/esm2020/controls/input/inputcurrency.mjs +9 -9
  397. package/esm2020/controls/input/inputcurrency.ngfactory.mjs +3 -3
  398. package/esm2020/controls/input/inputcurrency.ngsummary.mjs +3 -3
  399. package/esm2020/controls/input/inputdecimal.mjs +39 -39
  400. package/esm2020/controls/input/inputdecimal.ngfactory.mjs +3 -3
  401. package/esm2020/controls/input/inputdecimal.ngsummary.mjs +3 -3
  402. package/esm2020/controls/input/inputemail.mjs +13 -13
  403. package/esm2020/controls/input/inputemail.ngfactory.mjs +3 -3
  404. package/esm2020/controls/input/inputemail.ngsummary.mjs +3 -3
  405. package/esm2020/controls/input/inputinteger.mjs +38 -38
  406. package/esm2020/controls/input/inputinteger.ngfactory.mjs +3 -3
  407. package/esm2020/controls/input/inputinteger.ngsummary.mjs +3 -3
  408. package/esm2020/controls/input/inputpassword.mjs +15 -15
  409. package/esm2020/controls/input/inputpassword.ngfactory.mjs +3 -3
  410. package/esm2020/controls/input/inputpassword.ngsummary.mjs +3 -3
  411. package/esm2020/controls/input/inputsearch.mjs +18 -18
  412. package/esm2020/controls/input/inputsearch.ngfactory.mjs +3 -3
  413. package/esm2020/controls/input/inputsearch.ngsummary.mjs +3 -3
  414. package/esm2020/controls/layout/formlayout.mjs +31 -31
  415. package/esm2020/controls/layout/formlayout.ngfactory.mjs +3 -3
  416. package/esm2020/controls/layout/formlayout.ngsummary.mjs +3 -3
  417. package/esm2020/controls/list/buildvaluestring.mjs +10 -10
  418. package/esm2020/controls/list/buildvaluestring.ngfactory.mjs +3 -3
  419. package/esm2020/controls/list/buildvaluestring.ngsummary.mjs +3 -3
  420. package/esm2020/controls/list/dropdown.mjs +60 -60
  421. package/esm2020/controls/list/dropdown.ngfactory.mjs +3 -3
  422. package/esm2020/controls/list/dropdown.ngsummary.mjs +3 -3
  423. package/esm2020/controls/list/dropdownoptions.mjs +22 -22
  424. package/esm2020/controls/list/dropdownoptions.ngfactory.mjs +3 -3
  425. package/esm2020/controls/list/dropdownoptions.ngsummary.mjs +3 -3
  426. package/esm2020/controls/list/list.module.mjs +3 -3
  427. package/esm2020/controls/list/list.module.ngfactory.mjs +3 -3
  428. package/esm2020/controls/list/list.module.ngsummary.mjs +3 -3
  429. package/esm2020/controls/list/listbox.mjs +51 -51
  430. package/esm2020/controls/list/listbox.ngfactory.mjs +3 -3
  431. package/esm2020/controls/list/listbox.ngsummary.mjs +3 -3
  432. package/esm2020/controls/multilanguage/multilanguageinput.mjs +58 -58
  433. package/esm2020/controls/multilanguage/multilanguageinput.ngfactory.mjs +3 -3
  434. package/esm2020/controls/multilanguage/multilanguageinput.ngsummary.mjs +3 -3
  435. package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +61 -61
  436. package/esm2020/controls/multilanguage/multilanguageinputarea.ngfactory.mjs +3 -3
  437. package/esm2020/controls/multilanguage/multilanguageinputarea.ngsummary.mjs +3 -3
  438. package/esm2020/controls/static/formcontainer.mjs +25 -25
  439. package/esm2020/controls/static/formcontainer.ngfactory.mjs +3 -3
  440. package/esm2020/controls/static/formcontainer.ngsummary.mjs +3 -3
  441. package/esm2020/controls/static/staticlabel.mjs +13 -13
  442. package/esm2020/controls/static/staticlabel.ngfactory.mjs +3 -3
  443. package/esm2020/controls/static/staticlabel.ngsummary.mjs +3 -3
  444. package/esm2020/controls/tabs/tab.mjs +24 -24
  445. package/esm2020/controls/tabs/tab.ngfactory.mjs +3 -3
  446. package/esm2020/controls/tabs/tab.ngsummary.mjs +3 -3
  447. package/esm2020/controls/tabs/tabitem.mjs +11 -11
  448. package/esm2020/controls/tabs/tabitem.ngfactory.mjs +3 -3
  449. package/esm2020/controls/tabs/tabitem.ngsummary.mjs +3 -3
  450. package/esm2020/controls/tinymce/tinymce.mjs +75 -75
  451. package/esm2020/controls/tinymce/tinymce.ngfactory.mjs +3 -3
  452. package/esm2020/controls/tinymce/tinymce.ngsummary.mjs +3 -3
  453. package/esm2020/controls/tinymce/tinymcedialogsettings.mjs +8 -8
  454. package/esm2020/controls/tinymce/tinymcedialogsettings.ngfactory.mjs +3 -3
  455. package/esm2020/controls/tinymce/tinymcedialogsettings.ngsummary.mjs +3 -3
  456. package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.mjs +5 -5
  457. package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.mjs +5 -3
  458. package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.ngsummary.mjs +3 -3
  459. package/esm2020/controls/tinymce/tinymceinstance.mjs +3 -3
  460. package/esm2020/controls/tinymce/tinymceinstance.ngfactory.mjs +3 -3
  461. package/esm2020/controls/tinymce/tinymceinstance.ngsummary.mjs +3 -3
  462. package/esm2020/controls/tooltip/tooltip.mjs +77 -77
  463. package/esm2020/controls/tooltip/tooltip.ngfactory.mjs +3 -3
  464. package/esm2020/controls/tooltip/tooltip.ngsummary.mjs +3 -3
  465. package/esm2020/controls/treeview/treeview.mjs +99 -99
  466. package/esm2020/controls/treeview/treeview.ngfactory.mjs +3 -3
  467. package/esm2020/controls/treeview/treeview.ngsummary.mjs +3 -3
  468. package/esm2020/controls/upload/dropzonemultiple.mjs +45 -45
  469. package/esm2020/controls/upload/dropzonemultiple.ngfactory.mjs +3 -3
  470. package/esm2020/controls/upload/dropzonemultiple.ngsummary.mjs +3 -3
  471. package/esm2020/controls/upload/dropzonesingle.mjs +31 -28
  472. package/esm2020/controls/upload/dropzonesingle.ngfactory.mjs +3 -3
  473. package/esm2020/controls/upload/dropzonesingle.ngsummary.mjs +3 -3
  474. package/esm2020/controls/upload/uploadmultiple.mjs +34 -34
  475. package/esm2020/controls/upload/uploadmultiple.ngfactory.mjs +3 -3
  476. package/esm2020/controls/upload/uploadmultiple.ngsummary.mjs +3 -3
  477. package/esm2020/controls/upload/uploadsingle.mjs +20 -17
  478. package/esm2020/controls/upload/uploadsingle.ngfactory.mjs +3 -3
  479. package/esm2020/controls/upload/uploadsingle.ngsummary.mjs +3 -3
  480. package/esm2020/controls/validation/validationsummary.mjs +27 -27
  481. package/esm2020/controls/validation/validationsummary.ngfactory.mjs +3 -3
  482. package/esm2020/controls/validation/validationsummary.ngsummary.mjs +3 -3
  483. package/esm2020/controls/wizard/wizard.mjs +37 -37
  484. package/esm2020/controls/wizard/wizard.ngfactory.mjs +3 -3
  485. package/esm2020/controls/wizard/wizard.ngsummary.mjs +3 -3
  486. package/esm2020/controls/wizard/wizarditem.mjs +9 -9
  487. package/esm2020/controls/wizard/wizarditem.ngfactory.mjs +3 -3
  488. package/esm2020/controls/wizard/wizarditem.ngsummary.mjs +3 -3
  489. package/esm2020/enums/ButtonRoleType.mjs +3 -3
  490. package/esm2020/enums/ButtonRoleType.ngfactory.mjs +3 -3
  491. package/esm2020/enums/ButtonRoleType.ngsummary.mjs +3 -3
  492. package/esm2020/enums/ControlHeight.mjs +11 -11
  493. package/esm2020/enums/ControlHeight.ngfactory.mjs +3 -3
  494. package/esm2020/enums/ControlHeight.ngsummary.mjs +3 -3
  495. package/esm2020/enums/IconType.mjs +5 -5
  496. package/esm2020/enums/IconType.ngfactory.mjs +3 -3
  497. package/esm2020/enums/IconType.ngsummary.mjs +3 -3
  498. package/esm2020/interfaces/ISacConfigurationService.mjs +3 -3
  499. package/esm2020/interfaces/ISacConfigurationService.ngfactory.mjs +3 -3
  500. package/esm2020/interfaces/ISacConfigurationService.ngsummary.mjs +3 -3
  501. package/esm2020/interfaces/ISacFileBrowserService.mjs +3 -3
  502. package/esm2020/interfaces/ISacFileBrowserService.ngfactory.mjs +3 -3
  503. package/esm2020/interfaces/ISacFileBrowserService.ngsummary.mjs +3 -3
  504. package/esm2020/interfaces/ISacIconService.mjs +3 -3
  505. package/esm2020/interfaces/ISacIconService.ngfactory.mjs +3 -3
  506. package/esm2020/interfaces/ISacIconService.ngsummary.mjs +3 -3
  507. package/esm2020/interfaces/ISacLabelSizes.mjs +3 -3
  508. package/esm2020/interfaces/ISacLabelSizes.ngfactory.mjs +3 -3
  509. package/esm2020/interfaces/ISacLabelSizes.ngsummary.mjs +3 -3
  510. package/esm2020/interfaces/ISacLanguageService.mjs +3 -3
  511. package/esm2020/interfaces/ISacLanguageService.ngfactory.mjs +3 -3
  512. package/esm2020/interfaces/ISacLanguageService.ngsummary.mjs +3 -3
  513. package/esm2020/interfaces/ISacLocalisationService.mjs +3 -3
  514. package/esm2020/interfaces/ISacLocalisationService.ngfactory.mjs +3 -3
  515. package/esm2020/interfaces/ISacLocalisationService.ngsummary.mjs +3 -3
  516. package/esm2020/interfaces/ISacUploadEventCompleteState.mjs +3 -3
  517. package/esm2020/interfaces/ISacUploadEventCompleteState.ngfactory.mjs +3 -3
  518. package/esm2020/interfaces/ISacUploadEventCompleteState.ngsummary.mjs +3 -3
  519. package/esm2020/interfaces/ISacValidationKeyService.mjs +3 -3
  520. package/esm2020/interfaces/ISacValidationKeyService.ngfactory.mjs +3 -3
  521. package/esm2020/interfaces/ISacValidationKeyService.ngsummary.mjs +3 -3
  522. package/esm2020/interfaces/iabstractcontrollabel.mjs +3 -3
  523. package/esm2020/interfaces/iabstractcontrollabel.ngfactory.mjs +3 -3
  524. package/esm2020/interfaces/iabstractcontrollabel.ngsummary.mjs +3 -3
  525. package/esm2020/interfaces/iconfirmcomponent.mjs +3 -3
  526. package/esm2020/interfaces/iconfirmcomponent.ngfactory.mjs +3 -3
  527. package/esm2020/interfaces/iconfirmcomponent.ngsummary.mjs +3 -3
  528. package/esm2020/interfaces/idatetimecontrol.mjs +3 -3
  529. package/esm2020/interfaces/idatetimecontrol.ngfactory.mjs +3 -3
  530. package/esm2020/interfaces/idatetimecontrol.ngsummary.mjs +3 -3
  531. package/esm2020/interfaces/iuploadcontrol.mjs +3 -3
  532. package/esm2020/interfaces/iuploadcontrol.ngfactory.mjs +3 -3
  533. package/esm2020/interfaces/iuploadcontrol.ngsummary.mjs +3 -3
  534. package/esm2020/interfaces/treeviewaction.interface.mjs +3 -3
  535. package/esm2020/interfaces/treeviewaction.interface.ngfactory.mjs +3 -3
  536. package/esm2020/interfaces/treeviewaction.interface.ngsummary.mjs +3 -3
  537. package/esm2020/models/languagemodel.mjs +7 -7
  538. package/esm2020/models/languagemodel.ngfactory.mjs +3 -3
  539. package/esm2020/models/languagemodel.ngsummary.mjs +3 -3
  540. package/esm2020/public_api.mjs +5 -5
  541. package/esm2020/public_api.ngfactory.mjs +3 -3
  542. package/esm2020/public_api.ngsummary.mjs +3 -3
  543. package/esm2020/services/index.mjs +3 -3
  544. package/esm2020/services/index.ngfactory.mjs +3 -3
  545. package/esm2020/services/index.ngsummary.mjs +3 -3
  546. package/esm2020/services/sac-configuration.service.mjs +35 -35
  547. package/esm2020/services/sac-configuration.service.ngfactory.mjs +3 -3
  548. package/esm2020/services/sac-configuration.service.ngsummary.mjs +3 -3
  549. package/esm2020/services/sac-filebrowser.service.mjs +53 -53
  550. package/esm2020/services/sac-filebrowser.service.ngfactory.mjs +3 -3
  551. package/esm2020/services/sac-filebrowser.service.ngsummary.mjs +3 -3
  552. package/esm2020/services/sac-icon.service.mjs +65 -65
  553. package/esm2020/services/sac-icon.service.ngfactory.mjs +3 -3
  554. package/esm2020/services/sac-icon.service.ngsummary.mjs +3 -3
  555. package/esm2020/services/sac-language.service.mjs +11 -11
  556. package/esm2020/services/sac-language.service.ngfactory.mjs +3 -3
  557. package/esm2020/services/sac-language.service.ngsummary.mjs +3 -3
  558. package/esm2020/services/sac-localisation.service.mjs +36 -35
  559. package/esm2020/services/sac-localisation.service.ngfactory.mjs +3 -3
  560. package/esm2020/services/sac-localisation.service.ngsummary.mjs +3 -3
  561. package/esm2020/services/sac-validationkey.service.mjs +7 -7
  562. package/esm2020/services/sac-validationkey.service.ngfactory.mjs +3 -3
  563. package/esm2020/services/sac-validationkey.service.ngsummary.mjs +3 -3
  564. package/esm2020/simpleangularcontrols-sac-common.mjs +4 -4
  565. package/esm2020/utilities/convertion.mjs +12 -12
  566. package/esm2020/utilities/convertion.ngfactory.mjs +3 -3
  567. package/esm2020/utilities/convertion.ngsummary.mjs +3 -3
  568. package/esm2020/utilities/datatypes.mjs +7 -7
  569. package/esm2020/utilities/datatypes.ngfactory.mjs +3 -3
  570. package/esm2020/utilities/datatypes.ngsummary.mjs +3 -3
  571. package/esm2020/utilities/enums.mjs +11 -11
  572. package/esm2020/utilities/enums.ngfactory.mjs +3 -3
  573. package/esm2020/utilities/enums.ngsummary.mjs +3 -3
  574. package/esm2020/utilities/guid.mjs +8 -8
  575. package/esm2020/utilities/guid.ngfactory.mjs +3 -3
  576. package/esm2020/utilities/guid.ngsummary.mjs +3 -3
  577. package/esm2020/utilities/interpolation.mjs +15 -15
  578. package/esm2020/utilities/interpolation.ngfactory.mjs +3 -3
  579. package/esm2020/utilities/interpolation.ngsummary.mjs +3 -3
  580. package/esm2020/utilities/popuphelper.mjs +79 -79
  581. package/esm2020/utilities/popuphelper.ngfactory.mjs +3 -3
  582. package/esm2020/utilities/popuphelper.ngsummary.mjs +3 -3
  583. package/esm2020/utilities/positioning.mjs +56 -56
  584. package/esm2020/utilities/positioning.ngfactory.mjs +3 -3
  585. package/esm2020/utilities/positioning.ngsummary.mjs +3 -3
  586. package/esm2020/validation/email.validator.mjs +3 -3
  587. package/esm2020/validation/email.validator.ngfactory.mjs +3 -3
  588. package/esm2020/validation/email.validator.ngsummary.mjs +3 -3
  589. package/esm2020/validation/equals.validator.mjs +3 -3
  590. package/esm2020/validation/equals.validator.ngfactory.mjs +3 -3
  591. package/esm2020/validation/equals.validator.ngsummary.mjs +3 -3
  592. package/esm2020/validation/index.mjs +3 -3
  593. package/esm2020/validation/index.ngfactory.mjs +3 -3
  594. package/esm2020/validation/index.ngsummary.mjs +3 -3
  595. package/esm2020/validation/invaliddate.validator.mjs +3 -3
  596. package/esm2020/validation/invaliddate.validator.ngfactory.mjs +3 -3
  597. package/esm2020/validation/invaliddate.validator.ngsummary.mjs +3 -3
  598. package/esm2020/validation/isDateValid.mjs +10 -10
  599. package/esm2020/validation/isDateValid.ngfactory.mjs +3 -3
  600. package/esm2020/validation/isDateValid.ngsummary.mjs +3 -3
  601. package/esm2020/validation/maxdate.validator.mjs +4 -4
  602. package/esm2020/validation/maxdate.validator.ngfactory.mjs +3 -3
  603. package/esm2020/validation/maxdate.validator.ngsummary.mjs +3 -3
  604. package/esm2020/validation/maxtime.validator.mjs +4 -4
  605. package/esm2020/validation/maxtime.validator.ngfactory.mjs +3 -3
  606. package/esm2020/validation/maxtime.validator.ngsummary.mjs +3 -3
  607. package/esm2020/validation/maxvalue.validator.mjs +3 -3
  608. package/esm2020/validation/maxvalue.validator.ngfactory.mjs +3 -3
  609. package/esm2020/validation/maxvalue.validator.ngsummary.mjs +3 -3
  610. package/esm2020/validation/mindate.validator.mjs +4 -4
  611. package/esm2020/validation/mindate.validator.ngfactory.mjs +3 -3
  612. package/esm2020/validation/mindate.validator.ngsummary.mjs +3 -3
  613. package/esm2020/validation/minfiles.validator.mjs +4 -4
  614. package/esm2020/validation/minfiles.validator.ngfactory.mjs +3 -3
  615. package/esm2020/validation/minfiles.validator.ngsummary.mjs +3 -3
  616. package/esm2020/validation/mintextlength.validator.mjs +5 -0
  617. package/esm2020/validation/mintextlength.validator.ngfactory.mjs +3 -0
  618. package/esm2020/validation/mintextlength.validator.ngsummary.mjs +3 -0
  619. package/esm2020/validation/mintime.validator.mjs +4 -4
  620. package/esm2020/validation/mintime.validator.ngfactory.mjs +3 -3
  621. package/esm2020/validation/mintime.validator.ngsummary.mjs +3 -3
  622. package/esm2020/validation/minvalue.validator.mjs +3 -3
  623. package/esm2020/validation/minvalue.validator.ngfactory.mjs +3 -3
  624. package/esm2020/validation/minvalue.validator.ngsummary.mjs +3 -3
  625. package/esm2020/validation/multilanguagerequired.validator.mjs +3 -3
  626. package/esm2020/validation/multilanguagerequired.validator.ngfactory.mjs +3 -3
  627. package/esm2020/validation/multilanguagerequired.validator.ngsummary.mjs +3 -3
  628. package/esm2020/validation/multilanguagerequiredany.validator.mjs +3 -3
  629. package/esm2020/validation/multilanguagerequiredany.validator.ngfactory.mjs +3 -3
  630. package/esm2020/validation/multilanguagerequiredany.validator.ngsummary.mjs +3 -3
  631. package/esm2020/validation/notequals.validator.mjs +3 -3
  632. package/esm2020/validation/notequals.validator.ngfactory.mjs +3 -3
  633. package/esm2020/validation/notequals.validator.ngsummary.mjs +3 -3
  634. package/esm2020/validation/pattern.validator.mjs +3 -3
  635. package/esm2020/validation/pattern.validator.ngfactory.mjs +3 -3
  636. package/esm2020/validation/pattern.validator.ngsummary.mjs +3 -3
  637. package/esm2020/validation/required.validator.mjs +3 -3
  638. package/esm2020/validation/required.validator.ngfactory.mjs +3 -3
  639. package/esm2020/validation/required.validator.ngsummary.mjs +3 -3
  640. package/esm2020/validation/validation.mjs +128 -123
  641. package/esm2020/validation/validation.ngfactory.mjs +3 -3
  642. package/esm2020/validation/validation.ngsummary.mjs +3 -3
  643. package/esm2020/validation/validationerrorcreator.mjs +3 -3
  644. package/esm2020/validation/validationerrorcreator.ngfactory.mjs +3 -3
  645. package/esm2020/validation/validationerrorcreator.ngsummary.mjs +3 -3
  646. package/esm2020/validation/validationerroritem.mjs +15 -15
  647. package/esm2020/validation/validationerroritem.ngfactory.mjs +3 -3
  648. package/esm2020/validation/validationerroritem.ngsummary.mjs +3 -3
  649. package/fesm2015/simpleangularcontrols-sac-common.mjs +2873 -2854
  650. package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
  651. package/fesm2020/simpleangularcontrols-sac-common.mjs +2873 -2854
  652. package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
  653. package/interfaces/ISacConfigurationService.d.ts +58 -58
  654. package/interfaces/ISacConfigurationService.ngfactory.d.ts +1 -1
  655. package/interfaces/ISacConfigurationService.ngsummary.d.ts +1 -1
  656. package/interfaces/ISacFileBrowserService.d.ts +65 -65
  657. package/interfaces/ISacFileBrowserService.ngfactory.d.ts +1 -1
  658. package/interfaces/ISacFileBrowserService.ngsummary.d.ts +1 -1
  659. package/interfaces/ISacIconService.d.ts +113 -113
  660. package/interfaces/ISacIconService.ngfactory.d.ts +1 -1
  661. package/interfaces/ISacIconService.ngsummary.d.ts +1 -1
  662. package/interfaces/ISacLabelSizes.d.ts +26 -26
  663. package/interfaces/ISacLabelSizes.ngfactory.d.ts +1 -1
  664. package/interfaces/ISacLabelSizes.ngsummary.d.ts +1 -1
  665. package/interfaces/ISacLanguageService.d.ts +12 -12
  666. package/interfaces/ISacLanguageService.ngfactory.d.ts +1 -1
  667. package/interfaces/ISacLanguageService.ngsummary.d.ts +1 -1
  668. package/interfaces/ISacLocalisationService.d.ts +10 -10
  669. package/interfaces/ISacLocalisationService.ngfactory.d.ts +1 -1
  670. package/interfaces/ISacLocalisationService.ngsummary.d.ts +1 -1
  671. package/interfaces/ISacUploadEventCompleteState.d.ts +5 -5
  672. package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts +1 -1
  673. package/interfaces/ISacUploadEventCompleteState.ngsummary.d.ts +1 -1
  674. package/interfaces/ISacValidationKeyService.d.ts +52 -52
  675. package/interfaces/ISacValidationKeyService.d.ts.map +1 -1
  676. package/interfaces/ISacValidationKeyService.ngfactory.d.ts +1 -1
  677. package/interfaces/ISacValidationKeyService.ngsummary.d.ts +1 -1
  678. package/interfaces/iabstractcontrollabel.d.ts +6 -6
  679. package/interfaces/iabstractcontrollabel.ngfactory.d.ts +1 -1
  680. package/interfaces/iabstractcontrollabel.ngsummary.d.ts +1 -1
  681. package/interfaces/iconfirmcomponent.d.ts +18 -18
  682. package/interfaces/iconfirmcomponent.ngfactory.d.ts +1 -1
  683. package/interfaces/iconfirmcomponent.ngsummary.d.ts +1 -1
  684. package/interfaces/idatetimecontrol.d.ts +7 -7
  685. package/interfaces/idatetimecontrol.ngfactory.d.ts +1 -1
  686. package/interfaces/idatetimecontrol.ngsummary.d.ts +1 -1
  687. package/interfaces/iuploadcontrol.d.ts +9 -9
  688. package/interfaces/iuploadcontrol.ngfactory.d.ts +1 -1
  689. package/interfaces/iuploadcontrol.ngsummary.d.ts +1 -1
  690. package/interfaces/treeviewaction.interface.d.ts +4 -4
  691. package/interfaces/treeviewaction.interface.ngfactory.d.ts +1 -1
  692. package/interfaces/treeviewaction.interface.ngsummary.d.ts +1 -1
  693. package/models/languagemodel.d.ts +22 -22
  694. package/models/languagemodel.ngfactory.d.ts +1 -1
  695. package/models/languagemodel.ngsummary.d.ts +1 -1
  696. package/package.json +1 -1
  697. package/public_api.d.ts +86 -86
  698. package/public_api.ngfactory.d.ts +1 -1
  699. package/public_api.ngsummary.d.ts +1 -1
  700. package/services/index.d.ts +6 -6
  701. package/services/index.ngfactory.d.ts +1 -1
  702. package/services/index.ngsummary.d.ts +1 -1
  703. package/services/sac-configuration.service.d.ts +126 -126
  704. package/services/sac-configuration.service.ngfactory.d.ts +4 -4
  705. package/services/sac-configuration.service.ngsummary.d.ts +2 -2
  706. package/services/sac-filebrowser.service.d.ts +145 -145
  707. package/services/sac-filebrowser.service.ngfactory.d.ts +4 -4
  708. package/services/sac-filebrowser.service.ngsummary.d.ts +2 -2
  709. package/services/sac-icon.service.d.ts +237 -237
  710. package/services/sac-icon.service.ngfactory.d.ts +4 -4
  711. package/services/sac-icon.service.ngsummary.d.ts +2 -2
  712. package/services/sac-language.service.d.ts +31 -31
  713. package/services/sac-language.service.ngfactory.d.ts +4 -4
  714. package/services/sac-language.service.ngsummary.d.ts +2 -2
  715. package/services/sac-localisation.service.d.ts +142 -142
  716. package/services/sac-localisation.service.d.ts.map +1 -1
  717. package/services/sac-localisation.service.ngfactory.d.ts +4 -4
  718. package/services/sac-localisation.service.ngsummary.d.ts +2 -2
  719. package/services/sac-validationkey.service.d.ts +58 -58
  720. package/services/sac-validationkey.service.d.ts.map +1 -1
  721. package/services/sac-validationkey.service.ngfactory.d.ts +3 -3
  722. package/services/sac-validationkey.service.ngsummary.d.ts +1 -1
  723. package/simpleangularcontrols-sac-common-13.0.0-rc.14.tgz +0 -0
  724. package/simpleangularcontrols-sac-common.d.ts +5 -5
  725. package/utilities/convertion.d.ts +15 -15
  726. package/utilities/convertion.ngfactory.d.ts +1 -1
  727. package/utilities/convertion.ngsummary.d.ts +1 -1
  728. package/utilities/datatypes.d.ts +6 -6
  729. package/utilities/datatypes.ngfactory.d.ts +1 -1
  730. package/utilities/datatypes.ngsummary.d.ts +1 -1
  731. package/utilities/enums.d.ts +12 -12
  732. package/utilities/enums.ngfactory.d.ts +1 -1
  733. package/utilities/enums.ngsummary.d.ts +1 -1
  734. package/utilities/guid.d.ts +4 -4
  735. package/utilities/guid.ngfactory.d.ts +1 -1
  736. package/utilities/guid.ngsummary.d.ts +1 -1
  737. package/utilities/interpolation.d.ts +21 -21
  738. package/utilities/interpolation.ngfactory.d.ts +1 -1
  739. package/utilities/interpolation.ngsummary.d.ts +1 -1
  740. package/utilities/popuphelper.d.ts +83 -83
  741. package/utilities/popuphelper.ngfactory.d.ts +1 -1
  742. package/utilities/popuphelper.ngsummary.d.ts +1 -1
  743. package/utilities/positioning.d.ts +82 -82
  744. package/utilities/positioning.ngfactory.d.ts +1 -1
  745. package/utilities/positioning.ngsummary.d.ts +1 -1
  746. package/validation/email.validator.d.ts +2 -2
  747. package/validation/email.validator.ngfactory.d.ts +1 -1
  748. package/validation/email.validator.ngsummary.d.ts +1 -1
  749. package/validation/equals.validator.d.ts +2 -2
  750. package/validation/equals.validator.ngfactory.d.ts +1 -1
  751. package/validation/equals.validator.ngsummary.d.ts +1 -1
  752. package/validation/index.d.ts +2 -2
  753. package/validation/index.ngfactory.d.ts +1 -1
  754. package/validation/index.ngsummary.d.ts +1 -1
  755. package/validation/invaliddate.validator.d.ts +2 -2
  756. package/validation/invaliddate.validator.ngfactory.d.ts +1 -1
  757. package/validation/invaliddate.validator.ngsummary.d.ts +1 -1
  758. package/validation/isDateValid.d.ts +5 -5
  759. package/validation/isDateValid.ngfactory.d.ts +1 -1
  760. package/validation/isDateValid.ngsummary.d.ts +1 -1
  761. package/validation/maxdate.validator.d.ts +2 -2
  762. package/validation/maxdate.validator.ngfactory.d.ts +1 -1
  763. package/validation/maxdate.validator.ngsummary.d.ts +1 -1
  764. package/validation/maxtime.validator.d.ts +2 -2
  765. package/validation/maxtime.validator.ngfactory.d.ts +1 -1
  766. package/validation/maxtime.validator.ngsummary.d.ts +1 -1
  767. package/validation/maxvalue.validator.d.ts +2 -2
  768. package/validation/maxvalue.validator.ngfactory.d.ts +1 -1
  769. package/validation/maxvalue.validator.ngsummary.d.ts +1 -1
  770. package/validation/mindate.validator.d.ts +2 -2
  771. package/validation/mindate.validator.ngfactory.d.ts +1 -1
  772. package/validation/mindate.validator.ngsummary.d.ts +1 -1
  773. package/validation/minfiles.validator.d.ts +2 -2
  774. package/validation/minfiles.validator.ngfactory.d.ts +1 -1
  775. package/validation/minfiles.validator.ngsummary.d.ts +1 -1
  776. package/validation/mintextlength.validator.d.ts +3 -0
  777. package/validation/mintextlength.validator.d.ts.map +1 -0
  778. package/validation/mintextlength.validator.ngfactory.d.ts +2 -0
  779. package/validation/mintextlength.validator.ngfactory.d.ts.map +1 -0
  780. package/validation/mintextlength.validator.ngsummary.d.ts +2 -0
  781. package/validation/mintextlength.validator.ngsummary.d.ts.map +1 -0
  782. package/validation/mintime.validator.d.ts +2 -2
  783. package/validation/mintime.validator.ngfactory.d.ts +1 -1
  784. package/validation/mintime.validator.ngsummary.d.ts +1 -1
  785. package/validation/minvalue.validator.d.ts +2 -2
  786. package/validation/minvalue.validator.ngfactory.d.ts +1 -1
  787. package/validation/minvalue.validator.ngsummary.d.ts +1 -1
  788. package/validation/multilanguagerequired.validator.d.ts +3 -3
  789. package/validation/multilanguagerequired.validator.ngfactory.d.ts +1 -1
  790. package/validation/multilanguagerequired.validator.ngsummary.d.ts +1 -1
  791. package/validation/multilanguagerequiredany.validator.d.ts +3 -3
  792. package/validation/multilanguagerequiredany.validator.ngfactory.d.ts +1 -1
  793. package/validation/multilanguagerequiredany.validator.ngsummary.d.ts +1 -1
  794. package/validation/notequals.validator.d.ts +2 -2
  795. package/validation/notequals.validator.ngfactory.d.ts +1 -1
  796. package/validation/notequals.validator.ngsummary.d.ts +1 -1
  797. package/validation/pattern.validator.d.ts +2 -2
  798. package/validation/pattern.validator.ngfactory.d.ts +1 -1
  799. package/validation/pattern.validator.ngsummary.d.ts +1 -1
  800. package/validation/required.validator.d.ts +2 -2
  801. package/validation/required.validator.ngfactory.d.ts +1 -1
  802. package/validation/required.validator.ngsummary.d.ts +1 -1
  803. package/validation/validation.d.ts +157 -157
  804. package/validation/validation.d.ts.map +1 -1
  805. package/validation/validation.ngfactory.d.ts +1 -1
  806. package/validation/validation.ngsummary.d.ts +1 -1
  807. package/validation/validationerrorcreator.d.ts +1 -1
  808. package/validation/validationerrorcreator.ngfactory.d.ts +1 -1
  809. package/validation/validationerrorcreator.ngsummary.d.ts +1 -1
  810. package/validation/validationerroritem.d.ts +33 -33
  811. package/validation/validationerroritem.ngfactory.d.ts +1 -1
  812. package/validation/validationerroritem.ngsummary.d.ts +1 -1
  813. package/esm2020/validation/minlength.validator.mjs +0 -3
  814. package/esm2020/validation/minlength.validator.ngfactory.mjs +0 -3
  815. package/esm2020/validation/minlength.validator.ngsummary.mjs +0 -3
  816. package/simpleangularcontrols-sac-common-13.0.0-rc.12.tgz +0 -0
  817. package/validation/minlength.validator.d.ts +0 -3
  818. package/validation/minlength.validator.d.ts.map +0 -1
  819. package/validation/minlength.validator.ngfactory.d.ts +0 -2
  820. package/validation/minlength.validator.ngfactory.d.ts.map +0 -1
  821. package/validation/minlength.validator.ngsummary.d.ts +0 -2
  822. package/validation/minlength.validator.ngsummary.d.ts.map +0 -1
@@ -1,104 +1,104 @@
1
- function cov_24ddv5o0pk(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\controls\\treeview\\treeview.mjs";var hash="bba2965bd6d4d2cd22a0a91b0b541a6f6c8df4c8";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\controls\\treeview\\treeview.mjs",statementMap:{"0":{start:{line:17,column:8},end:{line:17,column:36}},"1":{start:{line:22,column:8},end:{line:22,column:48}},"2":{start:{line:26,column:8},end:{line:26,column:39}},"3":{start:{line:30,column:8},end:{line:30,column:44}},"4":{start:{line:34,column:8},end:{line:34,column:38}},"5":{start:{line:38,column:8},end:{line:38,column:43}},"6":{start:{line:42,column:8},end:{line:42,column:29}},"7":{start:{line:46,column:8},end:{line:46,column:27}},"8":{start:{line:50,column:8},end:{line:50,column:33}},"9":{start:{line:54,column:8},end:{line:54,column:39}},"10":{start:{line:58,column:8},end:{line:58,column:44}},"11":{start:{line:62,column:8},end:{line:62,column:23}},"12":{start:{line:66,column:8},end:{line:66,column:38}},"13":{start:{line:70,column:8},end:{line:70,column:35}},"14":{start:{line:74,column:8},end:{line:74,column:43}},"15":{start:{line:78,column:8},end:{line:78,column:34}},"16":{start:{line:82,column:8},end:{line:82,column:32}},"17":{start:{line:86,column:8},end:{line:86,column:23}},"18":{start:{line:90,column:8},end:{line:90,column:43}},"19":{start:{line:94,column:8},end:{line:94,column:47}},"20":{start:{line:98,column:8},end:{line:98,column:91}},"21":{start:{line:102,column:8},end:{line:102,column:105}},"22":{start:{line:107,column:8},end:{line:107,column:55}},"23":{start:{line:114,column:8},end:{line:114,column:55}},"24":{start:{line:121,column:8},end:{line:121,column:54}},"25":{start:{line:128,column:8},end:{line:128,column:53}},"26":{start:{line:138,column:8},end:{line:138,column:31}},"27":{start:{line:141,column:8},end:{line:143,column:9}},"28":{start:{line:142,column:12},end:{line:142,column:22}},"29":{start:{line:144,column:23},end:{line:144,column:46}},"30":{start:{line:145,column:8},end:{line:147,column:9}},"31":{start:{line:146,column:12},end:{line:146,column:22}},"32":{start:{line:148,column:8},end:{line:148,column:24}},"33":{start:{line:151,column:8},end:{line:153,column:9}},"34":{start:{line:152,column:12},end:{line:152,column:22}},"35":{start:{line:154,column:8},end:{line:156,column:9}},"36":{start:{line:155,column:12},end:{line:155,column:24}},"37":{start:{line:157,column:20},end:{line:157,column:35}},"38":{start:{line:158,column:8},end:{line:160,column:9}},"39":{start:{line:159,column:12},end:{line:159,column:22}},"40":{start:{line:161,column:8},end:{line:161,column:21}},"41":{start:{line:164,column:8},end:{line:164,column:49}},"42":{start:{line:167,column:8},end:{line:169,column:9}},"43":{start:{line:168,column:12},end:{line:168,column:25}},"44":{start:{line:170,column:20},end:{line:170,column:48}},"45":{start:{line:171,column:8},end:{line:171,column:50}},"46":{start:{line:174,column:8},end:{line:176,column:9}},"47":{start:{line:175,column:12},end:{line:175,column:25}},"48":{start:{line:177,column:20},end:{line:177,column:42}},"49":{start:{line:178,column:8},end:{line:178,column:50}},"50":{start:{line:181,column:8},end:{line:183,column:9}},"51":{start:{line:182,column:12},end:{line:182,column:25}},"52":{start:{line:184,column:20},end:{line:184,column:45}},"53":{start:{line:185,column:8},end:{line:185,column:50}},"54":{start:{line:188,column:8},end:{line:190,column:9}},"55":{start:{line:189,column:12},end:{line:189,column:25}},"56":{start:{line:191,column:20},end:{line:191,column:43}},"57":{start:{line:192,column:8},end:{line:192,column:50}},"58":{start:{line:199,column:8},end:{line:199,column:40}},"59":{start:{line:206,column:8},end:{line:208,column:9}},"60":{start:{line:207,column:12},end:{line:207,column:43}},"61":{start:{line:209,column:8},end:{line:209,column:36}},"62":{start:{line:217,column:8},end:{line:219,column:9}},"63":{start:{line:218,column:12},end:{line:218,column:19}},"64":{start:{line:220,column:8},end:{line:223,column:9}},"65":{start:{line:221,column:12},end:{line:221,column:45}},"66":{start:{line:222,column:12},end:{line:222,column:19}},"67":{start:{line:224,column:8},end:{line:226,column:9}},"68":{start:{line:225,column:12},end:{line:225,column:19}},"69":{start:{line:227,column:8},end:{line:227,column:41}},"70":{start:{line:234,column:8},end:{line:236,column:9}},"71":{start:{line:235,column:12},end:{line:235,column:19}},"72":{start:{line:238,column:8},end:{line:238,column:75}},"73":{start:{line:238,column:40},end:{line:238,column:73}},"74":{start:{line:240,column:8},end:{line:240,column:39}},"75":{start:{line:242,column:24},end:{line:242,column:41}},"76":{start:{line:244,column:8},end:{line:244,column:31}},"77":{start:{line:246,column:8},end:{line:246,column:37}},"78":{start:{line:247,column:8},end:{line:249,column:9}},"79":{start:{line:248,column:12},end:{line:248,column:19}},"80":{start:{line:250,column:17},end:{line:250,column:55}},"81":{start:{line:251,column:8},end:{line:251,column:31}},"82":{start:{line:259,column:20},end:{line:259,column:24}},"83":{start:{line:260,column:8},end:{line:262,column:9}},"84":{start:{line:261,column:12},end:{line:261,column:114}},"85":{start:{line:263,column:8},end:{line:263,column:21}},"86":{start:{line:270,column:8},end:{line:270,column:32}},"87":{start:{line:272,column:8},end:{line:274,column:9}},"88":{start:{line:273,column:12},end:{line:273,column:19}},"89":{start:{line:275,column:8},end:{line:280,column:11}},"90":{start:{line:276,column:27},end:{line:276,column:57}},"91":{start:{line:277,column:12},end:{line:279,column:13}},"92":{start:{line:278,column:16},end:{line:278,column:46}},"93":{start:{line:291,column:8},end:{line:293,column:9}},"94":{start:{line:292,column:12},end:{line:292,column:24}},"95":{start:{line:294,column:8},end:{line:296,column:9}},"96":{start:{line:295,column:12},end:{line:295,column:24}},"97":{start:{line:297,column:25},end:{line:297,column:47}},"98":{start:{line:298,column:8},end:{line:303,column:9}},"99":{start:{line:299,column:27},end:{line:299,column:58}},"100":{start:{line:300,column:12},end:{line:302,column:13}},"101":{start:{line:301,column:16},end:{line:301,column:30}},"102":{start:{line:304,column:8},end:{line:304,column:20}},"103":{start:{line:307,column:8},end:{line:309,column:9}},"104":{start:{line:308,column:12},end:{line:308,column:19}},"105":{start:{line:311,column:8},end:{line:313,column:9}},"106":{start:{line:312,column:12},end:{line:312,column:19}},"107":{start:{line:314,column:20},end:{line:314,column:42}},"108":{start:{line:315,column:8},end:{line:322,column:9}},"109":{start:{line:316,column:12},end:{line:316,column:38}},"110":{start:{line:317,column:12},end:{line:317,column:43}},"111":{start:{line:320,column:12},end:{line:320,column:37}},"112":{start:{line:321,column:12},end:{line:321,column:42}},"113":{start:{line:325,column:8},end:{line:327,column:9}},"114":{start:{line:326,column:12},end:{line:326,column:19}},"115":{start:{line:328,column:8},end:{line:328,column:40}},"116":{start:{line:329,column:8},end:{line:331,column:11}},"117":{start:{line:330,column:12},end:{line:330,column:43}},"118":{start:{line:334,column:0},end:{line:334,column:248}},"119":{start:{line:335,column:0},end:{line:335,column:955}},"120":{start:{line:336,column:0},end:{line:390,column:20}},"121":{start:{line:338,column:42},end:{line:340,column:45}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:16,column:4},end:{line:16,column:5}},loc:{start:{line:16,column:38},end:{line:103,column:5}},line:16},"1":{name:"(anonymous_1)",decl:{start:{line:106,column:4},end:{line:106,column:5}},loc:{start:{line:106,column:21},end:{line:108,column:5}},line:106},"2":{name:"(anonymous_2)",decl:{start:{line:113,column:4},end:{line:113,column:5}},loc:{start:{line:113,column:30},end:{line:115,column:5}},line:113},"3":{name:"(anonymous_3)",decl:{start:{line:120,column:4},end:{line:120,column:5}},loc:{start:{line:120,column:26},end:{line:122,column:5}},line:120},"4":{name:"(anonymous_4)",decl:{start:{line:127,column:4},end:{line:127,column:5}},loc:{start:{line:127,column:25},end:{line:129,column:5}},line:127},"5":{name:"(anonymous_5)",decl:{start:{line:137,column:4},end:{line:137,column:5}},loc:{start:{line:137,column:16},end:{line:139,column:5}},line:137},"6":{name:"(anonymous_6)",decl:{start:{line:140,column:4},end:{line:140,column:5}},loc:{start:{line:140,column:22},end:{line:149,column:5}},line:140},"7":{name:"(anonymous_7)",decl:{start:{line:150,column:4},end:{line:150,column:5}},loc:{start:{line:150,column:36},end:{line:162,column:5}},line:150},"8":{name:"(anonymous_8)",decl:{start:{line:163,column:4},end:{line:163,column:5}},loc:{start:{line:163,column:22},end:{line:165,column:5}},line:163},"9":{name:"(anonymous_9)",decl:{start:{line:166,column:4},end:{line:166,column:5}},loc:{start:{line:166,column:26},end:{line:172,column:5}},line:166},"10":{name:"(anonymous_10)",decl:{start:{line:173,column:4},end:{line:173,column:5}},loc:{start:{line:173,column:26},end:{line:179,column:5}},line:173},"11":{name:"(anonymous_11)",decl:{start:{line:180,column:4},end:{line:180,column:5}},loc:{start:{line:180,column:23},end:{line:186,column:5}},line:180},"12":{name:"(anonymous_12)",decl:{start:{line:187,column:4},end:{line:187,column:5}},loc:{start:{line:187,column:26},end:{line:193,column:5}},line:187},"13":{name:"(anonymous_13)",decl:{start:{line:198,column:4},end:{line:198,column:5}},loc:{start:{line:198,column:28},end:{line:200,column:5}},line:198},"14":{name:"(anonymous_14)",decl:{start:{line:205,column:4},end:{line:205,column:5}},loc:{start:{line:205,column:24},end:{line:210,column:5}},line:205},"15":{name:"(anonymous_15)",decl:{start:{line:216,column:4},end:{line:216,column:5}},loc:{start:{line:216,column:31},end:{line:228,column:5}},line:216},"16":{name:"(anonymous_16)",decl:{start:{line:233,column:4},end:{line:233,column:5}},loc:{start:{line:233,column:27},end:{line:252,column:5}},line:233},"17":{name:"(anonymous_17)",decl:{start:{line:238,column:26},end:{line:238,column:27}},loc:{start:{line:238,column:40},end:{line:238,column:73}},line:238},"18":{name:"(anonymous_18)",decl:{start:{line:258,column:4},end:{line:258,column:5}},loc:{start:{line:258,column:20},end:{line:264,column:5}},line:258},"19":{name:"(anonymous_19)",decl:{start:{line:269,column:4},end:{line:269,column:5}},loc:{start:{line:269,column:22},end:{line:281,column:5}},line:269},"20":{name:"(anonymous_20)",decl:{start:{line:275,column:26},end:{line:275,column:27}},loc:{start:{line:275,column:36},end:{line:280,column:9}},line:275},"21":{name:"(anonymous_21)",decl:{start:{line:290,column:4},end:{line:290,column:5}},loc:{start:{line:290,column:30},end:{line:305,column:5}},line:290},"22":{name:"(anonymous_22)",decl:{start:{line:306,column:4},end:{line:306,column:5}},loc:{start:{line:306,column:30},end:{line:323,column:5}},line:306},"23":{name:"(anonymous_23)",decl:{start:{line:324,column:4},end:{line:324,column:5}},loc:{start:{line:324,column:29},end:{line:332,column:5}},line:324},"24":{name:"(anonymous_24)",decl:{start:{line:329,column:39},end:{line:329,column:40}},loc:{start:{line:329,column:50},end:{line:331,column:9}},line:329},"25":{name:"(anonymous_25)",decl:{start:{line:338,column:28},end:{line:338,column:29}},loc:{start:{line:338,column:40},end:{line:340,column:47}},line:338}},branchMap:{"0":{loc:{start:{line:141,column:8},end:{line:143,column:9}},type:"if",locations:[{start:{line:141,column:8},end:{line:143,column:9}},{start:{line:141,column:8},end:{line:143,column:9}}],line:141},"1":{loc:{start:{line:141,column:12},end:{line:141,column:39}},type:"binary-expr",locations:[{start:{line:141,column:12},end:{line:141,column:17}},{start:{line:141,column:21},end:{line:141,column:39}}],line:141},"2":{loc:{start:{line:145,column:8},end:{line:147,column:9}},type:"if",locations:[{start:{line:145,column:8},end:{line:147,column:9}},{start:{line:145,column:8},end:{line:147,column:9}}],line:145},"3":{loc:{start:{line:151,column:8},end:{line:153,column:9}},type:"if",locations:[{start:{line:151,column:8},end:{line:153,column:9}},{start:{line:151,column:8},end:{line:153,column:9}}],line:151},"4":{loc:{start:{line:154,column:8},end:{line:156,column:9}},type:"if",locations:[{start:{line:154,column:8},end:{line:156,column:9}},{start:{line:154,column:8},end:{line:156,column:9}}],line:154},"5":{loc:{start:{line:158,column:8},end:{line:160,column:9}},type:"if",locations:[{start:{line:158,column:8},end:{line:160,column:9}},{start:{line:158,column:8},end:{line:160,column:9}}],line:158},"6":{loc:{start:{line:167,column:8},end:{line:169,column:9}},type:"if",locations:[{start:{line:167,column:8},end:{line:169,column:9}},{start:{line:167,column:8},end:{line:169,column:9}}],line:167},"7":{loc:{start:{line:167,column:12},end:{line:167,column:44}},type:"binary-expr",locations:[{start:{line:167,column:12},end:{line:167,column:17}},{start:{line:167,column:21},end:{line:167,column:44}}],line:167},"8":{loc:{start:{line:171,column:15},end:{line:171,column:49}},type:"binary-expr",locations:[{start:{line:171,column:15},end:{line:171,column:29}},{start:{line:171,column:33},end:{line:171,column:49}}],line:171},"9":{loc:{start:{line:174,column:8},end:{line:176,column:9}},type:"if",locations:[{start:{line:174,column:8},end:{line:176,column:9}},{start:{line:174,column:8},end:{line:176,column:9}}],line:174},"10":{loc:{start:{line:174,column:12},end:{line:174,column:38}},type:"binary-expr",locations:[{start:{line:174,column:12},end:{line:174,column:17}},{start:{line:174,column:21},end:{line:174,column:38}}],line:174},"11":{loc:{start:{line:178,column:15},end:{line:178,column:49}},type:"binary-expr",locations:[{start:{line:178,column:15},end:{line:178,column:29}},{start:{line:178,column:33},end:{line:178,column:49}}],line:178},"12":{loc:{start:{line:181,column:8},end:{line:183,column:9}},type:"if",locations:[{start:{line:181,column:8},end:{line:183,column:9}},{start:{line:181,column:8},end:{line:183,column:9}}],line:181},"13":{loc:{start:{line:181,column:12},end:{line:181,column:41}},type:"binary-expr",locations:[{start:{line:181,column:12},end:{line:181,column:17}},{start:{line:181,column:21},end:{line:181,column:41}}],line:181},"14":{loc:{start:{line:185,column:15},end:{line:185,column:49}},type:"binary-expr",locations:[{start:{line:185,column:15},end:{line:185,column:29}},{start:{line:185,column:33},end:{line:185,column:49}}],line:185},"15":{loc:{start:{line:188,column:8},end:{line:190,column:9}},type:"if",locations:[{start:{line:188,column:8},end:{line:190,column:9}},{start:{line:188,column:8},end:{line:190,column:9}}],line:188},"16":{loc:{start:{line:188,column:12},end:{line:188,column:39}},type:"binary-expr",locations:[{start:{line:188,column:12},end:{line:188,column:17}},{start:{line:188,column:21},end:{line:188,column:39}}],line:188},"17":{loc:{start:{line:192,column:15},end:{line:192,column:49}},type:"binary-expr",locations:[{start:{line:192,column:15},end:{line:192,column:29}},{start:{line:192,column:33},end:{line:192,column:49}}],line:192},"18":{loc:{start:{line:206,column:8},end:{line:208,column:9}},type:"if",locations:[{start:{line:206,column:8},end:{line:208,column:9}},{start:{line:206,column:8},end:{line:208,column:9}}],line:206},"19":{loc:{start:{line:206,column:12},end:{line:206,column:68}},type:"binary-expr",locations:[{start:{line:206,column:12},end:{line:206,column:38}},{start:{line:206,column:42},end:{line:206,column:68}}],line:206},"20":{loc:{start:{line:217,column:8},end:{line:219,column:9}},type:"if",locations:[{start:{line:217,column:8},end:{line:219,column:9}},{start:{line:217,column:8},end:{line:219,column:9}}],line:217},"21":{loc:{start:{line:217,column:12},end:{line:217,column:41}},type:"binary-expr",locations:[{start:{line:217,column:12},end:{line:217,column:17}},{start:{line:217,column:21},end:{line:217,column:41}}],line:217},"22":{loc:{start:{line:220,column:8},end:{line:223,column:9}},type:"if",locations:[{start:{line:220,column:8},end:{line:223,column:9}},{start:{line:220,column:8},end:{line:223,column:9}}],line:220},"23":{loc:{start:{line:224,column:8},end:{line:226,column:9}},type:"if",locations:[{start:{line:224,column:8},end:{line:226,column:9}},{start:{line:224,column:8},end:{line:226,column:9}}],line:224},"24":{loc:{start:{line:234,column:8},end:{line:236,column:9}},type:"if",locations:[{start:{line:234,column:8},end:{line:236,column:9}},{start:{line:234,column:8},end:{line:236,column:9}}],line:234},"25":{loc:{start:{line:234,column:12},end:{line:234,column:39}},type:"binary-expr",locations:[{start:{line:234,column:12},end:{line:234,column:17}},{start:{line:234,column:21},end:{line:234,column:39}}],line:234},"26":{loc:{start:{line:247,column:8},end:{line:249,column:9}},type:"if",locations:[{start:{line:247,column:8},end:{line:249,column:9}},{start:{line:247,column:8},end:{line:249,column:9}}],line:247},"27":{loc:{start:{line:260,column:8},end:{line:262,column:9}},type:"if",locations:[{start:{line:260,column:8},end:{line:262,column:9}},{start:{line:260,column:8},end:{line:262,column:9}}],line:260},"28":{loc:{start:{line:272,column:8},end:{line:274,column:9}},type:"if",locations:[{start:{line:272,column:8},end:{line:274,column:9}},{start:{line:272,column:8},end:{line:274,column:9}}],line:272},"29":{loc:{start:{line:277,column:12},end:{line:279,column:13}},type:"if",locations:[{start:{line:277,column:12},end:{line:279,column:13}},{start:{line:277,column:12},end:{line:279,column:13}}],line:277},"30":{loc:{start:{line:291,column:8},end:{line:293,column:9}},type:"if",locations:[{start:{line:291,column:8},end:{line:293,column:9}},{start:{line:291,column:8},end:{line:293,column:9}}],line:291},"31":{loc:{start:{line:291,column:12},end:{line:291,column:33}},type:"binary-expr",locations:[{start:{line:291,column:12},end:{line:291,column:24}},{start:{line:291,column:28},end:{line:291,column:33}}],line:291},"32":{loc:{start:{line:294,column:8},end:{line:296,column:9}},type:"if",locations:[{start:{line:294,column:8},end:{line:296,column:9}},{start:{line:294,column:8},end:{line:296,column:9}}],line:294},"33":{loc:{start:{line:300,column:12},end:{line:302,column:13}},type:"if",locations:[{start:{line:300,column:12},end:{line:302,column:13}},{start:{line:300,column:12},end:{line:302,column:13}}],line:300},"34":{loc:{start:{line:307,column:8},end:{line:309,column:9}},type:"if",locations:[{start:{line:307,column:8},end:{line:309,column:9}},{start:{line:307,column:8},end:{line:309,column:9}}],line:307},"35":{loc:{start:{line:307,column:12},end:{line:307,column:38}},type:"binary-expr",locations:[{start:{line:307,column:12},end:{line:307,column:17}},{start:{line:307,column:21},end:{line:307,column:38}}],line:307},"36":{loc:{start:{line:311,column:8},end:{line:313,column:9}},type:"if",locations:[{start:{line:311,column:8},end:{line:313,column:9}},{start:{line:311,column:8},end:{line:313,column:9}}],line:311},"37":{loc:{start:{line:311,column:12},end:{line:311,column:108}},type:"binary-expr",locations:[{start:{line:311,column:12},end:{line:311,column:35}},{start:{line:311,column:39},end:{line:311,column:108}}],line:311},"38":{loc:{start:{line:311,column:41},end:{line:311,column:107}},type:"binary-expr",locations:[{start:{line:311,column:41},end:{line:311,column:71}},{start:{line:311,column:75},end:{line:311,column:107}}],line:311},"39":{loc:{start:{line:315,column:8},end:{line:322,column:9}},type:"if",locations:[{start:{line:315,column:8},end:{line:322,column:9}},{start:{line:315,column:8},end:{line:322,column:9}}],line:315},"40":{loc:{start:{line:315,column:12},end:{line:315,column:46}},type:"binary-expr",locations:[{start:{line:315,column:12},end:{line:315,column:26}},{start:{line:315,column:30},end:{line:315,column:46}}],line:315},"41":{loc:{start:{line:325,column:8},end:{line:327,column:9}},type:"if",locations:[{start:{line:325,column:8},end:{line:327,column:9}},{start:{line:325,column:8},end:{line:327,column:9}}],line:325},"42":{loc:{start:{line:325,column:12},end:{line:325,column:39}},type:"binary-expr",locations:[{start:{line:325,column:12},end:{line:325,column:17}},{start:{line:325,column:21},end:{line:325,column:39}}],line:325}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0]},inputSourceMap:{version:3,file:"treeview.js",sourceRoot:"",sources:["../../../../../projects/sac-common/src/controls/treeview/treeview.ts"],names:[],mappings:"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",sourcesContent:["import { SacBaseModelControl } from '../../common/basemodelcontrol';\r\nimport { TreeviewAction } from '../../interfaces/treeviewaction.interface';\r\nimport { Validation } from '../../validation';\r\nimport { SacFormLayoutCommon } from '../layout/formlayout';\r\nimport { Directive, EventEmitter, Host, Injector, Input, Output, TemplateRef } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\n\r\n/**\r\n * Basis Komponente f\xFCr SacTreeView\r\n */\r\n@Directive()\r\nexport class SacTreeviewCommon extends SacBaseModelControl<any> {\r\n // #region Properties\r\n\r\n /**\r\n * Event when Action is clicked on Node. An object of the type 'TreeviewAction' is returned. In the default case, 'action' in this object is always the value 'default'. The value can be changed via the 'templateaction'.\r\n */\r\n @Output()\r\n public actionclicked: EventEmitter<TreeviewAction> = new EventEmitter<TreeviewAction>();\r\n\r\n /**\r\n * Property on the data object that contains the children of the structure element. Must be an array of objects. The default value is 'children'\r\n */\r\n @Input()\r\n public attrchildren = 'children';\r\n\r\n /**\r\n * Defines the property on the 'data' object with which the actions for a node can be deactivated. A 'disabled' property is used by default.\r\n */\r\n @Input() public attrdisableaction = 'disabled';\r\n\r\n /**\r\n * Property on the 'data' object that stores the expanded state. Property must be of type boolean. Default is 'expanded'\r\n */\r\n @Input()\r\n public attrexanded = 'expanded';\r\n\r\n /**\r\n * Property for saving the HoverState on the field. If the property is not present on the node, it is automatically created and removed again. The value can usually be left at the default value unless there is a conflict with a property on the node that is required for other purposes.\r\n */\r\n @Input()\r\n public attrhoverstate = 'hoverstate';\r\n\r\n /**\r\n * Property on 'data' object, which contains the icon for the node. By default, the property is not set, which hides the icon in the node.\r\n */\r\n @Input()\r\n public attricon: string | null = null;\r\n\r\n /**\r\n * property on the 'data' object contains an ID of the node. The default is 'id'. If the property is set to NULL, the selectedId event is no longer triggered.\r\n */\r\n @Input()\r\n public attrid: string | null = 'id';\r\n\r\n /**\r\n * Property on 'data' object, which contains the label for the node. Default is 'label'\r\n */\r\n @Input()\r\n public attrlabel = 'label';\r\n\r\n /**\r\n * Property on 'data' object, which defines whether the node is selected or not. It should be ensured that only 1 node has the value for Selected set to true. Default is 'selected'.\r\n */\r\n @Input()\r\n public attrselected = 'selected';\r\n\r\n /**\r\n * Event when a node is collapsed. Returns the node element as a parameter\r\n */\r\n @Output()\r\n public collabsed: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /**\r\n * The property contains an array of nodes. The data must already map the tree via child properties.\r\n */\r\n @Input()\r\n public data: any[] = [];\r\n\r\n /**\r\n * Activates the 'expand' and 'collabse' event even if a node has no children. This is helpful if node elements are to be reloaded at runtime.\r\n */\r\n @Input()\r\n public enableasynchload: boolean | string = false;\r\n\r\n /**\r\n * Activates Ellipsis on the node labels\r\n */\r\n @Input()\r\n public enableellipsis = true;\r\n\r\n /**\r\n * Event when a node is expanded. Returns the node element as a parameter\r\n */\r\n @Output()\r\n public expanded: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /**\r\n * Defines whether an icon for the expanded/collapsed status should be displayed.\r\n */\r\n @Input()\r\n public expandedstate: boolean | string = true;\r\n\r\n /**\r\n * A node must be selected\r\n */\r\n @Input()\r\n public isrequired: boolean = false;\r\n\r\n /**\r\n * Name of the TreeView control\r\n */\r\n @Input()\r\n public name: string = '';\r\n\r\n /**\r\n * Event when a node is selected. Returns the id attribute as a parameter. The event is not triggered if 'attrid' is not set.\r\n */\r\n @Output()\r\n public selected: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /**\r\n * Event when a node is selected. Returns the node element as a parameter.\r\n */\r\n @Output()\r\n public selectednode: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /**\r\n * Defines that the action template is displayed independently of the selected state. If the value is 'true', the action template is displayed for every element.\r\n */\r\n @Input()\r\n public showactionalways;\r\n\r\n /**\r\n * Custom template for actions per node. Template parameters are: 'node'\r\n */\r\n @Input()\r\n public templateaction: TemplateRef<any>;\r\n\r\n /**\r\n * Custom template for icon per node. Template parameters are: 'node'\r\n */\r\n @Input()\r\n public templateicon: TemplateRef<any>;\r\n\r\n /**\r\n * Custom template for the label area per node. Template parameters are: 'node' and 'label'\r\n */\r\n @Input()\r\n public templatelabel: TemplateRef<any>;\r\n\r\n /**\r\n * Resource Key f\xFCr Validation Message Required bei Control\r\n */\r\n @Input() public validationmessagerequired: string = this.validationKeyService.ValidationErrorRequired;\r\n\r\n /**\r\n * Resource Key f\xFCr Validation Message Required in Validation Summary\r\n */\r\n @Input()\r\n public validationmessagesummaryrequired: string = this.validationKeyService.ValidationErrorSummaryRequired;\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Constructor\r\n * @param injector Service Injector\r\n */\r\n constructor(@Host() formlayout: SacFormLayoutCommon, injector: Injector) {\r\n super(formlayout, injector);\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n public get iconAction(): string {\r\n return this.iconService.TreeviewNodeActionIcon;\r\n }\r\n\r\n /**\r\n * CSS icon for folders in tree there are collabsed\r\n * @returns css class with icon\r\n */\r\n public get iconFolderCollabsed(): string {\r\n return this.iconService.TreeviewNodeClosedIcon;\r\n }\r\n\r\n /**\r\n * CSS icon class for folders without subfolders\r\n * @returns css class with icon\r\n */\r\n public get iconFolderEmpty(): string {\r\n return this.iconService.TreeviewNodeEmptyIcon;\r\n }\r\n\r\n /**\r\n * CSS icon for folders in tree there are expanded\r\n * @returns css class with icon\r\n */\r\n public get iconFolderOpen(): string {\r\n return this.iconService.TreeviewNodeOpenIcon;\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Creates an array of a certain size. Is required for a For in the UI, as Angular does not support counting loops\r\n * @param size Size of the array\r\n * @returns Array\r\n */\r\n public count(size: number): Array<void> {\r\n return new Array(size);\r\n }\r\n\r\n public getChildren(node: any): any[] {\r\n if (!node || !this.attrchildren) {\r\n return [];\r\n }\r\n\r\n let children = node[this.attrchildren];\r\n\r\n if (!Array.isArray(children)) {\r\n return [];\r\n }\r\n\r\n return children;\r\n }\r\n\r\n public getStringField(node: any, fieldname: string): any {\r\n if (!node) {\r\n return '';\r\n }\r\n\r\n if (!fieldname) {\r\n return node;\r\n }\r\n\r\n let value = node[fieldname];\r\n\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n return value;\r\n }\r\n\r\n public hasChildren(node: any): boolean {\r\n return this.getChildren(node).length > 0;\r\n }\r\n\r\n public isDisabledState(node: any): boolean {\r\n if (!node || !this.attrdisableaction) {\r\n return false;\r\n }\r\n\r\n let value = node[this.attrdisableaction];\r\n return value === true || value === 'true';\r\n }\r\n\r\n public isExpandedState(node: any): boolean {\r\n if (!node || !this.attrexanded) {\r\n return false;\r\n }\r\n\r\n let value = node[this.attrexanded];\r\n return value === true || value === 'true';\r\n }\r\n\r\n public isHoverState(node: any): boolean {\r\n if (!node || !this.attrhoverstate) {\r\n return false;\r\n }\r\n\r\n let value = node[this.attrhoverstate];\r\n return value === true || value === 'true';\r\n }\r\n\r\n public isSelectedState(node: any): boolean {\r\n if (!node || !this.attrselected) {\r\n return false;\r\n }\r\n\r\n let value = node[this.attrselected];\r\n return value === true || value === 'true';\r\n }\r\n\r\n /**\r\n * Method is called by clicking an action\r\n * @param action action and node\r\n */\r\n public onActionClicked(action: TreeviewAction) {\r\n this.actionclicked.emit(action);\r\n }\r\n\r\n /**\r\n * Method is called when Node in Tree is clicked\r\n * @param node Selected Node\r\n */\r\n public onNodeClicked(node: any): void {\r\n if (this.isDisabledState(node) || this.isSelectedState(node)) {\r\n this.invertExpandedState(node);\r\n }\r\n\r\n this.setSelectedState(node);\r\n }\r\n\r\n /**\r\n * Sets the hover state on a node\r\n * @param node Node on which the status is set\r\n * @param state Activate or deactivate HoverState\r\n */\r\n public setHoverState(node: any, state: boolean) {\r\n if (!node || !this.attrhoverstate) {\r\n return;\r\n }\r\n\r\n if (state) {\r\n node[this.attrhoverstate] = true;\r\n return;\r\n }\r\n\r\n if (!node.hasOwnProperty(this.attrhoverstate)) {\r\n return;\r\n }\r\n\r\n delete node[this.attrhoverstate];\r\n }\r\n\r\n /**\r\n * Sets the selected state on a node\r\n * @param node Node which is marked as Selected\r\n */\r\n public setSelectedState(node: any): void {\r\n if (!node || !this.attrselected) {\r\n return;\r\n }\r\n\r\n // reset selected state of any node\r\n this.data.forEach((rootNode) => this.resetSelectedState(rootNode));\r\n\r\n // set selected node as selected\r\n node[this.attrselected] = true;\r\n\r\n // Extract ID from Node\r\n const idValue = node[this.attrid];\r\n\r\n // Update ngModel\r\n this.setValue(idValue);\r\n\r\n // Raise Selected Events\r\n this.selectednode.emit(node);\r\n\r\n if (!this.attrid) {\r\n return;\r\n }\r\n\r\n let id = this.getStringField(node, this.attrid);\r\n this.selected.emit(id);\r\n }\r\n\r\n /**\r\n * Validates the model state of the control\r\n * @param c Control instance\r\n * @returns Returns a validation error, if present. Otherwise, as Result is NULL\r\n */\r\n public validateData(c: AbstractControl): ValidationErrors | null {\r\n let error: ValidationErrors | null = null;\r\n\r\n if (this.isrequired) {\r\n error = Validation.required(this.validationmessagerequired, this.validationmessagesummaryrequired)(c);\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * Saves the data from the model binding\r\n * @param value Id of the selected node\r\n */\r\n public writeValue(value: any): void {\r\n super.writeValue(value);\r\n\r\n // Do not preselct item when tree is empty\r\n if (!this.data) {\r\n return;\r\n }\r\n\r\n this.data.forEach((root) => {\r\n const result = this.findNodeById(root, value);\r\n\r\n if (result !== null) {\r\n this.setSelectedState(result);\r\n }\r\n });\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Private Methods\r\n\r\n /**\r\n * Searches for a node based on the value in the ID attribute\r\n * @param node Node\r\n * @param value Value of the Id attribute\r\n * @returns Returns the node if it is found. If not, NULL is returned.\r\n */\r\n private findNodeById(node: any, value: any): any {\r\n if (!this.attrid || !node) {\r\n return null;\r\n }\r\n\r\n if (node[this.attrid] === value) {\r\n return node;\r\n }\r\n\r\n const children = this.getChildren(node);\r\n for (let child of children) {\r\n const result = this.findNodeById(child, value);\r\n if (result !== null) {\r\n return result;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private invertExpandedState(node: any) {\r\n if (!node || !this.attrexanded) {\r\n return;\r\n }\r\n\r\n // Items with no children cannot be collabsed\r\n if (!this.hasChildren(node) && !(this.enableasynchload === true || this.enableasynchload === 'true')) {\r\n return;\r\n }\r\n\r\n let value = node[this.attrexanded];\r\n\r\n if (value === true || value === 'true') {\r\n this.collabsed.emit(node);\r\n node[this.attrexanded] = false;\r\n } else {\r\n this.expanded.emit(node);\r\n node[this.attrexanded] = true;\r\n }\r\n }\r\n\r\n private resetSelectedState(node: any) {\r\n if (!node || !this.attrselected) {\r\n return;\r\n }\r\n\r\n node[this.attrselected] = false;\r\n\r\n this.getChildren(node).forEach((child) => {\r\n this.resetSelectedState(child);\r\n });\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"bba2965bd6d4d2cd22a0a91b0b541a6f6c8df4c8"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
- cov_24ddv5o0pk=function(){return actualCoverage;};}return actualCoverage;}cov_24ddv5o0pk();import{SacBaseModelControl}from'../../common/basemodelcontrol';import{Validation}from'../../validation';import{Directive,EventEmitter,Host,Input,Output}from'@angular/core';import*as i0 from"@angular/core";import*as i1 from"../layout/formlayout";/**
3
- * Basis Komponente für SacTreeView
1
+ function cov_2ox2r433ne(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/controls/treeview/treeview.mjs";var hash="2e9b56a9285c2d89112eb89a20004189dab14b93";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/controls/treeview/treeview.mjs",statementMap:{"0":{start:{line:17,column:8},end:{line:17,column:36}},"1":{start:{line:22,column:8},end:{line:22,column:48}},"2":{start:{line:26,column:8},end:{line:26,column:39}},"3":{start:{line:30,column:8},end:{line:30,column:44}},"4":{start:{line:34,column:8},end:{line:34,column:38}},"5":{start:{line:38,column:8},end:{line:38,column:43}},"6":{start:{line:42,column:8},end:{line:42,column:29}},"7":{start:{line:46,column:8},end:{line:46,column:27}},"8":{start:{line:50,column:8},end:{line:50,column:33}},"9":{start:{line:54,column:8},end:{line:54,column:39}},"10":{start:{line:58,column:8},end:{line:58,column:44}},"11":{start:{line:62,column:8},end:{line:62,column:23}},"12":{start:{line:66,column:8},end:{line:66,column:38}},"13":{start:{line:70,column:8},end:{line:70,column:35}},"14":{start:{line:74,column:8},end:{line:74,column:43}},"15":{start:{line:78,column:8},end:{line:78,column:34}},"16":{start:{line:82,column:8},end:{line:82,column:32}},"17":{start:{line:86,column:8},end:{line:86,column:23}},"18":{start:{line:90,column:8},end:{line:90,column:43}},"19":{start:{line:94,column:8},end:{line:94,column:47}},"20":{start:{line:98,column:8},end:{line:98,column:91}},"21":{start:{line:102,column:8},end:{line:102,column:105}},"22":{start:{line:107,column:8},end:{line:107,column:55}},"23":{start:{line:114,column:8},end:{line:114,column:55}},"24":{start:{line:121,column:8},end:{line:121,column:54}},"25":{start:{line:128,column:8},end:{line:128,column:53}},"26":{start:{line:138,column:8},end:{line:138,column:31}},"27":{start:{line:141,column:8},end:{line:143,column:9}},"28":{start:{line:142,column:12},end:{line:142,column:22}},"29":{start:{line:144,column:23},end:{line:144,column:46}},"30":{start:{line:145,column:8},end:{line:147,column:9}},"31":{start:{line:146,column:12},end:{line:146,column:22}},"32":{start:{line:148,column:8},end:{line:148,column:24}},"33":{start:{line:151,column:8},end:{line:153,column:9}},"34":{start:{line:152,column:12},end:{line:152,column:22}},"35":{start:{line:154,column:8},end:{line:156,column:9}},"36":{start:{line:155,column:12},end:{line:155,column:24}},"37":{start:{line:157,column:20},end:{line:157,column:35}},"38":{start:{line:158,column:8},end:{line:160,column:9}},"39":{start:{line:159,column:12},end:{line:159,column:22}},"40":{start:{line:161,column:8},end:{line:161,column:21}},"41":{start:{line:164,column:8},end:{line:164,column:49}},"42":{start:{line:167,column:8},end:{line:169,column:9}},"43":{start:{line:168,column:12},end:{line:168,column:25}},"44":{start:{line:170,column:20},end:{line:170,column:48}},"45":{start:{line:171,column:8},end:{line:171,column:50}},"46":{start:{line:174,column:8},end:{line:176,column:9}},"47":{start:{line:175,column:12},end:{line:175,column:25}},"48":{start:{line:177,column:20},end:{line:177,column:42}},"49":{start:{line:178,column:8},end:{line:178,column:50}},"50":{start:{line:181,column:8},end:{line:183,column:9}},"51":{start:{line:182,column:12},end:{line:182,column:25}},"52":{start:{line:184,column:20},end:{line:184,column:45}},"53":{start:{line:185,column:8},end:{line:185,column:50}},"54":{start:{line:188,column:8},end:{line:190,column:9}},"55":{start:{line:189,column:12},end:{line:189,column:25}},"56":{start:{line:191,column:20},end:{line:191,column:43}},"57":{start:{line:192,column:8},end:{line:192,column:50}},"58":{start:{line:199,column:8},end:{line:199,column:40}},"59":{start:{line:206,column:8},end:{line:208,column:9}},"60":{start:{line:207,column:12},end:{line:207,column:43}},"61":{start:{line:209,column:8},end:{line:209,column:36}},"62":{start:{line:217,column:8},end:{line:219,column:9}},"63":{start:{line:218,column:12},end:{line:218,column:19}},"64":{start:{line:220,column:8},end:{line:223,column:9}},"65":{start:{line:221,column:12},end:{line:221,column:45}},"66":{start:{line:222,column:12},end:{line:222,column:19}},"67":{start:{line:224,column:8},end:{line:226,column:9}},"68":{start:{line:225,column:12},end:{line:225,column:19}},"69":{start:{line:227,column:8},end:{line:227,column:41}},"70":{start:{line:234,column:8},end:{line:236,column:9}},"71":{start:{line:235,column:12},end:{line:235,column:19}},"72":{start:{line:238,column:8},end:{line:238,column:75}},"73":{start:{line:238,column:40},end:{line:238,column:73}},"74":{start:{line:240,column:8},end:{line:240,column:39}},"75":{start:{line:242,column:24},end:{line:242,column:41}},"76":{start:{line:244,column:8},end:{line:244,column:31}},"77":{start:{line:246,column:8},end:{line:246,column:37}},"78":{start:{line:247,column:8},end:{line:249,column:9}},"79":{start:{line:248,column:12},end:{line:248,column:19}},"80":{start:{line:250,column:17},end:{line:250,column:55}},"81":{start:{line:251,column:8},end:{line:251,column:31}},"82":{start:{line:259,column:20},end:{line:259,column:24}},"83":{start:{line:260,column:8},end:{line:262,column:9}},"84":{start:{line:261,column:12},end:{line:261,column:114}},"85":{start:{line:263,column:8},end:{line:263,column:21}},"86":{start:{line:270,column:8},end:{line:270,column:32}},"87":{start:{line:272,column:8},end:{line:274,column:9}},"88":{start:{line:273,column:12},end:{line:273,column:19}},"89":{start:{line:275,column:8},end:{line:280,column:11}},"90":{start:{line:276,column:27},end:{line:276,column:57}},"91":{start:{line:277,column:12},end:{line:279,column:13}},"92":{start:{line:278,column:16},end:{line:278,column:46}},"93":{start:{line:291,column:8},end:{line:293,column:9}},"94":{start:{line:292,column:12},end:{line:292,column:24}},"95":{start:{line:294,column:8},end:{line:296,column:9}},"96":{start:{line:295,column:12},end:{line:295,column:24}},"97":{start:{line:297,column:25},end:{line:297,column:47}},"98":{start:{line:298,column:8},end:{line:303,column:9}},"99":{start:{line:299,column:27},end:{line:299,column:58}},"100":{start:{line:300,column:12},end:{line:302,column:13}},"101":{start:{line:301,column:16},end:{line:301,column:30}},"102":{start:{line:304,column:8},end:{line:304,column:20}},"103":{start:{line:307,column:8},end:{line:309,column:9}},"104":{start:{line:308,column:12},end:{line:308,column:19}},"105":{start:{line:311,column:8},end:{line:313,column:9}},"106":{start:{line:312,column:12},end:{line:312,column:19}},"107":{start:{line:314,column:20},end:{line:314,column:42}},"108":{start:{line:315,column:8},end:{line:322,column:9}},"109":{start:{line:316,column:12},end:{line:316,column:38}},"110":{start:{line:317,column:12},end:{line:317,column:43}},"111":{start:{line:320,column:12},end:{line:320,column:37}},"112":{start:{line:321,column:12},end:{line:321,column:42}},"113":{start:{line:325,column:8},end:{line:327,column:9}},"114":{start:{line:326,column:12},end:{line:326,column:19}},"115":{start:{line:328,column:8},end:{line:328,column:40}},"116":{start:{line:329,column:8},end:{line:331,column:11}},"117":{start:{line:330,column:12},end:{line:330,column:43}},"118":{start:{line:334,column:0},end:{line:334,column:248}},"119":{start:{line:335,column:0},end:{line:335,column:955}},"120":{start:{line:336,column:0},end:{line:390,column:20}},"121":{start:{line:338,column:42},end:{line:340,column:45}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:16,column:4},end:{line:16,column:5}},loc:{start:{line:16,column:38},end:{line:103,column:5}},line:16},"1":{name:"(anonymous_1)",decl:{start:{line:106,column:4},end:{line:106,column:5}},loc:{start:{line:106,column:21},end:{line:108,column:5}},line:106},"2":{name:"(anonymous_2)",decl:{start:{line:113,column:4},end:{line:113,column:5}},loc:{start:{line:113,column:30},end:{line:115,column:5}},line:113},"3":{name:"(anonymous_3)",decl:{start:{line:120,column:4},end:{line:120,column:5}},loc:{start:{line:120,column:26},end:{line:122,column:5}},line:120},"4":{name:"(anonymous_4)",decl:{start:{line:127,column:4},end:{line:127,column:5}},loc:{start:{line:127,column:25},end:{line:129,column:5}},line:127},"5":{name:"(anonymous_5)",decl:{start:{line:137,column:4},end:{line:137,column:5}},loc:{start:{line:137,column:16},end:{line:139,column:5}},line:137},"6":{name:"(anonymous_6)",decl:{start:{line:140,column:4},end:{line:140,column:5}},loc:{start:{line:140,column:22},end:{line:149,column:5}},line:140},"7":{name:"(anonymous_7)",decl:{start:{line:150,column:4},end:{line:150,column:5}},loc:{start:{line:150,column:36},end:{line:162,column:5}},line:150},"8":{name:"(anonymous_8)",decl:{start:{line:163,column:4},end:{line:163,column:5}},loc:{start:{line:163,column:22},end:{line:165,column:5}},line:163},"9":{name:"(anonymous_9)",decl:{start:{line:166,column:4},end:{line:166,column:5}},loc:{start:{line:166,column:26},end:{line:172,column:5}},line:166},"10":{name:"(anonymous_10)",decl:{start:{line:173,column:4},end:{line:173,column:5}},loc:{start:{line:173,column:26},end:{line:179,column:5}},line:173},"11":{name:"(anonymous_11)",decl:{start:{line:180,column:4},end:{line:180,column:5}},loc:{start:{line:180,column:23},end:{line:186,column:5}},line:180},"12":{name:"(anonymous_12)",decl:{start:{line:187,column:4},end:{line:187,column:5}},loc:{start:{line:187,column:26},end:{line:193,column:5}},line:187},"13":{name:"(anonymous_13)",decl:{start:{line:198,column:4},end:{line:198,column:5}},loc:{start:{line:198,column:28},end:{line:200,column:5}},line:198},"14":{name:"(anonymous_14)",decl:{start:{line:205,column:4},end:{line:205,column:5}},loc:{start:{line:205,column:24},end:{line:210,column:5}},line:205},"15":{name:"(anonymous_15)",decl:{start:{line:216,column:4},end:{line:216,column:5}},loc:{start:{line:216,column:31},end:{line:228,column:5}},line:216},"16":{name:"(anonymous_16)",decl:{start:{line:233,column:4},end:{line:233,column:5}},loc:{start:{line:233,column:27},end:{line:252,column:5}},line:233},"17":{name:"(anonymous_17)",decl:{start:{line:238,column:26},end:{line:238,column:27}},loc:{start:{line:238,column:40},end:{line:238,column:73}},line:238},"18":{name:"(anonymous_18)",decl:{start:{line:258,column:4},end:{line:258,column:5}},loc:{start:{line:258,column:20},end:{line:264,column:5}},line:258},"19":{name:"(anonymous_19)",decl:{start:{line:269,column:4},end:{line:269,column:5}},loc:{start:{line:269,column:22},end:{line:281,column:5}},line:269},"20":{name:"(anonymous_20)",decl:{start:{line:275,column:26},end:{line:275,column:27}},loc:{start:{line:275,column:36},end:{line:280,column:9}},line:275},"21":{name:"(anonymous_21)",decl:{start:{line:290,column:4},end:{line:290,column:5}},loc:{start:{line:290,column:30},end:{line:305,column:5}},line:290},"22":{name:"(anonymous_22)",decl:{start:{line:306,column:4},end:{line:306,column:5}},loc:{start:{line:306,column:30},end:{line:323,column:5}},line:306},"23":{name:"(anonymous_23)",decl:{start:{line:324,column:4},end:{line:324,column:5}},loc:{start:{line:324,column:29},end:{line:332,column:5}},line:324},"24":{name:"(anonymous_24)",decl:{start:{line:329,column:39},end:{line:329,column:40}},loc:{start:{line:329,column:50},end:{line:331,column:9}},line:329},"25":{name:"(anonymous_25)",decl:{start:{line:338,column:28},end:{line:338,column:29}},loc:{start:{line:338,column:40},end:{line:340,column:47}},line:338}},branchMap:{"0":{loc:{start:{line:141,column:8},end:{line:143,column:9}},type:"if",locations:[{start:{line:141,column:8},end:{line:143,column:9}},{start:{line:141,column:8},end:{line:143,column:9}}],line:141},"1":{loc:{start:{line:141,column:12},end:{line:141,column:39}},type:"binary-expr",locations:[{start:{line:141,column:12},end:{line:141,column:17}},{start:{line:141,column:21},end:{line:141,column:39}}],line:141},"2":{loc:{start:{line:145,column:8},end:{line:147,column:9}},type:"if",locations:[{start:{line:145,column:8},end:{line:147,column:9}},{start:{line:145,column:8},end:{line:147,column:9}}],line:145},"3":{loc:{start:{line:151,column:8},end:{line:153,column:9}},type:"if",locations:[{start:{line:151,column:8},end:{line:153,column:9}},{start:{line:151,column:8},end:{line:153,column:9}}],line:151},"4":{loc:{start:{line:154,column:8},end:{line:156,column:9}},type:"if",locations:[{start:{line:154,column:8},end:{line:156,column:9}},{start:{line:154,column:8},end:{line:156,column:9}}],line:154},"5":{loc:{start:{line:158,column:8},end:{line:160,column:9}},type:"if",locations:[{start:{line:158,column:8},end:{line:160,column:9}},{start:{line:158,column:8},end:{line:160,column:9}}],line:158},"6":{loc:{start:{line:167,column:8},end:{line:169,column:9}},type:"if",locations:[{start:{line:167,column:8},end:{line:169,column:9}},{start:{line:167,column:8},end:{line:169,column:9}}],line:167},"7":{loc:{start:{line:167,column:12},end:{line:167,column:44}},type:"binary-expr",locations:[{start:{line:167,column:12},end:{line:167,column:17}},{start:{line:167,column:21},end:{line:167,column:44}}],line:167},"8":{loc:{start:{line:171,column:15},end:{line:171,column:49}},type:"binary-expr",locations:[{start:{line:171,column:15},end:{line:171,column:29}},{start:{line:171,column:33},end:{line:171,column:49}}],line:171},"9":{loc:{start:{line:174,column:8},end:{line:176,column:9}},type:"if",locations:[{start:{line:174,column:8},end:{line:176,column:9}},{start:{line:174,column:8},end:{line:176,column:9}}],line:174},"10":{loc:{start:{line:174,column:12},end:{line:174,column:38}},type:"binary-expr",locations:[{start:{line:174,column:12},end:{line:174,column:17}},{start:{line:174,column:21},end:{line:174,column:38}}],line:174},"11":{loc:{start:{line:178,column:15},end:{line:178,column:49}},type:"binary-expr",locations:[{start:{line:178,column:15},end:{line:178,column:29}},{start:{line:178,column:33},end:{line:178,column:49}}],line:178},"12":{loc:{start:{line:181,column:8},end:{line:183,column:9}},type:"if",locations:[{start:{line:181,column:8},end:{line:183,column:9}},{start:{line:181,column:8},end:{line:183,column:9}}],line:181},"13":{loc:{start:{line:181,column:12},end:{line:181,column:41}},type:"binary-expr",locations:[{start:{line:181,column:12},end:{line:181,column:17}},{start:{line:181,column:21},end:{line:181,column:41}}],line:181},"14":{loc:{start:{line:185,column:15},end:{line:185,column:49}},type:"binary-expr",locations:[{start:{line:185,column:15},end:{line:185,column:29}},{start:{line:185,column:33},end:{line:185,column:49}}],line:185},"15":{loc:{start:{line:188,column:8},end:{line:190,column:9}},type:"if",locations:[{start:{line:188,column:8},end:{line:190,column:9}},{start:{line:188,column:8},end:{line:190,column:9}}],line:188},"16":{loc:{start:{line:188,column:12},end:{line:188,column:39}},type:"binary-expr",locations:[{start:{line:188,column:12},end:{line:188,column:17}},{start:{line:188,column:21},end:{line:188,column:39}}],line:188},"17":{loc:{start:{line:192,column:15},end:{line:192,column:49}},type:"binary-expr",locations:[{start:{line:192,column:15},end:{line:192,column:29}},{start:{line:192,column:33},end:{line:192,column:49}}],line:192},"18":{loc:{start:{line:206,column:8},end:{line:208,column:9}},type:"if",locations:[{start:{line:206,column:8},end:{line:208,column:9}},{start:{line:206,column:8},end:{line:208,column:9}}],line:206},"19":{loc:{start:{line:206,column:12},end:{line:206,column:68}},type:"binary-expr",locations:[{start:{line:206,column:12},end:{line:206,column:38}},{start:{line:206,column:42},end:{line:206,column:68}}],line:206},"20":{loc:{start:{line:217,column:8},end:{line:219,column:9}},type:"if",locations:[{start:{line:217,column:8},end:{line:219,column:9}},{start:{line:217,column:8},end:{line:219,column:9}}],line:217},"21":{loc:{start:{line:217,column:12},end:{line:217,column:41}},type:"binary-expr",locations:[{start:{line:217,column:12},end:{line:217,column:17}},{start:{line:217,column:21},end:{line:217,column:41}}],line:217},"22":{loc:{start:{line:220,column:8},end:{line:223,column:9}},type:"if",locations:[{start:{line:220,column:8},end:{line:223,column:9}},{start:{line:220,column:8},end:{line:223,column:9}}],line:220},"23":{loc:{start:{line:224,column:8},end:{line:226,column:9}},type:"if",locations:[{start:{line:224,column:8},end:{line:226,column:9}},{start:{line:224,column:8},end:{line:226,column:9}}],line:224},"24":{loc:{start:{line:234,column:8},end:{line:236,column:9}},type:"if",locations:[{start:{line:234,column:8},end:{line:236,column:9}},{start:{line:234,column:8},end:{line:236,column:9}}],line:234},"25":{loc:{start:{line:234,column:12},end:{line:234,column:39}},type:"binary-expr",locations:[{start:{line:234,column:12},end:{line:234,column:17}},{start:{line:234,column:21},end:{line:234,column:39}}],line:234},"26":{loc:{start:{line:247,column:8},end:{line:249,column:9}},type:"if",locations:[{start:{line:247,column:8},end:{line:249,column:9}},{start:{line:247,column:8},end:{line:249,column:9}}],line:247},"27":{loc:{start:{line:260,column:8},end:{line:262,column:9}},type:"if",locations:[{start:{line:260,column:8},end:{line:262,column:9}},{start:{line:260,column:8},end:{line:262,column:9}}],line:260},"28":{loc:{start:{line:272,column:8},end:{line:274,column:9}},type:"if",locations:[{start:{line:272,column:8},end:{line:274,column:9}},{start:{line:272,column:8},end:{line:274,column:9}}],line:272},"29":{loc:{start:{line:277,column:12},end:{line:279,column:13}},type:"if",locations:[{start:{line:277,column:12},end:{line:279,column:13}},{start:{line:277,column:12},end:{line:279,column:13}}],line:277},"30":{loc:{start:{line:291,column:8},end:{line:293,column:9}},type:"if",locations:[{start:{line:291,column:8},end:{line:293,column:9}},{start:{line:291,column:8},end:{line:293,column:9}}],line:291},"31":{loc:{start:{line:291,column:12},end:{line:291,column:33}},type:"binary-expr",locations:[{start:{line:291,column:12},end:{line:291,column:24}},{start:{line:291,column:28},end:{line:291,column:33}}],line:291},"32":{loc:{start:{line:294,column:8},end:{line:296,column:9}},type:"if",locations:[{start:{line:294,column:8},end:{line:296,column:9}},{start:{line:294,column:8},end:{line:296,column:9}}],line:294},"33":{loc:{start:{line:300,column:12},end:{line:302,column:13}},type:"if",locations:[{start:{line:300,column:12},end:{line:302,column:13}},{start:{line:300,column:12},end:{line:302,column:13}}],line:300},"34":{loc:{start:{line:307,column:8},end:{line:309,column:9}},type:"if",locations:[{start:{line:307,column:8},end:{line:309,column:9}},{start:{line:307,column:8},end:{line:309,column:9}}],line:307},"35":{loc:{start:{line:307,column:12},end:{line:307,column:38}},type:"binary-expr",locations:[{start:{line:307,column:12},end:{line:307,column:17}},{start:{line:307,column:21},end:{line:307,column:38}}],line:307},"36":{loc:{start:{line:311,column:8},end:{line:313,column:9}},type:"if",locations:[{start:{line:311,column:8},end:{line:313,column:9}},{start:{line:311,column:8},end:{line:313,column:9}}],line:311},"37":{loc:{start:{line:311,column:12},end:{line:311,column:108}},type:"binary-expr",locations:[{start:{line:311,column:12},end:{line:311,column:35}},{start:{line:311,column:39},end:{line:311,column:108}}],line:311},"38":{loc:{start:{line:311,column:41},end:{line:311,column:107}},type:"binary-expr",locations:[{start:{line:311,column:41},end:{line:311,column:71}},{start:{line:311,column:75},end:{line:311,column:107}}],line:311},"39":{loc:{start:{line:315,column:8},end:{line:322,column:9}},type:"if",locations:[{start:{line:315,column:8},end:{line:322,column:9}},{start:{line:315,column:8},end:{line:322,column:9}}],line:315},"40":{loc:{start:{line:315,column:12},end:{line:315,column:46}},type:"binary-expr",locations:[{start:{line:315,column:12},end:{line:315,column:26}},{start:{line:315,column:30},end:{line:315,column:46}}],line:315},"41":{loc:{start:{line:325,column:8},end:{line:327,column:9}},type:"if",locations:[{start:{line:325,column:8},end:{line:327,column:9}},{start:{line:325,column:8},end:{line:327,column:9}}],line:325},"42":{loc:{start:{line:325,column:12},end:{line:325,column:39}},type:"binary-expr",locations:[{start:{line:325,column:12},end:{line:325,column:17}},{start:{line:325,column:21},end:{line:325,column:39}}],line:325}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0]},inputSourceMap:{version:3,file:"treeview.js",sourceRoot:"",sources:["../../../../../projects/sac-common/src/controls/treeview/treeview.ts"],names:[],mappings:"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",sourcesContent:["import { SacBaseModelControl } from '../../common/basemodelcontrol';\nimport { TreeviewAction } from '../../interfaces/treeviewaction.interface';\nimport { Validation } from '../../validation';\nimport { SacFormLayoutCommon } from '../layout/formlayout';\nimport { Directive, EventEmitter, Host, Injector, Input, Output, TemplateRef } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\n/**\n * Basis Komponente f\xFCr SacTreeView\n */\n@Directive()\nexport class SacTreeviewCommon extends SacBaseModelControl<any> {\n // #region Properties\n\n /**\n * Event when Action is clicked on Node. An object of the type 'TreeviewAction' is returned. In the default case, 'action' in this object is always the value 'default'. The value can be changed via the 'templateaction'.\n */\n @Output()\n public actionclicked: EventEmitter<TreeviewAction> = new EventEmitter<TreeviewAction>();\n\n /**\n * Property on the data object that contains the children of the structure element. Must be an array of objects. The default value is 'children'\n */\n @Input()\n public attrchildren = 'children';\n\n /**\n * Defines the property on the 'data' object with which the actions for a node can be deactivated. A 'disabled' property is used by default.\n */\n @Input() public attrdisableaction = 'disabled';\n\n /**\n * Property on the 'data' object that stores the expanded state. Property must be of type boolean. Default is 'expanded'\n */\n @Input()\n public attrexanded = 'expanded';\n\n /**\n * Property for saving the HoverState on the field. If the property is not present on the node, it is automatically created and removed again. The value can usually be left at the default value unless there is a conflict with a property on the node that is required for other purposes.\n */\n @Input()\n public attrhoverstate = 'hoverstate';\n\n /**\n * Property on 'data' object, which contains the icon for the node. By default, the property is not set, which hides the icon in the node.\n */\n @Input()\n public attricon: string | null = null;\n\n /**\n * property on the 'data' object contains an ID of the node. The default is 'id'. If the property is set to NULL, the selectedId event is no longer triggered.\n */\n @Input()\n public attrid: string | null = 'id';\n\n /**\n * Property on 'data' object, which contains the label for the node. Default is 'label'\n */\n @Input()\n public attrlabel = 'label';\n\n /**\n * Property on 'data' object, which defines whether the node is selected or not. It should be ensured that only 1 node has the value for Selected set to true. Default is 'selected'.\n */\n @Input()\n public attrselected = 'selected';\n\n /**\n * Event when a node is collapsed. Returns the node element as a parameter\n */\n @Output()\n public collabsed: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * The property contains an array of nodes. The data must already map the tree via child properties.\n */\n @Input()\n public data: any[] = [];\n\n /**\n * Activates the 'expand' and 'collabse' event even if a node has no children. This is helpful if node elements are to be reloaded at runtime.\n */\n @Input()\n public enableasynchload: boolean | string = false;\n\n /**\n * Activates Ellipsis on the node labels\n */\n @Input()\n public enableellipsis = true;\n\n /**\n * Event when a node is expanded. Returns the node element as a parameter\n */\n @Output()\n public expanded: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * Defines whether an icon for the expanded/collapsed status should be displayed.\n */\n @Input()\n public expandedstate: boolean | string = true;\n\n /**\n * A node must be selected\n */\n @Input()\n public isrequired: boolean = false;\n\n /**\n * Name of the TreeView control\n */\n @Input()\n public name: string = '';\n\n /**\n * Event when a node is selected. Returns the id attribute as a parameter. The event is not triggered if 'attrid' is not set.\n */\n @Output()\n public selected: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * Event when a node is selected. Returns the node element as a parameter.\n */\n @Output()\n public selectednode: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * Defines that the action template is displayed independently of the selected state. If the value is 'true', the action template is displayed for every element.\n */\n @Input()\n public showactionalways;\n\n /**\n * Custom template for actions per node. Template parameters are: 'node'\n */\n @Input()\n public templateaction: TemplateRef<any>;\n\n /**\n * Custom template for icon per node. Template parameters are: 'node'\n */\n @Input()\n public templateicon: TemplateRef<any>;\n\n /**\n * Custom template for the label area per node. Template parameters are: 'node' and 'label'\n */\n @Input()\n public templatelabel: TemplateRef<any>;\n\n /**\n * Resource Key f\xFCr Validation Message Required bei Control\n */\n @Input() public validationmessagerequired: string = this.validationKeyService.ValidationErrorRequired;\n\n /**\n * Resource Key f\xFCr Validation Message Required in Validation Summary\n */\n @Input()\n public validationmessagesummaryrequired: string = this.validationKeyService.ValidationErrorSummaryRequired;\n\n // #endregion Properties\n\n // #region Constructors\n\n /**\n * Constructor\n * @param injector Service Injector\n */\n constructor(@Host() formlayout: SacFormLayoutCommon, injector: Injector) {\n super(formlayout, injector);\n }\n\n // #endregion Constructors\n\n // #region Public Getters And Setters\n\n public get iconAction(): string {\n return this.iconService.TreeviewNodeActionIcon;\n }\n\n /**\n * CSS icon for folders in tree there are collabsed\n * @returns css class with icon\n */\n public get iconFolderCollabsed(): string {\n return this.iconService.TreeviewNodeClosedIcon;\n }\n\n /**\n * CSS icon class for folders without subfolders\n * @returns css class with icon\n */\n public get iconFolderEmpty(): string {\n return this.iconService.TreeviewNodeEmptyIcon;\n }\n\n /**\n * CSS icon for folders in tree there are expanded\n * @returns css class with icon\n */\n public get iconFolderOpen(): string {\n return this.iconService.TreeviewNodeOpenIcon;\n }\n\n // #endregion Public Getters And Setters\n\n // #region Public Methods\n\n /**\n * Creates an array of a certain size. Is required for a For in the UI, as Angular does not support counting loops\n * @param size Size of the array\n * @returns Array\n */\n public count(size: number): Array<void> {\n return new Array(size);\n }\n\n public getChildren(node: any): any[] {\n if (!node || !this.attrchildren) {\n return [];\n }\n\n let children = node[this.attrchildren];\n\n if (!Array.isArray(children)) {\n return [];\n }\n\n return children;\n }\n\n public getStringField(node: any, fieldname: string): any {\n if (!node) {\n return '';\n }\n\n if (!fieldname) {\n return node;\n }\n\n let value = node[fieldname];\n\n if (!value) {\n return '';\n }\n\n return value;\n }\n\n public hasChildren(node: any): boolean {\n return this.getChildren(node).length > 0;\n }\n\n public isDisabledState(node: any): boolean {\n if (!node || !this.attrdisableaction) {\n return false;\n }\n\n let value = node[this.attrdisableaction];\n return value === true || value === 'true';\n }\n\n public isExpandedState(node: any): boolean {\n if (!node || !this.attrexanded) {\n return false;\n }\n\n let value = node[this.attrexanded];\n return value === true || value === 'true';\n }\n\n public isHoverState(node: any): boolean {\n if (!node || !this.attrhoverstate) {\n return false;\n }\n\n let value = node[this.attrhoverstate];\n return value === true || value === 'true';\n }\n\n public isSelectedState(node: any): boolean {\n if (!node || !this.attrselected) {\n return false;\n }\n\n let value = node[this.attrselected];\n return value === true || value === 'true';\n }\n\n /**\n * Method is called by clicking an action\n * @param action action and node\n */\n public onActionClicked(action: TreeviewAction) {\n this.actionclicked.emit(action);\n }\n\n /**\n * Method is called when Node in Tree is clicked\n * @param node Selected Node\n */\n public onNodeClicked(node: any): void {\n if (this.isDisabledState(node) || this.isSelectedState(node)) {\n this.invertExpandedState(node);\n }\n\n this.setSelectedState(node);\n }\n\n /**\n * Sets the hover state on a node\n * @param node Node on which the status is set\n * @param state Activate or deactivate HoverState\n */\n public setHoverState(node: any, state: boolean) {\n if (!node || !this.attrhoverstate) {\n return;\n }\n\n if (state) {\n node[this.attrhoverstate] = true;\n return;\n }\n\n if (!node.hasOwnProperty(this.attrhoverstate)) {\n return;\n }\n\n delete node[this.attrhoverstate];\n }\n\n /**\n * Sets the selected state on a node\n * @param node Node which is marked as Selected\n */\n public setSelectedState(node: any): void {\n if (!node || !this.attrselected) {\n return;\n }\n\n // reset selected state of any node\n this.data.forEach((rootNode) => this.resetSelectedState(rootNode));\n\n // set selected node as selected\n node[this.attrselected] = true;\n\n // Extract ID from Node\n const idValue = node[this.attrid];\n\n // Update ngModel\n this.setValue(idValue);\n\n // Raise Selected Events\n this.selectednode.emit(node);\n\n if (!this.attrid) {\n return;\n }\n\n let id = this.getStringField(node, this.attrid);\n this.selected.emit(id);\n }\n\n /**\n * Validates the model state of the control\n * @param c Control instance\n * @returns Returns a validation error, if present. Otherwise, as Result is NULL\n */\n public validateData(c: AbstractControl): ValidationErrors | null {\n let error: ValidationErrors | null = null;\n\n if (this.isrequired) {\n error = Validation.required(this.validationmessagerequired, this.validationmessagesummaryrequired)(c);\n }\n\n return error;\n }\n\n /**\n * Saves the data from the model binding\n * @param value Id of the selected node\n */\n public writeValue(value: any): void {\n super.writeValue(value);\n\n // Do not preselct item when tree is empty\n if (!this.data) {\n return;\n }\n\n this.data.forEach((root) => {\n const result = this.findNodeById(root, value);\n\n if (result !== null) {\n this.setSelectedState(result);\n }\n });\n }\n\n // #endregion Public Methods\n\n // #region Private Methods\n\n /**\n * Searches for a node based on the value in the ID attribute\n * @param node Node\n * @param value Value of the Id attribute\n * @returns Returns the node if it is found. If not, NULL is returned.\n */\n private findNodeById(node: any, value: any): any {\n if (!this.attrid || !node) {\n return null;\n }\n\n if (node[this.attrid] === value) {\n return node;\n }\n\n const children = this.getChildren(node);\n for (let child of children) {\n const result = this.findNodeById(child, value);\n if (result !== null) {\n return result;\n }\n }\n\n return null;\n }\n\n private invertExpandedState(node: any) {\n if (!node || !this.attrexanded) {\n return;\n }\n\n // Items with no children cannot be collabsed\n if (!this.hasChildren(node) && !(this.enableasynchload === true || this.enableasynchload === 'true')) {\n return;\n }\n\n let value = node[this.attrexanded];\n\n if (value === true || value === 'true') {\n this.collabsed.emit(node);\n node[this.attrexanded] = false;\n } else {\n this.expanded.emit(node);\n node[this.attrexanded] = true;\n }\n }\n\n private resetSelectedState(node: any) {\n if (!node || !this.attrselected) {\n return;\n }\n\n node[this.attrselected] = false;\n\n this.getChildren(node).forEach((child) => {\n this.resetSelectedState(child);\n });\n }\n\n // #endregion Private Methods\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"2e9b56a9285c2d89112eb89a20004189dab14b93"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_2ox2r433ne=function(){return actualCoverage;};}return actualCoverage;}cov_2ox2r433ne();import{SacBaseModelControl}from'../../common/basemodelcontrol';import{Validation}from'../../validation';import{Directive,EventEmitter,Host,Input,Output}from'@angular/core';import*as i0 from"@angular/core";import*as i1 from"../layout/formlayout";/**
3
+ * Basis Komponente für SacTreeView
4
4
  */export class SacTreeviewCommon extends SacBaseModelControl{// #endregion Properties
5
5
  // #region Constructors
6
- /**
7
- * Constructor
8
- * @param injector Service Injector
9
- */constructor(formlayout,injector){cov_24ddv5o0pk().f[0]++;cov_24ddv5o0pk().s[0]++;super(formlayout,injector);// #region Properties
10
- /**
11
- * Event when Action is clicked on Node. An object of the type 'TreeviewAction' is returned. In the default case, 'action' in this object is always the value 'default'. The value can be changed via the 'templateaction'.
12
- */cov_24ddv5o0pk().s[1]++;this.actionclicked=new EventEmitter();/**
13
- * Property on the data object that contains the children of the structure element. Must be an array of objects. The default value is 'children'
14
- */cov_24ddv5o0pk().s[2]++;this.attrchildren='children';/**
15
- * Defines the property on the 'data' object with which the actions for a node can be deactivated. A 'disabled' property is used by default.
16
- */cov_24ddv5o0pk().s[3]++;this.attrdisableaction='disabled';/**
17
- * Property on the 'data' object that stores the expanded state. Property must be of type boolean. Default is 'expanded'
18
- */cov_24ddv5o0pk().s[4]++;this.attrexanded='expanded';/**
19
- * Property for saving the HoverState on the field. If the property is not present on the node, it is automatically created and removed again. The value can usually be left at the default value unless there is a conflict with a property on the node that is required for other purposes.
20
- */cov_24ddv5o0pk().s[5]++;this.attrhoverstate='hoverstate';/**
21
- * Property on 'data' object, which contains the icon for the node. By default, the property is not set, which hides the icon in the node.
22
- */cov_24ddv5o0pk().s[6]++;this.attricon=null;/**
23
- * property on the 'data' object contains an ID of the node. The default is 'id'. If the property is set to NULL, the selectedId event is no longer triggered.
24
- */cov_24ddv5o0pk().s[7]++;this.attrid='id';/**
25
- * Property on 'data' object, which contains the label for the node. Default is 'label'
26
- */cov_24ddv5o0pk().s[8]++;this.attrlabel='label';/**
27
- * Property on 'data' object, which defines whether the node is selected or not. It should be ensured that only 1 node has the value for Selected set to true. Default is 'selected'.
28
- */cov_24ddv5o0pk().s[9]++;this.attrselected='selected';/**
29
- * Event when a node is collapsed. Returns the node element as a parameter
30
- */cov_24ddv5o0pk().s[10]++;this.collabsed=new EventEmitter();/**
31
- * The property contains an array of nodes. The data must already map the tree via child properties.
32
- */cov_24ddv5o0pk().s[11]++;this.data=[];/**
33
- * Activates the 'expand' and 'collabse' event even if a node has no children. This is helpful if node elements are to be reloaded at runtime.
34
- */cov_24ddv5o0pk().s[12]++;this.enableasynchload=false;/**
35
- * Activates Ellipsis on the node labels
36
- */cov_24ddv5o0pk().s[13]++;this.enableellipsis=true;/**
37
- * Event when a node is expanded. Returns the node element as a parameter
38
- */cov_24ddv5o0pk().s[14]++;this.expanded=new EventEmitter();/**
39
- * Defines whether an icon for the expanded/collapsed status should be displayed.
40
- */cov_24ddv5o0pk().s[15]++;this.expandedstate=true;/**
41
- * A node must be selected
42
- */cov_24ddv5o0pk().s[16]++;this.isrequired=false;/**
43
- * Name of the TreeView control
44
- */cov_24ddv5o0pk().s[17]++;this.name='';/**
45
- * Event when a node is selected. Returns the id attribute as a parameter. The event is not triggered if 'attrid' is not set.
46
- */cov_24ddv5o0pk().s[18]++;this.selected=new EventEmitter();/**
47
- * Event when a node is selected. Returns the node element as a parameter.
48
- */cov_24ddv5o0pk().s[19]++;this.selectednode=new EventEmitter();/**
49
- * Resource Key für Validation Message Required bei Control
50
- */cov_24ddv5o0pk().s[20]++;this.validationmessagerequired=this.validationKeyService.ValidationErrorRequired;/**
51
- * Resource Key für Validation Message Required in Validation Summary
52
- */cov_24ddv5o0pk().s[21]++;this.validationmessagesummaryrequired=this.validationKeyService.ValidationErrorSummaryRequired;}// #endregion Constructors
6
+ /**
7
+ * Constructor
8
+ * @param injector Service Injector
9
+ */constructor(formlayout,injector){cov_2ox2r433ne().f[0]++;cov_2ox2r433ne().s[0]++;super(formlayout,injector);// #region Properties
10
+ /**
11
+ * Event when Action is clicked on Node. An object of the type 'TreeviewAction' is returned. In the default case, 'action' in this object is always the value 'default'. The value can be changed via the 'templateaction'.
12
+ */cov_2ox2r433ne().s[1]++;this.actionclicked=new EventEmitter();/**
13
+ * Property on the data object that contains the children of the structure element. Must be an array of objects. The default value is 'children'
14
+ */cov_2ox2r433ne().s[2]++;this.attrchildren='children';/**
15
+ * Defines the property on the 'data' object with which the actions for a node can be deactivated. A 'disabled' property is used by default.
16
+ */cov_2ox2r433ne().s[3]++;this.attrdisableaction='disabled';/**
17
+ * Property on the 'data' object that stores the expanded state. Property must be of type boolean. Default is 'expanded'
18
+ */cov_2ox2r433ne().s[4]++;this.attrexanded='expanded';/**
19
+ * Property for saving the HoverState on the field. If the property is not present on the node, it is automatically created and removed again. The value can usually be left at the default value unless there is a conflict with a property on the node that is required for other purposes.
20
+ */cov_2ox2r433ne().s[5]++;this.attrhoverstate='hoverstate';/**
21
+ * Property on 'data' object, which contains the icon for the node. By default, the property is not set, which hides the icon in the node.
22
+ */cov_2ox2r433ne().s[6]++;this.attricon=null;/**
23
+ * property on the 'data' object contains an ID of the node. The default is 'id'. If the property is set to NULL, the selectedId event is no longer triggered.
24
+ */cov_2ox2r433ne().s[7]++;this.attrid='id';/**
25
+ * Property on 'data' object, which contains the label for the node. Default is 'label'
26
+ */cov_2ox2r433ne().s[8]++;this.attrlabel='label';/**
27
+ * Property on 'data' object, which defines whether the node is selected or not. It should be ensured that only 1 node has the value for Selected set to true. Default is 'selected'.
28
+ */cov_2ox2r433ne().s[9]++;this.attrselected='selected';/**
29
+ * Event when a node is collapsed. Returns the node element as a parameter
30
+ */cov_2ox2r433ne().s[10]++;this.collabsed=new EventEmitter();/**
31
+ * The property contains an array of nodes. The data must already map the tree via child properties.
32
+ */cov_2ox2r433ne().s[11]++;this.data=[];/**
33
+ * Activates the 'expand' and 'collabse' event even if a node has no children. This is helpful if node elements are to be reloaded at runtime.
34
+ */cov_2ox2r433ne().s[12]++;this.enableasynchload=false;/**
35
+ * Activates Ellipsis on the node labels
36
+ */cov_2ox2r433ne().s[13]++;this.enableellipsis=true;/**
37
+ * Event when a node is expanded. Returns the node element as a parameter
38
+ */cov_2ox2r433ne().s[14]++;this.expanded=new EventEmitter();/**
39
+ * Defines whether an icon for the expanded/collapsed status should be displayed.
40
+ */cov_2ox2r433ne().s[15]++;this.expandedstate=true;/**
41
+ * A node must be selected
42
+ */cov_2ox2r433ne().s[16]++;this.isrequired=false;/**
43
+ * Name of the TreeView control
44
+ */cov_2ox2r433ne().s[17]++;this.name='';/**
45
+ * Event when a node is selected. Returns the id attribute as a parameter. The event is not triggered if 'attrid' is not set.
46
+ */cov_2ox2r433ne().s[18]++;this.selected=new EventEmitter();/**
47
+ * Event when a node is selected. Returns the node element as a parameter.
48
+ */cov_2ox2r433ne().s[19]++;this.selectednode=new EventEmitter();/**
49
+ * Resource Key für Validation Message Required bei Control
50
+ */cov_2ox2r433ne().s[20]++;this.validationmessagerequired=this.validationKeyService.ValidationErrorRequired;/**
51
+ * Resource Key für Validation Message Required in Validation Summary
52
+ */cov_2ox2r433ne().s[21]++;this.validationmessagesummaryrequired=this.validationKeyService.ValidationErrorSummaryRequired;}// #endregion Constructors
53
53
  // #region Public Getters And Setters
54
- get iconAction(){cov_24ddv5o0pk().f[1]++;cov_24ddv5o0pk().s[22]++;return this.iconService.TreeviewNodeActionIcon;}/**
55
- * CSS icon for folders in tree there are collabsed
56
- * @returns css class with icon
57
- */get iconFolderCollabsed(){cov_24ddv5o0pk().f[2]++;cov_24ddv5o0pk().s[23]++;return this.iconService.TreeviewNodeClosedIcon;}/**
58
- * CSS icon class for folders without subfolders
59
- * @returns css class with icon
60
- */get iconFolderEmpty(){cov_24ddv5o0pk().f[3]++;cov_24ddv5o0pk().s[24]++;return this.iconService.TreeviewNodeEmptyIcon;}/**
61
- * CSS icon for folders in tree there are expanded
62
- * @returns css class with icon
63
- */get iconFolderOpen(){cov_24ddv5o0pk().f[4]++;cov_24ddv5o0pk().s[25]++;return this.iconService.TreeviewNodeOpenIcon;}// #endregion Public Getters And Setters
54
+ get iconAction(){cov_2ox2r433ne().f[1]++;cov_2ox2r433ne().s[22]++;return this.iconService.TreeviewNodeActionIcon;}/**
55
+ * CSS icon for folders in tree there are collabsed
56
+ * @returns css class with icon
57
+ */get iconFolderCollabsed(){cov_2ox2r433ne().f[2]++;cov_2ox2r433ne().s[23]++;return this.iconService.TreeviewNodeClosedIcon;}/**
58
+ * CSS icon class for folders without subfolders
59
+ * @returns css class with icon
60
+ */get iconFolderEmpty(){cov_2ox2r433ne().f[3]++;cov_2ox2r433ne().s[24]++;return this.iconService.TreeviewNodeEmptyIcon;}/**
61
+ * CSS icon for folders in tree there are expanded
62
+ * @returns css class with icon
63
+ */get iconFolderOpen(){cov_2ox2r433ne().f[4]++;cov_2ox2r433ne().s[25]++;return this.iconService.TreeviewNodeOpenIcon;}// #endregion Public Getters And Setters
64
64
  // #region Public Methods
65
- /**
66
- * Creates an array of a certain size. Is required for a For in the UI, as Angular does not support counting loops
67
- * @param size Size of the array
68
- * @returns Array
69
- */count(size){cov_24ddv5o0pk().f[5]++;cov_24ddv5o0pk().s[26]++;return new Array(size);}getChildren(node){cov_24ddv5o0pk().f[6]++;cov_24ddv5o0pk().s[27]++;if((cov_24ddv5o0pk().b[1][0]++,!node)||(cov_24ddv5o0pk().b[1][1]++,!this.attrchildren)){cov_24ddv5o0pk().b[0][0]++;cov_24ddv5o0pk().s[28]++;return[];}else{cov_24ddv5o0pk().b[0][1]++;}let children=(cov_24ddv5o0pk().s[29]++,node[this.attrchildren]);cov_24ddv5o0pk().s[30]++;if(!Array.isArray(children)){cov_24ddv5o0pk().b[2][0]++;cov_24ddv5o0pk().s[31]++;return[];}else{cov_24ddv5o0pk().b[2][1]++;}cov_24ddv5o0pk().s[32]++;return children;}getStringField(node,fieldname){cov_24ddv5o0pk().f[7]++;cov_24ddv5o0pk().s[33]++;if(!node){cov_24ddv5o0pk().b[3][0]++;cov_24ddv5o0pk().s[34]++;return'';}else{cov_24ddv5o0pk().b[3][1]++;}cov_24ddv5o0pk().s[35]++;if(!fieldname){cov_24ddv5o0pk().b[4][0]++;cov_24ddv5o0pk().s[36]++;return node;}else{cov_24ddv5o0pk().b[4][1]++;}let value=(cov_24ddv5o0pk().s[37]++,node[fieldname]);cov_24ddv5o0pk().s[38]++;if(!value){cov_24ddv5o0pk().b[5][0]++;cov_24ddv5o0pk().s[39]++;return'';}else{cov_24ddv5o0pk().b[5][1]++;}cov_24ddv5o0pk().s[40]++;return value;}hasChildren(node){cov_24ddv5o0pk().f[8]++;cov_24ddv5o0pk().s[41]++;return this.getChildren(node).length>0;}isDisabledState(node){cov_24ddv5o0pk().f[9]++;cov_24ddv5o0pk().s[42]++;if((cov_24ddv5o0pk().b[7][0]++,!node)||(cov_24ddv5o0pk().b[7][1]++,!this.attrdisableaction)){cov_24ddv5o0pk().b[6][0]++;cov_24ddv5o0pk().s[43]++;return false;}else{cov_24ddv5o0pk().b[6][1]++;}let value=(cov_24ddv5o0pk().s[44]++,node[this.attrdisableaction]);cov_24ddv5o0pk().s[45]++;return(cov_24ddv5o0pk().b[8][0]++,value===true)||(cov_24ddv5o0pk().b[8][1]++,value==='true');}isExpandedState(node){cov_24ddv5o0pk().f[10]++;cov_24ddv5o0pk().s[46]++;if((cov_24ddv5o0pk().b[10][0]++,!node)||(cov_24ddv5o0pk().b[10][1]++,!this.attrexanded)){cov_24ddv5o0pk().b[9][0]++;cov_24ddv5o0pk().s[47]++;return false;}else{cov_24ddv5o0pk().b[9][1]++;}let value=(cov_24ddv5o0pk().s[48]++,node[this.attrexanded]);cov_24ddv5o0pk().s[49]++;return(cov_24ddv5o0pk().b[11][0]++,value===true)||(cov_24ddv5o0pk().b[11][1]++,value==='true');}isHoverState(node){cov_24ddv5o0pk().f[11]++;cov_24ddv5o0pk().s[50]++;if((cov_24ddv5o0pk().b[13][0]++,!node)||(cov_24ddv5o0pk().b[13][1]++,!this.attrhoverstate)){cov_24ddv5o0pk().b[12][0]++;cov_24ddv5o0pk().s[51]++;return false;}else{cov_24ddv5o0pk().b[12][1]++;}let value=(cov_24ddv5o0pk().s[52]++,node[this.attrhoverstate]);cov_24ddv5o0pk().s[53]++;return(cov_24ddv5o0pk().b[14][0]++,value===true)||(cov_24ddv5o0pk().b[14][1]++,value==='true');}isSelectedState(node){cov_24ddv5o0pk().f[12]++;cov_24ddv5o0pk().s[54]++;if((cov_24ddv5o0pk().b[16][0]++,!node)||(cov_24ddv5o0pk().b[16][1]++,!this.attrselected)){cov_24ddv5o0pk().b[15][0]++;cov_24ddv5o0pk().s[55]++;return false;}else{cov_24ddv5o0pk().b[15][1]++;}let value=(cov_24ddv5o0pk().s[56]++,node[this.attrselected]);cov_24ddv5o0pk().s[57]++;return(cov_24ddv5o0pk().b[17][0]++,value===true)||(cov_24ddv5o0pk().b[17][1]++,value==='true');}/**
70
- * Method is called by clicking an action
71
- * @param action action and node
72
- */onActionClicked(action){cov_24ddv5o0pk().f[13]++;cov_24ddv5o0pk().s[58]++;this.actionclicked.emit(action);}/**
73
- * Method is called when Node in Tree is clicked
74
- * @param node Selected Node
75
- */onNodeClicked(node){cov_24ddv5o0pk().f[14]++;cov_24ddv5o0pk().s[59]++;if((cov_24ddv5o0pk().b[19][0]++,this.isDisabledState(node))||(cov_24ddv5o0pk().b[19][1]++,this.isSelectedState(node))){cov_24ddv5o0pk().b[18][0]++;cov_24ddv5o0pk().s[60]++;this.invertExpandedState(node);}else{cov_24ddv5o0pk().b[18][1]++;}cov_24ddv5o0pk().s[61]++;this.setSelectedState(node);}/**
76
- * Sets the hover state on a node
77
- * @param node Node on which the status is set
78
- * @param state Activate or deactivate HoverState
79
- */setHoverState(node,state){cov_24ddv5o0pk().f[15]++;cov_24ddv5o0pk().s[62]++;if((cov_24ddv5o0pk().b[21][0]++,!node)||(cov_24ddv5o0pk().b[21][1]++,!this.attrhoverstate)){cov_24ddv5o0pk().b[20][0]++;cov_24ddv5o0pk().s[63]++;return;}else{cov_24ddv5o0pk().b[20][1]++;}cov_24ddv5o0pk().s[64]++;if(state){cov_24ddv5o0pk().b[22][0]++;cov_24ddv5o0pk().s[65]++;node[this.attrhoverstate]=true;cov_24ddv5o0pk().s[66]++;return;}else{cov_24ddv5o0pk().b[22][1]++;}cov_24ddv5o0pk().s[67]++;if(!node.hasOwnProperty(this.attrhoverstate)){cov_24ddv5o0pk().b[23][0]++;cov_24ddv5o0pk().s[68]++;return;}else{cov_24ddv5o0pk().b[23][1]++;}cov_24ddv5o0pk().s[69]++;delete node[this.attrhoverstate];}/**
80
- * Sets the selected state on a node
81
- * @param node Node which is marked as Selected
82
- */setSelectedState(node){cov_24ddv5o0pk().f[16]++;cov_24ddv5o0pk().s[70]++;if((cov_24ddv5o0pk().b[25][0]++,!node)||(cov_24ddv5o0pk().b[25][1]++,!this.attrselected)){cov_24ddv5o0pk().b[24][0]++;cov_24ddv5o0pk().s[71]++;return;}else{cov_24ddv5o0pk().b[24][1]++;}// reset selected state of any node
83
- cov_24ddv5o0pk().s[72]++;this.data.forEach(rootNode=>{cov_24ddv5o0pk().f[17]++;cov_24ddv5o0pk().s[73]++;return this.resetSelectedState(rootNode);});// set selected node as selected
84
- cov_24ddv5o0pk().s[74]++;node[this.attrselected]=true;// Extract ID from Node
85
- const idValue=(cov_24ddv5o0pk().s[75]++,node[this.attrid]);// Update ngModel
86
- cov_24ddv5o0pk().s[76]++;this.setValue(idValue);// Raise Selected Events
87
- cov_24ddv5o0pk().s[77]++;this.selectednode.emit(node);cov_24ddv5o0pk().s[78]++;if(!this.attrid){cov_24ddv5o0pk().b[26][0]++;cov_24ddv5o0pk().s[79]++;return;}else{cov_24ddv5o0pk().b[26][1]++;}let id=(cov_24ddv5o0pk().s[80]++,this.getStringField(node,this.attrid));cov_24ddv5o0pk().s[81]++;this.selected.emit(id);}/**
88
- * Validates the model state of the control
89
- * @param c Control instance
90
- * @returns Returns a validation error, if present. Otherwise, as Result is NULL
91
- */validateData(c){cov_24ddv5o0pk().f[18]++;let error=(cov_24ddv5o0pk().s[82]++,null);cov_24ddv5o0pk().s[83]++;if(this.isrequired){cov_24ddv5o0pk().b[27][0]++;cov_24ddv5o0pk().s[84]++;error=Validation.required(this.validationmessagerequired,this.validationmessagesummaryrequired)(c);}else{cov_24ddv5o0pk().b[27][1]++;}cov_24ddv5o0pk().s[85]++;return error;}/**
92
- * Saves the data from the model binding
93
- * @param value Id of the selected node
94
- */writeValue(value){cov_24ddv5o0pk().f[19]++;cov_24ddv5o0pk().s[86]++;super.writeValue(value);// Do not preselct item when tree is empty
95
- cov_24ddv5o0pk().s[87]++;if(!this.data){cov_24ddv5o0pk().b[28][0]++;cov_24ddv5o0pk().s[88]++;return;}else{cov_24ddv5o0pk().b[28][1]++;}cov_24ddv5o0pk().s[89]++;this.data.forEach(root=>{cov_24ddv5o0pk().f[20]++;const result=(cov_24ddv5o0pk().s[90]++,this.findNodeById(root,value));cov_24ddv5o0pk().s[91]++;if(result!==null){cov_24ddv5o0pk().b[29][0]++;cov_24ddv5o0pk().s[92]++;this.setSelectedState(result);}else{cov_24ddv5o0pk().b[29][1]++;}});}// #endregion Public Methods
65
+ /**
66
+ * Creates an array of a certain size. Is required for a For in the UI, as Angular does not support counting loops
67
+ * @param size Size of the array
68
+ * @returns Array
69
+ */count(size){cov_2ox2r433ne().f[5]++;cov_2ox2r433ne().s[26]++;return new Array(size);}getChildren(node){cov_2ox2r433ne().f[6]++;cov_2ox2r433ne().s[27]++;if((cov_2ox2r433ne().b[1][0]++,!node)||(cov_2ox2r433ne().b[1][1]++,!this.attrchildren)){cov_2ox2r433ne().b[0][0]++;cov_2ox2r433ne().s[28]++;return[];}else{cov_2ox2r433ne().b[0][1]++;}let children=(cov_2ox2r433ne().s[29]++,node[this.attrchildren]);cov_2ox2r433ne().s[30]++;if(!Array.isArray(children)){cov_2ox2r433ne().b[2][0]++;cov_2ox2r433ne().s[31]++;return[];}else{cov_2ox2r433ne().b[2][1]++;}cov_2ox2r433ne().s[32]++;return children;}getStringField(node,fieldname){cov_2ox2r433ne().f[7]++;cov_2ox2r433ne().s[33]++;if(!node){cov_2ox2r433ne().b[3][0]++;cov_2ox2r433ne().s[34]++;return'';}else{cov_2ox2r433ne().b[3][1]++;}cov_2ox2r433ne().s[35]++;if(!fieldname){cov_2ox2r433ne().b[4][0]++;cov_2ox2r433ne().s[36]++;return node;}else{cov_2ox2r433ne().b[4][1]++;}let value=(cov_2ox2r433ne().s[37]++,node[fieldname]);cov_2ox2r433ne().s[38]++;if(!value){cov_2ox2r433ne().b[5][0]++;cov_2ox2r433ne().s[39]++;return'';}else{cov_2ox2r433ne().b[5][1]++;}cov_2ox2r433ne().s[40]++;return value;}hasChildren(node){cov_2ox2r433ne().f[8]++;cov_2ox2r433ne().s[41]++;return this.getChildren(node).length>0;}isDisabledState(node){cov_2ox2r433ne().f[9]++;cov_2ox2r433ne().s[42]++;if((cov_2ox2r433ne().b[7][0]++,!node)||(cov_2ox2r433ne().b[7][1]++,!this.attrdisableaction)){cov_2ox2r433ne().b[6][0]++;cov_2ox2r433ne().s[43]++;return false;}else{cov_2ox2r433ne().b[6][1]++;}let value=(cov_2ox2r433ne().s[44]++,node[this.attrdisableaction]);cov_2ox2r433ne().s[45]++;return(cov_2ox2r433ne().b[8][0]++,value===true)||(cov_2ox2r433ne().b[8][1]++,value==='true');}isExpandedState(node){cov_2ox2r433ne().f[10]++;cov_2ox2r433ne().s[46]++;if((cov_2ox2r433ne().b[10][0]++,!node)||(cov_2ox2r433ne().b[10][1]++,!this.attrexanded)){cov_2ox2r433ne().b[9][0]++;cov_2ox2r433ne().s[47]++;return false;}else{cov_2ox2r433ne().b[9][1]++;}let value=(cov_2ox2r433ne().s[48]++,node[this.attrexanded]);cov_2ox2r433ne().s[49]++;return(cov_2ox2r433ne().b[11][0]++,value===true)||(cov_2ox2r433ne().b[11][1]++,value==='true');}isHoverState(node){cov_2ox2r433ne().f[11]++;cov_2ox2r433ne().s[50]++;if((cov_2ox2r433ne().b[13][0]++,!node)||(cov_2ox2r433ne().b[13][1]++,!this.attrhoverstate)){cov_2ox2r433ne().b[12][0]++;cov_2ox2r433ne().s[51]++;return false;}else{cov_2ox2r433ne().b[12][1]++;}let value=(cov_2ox2r433ne().s[52]++,node[this.attrhoverstate]);cov_2ox2r433ne().s[53]++;return(cov_2ox2r433ne().b[14][0]++,value===true)||(cov_2ox2r433ne().b[14][1]++,value==='true');}isSelectedState(node){cov_2ox2r433ne().f[12]++;cov_2ox2r433ne().s[54]++;if((cov_2ox2r433ne().b[16][0]++,!node)||(cov_2ox2r433ne().b[16][1]++,!this.attrselected)){cov_2ox2r433ne().b[15][0]++;cov_2ox2r433ne().s[55]++;return false;}else{cov_2ox2r433ne().b[15][1]++;}let value=(cov_2ox2r433ne().s[56]++,node[this.attrselected]);cov_2ox2r433ne().s[57]++;return(cov_2ox2r433ne().b[17][0]++,value===true)||(cov_2ox2r433ne().b[17][1]++,value==='true');}/**
70
+ * Method is called by clicking an action
71
+ * @param action action and node
72
+ */onActionClicked(action){cov_2ox2r433ne().f[13]++;cov_2ox2r433ne().s[58]++;this.actionclicked.emit(action);}/**
73
+ * Method is called when Node in Tree is clicked
74
+ * @param node Selected Node
75
+ */onNodeClicked(node){cov_2ox2r433ne().f[14]++;cov_2ox2r433ne().s[59]++;if((cov_2ox2r433ne().b[19][0]++,this.isDisabledState(node))||(cov_2ox2r433ne().b[19][1]++,this.isSelectedState(node))){cov_2ox2r433ne().b[18][0]++;cov_2ox2r433ne().s[60]++;this.invertExpandedState(node);}else{cov_2ox2r433ne().b[18][1]++;}cov_2ox2r433ne().s[61]++;this.setSelectedState(node);}/**
76
+ * Sets the hover state on a node
77
+ * @param node Node on which the status is set
78
+ * @param state Activate or deactivate HoverState
79
+ */setHoverState(node,state){cov_2ox2r433ne().f[15]++;cov_2ox2r433ne().s[62]++;if((cov_2ox2r433ne().b[21][0]++,!node)||(cov_2ox2r433ne().b[21][1]++,!this.attrhoverstate)){cov_2ox2r433ne().b[20][0]++;cov_2ox2r433ne().s[63]++;return;}else{cov_2ox2r433ne().b[20][1]++;}cov_2ox2r433ne().s[64]++;if(state){cov_2ox2r433ne().b[22][0]++;cov_2ox2r433ne().s[65]++;node[this.attrhoverstate]=true;cov_2ox2r433ne().s[66]++;return;}else{cov_2ox2r433ne().b[22][1]++;}cov_2ox2r433ne().s[67]++;if(!node.hasOwnProperty(this.attrhoverstate)){cov_2ox2r433ne().b[23][0]++;cov_2ox2r433ne().s[68]++;return;}else{cov_2ox2r433ne().b[23][1]++;}cov_2ox2r433ne().s[69]++;delete node[this.attrhoverstate];}/**
80
+ * Sets the selected state on a node
81
+ * @param node Node which is marked as Selected
82
+ */setSelectedState(node){cov_2ox2r433ne().f[16]++;cov_2ox2r433ne().s[70]++;if((cov_2ox2r433ne().b[25][0]++,!node)||(cov_2ox2r433ne().b[25][1]++,!this.attrselected)){cov_2ox2r433ne().b[24][0]++;cov_2ox2r433ne().s[71]++;return;}else{cov_2ox2r433ne().b[24][1]++;}// reset selected state of any node
83
+ cov_2ox2r433ne().s[72]++;this.data.forEach(rootNode=>{cov_2ox2r433ne().f[17]++;cov_2ox2r433ne().s[73]++;return this.resetSelectedState(rootNode);});// set selected node as selected
84
+ cov_2ox2r433ne().s[74]++;node[this.attrselected]=true;// Extract ID from Node
85
+ const idValue=(cov_2ox2r433ne().s[75]++,node[this.attrid]);// Update ngModel
86
+ cov_2ox2r433ne().s[76]++;this.setValue(idValue);// Raise Selected Events
87
+ cov_2ox2r433ne().s[77]++;this.selectednode.emit(node);cov_2ox2r433ne().s[78]++;if(!this.attrid){cov_2ox2r433ne().b[26][0]++;cov_2ox2r433ne().s[79]++;return;}else{cov_2ox2r433ne().b[26][1]++;}let id=(cov_2ox2r433ne().s[80]++,this.getStringField(node,this.attrid));cov_2ox2r433ne().s[81]++;this.selected.emit(id);}/**
88
+ * Validates the model state of the control
89
+ * @param c Control instance
90
+ * @returns Returns a validation error, if present. Otherwise, as Result is NULL
91
+ */validateData(c){cov_2ox2r433ne().f[18]++;let error=(cov_2ox2r433ne().s[82]++,null);cov_2ox2r433ne().s[83]++;if(this.isrequired){cov_2ox2r433ne().b[27][0]++;cov_2ox2r433ne().s[84]++;error=Validation.required(this.validationmessagerequired,this.validationmessagesummaryrequired)(c);}else{cov_2ox2r433ne().b[27][1]++;}cov_2ox2r433ne().s[85]++;return error;}/**
92
+ * Saves the data from the model binding
93
+ * @param value Id of the selected node
94
+ */writeValue(value){cov_2ox2r433ne().f[19]++;cov_2ox2r433ne().s[86]++;super.writeValue(value);// Do not preselct item when tree is empty
95
+ cov_2ox2r433ne().s[87]++;if(!this.data){cov_2ox2r433ne().b[28][0]++;cov_2ox2r433ne().s[88]++;return;}else{cov_2ox2r433ne().b[28][1]++;}cov_2ox2r433ne().s[89]++;this.data.forEach(root=>{cov_2ox2r433ne().f[20]++;const result=(cov_2ox2r433ne().s[90]++,this.findNodeById(root,value));cov_2ox2r433ne().s[91]++;if(result!==null){cov_2ox2r433ne().b[29][0]++;cov_2ox2r433ne().s[92]++;this.setSelectedState(result);}else{cov_2ox2r433ne().b[29][1]++;}});}// #endregion Public Methods
96
96
  // #region Private Methods
97
- /**
98
- * Searches for a node based on the value in the ID attribute
99
- * @param node Node
100
- * @param value Value of the Id attribute
101
- * @returns Returns the node if it is found. If not, NULL is returned.
102
- */findNodeById(node,value){cov_24ddv5o0pk().f[21]++;cov_24ddv5o0pk().s[93]++;if((cov_24ddv5o0pk().b[31][0]++,!this.attrid)||(cov_24ddv5o0pk().b[31][1]++,!node)){cov_24ddv5o0pk().b[30][0]++;cov_24ddv5o0pk().s[94]++;return null;}else{cov_24ddv5o0pk().b[30][1]++;}cov_24ddv5o0pk().s[95]++;if(node[this.attrid]===value){cov_24ddv5o0pk().b[32][0]++;cov_24ddv5o0pk().s[96]++;return node;}else{cov_24ddv5o0pk().b[32][1]++;}const children=(cov_24ddv5o0pk().s[97]++,this.getChildren(node));cov_24ddv5o0pk().s[98]++;for(let child of children){const result=(cov_24ddv5o0pk().s[99]++,this.findNodeById(child,value));cov_24ddv5o0pk().s[100]++;if(result!==null){cov_24ddv5o0pk().b[33][0]++;cov_24ddv5o0pk().s[101]++;return result;}else{cov_24ddv5o0pk().b[33][1]++;}}cov_24ddv5o0pk().s[102]++;return null;}invertExpandedState(node){cov_24ddv5o0pk().f[22]++;cov_24ddv5o0pk().s[103]++;if((cov_24ddv5o0pk().b[35][0]++,!node)||(cov_24ddv5o0pk().b[35][1]++,!this.attrexanded)){cov_24ddv5o0pk().b[34][0]++;cov_24ddv5o0pk().s[104]++;return;}else{cov_24ddv5o0pk().b[34][1]++;}// Items with no children cannot be collabsed
103
- cov_24ddv5o0pk().s[105]++;if((cov_24ddv5o0pk().b[37][0]++,!this.hasChildren(node))&&(cov_24ddv5o0pk().b[37][1]++,!((cov_24ddv5o0pk().b[38][0]++,this.enableasynchload===true)||(cov_24ddv5o0pk().b[38][1]++,this.enableasynchload==='true')))){cov_24ddv5o0pk().b[36][0]++;cov_24ddv5o0pk().s[106]++;return;}else{cov_24ddv5o0pk().b[36][1]++;}let value=(cov_24ddv5o0pk().s[107]++,node[this.attrexanded]);cov_24ddv5o0pk().s[108]++;if((cov_24ddv5o0pk().b[40][0]++,value===true)||(cov_24ddv5o0pk().b[40][1]++,value==='true')){cov_24ddv5o0pk().b[39][0]++;cov_24ddv5o0pk().s[109]++;this.collabsed.emit(node);cov_24ddv5o0pk().s[110]++;node[this.attrexanded]=false;}else{cov_24ddv5o0pk().b[39][1]++;cov_24ddv5o0pk().s[111]++;this.expanded.emit(node);cov_24ddv5o0pk().s[112]++;node[this.attrexanded]=true;}}resetSelectedState(node){cov_24ddv5o0pk().f[23]++;cov_24ddv5o0pk().s[113]++;if((cov_24ddv5o0pk().b[42][0]++,!node)||(cov_24ddv5o0pk().b[42][1]++,!this.attrselected)){cov_24ddv5o0pk().b[41][0]++;cov_24ddv5o0pk().s[114]++;return;}else{cov_24ddv5o0pk().b[41][1]++;}cov_24ddv5o0pk().s[115]++;node[this.attrselected]=false;cov_24ddv5o0pk().s[116]++;this.getChildren(node).forEach(child=>{cov_24ddv5o0pk().f[24]++;cov_24ddv5o0pk().s[117]++;this.resetSelectedState(child);});}}cov_24ddv5o0pk().s[118]++;SacTreeviewCommon.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacTreeviewCommon,deps:[{token:i1.SacFormLayoutCommon,host:true},{token:i0.Injector}],target:i0.ɵɵFactoryTarget.Directive});cov_24ddv5o0pk().s[119]++;SacTreeviewCommon.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacTreeviewCommon,inputs:{attrchildren:"attrchildren",attrdisableaction:"attrdisableaction",attrexanded:"attrexanded",attrhoverstate:"attrhoverstate",attricon:"attricon",attrid:"attrid",attrlabel:"attrlabel",attrselected:"attrselected",data:"data",enableasynchload:"enableasynchload",enableellipsis:"enableellipsis",expandedstate:"expandedstate",isrequired:"isrequired",name:"name",showactionalways:"showactionalways",templateaction:"templateaction",templateicon:"templateicon",templatelabel:"templatelabel",validationmessagerequired:"validationmessagerequired",validationmessagesummaryrequired:"validationmessagesummaryrequired"},outputs:{actionclicked:"actionclicked",collabsed:"collabsed",expanded:"expanded",selected:"selected",selectednode:"selectednode"},usesInheritance:true,ngImport:i0});cov_24ddv5o0pk().s[120]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacTreeviewCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_24ddv5o0pk().f[25]++;cov_24ddv5o0pk().s[121]++;return[{type:i1.SacFormLayoutCommon,decorators:[{type:Host}]},{type:i0.Injector}];},propDecorators:{actionclicked:[{type:Output}],attrchildren:[{type:Input}],attrdisableaction:[{type:Input}],attrexanded:[{type:Input}],attrhoverstate:[{type:Input}],attricon:[{type:Input}],attrid:[{type:Input}],attrlabel:[{type:Input}],attrselected:[{type:Input}],collabsed:[{type:Output}],data:[{type:Input}],enableasynchload:[{type:Input}],enableellipsis:[{type:Input}],expanded:[{type:Output}],expandedstate:[{type:Input}],isrequired:[{type:Input}],name:[{type:Input}],selected:[{type:Output}],selectednode:[{type:Output}],showactionalways:[{type:Input}],templateaction:[{type:Input}],templateicon:[{type:Input}],templatelabel:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagesummaryrequired:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy90cmVldmlldy90cmVldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFZLEtBQUssRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7OztBQUdwRzs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxtQkFBd0I7SUF1SjNELHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7OztPQUdHO0lBQ0gsWUFBb0IsVUFBK0IsRUFBRSxRQUFrQjtRQUNuRSxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBL0poQyxxQkFBcUI7UUFFckI7O1dBRUc7UUFFSSxrQkFBYSxHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUV4Rjs7V0FFRztRQUVJLGlCQUFZLEdBQUcsVUFBVSxDQUFDO1FBRWpDOztXQUVHO1FBQ2Esc0JBQWlCLEdBQUcsVUFBVSxDQUFDO1FBRS9DOztXQUVHO1FBRUksZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFFaEM7O1dBRUc7UUFFSSxtQkFBYyxHQUFHLFlBQVksQ0FBQztRQUVyQzs7V0FFRztRQUVJLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRXRDOztXQUVHO1FBRUksV0FBTSxHQUFrQixJQUFJLENBQUM7UUFFcEM7O1dBRUc7UUFFSSxjQUFTLEdBQUcsT0FBTyxDQUFDO1FBRTNCOztXQUVHO1FBRUksaUJBQVksR0FBRyxVQUFVLENBQUM7UUFFakM7O1dBRUc7UUFFSSxjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFOUQ7O1dBRUc7UUFFSSxTQUFJLEdBQVUsRUFBRSxDQUFDO1FBRXhCOztXQUVHO1FBRUkscUJBQWdCLEdBQXFCLEtBQUssQ0FBQztRQUVsRDs7V0FFRztRQUVJLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBRTdCOztXQUVHO1FBRUksYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTdEOztXQUVHO1FBRUksa0JBQWEsR0FBcUIsSUFBSSxDQUFDO1FBRTlDOztXQUVHO1FBRUksZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVuQzs7V0FFRztRQUVJLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFekI7O1dBRUc7UUFFSSxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFN0Q7O1dBRUc7UUFFSSxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBMEJqRTs7V0FFRztRQUNhLDhCQUF5QixHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQztRQUV0Rzs7V0FFRztRQUVJLHFDQUFnQyxHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQztJQVkzRyxDQUFDO0lBRUQsMEJBQTBCO0lBRTFCLHFDQUFxQztJQUVyQyxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDO0lBQ25ELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLG1CQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUM7SUFDakQsQ0FBQztJQUVELHdDQUF3QztJQUV4Qyx5QkFBeUI7SUFFekI7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFTO1FBQ3hCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzdCLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzFCLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRU0sY0FBYyxDQUFDLElBQVMsRUFBRSxTQUFpQjtRQUM5QyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFTO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxlQUFlLENBQUMsSUFBUztRQUM1QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFFTSxlQUFlLENBQUMsSUFBUztRQUM1QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM1QixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLENBQUM7SUFDOUMsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFTO1FBQ3pCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQy9CLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sQ0FBQztJQUM5QyxDQUFDO0lBRU0sZUFBZSxDQUFDLElBQVM7UUFDNUIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDN0IsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsTUFBc0I7UUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWEsQ0FBQyxJQUFTO1FBQzFCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGFBQWEsQ0FBQyxJQUFTLEVBQUUsS0FBYztRQUMxQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUMzQyxPQUFPO1NBQ1Y7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLElBQVM7UUFDN0IsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDN0IsT0FBTztTQUNWO1FBRUQsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUVuRSxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFL0IsdUJBQXVCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbEMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkIsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2QsT0FBTztTQUNWO1FBRUQsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLENBQWtCO1FBQ2xDLElBQUksS0FBSyxHQUE0QixJQUFJLENBQUM7UUFFMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsS0FBVTtRQUN4QixLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFOUMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO2dCQUNqQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDakM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw0QkFBNEI7SUFFNUIsMEJBQTBCO0lBRTFCOzs7OztPQUtHO0lBQ0ssWUFBWSxDQUFDLElBQVMsRUFBRSxLQUFVO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLEtBQUssSUFBSSxLQUFLLElBQUksUUFBUSxFQUFFO1lBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9DLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtnQkFDakIsT0FBTyxNQUFNLENBQUM7YUFDakI7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUFTO1FBQ2pDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUVELDZDQUE2QztRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssTUFBTSxDQUFDLEVBQUU7WUFDbEcsT0FBTztTQUNWO1FBRUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVuQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNsQzthQUFNO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBUztRQUNoQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM3QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUVoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzhHQW5jUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTOzswQkFnS08sSUFBSTttRUF4SlYsYUFBYTtzQkFEbkIsTUFBTTtnQkFPQSxZQUFZO3NCQURsQixLQUFLO2dCQU1VLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFNQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLGNBQWM7c0JBRHBCLEtBQUs7Z0JBT0MsUUFBUTtzQkFEZCxLQUFLO2dCQU9DLE1BQU07c0JBRFosS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsWUFBWTtzQkFEbEIsS0FBSztnQkFPQyxTQUFTO3NCQURmLE1BQU07Z0JBT0EsSUFBSTtzQkFEVixLQUFLO2dCQU9DLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFPQyxjQUFjO3NCQURwQixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsTUFBTTtnQkFPQSxhQUFhO3NCQURuQixLQUFLO2dCQU9DLFVBQVU7c0JBRGhCLEtBQUs7Z0JBT0MsSUFBSTtzQkFEVixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsTUFBTTtnQkFPQSxZQUFZO3NCQURsQixNQUFNO2dCQU9BLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFPQyxjQUFjO3NCQURwQixLQUFLO2dCQU9DLFlBQVk7c0JBRGxCLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsS0FBSztnQkFNVSx5QkFBeUI7c0JBQXhDLEtBQUs7Z0JBTUMsZ0NBQWdDO3NCQUR0QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sJztcclxuaW1wb3J0IHsgVHJlZXZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RyZWV2aWV3YWN0aW9uLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0JztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3QsIEluamVjdG9yLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKipcclxuICogQmFzaXMgS29tcG9uZW50ZSBmw7xyIFNhY1RyZWVWaWV3XHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY1RyZWV2aWV3Q29tbW9uIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxhbnk+IHtcclxuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnQgd2hlbiBBY3Rpb24gaXMgY2xpY2tlZCBvbiBOb2RlLiAgQW4gb2JqZWN0IG9mIHRoZSB0eXBlICdUcmVldmlld0FjdGlvbicgaXMgcmV0dXJuZWQuIEluIHRoZSBkZWZhdWx0IGNhc2UsICdhY3Rpb24nIGluIHRoaXMgb2JqZWN0IGlzIGFsd2F5cyB0aGUgdmFsdWUgJ2RlZmF1bHQnLiBUaGUgdmFsdWUgY2FuIGJlIGNoYW5nZWQgdmlhIHRoZSAndGVtcGxhdGVhY3Rpb24nLlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBhY3Rpb25jbGlja2VkOiBFdmVudEVtaXR0ZXI8VHJlZXZpZXdBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVldmlld0FjdGlvbj4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG9uIHRoZSBkYXRhIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBjaGlsZHJlbiBvZiB0aGUgc3RydWN0dXJlIGVsZW1lbnQuIE11c3QgYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2NoaWxkcmVuJ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF0dHJjaGlsZHJlbiA9ICdjaGlsZHJlbic7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmVzIHRoZSBwcm9wZXJ0eSBvbiB0aGUgJ2RhdGEnIG9iamVjdCB3aXRoIHdoaWNoIHRoZSBhY3Rpb25zIGZvciBhIG5vZGUgY2FuIGJlIGRlYWN0aXZhdGVkLiBBICdkaXNhYmxlZCcgcHJvcGVydHkgaXMgdXNlZCBieSBkZWZhdWx0LlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYXR0cmRpc2FibGVhY3Rpb24gPSAnZGlzYWJsZWQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgb24gdGhlICdkYXRhJyBvYmplY3QgdGhhdCBzdG9yZXMgdGhlIGV4cGFuZGVkIHN0YXRlLiBQcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbi4gRGVmYXVsdCBpcyAnZXhwYW5kZWQnXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXR0cmV4YW5kZWQgPSAnZXhwYW5kZWQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgZm9yIHNhdmluZyB0aGUgSG92ZXJTdGF0ZSBvbiB0aGUgZmllbGQuIElmIHRoZSBwcm9wZXJ0eSBpcyBub3QgcHJlc2VudCBvbiB0aGUgbm9kZSwgaXQgaXMgYXV0b21hdGljYWxseSBjcmVhdGVkIGFuZCByZW1vdmVkIGFnYWluLiBUaGUgdmFsdWUgY2FuIHVzdWFsbHkgYmUgbGVmdCBhdCB0aGUgZGVmYXVsdCB2YWx1ZSB1bmxlc3MgdGhlcmUgaXMgYSBjb25mbGljdCB3aXRoIGEgcHJvcGVydHkgb24gdGhlIG5vZGUgdGhhdCBpcyByZXF1aXJlZCBmb3Igb3RoZXIgcHVycG9zZXMuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXR0cmhvdmVyc3RhdGUgPSAnaG92ZXJzdGF0ZSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBvbiAnZGF0YScgb2JqZWN0LCB3aGljaCBjb250YWlucyB0aGUgaWNvbiBmb3IgdGhlIG5vZGUuIEJ5IGRlZmF1bHQsIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc2V0LCB3aGljaCBoaWRlcyB0aGUgaWNvbiBpbiB0aGUgbm9kZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdHRyaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBwcm9wZXJ0eSBvbiB0aGUgJ2RhdGEnIG9iamVjdCBjb250YWlucyBhbiBJRCBvZiB0aGUgbm9kZS4gVGhlIGRlZmF1bHQgaXMgJ2lkJy4gSWYgdGhlIHByb3BlcnR5IGlzIHNldCB0byBOVUxMLCB0aGUgc2VsZWN0ZWRJZCBldmVudCBpcyBubyBsb25nZXIgdHJpZ2dlcmVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF0dHJpZDogc3RyaW5nIHwgbnVsbCA9ICdpZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBvbiAnZGF0YScgb2JqZWN0LCB3aGljaCBjb250YWlucyB0aGUgbGFiZWwgZm9yIHRoZSBub2RlLiBEZWZhdWx0IGlzICdsYWJlbCdcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdHRybGFiZWwgPSAnbGFiZWwnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgb24gJ2RhdGEnIG9iamVjdCwgd2hpY2ggZGVmaW5lcyB3aGV0aGVyIHRoZSBub2RlIGlzIHNlbGVjdGVkIG9yIG5vdC4gSXQgc2hvdWxkIGJlIGVuc3VyZWQgdGhhdCBvbmx5IDEgbm9kZSBoYXMgdGhlIHZhbHVlIGZvciBTZWxlY3RlZCBzZXQgdG8gdHJ1ZS4gRGVmYXVsdCBpcyAnc2VsZWN0ZWQnLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF0dHJzZWxlY3RlZCA9ICdzZWxlY3RlZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCB3aGVuIGEgbm9kZSBpcyBjb2xsYXBzZWQuIFJldHVybnMgdGhlIG5vZGUgZWxlbWVudCBhcyBhIHBhcmFtZXRlclxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBjb2xsYWJzZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcHJvcGVydHkgY29udGFpbnMgYW4gYXJyYXkgb2Ygbm9kZXMuIFRoZSBkYXRhIG11c3QgYWxyZWFkeSBtYXAgdGhlIHRyZWUgdmlhIGNoaWxkIHByb3BlcnRpZXMuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGF0YTogYW55W10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2YXRlcyB0aGUgJ2V4cGFuZCcgYW5kICdjb2xsYWJzZScgZXZlbnQgZXZlbiBpZiBhIG5vZGUgaGFzIG5vIGNoaWxkcmVuLiBUaGlzIGlzIGhlbHBmdWwgaWYgbm9kZSBlbGVtZW50cyBhcmUgdG8gYmUgcmVsb2FkZWQgYXQgcnVudGltZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlbmFibGVhc3luY2hsb2FkOiBib29sZWFuIHwgc3RyaW5nID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBY3RpdmF0ZXMgRWxsaXBzaXMgb24gdGhlIG5vZGUgbGFiZWxzXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZW5hYmxlZWxsaXBzaXMgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnQgd2hlbiBhIG5vZGUgaXMgZXhwYW5kZWQuIFJldHVybnMgdGhlIG5vZGUgZWxlbWVudCBhcyBhIHBhcmFtZXRlclxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBleHBhbmRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgd2hldGhlciBhbiBpY29uIGZvciB0aGUgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXR1cyBzaG91bGQgYmUgZGlzcGxheWVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGV4cGFuZGVkc3RhdGU6IGJvb2xlYW4gfCBzdHJpbmcgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBub2RlIG11c3QgYmUgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBUcmVlVmlldyBjb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCB3aGVuIGEgbm9kZSBpcyBzZWxlY3RlZC4gUmV0dXJucyB0aGUgaWQgYXR0cmlidXRlIGFzIGEgcGFyYW1ldGVyLiBUaGUgZXZlbnQgaXMgbm90IHRyaWdnZXJlZCBpZiAnYXR0cmlkJyBpcyBub3Qgc2V0LlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IHdoZW4gYSBub2RlIGlzIHNlbGVjdGVkLiBSZXR1cm5zIHRoZSBub2RlIGVsZW1lbnQgYXMgYSBwYXJhbWV0ZXIuXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGVkbm9kZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgdGhhdCB0aGUgYWN0aW9uIHRlbXBsYXRlIGlzIGRpc3BsYXllZCBpbmRlcGVuZGVudGx5IG9mIHRoZSBzZWxlY3RlZCBzdGF0ZS4gSWYgdGhlIHZhbHVlIGlzICd0cnVlJywgdGhlIGFjdGlvbiB0ZW1wbGF0ZSBpcyBkaXNwbGF5ZWQgZm9yIGV2ZXJ5IGVsZW1lbnQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd2FjdGlvbmFsd2F5cztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgYWN0aW9ucyBwZXIgbm9kZS4gVGVtcGxhdGUgcGFyYW1ldGVycyBhcmU6ICdub2RlJ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRlbXBsYXRlYWN0aW9uOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciBpY29uIHBlciBub2RlLiBUZW1wbGF0ZSBwYXJhbWV0ZXJzIGFyZTogJ25vZGUnXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGVtcGxhdGVpY29uOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciB0aGUgbGFiZWwgYXJlYSBwZXIgbm9kZS4gVGVtcGxhdGUgcGFyYW1ldGVycyBhcmU6ICdub2RlJyBhbmQgJ2xhYmVsJ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRlbXBsYXRlbGFiZWw6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICogQHBhcmFtIGluamVjdG9yIFNlcnZpY2UgSW5qZWN0b3JcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gICAgcHVibGljIGdldCBpY29uQWN0aW9uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVHJlZXZpZXdOb2RlQWN0aW9uSWNvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENTUyBpY29uIGZvciBmb2xkZXJzIGluIHRyZWUgdGhlcmUgYXJlIGNvbGxhYnNlZFxyXG4gICAgICogQHJldHVybnMgY3NzIGNsYXNzIHdpdGggaWNvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGljb25Gb2xkZXJDb2xsYWJzZWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5UcmVldmlld05vZGVDbG9zZWRJY29uO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGljb24gY2xhc3MgZm9yIGZvbGRlcnMgd2l0aG91dCBzdWJmb2xkZXJzXHJcbiAgICAgKiBAcmV0dXJucyBjc3MgY2xhc3Mgd2l0aCBpY29uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgaWNvbkZvbGRlckVtcHR5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVHJlZXZpZXdOb2RlRW1wdHlJY29uO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGljb24gZm9yIGZvbGRlcnMgaW4gdHJlZSB0aGVyZSBhcmUgZXhwYW5kZWRcclxuICAgICAqIEByZXR1cm5zIGNzcyBjbGFzcyB3aXRoIGljb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBpY29uRm9sZGVyT3BlbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlRyZWV2aWV3Tm9kZU9wZW5JY29uO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGEgY2VydGFpbiBzaXplLiBJcyByZXF1aXJlZCBmb3IgYSBGb3IgaW4gdGhlIFVJLCBhcyBBbmd1bGFyIGRvZXMgbm90IHN1cHBvcnQgY291bnRpbmcgbG9vcHNcclxuICAgICAqIEBwYXJhbSBzaXplIFNpemUgb2YgdGhlIGFycmF5XHJcbiAgICAgKiBAcmV0dXJucyBBcnJheVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY291bnQoc2l6ZTogbnVtYmVyKTogQXJyYXk8dm9pZD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQXJyYXkoc2l6ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldENoaWxkcmVuKG5vZGU6IGFueSk6IGFueVtdIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IG5vZGVbdGhpcy5hdHRyY2hpbGRyZW5dO1xyXG5cclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjaGlsZHJlbjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U3RyaW5nRmllbGQobm9kZTogYW55LCBmaWVsZG5hbWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgaWYgKCFub2RlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghZmllbGRuYW1lKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVtmaWVsZG5hbWVdO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFzQ2hpbGRyZW4obm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2hpbGRyZW4obm9kZSkubGVuZ3RoID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNEaXNhYmxlZFN0YXRlKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyZGlzYWJsZWFjdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cmRpc2FibGVhY3Rpb25dO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0V4cGFuZGVkU3RhdGUobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJleGFuZGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbdGhpcy5hdHRyZXhhbmRlZF07XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzSG92ZXJTdGF0ZShub2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmhvdmVyc3RhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVt0aGlzLmF0dHJob3ZlcnN0YXRlXTtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNTZWxlY3RlZFN0YXRlKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyc2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVt0aGlzLmF0dHJzZWxlY3RlZF07XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgaXMgY2FsbGVkIGJ5IGNsaWNraW5nIGFuIGFjdGlvblxyXG4gICAgICogQHBhcmFtIGFjdGlvbiBhY3Rpb24gYW5kIG5vZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQWN0aW9uQ2xpY2tlZChhY3Rpb246IFRyZWV2aWV3QWN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25jbGlja2VkLmVtaXQoYWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZCBpcyBjYWxsZWQgd2hlbiBOb2RlIGluIFRyZWUgaXMgY2xpY2tlZFxyXG4gICAgICogQHBhcmFtIG5vZGUgU2VsZWN0ZWQgTm9kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25Ob2RlQ2xpY2tlZChub2RlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkU3RhdGUobm9kZSkgfHwgdGhpcy5pc1NlbGVjdGVkU3RhdGUobm9kZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnZlcnRFeHBhbmRlZFN0YXRlKG5vZGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFN0YXRlKG5vZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgaG92ZXIgc3RhdGUgb24gYSBub2RlXHJcbiAgICAgKiBAcGFyYW0gbm9kZSBOb2RlIG9uIHdoaWNoIHRoZSBzdGF0dXMgaXMgc2V0XHJcbiAgICAgKiBAcGFyYW0gc3RhdGUgQWN0aXZhdGUgb3IgZGVhY3RpdmF0ZSBIb3ZlclN0YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRIb3ZlclN0YXRlKG5vZGU6IGFueSwgc3RhdGU6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmhvdmVyc3RhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHN0YXRlKSB7XHJcbiAgICAgICAgICAgIG5vZGVbdGhpcy5hdHRyaG92ZXJzdGF0ZV0gPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIW5vZGUuaGFzT3duUHJvcGVydHkodGhpcy5hdHRyaG92ZXJzdGF0ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVsZXRlIG5vZGVbdGhpcy5hdHRyaG92ZXJzdGF0ZV07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBzZWxlY3RlZCBzdGF0ZSBvbiBhIG5vZGVcclxuICAgICAqIEBwYXJhbSBub2RlIE5vZGUgd2hpY2ggaXMgbWFya2VkIGFzIFNlbGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRTZWxlY3RlZFN0YXRlKG5vZGU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyc2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gcmVzZXQgc2VsZWN0ZWQgc3RhdGUgb2YgYW55IG5vZGVcclxuICAgICAgICB0aGlzLmRhdGEuZm9yRWFjaCgocm9vdE5vZGUpID0+IHRoaXMucmVzZXRTZWxlY3RlZFN0YXRlKHJvb3ROb2RlKSk7XHJcblxyXG4gICAgICAgIC8vIHNldCBzZWxlY3RlZCBub2RlIGFzIHNlbGVjdGVkXHJcbiAgICAgICAgbm9kZVt0aGlzLmF0dHJzZWxlY3RlZF0gPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBFeHRyYWN0IElEIGZyb20gTm9kZVxyXG4gICAgICAgIGNvbnN0IGlkVmFsdWUgPSBub2RlW3RoaXMuYXR0cmlkXTtcclxuXHJcbiAgICAgICAgLy8gVXBkYXRlIG5nTW9kZWxcclxuICAgICAgICB0aGlzLnNldFZhbHVlKGlkVmFsdWUpO1xyXG5cclxuICAgICAgICAvLyBSYWlzZSBTZWxlY3RlZCBFdmVudHNcclxuICAgICAgICB0aGlzLnNlbGVjdGVkbm9kZS5lbWl0KG5vZGUpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuYXR0cmlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBpZCA9IHRoaXMuZ2V0U3RyaW5nRmllbGQobm9kZSwgdGhpcy5hdHRyaWQpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0ZXMgdGhlIG1vZGVsIHN0YXRlIG9mIHRoZSBjb250cm9sXHJcbiAgICAgKiBAcGFyYW0gYyBDb250cm9sIGluc3RhbmNlXHJcbiAgICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgdmFsaWRhdGlvbiBlcnJvciwgaWYgcHJlc2VudC4gT3RoZXJ3aXNlLCBhcyBSZXN1bHQgaXMgTlVMTFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xyXG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQodGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLCB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkKShjKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNhdmVzIHRoZSBkYXRhIGZyb20gdGhlIG1vZGVsIGJpbmRpbmdcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBJZCBvZiB0aGUgc2VsZWN0ZWQgbm9kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgIC8vIERvIG5vdCBwcmVzZWxjdCBpdGVtIHdoZW4gdHJlZSBpcyBlbXB0eVxyXG4gICAgICAgIGlmICghdGhpcy5kYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKChyb290KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZmluZE5vZGVCeUlkKHJvb3QsIHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRTdGF0ZShyZXN1bHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZWFyY2hlcyBmb3IgYSBub2RlIGJhc2VkIG9uIHRoZSB2YWx1ZSBpbiB0aGUgSUQgYXR0cmlidXRlXHJcbiAgICAgKiBAcGFyYW0gbm9kZSBOb2RlXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgb2YgdGhlIElkIGF0dHJpYnV0ZVxyXG4gICAgICogQHJldHVybnMgUmV0dXJucyB0aGUgbm9kZSBpZiBpdCBpcyBmb3VuZC4gSWYgbm90LCBOVUxMIGlzIHJldHVybmVkLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGZpbmROb2RlQnlJZChub2RlOiBhbnksIHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGlmICghdGhpcy5hdHRyaWQgfHwgIW5vZGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobm9kZVt0aGlzLmF0dHJpZF0gPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmdldENoaWxkcmVuKG5vZGUpO1xyXG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZmluZE5vZGVCeUlkKGNoaWxkLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW52ZXJ0RXhwYW5kZWRTdGF0ZShub2RlOiBhbnkpIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmV4YW5kZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSXRlbXMgd2l0aCBubyBjaGlsZHJlbiBjYW5ub3QgYmUgY29sbGFic2VkXHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc0NoaWxkcmVuKG5vZGUpICYmICEodGhpcy5lbmFibGVhc3luY2hsb2FkID09PSB0cnVlIHx8IHRoaXMuZW5hYmxlYXN5bmNobG9hZCA9PT0gJ3RydWUnKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cmV4YW5kZWRdO1xyXG5cclxuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbGxhYnNlZC5lbWl0KG5vZGUpO1xyXG4gICAgICAgICAgICBub2RlW3RoaXMuYXR0cmV4YW5kZWRdID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5leHBhbmRlZC5lbWl0KG5vZGUpO1xyXG4gICAgICAgICAgICBub2RlW3RoaXMuYXR0cmV4YW5kZWRdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXNldFNlbGVjdGVkU3RhdGUobm9kZTogYW55KSB7XHJcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBub2RlW3RoaXMuYXR0cnNlbGVjdGVkXSA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmdldENoaWxkcmVuKG5vZGUpLmZvckVhY2goKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRTZWxlY3RlZFN0YXRlKGNoaWxkKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdfQ==
104
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMjRkZHY1bzBwayIsImFjdHVhbENvdmVyYWdlIiwiU2FjQmFzZU1vZGVsQ29udHJvbCIsIlZhbGlkYXRpb24iLCJEaXJlY3RpdmUiLCJFdmVudEVtaXR0ZXIiLCJIb3N0IiwiSW5wdXQiLCJPdXRwdXQiLCJTYWNUcmVldmlld0NvbW1vbiIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZiIsInMiLCJhY3Rpb25jbGlja2VkIiwiYXR0cmNoaWxkcmVuIiwiYXR0cmRpc2FibGVhY3Rpb24iLCJhdHRyZXhhbmRlZCIsImF0dHJob3ZlcnN0YXRlIiwiYXR0cmljb24iLCJhdHRyaWQiLCJhdHRybGFiZWwiLCJhdHRyc2VsZWN0ZWQiLCJjb2xsYWJzZWQiLCJkYXRhIiwiZW5hYmxlYXN5bmNobG9hZCIsImVuYWJsZWVsbGlwc2lzIiwiZXhwYW5kZWQiLCJleHBhbmRlZHN0YXRlIiwiaXNyZXF1aXJlZCIsIm5hbWUiLCJzZWxlY3RlZCIsInNlbGVjdGVkbm9kZSIsInZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQiLCJ2YWxpZGF0aW9uS2V5U2VydmljZSIsIlZhbGlkYXRpb25FcnJvclJlcXVpcmVkIiwidmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQiLCJpY29uQWN0aW9uIiwiaWNvblNlcnZpY2UiLCJUcmVldmlld05vZGVBY3Rpb25JY29uIiwiaWNvbkZvbGRlckNvbGxhYnNlZCIsIlRyZWV2aWV3Tm9kZUNsb3NlZEljb24iLCJpY29uRm9sZGVyRW1wdHkiLCJUcmVldmlld05vZGVFbXB0eUljb24iLCJpY29uRm9sZGVyT3BlbiIsIlRyZWV2aWV3Tm9kZU9wZW5JY29uIiwiY291bnQiLCJzaXplIiwiQXJyYXkiLCJnZXRDaGlsZHJlbiIsIm5vZGUiLCJiIiwiY2hpbGRyZW4iLCJpc0FycmF5IiwiZ2V0U3RyaW5nRmllbGQiLCJmaWVsZG5hbWUiLCJ2YWx1ZSIsImhhc0NoaWxkcmVuIiwibGVuZ3RoIiwiaXNEaXNhYmxlZFN0YXRlIiwiaXNFeHBhbmRlZFN0YXRlIiwiaXNIb3ZlclN0YXRlIiwiaXNTZWxlY3RlZFN0YXRlIiwib25BY3Rpb25DbGlja2VkIiwiYWN0aW9uIiwiZW1pdCIsIm9uTm9kZUNsaWNrZWQiLCJpbnZlcnRFeHBhbmRlZFN0YXRlIiwic2V0U2VsZWN0ZWRTdGF0ZSIsInNldEhvdmVyU3RhdGUiLCJzdGF0ZSIsImhhc093blByb3BlcnR5IiwiZm9yRWFjaCIsInJvb3ROb2RlIiwicmVzZXRTZWxlY3RlZFN0YXRlIiwiaWRWYWx1ZSIsInNldFZhbHVlIiwiaWQiLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJyZXF1aXJlZCIsIndyaXRlVmFsdWUiLCJyb290IiwicmVzdWx0IiwiZmluZE5vZGVCeUlkIiwiY2hpbGQiLCJkZXBzIiwidG9rZW4iLCJpMSIsIlNhY0Zvcm1MYXlvdXRDb21tb24iLCJob3N0IiwiaTAiLCJJbmplY3RvciIsInRhcmdldCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwiaW5wdXRzIiwic2hvd2FjdGlvbmFsd2F5cyIsInRlbXBsYXRlYWN0aW9uIiwidGVtcGxhdGVpY29uIiwidGVtcGxhdGVsYWJlbCIsIm91dHB1dHMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy90cmVldmlldy90cmVldmlldy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNCYXNlTW9kZWxDb250cm9sIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5pbXBvcnQgeyBUcmVldmlld0FjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdHJlZXZpZXdhY3Rpb24uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdCwgSW5qZWN0b3IsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qKlxyXG4gKiBCYXNpcyBLb21wb25lbnRlIGbDvHIgU2FjVHJlZVZpZXdcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgU2FjVHJlZXZpZXdDb21tb24gZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPGFueT4ge1xyXG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCB3aGVuIEFjdGlvbiBpcyBjbGlja2VkIG9uIE5vZGUuICBBbiBvYmplY3Qgb2YgdGhlIHR5cGUgJ1RyZWV2aWV3QWN0aW9uJyBpcyByZXR1cm5lZC4gSW4gdGhlIGRlZmF1bHQgY2FzZSwgJ2FjdGlvbicgaW4gdGhpcyBvYmplY3QgaXMgYWx3YXlzIHRoZSB2YWx1ZSAnZGVmYXVsdCcuIFRoZSB2YWx1ZSBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlICd0ZW1wbGF0ZWFjdGlvbicuXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGFjdGlvbmNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxUcmVldmlld0FjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyZWV2aWV3QWN0aW9uPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydHkgb24gdGhlIGRhdGEgb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGNoaWxkcmVuIG9mIHRoZSBzdHJ1Y3R1cmUgZWxlbWVudC4gTXVzdCBiZSBhbiBhcnJheSBvZiBvYmplY3RzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAnY2hpbGRyZW4nXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXR0cmNoaWxkcmVuID0gJ2NoaWxkcmVuJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgdGhlIHByb3BlcnR5IG9uIHRoZSAnZGF0YScgb2JqZWN0IHdpdGggd2hpY2ggdGhlIGFjdGlvbnMgZm9yIGEgbm9kZSBjYW4gYmUgZGVhY3RpdmF0ZWQuIEEgJ2Rpc2FibGVkJyBwcm9wZXJ0eSBpcyB1c2VkIGJ5IGRlZmF1bHQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhdHRyZGlzYWJsZWFjdGlvbiA9ICdkaXNhYmxlZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBvbiB0aGUgJ2RhdGEnIG9iamVjdCB0aGF0IHN0b3JlcyB0aGUgZXhwYW5kZWQgc3RhdGUuIFByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSBib29sZWFuLiBEZWZhdWx0IGlzICdleHBhbmRlZCdcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdHRyZXhhbmRlZCA9ICdleHBhbmRlZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBmb3Igc2F2aW5nIHRoZSBIb3ZlclN0YXRlIG9uIHRoZSBmaWVsZC4gSWYgdGhlIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50IG9uIHRoZSBub2RlLCBpdCBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYW5kIHJlbW92ZWQgYWdhaW4uIFRoZSB2YWx1ZSBjYW4gdXN1YWxseSBiZSBsZWZ0IGF0IHRoZSBkZWZhdWx0IHZhbHVlIHVubGVzcyB0aGVyZSBpcyBhIGNvbmZsaWN0IHdpdGggYSBwcm9wZXJ0eSBvbiB0aGUgbm9kZSB0aGF0IGlzIHJlcXVpcmVkIGZvciBvdGhlciBwdXJwb3Nlcy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdHRyaG92ZXJzdGF0ZSA9ICdob3ZlcnN0YXRlJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG9uICdkYXRhJyBvYmplY3QsIHdoaWNoIGNvbnRhaW5zIHRoZSBpY29uIGZvciB0aGUgbm9kZS4gQnkgZGVmYXVsdCwgdGhlIHByb3BlcnR5IGlzIG5vdCBzZXQsIHdoaWNoIGhpZGVzIHRoZSBpY29uIGluIHRoZSBub2RlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF0dHJpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHByb3BlcnR5IG9uIHRoZSAnZGF0YScgb2JqZWN0IGNvbnRhaW5zIGFuIElEIG9mIHRoZSBub2RlLiBUaGUgZGVmYXVsdCBpcyAnaWQnLiBJZiB0aGUgcHJvcGVydHkgaXMgc2V0IHRvIE5VTEwsIHRoZSBzZWxlY3RlZElkIGV2ZW50IGlzIG5vIGxvbmdlciB0cmlnZ2VyZWQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXR0cmlkOiBzdHJpbmcgfCBudWxsID0gJ2lkJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG9uICdkYXRhJyBvYmplY3QsIHdoaWNoIGNvbnRhaW5zIHRoZSBsYWJlbCBmb3IgdGhlIG5vZGUuIERlZmF1bHQgaXMgJ2xhYmVsJ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF0dHJsYWJlbCA9ICdsYWJlbCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBvbiAnZGF0YScgb2JqZWN0LCB3aGljaCBkZWZpbmVzIHdoZXRoZXIgdGhlIG5vZGUgaXMgc2VsZWN0ZWQgb3Igbm90LiBJdCBzaG91bGQgYmUgZW5zdXJlZCB0aGF0IG9ubHkgMSBub2RlIGhhcyB0aGUgdmFsdWUgZm9yIFNlbGVjdGVkIHNldCB0byB0cnVlLiBEZWZhdWx0IGlzICdzZWxlY3RlZCcuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXR0cnNlbGVjdGVkID0gJ3NlbGVjdGVkJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IHdoZW4gYSBub2RlIGlzIGNvbGxhcHNlZC4gUmV0dXJucyB0aGUgbm9kZSBlbGVtZW50IGFzIGEgcGFyYW1ldGVyXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNvbGxhYnNlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwcm9wZXJ0eSBjb250YWlucyBhbiBhcnJheSBvZiBub2Rlcy4gVGhlIGRhdGEgbXVzdCBhbHJlYWR5IG1hcCB0aGUgdHJlZSB2aWEgY2hpbGQgcHJvcGVydGllcy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkYXRhOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWN0aXZhdGVzIHRoZSAnZXhwYW5kJyBhbmQgJ2NvbGxhYnNlJyBldmVudCBldmVuIGlmIGEgbm9kZSBoYXMgbm8gY2hpbGRyZW4uIFRoaXMgaXMgaGVscGZ1bCBpZiBub2RlIGVsZW1lbnRzIGFyZSB0byBiZSByZWxvYWRlZCBhdCBydW50aW1lLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGVuYWJsZWFzeW5jaGxvYWQ6IGJvb2xlYW4gfCBzdHJpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2YXRlcyBFbGxpcHNpcyBvbiB0aGUgbm9kZSBsYWJlbHNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBlbmFibGVlbGxpcHNpcyA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCB3aGVuIGEgbm9kZSBpcyBleHBhbmRlZC4gUmV0dXJucyB0aGUgbm9kZSBlbGVtZW50IGFzIGEgcGFyYW1ldGVyXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGV4cGFuZGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIGFuIGljb24gZm9yIHRoZSBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdHVzIHNob3VsZCBiZSBkaXNwbGF5ZWQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZXhwYW5kZWRzdGF0ZTogYm9vbGVhbiB8IHN0cmluZyA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIG5vZGUgbXVzdCBiZSBzZWxlY3RlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlzcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgdGhlIFRyZWVWaWV3IGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IHdoZW4gYSBub2RlIGlzIHNlbGVjdGVkLiBSZXR1cm5zIHRoZSBpZCBhdHRyaWJ1dGUgYXMgYSBwYXJhbWV0ZXIuIFRoZSBldmVudCBpcyBub3QgdHJpZ2dlcmVkIGlmICdhdHRyaWQnIGlzIG5vdCBzZXQuXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnQgd2hlbiBhIG5vZGUgaXMgc2VsZWN0ZWQuIFJldHVybnMgdGhlIG5vZGUgZWxlbWVudCBhcyBhIHBhcmFtZXRlci5cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRub2RlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGF0IHRoZSBhY3Rpb24gdGVtcGxhdGUgaXMgZGlzcGxheWVkIGluZGVwZW5kZW50bHkgb2YgdGhlIHNlbGVjdGVkIHN0YXRlLiBJZiB0aGUgdmFsdWUgaXMgJ3RydWUnLCB0aGUgYWN0aW9uIHRlbXBsYXRlIGlzIGRpc3BsYXllZCBmb3IgZXZlcnkgZWxlbWVudC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93YWN0aW9uYWx3YXlzO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciBhY3Rpb25zIHBlciBub2RlLiBUZW1wbGF0ZSBwYXJhbWV0ZXJzIGFyZTogJ25vZGUnXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGVtcGxhdGVhY3Rpb246IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gdGVtcGxhdGUgZm9yIGljb24gcGVyIG5vZGUuIFRlbXBsYXRlIHBhcmFtZXRlcnMgYXJlOiAnbm9kZSdcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0ZW1wbGF0ZWljb246IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gdGVtcGxhdGUgZm9yIHRoZSBsYWJlbCBhcmVhIHBlciBub2RlLiBUZW1wbGF0ZSBwYXJhbWV0ZXJzIGFyZTogJ25vZGUnIGFuZCAnbGFiZWwnXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGVtcGxhdGVsYWJlbDogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgU2VydmljZSBJbmplY3RvclxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGljb25BY3Rpb24oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5UcmVldmlld05vZGVBY3Rpb25JY29uO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGljb24gZm9yIGZvbGRlcnMgaW4gdHJlZSB0aGVyZSBhcmUgY29sbGFic2VkXHJcbiAgICAgKiBAcmV0dXJucyBjc3MgY2xhc3Mgd2l0aCBpY29uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgaWNvbkZvbGRlckNvbGxhYnNlZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlRyZWV2aWV3Tm9kZUNsb3NlZEljb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDU1MgaWNvbiBjbGFzcyBmb3IgZm9sZGVycyB3aXRob3V0IHN1YmZvbGRlcnNcclxuICAgICAqIEByZXR1cm5zIGNzcyBjbGFzcyB3aXRoIGljb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBpY29uRm9sZGVyRW1wdHkoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5UcmVldmlld05vZGVFbXB0eUljb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDU1MgaWNvbiBmb3IgZm9sZGVycyBpbiB0cmVlIHRoZXJlIGFyZSBleHBhbmRlZFxyXG4gICAgICogQHJldHVybnMgY3NzIGNsYXNzIHdpdGggaWNvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGljb25Gb2xkZXJPcGVuKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVHJlZXZpZXdOb2RlT3Blbkljb247XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgYSBjZXJ0YWluIHNpemUuIElzIHJlcXVpcmVkIGZvciBhIEZvciBpbiB0aGUgVUksIGFzIEFuZ3VsYXIgZG9lcyBub3Qgc3VwcG9ydCBjb3VudGluZyBsb29wc1xyXG4gICAgICogQHBhcmFtIHNpemUgU2l6ZSBvZiB0aGUgYXJyYXlcclxuICAgICAqIEByZXR1cm5zIEFycmF5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb3VudChzaXplOiBudW1iZXIpOiBBcnJheTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheShzaXplKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0Q2hpbGRyZW4obm9kZTogYW55KTogYW55W10ge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGNoaWxkcmVuID0gbm9kZVt0aGlzLmF0dHJjaGlsZHJlbl07XHJcblxyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTdHJpbmdGaWVsZChub2RlOiBhbnksIGZpZWxkbmFtZTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICBpZiAoIW5vZGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFmaWVsZG5hbWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW2ZpZWxkbmFtZV07XHJcblxyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYXNDaGlsZHJlbihub2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRDaGlsZHJlbihub2RlKS5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0Rpc2FibGVkU3RhdGUobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJkaXNhYmxlYWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbdGhpcy5hdHRyZGlzYWJsZWFjdGlvbl07XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzRXhwYW5kZWRTdGF0ZShub2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmV4YW5kZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVt0aGlzLmF0dHJleGFuZGVkXTtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNIb3ZlclN0YXRlKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyaG92ZXJzdGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cmhvdmVyc3RhdGVdO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1NlbGVjdGVkU3RhdGUobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cnNlbGVjdGVkXTtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZCBpcyBjYWxsZWQgYnkgY2xpY2tpbmcgYW4gYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gYWN0aW9uIGFjdGlvbiBhbmQgbm9kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25BY3Rpb25DbGlja2VkKGFjdGlvbjogVHJlZXZpZXdBY3Rpb24pIHtcclxuICAgICAgICB0aGlzLmFjdGlvbmNsaWNrZWQuZW1pdChhY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kIGlzIGNhbGxlZCB3aGVuIE5vZGUgaW4gVHJlZSBpcyBjbGlja2VkXHJcbiAgICAgKiBAcGFyYW0gbm9kZSBTZWxlY3RlZCBOb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbk5vZGVDbGlja2VkKG5vZGU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWRTdGF0ZShub2RlKSB8fCB0aGlzLmlzU2VsZWN0ZWRTdGF0ZShub2RlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmludmVydEV4cGFuZGVkU3RhdGUobm9kZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkU3RhdGUobm9kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBob3ZlciBzdGF0ZSBvbiBhIG5vZGVcclxuICAgICAqIEBwYXJhbSBub2RlIE5vZGUgb24gd2hpY2ggdGhlIHN0YXR1cyBpcyBzZXRcclxuICAgICAqIEBwYXJhbSBzdGF0ZSBBY3RpdmF0ZSBvciBkZWFjdGl2YXRlIEhvdmVyU3RhdGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldEhvdmVyU3RhdGUobm9kZTogYW55LCBzdGF0ZTogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyaG92ZXJzdGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc3RhdGUpIHtcclxuICAgICAgICAgICAgbm9kZVt0aGlzLmF0dHJob3ZlcnN0YXRlXSA9IHRydWU7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghbm9kZS5oYXNPd25Qcm9wZXJ0eSh0aGlzLmF0dHJob3ZlcnN0YXRlKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZWxldGUgbm9kZVt0aGlzLmF0dHJob3ZlcnN0YXRlXTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHNlbGVjdGVkIHN0YXRlIG9uIGEgbm9kZVxyXG4gICAgICogQHBhcmFtIG5vZGUgTm9kZSB3aGljaCBpcyBtYXJrZWQgYXMgU2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFNlbGVjdGVkU3RhdGUobm9kZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyByZXNldCBzZWxlY3RlZCBzdGF0ZSBvZiBhbnkgbm9kZVxyXG4gICAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKChyb290Tm9kZSkgPT4gdGhpcy5yZXNldFNlbGVjdGVkU3RhdGUocm9vdE5vZGUpKTtcclxuXHJcbiAgICAgICAgLy8gc2V0IHNlbGVjdGVkIG5vZGUgYXMgc2VsZWN0ZWRcclxuICAgICAgICBub2RlW3RoaXMuYXR0cnNlbGVjdGVkXSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIEV4dHJhY3QgSUQgZnJvbSBOb2RlXHJcbiAgICAgICAgY29uc3QgaWRWYWx1ZSA9IG5vZGVbdGhpcy5hdHRyaWRdO1xyXG5cclxuICAgICAgICAvLyBVcGRhdGUgbmdNb2RlbFxyXG4gICAgICAgIHRoaXMuc2V0VmFsdWUoaWRWYWx1ZSk7XHJcblxyXG4gICAgICAgIC8vIFJhaXNlIFNlbGVjdGVkIEV2ZW50c1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRub2RlLmVtaXQobm9kZSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5hdHRyaWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGlkID0gdGhpcy5nZXRTdHJpbmdGaWVsZChub2RlLCB0aGlzLmF0dHJpZCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGlkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRlcyB0aGUgbW9kZWwgc3RhdGUgb2YgdGhlIGNvbnRyb2xcclxuICAgICAqIEBwYXJhbSBjIENvbnRyb2wgaW5zdGFuY2VcclxuICAgICAqIEByZXR1cm5zIFJldHVybnMgYSB2YWxpZGF0aW9uIGVycm9yLCBpZiBwcmVzZW50LiBPdGhlcndpc2UsIGFzIFJlc3VsdCBpcyBOVUxMXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQpKGMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2F2ZXMgdGhlIGRhdGEgZnJvbSB0aGUgbW9kZWwgYmluZGluZ1xyXG4gICAgICogQHBhcmFtIHZhbHVlIElkIG9mIHRoZSBzZWxlY3RlZCBub2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgLy8gRG8gbm90IHByZXNlbGN0IGl0ZW0gd2hlbiB0cmVlIGlzIGVtcHR5XHJcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5kYXRhLmZvckVhY2goKHJvb3QpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maW5kTm9kZUJ5SWQocm9vdCwgdmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFN0YXRlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlYXJjaGVzIGZvciBhIG5vZGUgYmFzZWQgb24gdGhlIHZhbHVlIGluIHRoZSBJRCBhdHRyaWJ1dGVcclxuICAgICAqIEBwYXJhbSBub2RlIE5vZGVcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBvZiB0aGUgSWQgYXR0cmlidXRlXHJcbiAgICAgKiBAcmV0dXJucyBSZXR1cm5zIHRoZSBub2RlIGlmIGl0IGlzIGZvdW5kLiBJZiBub3QsIE5VTEwgaXMgcmV0dXJuZWQuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZmluZE5vZGVCeUlkKG5vZGU6IGFueSwgdmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmF0dHJpZCB8fCAhbm9kZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChub2RlW3RoaXMuYXR0cmlkXSA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZ2V0Q2hpbGRyZW4obm9kZSk7XHJcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maW5kTm9kZUJ5SWQoY2hpbGQsIHZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbnZlcnRFeHBhbmRlZFN0YXRlKG5vZGU6IGFueSkge1xyXG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyZXhhbmRlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJdGVtcyB3aXRoIG5vIGNoaWxkcmVuIGNhbm5vdCBiZSBjb2xsYWJzZWRcclxuICAgICAgICBpZiAoIXRoaXMuaGFzQ2hpbGRyZW4obm9kZSkgJiYgISh0aGlzLmVuYWJsZWFzeW5jaGxvYWQgPT09IHRydWUgfHwgdGhpcy5lbmFibGVhc3luY2hsb2FkID09PSAndHJ1ZScpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbdGhpcy5hdHRyZXhhbmRlZF07XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29sbGFic2VkLmVtaXQobm9kZSk7XHJcbiAgICAgICAgICAgIG5vZGVbdGhpcy5hdHRyZXhhbmRlZF0gPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkLmVtaXQobm9kZSk7XHJcbiAgICAgICAgICAgIG5vZGVbdGhpcy5hdHRyZXhhbmRlZF0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlc2V0U2VsZWN0ZWRTdGF0ZShub2RlOiBhbnkpIHtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5vZGVbdGhpcy5hdHRyc2VsZWN0ZWRdID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0Q2hpbGRyZW4obm9kZSkuZm9yRWFjaCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZXNldFNlbGVjdGVkU3RhdGUoY2hpbGQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiMHUxQ0EwS0k7QUFBQUEsY0FBQSxTQUFBQSxDQUFBLFNBQUFDLGNBQUEsV0FBQUEsY0FBQSxFQUFBRCxjQUFBLEdBMUtKLE9BQVNFLG1CQUFtQixLQUFRLCtCQUErQixDQUVuRSxPQUFTQyxVQUFVLEtBQVEsa0JBQWtCLENBRTdDLE9BQVNDLFNBQVMsQ0FBRUMsWUFBWSxDQUFFQyxJQUFJLENBQVlDLEtBQUssQ0FBRUMsTUFBTSxLQUFxQixlQUFlLEMseUVBR25HOztHQUlBLE1BQU0sTUFBTyxDQUFBQyxpQkFBa0IsUUFBUSxDQUFBUCxtQkFBd0IsQ0F1SjNEO0FBRUE7QUFFQTs7O09BSUFRLFlBQW9CQyxVQUErQixDQUFFQyxRQUFrQixFQUFBWixjQUFBLEdBQUFhLENBQUEsTUFBQWIsY0FBQSxHQUFBYyxDQUFBLE1BQ25FLEtBQUssQ0FBQ0gsVUFBVSxDQUFFQyxRQUFRLENBQUMsQ0EvSi9CO0FBRUE7O1dBQUFaLGNBQUEsR0FBQWMsQ0FBQSxNQUlPLEtBQUFDLGFBQWEsQ0FBaUMsR0FBSSxDQUFBVixZQUFZLEVBQWtCLENBRXZGOztXQUFBTCxjQUFBLEdBQUFjLENBQUEsTUFJTyxLQUFBRSxZQUFZLENBQUcsVUFBVSxDQUVoQzs7V0FBQWhCLGNBQUEsR0FBQWMsQ0FBQSxNQUdnQixLQUFBRyxpQkFBaUIsQ0FBRyxVQUFVLENBRTlDOztXQUFBakIsY0FBQSxHQUFBYyxDQUFBLE1BSU8sS0FBQUksV0FBVyxDQUFHLFVBQVUsQ0FFL0I7O1dBQUFsQixjQUFBLEdBQUFjLENBQUEsTUFJTyxLQUFBSyxjQUFjLENBQUcsWUFBWSxDQUVwQzs7V0FBQW5CLGNBQUEsR0FBQWMsQ0FBQSxNQUlPLEtBQUFNLFFBQVEsQ0FBa0IsSUFBSSxDQUVyQzs7V0FBQXBCLGNBQUEsR0FBQWMsQ0FBQSxNQUlPLEtBQUFPLE1BQU0sQ0FBa0IsSUFBSSxDQUVuQzs7V0FBQXJCLGNBQUEsR0FBQWMsQ0FBQSxNQUlPLEtBQUFRLFNBQVMsQ0FBRyxPQUFPLENBRTFCOztXQUFBdEIsY0FBQSxHQUFBYyxDQUFBLE1BSU8sS0FBQVMsWUFBWSxDQUFHLFVBQVUsQ0FFaEM7O1dBQUF2QixjQUFBLEdBQUFjLENBQUEsT0FJTyxLQUFBVSxTQUFTLENBQXNCLEdBQUksQ0FBQW5CLFlBQVksRUFBTyxDQUU3RDs7V0FBQUwsY0FBQSxHQUFBYyxDQUFBLE9BSU8sS0FBQVcsSUFBSSxDQUFVLEVBQUUsQ0FFdkI7O1dBQUF6QixjQUFBLEdBQUFjLENBQUEsT0FJTyxLQUFBWSxnQkFBZ0IsQ0FBcUIsS0FBSyxDQUVqRDs7V0FBQTFCLGNBQUEsR0FBQWMsQ0FBQSxPQUlPLEtBQUFhLGNBQWMsQ0FBRyxJQUFJLENBRTVCOztXQUFBM0IsY0FBQSxHQUFBYyxDQUFBLE9BSU8sS0FBQWMsUUFBUSxDQUFzQixHQUFJLENBQUF2QixZQUFZLEVBQU8sQ0FFNUQ7O1dBQUFMLGNBQUEsR0FBQWMsQ0FBQSxPQUlPLEtBQUFlLGFBQWEsQ0FBcUIsSUFBSSxDQUU3Qzs7V0FBQTdCLGNBQUEsR0FBQWMsQ0FBQSxPQUlPLEtBQUFnQixVQUFVLENBQVksS0FBSyxDQUVsQzs7V0FBQTlCLGNBQUEsR0FBQWMsQ0FBQSxPQUlPLEtBQUFpQixJQUFJLENBQVcsRUFBRSxDQUV4Qjs7V0FBQS9CLGNBQUEsR0FBQWMsQ0FBQSxPQUlPLEtBQUFrQixRQUFRLENBQXNCLEdBQUksQ0FBQTNCLFlBQVksRUFBTyxDQUU1RDs7V0FBQUwsY0FBQSxHQUFBYyxDQUFBLE9BSU8sS0FBQW1CLFlBQVksQ0FBc0IsR0FBSSxDQUFBNUIsWUFBWSxFQUFPLENBMEJoRTs7V0FBQUwsY0FBQSxHQUFBYyxDQUFBLE9BR2dCLEtBQUFvQix5QkFBeUIsQ0FBVyxJQUFJLENBQUNDLG9CQUFvQixDQUFDQyx1QkFBdUIsQ0FFckc7O1dBQUFwQyxjQUFBLEdBQUFjLENBQUEsT0FJTyxLQUFBdUIsZ0NBQWdDLENBQVcsSUFBSSxDQUFDRixvQkFBb0IsQ0FBQ0csOEJBQThCLENBWTFHLENBRUE7QUFFQTtBQUVBLEdBQVcsQ0FBQUMsVUFBVUEsQ0FBQSxFQUFBdkMsY0FBQSxHQUFBYSxDQUFBLE1BQUFiLGNBQUEsR0FBQWMsQ0FBQSxPQUNqQixNQUFPLEtBQUksQ0FBQzBCLFdBQVcsQ0FBQ0Msc0JBQXNCLENBQ2xELENBRUE7OztPQUlBLEdBQVcsQ0FBQUMsbUJBQW1CQSxDQUFBLEVBQUExQyxjQUFBLEdBQUFhLENBQUEsTUFBQWIsY0FBQSxHQUFBYyxDQUFBLE9BQzFCLE1BQU8sS0FBSSxDQUFDMEIsV0FBVyxDQUFDRyxzQkFBc0IsQ0FDbEQsQ0FFQTs7O09BSUEsR0FBVyxDQUFBQyxlQUFlQSxDQUFBLEVBQUE1QyxjQUFBLEdBQUFhLENBQUEsTUFBQWIsY0FBQSxHQUFBYyxDQUFBLE9BQ3RCLE1BQU8sS0FBSSxDQUFDMEIsV0FBVyxDQUFDSyxxQkFBcUIsQ0FDakQsQ0FFQTs7O09BSUEsR0FBVyxDQUFBQyxjQUFjQSxDQUFBLEVBQUE5QyxjQUFBLEdBQUFhLENBQUEsTUFBQWIsY0FBQSxHQUFBYyxDQUFBLE9BQ3JCLE1BQU8sS0FBSSxDQUFDMEIsV0FBVyxDQUFDTyxvQkFBb0IsQ0FDaEQsQ0FFQTtBQUVBO0FBRUE7Ozs7T0FLT0MsS0FBS0EsQ0FBQ0MsSUFBWSxFQUFBakQsY0FBQSxHQUFBYSxDQUFBLE1BQUFiLGNBQUEsR0FBQWMsQ0FBQSxPQUNyQixNQUFPLElBQUksQ0FBQW9DLEtBQUssQ0FBQ0QsSUFBSSxDQUFDLENBQzFCLENBRU9FLFdBQVdBLENBQUNDLElBQVMsRUFBQXBELGNBQUEsR0FBQWEsQ0FBQSxNQUFBYixjQUFBLEdBQUFjLENBQUEsT0FDeEIsR0FBSSxDQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFVBQUNELElBQUksSUFBQXBELGNBQUEsR0FBQXFELENBQUEsU0FBSSxDQUFDLElBQUksQ0FBQ3JDLFlBQVksRUFBRSxDQUFBaEIsY0FBQSxHQUFBcUQsQ0FBQSxTQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BQzdCLE1BQU8sRUFBRSxDLENBQ1osS0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxVQUVELEdBQUksQ0FBQUMsUUFBUSxFQUFBdEQsY0FBQSxHQUFBYyxDQUFBLE9BQUdzQyxJQUFJLENBQUMsSUFBSSxDQUFDcEMsWUFBWSxDQUFDLEVBQUNoQixjQUFBLEdBQUFjLENBQUEsT0FFdkMsR0FBSSxDQUFDb0MsS0FBSyxDQUFDSyxPQUFPLENBQUNELFFBQVEsQ0FBQyxDQUFFLENBQUF0RCxjQUFBLEdBQUFxRCxDQUFBLFNBQUFyRCxjQUFBLEdBQUFjLENBQUEsT0FDMUIsTUFBTyxFQUFFLEMsQ0FDWixLQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFVBQUFyRCxjQUFBLEdBQUFjLENBQUEsT0FFRCxNQUFPLENBQUF3QyxRQUFRLENBQ25CLENBRU9FLGNBQWNBLENBQUNKLElBQVMsQ0FBRUssU0FBaUIsRUFBQXpELGNBQUEsR0FBQWEsQ0FBQSxNQUFBYixjQUFBLEdBQUFjLENBQUEsT0FDOUMsR0FBSSxDQUFDc0MsSUFBSSxDQUFFLENBQUFwRCxjQUFBLEdBQUFxRCxDQUFBLFNBQUFyRCxjQUFBLEdBQUFjLENBQUEsT0FDUCxNQUFPLEVBQUUsQyxDQUNaLEtBQUFkLGNBQUEsR0FBQXFELENBQUEsVUFBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUVELEdBQUksQ0FBQzJDLFNBQVMsQ0FBRSxDQUFBekQsY0FBQSxHQUFBcUQsQ0FBQSxTQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BQ1osTUFBTyxDQUFBc0MsSUFBSSxDLENBQ2QsS0FBQXBELGNBQUEsR0FBQXFELENBQUEsVUFFRCxHQUFJLENBQUFLLEtBQUssRUFBQTFELGNBQUEsR0FBQWMsQ0FBQSxPQUFHc0MsSUFBSSxDQUFDSyxTQUFTLENBQUMsRUFBQ3pELGNBQUEsR0FBQWMsQ0FBQSxPQUU1QixHQUFJLENBQUM0QyxLQUFLLENBQUUsQ0FBQTFELGNBQUEsR0FBQXFELENBQUEsU0FBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUNSLE1BQU8sRUFBRSxDLENBQ1osS0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BRUQsTUFBTyxDQUFBNEMsS0FBSyxDQUNoQixDQUVPQyxXQUFXQSxDQUFDUCxJQUFTLEVBQUFwRCxjQUFBLEdBQUFhLENBQUEsTUFBQWIsY0FBQSxHQUFBYyxDQUFBLE9BQ3hCLE1BQU8sS0FBSSxDQUFDcUMsV0FBVyxDQUFDQyxJQUFJLENBQUMsQ0FBQ1EsTUFBTSxDQUFHLENBQUMsQ0FDNUMsQ0FFT0MsZUFBZUEsQ0FBQ1QsSUFBUyxFQUFBcEQsY0FBQSxHQUFBYSxDQUFBLE1BQUFiLGNBQUEsR0FBQWMsQ0FBQSxPQUM1QixHQUFJLENBQUFkLGNBQUEsR0FBQXFELENBQUEsVUFBQ0QsSUFBSSxJQUFBcEQsY0FBQSxHQUFBcUQsQ0FBQSxTQUFJLENBQUMsSUFBSSxDQUFDcEMsaUJBQWlCLEVBQUUsQ0FBQWpCLGNBQUEsR0FBQXFELENBQUEsU0FBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUNsQyxNQUFPLE1BQUssQyxDQUNmLEtBQUFkLGNBQUEsR0FBQXFELENBQUEsVUFFRCxHQUFJLENBQUFLLEtBQUssRUFBQTFELGNBQUEsR0FBQWMsQ0FBQSxPQUFHc0MsSUFBSSxDQUFDLElBQUksQ0FBQ25DLGlCQUFpQixDQUFDLEVBQUNqQixjQUFBLEdBQUFjLENBQUEsT0FDekMsTUFBTyxDQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFNBQUFLLEtBQUssR0FBSyxJQUFJLElBQUExRCxjQUFBLEdBQUFxRCxDQUFBLFNBQUlLLEtBQUssR0FBSyxNQUFNLEVBQzdDLENBRU9JLGVBQWVBLENBQUNWLElBQVMsRUFBQXBELGNBQUEsR0FBQWEsQ0FBQSxPQUFBYixjQUFBLEdBQUFjLENBQUEsT0FDNUIsR0FBSSxDQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFdBQUNELElBQUksSUFBQXBELGNBQUEsR0FBQXFELENBQUEsVUFBSSxDQUFDLElBQUksQ0FBQ25DLFdBQVcsRUFBRSxDQUFBbEIsY0FBQSxHQUFBcUQsQ0FBQSxTQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BQzVCLE1BQU8sTUFBSyxDLENBQ2YsS0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxVQUVELEdBQUksQ0FBQUssS0FBSyxFQUFBMUQsY0FBQSxHQUFBYyxDQUFBLE9BQUdzQyxJQUFJLENBQUMsSUFBSSxDQUFDbEMsV0FBVyxDQUFDLEVBQUNsQixjQUFBLEdBQUFjLENBQUEsT0FDbkMsTUFBTyxDQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFVBQUFLLEtBQUssR0FBSyxJQUFJLElBQUExRCxjQUFBLEdBQUFxRCxDQUFBLFVBQUlLLEtBQUssR0FBSyxNQUFNLEVBQzdDLENBRU9LLFlBQVlBLENBQUNYLElBQVMsRUFBQXBELGNBQUEsR0FBQWEsQ0FBQSxPQUFBYixjQUFBLEdBQUFjLENBQUEsT0FDekIsR0FBSSxDQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFdBQUNELElBQUksSUFBQXBELGNBQUEsR0FBQXFELENBQUEsVUFBSSxDQUFDLElBQUksQ0FBQ2xDLGNBQWMsRUFBRSxDQUFBbkIsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BQy9CLE1BQU8sTUFBSyxDLENBQ2YsS0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxXQUVELEdBQUksQ0FBQUssS0FBSyxFQUFBMUQsY0FBQSxHQUFBYyxDQUFBLE9BQUdzQyxJQUFJLENBQUMsSUFBSSxDQUFDakMsY0FBYyxDQUFDLEVBQUNuQixjQUFBLEdBQUFjLENBQUEsT0FDdEMsTUFBTyxDQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFVBQUFLLEtBQUssR0FBSyxJQUFJLElBQUExRCxjQUFBLEdBQUFxRCxDQUFBLFVBQUlLLEtBQUssR0FBSyxNQUFNLEVBQzdDLENBRU9NLGVBQWVBLENBQUNaLElBQVMsRUFBQXBELGNBQUEsR0FBQWEsQ0FBQSxPQUFBYixjQUFBLEdBQUFjLENBQUEsT0FDNUIsR0FBSSxDQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFdBQUNELElBQUksSUFBQXBELGNBQUEsR0FBQXFELENBQUEsVUFBSSxDQUFDLElBQUksQ0FBQzlCLFlBQVksRUFBRSxDQUFBdkIsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BQzdCLE1BQU8sTUFBSyxDLENBQ2YsS0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxXQUVELEdBQUksQ0FBQUssS0FBSyxFQUFBMUQsY0FBQSxHQUFBYyxDQUFBLE9BQUdzQyxJQUFJLENBQUMsSUFBSSxDQUFDN0IsWUFBWSxDQUFDLEVBQUN2QixjQUFBLEdBQUFjLENBQUEsT0FDcEMsTUFBTyxDQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFVBQUFLLEtBQUssR0FBSyxJQUFJLElBQUExRCxjQUFBLEdBQUFxRCxDQUFBLFVBQUlLLEtBQUssR0FBSyxNQUFNLEVBQzdDLENBRUE7OztPQUlPTyxlQUFlQSxDQUFDQyxNQUFzQixFQUFBbEUsY0FBQSxHQUFBYSxDQUFBLE9BQUFiLGNBQUEsR0FBQWMsQ0FBQSxPQUN6QyxJQUFJLENBQUNDLGFBQWEsQ0FBQ29ELElBQUksQ0FBQ0QsTUFBTSxDQUFDLENBQ25DLENBRUE7OztPQUlPRSxhQUFhQSxDQUFDaEIsSUFBUyxFQUFBcEQsY0FBQSxHQUFBYSxDQUFBLE9BQUFiLGNBQUEsR0FBQWMsQ0FBQSxPQUMxQixHQUFJLENBQUFkLGNBQUEsR0FBQXFELENBQUEsY0FBSSxDQUFDUSxlQUFlLENBQUNULElBQUksQ0FBQyxJQUFBcEQsY0FBQSxHQUFBcUQsQ0FBQSxVQUFJLElBQUksQ0FBQ1csZUFBZSxDQUFDWixJQUFJLENBQUMsRUFBRSxDQUFBcEQsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BQzFELElBQUksQ0FBQ3VELG1CQUFtQixDQUFDakIsSUFBSSxDQUFDLEMsQ0FDakMsS0FBQXBELGNBQUEsR0FBQXFELENBQUEsV0FBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUVELElBQUksQ0FBQ3dELGdCQUFnQixDQUFDbEIsSUFBSSxDQUFDLENBQy9CLENBRUE7Ozs7T0FLT21CLGFBQWFBLENBQUNuQixJQUFTLENBQUVvQixLQUFjLEVBQUF4RSxjQUFBLEdBQUFhLENBQUEsT0FBQWIsY0FBQSxHQUFBYyxDQUFBLE9BQzFDLEdBQUksQ0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxXQUFDRCxJQUFJLElBQUFwRCxjQUFBLEdBQUFxRCxDQUFBLFVBQUksQ0FBQyxJQUFJLENBQUNsQyxjQUFjLEVBQUUsQ0FBQW5CLGNBQUEsR0FBQXFELENBQUEsVUFBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUMvQixPLENBQ0gsS0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxXQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BRUQsR0FBSTBELEtBQUssQ0FBRSxDQUFBeEUsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BQ1BzQyxJQUFJLENBQUMsSUFBSSxDQUFDakMsY0FBYyxDQUFDLENBQUcsSUFBSSxDQUFDbkIsY0FBQSxHQUFBYyxDQUFBLE9BQ2pDLE8sQ0FDSCxLQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFdBQUFyRCxjQUFBLEdBQUFjLENBQUEsT0FFRCxHQUFJLENBQUNzQyxJQUFJLENBQUNxQixjQUFjLENBQUMsSUFBSSxDQUFDdEQsY0FBYyxDQUFDLENBQUUsQ0FBQW5CLGNBQUEsR0FBQXFELENBQUEsVUFBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUMzQyxPLENBQ0gsS0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxXQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BRUQsTUFBTyxDQUFBc0MsSUFBSSxDQUFDLElBQUksQ0FBQ2pDLGNBQWMsQ0FBQyxDQUNwQyxDQUVBOzs7T0FJT21ELGdCQUFnQkEsQ0FBQ2xCLElBQVMsRUFBQXBELGNBQUEsR0FBQWEsQ0FBQSxPQUFBYixjQUFBLEdBQUFjLENBQUEsT0FDN0IsR0FBSSxDQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFdBQUNELElBQUksSUFBQXBELGNBQUEsR0FBQXFELENBQUEsVUFBSSxDQUFDLElBQUksQ0FBQzlCLFlBQVksRUFBRSxDQUFBdkIsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BQzdCLE8sQ0FDSCxLQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFdBRUQ7QUFBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUNBLElBQUksQ0FBQ1csSUFBSSxDQUFDaUQsT0FBTyxDQUFFQyxRQUFRLEVBQUssQ0FBQTNFLGNBQUEsR0FBQWEsQ0FBQSxPQUFBYixjQUFBLEdBQUFjLENBQUEsa0JBQUksQ0FBQzhELGtCQUFrQixDQUFDRCxRQUFRLENBQUMsQ0FBRCxDQUFDLENBQUMsQ0FFbEU7QUFBQTNFLGNBQUEsR0FBQWMsQ0FBQSxPQUNBc0MsSUFBSSxDQUFDLElBQUksQ0FBQzdCLFlBQVksQ0FBQyxDQUFHLElBQUksQ0FFOUI7QUFDQSxLQUFNLENBQUFzRCxPQUFPLEVBQUE3RSxjQUFBLEdBQUFjLENBQUEsT0FBR3NDLElBQUksQ0FBQyxJQUFJLENBQUMvQixNQUFNLENBQUMsRUFFakM7QUFBQXJCLGNBQUEsR0FBQWMsQ0FBQSxPQUNBLElBQUksQ0FBQ2dFLFFBQVEsQ0FBQ0QsT0FBTyxDQUFDLENBRXRCO0FBQUE3RSxjQUFBLEdBQUFjLENBQUEsT0FDQSxJQUFJLENBQUNtQixZQUFZLENBQUNrQyxJQUFJLENBQUNmLElBQUksQ0FBQyxDQUFDcEQsY0FBQSxHQUFBYyxDQUFBLE9BRTdCLEdBQUksQ0FBQyxJQUFJLENBQUNPLE1BQU0sQ0FBRSxDQUFBckIsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BQ2QsTyxDQUNILEtBQUFkLGNBQUEsR0FBQXFELENBQUEsV0FFRCxHQUFJLENBQUEwQixFQUFFLEVBQUEvRSxjQUFBLEdBQUFjLENBQUEsT0FBRyxJQUFJLENBQUMwQyxjQUFjLENBQUNKLElBQUksQ0FBRSxJQUFJLENBQUMvQixNQUFNLENBQUMsRUFBQ3JCLGNBQUEsR0FBQWMsQ0FBQSxPQUNoRCxJQUFJLENBQUNrQixRQUFRLENBQUNtQyxJQUFJLENBQUNZLEVBQUUsQ0FBQyxDQUMxQixDQUVBOzs7O09BS09DLFlBQVlBLENBQUNDLENBQWtCLEVBQUFqRixjQUFBLEdBQUFhLENBQUEsT0FDbEMsR0FBSSxDQUFBcUUsS0FBSyxFQUFBbEYsY0FBQSxHQUFBYyxDQUFBLE9BQTRCLElBQUksRUFBQ2QsY0FBQSxHQUFBYyxDQUFBLE9BRTFDLEdBQUksSUFBSSxDQUFDZ0IsVUFBVSxDQUFFLENBQUE5QixjQUFBLEdBQUFxRCxDQUFBLFVBQUFyRCxjQUFBLEdBQUFjLENBQUEsT0FDakJvRSxLQUFLLENBQUcvRSxVQUFVLENBQUNnRixRQUFRLENBQUMsSUFBSSxDQUFDakQseUJBQXlCLENBQUUsSUFBSSxDQUFDRyxnQ0FBZ0MsQ0FBQyxDQUFDNEMsQ0FBQyxDQUFDLEMsQ0FDeEcsS0FBQWpGLGNBQUEsR0FBQXFELENBQUEsV0FBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUVELE1BQU8sQ0FBQW9FLEtBQUssQ0FDaEIsQ0FFQTs7O09BSU9FLFVBQVVBLENBQUMxQixLQUFVLEVBQUExRCxjQUFBLEdBQUFhLENBQUEsT0FBQWIsY0FBQSxHQUFBYyxDQUFBLE9BQ3hCLEtBQUssQ0FBQ3NFLFVBQVUsQ0FBQzFCLEtBQUssQ0FBQyxDQUV2QjtBQUFBMUQsY0FBQSxHQUFBYyxDQUFBLE9BQ0EsR0FBSSxDQUFDLElBQUksQ0FBQ1csSUFBSSxDQUFFLENBQUF6QixjQUFBLEdBQUFxRCxDQUFBLFVBQUFyRCxjQUFBLEdBQUFjLENBQUEsT0FDWixPLENBQ0gsS0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxXQUFBckQsY0FBQSxHQUFBYyxDQUFBLE9BRUQsSUFBSSxDQUFDVyxJQUFJLENBQUNpRCxPQUFPLENBQUVXLElBQUksRUFBSSxDQUFBckYsY0FBQSxHQUFBYSxDQUFBLE9BQ3ZCLEtBQU0sQ0FBQXlFLE1BQU0sRUFBQXRGLGNBQUEsR0FBQWMsQ0FBQSxPQUFHLElBQUksQ0FBQ3lFLFlBQVksQ0FBQ0YsSUFBSSxDQUFFM0IsS0FBSyxDQUFDLEVBQUMxRCxjQUFBLEdBQUFjLENBQUEsT0FFOUMsR0FBSXdFLE1BQU0sR0FBSyxJQUFJLENBQUUsQ0FBQXRGLGNBQUEsR0FBQXFELENBQUEsVUFBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUNqQixJQUFJLENBQUN3RCxnQkFBZ0IsQ0FBQ2dCLE1BQU0sQ0FBQyxDLENBQ2hDLEtBQUF0RixjQUFBLEdBQUFxRCxDQUFBLFdBQ0wsQ0FBQyxDQUFDLENBQ04sQ0FFQTtBQUVBO0FBRUE7Ozs7O09BTVFrQyxZQUFZQSxDQUFDbkMsSUFBUyxDQUFFTSxLQUFVLEVBQUExRCxjQUFBLEdBQUFhLENBQUEsT0FBQWIsY0FBQSxHQUFBYyxDQUFBLE9BQ3RDLEdBQUksQ0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxXQUFDLElBQUksQ0FBQ2hDLE1BQU0sSUFBQXJCLGNBQUEsR0FBQXFELENBQUEsVUFBSSxDQUFDRCxJQUFJLEVBQUUsQ0FBQXBELGNBQUEsR0FBQXFELENBQUEsVUFBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUN2QixNQUFPLEtBQUksQyxDQUNkLEtBQUFkLGNBQUEsR0FBQXFELENBQUEsV0FBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUVELEdBQUlzQyxJQUFJLENBQUMsSUFBSSxDQUFDL0IsTUFBTSxDQUFDLEdBQUtxQyxLQUFLLENBQUUsQ0FBQTFELGNBQUEsR0FBQXFELENBQUEsVUFBQXJELGNBQUEsR0FBQWMsQ0FBQSxPQUM3QixNQUFPLENBQUFzQyxJQUFJLEMsQ0FDZCxLQUFBcEQsY0FBQSxHQUFBcUQsQ0FBQSxXQUVELEtBQU0sQ0FBQUMsUUFBUSxFQUFBdEQsY0FBQSxHQUFBYyxDQUFBLE9BQUcsSUFBSSxDQUFDcUMsV0FBVyxDQUFDQyxJQUFJLENBQUMsRUFBQ3BELGNBQUEsR0FBQWMsQ0FBQSxPQUN4QyxJQUFLLEdBQUksQ0FBQTBFLEtBQUssR0FBSSxDQUFBbEMsUUFBUSxDQUFFLENBQ3hCLEtBQU0sQ0FBQWdDLE1BQU0sRUFBQXRGLGNBQUEsR0FBQWMsQ0FBQSxPQUFHLElBQUksQ0FBQ3lFLFlBQVksQ0FBQ0MsS0FBSyxDQUFFOUIsS0FBSyxDQUFDLEVBQUMxRCxjQUFBLEdBQUFjLENBQUEsUUFDL0MsR0FBSXdFLE1BQU0sR0FBSyxJQUFJLENBQUUsQ0FBQXRGLGNBQUEsR0FBQXFELENBQUEsVUFBQXJELGNBQUEsR0FBQWMsQ0FBQSxRQUNqQixNQUFPLENBQUF3RSxNQUFNLEMsQ0FDaEIsS0FBQXRGLGNBQUEsR0FBQXFELENBQUEsVyxDQUNKckQsY0FBQSxHQUFBYyxDQUFBLFFBRUQsTUFBTyxLQUFJLENBQ2YsQ0FFUXVELG1CQUFtQkEsQ0FBQ2pCLElBQVMsRUFBQXBELGNBQUEsR0FBQWEsQ0FBQSxPQUFBYixjQUFBLEdBQUFjLENBQUEsUUFDakMsR0FBSSxDQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFdBQUNELElBQUksSUFBQXBELGNBQUEsR0FBQXFELENBQUEsVUFBSSxDQUFDLElBQUksQ0FBQ25DLFdBQVcsRUFBRSxDQUFBbEIsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLFFBQzVCLE8sQ0FDSCxLQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFdBRUQ7QUFBQXJELGNBQUEsR0FBQWMsQ0FBQSxRQUNBLEdBQUksQ0FBQWQsY0FBQSxHQUFBcUQsQ0FBQSxXQUFDLElBQUksQ0FBQ00sV0FBVyxDQUFDUCxJQUFJLENBQUMsSUFBQXBELGNBQUEsR0FBQXFELENBQUEsVUFBSSxFQUFFLENBQUFyRCxjQUFBLEdBQUFxRCxDQUFBLGNBQUksQ0FBQzNCLGdCQUFnQixHQUFLLElBQUksSUFBQTFCLGNBQUEsR0FBQXFELENBQUEsVUFBSSxJQUFJLENBQUMzQixnQkFBZ0IsR0FBSyxNQUFNLEVBQUMsRUFBRSxDQUFBMUIsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLFFBQ2xHLE8sQ0FDSCxLQUFBZCxjQUFBLEdBQUFxRCxDQUFBLFdBRUQsR0FBSSxDQUFBSyxLQUFLLEVBQUExRCxjQUFBLEdBQUFjLENBQUEsUUFBR3NDLElBQUksQ0FBQyxJQUFJLENBQUNsQyxXQUFXLENBQUMsRUFBQ2xCLGNBQUEsR0FBQWMsQ0FBQSxRQUVuQyxHQUFJLENBQUFkLGNBQUEsR0FBQXFELENBQUEsVUFBQUssS0FBSyxHQUFLLElBQUksSUFBQTFELGNBQUEsR0FBQXFELENBQUEsVUFBSUssS0FBSyxHQUFLLE1BQU0sRUFBRSxDQUFBMUQsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLFFBQ3BDLElBQUksQ0FBQ1UsU0FBUyxDQUFDMkMsSUFBSSxDQUFDZixJQUFJLENBQUMsQ0FBQ3BELGNBQUEsR0FBQWMsQ0FBQSxRQUMxQnNDLElBQUksQ0FBQyxJQUFJLENBQUNsQyxXQUFXLENBQUMsQ0FBRyxLQUFLLEMsQ0FDakMsSUFBTSxDQUFBbEIsY0FBQSxHQUFBcUQsQ0FBQSxVQUFBckQsY0FBQSxHQUFBYyxDQUFBLFFBQ0gsSUFBSSxDQUFDYyxRQUFRLENBQUN1QyxJQUFJLENBQUNmLElBQUksQ0FBQyxDQUFDcEQsY0FBQSxHQUFBYyxDQUFBLFFBQ3pCc0MsSUFBSSxDQUFDLElBQUksQ0FBQ2xDLFdBQVcsQ0FBQyxDQUFHLElBQUksQyxDQUVyQyxDQUVRMEQsa0JBQWtCQSxDQUFDeEIsSUFBUyxFQUFBcEQsY0FBQSxHQUFBYSxDQUFBLE9BQUFiLGNBQUEsR0FBQWMsQ0FBQSxRQUNoQyxHQUFJLENBQUFkLGNBQUEsR0FBQXFELENBQUEsV0FBQ0QsSUFBSSxJQUFBcEQsY0FBQSxHQUFBcUQsQ0FBQSxVQUFJLENBQUMsSUFBSSxDQUFDOUIsWUFBWSxFQUFFLENBQUF2QixjQUFBLEdBQUFxRCxDQUFBLFVBQUFyRCxjQUFBLEdBQUFjLENBQUEsUUFDN0IsTyxDQUNILEtBQUFkLGNBQUEsR0FBQXFELENBQUEsV0FBQXJELGNBQUEsR0FBQWMsQ0FBQSxRQUVEc0MsSUFBSSxDQUFDLElBQUksQ0FBQzdCLFlBQVksQ0FBQyxDQUFHLEtBQUssQ0FBQ3ZCLGNBQUEsR0FBQWMsQ0FBQSxRQUVoQyxJQUFJLENBQUNxQyxXQUFXLENBQUNDLElBQUksQ0FBQyxDQUFDc0IsT0FBTyxDQUFFYyxLQUFLLEVBQUksQ0FBQXhGLGNBQUEsR0FBQWEsQ0FBQSxPQUFBYixjQUFBLEdBQUFjLENBQUEsUUFDckMsSUFBSSxDQUFDOEQsa0JBQWtCLENBQUNZLEtBQUssQ0FBQyxDQUNsQyxDQUFDLENBQUMsQ0FDTixDLCtIQW5jUy9FLGlCQUFpQixDQUFBZ0YsSUFBQSxHQUFBQyxLQUFBLENBQUFDLEVBQUEsQ0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxRQUFBSCxLQUFBLENBQUFJLEVBQUEsQ0FBQUMsUUFBQSxHQUFBQyxNQUFBLENBQUFGLEVBQUEsQ0FBQUcsZUFBQSxDQUFBN0YsU0FBQSxHQUFBSixjQUFBLEdBQUFjLENBQUEsUSwwRkFBakJMLGlCQUFpQixDQUFBeUYsTUFBQSxFQUFBbEYsWUFBQSxnQkFBQUMsaUJBQUEscUJBQUFDLFdBQUEsZUFBQUMsY0FBQSxrQkFBQUMsUUFBQSxZQUFBQyxNQUFBLFVBQUFDLFNBQUEsYUFBQUMsWUFBQSxnQkFBQUUsSUFBQSxRQUFBQyxnQkFBQSxvQkFBQUMsY0FBQSxrQkFBQUUsYUFBQSxpQkFBQUMsVUFBQSxjQUFBQyxJQUFBLFFBQUFvRSxnQkFBQSxvQkFBQUMsY0FBQSxrQkFBQUMsWUFBQSxnQkFBQUMsYUFBQSxpQkFBQXBFLHlCQUFBLDZCQUFBRyxnQ0FBQSxxQ0FBQWtFLE9BQUEsRUFBQXhGLGFBQUEsaUJBQUFTLFNBQUEsYUFBQUksUUFBQSxZQUFBSSxRQUFBLFlBQUFDLFlBQUEsaUJBQUF1RSxlQUFBLE1BQUFDLFFBQUEsQ0FBQVgsRUFBQSxHQUFBOUYsY0FBQSxHQUFBYyxDQUFBLFEsbUZBQWpCTCxpQkFBaUIsQ0FBQWlHLFVBQUEsRyxLQUQ3QnRHLFMsc0lBZ0tnQkUsSSwwQ0F4Sk5TLGFBQWEsRyxLQURuQlAsTSxHQU9NUSxZQUFZLEcsS0FEbEJULEssR0FNZVUsaUJBQWlCLEcsS0FBaENWLEssR0FNTVcsV0FBVyxHLEtBRGpCWCxLLEdBT01ZLGNBQWMsRyxLQURwQlosSyxHQU9NYSxRQUFRLEcsS0FEZGIsSyxHQU9NYyxNQUFNLEcsS0FEWmQsSyxHQU9NZSxTQUFTLEcsS0FEZmYsSyxHQU9NZ0IsWUFBWSxHLEtBRGxCaEIsSyxHQU9NaUIsU0FBUyxHLEtBRGZoQixNLEdBT01pQixJQUFJLEcsS0FEVmxCLEssR0FPTW1CLGdCQUFnQixHLEtBRHRCbkIsSyxHQU9Nb0IsY0FBYyxHLEtBRHBCcEIsSyxHQU9NcUIsUUFBUSxHLEtBRGRwQixNLEdBT01xQixhQUFhLEcsS0FEbkJ0QixLLEdBT011QixVQUFVLEcsS0FEaEJ2QixLLEdBT013QixJQUFJLEcsS0FEVnhCLEssR0FPTXlCLFFBQVEsRyxLQURkeEIsTSxHQU9NeUIsWUFBWSxHLEtBRGxCekIsTSxHQU9NMkYsZ0JBQWdCLEcsS0FEdEI1RixLLEdBT002RixjQUFjLEcsS0FEcEI3RixLLEdBT004RixZQUFZLEcsS0FEbEI5RixLLEdBT00rRixhQUFhLEcsS0FEbkIvRixLLEdBTWUyQix5QkFBeUIsRyxLQUF4QzNCLEssR0FNTThCLGdDQUFnQyxHLEtBRHRDOUIsSyJ9
97
+ /**
98
+ * Searches for a node based on the value in the ID attribute
99
+ * @param node Node
100
+ * @param value Value of the Id attribute
101
+ * @returns Returns the node if it is found. If not, NULL is returned.
102
+ */findNodeById(node,value){cov_2ox2r433ne().f[21]++;cov_2ox2r433ne().s[93]++;if((cov_2ox2r433ne().b[31][0]++,!this.attrid)||(cov_2ox2r433ne().b[31][1]++,!node)){cov_2ox2r433ne().b[30][0]++;cov_2ox2r433ne().s[94]++;return null;}else{cov_2ox2r433ne().b[30][1]++;}cov_2ox2r433ne().s[95]++;if(node[this.attrid]===value){cov_2ox2r433ne().b[32][0]++;cov_2ox2r433ne().s[96]++;return node;}else{cov_2ox2r433ne().b[32][1]++;}const children=(cov_2ox2r433ne().s[97]++,this.getChildren(node));cov_2ox2r433ne().s[98]++;for(let child of children){const result=(cov_2ox2r433ne().s[99]++,this.findNodeById(child,value));cov_2ox2r433ne().s[100]++;if(result!==null){cov_2ox2r433ne().b[33][0]++;cov_2ox2r433ne().s[101]++;return result;}else{cov_2ox2r433ne().b[33][1]++;}}cov_2ox2r433ne().s[102]++;return null;}invertExpandedState(node){cov_2ox2r433ne().f[22]++;cov_2ox2r433ne().s[103]++;if((cov_2ox2r433ne().b[35][0]++,!node)||(cov_2ox2r433ne().b[35][1]++,!this.attrexanded)){cov_2ox2r433ne().b[34][0]++;cov_2ox2r433ne().s[104]++;return;}else{cov_2ox2r433ne().b[34][1]++;}// Items with no children cannot be collabsed
103
+ cov_2ox2r433ne().s[105]++;if((cov_2ox2r433ne().b[37][0]++,!this.hasChildren(node))&&(cov_2ox2r433ne().b[37][1]++,!((cov_2ox2r433ne().b[38][0]++,this.enableasynchload===true)||(cov_2ox2r433ne().b[38][1]++,this.enableasynchload==='true')))){cov_2ox2r433ne().b[36][0]++;cov_2ox2r433ne().s[106]++;return;}else{cov_2ox2r433ne().b[36][1]++;}let value=(cov_2ox2r433ne().s[107]++,node[this.attrexanded]);cov_2ox2r433ne().s[108]++;if((cov_2ox2r433ne().b[40][0]++,value===true)||(cov_2ox2r433ne().b[40][1]++,value==='true')){cov_2ox2r433ne().b[39][0]++;cov_2ox2r433ne().s[109]++;this.collabsed.emit(node);cov_2ox2r433ne().s[110]++;node[this.attrexanded]=false;}else{cov_2ox2r433ne().b[39][1]++;cov_2ox2r433ne().s[111]++;this.expanded.emit(node);cov_2ox2r433ne().s[112]++;node[this.attrexanded]=true;}}resetSelectedState(node){cov_2ox2r433ne().f[23]++;cov_2ox2r433ne().s[113]++;if((cov_2ox2r433ne().b[42][0]++,!node)||(cov_2ox2r433ne().b[42][1]++,!this.attrselected)){cov_2ox2r433ne().b[41][0]++;cov_2ox2r433ne().s[114]++;return;}else{cov_2ox2r433ne().b[41][1]++;}cov_2ox2r433ne().s[115]++;node[this.attrselected]=false;cov_2ox2r433ne().s[116]++;this.getChildren(node).forEach(child=>{cov_2ox2r433ne().f[24]++;cov_2ox2r433ne().s[117]++;this.resetSelectedState(child);});}}cov_2ox2r433ne().s[118]++;SacTreeviewCommon.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacTreeviewCommon,deps:[{token:i1.SacFormLayoutCommon,host:true},{token:i0.Injector}],target:i0.ɵɵFactoryTarget.Directive});cov_2ox2r433ne().s[119]++;SacTreeviewCommon.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacTreeviewCommon,inputs:{attrchildren:"attrchildren",attrdisableaction:"attrdisableaction",attrexanded:"attrexanded",attrhoverstate:"attrhoverstate",attricon:"attricon",attrid:"attrid",attrlabel:"attrlabel",attrselected:"attrselected",data:"data",enableasynchload:"enableasynchload",enableellipsis:"enableellipsis",expandedstate:"expandedstate",isrequired:"isrequired",name:"name",showactionalways:"showactionalways",templateaction:"templateaction",templateicon:"templateicon",templatelabel:"templatelabel",validationmessagerequired:"validationmessagerequired",validationmessagesummaryrequired:"validationmessagesummaryrequired"},outputs:{actionclicked:"actionclicked",collabsed:"collabsed",expanded:"expanded",selected:"selected",selectednode:"selectednode"},usesInheritance:true,ngImport:i0});cov_2ox2r433ne().s[120]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacTreeviewCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_2ox2r433ne().f[25]++;cov_2ox2r433ne().s[121]++;return[{type:i1.SacFormLayoutCommon,decorators:[{type:Host}]},{type:i0.Injector}];},propDecorators:{actionclicked:[{type:Output}],attrchildren:[{type:Input}],attrdisableaction:[{type:Input}],attrexanded:[{type:Input}],attrhoverstate:[{type:Input}],attricon:[{type:Input}],attrid:[{type:Input}],attrlabel:[{type:Input}],attrselected:[{type:Input}],collabsed:[{type:Output}],data:[{type:Input}],enableasynchload:[{type:Input}],enableellipsis:[{type:Input}],expanded:[{type:Output}],expandedstate:[{type:Input}],isrequired:[{type:Input}],name:[{type:Input}],selected:[{type:Output}],selectednode:[{type:Output}],showactionalways:[{type:Input}],templateaction:[{type:Input}],templateicon:[{type:Input}],templatelabel:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagesummaryrequired:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy90cmVldmlldy90cmVldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFZLEtBQUssRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7OztBQUdwRzs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxtQkFBd0I7SUF1SjNELHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7OztPQUdHO0lBQ0gsWUFBb0IsVUFBK0IsRUFBRSxRQUFrQjtRQUNuRSxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBL0poQyxxQkFBcUI7UUFFckI7O1dBRUc7UUFFSSxrQkFBYSxHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUV4Rjs7V0FFRztRQUVJLGlCQUFZLEdBQUcsVUFBVSxDQUFDO1FBRWpDOztXQUVHO1FBQ2Esc0JBQWlCLEdBQUcsVUFBVSxDQUFDO1FBRS9DOztXQUVHO1FBRUksZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFFaEM7O1dBRUc7UUFFSSxtQkFBYyxHQUFHLFlBQVksQ0FBQztRQUVyQzs7V0FFRztRQUVJLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRXRDOztXQUVHO1FBRUksV0FBTSxHQUFrQixJQUFJLENBQUM7UUFFcEM7O1dBRUc7UUFFSSxjQUFTLEdBQUcsT0FBTyxDQUFDO1FBRTNCOztXQUVHO1FBRUksaUJBQVksR0FBRyxVQUFVLENBQUM7UUFFakM7O1dBRUc7UUFFSSxjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFF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QUs7Z0JBTUMsZ0NBQWdDO3NCQUR0QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sJztcbmltcG9ydCB7IFRyZWV2aWV3QWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90cmVldmlld2FjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0JztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0LCBJbmplY3RvciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqXG4gKiBCYXNpcyBLb21wb25lbnRlIGbDvHIgU2FjVHJlZVZpZXdcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjVHJlZXZpZXdDb21tb24gZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPGFueT4ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiBBY3Rpb24gaXMgY2xpY2tlZCBvbiBOb2RlLiAgQW4gb2JqZWN0IG9mIHRoZSB0eXBlICdUcmVldmlld0FjdGlvbicgaXMgcmV0dXJuZWQuIEluIHRoZSBkZWZhdWx0IGNhc2UsICdhY3Rpb24nIGluIHRoaXMgb2JqZWN0IGlzIGFsd2F5cyB0aGUgdmFsdWUgJ2RlZmF1bHQnLiBUaGUgdmFsdWUgY2FuIGJlIGNoYW5nZWQgdmlhIHRoZSAndGVtcGxhdGVhY3Rpb24nLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBhY3Rpb25jbGlja2VkOiBFdmVudEVtaXR0ZXI8VHJlZXZpZXdBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVldmlld0FjdGlvbj4oKTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IG9uIHRoZSBkYXRhIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBjaGlsZHJlbiBvZiB0aGUgc3RydWN0dXJlIGVsZW1lbnQuIE11c3QgYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2NoaWxkcmVuJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF0dHJjaGlsZHJlbiA9ICdjaGlsZHJlbic7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBwcm9wZXJ0eSBvbiB0aGUgJ2RhdGEnIG9iamVjdCB3aXRoIHdoaWNoIHRoZSBhY3Rpb25zIGZvciBhIG5vZGUgY2FuIGJlIGRlYWN0aXZhdGVkLiBBICdkaXNhYmxlZCcgcHJvcGVydHkgaXMgdXNlZCBieSBkZWZhdWx0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhdHRyZGlzYWJsZWFjdGlvbiA9ICdkaXNhYmxlZCc7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBvbiB0aGUgJ2RhdGEnIG9iamVjdCB0aGF0IHN0b3JlcyB0aGUgZXhwYW5kZWQgc3RhdGUuIFByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSBib29sZWFuLiBEZWZhdWx0IGlzICdleHBhbmRlZCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdHRyZXhhbmRlZCA9ICdleHBhbmRlZCc7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBmb3Igc2F2aW5nIHRoZSBIb3ZlclN0YXRlIG9uIHRoZSBmaWVsZC4gSWYgdGhlIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50IG9uIHRoZSBub2RlLCBpdCBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYW5kIHJlbW92ZWQgYWdhaW4uIFRoZSB2YWx1ZSBjYW4gdXN1YWxseSBiZSBsZWZ0IGF0IHRoZSBkZWZhdWx0IHZhbHVlIHVubGVzcyB0aGVyZSBpcyBhIGNvbmZsaWN0IHdpdGggYSBwcm9wZXJ0eSBvbiB0aGUgbm9kZSB0aGF0IGlzIHJlcXVpcmVkIGZvciBvdGhlciBwdXJwb3Nlcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdHRyaG92ZXJzdGF0ZSA9ICdob3ZlcnN0YXRlJztcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IG9uICdkYXRhJyBvYmplY3QsIHdoaWNoIGNvbnRhaW5zIHRoZSBpY29uIGZvciB0aGUgbm9kZS4gQnkgZGVmYXVsdCwgdGhlIHByb3BlcnR5IGlzIG5vdCBzZXQsIHdoaWNoIGhpZGVzIHRoZSBpY29uIGluIHRoZSBub2RlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF0dHJpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIHByb3BlcnR5IG9uIHRoZSAnZGF0YScgb2JqZWN0IGNvbnRhaW5zIGFuIElEIG9mIHRoZSBub2RlLiBUaGUgZGVmYXVsdCBpcyAnaWQnLiBJZiB0aGUgcHJvcGVydHkgaXMgc2V0IHRvIE5VTEwsIHRoZSBzZWxlY3RlZElkIGV2ZW50IGlzIG5vIGxvbmdlciB0cmlnZ2VyZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXR0cmlkOiBzdHJpbmcgfCBudWxsID0gJ2lkJztcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IG9uICdkYXRhJyBvYmplY3QsIHdoaWNoIGNvbnRhaW5zIHRoZSBsYWJlbCBmb3IgdGhlIG5vZGUuIERlZmF1bHQgaXMgJ2xhYmVsJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF0dHJsYWJlbCA9ICdsYWJlbCc7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBvbiAnZGF0YScgb2JqZWN0LCB3aGljaCBkZWZpbmVzIHdoZXRoZXIgdGhlIG5vZGUgaXMgc2VsZWN0ZWQgb3Igbm90LiBJdCBzaG91bGQgYmUgZW5zdXJlZCB0aGF0IG9ubHkgMSBub2RlIGhhcyB0aGUgdmFsdWUgZm9yIFNlbGVjdGVkIHNldCB0byB0cnVlLiBEZWZhdWx0IGlzICdzZWxlY3RlZCcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXR0cnNlbGVjdGVkID0gJ3NlbGVjdGVkJztcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IHdoZW4gYSBub2RlIGlzIGNvbGxhcHNlZC4gUmV0dXJucyB0aGUgbm9kZSBlbGVtZW50IGFzIGEgcGFyYW1ldGVyXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNvbGxhYnNlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9wZXJ0eSBjb250YWlucyBhbiBhcnJheSBvZiBub2Rlcy4gVGhlIGRhdGEgbXVzdCBhbHJlYWR5IG1hcCB0aGUgdHJlZSB2aWEgY2hpbGQgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkYXRhOiBhbnlbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGVzIHRoZSAnZXhwYW5kJyBhbmQgJ2NvbGxhYnNlJyBldmVudCBldmVuIGlmIGEgbm9kZSBoYXMgbm8gY2hpbGRyZW4uIFRoaXMgaXMgaGVscGZ1bCBpZiBub2RlIGVsZW1lbnRzIGFyZSB0byBiZSByZWxvYWRlZCBhdCBydW50aW1lLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVuYWJsZWFzeW5jaGxvYWQ6IGJvb2xlYW4gfCBzdHJpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlcyBFbGxpcHNpcyBvbiB0aGUgbm9kZSBsYWJlbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbmFibGVlbGxpcHNpcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIGEgbm9kZSBpcyBleHBhbmRlZC4gUmV0dXJucyB0aGUgbm9kZSBlbGVtZW50IGFzIGEgcGFyYW1ldGVyXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGV4cGFuZGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIGFuIGljb24gZm9yIHRoZSBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdHVzIHNob3VsZCBiZSBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhwYW5kZWRzdGF0ZTogYm9vbGVhbiB8IHN0cmluZyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBBIG5vZGUgbXVzdCBiZSBzZWxlY3RlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlzcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIFRyZWVWaWV3IGNvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IHdoZW4gYSBub2RlIGlzIHNlbGVjdGVkLiBSZXR1cm5zIHRoZSBpZCBhdHRyaWJ1dGUgYXMgYSBwYXJhbWV0ZXIuIFRoZSBldmVudCBpcyBub3QgdHJpZ2dlcmVkIGlmICdhdHRyaWQnIGlzIG5vdCBzZXQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiBhIG5vZGUgaXMgc2VsZWN0ZWQuIFJldHVybnMgdGhlIG5vZGUgZWxlbWVudCBhcyBhIHBhcmFtZXRlci5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc2VsZWN0ZWRub2RlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGF0IHRoZSBhY3Rpb24gdGVtcGxhdGUgaXMgZGlzcGxheWVkIGluZGVwZW5kZW50bHkgb2YgdGhlIHNlbGVjdGVkIHN0YXRlLiBJZiB0aGUgdmFsdWUgaXMgJ3RydWUnLCB0aGUgYWN0aW9uIHRlbXBsYXRlIGlzIGRpc3BsYXllZCBmb3IgZXZlcnkgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93YWN0aW9uYWx3YXlzO1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciBhY3Rpb25zIHBlciBub2RlLiBUZW1wbGF0ZSBwYXJhbWV0ZXJzIGFyZTogJ25vZGUnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGVtcGxhdGVhY3Rpb246IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gdGVtcGxhdGUgZm9yIGljb24gcGVyIG5vZGUuIFRlbXBsYXRlIHBhcmFtZXRlcnMgYXJlOiAnbm9kZSdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZWljb246IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gdGVtcGxhdGUgZm9yIHRoZSBsYWJlbCBhcmVhIHBlciBub2RlLiBUZW1wbGF0ZSBwYXJhbWV0ZXJzIGFyZTogJ25vZGUnIGFuZCAnbGFiZWwnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGVtcGxhdGVsYWJlbDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZDtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGluamVjdG9yIFNlcnZpY2UgSW5qZWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIHB1YmxpYyBnZXQgaWNvbkFjdGlvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5UcmVldmlld05vZGVBY3Rpb25JY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENTUyBpY29uIGZvciBmb2xkZXJzIGluIHRyZWUgdGhlcmUgYXJlIGNvbGxhYnNlZFxuICAgICAqIEByZXR1cm5zIGNzcyBjbGFzcyB3aXRoIGljb25cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGljb25Gb2xkZXJDb2xsYWJzZWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVHJlZXZpZXdOb2RlQ2xvc2VkSWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDU1MgaWNvbiBjbGFzcyBmb3IgZm9sZGVycyB3aXRob3V0IHN1YmZvbGRlcnNcbiAgICAgKiBAcmV0dXJucyBjc3MgY2xhc3Mgd2l0aCBpY29uXG4gICAgICovXG4gICAgcHVibGljIGdldCBpY29uRm9sZGVyRW1wdHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVHJlZXZpZXdOb2RlRW1wdHlJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENTUyBpY29uIGZvciBmb2xkZXJzIGluIHRyZWUgdGhlcmUgYXJlIGV4cGFuZGVkXG4gICAgICogQHJldHVybnMgY3NzIGNsYXNzIHdpdGggaWNvblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaWNvbkZvbGRlck9wZW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVHJlZXZpZXdOb2RlT3Blbkljb247XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBhIGNlcnRhaW4gc2l6ZS4gSXMgcmVxdWlyZWQgZm9yIGEgRm9yIGluIHRoZSBVSSwgYXMgQW5ndWxhciBkb2VzIG5vdCBzdXBwb3J0IGNvdW50aW5nIGxvb3BzXG4gICAgICogQHBhcmFtIHNpemUgU2l6ZSBvZiB0aGUgYXJyYXlcbiAgICAgKiBAcmV0dXJucyBBcnJheVxuICAgICAqL1xuICAgIHB1YmxpYyBjb3VudChzaXplOiBudW1iZXIpOiBBcnJheTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXkoc2l6ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENoaWxkcmVuKG5vZGU6IGFueSk6IGFueVtdIHtcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJjaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNoaWxkcmVuID0gbm9kZVt0aGlzLmF0dHJjaGlsZHJlbl07XG5cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdHJpbmdGaWVsZChub2RlOiBhbnksIGZpZWxkbmFtZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWZpZWxkbmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW2ZpZWxkbmFtZV07XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNDaGlsZHJlbihub2RlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2hpbGRyZW4obm9kZSkubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNEaXNhYmxlZFN0YXRlKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmRpc2FibGVhY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbdGhpcy5hdHRyZGlzYWJsZWFjdGlvbl07XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0V4cGFuZGVkU3RhdGUobm9kZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyZXhhbmRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVt0aGlzLmF0dHJleGFuZGVkXTtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSG92ZXJTdGF0ZShub2RlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJob3ZlcnN0YXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cmhvdmVyc3RhdGVdO1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNTZWxlY3RlZFN0YXRlKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cnNlbGVjdGVkXTtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGlzIGNhbGxlZCBieSBjbGlja2luZyBhbiBhY3Rpb25cbiAgICAgKiBAcGFyYW0gYWN0aW9uIGFjdGlvbiBhbmQgbm9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBvbkFjdGlvbkNsaWNrZWQoYWN0aW9uOiBUcmVldmlld0FjdGlvbikge1xuICAgICAgICB0aGlzLmFjdGlvbmNsaWNrZWQuZW1pdChhY3Rpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBpcyBjYWxsZWQgd2hlbiBOb2RlIGluIFRyZWUgaXMgY2xpY2tlZFxuICAgICAqIEBwYXJhbSBub2RlIFNlbGVjdGVkIE5vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Ob2RlQ2xpY2tlZChub2RlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZFN0YXRlKG5vZGUpIHx8IHRoaXMuaXNTZWxlY3RlZFN0YXRlKG5vZGUpKSB7XG4gICAgICAgICAgICB0aGlzLmludmVydEV4cGFuZGVkU3RhdGUobm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkU3RhdGUobm9kZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgaG92ZXIgc3RhdGUgb24gYSBub2RlXG4gICAgICogQHBhcmFtIG5vZGUgTm9kZSBvbiB3aGljaCB0aGUgc3RhdHVzIGlzIHNldFxuICAgICAqIEBwYXJhbSBzdGF0ZSBBY3RpdmF0ZSBvciBkZWFjdGl2YXRlIEhvdmVyU3RhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0SG92ZXJTdGF0ZShub2RlOiBhbnksIHN0YXRlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyaG92ZXJzdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICBub2RlW3RoaXMuYXR0cmhvdmVyc3RhdGVdID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbm9kZS5oYXNPd25Qcm9wZXJ0eSh0aGlzLmF0dHJob3ZlcnN0YXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVsZXRlIG5vZGVbdGhpcy5hdHRyaG92ZXJzdGF0ZV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgc2VsZWN0ZWQgc3RhdGUgb24gYSBub2RlXG4gICAgICogQHBhcmFtIG5vZGUgTm9kZSB3aGljaCBpcyBtYXJrZWQgYXMgU2VsZWN0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0U2VsZWN0ZWRTdGF0ZShub2RlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJzZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVzZXQgc2VsZWN0ZWQgc3RhdGUgb2YgYW55IG5vZGVcbiAgICAgICAgdGhpcy5kYXRhLmZvckVhY2goKHJvb3ROb2RlKSA9PiB0aGlzLnJlc2V0U2VsZWN0ZWRTdGF0ZShyb290Tm9kZSkpO1xuXG4gICAgICAgIC8vIHNldCBzZWxlY3RlZCBub2RlIGFzIHNlbGVjdGVkXG4gICAgICAgIG5vZGVbdGhpcy5hdHRyc2VsZWN0ZWRdID0gdHJ1ZTtcblxuICAgICAgICAvLyBFeHRyYWN0IElEIGZyb20gTm9kZVxuICAgICAgICBjb25zdCBpZFZhbHVlID0gbm9kZVt0aGlzLmF0dHJpZF07XG5cbiAgICAgICAgLy8gVXBkYXRlIG5nTW9kZWxcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShpZFZhbHVlKTtcblxuICAgICAgICAvLyBSYWlzZSBTZWxlY3RlZCBFdmVudHNcbiAgICAgICAgdGhpcy5zZWxlY3RlZG5vZGUuZW1pdChub2RlKTtcblxuICAgICAgICBpZiAoIXRoaXMuYXR0cmlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaWQgPSB0aGlzLmdldFN0cmluZ0ZpZWxkKG5vZGUsIHRoaXMuYXR0cmlkKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0ZXMgdGhlIG1vZGVsIHN0YXRlIG9mIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIGMgQ29udHJvbCBpbnN0YW5jZVxuICAgICAqIEByZXR1cm5zIFJldHVybnMgYSB2YWxpZGF0aW9uIGVycm9yLCBpZiBwcmVzZW50LiBPdGhlcndpc2UsIGFzIFJlc3VsdCBpcyBOVUxMXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQpKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNhdmVzIHRoZSBkYXRhIGZyb20gdGhlIG1vZGVsIGJpbmRpbmdcbiAgICAgKiBAcGFyYW0gdmFsdWUgSWQgb2YgdGhlIHNlbGVjdGVkIG5vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIC8vIERvIG5vdCBwcmVzZWxjdCBpdGVtIHdoZW4gdHJlZSBpcyBlbXB0eVxuICAgICAgICBpZiAoIXRoaXMuZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kYXRhLmZvckVhY2goKHJvb3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZmluZE5vZGVCeUlkKHJvb3QsIHZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRTdGF0ZShyZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogU2VhcmNoZXMgZm9yIGEgbm9kZSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gdGhlIElEIGF0dHJpYnV0ZVxuICAgICAqIEBwYXJhbSBub2RlIE5vZGVcbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgb2YgdGhlIElkIGF0dHJpYnV0ZVxuICAgICAqIEByZXR1cm5zIFJldHVybnMgdGhlIG5vZGUgaWYgaXQgaXMgZm91bmQuIElmIG5vdCwgTlVMTCBpcyByZXR1cm5lZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmROb2RlQnlJZChub2RlOiBhbnksIHZhbHVlOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoIXRoaXMuYXR0cmlkIHx8ICFub2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub2RlW3RoaXMuYXR0cmlkXSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmdldENoaWxkcmVuKG5vZGUpO1xuICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maW5kTm9kZUJ5SWQoY2hpbGQsIHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnZlcnRFeHBhbmRlZFN0YXRlKG5vZGU6IGFueSkge1xuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmV4YW5kZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEl0ZW1zIHdpdGggbm8gY2hpbGRyZW4gY2Fubm90IGJlIGNvbGxhYnNlZFxuICAgICAgICBpZiAoIXRoaXMuaGFzQ2hpbGRyZW4obm9kZSkgJiYgISh0aGlzLmVuYWJsZWFzeW5jaGxvYWQgPT09IHRydWUgfHwgdGhpcy5lbmFibGVhc3luY2hsb2FkID09PSAndHJ1ZScpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cmV4YW5kZWRdO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgICB0aGlzLmNvbGxhYnNlZC5lbWl0KG5vZGUpO1xuICAgICAgICAgICAgbm9kZVt0aGlzLmF0dHJleGFuZGVkXSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5leHBhbmRlZC5lbWl0KG5vZGUpO1xuICAgICAgICAgICAgbm9kZVt0aGlzLmF0dHJleGFuZGVkXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0U2VsZWN0ZWRTdGF0ZShub2RlOiBhbnkpIHtcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJzZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbm9kZVt0aGlzLmF0dHJzZWxlY3RlZF0gPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmdldENoaWxkcmVuKG5vZGUpLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U2VsZWN0ZWRTdGF0ZShjaGlsZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMm94MnI0MzNuZSIsImFjdHVhbENvdmVyYWdlIiwiU2FjQmFzZU1vZGVsQ29udHJvbCIsIlZhbGlkYXRpb24iLCJEaXJlY3RpdmUiLCJFdmVudEVtaXR0ZXIiLCJIb3N0IiwiSW5wdXQiLCJPdXRwdXQiLCJTYWNUcmVldmlld0NvbW1vbiIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZiIsInMiLCJhY3Rpb25jbGlja2VkIiwiYXR0cmNoaWxkcmVuIiwiYXR0cmRpc2FibGVhY3Rpb24iLCJhdHRyZXhhbmRlZCIsImF0dHJob3ZlcnN0YXRlIiwiYXR0cmljb24iLCJhdHRyaWQiLCJhdHRybGFiZWwiLCJhdHRyc2VsZWN0ZWQiLCJjb2xsYWJzZWQiLCJkYXRhIiwiZW5hYmxlYXN5bmNobG9hZCIsImVuYWJsZWVsbGlwc2lzIiwiZXhwYW5kZWQiLCJleHBhbmRlZHN0YXRlIiwiaXNyZXF1aXJlZCIsIm5hbWUiLCJzZWxlY3RlZCIsInNlbGVjdGVkbm9kZSIsInZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQiLCJ2YWxpZGF0aW9uS2V5U2VydmljZSIsIlZhbGlkYXRpb25FcnJvclJlcXVpcmVkIiwidmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQiLCJpY29uQWN0aW9uIiwiaWNvblNlcnZpY2UiLCJUcmVldmlld05vZGVBY3Rpb25JY29uIiwiaWNvbkZvbGRlckNvbGxhYnNlZCIsIlRyZWV2aWV3Tm9kZUNsb3NlZEljb24iLCJpY29uRm9sZGVyRW1wdHkiLCJUcmVldmlld05vZGVFbXB0eUljb24iLCJpY29uRm9sZGVyT3BlbiIsIlRyZWV2aWV3Tm9kZU9wZW5JY29uIiwiY291bnQiLCJzaXplIiwiQXJyYXkiLCJnZXRDaGlsZHJlbiIsIm5vZGUiLCJiIiwiY2hpbGRyZW4iLCJpc0FycmF5IiwiZ2V0U3RyaW5nRmllbGQiLCJmaWVsZG5hbWUiLCJ2YWx1ZSIsImhhc0NoaWxkcmVuIiwibGVuZ3RoIiwiaXNEaXNhYmxlZFN0YXRlIiwiaXNFeHBhbmRlZFN0YXRlIiwiaXNIb3ZlclN0YXRlIiwiaXNTZWxlY3RlZFN0YXRlIiwib25BY3Rpb25DbGlja2VkIiwiYWN0aW9uIiwiZW1pdCIsIm9uTm9kZUNsaWNrZWQiLCJpbnZlcnRFeHBhbmRlZFN0YXRlIiwic2V0U2VsZWN0ZWRTdGF0ZSIsInNldEhvdmVyU3RhdGUiLCJzdGF0ZSIsImhhc093blByb3BlcnR5IiwiZm9yRWFjaCIsInJvb3ROb2RlIiwicmVzZXRTZWxlY3RlZFN0YXRlIiwiaWRWYWx1ZSIsInNldFZhbHVlIiwiaWQiLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJyZXF1aXJlZCIsIndyaXRlVmFsdWUiLCJyb290IiwicmVzdWx0IiwiZmluZE5vZGVCeUlkIiwiY2hpbGQiLCJkZXBzIiwidG9rZW4iLCJpMSIsIlNhY0Zvcm1MYXlvdXRDb21tb24iLCJob3N0IiwiaTAiLCJJbmplY3RvciIsInRhcmdldCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwiaW5wdXRzIiwic2hvd2FjdGlvbmFsd2F5cyIsInRlbXBsYXRlYWN0aW9uIiwidGVtcGxhdGVpY29uIiwidGVtcGxhdGVsYWJlbCIsIm91dHB1dHMiLCJ1c2VzSW5oZXJpdGFuY2UiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy90cmVldmlldy90cmVldmlldy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNCYXNlTW9kZWxDb250cm9sIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2Vtb2RlbGNvbnRyb2wnO1xuaW1wb3J0IHsgVHJlZXZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RyZWV2aWV3YWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3QsIEluamVjdG9yLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEJhc2lzIEtvbXBvbmVudGUgZsO8ciBTYWNUcmVlVmlld1xuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTYWNUcmVldmlld0NvbW1vbiBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8YW55PiB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIEFjdGlvbiBpcyBjbGlja2VkIG9uIE5vZGUuICBBbiBvYmplY3Qgb2YgdGhlIHR5cGUgJ1RyZWV2aWV3QWN0aW9uJyBpcyByZXR1cm5lZC4gSW4gdGhlIGRlZmF1bHQgY2FzZSwgJ2FjdGlvbicgaW4gdGhpcyBvYmplY3QgaXMgYWx3YXlzIHRoZSB2YWx1ZSAnZGVmYXVsdCcuIFRoZSB2YWx1ZSBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlICd0ZW1wbGF0ZWFjdGlvbicuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGFjdGlvbmNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxUcmVldmlld0FjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyZWV2aWV3QWN0aW9uPigpO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgb24gdGhlIGRhdGEgb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGNoaWxkcmVuIG9mIHRoZSBzdHJ1Y3R1cmUgZWxlbWVudC4gTXVzdCBiZSBhbiBhcnJheSBvZiBvYmplY3RzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAnY2hpbGRyZW4nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXR0cmNoaWxkcmVuID0gJ2NoaWxkcmVuJztcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHByb3BlcnR5IG9uIHRoZSAnZGF0YScgb2JqZWN0IHdpdGggd2hpY2ggdGhlIGFjdGlvbnMgZm9yIGEgbm9kZSBjYW4gYmUgZGVhY3RpdmF0ZWQuIEEgJ2Rpc2FibGVkJyBwcm9wZXJ0eSBpcyB1c2VkIGJ5IGRlZmF1bHQuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGF0dHJkaXNhYmxlYWN0aW9uID0gJ2Rpc2FibGVkJztcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IG9uIHRoZSAnZGF0YScgb2JqZWN0IHRoYXQgc3RvcmVzIHRoZSBleHBhbmRlZCBzdGF0ZS4gUHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4uIERlZmF1bHQgaXMgJ2V4cGFuZGVkJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF0dHJleGFuZGVkID0gJ2V4cGFuZGVkJztcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBzYXZpbmcgdGhlIEhvdmVyU3RhdGUgb24gdGhlIGZpZWxkLiBJZiB0aGUgcHJvcGVydHkgaXMgbm90IHByZXNlbnQgb24gdGhlIG5vZGUsIGl0IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBhbmQgcmVtb3ZlZCBhZ2Fpbi4gVGhlIHZhbHVlIGNhbiB1c3VhbGx5IGJlIGxlZnQgYXQgdGhlIGRlZmF1bHQgdmFsdWUgdW5sZXNzIHRoZXJlIGlzIGEgY29uZmxpY3Qgd2l0aCBhIHByb3BlcnR5IG9uIHRoZSBub2RlIHRoYXQgaXMgcmVxdWlyZWQgZm9yIG90aGVyIHB1cnBvc2VzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF0dHJob3ZlcnN0YXRlID0gJ2hvdmVyc3RhdGUnO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgb24gJ2RhdGEnIG9iamVjdCwgd2hpY2ggY29udGFpbnMgdGhlIGljb24gZm9yIHRoZSBub2RlLiBCeSBkZWZhdWx0LCB0aGUgcHJvcGVydHkgaXMgbm90IHNldCwgd2hpY2ggaGlkZXMgdGhlIGljb24gaW4gdGhlIG5vZGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXR0cmljb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogcHJvcGVydHkgb24gdGhlICdkYXRhJyBvYmplY3QgY29udGFpbnMgYW4gSUQgb2YgdGhlIG5vZGUuIFRoZSBkZWZhdWx0IGlzICdpZCcuIElmIHRoZSBwcm9wZXJ0eSBpcyBzZXQgdG8gTlVMTCwgdGhlIHNlbGVjdGVkSWQgZXZlbnQgaXMgbm8gbG9uZ2VyIHRyaWdnZXJlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdHRyaWQ6IHN0cmluZyB8IG51bGwgPSAnaWQnO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgb24gJ2RhdGEnIG9iamVjdCwgd2hpY2ggY29udGFpbnMgdGhlIGxhYmVsIGZvciB0aGUgbm9kZS4gRGVmYXVsdCBpcyAnbGFiZWwnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXR0cmxhYmVsID0gJ2xhYmVsJztcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IG9uICdkYXRhJyBvYmplY3QsIHdoaWNoIGRlZmluZXMgd2hldGhlciB0aGUgbm9kZSBpcyBzZWxlY3RlZCBvciBub3QuIEl0IHNob3VsZCBiZSBlbnN1cmVkIHRoYXQgb25seSAxIG5vZGUgaGFzIHRoZSB2YWx1ZSBmb3IgU2VsZWN0ZWQgc2V0IHRvIHRydWUuIERlZmF1bHQgaXMgJ3NlbGVjdGVkJy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdHRyc2VsZWN0ZWQgPSAnc2VsZWN0ZWQnO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiBhIG5vZGUgaXMgY29sbGFwc2VkLiBSZXR1cm5zIHRoZSBub2RlIGVsZW1lbnQgYXMgYSBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY29sbGFic2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHByb3BlcnR5IGNvbnRhaW5zIGFuIGFycmF5IG9mIG5vZGVzLiBUaGUgZGF0YSBtdXN0IGFscmVhZHkgbWFwIHRoZSB0cmVlIHZpYSBjaGlsZCBwcm9wZXJ0aWVzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRhdGE6IGFueVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmF0ZXMgdGhlICdleHBhbmQnIGFuZCAnY29sbGFic2UnIGV2ZW50IGV2ZW4gaWYgYSBub2RlIGhhcyBubyBjaGlsZHJlbi4gVGhpcyBpcyBoZWxwZnVsIGlmIG5vZGUgZWxlbWVudHMgYXJlIHRvIGJlIHJlbG9hZGVkIGF0IHJ1bnRpbWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW5hYmxlYXN5bmNobG9hZDogYm9vbGVhbiB8IHN0cmluZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGVzIEVsbGlwc2lzIG9uIHRoZSBub2RlIGxhYmVsc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVuYWJsZWVsbGlwc2lzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IHdoZW4gYSBub2RlIGlzIGV4cGFuZGVkLiBSZXR1cm5zIHRoZSBub2RlIGVsZW1lbnQgYXMgYSBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZXhwYW5kZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgYW4gaWNvbiBmb3IgdGhlIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0dXMgc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBleHBhbmRlZHN0YXRlOiBib29sZWFuIHwgc3RyaW5nID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEEgbm9kZSBtdXN0IGJlIHNlbGVjdGVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgVHJlZVZpZXcgY29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiBhIG5vZGUgaXMgc2VsZWN0ZWQuIFJldHVybnMgdGhlIGlkIGF0dHJpYnV0ZSBhcyBhIHBhcmFtZXRlci4gVGhlIGV2ZW50IGlzIG5vdCB0cmlnZ2VyZWQgaWYgJ2F0dHJpZCcgaXMgbm90IHNldC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIGEgbm9kZSBpcyBzZWxlY3RlZC4gUmV0dXJucyB0aGUgbm9kZSBlbGVtZW50IGFzIGEgcGFyYW1ldGVyLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RlZG5vZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoYXQgdGhlIGFjdGlvbiB0ZW1wbGF0ZSBpcyBkaXNwbGF5ZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgc2VsZWN0ZWQgc3RhdGUuIElmIHRoZSB2YWx1ZSBpcyAndHJ1ZScsIHRoZSBhY3Rpb24gdGVtcGxhdGUgaXMgZGlzcGxheWVkIGZvciBldmVyeSBlbGVtZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dhY3Rpb25hbHdheXM7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gdGVtcGxhdGUgZm9yIGFjdGlvbnMgcGVyIG5vZGUuIFRlbXBsYXRlIHBhcmFtZXRlcnMgYXJlOiAnbm9kZSdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZWFjdGlvbjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgaWNvbiBwZXIgbm9kZS4gVGVtcGxhdGUgcGFyYW1ldGVycyBhcmU6ICdub2RlJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRlbXBsYXRlaWNvbjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgdGhlIGxhYmVsIGFyZWEgcGVyIG5vZGUuIFRlbXBsYXRlIHBhcmFtZXRlcnMgYXJlOiAnbm9kZScgYW5kICdsYWJlbCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZWxhYmVsOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgU2VydmljZSBJbmplY3RvclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKEBIb3N0KCkgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgcHVibGljIGdldCBpY29uQWN0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlRyZWV2aWV3Tm9kZUFjdGlvbkljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ1NTIGljb24gZm9yIGZvbGRlcnMgaW4gdHJlZSB0aGVyZSBhcmUgY29sbGFic2VkXG4gICAgICogQHJldHVybnMgY3NzIGNsYXNzIHdpdGggaWNvblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaWNvbkZvbGRlckNvbGxhYnNlZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5UcmVldmlld05vZGVDbG9zZWRJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENTUyBpY29uIGNsYXNzIGZvciBmb2xkZXJzIHdpdGhvdXQgc3ViZm9sZGVyc1xuICAgICAqIEByZXR1cm5zIGNzcyBjbGFzcyB3aXRoIGljb25cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGljb25Gb2xkZXJFbXB0eSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5UcmVldmlld05vZGVFbXB0eUljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ1NTIGljb24gZm9yIGZvbGRlcnMgaW4gdHJlZSB0aGVyZSBhcmUgZXhwYW5kZWRcbiAgICAgKiBAcmV0dXJucyBjc3MgY2xhc3Mgd2l0aCBpY29uXG4gICAgICovXG4gICAgcHVibGljIGdldCBpY29uRm9sZGVyT3BlbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5UcmVldmlld05vZGVPcGVuSWNvbjtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGEgY2VydGFpbiBzaXplLiBJcyByZXF1aXJlZCBmb3IgYSBGb3IgaW4gdGhlIFVJLCBhcyBBbmd1bGFyIGRvZXMgbm90IHN1cHBvcnQgY291bnRpbmcgbG9vcHNcbiAgICAgKiBAcGFyYW0gc2l6ZSBTaXplIG9mIHRoZSBhcnJheVxuICAgICAqIEByZXR1cm5zIEFycmF5XG4gICAgICovXG4gICAgcHVibGljIGNvdW50KHNpemU6IG51bWJlcik6IEFycmF5PHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheShzaXplKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2hpbGRyZW4obm9kZTogYW55KTogYW55W10ge1xuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmNoaWxkcmVuKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2hpbGRyZW4gPSBub2RlW3RoaXMuYXR0cmNoaWxkcmVuXTtcblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN0cmluZ0ZpZWxkKG5vZGU6IGFueSwgZmllbGRuYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZmllbGRuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbZmllbGRuYW1lXTtcblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0NoaWxkcmVuKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDaGlsZHJlbihub2RlKS5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0Rpc2FibGVkU3RhdGUobm9kZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyZGlzYWJsZWFjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVt0aGlzLmF0dHJkaXNhYmxlYWN0aW9uXTtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXhwYW5kZWRTdGF0ZShub2RlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJleGFuZGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3RoaXMuYXR0cmV4YW5kZWRdO1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNIb3ZlclN0YXRlKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cmhvdmVyc3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbdGhpcy5hdHRyaG92ZXJzdGF0ZV07XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NlbGVjdGVkU3RhdGUobm9kZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbdGhpcy5hdHRyc2VsZWN0ZWRdO1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgaXMgY2FsbGVkIGJ5IGNsaWNraW5nIGFuIGFjdGlvblxuICAgICAqIEBwYXJhbSBhY3Rpb24gYWN0aW9uIGFuZCBub2RlXG4gICAgICovXG4gICAgcHVibGljIG9uQWN0aW9uQ2xpY2tlZChhY3Rpb246IFRyZWV2aWV3QWN0aW9uKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uY2xpY2tlZC5lbWl0KGFjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGlzIGNhbGxlZCB3aGVuIE5vZGUgaW4gVHJlZSBpcyBjbGlja2VkXG4gICAgICogQHBhcmFtIG5vZGUgU2VsZWN0ZWQgTm9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBvbk5vZGVDbGlja2VkKG5vZGU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkU3RhdGUobm9kZSkgfHwgdGhpcy5pc1NlbGVjdGVkU3RhdGUobm9kZSkpIHtcbiAgICAgICAgICAgIHRoaXMuaW52ZXJ0RXhwYW5kZWRTdGF0ZShub2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRTdGF0ZShub2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBob3ZlciBzdGF0ZSBvbiBhIG5vZGVcbiAgICAgKiBAcGFyYW0gbm9kZSBOb2RlIG9uIHdoaWNoIHRoZSBzdGF0dXMgaXMgc2V0XG4gICAgICogQHBhcmFtIHN0YXRlIEFjdGl2YXRlIG9yIGRlYWN0aXZhdGUgSG92ZXJTdGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRIb3ZlclN0YXRlKG5vZGU6IGFueSwgc3RhdGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKCFub2RlIHx8ICF0aGlzLmF0dHJob3ZlcnN0YXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICAgIG5vZGVbdGhpcy5hdHRyaG92ZXJzdGF0ZV0gPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFub2RlLmhhc093blByb3BlcnR5KHRoaXMuYXR0cmhvdmVyc3RhdGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBkZWxldGUgbm9kZVt0aGlzLmF0dHJob3ZlcnN0YXRlXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzZWxlY3RlZCBzdGF0ZSBvbiBhIG5vZGVcbiAgICAgKiBAcGFyYW0gbm9kZSBOb2RlIHdoaWNoIGlzIG1hcmtlZCBhcyBTZWxlY3RlZFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRTZWxlY3RlZFN0YXRlKG5vZGU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXNldCBzZWxlY3RlZCBzdGF0ZSBvZiBhbnkgbm9kZVxuICAgICAgICB0aGlzLmRhdGEuZm9yRWFjaCgocm9vdE5vZGUpID0+IHRoaXMucmVzZXRTZWxlY3RlZFN0YXRlKHJvb3ROb2RlKSk7XG5cbiAgICAgICAgLy8gc2V0IHNlbGVjdGVkIG5vZGUgYXMgc2VsZWN0ZWRcbiAgICAgICAgbm9kZVt0aGlzLmF0dHJzZWxlY3RlZF0gPSB0cnVlO1xuXG4gICAgICAgIC8vIEV4dHJhY3QgSUQgZnJvbSBOb2RlXG4gICAgICAgIGNvbnN0IGlkVmFsdWUgPSBub2RlW3RoaXMuYXR0cmlkXTtcblxuICAgICAgICAvLyBVcGRhdGUgbmdNb2RlbFxuICAgICAgICB0aGlzLnNldFZhbHVlKGlkVmFsdWUpO1xuXG4gICAgICAgIC8vIFJhaXNlIFNlbGVjdGVkIEV2ZW50c1xuICAgICAgICB0aGlzLnNlbGVjdGVkbm9kZS5lbWl0KG5vZGUpO1xuXG4gICAgICAgIGlmICghdGhpcy5hdHRyaWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpZCA9IHRoaXMuZ2V0U3RyaW5nRmllbGQobm9kZSwgdGhpcy5hdHRyaWQpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyB0aGUgbW9kZWwgc3RhdGUgb2YgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gYyBDb250cm9sIGluc3RhbmNlXG4gICAgICogQHJldHVybnMgUmV0dXJucyBhIHZhbGlkYXRpb24gZXJyb3IsIGlmIHByZXNlbnQuIE90aGVyd2lzZSwgYXMgUmVzdWx0IGlzIE5VTExcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCwgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZCkoYyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgdGhlIGRhdGEgZnJvbSB0aGUgbW9kZWwgYmluZGluZ1xuICAgICAqIEBwYXJhbSB2YWx1ZSBJZCBvZiB0aGUgc2VsZWN0ZWQgbm9kZVxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgLy8gRG8gbm90IHByZXNlbGN0IGl0ZW0gd2hlbiB0cmVlIGlzIGVtcHR5XG4gICAgICAgIGlmICghdGhpcy5kYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGEuZm9yRWFjaCgocm9vdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maW5kTm9kZUJ5SWQocm9vdCwgdmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFN0YXRlKHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBTZWFyY2hlcyBmb3IgYSBub2RlIGJhc2VkIG9uIHRoZSB2YWx1ZSBpbiB0aGUgSUQgYXR0cmlidXRlXG4gICAgICogQHBhcmFtIG5vZGUgTm9kZVxuICAgICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBvZiB0aGUgSWQgYXR0cmlidXRlXG4gICAgICogQHJldHVybnMgUmV0dXJucyB0aGUgbm9kZSBpZiBpdCBpcyBmb3VuZC4gSWYgbm90LCBOVUxMIGlzIHJldHVybmVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZE5vZGVCeUlkKG5vZGU6IGFueSwgdmFsdWU6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5hdHRyaWQgfHwgIW5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGVbdGhpcy5hdHRyaWRdID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZ2V0Q2hpbGRyZW4obm9kZSk7XG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmROb2RlQnlJZChjaGlsZCwgdmFsdWUpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGludmVydEV4cGFuZGVkU3RhdGUobm9kZTogYW55KSB7XG4gICAgICAgIGlmICghbm9kZSB8fCAhdGhpcy5hdHRyZXhhbmRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSXRlbXMgd2l0aCBubyBjaGlsZHJlbiBjYW5ub3QgYmUgY29sbGFic2VkXG4gICAgICAgIGlmICghdGhpcy5oYXNDaGlsZHJlbihub2RlKSAmJiAhKHRoaXMuZW5hYmxlYXN5bmNobG9hZCA9PT0gdHJ1ZSB8fCB0aGlzLmVuYWJsZWFzeW5jaGxvYWQgPT09ICd0cnVlJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbdGhpcy5hdHRyZXhhbmRlZF07XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgIHRoaXMuY29sbGFic2VkLmVtaXQobm9kZSk7XG4gICAgICAgICAgICBub2RlW3RoaXMuYXR0cmV4YW5kZWRdID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkLmVtaXQobm9kZSk7XG4gICAgICAgICAgICBub2RlW3RoaXMuYXR0cmV4YW5kZWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRTZWxlY3RlZFN0YXRlKG5vZGU6IGFueSkge1xuICAgICAgICBpZiAoIW5vZGUgfHwgIXRoaXMuYXR0cnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBub2RlW3RoaXMuYXR0cnNlbGVjdGVkXSA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuZ2V0Q2hpbGRyZW4obm9kZSkuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRTZWxlY3RlZFN0YXRlKGNoaWxkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cbiJdLCJtYXBwaW5ncyI6ImsyekNBMEtJO0FBQUFBLGNBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsY0FBQSxHQTFLSixPQUFTRSxtQkFBbUIsS0FBUSwrQkFBK0IsQ0FFbkUsT0FBU0MsVUFBVSxLQUFRLGtCQUFrQixDQUU3QyxPQUFTQyxTQUFTLENBQUVDLFlBQVksQ0FBRUMsSUFBSSxD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