@simpleangularcontrols/sac-common 16.0.0-rc.22 → 16.0.0-rc.23

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 (388) hide show
  1. package/common/basedatetimecontrol.d.ts +45 -18
  2. package/common/basedatetimecontrol.d.ts.map +1 -1
  3. package/common/baseinputcontrol.d.ts +10 -8
  4. package/common/baseinputcontrol.d.ts.map +1 -1
  5. package/common/baselistcontrol.d.ts +16 -16
  6. package/common/baselistcontrol.d.ts.map +1 -1
  7. package/common/basemodelcontrol.d.ts +60 -44
  8. package/common/basemodelcontrol.d.ts.map +1 -1
  9. package/common/baseselectcontrol.d.ts +6 -6
  10. package/common/baseselectcontrol.d.ts.map +1 -1
  11. package/common/baseuploadcontrol.d.ts +78 -58
  12. package/common/baseuploadcontrol.d.ts.map +1 -1
  13. package/components/browser/browser.d.ts +86 -89
  14. package/components/browser/browser.d.ts.map +1 -1
  15. package/components/browser/models/browserfile.d.ts +6 -6
  16. package/components/browser/models/browserfile.d.ts.map +1 -1
  17. package/components/browser/models/browserfiledeleterequest.d.ts +7 -7
  18. package/components/browser/models/browserfiledeleterequest.d.ts.map +1 -1
  19. package/components/browser/models/browserfilerenamerequest.d.ts +10 -10
  20. package/components/browser/models/browserfilerenamerequest.d.ts.map +1 -1
  21. package/components/browser/models/browserfileresponse.d.ts +2 -2
  22. package/components/browser/models/browserfileresponse.d.ts.map +1 -1
  23. package/components/browser/models/browserfilesaverequest.d.ts +7 -7
  24. package/components/browser/models/browserfilesaverequest.d.ts.map +1 -1
  25. package/components/browser/models/browsernode.d.ts +13 -13
  26. package/components/browser/models/browsernode.d.ts.map +1 -1
  27. package/components/browser/models/browsernodedeleterequest.d.ts +6 -6
  28. package/components/browser/models/browsernodedeleterequest.d.ts.map +1 -1
  29. package/components/browser/models/browsernodenewrequest.d.ts +7 -7
  30. package/components/browser/models/browsernodenewrequest.d.ts.map +1 -1
  31. package/components/browser/models/browsernoderenamerequest.d.ts +7 -7
  32. package/components/browser/models/browsernoderenamerequest.d.ts.map +1 -1
  33. package/components/browser/models/browsernoderequest.d.ts +7 -7
  34. package/components/browser/models/browsernoderequest.d.ts.map +1 -1
  35. package/components/browser/models/browsernoderesponse.d.ts +1 -1
  36. package/components/browser/models/browsernoderesponse.d.ts.map +1 -1
  37. package/controls/buttons/button.d.ts +25 -19
  38. package/controls/buttons/button.d.ts.map +1 -1
  39. package/controls/checkbox/checkbox.d.ts +4 -4
  40. package/controls/checkbox/checkbox.d.ts.map +1 -1
  41. package/controls/checkbox/radiobutton.d.ts +19 -13
  42. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  43. package/controls/checkbox/radiobuttons.d.ts +13 -10
  44. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  45. package/controls/confirm/confirm.button.d.ts +3 -3
  46. package/controls/confirm/confirm.button.d.ts.map +1 -1
  47. package/controls/confirm/confirm.d.ts +24 -23
  48. package/controls/confirm/confirm.d.ts.map +1 -1
  49. package/controls/confirm/confirm.service.d.ts +20 -20
  50. package/controls/confirm/confirm.service.d.ts.map +1 -1
  51. package/controls/contextmenu/contextmenu.d.ts +33 -27
  52. package/controls/contextmenu/contextmenu.d.ts.map +1 -1
  53. package/controls/contextmenu/contextmenu.interface.d.ts +6 -0
  54. package/controls/contextmenu/contextmenu.interface.d.ts.map +1 -1
  55. package/controls/contextmenu/contextmenuanchor.d.ts +4 -4
  56. package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
  57. package/controls/contextmenu/contextmenucontainer.d.ts +4 -4
  58. package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
  59. package/controls/contextmenu/contextmenuitembutton.d.ts +12 -12
  60. package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
  61. package/controls/datetime/date.d.ts +11 -11
  62. package/controls/datetime/date.d.ts.map +1 -1
  63. package/controls/datetime/dateselector.d.ts +47 -40
  64. package/controls/datetime/dateselector.d.ts.map +1 -1
  65. package/controls/datetime/datetime.d.ts +15 -14
  66. package/controls/datetime/datetime.d.ts.map +1 -1
  67. package/controls/datetime/time.d.ts +22 -12
  68. package/controls/datetime/time.d.ts.map +1 -1
  69. package/controls/dialog/dialog.d.ts +29 -23
  70. package/controls/dialog/dialog.d.ts.map +1 -1
  71. package/controls/form/form.d.ts +22 -17
  72. package/controls/form/form.d.ts.map +1 -1
  73. package/controls/grid/grid.d.ts +1 -0
  74. package/controls/grid/grid.d.ts.map +1 -1
  75. package/controls/grid/gridbutton.d.ts +1 -0
  76. package/controls/grid/gridbutton.d.ts.map +1 -1
  77. package/controls/grid/gridcolumn.d.ts +10 -6
  78. package/controls/grid/gridcolumn.d.ts.map +1 -1
  79. package/controls/grid/gridcolumnaction.d.ts +2 -2
  80. package/controls/grid/gridcolumnaction.d.ts.map +1 -1
  81. package/controls/grid/gridcolumnbase.d.ts +8 -3
  82. package/controls/grid/gridcolumnbase.d.ts.map +1 -1
  83. package/controls/grid/model.d.ts +22 -19
  84. package/controls/grid/model.d.ts.map +1 -1
  85. package/controls/grid/paging.d.ts +2 -3
  86. package/controls/grid/paging.d.ts.map +1 -1
  87. package/controls/input/input.d.ts +7 -7
  88. package/controls/input/inputarea.d.ts +8 -6
  89. package/controls/input/inputarea.d.ts.map +1 -1
  90. package/controls/input/inputcurrency.d.ts +4 -1
  91. package/controls/input/inputcurrency.d.ts.map +1 -1
  92. package/controls/input/inputdecimal.d.ts +15 -15
  93. package/controls/input/inputdecimal.d.ts.map +1 -1
  94. package/controls/input/inputemail.d.ts +5 -5
  95. package/controls/input/inputemail.d.ts.map +1 -1
  96. package/controls/input/inputinteger.d.ts +15 -15
  97. package/controls/input/inputinteger.d.ts.map +1 -1
  98. package/controls/input/inputpassword.d.ts +3 -3
  99. package/controls/input/inputpassword.d.ts.map +1 -1
  100. package/controls/input/inputsearch.d.ts +11 -8
  101. package/controls/input/inputsearch.d.ts.map +1 -1
  102. package/controls/layout/formlayout.d.ts +9 -6
  103. package/controls/layout/formlayout.d.ts.map +1 -1
  104. package/controls/list/buildvaluestring.d.ts +2 -2
  105. package/controls/list/buildvaluestring.d.ts.map +1 -1
  106. package/controls/list/dropdown.d.ts +23 -22
  107. package/controls/list/dropdown.d.ts.map +1 -1
  108. package/controls/list/dropdownoptions.d.ts +11 -11
  109. package/controls/list/dropdownoptions.d.ts.map +1 -1
  110. package/controls/list/listbox.d.ts +25 -23
  111. package/controls/list/listbox.d.ts.map +1 -1
  112. package/controls/multilanguage/multilanguageinput.d.ts +27 -27
  113. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  114. package/controls/multilanguage/multilanguageinputarea.d.ts +27 -27
  115. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  116. package/controls/static/formcontainer.d.ts +8 -8
  117. package/controls/static/formcontainer.d.ts.map +1 -1
  118. package/controls/static/staticlabel.d.ts +6 -6
  119. package/controls/static/staticlabel.d.ts.map +1 -1
  120. package/controls/tabs/tab.d.ts +2 -2
  121. package/controls/tabs/tabitem.d.ts +9 -9
  122. package/controls/tabs/tabitem.d.ts.map +1 -1
  123. package/controls/tinymce/tinymce.d.ts +37 -37
  124. package/controls/tinymce/tinymce.d.ts.map +1 -1
  125. package/controls/tinymce/tinymcedialogsettings.d.ts +11 -11
  126. package/controls/tinymce/tinymcedialogsettings.d.ts.map +1 -1
  127. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +2 -2
  128. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts.map +1 -1
  129. package/controls/tinymce/tinymceinstance.d.ts +2 -2
  130. package/controls/tinymce/tinymceinstance.d.ts.map +1 -1
  131. package/controls/tooltip/tooltip.d.ts +10 -5
  132. package/controls/tooltip/tooltip.d.ts.map +1 -1
  133. package/controls/treeview/treeview.d.ts +50 -5
  134. package/controls/treeview/treeview.d.ts.map +1 -1
  135. package/controls/upload/dropzonemultiple.d.ts +16 -16
  136. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  137. package/controls/upload/dropzonesingle.d.ts +11 -11
  138. package/controls/upload/uploadmultiple.d.ts +12 -12
  139. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  140. package/controls/upload/uploadsingle.d.ts +7 -7
  141. package/controls/upload/uploadsingle.d.ts.map +1 -1
  142. package/controls/validation/validationsummary.d.ts +12 -11
  143. package/controls/validation/validationsummary.d.ts.map +1 -1
  144. package/controls/wizard/wizard.d.ts +43 -36
  145. package/controls/wizard/wizard.d.ts.map +1 -1
  146. package/controls/wizard/wizarditem.d.ts +9 -9
  147. package/controls/wizard/wizarditem.d.ts.map +1 -1
  148. package/enums/ButtonRoleType.d.ts +26 -1
  149. package/enums/ButtonRoleType.d.ts.map +1 -1
  150. package/enums/ControlHeight.d.ts +1 -1
  151. package/enums/ControlHeight.d.ts.map +1 -1
  152. package/enums/IconType.d.ts +1 -1
  153. package/enums/IconType.d.ts.map +1 -1
  154. package/esm2022/common/basedatetimecontrol.mjs +59 -38
  155. package/esm2022/common/baseinputcontrol.mjs +16 -14
  156. package/esm2022/common/baselistcontrol.mjs +20 -18
  157. package/esm2022/common/basemodelcontrol.mjs +82 -71
  158. package/esm2022/common/baseselectcontrol.mjs +10 -9
  159. package/esm2022/common/baseuploadcontrol.mjs +74 -58
  160. package/esm2022/components/browser/browser.mjs +88 -90
  161. package/esm2022/components/browser/models/browserfile.mjs +3 -3
  162. package/esm2022/components/browser/models/browserfiledeleterequest.mjs +9 -7
  163. package/esm2022/components/browser/models/browserfilerenamerequest.mjs +9 -7
  164. package/esm2022/components/browser/models/browserfileresponse.mjs +3 -3
  165. package/esm2022/components/browser/models/browserfilesaverequest.mjs +8 -6
  166. package/esm2022/components/browser/models/browsernode.mjs +3 -3
  167. package/esm2022/components/browser/models/browsernodedeleterequest.mjs +9 -7
  168. package/esm2022/components/browser/models/browsernodenewrequest.mjs +9 -7
  169. package/esm2022/components/browser/models/browsernoderenamerequest.mjs +9 -7
  170. package/esm2022/components/browser/models/browsernoderequest.mjs +9 -7
  171. package/esm2022/components/browser/models/browsernoderesponse.mjs +3 -3
  172. package/esm2022/controls/buttons/button.mjs +29 -25
  173. package/esm2022/controls/checkbox/checkbox.mjs +7 -7
  174. package/esm2022/controls/checkbox/radiobutton.mjs +23 -18
  175. package/esm2022/controls/checkbox/radiobuttons.mjs +17 -14
  176. package/esm2022/controls/confirm/confirm.button.mjs +6 -6
  177. package/esm2022/controls/confirm/confirm.mjs +27 -28
  178. package/esm2022/controls/confirm/confirm.service.mjs +24 -24
  179. package/esm2022/controls/contextmenu/contextmenu.interface.mjs +3 -3
  180. package/esm2022/controls/contextmenu/contextmenu.mjs +32 -27
  181. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +7 -7
  182. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +7 -7
  183. package/esm2022/controls/contextmenu/contextmenuitem.mjs +4 -4
  184. package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +13 -13
  185. package/esm2022/controls/datetime/date.mjs +16 -16
  186. package/esm2022/controls/datetime/dateselector.mjs +95 -94
  187. package/esm2022/controls/datetime/datetime.mjs +20 -19
  188. package/esm2022/controls/datetime/time.mjs +27 -17
  189. package/esm2022/controls/dialog/dialog.mjs +41 -37
  190. package/esm2022/controls/form/form.mjs +22 -19
  191. package/esm2022/controls/grid/grid.mjs +5 -4
  192. package/esm2022/controls/grid/gridbutton.mjs +5 -4
  193. package/esm2022/controls/grid/gridcolumn.mjs +13 -9
  194. package/esm2022/controls/grid/gridcolumnaction.mjs +6 -6
  195. package/esm2022/controls/grid/gridcolumnbase.mjs +12 -7
  196. package/esm2022/controls/grid/gridimage.mjs +3 -3
  197. package/esm2022/controls/grid/model.mjs +23 -21
  198. package/esm2022/controls/grid/paging.mjs +9 -10
  199. package/esm2022/controls/input/input.mjs +11 -11
  200. package/esm2022/controls/input/inputarea.mjs +12 -10
  201. package/esm2022/controls/input/inputcurrency.mjs +9 -7
  202. package/esm2022/controls/input/inputdecimal.mjs +22 -22
  203. package/esm2022/controls/input/inputemail.mjs +9 -9
  204. package/esm2022/controls/input/inputinteger.mjs +21 -21
  205. package/esm2022/controls/input/inputpassword.mjs +7 -7
  206. package/esm2022/controls/input/inputsearch.mjs +15 -13
  207. package/esm2022/controls/layout/formlayout.mjs +16 -10
  208. package/esm2022/controls/list/buildvaluestring.mjs +10 -8
  209. package/esm2022/controls/list/dropdown.mjs +31 -30
  210. package/esm2022/controls/list/dropdownoptions.mjs +26 -19
  211. package/esm2022/controls/list/listbox.mjs +32 -30
  212. package/esm2022/controls/multilanguage/multilanguageinput.mjs +33 -33
  213. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +34 -34
  214. package/esm2022/controls/static/formcontainer.mjs +13 -13
  215. package/esm2022/controls/static/staticlabel.mjs +15 -12
  216. package/esm2022/controls/tabs/tab.mjs +5 -5
  217. package/esm2022/controls/tabs/tabitem.mjs +9 -8
  218. package/esm2022/controls/tinymce/tinymce.mjs +38 -38
  219. package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +9 -7
  220. package/esm2022/controls/tinymce/tinymcedialogsettingsmeta.mjs +3 -5
  221. package/esm2022/controls/tinymce/tinymceinstance.mjs +3 -3
  222. package/esm2022/controls/tooltip/tooltip.mjs +16 -11
  223. package/esm2022/controls/treeview/treeview.mjs +47 -11
  224. package/esm2022/controls/upload/dropzonemultiple.mjs +21 -21
  225. package/esm2022/controls/upload/dropzonesingle.mjs +15 -15
  226. package/esm2022/controls/upload/uploadmultiple.mjs +17 -17
  227. package/esm2022/controls/upload/uploadsingle.mjs +11 -11
  228. package/esm2022/controls/validation/validationsummary.mjs +17 -16
  229. package/esm2022/controls/wizard/wizard.mjs +43 -33
  230. package/esm2022/controls/wizard/wizarditem.mjs +8 -8
  231. package/esm2022/enums/ButtonRoleType.mjs +3 -3
  232. package/esm2022/enums/ControlHeight.mjs +4 -4
  233. package/esm2022/enums/IconType.mjs +4 -4
  234. package/esm2022/interfaces/ISacConfigurationService.mjs +3 -3
  235. package/esm2022/interfaces/ISacFileBrowserService.mjs +3 -3
  236. package/esm2022/interfaces/ISacLabelSizes.mjs +3 -3
  237. package/esm2022/interfaces/ISacLanguageService.mjs +3 -3
  238. package/esm2022/interfaces/ISacLocalisationService.mjs +3 -3
  239. package/esm2022/interfaces/ISacUploadEventCompleteState.mjs +3 -3
  240. package/esm2022/interfaces/ISacValidationKeyService.mjs +3 -3
  241. package/esm2022/interfaces/iabstractcontrollabel.mjs +3 -3
  242. package/esm2022/interfaces/iconfirmcomponent.mjs +3 -3
  243. package/esm2022/interfaces/idatetimecontrol.mjs +3 -3
  244. package/esm2022/interfaces/iuploadcontrol.mjs +3 -3
  245. package/esm2022/interfaces/treeviewaction.interface.mjs +3 -3
  246. package/esm2022/models/languagemodel.mjs +8 -6
  247. package/esm2022/public_api.mjs +4 -4
  248. package/esm2022/services/index.mjs +3 -3
  249. package/esm2022/services/sac-configuration.service.mjs +13 -11
  250. package/esm2022/services/sac-filebrowser.service.mjs +66 -52
  251. package/esm2022/services/sac-icon.service.mjs +5 -5
  252. package/esm2022/services/sac-language.service.mjs +11 -7
  253. package/esm2022/services/sac-localisation.service.mjs +15 -11
  254. package/esm2022/services/sac-validationkey.service.mjs +108 -6
  255. package/esm2022/utilities/convertion.mjs +10 -8
  256. package/esm2022/utilities/datatypes.mjs +8 -6
  257. package/esm2022/utilities/enums.mjs +4 -10
  258. package/esm2022/utilities/guid.mjs +8 -8
  259. package/esm2022/utilities/interpolation.mjs +21 -14
  260. package/esm2022/utilities/popuphelper.mjs +52 -32
  261. package/esm2022/utilities/positioncalculator.mjs +61 -0
  262. package/esm2022/utilities/positionelements.mjs +32 -0
  263. package/esm2022/utilities/testingattribute.pipe.mjs +19 -6
  264. package/esm2022/validation/email.validator.mjs +11 -3
  265. package/esm2022/validation/equals.validator.mjs +12 -3
  266. package/esm2022/validation/index.mjs +3 -3
  267. package/esm2022/validation/invaliddate.validator.mjs +11 -3
  268. package/esm2022/validation/isDateValid.mjs +12 -10
  269. package/esm2022/validation/maxdate.validator.mjs +13 -4
  270. package/esm2022/validation/maxtime.validator.mjs +13 -4
  271. package/esm2022/validation/maxvalue.validator.mjs +12 -3
  272. package/esm2022/validation/mindate.validator.mjs +13 -4
  273. package/esm2022/validation/minfiles.validator.mjs +13 -4
  274. package/esm2022/validation/mintextlength.validator.mjs +11 -4
  275. package/esm2022/validation/mintime.validator.mjs +13 -4
  276. package/esm2022/validation/minvalue.validator.mjs +12 -3
  277. package/esm2022/validation/multilanguagerequired.validator.mjs +12 -3
  278. package/esm2022/validation/multilanguagerequiredany.validator.mjs +12 -3
  279. package/esm2022/validation/notequals.validator.mjs +12 -3
  280. package/esm2022/validation/pattern.validator.mjs +12 -3
  281. package/esm2022/validation/required.validator.mjs +11 -3
  282. package/esm2022/validation/validation.mjs +86 -102
  283. package/esm2022/validation/validationerrorcreator.mjs +13 -3
  284. package/esm2022/validation/validationerroritem.mjs +14 -12
  285. package/fesm2022/simpleangularcontrols-sac-common.mjs +2693 -2164
  286. package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
  287. package/interfaces/ISacConfigurationService.d.ts +9 -1
  288. package/interfaces/ISacConfigurationService.d.ts.map +1 -1
  289. package/interfaces/ISacFileBrowserService.d.ts +43 -43
  290. package/interfaces/ISacFileBrowserService.d.ts.map +1 -1
  291. package/interfaces/ISacLabelSizes.d.ts +9 -6
  292. package/interfaces/ISacLabelSizes.d.ts.map +1 -1
  293. package/interfaces/ISacLanguageService.d.ts +3 -3
  294. package/interfaces/ISacLanguageService.d.ts.map +1 -1
  295. package/interfaces/ISacLocalisationService.d.ts +2 -2
  296. package/interfaces/ISacLocalisationService.d.ts.map +1 -1
  297. package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
  298. package/interfaces/ISacUploadEventCompleteState.d.ts.map +1 -1
  299. package/interfaces/iabstractcontrollabel.d.ts +4 -1
  300. package/interfaces/iabstractcontrollabel.d.ts.map +1 -1
  301. package/interfaces/iconfirmcomponent.d.ts +6 -6
  302. package/interfaces/iconfirmcomponent.d.ts.map +1 -1
  303. package/interfaces/idatetimecontrol.d.ts +10 -1
  304. package/interfaces/idatetimecontrol.d.ts.map +1 -1
  305. package/interfaces/iuploadcontrol.d.ts.map +1 -1
  306. package/interfaces/treeviewaction.interface.d.ts +9 -0
  307. package/interfaces/treeviewaction.interface.d.ts.map +1 -1
  308. package/models/languagemodel.d.ts +9 -9
  309. package/models/languagemodel.d.ts.map +1 -1
  310. package/package.json +1 -1
  311. package/public_api.d.ts +2 -1
  312. package/public_api.d.ts.map +1 -1
  313. package/services/index.d.ts +3 -3
  314. package/services/index.d.ts.map +1 -1
  315. package/services/sac-configuration.service.d.ts +8 -0
  316. package/services/sac-configuration.service.d.ts.map +1 -1
  317. package/services/sac-filebrowser.service.d.ts +97 -89
  318. package/services/sac-filebrowser.service.d.ts.map +1 -1
  319. package/services/sac-language.service.d.ts +2 -2
  320. package/services/sac-language.service.d.ts.map +1 -1
  321. package/services/sac-localisation.service.d.ts +11 -7
  322. package/services/sac-localisation.service.d.ts.map +1 -1
  323. package/services/sac-validationkey.service.d.ts +152 -5
  324. package/services/sac-validationkey.service.d.ts.map +1 -1
  325. package/simpleangularcontrols-sac-common-16.0.0-rc.23.tgz +0 -0
  326. package/utilities/convertion.d.ts +4 -4
  327. package/utilities/convertion.d.ts.map +1 -1
  328. package/utilities/datatypes.d.ts +3 -3
  329. package/utilities/datatypes.d.ts.map +1 -1
  330. package/utilities/enums.d.ts +8 -1
  331. package/utilities/enums.d.ts.map +1 -1
  332. package/utilities/guid.d.ts +1 -1
  333. package/utilities/guid.d.ts.map +1 -1
  334. package/utilities/interpolation.d.ts +9 -8
  335. package/utilities/interpolation.d.ts.map +1 -1
  336. package/utilities/popuphelper.d.ts +47 -10
  337. package/utilities/popuphelper.d.ts.map +1 -1
  338. package/utilities/positioncalculator.d.ts +83 -0
  339. package/utilities/positioncalculator.d.ts.map +1 -0
  340. package/utilities/positionelements.d.ts +31 -0
  341. package/utilities/positionelements.d.ts.map +1 -0
  342. package/utilities/testingattribute.pipe.d.ts +16 -1
  343. package/utilities/testingattribute.pipe.d.ts.map +1 -1
  344. package/validation/email.validator.d.ts +7 -0
  345. package/validation/email.validator.d.ts.map +1 -1
  346. package/validation/equals.validator.d.ts +8 -0
  347. package/validation/equals.validator.d.ts.map +1 -1
  348. package/validation/index.d.ts.map +1 -1
  349. package/validation/invaliddate.validator.d.ts +7 -0
  350. package/validation/invaliddate.validator.d.ts.map +1 -1
  351. package/validation/isDateValid.d.ts +5 -2
  352. package/validation/isDateValid.d.ts.map +1 -1
  353. package/validation/maxdate.validator.d.ts +8 -0
  354. package/validation/maxdate.validator.d.ts.map +1 -1
  355. package/validation/maxtime.validator.d.ts +8 -0
  356. package/validation/maxtime.validator.d.ts.map +1 -1
  357. package/validation/maxvalue.validator.d.ts +8 -0
  358. package/validation/maxvalue.validator.d.ts.map +1 -1
  359. package/validation/mindate.validator.d.ts +8 -0
  360. package/validation/mindate.validator.d.ts.map +1 -1
  361. package/validation/minfiles.validator.d.ts +8 -0
  362. package/validation/minfiles.validator.d.ts.map +1 -1
  363. package/validation/mintextlength.validator.d.ts +8 -0
  364. package/validation/mintextlength.validator.d.ts.map +1 -1
  365. package/validation/mintime.validator.d.ts +8 -0
  366. package/validation/mintime.validator.d.ts.map +1 -1
  367. package/validation/minvalue.validator.d.ts +8 -0
  368. package/validation/minvalue.validator.d.ts.map +1 -1
  369. package/validation/multilanguagerequired.validator.d.ts +9 -1
  370. package/validation/multilanguagerequired.validator.d.ts.map +1 -1
  371. package/validation/multilanguagerequiredany.validator.d.ts +9 -1
  372. package/validation/multilanguagerequiredany.validator.d.ts.map +1 -1
  373. package/validation/notequals.validator.d.ts +8 -0
  374. package/validation/notequals.validator.d.ts.map +1 -1
  375. package/validation/pattern.validator.d.ts +8 -0
  376. package/validation/pattern.validator.d.ts.map +1 -1
  377. package/validation/required.validator.d.ts +7 -0
  378. package/validation/required.validator.d.ts.map +1 -1
  379. package/validation/validation.d.ts +83 -99
  380. package/validation/validation.d.ts.map +1 -1
  381. package/validation/validationerrorcreator.d.ts +9 -0
  382. package/validation/validationerrorcreator.d.ts.map +1 -1
  383. package/validation/validationerroritem.d.ts +16 -16
  384. package/validation/validationerroritem.d.ts.map +1 -1
  385. package/esm2022/utilities/positioning.mjs +0 -58
  386. package/simpleangularcontrols-sac-common-16.0.0-rc.22.tgz +0 -0
  387. package/utilities/positioning.d.ts +0 -83
  388. package/utilities/positioning.d.ts.map +0 -1
@@ -1,128 +1,112 @@
1
- function cov_p06tlpmzt(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/validation/validation.mjs";var hash="1068bd05d050c1f3b394bbc6a115292c9a8faa29";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/validation/validation.mjs",statementMap:{"0":{start:{line:23,column:15},end:{line:23,column:33}},"1":{start:{line:40,column:8},end:{line:40,column:111}},"2":{start:{line:50,column:8},end:{line:50,column:75}},"3":{start:{line:62,column:8},end:{line:62,column:96}},"4":{start:{line:72,column:8},end:{line:72,column:81}},"5":{start:{line:83,column:8},end:{line:83,column:86}},"6":{start:{line:94,column:8},end:{line:94,column:86}},"7":{start:{line:105,column:8},end:{line:105,column:88}},"8":{start:{line:116,column:8},end:{line:116,column:86}},"9":{start:{line:127,column:8},end:{line:127,column:88}},"10":{start:{line:138,column:8},end:{line:138,column:98}},"11":{start:{line:149,column:8},end:{line:149,column:86}},"12":{start:{line:159,column:8},end:{line:159,column:88}},"13":{start:{line:170,column:8},end:{line:170,column:102}},"14":{start:{line:181,column:8},end:{line:181,column:105}},"15":{start:{line:192,column:8},end:{line:192,column:98}},"16":{start:{line:203,column:8},end:{line:203,column:86}},"17":{start:{line:213,column:8},end:{line:213,column:78}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:39,column:4},end:{line:39,column:5}},loc:{start:{line:39,column:138},end:{line:41,column:5}},line:39},"1":{name:"(anonymous_1)",decl:{start:{line:49,column:4},end:{line:49,column:5}},loc:{start:{line:49,column:62},end:{line:51,column:5}},line:49},"2":{name:"(anonymous_2)",decl:{start:{line:61,column:4},end:{line:61,column:5}},loc:{start:{line:61,column:78},end:{line:63,column:5}},line:61},"3":{name:"(anonymous_3)",decl:{start:{line:71,column:4},end:{line:71,column:5}},loc:{start:{line:71,column:68},end:{line:73,column:5}},line:71},"4":{name:"(anonymous_4)",decl:{start:{line:82,column:4},end:{line:82,column:5}},loc:{start:{line:82,column:73},end:{line:84,column:5}},line:82},"5":{name:"(anonymous_5)",decl:{start:{line:93,column:4},end:{line:93,column:5}},loc:{start:{line:93,column:73},end:{line:95,column:5}},line:93},"6":{name:"(anonymous_6)",decl:{start:{line:104,column:4},end:{line:104,column:5}},loc:{start:{line:104,column:75},end:{line:106,column:5}},line:104},"7":{name:"(anonymous_7)",decl:{start:{line:115,column:4},end:{line:115,column:5}},loc:{start:{line:115,column:73},end:{line:117,column:5}},line:115},"8":{name:"(anonymous_8)",decl:{start:{line:126,column:4},end:{line:126,column:5}},loc:{start:{line:126,column:75},end:{line:128,column:5}},line:126},"9":{name:"(anonymous_9)",decl:{start:{line:137,column:4},end:{line:137,column:5}},loc:{start:{line:137,column:85},end:{line:139,column:5}},line:137},"10":{name:"(anonymous_10)",decl:{start:{line:148,column:4},end:{line:148,column:5}},loc:{start:{line:148,column:73},end:{line:150,column:5}},line:148},"11":{name:"(anonymous_11)",decl:{start:{line:158,column:4},end:{line:158,column:5}},loc:{start:{line:158,column:75},end:{line:160,column:5}},line:158},"12":{name:"(anonymous_12)",decl:{start:{line:169,column:4},end:{line:169,column:5}},loc:{start:{line:169,column:89},end:{line:171,column:5}},line:169},"13":{name:"(anonymous_13)",decl:{start:{line:180,column:4},end:{line:180,column:5}},loc:{start:{line:180,column:92},end:{line:182,column:5}},line:180},"14":{name:"(anonymous_14)",decl:{start:{line:191,column:4},end:{line:191,column:5}},loc:{start:{line:191,column:80},end:{line:193,column:5}},line:191},"15":{name:"(anonymous_15)",decl:{start:{line:202,column:4},end:{line:202,column:5}},loc:{start:{line:202,column:73},end:{line:204,column:5}},line:202},"16":{name:"(anonymous_16)",decl:{start:{line:212,column:4},end:{line:212,column:5}},loc:{start:{line:212,column:65},end:{line:214,column:5}},line:212}},branchMap:{"0":{loc:{start:{line:39,column:96},end:{line:39,column:112}},type:"default-arg",locations:[{start:{line:39,column:108},end:{line:39,column:112}}],line:39},"1":{loc:{start:{line:39,column:114},end:{line:39,column:136}},type:"default-arg",locations:[{start:{line:39,column:127},end:{line:39,column:136}}],line:39}},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},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},b:{"0":[0],"1":[0]},inputSourceMap:{version:3,file:"validation.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/validation/validation.ts"],names:[],mappings:"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,OAAO,MAAM,QAAQ,CAAC;AAElC,oBAAoB;AAEpB;;GAEG;AACH,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAElC,uBAAuB;AAEvB,2BAA2B;AAE3B;;GAEG;AACH,MAAM,OAAO,UAAU;IACnB,gCAAgC;IAEhC;;;;;;;OAOG;IACI,MAAM,CAAC,sBAAsB,CAChC,SAAiB,EACjB,eAAuB,EACvB,gCAAwC,EACxC,YAAoB,IAAI,EACxB,aAA+B,IAAI,GAAG,EAAe;QAErD,OAAO,qBAAqB,CAAC,SAAS,EAAE,eAAe,EAAE,gCAAgC,EAAE,UAAU,CAAC,CAAC;IAC3G,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,iBAAyB,EAAE,wBAAwB;QACnE,OAAO,cAAc,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;KAQC;IACM,MAAM,CAAC,MAAM,CAAC,aAAkB,EAAE,iBAAyB,EAAE,wBAAwB;QACxF,OAAO,oBAAoB,CAAC,aAAa,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,WAAW,CAAC,iBAAyB,EAAE,wBAAwB;QACzE,OAAO,oBAAoB,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,OAAO,CAAC,OAAa,EAAE,iBAAyB,EAAE,wBAAwB;QACpF,OAAO,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,OAAO,CAAC,OAAa,EAAE,iBAAyB,EAAE,wBAAwB;QACpF,OAAO,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,QAAQ,CAAC,QAAgB,EAAE,iBAAyB,EAAE,wBAAwB;QACxF,OAAO,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,OAAO,CAAC,OAAa,EAAE,iBAAyB,EAAE,wBAAwB;QACpF,OAAO,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,QAAQ,CAAC,QAAgB,EAAE,iBAAyB,EAAE,wBAAwB;QACxF,OAAO,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,aAAa,CAAC,aAAqB,EAAE,iBAAyB,EAAE,wBAAwB;QAClG,OAAO,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAC9F,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,OAAO,CAAC,OAAa,EAAE,iBAAyB,EAAE,wBAAgC;QAC5F,OAAO,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,QAAQ,CAAC,QAAgB,EAAE,iBAAyB,EAAE,wBAAwB;QACxF,OAAO,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,qBAAqB,CAC/B,SAA0B,EAC1B,iBAAyB,EACzB,wBAAwB;QAExB,OAAO,8BAA8B,CAAC,SAAS,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAClG,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,wBAAwB,CAClC,SAA0B,EAC1B,iBAAyB,EACzB,wBAAwB;QAExB,OAAO,iCAAiC,CAAC,SAAS,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IACrG,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,SAAS,CAAC,YAAiB,EAAE,iBAAyB,EAAE,wBAAwB;QAC1F,OAAO,uBAAuB,CAAC,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAC9F,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,iBAAyB,EAAE,wBAAwB;QACtF,OAAO,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,QAAQ,CAAC,iBAAyB,EAAE,wBAAwB;QACtE,OAAO,iBAAiB,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IAC1E,CAAC;CAGJ;AAED,8BAA8B",sourcesContent:["import { LanguageModel } from '../models/languagemodel';\nimport { emailValidator } from './email.validator';\nimport { equalsValueValidator } from './equals.validator';\nimport { isValidDateValidator } from './invaliddate.validator';\nimport { maxDateValidator } from './maxdate.validator';\nimport { maxTimeValidator } from './maxtime.validator';\nimport { maxValueValidator } from './maxvalue.validator';\nimport { minDateValidator } from './mindate.validator';\nimport { minFilesValidator } from './minfiles.validator';\nimport { minTextLengthValidator } from './mintextlength.validator';\nimport { minTimeValidator } from './mintime.validator';\nimport { minValueValidator } from './minvalue.validator';\nimport { multilanguageRequiredValidator } from './multilanguagerequired.validator';\nimport { multilanguageRequiredAnyValidator } from './multilanguagerequiredany.validator';\nimport { notEqualsValueValidator } from './notequals.validator';\nimport { patternValidator } from './pattern.validator';\nimport { requiredValidator } from './required.validator';\nimport { CreateValidationError } from './validationerrorcreator';\nimport { ValidatorFn } from '@angular/forms';\nimport * as moment_ from 'moment';\n\n// #region Variables\n\n/**\n * Moment\n */\nconst moment = moment_['default'];\n\n// #endregion Variables\n\n// #region Exported Classes\n\n/**\n * Klasse mit Standard Validatoren\n */\nexport class Validation {\n // #region Public Static Methods\n\n /**\n * Die Methode ist von jedem Validator aufgerufen. Die setzt sowohl den errorType des gerp\xFCfte Item, als auch die ErrorMessage (gem\xE4ss von errorType, FieldName und Parameters).\n * @param errorType Typ den Fehler\n * @param errorMessageKey Error Message Key\n * @param errorMessageValidationSummaryKey Error Message Key f\xFCr Validation Summary\n * @param fieldName Label oder Name des Feldes\n * @param parameters Parametern die in den Meldungen als Platzhalter verwendet werden k\xF6nnen\n */\n public static GetValidationErrorItem(\n errorType: string,\n errorMessageKey: string,\n errorMessageValidationSummaryKey: string,\n fieldName: string = null,\n parameters: Map<string, any> = new Map<string, any>()\n ): any {\n return CreateValidationError(errorType, errorMessageKey, errorMessageValidationSummaryKey, parameters);\n }\n\n /**\n * Validiert Feld auf E-Mail Adresse\n * @param control Control das Valdiert werden soll\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static email(validationMessage: string, validationMessageSummary): ValidatorFn {\n return emailValidator(validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator validate if value is the requiredValue\n * @param requiredValue Value that control should have\n * @param control Control to be validate\n * @param fieldName Label of control\n * @param validationMessage validation message near the control\n * @param validationMessageSummary validation inside the validation summary\n\n */\n public static equals(requiredValue: any, validationMessage: string, validationMessageSummary): ValidatorFn {\n return equalsValueValidator(requiredValue, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator der pr\xFCft ob der Wert ein Datum ist.\n * @param control Control mit IDateTimeControl Interface implementierung\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die beim Control angezeigt wird\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static isValidDate(validationMessage: string, validationMessageSummary): ValidatorFn {\n return isValidDateValidator(validationMessage, validationMessageSummary);\n }\n\n /**\n * Validiert ob das Datum \xE4lter als maxDate ist\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\n * @param maxDate max. Datum\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static maxDate(maxDate: Date, validationMessage: string, validationMessageSummary): ValidatorFn {\n return maxDateValidator(maxDate, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validiert ob die Zeit fr\xFCher als maxTime ist.\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\n * @param maxTime Min. Zeit\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static maxTime(maxTime: Date, validationMessage: string, validationMessageSummary): ValidatorFn {\n return maxTimeValidator(maxTime, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator f\xFCr Max Value\n * @param control Control das Validiert werden soll\n * @param maxvalue Max. Wert\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static maxValue(maxvalue: number, validationMessage: string, validationMessageSummary): ValidatorFn {\n return maxValueValidator(maxvalue, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validiert ob das Datum neuer als minDate ist\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\n * @param minDate Min. Datum\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static minDate(minDate: Date, validationMessage: string, validationMessageSummary): ValidatorFn {\n return minDateValidator(minDate, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator f\xFCr min. Anzahl von Uploads\n * @param control Control das Validatiert werden soll. Control muss IUploadControl implementiert haben\n * @param minFiles Min. Anzahl Files die hochgeladen werden m\xFCssen\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static minFiles(minFiles: number, validationMessage: string, validationMessageSummary): ValidatorFn {\n return minFilesValidator(minFiles, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validiert auf die L\xE4nge des Wertes im Control\n * @param control Control das Validiert werden soll\n * @param mintextlength Min. L\xE4nge des Wertes\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static minTextLength(mintextlength: number, validationMessage: string, validationMessageSummary): ValidatorFn {\n return minTextLengthValidator(mintextlength, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validiert ob die Zeit sp\xE4ter als minTime ist.\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\n * @param minTime Min. Zeit\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static minTime(minTime: Date, validationMessage: string, validationMessageSummary: string): ValidatorFn {\n return minTimeValidator(minTime, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator der pr\xFCft ob der Wert ein Datum ist.\n * @param control Control mit IDateTimeControl Interface implementierung\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static minValue(minvalue: number, validationMessage: string, validationMessageSummary): ValidatorFn {\n return minValueValidator(minvalue, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validierung mit einem RegEx Pattern\n * @param control Control das validiert werden soll.\n * @param pattern RegEx Pattern\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static multilanguageRequired(\n languages: LanguageModel[],\n validationMessage: string,\n validationMessageSummary\n ): ValidatorFn {\n return multilanguageRequiredValidator(languages, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator f\xFCr MultiLanguage Control, welcher \xFCberpr\xFCft ob min. ein Wert erfasst wurde\n * @param control Control das Validatiert werden soll\n * @param languages Sprachen die im Control erfasst werden k\xF6nnen.\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static multilanguageRequiredAny(\n languages: LanguageModel[],\n validationMessage: string,\n validationMessageSummary\n ): ValidatorFn {\n return multilanguageRequiredAnyValidator(languages, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator validate if value is not the invalidValue\n * @param invalidValue Value that control doesn't should have\n * @param control Control to be validate\n * @param fieldName Label of control\n * @param validationMessage validation message near the control\n * @param validationMessageSummary validation inside the validation summary\n */\n public static notequals(invalidValue: any, validationMessage: string, validationMessageSummary): ValidatorFn {\n return notEqualsValueValidator(invalidValue, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validierung mit einem RegEx Pattern\n * @param control Control das validiert werden soll.\n * @param pattern RegEx Pattern\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static pattern(pattern: string, validationMessage: string, validationMessageSummary): ValidatorFn {\n return patternValidator(pattern, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator f\xFCr Required State\n * @param control Control das Validiert wird\n * @param fieldName Label des Controls\n * @param validationMessage Validierungsmeldung die\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\n */\n public static required(validationMessage: string, validationMessageSummary): ValidatorFn {\n return requiredValidator(validationMessage, validationMessageSummary);\n }\n\n // #endregion Public Static Methods\n}\n\n// #endregion Exported Classes\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"1068bd05d050c1f3b394bbc6a115292c9a8faa29"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
1
+ function cov_p06tlpmzt(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/validation/validation.mjs";var hash="2dfd09ac2703ffc9adffa5755c6f802099a67f50";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/validation/validation.mjs",statementMap:{"0":{start:{line:23,column:15},end:{line:23,column:33}},"1":{start:{line:40,column:8},end:{line:40,column:111}},"2":{start:{line:49,column:8},end:{line:49,column:75}},"3":{start:{line:59,column:8},end:{line:59,column:96}},"4":{start:{line:68,column:8},end:{line:68,column:81}},"5":{start:{line:78,column:8},end:{line:78,column:86}},"6":{start:{line:88,column:8},end:{line:88,column:86}},"7":{start:{line:98,column:8},end:{line:98,column:88}},"8":{start:{line:108,column:8},end:{line:108,column:86}},"9":{start:{line:118,column:8},end:{line:118,column:88}},"10":{start:{line:128,column:8},end:{line:128,column:98}},"11":{start:{line:138,column:8},end:{line:138,column:86}},"12":{start:{line:148,column:8},end:{line:148,column:88}},"13":{start:{line:158,column:8},end:{line:158,column:102}},"14":{start:{line:168,column:8},end:{line:168,column:105}},"15":{start:{line:178,column:8},end:{line:178,column:98}},"16":{start:{line:188,column:8},end:{line:188,column:86}},"17":{start:{line:197,column:8},end:{line:197,column:78}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:39,column:4},end:{line:39,column:5}},loc:{start:{line:39,column:138},end:{line:41,column:5}},line:39},"1":{name:"(anonymous_1)",decl:{start:{line:48,column:4},end:{line:48,column:5}},loc:{start:{line:48,column:62},end:{line:50,column:5}},line:48},"2":{name:"(anonymous_2)",decl:{start:{line:58,column:4},end:{line:58,column:5}},loc:{start:{line:58,column:78},end:{line:60,column:5}},line:58},"3":{name:"(anonymous_3)",decl:{start:{line:67,column:4},end:{line:67,column:5}},loc:{start:{line:67,column:68},end:{line:69,column:5}},line:67},"4":{name:"(anonymous_4)",decl:{start:{line:77,column:4},end:{line:77,column:5}},loc:{start:{line:77,column:73},end:{line:79,column:5}},line:77},"5":{name:"(anonymous_5)",decl:{start:{line:87,column:4},end:{line:87,column:5}},loc:{start:{line:87,column:73},end:{line:89,column:5}},line:87},"6":{name:"(anonymous_6)",decl:{start:{line:97,column:4},end:{line:97,column:5}},loc:{start:{line:97,column:75},end:{line:99,column:5}},line:97},"7":{name:"(anonymous_7)",decl:{start:{line:107,column:4},end:{line:107,column:5}},loc:{start:{line:107,column:73},end:{line:109,column:5}},line:107},"8":{name:"(anonymous_8)",decl:{start:{line:117,column:4},end:{line:117,column:5}},loc:{start:{line:117,column:75},end:{line:119,column:5}},line:117},"9":{name:"(anonymous_9)",decl:{start:{line:127,column:4},end:{line:127,column:5}},loc:{start:{line:127,column:85},end:{line:129,column:5}},line:127},"10":{name:"(anonymous_10)",decl:{start:{line:137,column:4},end:{line:137,column:5}},loc:{start:{line:137,column:73},end:{line:139,column:5}},line:137},"11":{name:"(anonymous_11)",decl:{start:{line:147,column:4},end:{line:147,column:5}},loc:{start:{line:147,column:75},end:{line:149,column:5}},line:147},"12":{name:"(anonymous_12)",decl:{start:{line:157,column:4},end:{line:157,column:5}},loc:{start:{line:157,column:89},end:{line:159,column:5}},line:157},"13":{name:"(anonymous_13)",decl:{start:{line:167,column:4},end:{line:167,column:5}},loc:{start:{line:167,column:92},end:{line:169,column:5}},line:167},"14":{name:"(anonymous_14)",decl:{start:{line:177,column:4},end:{line:177,column:5}},loc:{start:{line:177,column:80},end:{line:179,column:5}},line:177},"15":{name:"(anonymous_15)",decl:{start:{line:187,column:4},end:{line:187,column:5}},loc:{start:{line:187,column:73},end:{line:189,column:5}},line:187},"16":{name:"(anonymous_16)",decl:{start:{line:196,column:4},end:{line:196,column:5}},loc:{start:{line:196,column:65},end:{line:198,column:5}},line:196}},branchMap:{"0":{loc:{start:{line:39,column:96},end:{line:39,column:112}},type:"default-arg",locations:[{start:{line:39,column:108},end:{line:39,column:112}}],line:39},"1":{loc:{start:{line:39,column:114},end:{line:39,column:136}},type:"default-arg",locations:[{start:{line:39,column:127},end:{line:39,column:136}}],line:39}},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},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},b:{"0":[0],"1":[0]},inputSourceMap:{version:3,file:"validation.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/validation/validation.ts"],names:[],mappings:"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",sourcesContent:["import { LanguageModel } from '../models/languagemodel';\nimport { emailValidator } from './email.validator';\nimport { equalsValueValidator } from './equals.validator';\nimport { isValidDateValidator } from './invaliddate.validator';\nimport { maxDateValidator } from './maxdate.validator';\nimport { maxTimeValidator } from './maxtime.validator';\nimport { maxValueValidator } from './maxvalue.validator';\nimport { minDateValidator } from './mindate.validator';\nimport { minFilesValidator } from './minfiles.validator';\nimport { minTextLengthValidator } from './mintextlength.validator';\nimport { minTimeValidator } from './mintime.validator';\nimport { minValueValidator } from './minvalue.validator';\nimport { multilanguageRequiredValidator } from './multilanguagerequired.validator';\nimport { multilanguageRequiredAnyValidator } from './multilanguagerequiredany.validator';\nimport { notEqualsValueValidator } from './notequals.validator';\nimport { patternValidator } from './pattern.validator';\nimport { requiredValidator } from './required.validator';\nimport { CreateValidationError } from './validationerrorcreator';\nimport { ValidatorFn } from '@angular/forms';\nimport * as moment_ from 'moment';\n\n// #region Variables\n\n/**\n * Moment\n */\nconst moment = moment_['default'];\n\n// #endregion Variables\n\n// #region Exported Classes\n\n/**\n * Class with standard validators\n */\nexport class Validation {\n // #region Public Static Methods\n\n /**\n * This method is called by every validator. It sets both the errorType of the validated item and the ErrorMessage (according to errorType, FieldName and Parameters).\n * @param errorType Type of the error\n * @param errorMessageKey Error Message Key\n * @param errorMessageValidationSummaryKey Error Message Key for Validation Summary\n * @param fieldName Label or name of the field\n * @param parameters Parameters that can be used as placeholders in messages\n */\n public static GetValidationErrorItem(\n errorType: string,\n errorMessageKey: string,\n errorMessageValidationSummaryKey: string,\n fieldName: string = null,\n parameters: Map<string, any> = new Map<string, any>()\n ): any {\n return CreateValidationError(errorType, errorMessageKey, errorMessageValidationSummaryKey, parameters);\n }\n\n /**\n * Validates field for email address\n * @param validationMessage Validation message displayed at the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static email(validationMessage: string, validationMessageSummary): ValidatorFn {\n return emailValidator(validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator validate if value is the requiredValue\n * @param requiredValue Value that control should have\n * @param validationMessage Validation message near the control\n * @param validationMessageSummary Validation message inside the validation summary\n * @returns ValidatorFn validator function\n */\n public static equals(requiredValue: any, validationMessage: string, validationMessageSummary): ValidatorFn {\n return equalsValueValidator(requiredValue, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator that checks if the value is a date.\n * @param validationMessage Validation message displayed at the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static isValidDate(validationMessage: string, validationMessageSummary): ValidatorFn {\n return isValidDateValidator(validationMessage, validationMessageSummary);\n }\n\n /**\n * Validates if the date is older than maxDate\n * @param maxDate Maximum date allowed\n * @param validationMessage Validation message displayed at the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static maxDate(maxDate: Date, validationMessage: string, validationMessageSummary): ValidatorFn {\n return maxDateValidator(maxDate, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validates if the time is earlier than maxTime.\n * @param maxTime Maximum time allowed\n * @param validationMessage Validation message displayed at the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static maxTime(maxTime: Date, validationMessage: string, validationMessageSummary): ValidatorFn {\n return maxTimeValidator(maxTime, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator for Max Value\n * @param maxvalue Maximum value allowed\n * @param validationMessage Validation message displayed at the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static maxValue(maxvalue: number, validationMessage: string, validationMessageSummary): ValidatorFn {\n return maxValueValidator(maxvalue, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validates if the date is newer than minDate\n * @param minDate Minimum date allowed\n * @param validationMessage Validation message displayed at the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static minDate(minDate: Date, validationMessage: string, validationMessageSummary): ValidatorFn {\n return minDateValidator(minDate, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator for min. number of uploads\n * @param minFiles Minimum number of files that must be uploaded\n * @param validationMessage Validation message displayed below the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static minFiles(minFiles: number, validationMessage: string, validationMessageSummary): ValidatorFn {\n return minFilesValidator(minFiles, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validates the length of the value in the control\n * @param mintextlength Minimum length of the value\n * @param validationMessage Validation message displayed at the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static minTextLength(\n mintextlength: number,\n validationMessage: string,\n validationMessageSummary\n ): ValidatorFn {\n return minTextLengthValidator(mintextlength, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validates if the time is later than minTime.\n * @param minTime Minimum time allowed\n * @param validationMessage Validation message displayed at the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static minTime(minTime: Date, validationMessage: string, validationMessageSummary: string): ValidatorFn {\n return minTimeValidator(minTime, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator that checks if the value is greater than minValue.\n * @param minvalue Minimum value allowed\n * @param validationMessage Validation message displayed at the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static minValue(minvalue: number, validationMessage: string, validationMessageSummary): ValidatorFn {\n return minValueValidator(minvalue, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator for MultiLanguage Control that checks if a value has been entered in all languages\n * @param languages Languages that can be captured in the control\n * @param validationMessage Validation message displayed below the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static multilanguageRequired(\n languages: LanguageModel[],\n validationMessage: string,\n validationMessageSummary\n ): ValidatorFn {\n return multilanguageRequiredValidator(languages, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator for MultiLanguage Control that checks if at least one value has been entered\n * @param languages Languages that can be captured in the control\n * @param validationMessage Validation message displayed below the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static multilanguageRequiredAny(\n languages: LanguageModel[],\n validationMessage: string,\n validationMessageSummary\n ): ValidatorFn {\n return multilanguageRequiredAnyValidator(languages, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator validate if value is not the invalidValue\n * @param invalidValue Value that control should not have\n * @param validationMessage Validation message near the control\n * @param validationMessageSummary Validation message inside the validation summary\n * @returns ValidatorFn validator function\n */\n public static notequals(invalidValue: any, validationMessage: string, validationMessageSummary): ValidatorFn {\n return notEqualsValueValidator(invalidValue, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validation with a RegEx pattern\n * @param pattern RegEx pattern that the value must match\n * @param validationMessage Validation message displayed below the control\n * @param validationMessageSummary Validation message displayed in the Validation Summary\n * @returns ValidatorFn validator function\n */\n public static pattern(pattern: string, validationMessage: string, validationMessageSummary): ValidatorFn {\n return patternValidator(pattern, validationMessage, validationMessageSummary);\n }\n\n /**\n * Validator for Required State\n * @returns ValidatorFn validator function\n * @param validationMessage Validation message that\n * @param validationMessageSummary Validation message that is displayed in the Validation Summary\n */\n public static required(validationMessage: string, validationMessageSummary): ValidatorFn {\n return requiredValidator(validationMessage, validationMessageSummary);\n }\n\n // #endregion Public Static Methods\n}\n\n// #endregion Exported Classes\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"2dfd09ac2703ffc9adffa5755c6f802099a67f50"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
2
  cov_p06tlpmzt=function(){return actualCoverage;};}return actualCoverage;}cov_p06tlpmzt();import{emailValidator}from'./email.validator';import{equalsValueValidator}from'./equals.validator';import{isValidDateValidator}from'./invaliddate.validator';import{maxDateValidator}from'./maxdate.validator';import{maxTimeValidator}from'./maxtime.validator';import{maxValueValidator}from'./maxvalue.validator';import{minDateValidator}from'./mindate.validator';import{minFilesValidator}from'./minfiles.validator';import{minTextLengthValidator}from'./mintextlength.validator';import{minTimeValidator}from'./mintime.validator';import{minValueValidator}from'./minvalue.validator';import{multilanguageRequiredValidator}from'./multilanguagerequired.validator';import{multilanguageRequiredAnyValidator}from'./multilanguagerequiredany.validator';import{notEqualsValueValidator}from'./notequals.validator';import{patternValidator}from'./pattern.validator';import{requiredValidator}from'./required.validator';import{CreateValidationError}from'./validationerrorcreator';import*as moment_ from'moment';// #region Variables
3
3
  /**
4
4
  * Moment
5
5
  */const moment=(cov_p06tlpmzt().s[0]++,moment_['default']);// #endregion Variables
6
6
  // #region Exported Classes
7
7
  /**
8
- * Klasse mit Standard Validatoren
8
+ * Class with standard validators
9
9
  */export class Validation{// #region Public Static Methods
10
10
  /**
11
- * Die Methode ist von jedem Validator aufgerufen. Die setzt sowohl den errorType des gerpüfte Item, als auch die ErrorMessage (gemäss von errorType, FieldName und Parameters).
12
- * @param errorType Typ den Fehler
11
+ * This method is called by every validator. It sets both the errorType of the validated item and the ErrorMessage (according to errorType, FieldName and Parameters).
12
+ * @param errorType Type of the error
13
13
  * @param errorMessageKey Error Message Key
14
- * @param errorMessageValidationSummaryKey Error Message Key für Validation Summary
15
- * @param fieldName Label oder Name des Feldes
16
- * @param parameters Parametern die in den Meldungen als Platzhalter verwendet werden können
14
+ * @param errorMessageValidationSummaryKey Error Message Key for Validation Summary
15
+ * @param fieldName Label or name of the field
16
+ * @param parameters Parameters that can be used as placeholders in messages
17
17
  */static GetValidationErrorItem(errorType,errorMessageKey,errorMessageValidationSummaryKey,fieldName=(cov_p06tlpmzt().b[0][0]++,null),parameters=(cov_p06tlpmzt().b[1][0]++,new Map())){cov_p06tlpmzt().f[0]++;cov_p06tlpmzt().s[1]++;return CreateValidationError(errorType,errorMessageKey,errorMessageValidationSummaryKey,parameters);}/**
18
- * Validiert Feld auf E-Mail Adresse
19
- * @param control Control das Valdiert werden soll
20
- * @param fieldName Label des Controls
21
- * @param validationMessage Validierungsmeldung die
22
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
18
+ * Validates field for email address
19
+ * @param validationMessage Validation message displayed at the control
20
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
21
+ * @returns ValidatorFn validator function
23
22
  */static email(validationMessage,validationMessageSummary){cov_p06tlpmzt().f[1]++;cov_p06tlpmzt().s[2]++;return emailValidator(validationMessage,validationMessageSummary);}/**
24
- * Validator validate if value is the requiredValue
25
- * @param requiredValue Value that control should have
26
- * @param control Control to be validate
27
- * @param fieldName Label of control
28
- * @param validationMessage validation message near the control
29
- * @param validationMessageSummary validation inside the validation summary
30
-
31
- */static equals(requiredValue,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[2]++;cov_p06tlpmzt().s[3]++;return equalsValueValidator(requiredValue,validationMessage,validationMessageSummary);}/**
32
- * Validator der prüft ob der Wert ein Datum ist.
33
- * @param control Control mit IDateTimeControl Interface implementierung
34
- * @param fieldName Label des Controls
35
- * @param validationMessage Validierungsmeldung die beim Control angezeigt wird
36
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
23
+ * Validator validate if value is the requiredValue
24
+ * @param requiredValue Value that control should have
25
+ * @param validationMessage Validation message near the control
26
+ * @param validationMessageSummary Validation message inside the validation summary
27
+ * @returns ValidatorFn validator function
28
+ */static equals(requiredValue,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[2]++;cov_p06tlpmzt().s[3]++;return equalsValueValidator(requiredValue,validationMessage,validationMessageSummary);}/**
29
+ * Validator that checks if the value is a date.
30
+ * @param validationMessage Validation message displayed at the control
31
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
32
+ * @returns ValidatorFn validator function
37
33
  */static isValidDate(validationMessage,validationMessageSummary){cov_p06tlpmzt().f[3]++;cov_p06tlpmzt().s[4]++;return isValidDateValidator(validationMessage,validationMessageSummary);}/**
38
- * Validiert ob das Datum älter als maxDate ist
39
- * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
40
- * @param maxDate max. Datum
41
- * @param fieldName Label des Controls
42
- * @param validationMessage Validierungsmeldung die
43
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
34
+ * Validates if the date is older than maxDate
35
+ * @param maxDate Maximum date allowed
36
+ * @param validationMessage Validation message displayed at the control
37
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
38
+ * @returns ValidatorFn validator function
44
39
  */static maxDate(maxDate,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[4]++;cov_p06tlpmzt().s[5]++;return maxDateValidator(maxDate,validationMessage,validationMessageSummary);}/**
45
- * Validiert ob die Zeit früher als maxTime ist.
46
- * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
47
- * @param maxTime Min. Zeit
48
- * @param fieldName Label des Controls
49
- * @param validationMessage Validierungsmeldung die
50
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
40
+ * Validates if the time is earlier than maxTime.
41
+ * @param maxTime Maximum time allowed
42
+ * @param validationMessage Validation message displayed at the control
43
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
44
+ * @returns ValidatorFn validator function
51
45
  */static maxTime(maxTime,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[5]++;cov_p06tlpmzt().s[6]++;return maxTimeValidator(maxTime,validationMessage,validationMessageSummary);}/**
52
- * Validator für Max Value
53
- * @param control Control das Validiert werden soll
54
- * @param maxvalue Max. Wert
55
- * @param fieldName Label des Controls
56
- * @param validationMessage Validierungsmeldung die
57
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
46
+ * Validator for Max Value
47
+ * @param maxvalue Maximum value allowed
48
+ * @param validationMessage Validation message displayed at the control
49
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
50
+ * @returns ValidatorFn validator function
58
51
  */static maxValue(maxvalue,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[6]++;cov_p06tlpmzt().s[7]++;return maxValueValidator(maxvalue,validationMessage,validationMessageSummary);}/**
59
- * Validiert ob das Datum neuer als minDate ist
60
- * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
61
- * @param minDate Min. Datum
62
- * @param fieldName Label des Controls
63
- * @param validationMessage Validierungsmeldung die
64
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
52
+ * Validates if the date is newer than minDate
53
+ * @param minDate Minimum date allowed
54
+ * @param validationMessage Validation message displayed at the control
55
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
56
+ * @returns ValidatorFn validator function
65
57
  */static minDate(minDate,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[7]++;cov_p06tlpmzt().s[8]++;return minDateValidator(minDate,validationMessage,validationMessageSummary);}/**
66
- * Validator für min. Anzahl von Uploads
67
- * @param control Control das Validatiert werden soll. Control muss IUploadControl implementiert haben
68
- * @param minFiles Min. Anzahl Files die hochgeladen werden müssen
69
- * @param fieldName Label des Controls
70
- * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
71
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
58
+ * Validator for min. number of uploads
59
+ * @param minFiles Minimum number of files that must be uploaded
60
+ * @param validationMessage Validation message displayed below the control
61
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
62
+ * @returns ValidatorFn validator function
72
63
  */static minFiles(minFiles,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[8]++;cov_p06tlpmzt().s[9]++;return minFilesValidator(minFiles,validationMessage,validationMessageSummary);}/**
73
- * Validiert auf die Länge des Wertes im Control
74
- * @param control Control das Validiert werden soll
75
- * @param mintextlength Min. Länge des Wertes
76
- * @param fieldName Label des Controls
77
- * @param validationMessage Validierungsmeldung die
78
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
64
+ * Validates the length of the value in the control
65
+ * @param mintextlength Minimum length of the value
66
+ * @param validationMessage Validation message displayed at the control
67
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
68
+ * @returns ValidatorFn validator function
79
69
  */static minTextLength(mintextlength,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[9]++;cov_p06tlpmzt().s[10]++;return minTextLengthValidator(mintextlength,validationMessage,validationMessageSummary);}/**
80
- * Validiert ob die Zeit später als minTime ist.
81
- * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
82
- * @param minTime Min. Zeit
83
- * @param fieldName Label des Controls
84
- * @param validationMessage Validierungsmeldung die
85
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
70
+ * Validates if the time is later than minTime.
71
+ * @param minTime Minimum time allowed
72
+ * @param validationMessage Validation message displayed at the control
73
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
74
+ * @returns ValidatorFn validator function
86
75
  */static minTime(minTime,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[10]++;cov_p06tlpmzt().s[11]++;return minTimeValidator(minTime,validationMessage,validationMessageSummary);}/**
87
- * Validator der prüft ob der Wert ein Datum ist.
88
- * @param control Control mit IDateTimeControl Interface implementierung
89
- * @param fieldName Label des Controls
90
- * @param validationMessage Validierungsmeldung die
91
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
76
+ * Validator that checks if the value is greater than minValue.
77
+ * @param minvalue Minimum value allowed
78
+ * @param validationMessage Validation message displayed at the control
79
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
80
+ * @returns ValidatorFn validator function
92
81
  */static minValue(minvalue,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[11]++;cov_p06tlpmzt().s[12]++;return minValueValidator(minvalue,validationMessage,validationMessageSummary);}/**
93
- * Validierung mit einem RegEx Pattern
94
- * @param control Control das validiert werden soll.
95
- * @param pattern RegEx Pattern
96
- * @param fieldName Label des Controls
97
- * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
98
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
82
+ * Validator for MultiLanguage Control that checks if a value has been entered in all languages
83
+ * @param languages Languages that can be captured in the control
84
+ * @param validationMessage Validation message displayed below the control
85
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
86
+ * @returns ValidatorFn validator function
99
87
  */static multilanguageRequired(languages,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[12]++;cov_p06tlpmzt().s[13]++;return multilanguageRequiredValidator(languages,validationMessage,validationMessageSummary);}/**
100
- * Validator für MultiLanguage Control, welcher überprüft ob min. ein Wert erfasst wurde
101
- * @param control Control das Validatiert werden soll
102
- * @param languages Sprachen die im Control erfasst werden können.
103
- * @param fieldName Label des Controls
104
- * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
105
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
88
+ * Validator for MultiLanguage Control that checks if at least one value has been entered
89
+ * @param languages Languages that can be captured in the control
90
+ * @param validationMessage Validation message displayed below the control
91
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
92
+ * @returns ValidatorFn validator function
106
93
  */static multilanguageRequiredAny(languages,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[13]++;cov_p06tlpmzt().s[14]++;return multilanguageRequiredAnyValidator(languages,validationMessage,validationMessageSummary);}/**
107
94
  * Validator validate if value is not the invalidValue
108
- * @param invalidValue Value that control doesn't should have
109
- * @param control Control to be validate
110
- * @param fieldName Label of control
111
- * @param validationMessage validation message near the control
112
- * @param validationMessageSummary validation inside the validation summary
95
+ * @param invalidValue Value that control should not have
96
+ * @param validationMessage Validation message near the control
97
+ * @param validationMessageSummary Validation message inside the validation summary
98
+ * @returns ValidatorFn validator function
113
99
  */static notequals(invalidValue,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[14]++;cov_p06tlpmzt().s[15]++;return notEqualsValueValidator(invalidValue,validationMessage,validationMessageSummary);}/**
114
- * Validierung mit einem RegEx Pattern
115
- * @param control Control das validiert werden soll.
116
- * @param pattern RegEx Pattern
117
- * @param fieldName Label des Controls
118
- * @param validationMessage Validierungsmeldung die
119
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
100
+ * Validation with a RegEx pattern
101
+ * @param pattern RegEx pattern that the value must match
102
+ * @param validationMessage Validation message displayed below the control
103
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
104
+ * @returns ValidatorFn validator function
120
105
  */static pattern(pattern,validationMessage,validationMessageSummary){cov_p06tlpmzt().f[15]++;cov_p06tlpmzt().s[16]++;return patternValidator(pattern,validationMessage,validationMessageSummary);}/**
121
- * Validator für Required State
122
- * @param control Control das Validiert wird
123
- * @param fieldName Label des Controls
124
- * @param validationMessage Validierungsmeldung die
125
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
106
+ * Validator for Required State
107
+ * @returns ValidatorFn validator function
108
+ * @param validationMessage Validation message that
109
+ * @param validationMessageSummary Validation message that is displayed in the Validation Summary
126
110
  */static required(validationMessage,validationMessageSummary){cov_p06tlpmzt().f[16]++;cov_p06tlpmzt().s[17]++;return requiredValidator(validationMessage,validationMessageSummary);}}// #endregion Exported Classes
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0s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Li9tb2RlbHMvbGFuZ3VhZ2Vtb2RlbCc7XG5pbXBvcnQgeyBlbWFpbFZhbGlkYXRvciB9IGZyb20gJy4vZW1haWwudmFsaWRhdG9yJztcbmltcG9ydCB7IGVxdWFsc1ZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9lcXVhbHMudmFsaWRhdG9yJztcbmltcG9ydCB7IGlzVmFsaWREYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9pbnZhbGlkZGF0ZS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWF4RGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4ZGF0ZS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWF4VGltZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4dGltZS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWF4VmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL21heHZhbHVlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtaW5EYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5kYXRlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtaW5GaWxlc1ZhbGlkYXRvciB9IGZyb20gJy4vbWluZmlsZXMudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pblRleHRMZW5ndGhWYWxpZGF0b3IgfSBmcm9tICcuL21pbnRleHRsZW5ndGgudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pblRpbWVWYWxpZGF0b3IgfSBmcm9tICcuL21pbnRpbWUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pblZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW52YWx1ZS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbXVsdGlsYW5ndWFnZVJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlcmVxdWlyZWQudmFsaWRhdG9yJztcbmltcG9ydCB7IG11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueVZhbGlkYXRvciB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZXJlcXVpcmVkYW55LnZhbGlkYXRvcic7XG5pbXBvcnQgeyBub3RFcXVhbHNWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbm90ZXF1YWxzLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBwYXR0ZXJuVmFsaWRhdG9yIH0gZnJvbSAnLi9wYXR0ZXJuLnZhbGlkYXRvcic7XG5pbXBvcnQgeyByZXF1aXJlZFZhbGlkYXRvciB9IGZyb20gJy4vcmVxdWlyZWQudmFsaWRhdG9yJztcbmltcG9ydCB7IENyZWF0ZVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yY3JlYXRvcic7XG5pbXBvcnQgeyBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcblxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcblxuLyoqXG4gKiBNb21lbnRcbiAqL1xuY29uc3QgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKiBLbGFzc2UgbWl0IFN0YW5kYXJkIFZhbGlkYXRvcmVuXG4gKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uIHtcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBTdGF0aWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIE1ldGhvZGUgaXN0IHZvbiBqZWRlbSBWYWxpZGF0b3IgYXVmZ2VydWZlbi4gRGllIHNldHp0IHNvd29obCBkZW4gZXJyb3JUeXBlIGRlcyBnZXJww7xmdGUgSXRlbSwgYWxzIGF1Y2ggZGllIEVycm9yTWVzc2FnZSAoZ2Vtw6RzcyB2b24gZXJyb3JUeXBlLCBGaWVsZE5hbWUgdW5kIFBhcmFtZXRlcnMpLlxuICAgICAqIEBwYXJhbSBlcnJvclR5cGUgVHlwIGRlbiBGZWhsZXJcbiAgICAgKiBAcGFyYW0gZXJyb3JNZXNzYWdlS2V5IEVycm9yIE1lc3NhZ2UgS2V5XG4gICAgICogQHBhcmFtIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5IEVycm9yIE1lc3NhZ2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSAgTGFiZWwgb2RlciBOYW1lIGRlcyBGZWxkZXNcbiAgICAgKiBAcGFyYW0gcGFyYW1ldGVycyBQYXJhbWV0ZXJuIGRpZSBpbiBkZW4gTWVsZHVuZ2VuIGFscyBQbGF0emhhbHRlciB2ZXJ3ZW5kZXQgd2VyZGVuIGvDtm5uZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIEdldFZhbGlkYXRpb25FcnJvckl0ZW0oXG4gICAgICAgIGVycm9yVHlwZTogc3RyaW5nLFxuICAgICAgICBlcnJvck1lc3NhZ2VLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcbiAgICAgICAgZmllbGROYW1lOiBzdHJpbmcgPSBudWxsLFxuICAgICAgICBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKVxuICAgICk6IGFueSB7XG4gICAgICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoZXJyb3JUeXBlLCBlcnJvck1lc3NhZ2VLZXksIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5LCBwYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGllcnQgRmVsZCBhdWYgRS1NYWlsIEFkcmVzc2VcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxkaWVydCB3ZXJkZW4gc29sbFxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGVtYWlsKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIGVtYWlsVmFsaWRhdG9yKHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgKiBWYWxpZGF0b3IgdmFsaWRhdGUgaWYgdmFsdWUgaXMgdGhlIHJlcXVpcmVkVmFsdWVcbiAgICogQHBhcmFtIHJlcXVpcmVkVmFsdWUgVmFsdWUgdGhhdCBjb250cm9sIHNob3VsZCBoYXZlXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgdG8gYmUgdmFsaWRhdGVcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBvZiBjb250cm9sXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSB2YWxpZGF0aW9uIG1lc3NhZ2UgbmVhciB0aGUgY29udHJvbFxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IHZhbGlkYXRpb24gaW5zaWRlIHRoZSB2YWxpZGF0aW9uIHN1bW1hcnlcblxuICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGVxdWFscyhyZXF1aXJlZFZhbHVlOiBhbnksIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIGVxdWFsc1ZhbHVlVmFsaWRhdG9yKHJlcXVpcmVkVmFsdWUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBkZXIgcHLDvGZ0IG9iIGRlciBXZXJ0IGVpbiBEYXR1bSBpc3QuXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBtaXQgSURhdGVUaW1lQ29udHJvbCBJbnRlcmZhY2UgaW1wbGVtZW50aWVydW5nXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgYmVpbSBDb250cm9sIGFuZ2V6ZWlndCB3aXJkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWREYXRlKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWREYXRlVmFsaWRhdG9yKHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkaWVydCBvYiBkYXMgRGF0dW0gw6RsdGVyIGFscyBtYXhEYXRlIGlzdFxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cbiAgICAgKiBAcGFyYW0gbWF4RGF0ZSBtYXguIERhdHVtXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWF4RGF0ZShtYXhEYXRlOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtYXhEYXRlVmFsaWRhdG9yKG1heERhdGUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkaWVydCBvYiBkaWUgWmVpdCBmcsO8aGVyIGFscyBtYXhUaW1lIGlzdC5cbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXG4gICAgICogQHBhcmFtIG1heFRpbWUgTWluLiBaZWl0XG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWF4VGltZShtYXhUaW1lOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtYXhUaW1lVmFsaWRhdG9yKG1heFRpbWUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmw7xyIE1heCBWYWx1ZVxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbFxuICAgICAqIEBwYXJhbSBtYXh2YWx1ZSBNYXguIFdlcnRcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtYXhWYWx1ZShtYXh2YWx1ZTogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtYXhWYWx1ZVZhbGlkYXRvcihtYXh2YWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRpZXJ0IG9iIGRhcyBEYXR1bSBuZXVlciBhbHMgbWluRGF0ZSBpc3RcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXG4gICAgICogQHBhcmFtIG1pbkRhdGUgTWluLiBEYXR1bVxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG1pbkRhdGUobWluRGF0ZTogRGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluRGF0ZVZhbGlkYXRvcihtaW5EYXRlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZsO8ciBtaW4uIEFuemFobCB2b24gVXBsb2Fkc1xuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsLiBDb250cm9sIG11c3MgSVVwbG9hZENvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxuICAgICAqIEBwYXJhbSBtaW5GaWxlcyBNaW4uIEFuemFobCBGaWxlcyBkaWUgaG9jaGdlbGFkZW4gd2VyZGVuIG3DvHNzZW5cbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG1pbkZpbGVzKG1pbkZpbGVzOiBudW1iZXIsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG1pbkZpbGVzVmFsaWRhdG9yKG1pbkZpbGVzLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGllcnQgYXVmIGRpZSBMw6RuZ2UgZGVzIFdlcnRlcyBpbSBDb250cm9sXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsXG4gICAgICogQHBhcmFtIG1pbnRleHRsZW5ndGggTWluLiBMw6RuZ2UgZGVzIFdlcnRlc1xuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG1pblRleHRMZW5ndGgobWludGV4dGxlbmd0aDogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5UZXh0TGVuZ3RoVmFsaWRhdG9yKG1pbnRleHRsZW5ndGgsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkaWVydCBvYiBkaWUgWmVpdCBzcMOkdGVyIGFscyBtaW5UaW1lIGlzdC5cbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXG4gICAgICogQHBhcmFtIG1pblRpbWUgTWluLiBaZWl0XG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluVGltZShtaW5UaW1lOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnk6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG1pblRpbWVWYWxpZGF0b3IobWluVGltZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIGRlciBwcsO8ZnQgb2IgZGVyIFdlcnQgZWluIERhdHVtIGlzdC5cbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5WYWx1ZShtaW52YWx1ZTogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5WYWx1ZVZhbGlkYXRvcihtaW52YWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRpZXJ1bmcgbWl0IGVpbmVtIFJlZ0V4IFBhdHRlcm5cbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyB2YWxpZGllcnQgd2VyZGVuIHNvbGwuXG4gICAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkKFxuICAgICAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XG4gICAgKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbXVsdGlsYW5ndWFnZVJlcXVpcmVkVmFsaWRhdG9yKGxhbmd1YWdlcywgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIGbDvHIgTXVsdGlMYW5ndWFnZSBDb250cm9sLCB3ZWxjaGVyIMO8YmVycHLDvGZ0IG9iIG1pbi4gZWluIFdlcnQgZXJmYXNzdCB3dXJkZVxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsXG4gICAgICogQHBhcmFtIGxhbmd1YWdlcyBTcHJhY2hlbiBkaWUgaW0gQ29udHJvbCBlcmZhc3N0IHdlcmRlbiBrw7ZubmVuLlxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxuICAgICAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XG4gICAgKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yKGxhbmd1YWdlcywgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIHZhbGlkYXRlIGlmIHZhbHVlIGlzIG5vdCB0aGUgaW52YWxpZFZhbHVlXG4gICAgICogQHBhcmFtIGludmFsaWRWYWx1ZSBWYWx1ZSB0aGF0IGNvbnRyb2wgZG9lc24ndCBzaG91bGQgaGF2ZVxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgdG8gYmUgdmFsaWRhdGVcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIG9mIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgdmFsaWRhdGlvbiBtZXNzYWdlIG5lYXIgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IHZhbGlkYXRpb24gaW5zaWRlIHRoZSB2YWxpZGF0aW9uIHN1bW1hcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG5vdGVxdWFscyhpbnZhbGlkVmFsdWU6IGFueSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IoaW52YWxpZFZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGllcnVuZyBtaXQgZWluZW0gUmVnRXggUGF0dGVyblxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIHZhbGlkaWVydCB3ZXJkZW4gc29sbC5cbiAgICAgKiBAcGFyYW0gcGF0dGVybiBSZWdFeCBQYXR0ZXJuXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcGF0dGVybihwYXR0ZXJuOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHBhdHRlcm5WYWxpZGF0b3IocGF0dGVybiwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIGbDvHIgUmVxdWlyZWQgU3RhdGVcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2lyZFxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlcXVpcmVkKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmVkVmFsaWRhdG9yKHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIFN0YXRpYyBNZXRob2RzXG59XG5cbi8vICNlbmRyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuIl19
128
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfcDA2dGxwbXp0IiwiYWN0dWFsQ292ZXJhZ2UiLCJlbWFpbFZhbGlkYXRvciIsImVxdWFsc1ZhbHVlVmFsaWRhdG9yIiwiaXNWYWxpZERhdGVWYWxpZGF0b3IiLCJtYXhEYXRlVmFsaWRhdG9yIiwibWF4VGltZVZhbGlkYXRvciIsIm1heFZhbHVlVmFsaWRhdG9yIiwibWluRGF0ZVZhbGlkYXRvciIsIm1pbkZpbGVzVmFsaWRhdG9yIiwibWluVGV4dExlbmd0aFZhbGlkYXRvciIsIm1pblRpbWVWYWxpZGF0b3IiLCJtaW5WYWx1ZVZhbGlkYXRvciIsIm11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvciIsIm11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueVZhbGlkYXRvciIsIm5vdEVxdWFsc1ZhbHVlVmFsaWRhdG9yIiwicGF0dGVyblZhbGlkYXRvciIsInJlcXVpcmVkVmFsaWRhdG9yIiwiQ3JlYXRlVmFsaWRhdGlvbkVycm9yIiwibW9tZW50XyIsIm1vbWVudCIsInMiLCJWYWxpZGF0aW9uIiwiR2V0VmFsaWRhdGlvbkVycm9ySXRlbSIsImVycm9yVHlwZSIsImVycm9yTWVzc2FnZUtleSIsImVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5IiwiZmllbGROYW1lIiwiYiIsInBhcmFtZXRlcnMiLCJNYXAiLCJmIiwiZW1haWwiLCJ2YWxpZGF0aW9uTWVzc2FnZSIsInZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSIsImVxdWFscyIsInJlcXVpcmVkVmFsdWUiLCJpc1ZhbGlkRGF0ZSIsIm1heERhdGUiLCJtYXhUaW1lIiwibWF4VmFsdWUiLCJtYXh2YWx1ZSIsIm1pbkRhdGUiLCJtaW5GaWxlcyIsIm1pblRleHRMZW5ndGgiLCJtaW50ZXh0bGVuZ3RoIiwibWluVGltZSIsIm1pblZhbHVlIiwibWludmFsdWUiLCJtdWx0aWxhbmd1YWdlUmVxdWlyZWQiLCJsYW5ndWFnZXMiLCJtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnkiLCJub3RlcXVhbHMiLCJpbnZhbGlkVmFsdWUiLCJwYXR0ZXJuIiwicmVxdWlyZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9sYW5ndWFnZW1vZGVsJztcbmltcG9ydCB7IGVtYWlsVmFsaWRhdG9yIH0gZnJvbSAnLi9lbWFpbC52YWxpZGF0b3InO1xuaW1wb3J0IHsgZXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL2VxdWFscy52YWxpZGF0b3InO1xuaW1wb3J0IHsgaXNWYWxpZERhdGVWYWxpZGF0b3IgfSBmcm9tICcuL2ludmFsaWRkYXRlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhEYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXhkYXRlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhUaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh0aW1lLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4dmFsdWUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pbkRhdGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbmRhdGUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pbkZpbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5maWxlcy52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVGV4dExlbmd0aFZhbGlkYXRvciB9IGZyb20gJy4vbWludGV4dGxlbmd0aC52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVGltZVZhbGlkYXRvciB9IGZyb20gJy4vbWludGltZS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL21pbnZhbHVlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlcmVxdWlyZWRhbnkudmFsaWRhdG9yJztcbmltcG9ydCB7IG5vdEVxdWFsc1ZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9ub3RlcXVhbHMudmFsaWRhdG9yJztcbmltcG9ydCB7IHBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcbmltcG9ydCB7IHJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgQ3JlYXRlVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi92YWxpZGF0aW9uZXJyb3JjcmVhdG9yJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuXG4vLyAjcmVnaW9uIFZhcmlhYmxlc1xuXG4vKipcbiAqIE1vbWVudFxuICovXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XG5cbi8vICNlbmRyZWdpb24gVmFyaWFibGVzXG5cbi8vICNyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuXG4vKipcbiAqIEtsYXNzZSBtaXQgU3RhbmRhcmQgVmFsaWRhdG9yZW5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb24ge1xuICAgIC8vICNyZWdpb24gUHVibGljIFN0YXRpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBEaWUgTWV0aG9kZSBpc3Qgdm9uIGplZGVtIFZhbGlkYXRvciBhdWZnZXJ1ZmVuLiBEaWUgc2V0enQgc293b2hsIGRlbiBlcnJvclR5cGUgZGVzIGdlcnDDvGZ0ZSBJdGVtLCBhbHMgYXVjaCBkaWUgRXJyb3JNZXNzYWdlIChnZW3DpHNzIHZvbiBlcnJvclR5cGUsIEZpZWxkTmFtZSB1bmQgUGFyYW1ldGVycykuXG4gICAgICogQHBhcmFtIGVycm9yVHlwZSBUeXAgZGVuIEZlaGxlclxuICAgICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VLZXkgRXJyb3IgTWVzc2FnZSBLZXlcbiAgICAgKiBAcGFyYW0gZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXkgRXJyb3IgTWVzc2FnZSBLZXkgZsO8ciBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lICBMYWJlbCBvZGVyIE5hbWUgZGVzIEZlbGRlc1xuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFBhcmFtZXRlcm4gZGllIGluIGRlbiBNZWxkdW5nZW4gYWxzIFBsYXR6aGFsdGVyIHZlcndlbmRldCB3ZXJkZW4ga8O2bm5lblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgR2V0VmFsaWRhdGlvbkVycm9ySXRlbShcbiAgICAgICAgZXJyb3JUeXBlOiBzdHJpbmcsXG4gICAgICAgIGVycm9yTWVzc2FnZUtleTogc3RyaW5nLFxuICAgICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleTogc3RyaW5nLFxuICAgICAgICBmaWVsZE5hbWU6IHN0cmluZyA9IG51bGwsXG4gICAgICAgIHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpXG4gICAgKTogYW55IHtcbiAgICAgICAgcmV0dXJuIENyZWF0ZVZhbGlkYXRpb25FcnJvcihlcnJvclR5cGUsIGVycm9yTWVzc2FnZUtleSwgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXksIHBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkaWVydCBGZWxkIGF1ZiBFLU1haWwgQWRyZXNzZVxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGRpZXJ0IHdlcmRlbiBzb2xsXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZW1haWwodmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gZW1haWxWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAqIFZhbGlkYXRvciB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyB0aGUgcmVxdWlyZWRWYWx1ZVxuICAgKiBAcGFyYW0gcmVxdWlyZWRWYWx1ZSBWYWx1ZSB0aGF0IGNvbnRyb2wgc2hvdWxkIGhhdmVcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCB0byBiZSB2YWxpZGF0ZVxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIG9mIGNvbnRyb2xcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIHZhbGlkYXRpb24gbWVzc2FnZSBuZWFyIHRoZSBjb250cm9sXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgdmFsaWRhdGlvbiBpbnNpZGUgdGhlIHZhbGlkYXRpb24gc3VtbWFyeVxuXG4gICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZXF1YWxzKHJlcXVpcmVkVmFsdWU6IGFueSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gZXF1YWxzVmFsdWVWYWxpZGF0b3IocmVxdWlyZWRWYWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIGRlciBwcsO8ZnQgb2IgZGVyIFdlcnQgZWluIERhdHVtIGlzdC5cbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBiZWltIENvbnRyb2wgYW5nZXplaWd0IHdpcmRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNWYWxpZERhdGUodmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gaXNWYWxpZERhdGVWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRpZXJ0IG9iIGRhcyBEYXR1bSDDpGx0ZXIgYWxzIG1heERhdGUgaXN0XG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxuICAgICAqIEBwYXJhbSBtYXhEYXRlIG1heC4gRGF0dW1cbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtYXhEYXRlKG1heERhdGU6IERhdGUsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG1heERhdGVWYWxpZGF0b3IobWF4RGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRpZXJ0IG9iIGRpZSBaZWl0IGZyw7xoZXIgYWxzIG1heFRpbWUgaXN0LlxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cbiAgICAgKiBAcGFyYW0gbWF4VGltZSBNaW4uIFplaXRcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtYXhUaW1lKG1heFRpbWU6IERhdGUsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG1heFRpbWVWYWxpZGF0b3IobWF4VGltZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIGbDvHIgTWF4IFZhbHVlXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsXG4gICAgICogQHBhcmFtIG1heHZhbHVlIE1heC4gV2VydFxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG1heFZhbHVlKG1heHZhbHVlOiBudW1iZXIsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG1heFZhbHVlVmFsaWRhdG9yKG1heHZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGllcnQgb2IgZGFzIERhdHVtIG5ldWVyIGFscyBtaW5EYXRlIGlzdFxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cbiAgICAgKiBAcGFyYW0gbWluRGF0ZSBNaW4uIERhdHVtXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluRGF0ZShtaW5EYXRlOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKG1pbkRhdGUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmw7xyIG1pbi4gQW56YWhsIHZvbiBVcGxvYWRzXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRhdGllcnQgd2VyZGVuIHNvbGwuIENvbnRyb2wgbXVzcyBJVXBsb2FkQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXG4gICAgICogQHBhcmFtIG1pbkZpbGVzIE1pbi4gQW56YWhsIEZpbGVzIGRpZSBob2NoZ2VsYWRlbiB3ZXJkZW4gbcO8c3NlblxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluRmlsZXMobWluRmlsZXM6IG51bWJlciwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluRmlsZXNWYWxpZGF0b3IobWluRmlsZXMsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkaWVydCBhdWYgZGllIEzDpG5nZSBkZXMgV2VydGVzIGltIENvbnRyb2xcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGxcbiAgICAgKiBAcGFyYW0gbWludGV4dGxlbmd0aCBNaW4uIEzDpG5nZSBkZXMgV2VydGVzXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluVGV4dExlbmd0aChtaW50ZXh0bGVuZ3RoOiBudW1iZXIsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG1pblRleHRMZW5ndGhWYWxpZGF0b3IobWludGV4dGxlbmd0aCwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRpZXJ0IG9iIGRpZSBaZWl0IHNww6R0ZXIgYWxzIG1pblRpbWUgaXN0LlxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cbiAgICAgKiBAcGFyYW0gbWluVGltZSBNaW4uIFplaXRcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5UaW1lKG1pblRpbWU6IERhdGUsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluVGltZVZhbGlkYXRvcihtaW5UaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZGVyIHByw7xmdCBvYiBkZXIgV2VydCBlaW4gRGF0dW0gaXN0LlxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgbWl0IElEYXRlVGltZUNvbnRyb2wgSW50ZXJmYWNlIGltcGxlbWVudGllcnVuZ1xuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG1pblZhbHVlKG1pbnZhbHVlOiBudW1iZXIsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG1pblZhbHVlVmFsaWRhdG9yKG1pbnZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGllcnVuZyBtaXQgZWluZW0gUmVnRXggUGF0dGVyblxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIHZhbGlkaWVydCB3ZXJkZW4gc29sbC5cbiAgICAgKiBAcGFyYW0gcGF0dGVybiBSZWdFeCBQYXR0ZXJuXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgdW50ZXJoYWxiIGRlcyBDb250cm9scyBhbmdlemVpZ3Qgd2lyZFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtdWx0aWxhbmd1YWdlUmVxdWlyZWQoXG4gICAgICAgIGxhbmd1YWdlczogTGFuZ3VhZ2VNb2RlbFtdLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcbiAgICApOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IobGFuZ3VhZ2VzLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZsO8ciBNdWx0aUxhbmd1YWdlIENvbnRyb2wsIHdlbGNoZXIgw7xiZXJwcsO8ZnQgb2IgbWluLiBlaW4gV2VydCBlcmZhc3N0IHd1cmRlXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRhdGllcnQgd2VyZGVuIHNvbGxcbiAgICAgKiBAcGFyYW0gbGFuZ3VhZ2VzIFNwcmFjaGVuIGRpZSBpbSBDb250cm9sIGVyZmFzc3Qgd2VyZGVuIGvDtm5uZW4uXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgdW50ZXJoYWxiIGRlcyBDb250cm9scyBhbmdlemVpZ3Qgd2lyZFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnkoXG4gICAgICAgIGxhbmd1YWdlczogTGFuZ3VhZ2VNb2RlbFtdLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcbiAgICApOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnlWYWxpZGF0b3IobGFuZ3VhZ2VzLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgdmFsaWRhdGUgaWYgdmFsdWUgaXMgbm90IHRoZSBpbnZhbGlkVmFsdWVcbiAgICAgKiBAcGFyYW0gaW52YWxpZFZhbHVlIFZhbHVlIHRoYXQgY29udHJvbCBkb2Vzbid0IHNob3VsZCBoYXZlXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCB0byBiZSB2YWxpZGF0ZVxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgb2YgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSB2YWxpZGF0aW9uIG1lc3NhZ2UgbmVhciB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgdmFsaWRhdGlvbiBpbnNpZGUgdGhlIHZhbGlkYXRpb24gc3VtbWFyeVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbm90ZXF1YWxzKGludmFsaWRWYWx1ZTogYW55LCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBub3RFcXVhbHNWYWx1ZVZhbGlkYXRvcihpbnZhbGlkVmFsdWUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkaWVydW5nIG1pdCBlaW5lbSBSZWdFeCBQYXR0ZXJuXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdlcmRlbiBzb2xsLlxuICAgICAqIEBwYXJhbSBwYXR0ZXJuIFJlZ0V4IFBhdHRlcm5cbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBwYXR0ZXJuKHBhdHRlcm46IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gcGF0dGVyblZhbGlkYXRvcihwYXR0ZXJuLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZsO8ciBSZXF1aXJlZCBTdGF0ZVxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3aXJkXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVxdWlyZWQodmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gcmVxdWlyZWRWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgU3RhdGljIE1ldGhvZHNcbn1cblxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG4iXSwibWFwcGluZ3MiOiJzcW9CQWdCUztBQUFBQSxhQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGFBQUEsR0FmVCxPQUFTRSxjQUFjLEtBQVEsbUJBQW1CLENBQ2xELE9BQVNDLG9CQUFvQixLQUFRLG9CQUFvQixDQUN6RCxPQUFTQyxvQkFBb0IsS0FBUSx5QkFBeUIsQ0FDOUQsT0FBU0MsZ0JBQWdCLEtBQVEscUJBQXFCLENBQ3RELE9BQVNDLGdCQUFnQixLQUFRLHFCQUFxQixDQUN0RCxPQUFTQyxpQkFBaUIsS0FBUSxzQkFBc0IsQ0FDeEQsT0FBU0MsZ0JBQWdCLEtBQVEscUJBQXFCLENBQ3RELE9BQVNDLGlCQUFp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QixDQUFFZixpQkFBeUIsQ0FBRUMsd0JBQXdCLEVBQUFsQyxhQUFBLEdBQUErQixDQUFBLE1BQUEvQixDQUFBLGdCQUFBcUIsQ0FBQSxPQUN4RixNQUFPLENBQUFULGlCQUFpQixDQUFDb0MsUUFBUSxDQUFFZixpQkFBaUIsQ0FBRUMsd0JBQXdCLENBQUMsQ0FDbkYsQ0FFQTs7Ozs7OztPQVFPLE1BQU8sQ0FBQWUscUJBQXFCQSxDQUMvQkMsU0FBMEIsQ0FDMUJqQixpQkFBeUIsQ0FDekJDLHdCQUF3QixFQUFBbEMsYUFBQSxHQUFBK0IsQ0FBQSxNQUFBL0IsQ0FBQSxnQkFBQXFCLENBQUEsT0FFeEIsTUFBTyxDQUFBUiw4QkFBOEIsQ0FBQ3FDLFNBQVMsQ0FBRWpCLGlCQUFpQixDQUFFQyx3QkFBd0IsQ0FBQyxDQUNqRyxDQUVBOzs7Ozs7O09BUU8sTUFBTyxDQUFBaUIsd0JBQXdCQSxDQUNsQ0QsU0FBMEIsQ0FDMUJqQixpQkFBeUIsQ0FDekJDLHdCQUF3QixFQUFBbEMsYUFBQSxHQUFBK0IsQ0FBQSxNQUFBL0IsQ0FBQSxnQkFBQXFCLENBQUEsT0FFeEIsTUFBTyxDQUFBUCxpQ0FBaUMsQ0FBQ29DLFNBQVMsQ0FBRWpCLGlCQUFpQixDQUFFQyx3QkFBd0IsQ0FBQyxDQUNwRyxDQUVBOzs7Ozs7O09BUU8sTUFBTyxDQUFBa0IsU0FBU0EsQ0FBQ0MsWUFBaUIsQ0FBRXBCLGlCQUF5QixDQUFFQyx3QkFBd0IsRUFBQWxDLGFBQUEsR0FBQStCLENBQUEsTUFBQS9CLENBQUEsZ0JBQUFxQixDQUFBLE9BQzFGLE1BQU8sQ0FBQU4sdUJBQXVCLENBQUNzQyxZQUFZLENBQUVwQixpQkFBaUIsQ0FBRUMsd0JBQXdCLENBQUMsQ0FDN0YsQ0FFQTs7Ozs7OztPQVFPLE1BQU8sQ0FBQW9CLE9BQU9BLENBQUNBLE9BQWUsQ0FBRXJCLGlCQUF5QixDQUFFQyx3QkFBd0IsRUFBQWxDLGFBQUEsR0FBQStCLENBQUEsTUFBQS9CLENBQUEsZ0JBQUFxQixDQUFBLE9BQ3RGLE1BQU8sQ0FBQUwsZ0JBQWdCLENBQUNzQyxPQUFPLENBQUVyQixpQkFBaUIsQ0FBRUMsd0JBQXdCLENBQUMsQ0FDakYsQ0FFQTs7Ozs7O09BT08sTUFBTyxDQUFBcUIsUUFBUUEsQ0FBQ3RCLGlCQUF5QixDQUFFQyx3QkFBd0IsRUFBQWxDLGFBQUEsR0FBQStCLENBQUEsTUFBQS9CLENBQUEsZ0JBQUFxQixDQUFBLE9BQ3RFLE1BQU8sQ0FBQUosaUJBQWlCLENBQUNnQixpQkFBaUIsQ0FBRUMsd0JBQXdCLENBQUMsQ0FDekUsQyxDQUtKIiwiaWdub3JlTGlzdCI6W119
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0s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dWFnZW1vZGVsJztcbmltcG9ydCB7IGVtYWlsVmFsaWRhdG9yIH0gZnJvbSAnLi9lbWFpbC52YWxpZGF0b3InO1xuaW1wb3J0IHsgZXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL2VxdWFscy52YWxpZGF0b3InO1xuaW1wb3J0IHsgaXNWYWxpZERhdGVWYWxpZGF0b3IgfSBmcm9tICcuL2ludmFsaWRkYXRlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhEYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXhkYXRlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhUaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh0aW1lLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4dmFsdWUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pbkRhdGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbmRhdGUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pbkZpbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5maWxlcy52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVGV4dExlbmd0aFZhbGlkYXRvciB9IGZyb20gJy4vbWludGV4dGxlbmd0aC52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVGltZVZhbGlkYXRvciB9IGZyb20gJy4vbWludGltZS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL21pbnZhbHVlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlcmVxdWlyZWRhbnkudmFsaWRhdG9yJztcbmltcG9ydCB7IG5vdEVxdWFsc1ZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9ub3RlcXVhbHMudmFsaWRhdG9yJztcbmltcG9ydCB7IHBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcbmltcG9ydCB7IHJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgQ3JlYXRlVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi92YWxpZGF0aW9uZXJyb3JjcmVhdG9yJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuXG4vLyAjcmVnaW9uIFZhcmlhYmxlc1xuXG4vKipcbiAqIE1vbWVudFxuICovXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XG5cbi8vICNlbmRyZWdpb24gVmFyaWFibGVzXG5cbi8vICNyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuXG4vKipcbiAqIENsYXNzIHdpdGggc3RhbmRhcmQgdmFsaWRhdG9yc1xuICovXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbiB7XG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgU3RhdGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSBldmVyeSB2YWxpZGF0b3IuIEl0IHNldHMgYm90aCB0aGUgZXJyb3JUeXBlIG9mIHRoZSB2YWxpZGF0ZWQgaXRlbSBhbmQgdGhlIEVycm9yTWVzc2FnZSAoYWNjb3JkaW5nIHRvIGVycm9yVHlwZSwgRmllbGROYW1lIGFuZCBQYXJhbWV0ZXJzKS5cbiAgICAgKiBAcGFyYW0gZXJyb3JUeXBlIFR5cGUgb2YgdGhlIGVycm9yXG4gICAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxuICAgICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSBFcnJvciBNZXNzYWdlIEtleSBmb3IgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBvciBuYW1lIG9mIHRoZSBmaWVsZFxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFBhcmFtZXRlcnMgdGhhdCBjYW4gYmUgdXNlZCBhcyBwbGFjZWhvbGRlcnMgaW4gbWVzc2FnZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIEdldFZhbGlkYXRpb25FcnJvckl0ZW0oXG4gICAgICAgIGVycm9yVHlwZTogc3RyaW5nLFxuICAgICAgICBlcnJvck1lc3NhZ2VLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcbiAgICAgICAgZmllbGROYW1lOiBzdHJpbmcgPSBudWxsLFxuICAgICAgICBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKVxuICAgICk6IGFueSB7XG4gICAgICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoZXJyb3JUeXBlLCBlcnJvck1lc3NhZ2VLZXksIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5LCBwYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0ZXMgZmllbGQgZm9yIGVtYWlsIGFkZHJlc3NcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBhdCB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBlbWFpbCh2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBlbWFpbFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgdmFsaWRhdGUgaWYgdmFsdWUgaXMgdGhlIHJlcXVpcmVkVmFsdWVcbiAgICAgKiBAcGFyYW0gcmVxdWlyZWRWYWx1ZSBWYWx1ZSB0aGF0IGNvbnRyb2wgc2hvdWxkIGhhdmVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIG5lYXIgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBpbnNpZGUgdGhlIHZhbGlkYXRpb24gc3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZXF1YWxzKHJlcXVpcmVkVmFsdWU6IGFueSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gZXF1YWxzVmFsdWVWYWxpZGF0b3IocmVxdWlyZWRWYWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIHRoYXQgY2hlY2tzIGlmIHRoZSB2YWx1ZSBpcyBhIGRhdGUuXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNWYWxpZERhdGUodmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gaXNWYWxpZERhdGVWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGlmIHRoZSBkYXRlIGlzIG9sZGVyIHRoYW4gbWF4RGF0ZVxuICAgICAqIEBwYXJhbSBtYXhEYXRlIE1heGltdW0gZGF0ZSBhbGxvd2VkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWF4RGF0ZShtYXhEYXRlOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtYXhEYXRlVmFsaWRhdG9yKG1heERhdGUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyBpZiB0aGUgdGltZSBpcyBlYXJsaWVyIHRoYW4gbWF4VGltZS5cbiAgICAgKiBAcGFyYW0gbWF4VGltZSBNYXhpbXVtIHRpbWUgYWxsb3dlZFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGF0aW9uIG1lc3NhZ2UgZGlzcGxheWVkIGF0IHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGF0aW9uIG1lc3NhZ2UgZGlzcGxheWVkIGluIHRoZSBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKiBAcmV0dXJucyBWYWxpZGF0b3JGbiB2YWxpZGF0b3IgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG1heFRpbWUobWF4VGltZTogRGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWF4VGltZVZhbGlkYXRvcihtYXhUaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZm9yIE1heCBWYWx1ZVxuICAgICAqIEBwYXJhbSBtYXh2YWx1ZSBNYXhpbXVtIHZhbHVlIGFsbG93ZWRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBhdCB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtYXhWYWx1ZShtYXh2YWx1ZTogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtYXhWYWx1ZVZhbGlkYXRvcihtYXh2YWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGlmIHRoZSBkYXRlIGlzIG5ld2VyIHRoYW4gbWluRGF0ZVxuICAgICAqIEBwYXJhbSBtaW5EYXRlIE1pbmltdW0gZGF0ZSBhbGxvd2VkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluRGF0ZShtaW5EYXRlOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKG1pbkRhdGUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmb3IgbWluLiBudW1iZXIgb2YgdXBsb2Fkc1xuICAgICAqIEBwYXJhbSBtaW5GaWxlcyBNaW5pbXVtIG51bWJlciBvZiBmaWxlcyB0aGF0IG11c3QgYmUgdXBsb2FkZWRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBiZWxvdyB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5GaWxlcyhtaW5GaWxlczogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5GaWxlc1ZhbGlkYXRvcihtaW5GaWxlcywgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIHRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGluIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIG1pbnRleHRsZW5ndGggTWluaW11bSBsZW5ndGggb2YgdGhlIHZhbHVlXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluVGV4dExlbmd0aChcbiAgICAgICAgbWludGV4dGxlbmd0aDogbnVtYmVyLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcbiAgICApOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5UZXh0TGVuZ3RoVmFsaWRhdG9yKG1pbnRleHRsZW5ndGgsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyBpZiB0aGUgdGltZSBpcyBsYXRlciB0aGFuIG1pblRpbWUuXG4gICAgICogQHBhcmFtIG1pblRpbWUgTWluaW11bSB0aW1lIGFsbG93ZWRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBhdCB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5UaW1lKG1pblRpbWU6IERhdGUsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluVGltZVZhbGlkYXRvcihtaW5UaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgdGhhdCBjaGVja3MgaWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBtaW5WYWx1ZS5cbiAgICAgKiBAcGFyYW0gbWludmFsdWUgTWluaW11bSB2YWx1ZSBhbGxvd2VkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluVmFsdWUobWludmFsdWU6IG51bWJlciwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluVmFsdWVWYWxpZGF0b3IobWludmFsdWUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmb3IgTXVsdGlMYW5ndWFnZSBDb250cm9sIHRoYXQgY2hlY2tzIGlmIGEgdmFsdWUgaGFzIGJlZW4gZW50ZXJlZCBpbiBhbGwgbGFuZ3VhZ2VzXG4gICAgICogQHBhcmFtIGxhbmd1YWdlcyBMYW5ndWFnZXMgdGhhdCBjYW4gYmUgY2FwdHVyZWQgaW4gdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBiZWxvdyB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtdWx0aWxhbmd1YWdlUmVxdWlyZWQoXG4gICAgICAgIGxhbmd1YWdlczogTGFuZ3VhZ2VNb2RlbFtdLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcbiAgICApOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IobGFuZ3VhZ2VzLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZm9yIE11bHRpTGFuZ3VhZ2UgQ29udHJvbCB0aGF0IGNoZWNrcyBpZiBhdCBsZWFzdCBvbmUgdmFsdWUgaGFzIGJlZW4gZW50ZXJlZFxuICAgICAqIEBwYXJhbSBsYW5ndWFnZXMgTGFuZ3VhZ2VzIHRoYXQgY2FuIGJlIGNhcHR1cmVkIGluIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxuICAgICAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XG4gICAgKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yKGxhbmd1YWdlcywgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIHZhbGlkYXRlIGlmIHZhbHVlIGlzIG5vdCB0aGUgaW52YWxpZFZhbHVlXG4gICAgICogQHBhcmFtIGludmFsaWRWYWx1ZSBWYWx1ZSB0aGF0IGNvbnRyb2wgc2hvdWxkIG5vdCBoYXZlXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBuZWFyIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGF0aW9uIG1lc3NhZ2UgaW5zaWRlIHRoZSB2YWxpZGF0aW9uIHN1bW1hcnlcbiAgICAgKiBAcmV0dXJucyBWYWxpZGF0b3JGbiB2YWxpZGF0b3IgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG5vdGVxdWFscyhpbnZhbGlkVmFsdWU6IGFueSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IoaW52YWxpZFZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0aW9uIHdpdGggYSBSZWdFeCBwYXR0ZXJuXG4gICAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggcGF0dGVybiB0aGF0IHRoZSB2YWx1ZSBtdXN0IG1hdGNoXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcGF0dGVybihwYXR0ZXJuOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHBhdHRlcm5WYWxpZGF0b3IocGF0dGVybiwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIGZvciBSZXF1aXJlZCBTdGF0ZVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGF0aW9uIG1lc3NhZ2UgdGhhdFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIHRoYXQgaXMgZGlzcGxheWVkIGluIHRoZSBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlcXVpcmVkKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmVkVmFsaWRhdG9yKHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIFN0YXRpYyBNZXRob2RzXG59XG5cbi8vICNlbmRyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuIl19
112
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfcDA2dGxwbXp0IiwiYWN0dWFsQ292ZXJhZ2UiLCJlbWFpbFZhbGlkYXRvciIsImVxdWFsc1ZhbHVlVmFsaWRhdG9yIiwiaXNWYWxpZERhdGVWYWxpZGF0b3IiLCJtYXhEYXRlVmFsaWRhdG9yIiwibWF4VGltZVZhbGlkYXRvciIsIm1heFZhbHVlVmFsaWRhdG9yIiwibWluRGF0ZVZhbGlkYXRvciIsIm1pbkZpbGVzVmFsaWRhdG9yIiwibWluVGV4dExlbmd0aFZhbGlkYXRvciIsIm1pblRpbWVWYWxpZGF0b3IiLCJtaW5WYWx1ZVZhbGlkYXRvciIsIm11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvciIsIm11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueVZhbGlkYXRvciIsIm5vdEVxdWFsc1ZhbHVlVmFsaWRhdG9yIiwicGF0dGVyblZhbGlkYXRvciIsInJlcXVpcmVkVmFsaWRhdG9yIiwiQ3JlYXRlVmFsaWRhdGlvbkVycm9yIiwibW9tZW50XyIsIm1vbWVudCIsInMiLCJWYWxpZGF0aW9uIiwiR2V0VmFsaWRhdGlvbkVycm9ySXRlbSIsImVycm9yVHlwZSIsImVycm9yTWVzc2FnZUtleSIsImVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5IiwiZmllbGROYW1lIiwiYiIsInBhcmFtZXRlcnMiLCJNYXAiLCJmIiwiZW1haWwiLCJ2YWxpZGF0aW9uTWVzc2FnZSIsInZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSIsImVxdWFscyIsInJlcXVpcmVkVmFsdWUiLCJpc1ZhbGlkRGF0ZSIsIm1heERhdGUiLCJtYXhUaW1lIiwibWF4VmFsdWUiLCJtYXh2YWx1ZSIsIm1pbkRhdGUiLCJtaW5GaWxlcyIsIm1pblRleHRMZW5ndGgiLCJtaW50ZXh0bGVuZ3RoIiwibWluVGltZSIsIm1pblZhbHVlIiwibWludmFsdWUiLCJtdWx0aWxhbmd1YWdlUmVxdWlyZWQiLCJsYW5ndWFnZXMiLCJtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnkiLCJub3RlcXVhbHMiLCJpbnZhbGlkVmFsdWUiLCJwYXR0ZXJuIiwicmVxdWlyZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9sYW5ndWFnZW1vZGVsJztcbmltcG9ydCB7IGVtYWlsVmFsaWRhdG9yIH0gZnJvbSAnLi9lbWFpbC52YWxpZGF0b3InO1xuaW1wb3J0IHsgZXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL2VxdWFscy52YWxpZGF0b3InO1xuaW1wb3J0IHsgaXNWYWxpZERhdGVWYWxpZGF0b3IgfSBmcm9tICcuL2ludmFsaWRkYXRlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhEYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXhkYXRlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhUaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh0aW1lLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4dmFsdWUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pbkRhdGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbmRhdGUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pbkZpbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5maWxlcy52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVGV4dExlbmd0aFZhbGlkYXRvciB9IGZyb20gJy4vbWludGV4dGxlbmd0aC52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVGltZVZhbGlkYXRvciB9IGZyb20gJy4vbWludGltZS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL21pbnZhbHVlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlcmVxdWlyZWRhbnkudmFsaWRhdG9yJztcbmltcG9ydCB7IG5vdEVxdWFsc1ZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9ub3RlcXVhbHMudmFsaWRhdG9yJztcbmltcG9ydCB7IHBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcbmltcG9ydCB7IHJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgQ3JlYXRlVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi92YWxpZGF0aW9uZXJyb3JjcmVhdG9yJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuXG4vLyAjcmVnaW9uIFZhcmlhYmxlc1xuXG4vKipcbiAqIE1vbWVudFxuICovXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XG5cbi8vICNlbmRyZWdpb24gVmFyaWFibGVzXG5cbi8vICNyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuXG4vKipcbiAqIENsYXNzIHdpdGggc3RhbmRhcmQgdmFsaWRhdG9yc1xuICovXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbiB7XG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgU3RhdGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSBldmVyeSB2YWxpZGF0b3IuIEl0IHNldHMgYm90aCB0aGUgZXJyb3JUeXBlIG9mIHRoZSB2YWxpZGF0ZWQgaXRlbSBhbmQgdGhlIEVycm9yTWVzc2FnZSAoYWNjb3JkaW5nIHRvIGVycm9yVHlwZSwgRmllbGROYW1lIGFuZCBQYXJhbWV0ZXJzKS5cbiAgICAgKiBAcGFyYW0gZXJyb3JUeXBlIFR5cGUgb2YgdGhlIGVycm9yXG4gICAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxuICAgICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSBFcnJvciBNZXNzYWdlIEtleSBmb3IgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBvciBuYW1lIG9mIHRoZSBmaWVsZFxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFBhcmFtZXRlcnMgdGhhdCBjYW4gYmUgdXNlZCBhcyBwbGFjZWhvbGRlcnMgaW4gbWVzc2FnZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIEdldFZhbGlkYXRpb25FcnJvckl0ZW0oXG4gICAgICAgIGVycm9yVHlwZTogc3RyaW5nLFxuICAgICAgICBlcnJvck1lc3NhZ2VLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcbiAgICAgICAgZmllbGROYW1lOiBzdHJpbmcgPSBudWxsLFxuICAgICAgICBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKVxuICAgICk6IGFueSB7XG4gICAgICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoZXJyb3JUeXBlLCBlcnJvck1lc3NhZ2VLZXksIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5LCBwYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0ZXMgZmllbGQgZm9yIGVtYWlsIGFkZHJlc3NcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBhdCB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBlbWFpbCh2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBlbWFpbFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgdmFsaWRhdGUgaWYgdmFsdWUgaXMgdGhlIHJlcXVpcmVkVmFsdWVcbiAgICAgKiBAcGFyYW0gcmVxdWlyZWRWYWx1ZSBWYWx1ZSB0aGF0IGNvbnRyb2wgc2hvdWxkIGhhdmVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIG5lYXIgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBpbnNpZGUgdGhlIHZhbGlkYXRpb24gc3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZXF1YWxzKHJlcXVpcmVkVmFsdWU6IGFueSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gZXF1YWxzVmFsdWVWYWxpZGF0b3IocmVxdWlyZWRWYWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIHRoYXQgY2hlY2tzIGlmIHRoZSB2YWx1ZSBpcyBhIGRhdGUuXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNWYWxpZERhdGUodmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gaXNWYWxpZERhdGVWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGlmIHRoZSBkYXRlIGlzIG9sZGVyIHRoYW4gbWF4RGF0ZVxuICAgICAqIEBwYXJhbSBtYXhEYXRlIE1heGltdW0gZGF0ZSBhbGxvd2VkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWF4RGF0ZShtYXhEYXRlOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtYXhEYXRlVmFsaWRhdG9yKG1heERhdGUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyBpZiB0aGUgdGltZSBpcyBlYXJsaWVyIHRoYW4gbWF4VGltZS5cbiAgICAgKiBAcGFyYW0gbWF4VGltZSBNYXhpbXVtIHRpbWUgYWxsb3dlZFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGF0aW9uIG1lc3NhZ2UgZGlzcGxheWVkIGF0IHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGF0aW9uIG1lc3NhZ2UgZGlzcGxheWVkIGluIHRoZSBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKiBAcmV0dXJucyBWYWxpZGF0b3JGbiB2YWxpZGF0b3IgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG1heFRpbWUobWF4VGltZTogRGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWF4VGltZVZhbGlkYXRvcihtYXhUaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZm9yIE1heCBWYWx1ZVxuICAgICAqIEBwYXJhbSBtYXh2YWx1ZSBNYXhpbXVtIHZhbHVlIGFsbG93ZWRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBhdCB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtYXhWYWx1ZShtYXh2YWx1ZTogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtYXhWYWx1ZVZhbGlkYXRvcihtYXh2YWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGlmIHRoZSBkYXRlIGlzIG5ld2VyIHRoYW4gbWluRGF0ZVxuICAgICAqIEBwYXJhbSBtaW5EYXRlIE1pbmltdW0gZGF0ZSBhbGxvd2VkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluRGF0ZShtaW5EYXRlOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKG1pbkRhdGUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmb3IgbWluLiBudW1iZXIgb2YgdXBsb2Fkc1xuICAgICAqIEBwYXJhbSBtaW5GaWxlcyBNaW5pbXVtIG51bWJlciBvZiBmaWxlcyB0aGF0IG11c3QgYmUgdXBsb2FkZWRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBiZWxvdyB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5GaWxlcyhtaW5GaWxlczogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5GaWxlc1ZhbGlkYXRvcihtaW5GaWxlcywgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIHRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGluIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIG1pbnRleHRsZW5ndGggTWluaW11bSBsZW5ndGggb2YgdGhlIHZhbHVlXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluVGV4dExlbmd0aChcbiAgICAgICAgbWludGV4dGxlbmd0aDogbnVtYmVyLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcbiAgICApOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5UZXh0TGVuZ3RoVmFsaWRhdG9yKG1pbnRleHRsZW5ndGgsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyBpZiB0aGUgdGltZSBpcyBsYXRlciB0aGFuIG1pblRpbWUuXG4gICAgICogQHBhcmFtIG1pblRpbWUgTWluaW11bSB0aW1lIGFsbG93ZWRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBhdCB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5UaW1lKG1pblRpbWU6IERhdGUsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluVGltZVZhbGlkYXRvcihtaW5UaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgdGhhdCBjaGVja3MgaWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBtaW5WYWx1ZS5cbiAgICAgKiBAcGFyYW0gbWludmFsdWUgTWluaW11bSB2YWx1ZSBhbGxvd2VkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluVmFsdWUobWludmFsdWU6IG51bWJlciwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluVmFsdWVWYWxpZGF0b3IobWludmFsdWUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmb3IgTXVsdGlMYW5ndWFnZSBDb250cm9sIHRoYXQgY2hlY2tzIGlmIGEgdmFsdWUgaGFzIGJlZW4gZW50ZXJlZCBpbiBhbGwgbGFuZ3VhZ2VzXG4gICAgICogQHBhcmFtIGxhbmd1YWdlcyBMYW5ndWFnZXMgdGhhdCBjYW4gYmUgY2FwdHVyZWQgaW4gdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBiZWxvdyB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtdWx0aWxhbmd1YWdlUmVxdWlyZWQoXG4gICAgICAgIGxhbmd1YWdlczogTGFuZ3VhZ2VNb2RlbFtdLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcbiAgICApOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IobGFuZ3VhZ2VzLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZm9yIE11bHRpTGFuZ3VhZ2UgQ29udHJvbCB0aGF0IGNoZWNrcyBpZiBhdCBsZWFzdCBvbmUgdmFsdWUgaGFzIGJlZW4gZW50ZXJlZFxuICAgICAqIEBwYXJhbSBsYW5ndWFnZXMgTGFuZ3VhZ2VzIHRoYXQgY2FuIGJlIGNhcHR1cmVkIGluIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxuICAgICAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XG4gICAgKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yKGxhbmd1YWdlcywgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIHZhbGlkYXRlIGlmIHZhbHVlIGlzIG5vdCB0aGUgaW52YWxpZFZhbHVlXG4gICAgICogQHBhcmFtIGludmFsaWRWYWx1ZSBWYWx1ZSB0aGF0IGNvbnRyb2wgc2hvdWxkIG5vdCBoYXZlXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBuZWFyIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGF0aW9uIG1lc3NhZ2UgaW5zaWRlIHRoZSB2YWxpZGF0aW9uIHN1bW1hcnlcbiAgICAgKiBAcmV0dXJucyBWYWxpZGF0b3JGbiB2YWxpZGF0b3IgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG5vdGVxdWFscyhpbnZhbGlkVmFsdWU6IGFueSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IoaW52YWxpZFZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0aW9uIHdpdGggYSBSZWdFeCBwYXR0ZXJuXG4gICAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggcGF0dGVybiB0aGF0IHRoZSB2YWx1ZSBtdXN0IG1hdGNoXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcGF0dGVybihwYXR0ZXJuOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHBhdHRlcm5WYWxpZGF0b3IocGF0dGVybiwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIGZvciBSZXF1aXJlZCBTdGF0ZVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGF0aW9uIG1lc3NhZ2UgdGhhdFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIHRoYXQgaXMgZGlzcGxheWVkIGluIHRoZSBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlcXVpcmVkKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmVkVmFsaWRhdG9yKHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIFN0YXRpYyBNZXRob2RzXG59XG5cbi8vICNlbmRyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuIl0sIm1hcHBpbmdzIjoiMjFtQkFnQlM7QUFBQUEsYUFBQSxTQUFBQSxDQUFBLFNBQUFDLGNBQUEsV0FBQUEsY0FBQSxFQUFBRCxhQUFBLEdBZlQsT0FBU0UsY0FBYyxLQUFRLG1CQUFtQixDQUNsRCxPQUFTQyxvQkFBb0IsS0FBUSxvQkFBb0IsQ0FDekQsT0FBU0Msb0JBQW9CLEtBQVEseUJBQXlCLENBQzlELE9BQVNDLGdCQUFnQixLQUFRLHFC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
@@ -1,3 +1,13 @@
1
- function cov_ytnvk6ylw(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/validation/validationerrorcreator.mjs";var hash="2cf90f618a5d66fe33fff3eeba4498494e09dde7";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/validation/validationerrorcreator.mjs",statementMap:{"0":{start:{line:3,column:17},end:{line:3,column:102}},"1":{start:{line:4,column:4},end:{line:8,column:5}},"2":{start:{line:5,column:8},end:{line:7,column:11}},"3":{start:{line:6,column:12},end:{line:6,column:38}},"4":{start:{line:9,column:4},end:{line:9,column:33}}},fnMap:{"0":{name:"CreateValidationError",decl:{start:{line:2,column:16},end:{line:2,column:37}},loc:{start:{line:2,column:124},end:{line:10,column:1}},line:2},"1":{name:"(anonymous_1)",decl:{start:{line:5,column:27},end:{line:5,column:28}},loc:{start:{line:5,column:37},end:{line:7,column:9}},line:5}},branchMap:{"0":{loc:{start:{line:2,column:100},end:{line:2,column:122}},type:"default-arg",locations:[{start:{line:2,column:113},end:{line:2,column:122}}],line:2},"1":{loc:{start:{line:4,column:4},end:{line:8,column:5}},type:"if",locations:[{start:{line:4,column:4},end:{line:8,column:5}},{start:{line:4,column:4},end:{line:8,column:5}}],line:4},"2":{loc:{start:{line:4,column:8},end:{line:4,column:78}},type:"binary-expr",locations:[{start:{line:4,column:8},end:{line:4,column:27}},{start:{line:4,column:31},end:{line:4,column:55}},{start:{line:4,column:59},end:{line:4,column:78}}],line:4}},s:{"0":0,"1":0,"2":0,"3":0,"4":0},f:{"0":0,"1":0},b:{"0":[0],"1":[0,0],"2":[0,0,0]},inputSourceMap:{version:3,file:"validationerrorcreator.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/validation/validationerrorcreator.ts"],names:[],mappings:"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,eAAuB,EACvB,gCAAwC,EACxC,aAA+B,IAAI,GAAG,EAAe;IAErD,MAAM,IAAI,GAAwB,IAAI,mBAAmB,CACvD,SAAS,EACT,eAAe,EACf,gCAAgC,CACjC,CAAC;IAEF,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE;QAC1E,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC",sourcesContent:["import { ValidationErrorItem } from './validationerroritem';\n\nexport function CreateValidationError(\n errorType: string,\n errorMessageKey: string,\n errorMessageValidationSummaryKey: string,\n parameters: Map<string, any> = new Map<string, any>()\n): any {\n const item: ValidationErrorItem = new ValidationErrorItem(\n errorType,\n errorMessageKey,\n errorMessageValidationSummaryKey\n );\n\n if (parameters !== null && parameters !== undefined && parameters.size > 0) {\n parameters.forEach((v, k) => {\n item.parameters.set(k, v);\n });\n }\n\n return { [errorType]: item };\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"2cf90f618a5d66fe33fff3eeba4498494e09dde7"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
- cov_ytnvk6ylw=function(){return actualCoverage;};}return actualCoverage;}cov_ytnvk6ylw();import{ValidationErrorItem}from'./validationerroritem';export function CreateValidationError(errorType,errorMessageKey,errorMessageValidationSummaryKey,parameters=(cov_ytnvk6ylw().b[0][0]++,new Map())){cov_ytnvk6ylw().f[0]++;const item=(cov_ytnvk6ylw().s[0]++,new ValidationErrorItem(errorType,errorMessageKey,errorMessageValidationSummaryKey));cov_ytnvk6ylw().s[1]++;if((cov_ytnvk6ylw().b[2][0]++,parameters!==null)&&(cov_ytnvk6ylw().b[2][1]++,parameters!==undefined)&&(cov_ytnvk6ylw().b[2][2]++,parameters.size>0)){cov_ytnvk6ylw().b[1][0]++;cov_ytnvk6ylw().s[2]++;parameters.forEach((v,k)=>{cov_ytnvk6ylw().f[1]++;cov_ytnvk6ylw().s[3]++;item.parameters.set(k,v);});}else{cov_ytnvk6ylw().b[1][1]++;}cov_ytnvk6ylw().s[4]++;return{[errorType]:item};}//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbmVycm9yY3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdGlvbmVycm9yY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLFNBQWlCLEVBQ2pCLGVBQXVCLEVBQ3ZCLGdDQUF3QyxFQUN4QyxhQUErQixJQUFJLEdBQUcsRUFBZTtJQUVyRCxNQUFNLElBQUksR0FBd0IsSUFBSSxtQkFBbUIsQ0FDdkQsU0FBUyxFQUNULGVBQWUsRUFDZixnQ0FBZ0MsQ0FDakMsQ0FBQztJQUVGLElBQUksVUFBVSxLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1FBQzFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yaXRlbSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXG4gIGVycm9yVHlwZTogc3RyaW5nLFxuICBlcnJvck1lc3NhZ2VLZXk6IHN0cmluZyxcbiAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcbiAgcGFyYW1ldGVyczogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KClcbik6IGFueSB7XG4gIGNvbnN0IGl0ZW06IFZhbGlkYXRpb25FcnJvckl0ZW0gPSBuZXcgVmFsaWRhdGlvbkVycm9ySXRlbShcbiAgICBlcnJvclR5cGUsXG4gICAgZXJyb3JNZXNzYWdlS2V5LFxuICAgIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5XG4gICk7XG5cbiAgaWYgKHBhcmFtZXRlcnMgIT09IG51bGwgJiYgcGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkICYmIHBhcmFtZXRlcnMuc2l6ZSA+IDApIHtcbiAgICBwYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgIGl0ZW0ucGFyYW1ldGVycy5zZXQoaywgdik7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4geyBbZXJyb3JUeXBlXTogaXRlbSB9O1xufVxuIl19
3
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWYWxpZGF0aW9uRXJyb3JJdGVtIiwiQ3JlYXRlVmFsaWRhdGlvbkVycm9yIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlS2V5IiwiZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXkiLCJwYXJhbWV0ZXJzIiwiY292X3l0bnZrNnlsdyIsImIiLCJNYXAiLCJmIiwiaXRlbSIsInMiLCJ1bmRlZmluZWQiLCJzaXplIiwiZm9yRWFjaCIsInYiLCJrIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvdmFsaWRhdGlvbi92YWxpZGF0aW9uZXJyb3JjcmVhdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRpb25FcnJvckl0ZW0gfSBmcm9tICcuL3ZhbGlkYXRpb25lcnJvcml0ZW0nO1xuXG5leHBvcnQgZnVuY3Rpb24gQ3JlYXRlVmFsaWRhdGlvbkVycm9yKFxuICBlcnJvclR5cGU6IHN0cmluZyxcbiAgZXJyb3JNZXNzYWdlS2V5OiBzdHJpbmcsXG4gIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5OiBzdHJpbmcsXG4gIHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpXG4pOiBhbnkge1xuICBjb25zdCBpdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gbmV3IFZhbGlkYXRpb25FcnJvckl0ZW0oXG4gICAgZXJyb3JUeXBlLFxuICAgIGVycm9yTWVzc2FnZUtleSxcbiAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleVxuICApO1xuXG4gIGlmIChwYXJhbWV0ZXJzICE9PSBudWxsICYmIHBhcmFtZXRlcnMgIT09IHVuZGVmaW5lZCAmJiBwYXJhbWV0ZXJzLnNpemUgPiAwKSB7XG4gICAgcGFyYW1ldGVycy5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICBpdGVtLnBhcmFtZXRlcnMuc2V0KGssIHYpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHsgW2Vycm9yVHlwZV06IGl0ZW0gfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijt5RkFBQSxPQUFTQSxtQkFBbUIsS0FBUSx1QkFBdUIsQ0FFM0QsTUFBTSxTQUFVLENBQUFDLHFCQUFxQkEsQ0FDbkNDLFNBQWlCLENBQ2pCQyxlQUF1QixDQUN2QkMsZ0NBQXdDLENBQ3hDQyxVQUFBLEVBQUFDLGFBQUEsR0FBQUMsQ0FBQSxTQUErQixHQUFJLENBQUFDLEdBQUcsRUFBZSxHQUFBRixhQUFBLEdBQUFHLENBQUEsTUFFckQsS0FBTSxDQUFBQyxJQUFJLEVBQUFKLGFBQUEsR0FBQUssQ0FBQSxNQUF3QixHQUFJLENBQUFYLG1CQUFtQixDQUN2REUsU0FBUyxDQUNUQyxlQUFlLENBQ2ZDLGdDQUFnQyxDQUNqQyxFQUFDRSxhQUFBLEdBQUFLLENBQUEsTUFFRixHQUFJLENBQUFMLGFBQUEsR0FBQUMsQ0FBQSxTQUFBRixVQUFVLEdBQUssSUFBSSxJQUFBQyxhQUFBLEdBQUFDLENBQUEsU0FBSUYsVUFBVSxHQUFLTyxTQUFTLElBQUFOLGFBQUEsR0FBQUMsQ0FBQSxTQUFJRixVQUFVLENBQUNRLElBQUksQ0FBRyxDQUFDLEVBQUUsQ0FBQVAsYUFBQSxHQUFBQyxDQUFBLFFBQUFELENBQUEsZ0JBQUFLLENBQUEsTUFDMUVOLFVBQVUsQ0FBQ1MsT0FBTyxDQUFDLENBQUNDLENBQUMsQ0FBRUMsQ0FBQyxHQUFJLENBQUFWLGFBQUEsR0FBQUcsQ0FBQSxLQUFBSCxDQUFBLGdCQUFBSyxDQUFBLE1BQzFCRCxJQUFJLENBQUNMLFVBQVUsQ0FBQ1ksR0FBRyxDQUFDRCxDQUFDLENBQUVELENBQUMsQ0FBQyxDQUMzQixDQUFDLENBQUMsQyxDQUNILEtBQUFULGFBQUEsR0FBQUMsQ0FBQSxVQUFBRCxhQUFBLEdBQUFLLENBQUEsTUFFRCxNQUFPLENBQUUsQ0FBQ1QsU0FBUyxFQUFHUSxJQUFJLENBQUUsQ0FDOUIsQyIsImlnbm9yZUxpc3QiOltdfQ==
1
+ function cov_ytnvk6ylw(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/validation/validationerrorcreator.mjs";var hash="6d9154a9b5e3930707b9b9c7631ff49ac4f2b370";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/validation/validationerrorcreator.mjs",statementMap:{"0":{start:{line:13,column:17},end:{line:13,column:102}},"1":{start:{line:14,column:4},end:{line:18,column:5}},"2":{start:{line:15,column:8},end:{line:17,column:11}},"3":{start:{line:16,column:12},end:{line:16,column:38}},"4":{start:{line:19,column:4},end:{line:19,column:33}}},fnMap:{"0":{name:"CreateValidationError",decl:{start:{line:12,column:16},end:{line:12,column:37}},loc:{start:{line:12,column:124},end:{line:20,column:1}},line:12},"1":{name:"(anonymous_1)",decl:{start:{line:15,column:27},end:{line:15,column:28}},loc:{start:{line:15,column:37},end:{line:17,column:9}},line:15}},branchMap:{"0":{loc:{start:{line:12,column:100},end:{line:12,column:122}},type:"default-arg",locations:[{start:{line:12,column:113},end:{line:12,column:122}}],line:12},"1":{loc:{start:{line:14,column:4},end:{line:18,column:5}},type:"if",locations:[{start:{line:14,column:4},end:{line:18,column:5}},{start:{line:14,column:4},end:{line:18,column:5}}],line:14},"2":{loc:{start:{line:14,column:8},end:{line:14,column:78}},type:"binary-expr",locations:[{start:{line:14,column:8},end:{line:14,column:27}},{start:{line:14,column:31},end:{line:14,column:55}},{start:{line:14,column:59},end:{line:14,column:78}}],line:14}},s:{"0":0,"1":0,"2":0,"3":0,"4":0},f:{"0":0,"1":0},b:{"0":[0],"1":[0,0],"2":[0,0,0]},inputSourceMap:{version:3,file:"validationerrorcreator.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/validation/validationerrorcreator.ts"],names:[],mappings:"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,6BAA6B;AAE7B;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACjC,SAAiB,EACjB,eAAuB,EACvB,gCAAwC,EACxC,aAA+B,IAAI,GAAG,EAAe;IAErD,MAAM,IAAI,GAAwB,IAAI,mBAAmB,CACrD,SAAS,EACT,eAAe,EACf,gCAAgC,CACnC,CAAC;IAEF,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE;QACxE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;KACN;IAED,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,gCAAgC",sourcesContent:["import { ValidationErrorItem } from './validationerroritem';\n\n// #region Exported Functions\n\n/**\n * Creates a structured validation error object for validation result reporting.\n *\n * @param errorType Identifier for the validation error type (e.g. 'required', 'invalid').\n * @param errorMessageKey Resource key used for the control-level error text.\n * @param errorMessageValidationSummaryKey Resource key used for summary-level error text.\n * @param parameters Optional placeholder parameters to replace in error messages.\n * @returns The generated validation error object.\n */\nexport function CreateValidationError(\n errorType: string,\n errorMessageKey: string,\n errorMessageValidationSummaryKey: string,\n parameters: Map<string, any> = new Map<string, any>()\n): any {\n const item: ValidationErrorItem = new ValidationErrorItem(\n errorType,\n errorMessageKey,\n errorMessageValidationSummaryKey\n );\n\n if (parameters !== null && parameters !== undefined && parameters.size > 0) {\n parameters.forEach((v, k) => {\n item.parameters.set(k, v);\n });\n }\n\n return { [errorType]: item };\n}\n\n// #endregion Exported Functions\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"6d9154a9b5e3930707b9b9c7631ff49ac4f2b370"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_ytnvk6ylw=function(){return actualCoverage;};}return actualCoverage;}cov_ytnvk6ylw();import{ValidationErrorItem}from'./validationerroritem';// #region Exported Functions
3
+ /**
4
+ * Creates a structured validation error object for validation result reporting.
5
+ *
6
+ * @param errorType Identifier for the validation error type (e.g. 'required', 'invalid').
7
+ * @param errorMessageKey Resource key used for the control-level error text.
8
+ * @param errorMessageValidationSummaryKey Resource key used for summary-level error text.
9
+ * @param parameters Optional placeholder parameters to replace in error messages.
10
+ * @returns The generated validation error object.
11
+ */export function CreateValidationError(errorType,errorMessageKey,errorMessageValidationSummaryKey,parameters=(cov_ytnvk6ylw().b[0][0]++,new Map())){cov_ytnvk6ylw().f[0]++;const item=(cov_ytnvk6ylw().s[0]++,new ValidationErrorItem(errorType,errorMessageKey,errorMessageValidationSummaryKey));cov_ytnvk6ylw().s[1]++;if((cov_ytnvk6ylw().b[2][0]++,parameters!==null)&&(cov_ytnvk6ylw().b[2][1]++,parameters!==undefined)&&(cov_ytnvk6ylw().b[2][2]++,parameters.size>0)){cov_ytnvk6ylw().b[1][0]++;cov_ytnvk6ylw().s[2]++;parameters.forEach((v,k)=>{cov_ytnvk6ylw().f[1]++;cov_ytnvk6ylw().s[3]++;item.parameters.set(k,v);});}else{cov_ytnvk6ylw().b[1][1]++;}cov_ytnvk6ylw().s[4]++;return{[errorType]:item};}// #endregion Exported Functions
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbmVycm9yY3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdGlvbmVycm9yY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCw2QkFBNkI7QUFFN0I7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ2pDLFNBQWlCLEVBQ2pCLGVBQXVCLEVBQ3ZCLGdDQUF3QyxFQUN4QyxhQUErQixJQUFJLEdBQUcsRUFBZTtJQUVyRCxNQUFNLElBQUksR0FBd0IsSUFBSSxtQkFBbUIsQ0FDckQsU0FBUyxFQUNULGVBQWUsRUFDZixnQ0FBZ0MsQ0FDbkMsQ0FBQztJQUVGLElBQUksVUFBVSxLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1FBQ3hFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0tBQ047SUFFRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yaXRlbSc7XG5cbi8vICNyZWdpb24gRXhwb3J0ZWQgRnVuY3Rpb25zXG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0cnVjdHVyZWQgdmFsaWRhdGlvbiBlcnJvciBvYmplY3QgZm9yIHZhbGlkYXRpb24gcmVzdWx0IHJlcG9ydGluZy5cbiAqXG4gKiBAcGFyYW0gZXJyb3JUeXBlIElkZW50aWZpZXIgZm9yIHRoZSB2YWxpZGF0aW9uIGVycm9yIHR5cGUgKGUuZy4gJ3JlcXVpcmVkJywgJ2ludmFsaWQnKS5cbiAqIEBwYXJhbSBlcnJvck1lc3NhZ2VLZXkgUmVzb3VyY2Uga2V5IHVzZWQgZm9yIHRoZSBjb250cm9sLWxldmVsIGVycm9yIHRleHQuXG4gKiBAcGFyYW0gZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXkgUmVzb3VyY2Uga2V5IHVzZWQgZm9yIHN1bW1hcnktbGV2ZWwgZXJyb3IgdGV4dC5cbiAqIEBwYXJhbSBwYXJhbWV0ZXJzIE9wdGlvbmFsIHBsYWNlaG9sZGVyIHBhcmFtZXRlcnMgdG8gcmVwbGFjZSBpbiBlcnJvciBtZXNzYWdlcy5cbiAqIEByZXR1cm5zIFRoZSBnZW5lcmF0ZWQgdmFsaWRhdGlvbiBlcnJvciBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXG4gICAgZXJyb3JUeXBlOiBzdHJpbmcsXG4gICAgZXJyb3JNZXNzYWdlS2V5OiBzdHJpbmcsXG4gICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKVxuKTogYW55IHtcbiAgICBjb25zdCBpdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gbmV3IFZhbGlkYXRpb25FcnJvckl0ZW0oXG4gICAgICAgIGVycm9yVHlwZSxcbiAgICAgICAgZXJyb3JNZXNzYWdlS2V5LFxuICAgICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleVxuICAgICk7XG5cbiAgICBpZiAocGFyYW1ldGVycyAhPT0gbnVsbCAmJiBwYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQgJiYgcGFyYW1ldGVycy5zaXplID4gMCkge1xuICAgICAgICBwYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgIGl0ZW0ucGFyYW1ldGVycy5zZXQoaywgdik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7IFtlcnJvclR5cGVdOiBpdGVtIH07XG59XG5cbi8vICNlbmRyZWdpb24gRXhwb3J0ZWQgRnVuY3Rpb25zXG4iXX0=
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfeXRudms2eWx3IiwiYWN0dWFsQ292ZXJhZ2UiLCJWYWxpZGF0aW9uRXJyb3JJdGVtIiwiQ3JlYXRlVmFsaWRhdGlvbkVycm9yIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlS2V5IiwiZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXkiLCJwYXJhbWV0ZXJzIiwiYiIsIk1hcCIsImYiLCJpdGVtIiwicyIsInVuZGVmaW5lZCIsInNpemUiLCJmb3JFYWNoIiwidiIsImsiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yaXRlbSc7XG5cbi8vICNyZWdpb24gRXhwb3J0ZWQgRnVuY3Rpb25zXG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0cnVjdHVyZWQgdmFsaWRhdGlvbiBlcnJvciBvYmplY3QgZm9yIHZhbGlkYXRpb24gcmVzdWx0IHJlcG9ydGluZy5cbiAqXG4gKiBAcGFyYW0gZXJyb3JUeXBlIElkZW50aWZpZXIgZm9yIHRoZSB2YWxpZGF0aW9uIGVycm9yIHR5cGUgKGUuZy4gJ3JlcXVpcmVkJywgJ2ludmFsaWQnKS5cbiAqIEBwYXJhbSBlcnJvck1lc3NhZ2VLZXkgUmVzb3VyY2Uga2V5IHVzZWQgZm9yIHRoZSBjb250cm9sLWxldmVsIGVycm9yIHRleHQuXG4gKiBAcGFyYW0gZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXkgUmVzb3VyY2Uga2V5IHVzZWQgZm9yIHN1bW1hcnktbGV2ZWwgZXJyb3IgdGV4dC5cbiAqIEBwYXJhbSBwYXJhbWV0ZXJzIE9wdGlvbmFsIHBsYWNlaG9sZGVyIHBhcmFtZXRlcnMgdG8gcmVwbGFjZSBpbiBlcnJvciBtZXNzYWdlcy5cbiAqIEByZXR1cm5zIFRoZSBnZW5lcmF0ZWQgdmFsaWRhdGlvbiBlcnJvciBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXG4gICAgZXJyb3JUeXBlOiBzdHJpbmcsXG4gICAgZXJyb3JNZXNzYWdlS2V5OiBzdHJpbmcsXG4gICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKVxuKTogYW55IHtcbiAgICBjb25zdCBpdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gbmV3IFZhbGlkYXRpb25FcnJvckl0ZW0oXG4gICAgICAgIGVycm9yVHlwZSxcbiAgICAgICAgZXJyb3JNZXNzYWdlS2V5LFxuICAgICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleVxuICAgICk7XG5cbiAgICBpZiAocGFyYW1ldGVycyAhPT0gbnVsbCAmJiBwYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQgJiYgcGFyYW1ldGVycy5zaXplID4gMCkge1xuICAgICAgICBwYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgIGl0ZW0ucGFyYW1ldGVycy5zZXQoaywgdik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7IFtlcnJvclR5cGVdOiBpdGVtIH07XG59XG5cbi8vICNlbmRyZWdpb24gRXhwb3J0ZWQgRnVuY3Rpb25zXG4iXSwibWFwcGluZ3MiOiI0NUhBMkJZO0FBQUFBLGFBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsYUFBQSxHQTNCWixPQUFTRSxtQkFBbUIsS0FBUSx1QkFBdUIsQ0FFM0Q7QUFFQTs7Ozs7Ozs7R0FTQSxNQUFNLFNBQVUsQ0FBQUMscUJBQXFCQSxDQUNqQ0MsU0FBaUIsQ0FDakJDLGVBQXVCLENBQ3ZCQyxnQ0FBd0MsQ0FDeENDLFVBQUEsRUFBQVAsYUFBQSxHQUFBUSxDQUFBLFNBQStCLEdBQUksQ0FBQUMsR0FBRyxFQUFlLEdBQUFULGFBQUEsR0FBQVUsQ0FBQSxNQUVyRCxLQUFNLENBQUFDLElBQUksRUFBQVgsYUFBQSxHQUFBWSxDQUFBLE1BQXdCLEdBQUksQ0FBQVYsbUJBQW1CLENBQ3JERSxTQUFTLENBQ1RDLGVBQWUsQ0FDZkMsZ0NBQWdDLENBQ25DLEVBQUNOLGFBQUEsR0FBQVksQ0FBQSxNQUVGLEdBQUksQ0FBQVosYUFBQSxHQUFBUSxDQUFBLFNBQUFELFVBQVUsR0FBSyxJQUFJLElBQUFQLGFBQUEsR0FBQVEsQ0FBQSxTQUFJRCxVQUFVLEdBQUtNLFNBQVMsSUFBQWIsYUFBQSxHQUFBUSxDQUFBLFNBQUlELFVBQVUsQ0FBQ08sSUFBSSxDQUFHLENBQUMsRUFBRSxDQUFBZCxhQUFBLEdBQUFRLENBQUEsUUFBQVIsQ0FBQSxnQkFBQVksQ0FBQSxNQUN4RUwsVUFBVSxDQUFDUSxPQUFPLENBQUMsQ0FBQ0MsQ0FBQyxDQUFFQyxDQUFDLEdBQUksQ0FBQWpCLGFBQUEsR0FBQVUsQ0FBQSxLQUFBVixDQUFBLGdCQUFBWSxDQUFBLE1BQ3hCRCxJQUFJLENBQUNKLFVBQVUsQ0FBQ1csR0FBRyxDQUFDRCxDQUFDLENBQUVELENBQUMsQ0FBQyxDQUM3QixDQUFDLENBQUMsQyxDQUNMLEtBQUFoQixhQUFBLEdBQUFRLENBQUEsVUFBQVIsYUFBQSxHQUFBWSxDQUFBLE1BRUQsTUFBTyxDQUFFLENBQUNSLFNBQVMsRUFBR08sSUFBSSxDQUFFLENBQ2hDLENBRUEiLCJpZ25vcmVMaXN0IjpbXX0=