@wavemaker/app-ng-runtime 11.13.0-rc.6255 → 11.14.0-rc.232

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 (1026) hide show
  1. package/build-task/bundles/index.umd.js +34 -5
  2. package/build-task/esm2022/basic/anchor/anchor.build.mjs +15 -0
  3. package/build-task/esm2022/basic/audio/audio.build.mjs +10 -0
  4. package/build-task/esm2022/basic/html/html.build.mjs +15 -0
  5. package/build-task/esm2022/basic/icon/icon.build.mjs +10 -0
  6. package/build-task/esm2022/basic/iframe/iframe.build.mjs +10 -0
  7. package/build-task/esm2022/basic/label/label.build.mjs +25 -0
  8. package/build-task/esm2022/basic/picture/picture.build.mjs +14 -0
  9. package/build-task/esm2022/basic/spinner/spinner.build.mjs +15 -0
  10. package/build-task/esm2022/basic/video/video.build.mjs +10 -0
  11. package/build-task/esm2022/data/form/form-field/form-field.build.mjs +8 -3
  12. package/build-task/esm2022/data/form/form.build.mjs +8 -1
  13. package/build-task/esm2022/data/table/table-column/table-column.build.mjs +14 -3
  14. package/build-task/esm2022/input/default/checkbox/checkbox.build.mjs +2 -2
  15. package/build-task/esm2022/page/page-content/page-content.build.mjs +8 -2
  16. package/build-task/esm2022/public_api.mjs +10 -10
  17. package/build-task/fesm2022/index.mjs +36 -7
  18. package/build-task/fesm2022/index.mjs.map +1 -1
  19. package/build-task/package.json +3 -6
  20. package/build-task/public_api.d.ts +9 -9
  21. package/components/advanced/carousel/bundles/index.umd.js +33 -38
  22. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +16 -16
  23. package/components/advanced/carousel/esm2022/carousel.directive.mjs +19 -24
  24. package/components/advanced/carousel/fesm2022/index.mjs +34 -39
  25. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  26. package/components/advanced/carousel/package.json +0 -3
  27. package/components/advanced/custom/bundles/index.umd.js +48 -48
  28. package/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +1 -1
  29. package/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +31 -31
  30. package/components/advanced/custom/esm2022/custom-widget.directive.mjs +15 -15
  31. package/components/advanced/custom/fesm2022/index.mjs +45 -45
  32. package/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  33. package/components/advanced/custom/package.json +0 -3
  34. package/components/advanced/login/bundles/index.umd.js +33 -53
  35. package/components/advanced/login/esm2022/login.component.mjs +26 -47
  36. package/components/advanced/login/fesm2022/index.mjs +27 -47
  37. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  38. package/components/advanced/login/login.component.d.ts +1 -1
  39. package/components/advanced/login/package.json +0 -3
  40. package/components/advanced/marquee/bundles/index.umd.js +19 -19
  41. package/components/advanced/marquee/esm2022/marquee.directive.mjs +20 -20
  42. package/components/advanced/marquee/fesm2022/index.mjs +20 -20
  43. package/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  44. package/components/advanced/marquee/package.json +0 -3
  45. package/components/base/bundles/index.umd.js +4275 -4244
  46. package/components/base/esm2022/pipes/custom-pipes.mjs +14 -12
  47. package/components/base/esm2022/pipes/wm-pipe.mjs +3 -3
  48. package/components/base/esm2022/public_api.mjs +1 -2
  49. package/components/base/esm2022/utils/widget-utils.mjs +4 -2
  50. package/components/base/esm2022/widgets/common/container/container.directive.mjs +154 -1
  51. package/components/base/esm2022/widgets/common/container/container.props.mjs +7 -2
  52. package/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +1 -1
  53. package/components/base/fesm2022/index.mjs +4279 -4248
  54. package/components/base/fesm2022/index.mjs.map +1 -1
  55. package/components/base/package.json +2 -2
  56. package/components/base/pipes/custom-pipes.d.ts +4 -2
  57. package/components/base/pipes/wm-pipe.d.ts +1 -1
  58. package/components/base/public_api.d.ts +0 -1
  59. package/components/base/widgets/common/container/container.directive.d.ts +9 -0
  60. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +0 -2
  61. package/components/basic/anchor/bundles/index.umd.js +192 -0
  62. package/components/basic/anchor/esm2022/anchor.component.mjs +143 -0
  63. package/components/basic/anchor/esm2022/anchor.props.mjs +27 -0
  64. package/components/basic/anchor/esm2022/index.mjs +5 -0
  65. package/components/basic/anchor/esm2022/public_api.mjs +2 -0
  66. package/components/basic/anchor/fesm2022/index.mjs +175 -0
  67. package/components/basic/anchor/fesm2022/index.mjs.map +1 -0
  68. package/components/basic/{progress → anchor}/index.d.ts +1 -1
  69. package/components/basic/{default → anchor}/package.json +1 -4
  70. package/components/basic/anchor/public_api.d.ts +1 -0
  71. package/components/basic/audio/bundles/index.umd.js +83 -0
  72. package/components/basic/audio/esm2022/audio.component.mjs +41 -0
  73. package/components/basic/audio/esm2022/audio.props.mjs +19 -0
  74. package/components/{input/epoch → basic/audio}/esm2022/index.mjs +1 -1
  75. package/components/basic/audio/esm2022/public_api.mjs +2 -0
  76. package/components/basic/audio/fesm2022/index.mjs +65 -0
  77. package/components/basic/audio/fesm2022/index.mjs.map +1 -0
  78. package/components/{input/epoch → basic/audio}/index.d.ts +1 -1
  79. package/components/{input/default → basic/audio}/package.json +2 -5
  80. package/components/basic/audio/public_api.d.ts +1 -0
  81. package/components/basic/html/bundles/index.umd.js +110 -0
  82. package/components/basic/html/esm2022/html.directive.mjs +76 -0
  83. package/components/basic/html/esm2022/html.props.mjs +12 -0
  84. package/components/basic/html/esm2022/index.mjs +5 -0
  85. package/components/basic/html/esm2022/public_api.mjs +2 -0
  86. package/components/basic/html/fesm2022/index.mjs +93 -0
  87. package/components/basic/html/fesm2022/index.mjs.map +1 -0
  88. package/components/basic/{default → html}/index.d.ts +1 -1
  89. package/components/{input/epoch → basic/html}/package.json +1 -4
  90. package/components/basic/html/public_api.d.ts +1 -0
  91. package/components/basic/icon/bundles/index.umd.js +80 -0
  92. package/components/basic/icon/esm2022/icon.component.mjs +38 -0
  93. package/components/basic/icon/esm2022/icon.props.mjs +19 -0
  94. package/components/basic/icon/esm2022/index.mjs +5 -0
  95. package/components/basic/icon/esm2022/public_api.mjs +2 -0
  96. package/components/basic/icon/fesm2022/index.mjs +62 -0
  97. package/components/basic/icon/fesm2022/index.mjs.map +1 -0
  98. package/components/{input/default → basic/icon}/index.d.ts +1 -1
  99. package/components/basic/{progress → icon}/package.json +1 -4
  100. package/components/basic/icon/public_api.d.ts +1 -0
  101. package/components/basic/iframe/.npmignore +2 -0
  102. package/components/basic/iframe/bundles/index.umd.js +101 -0
  103. package/components/basic/iframe/esm2022/iframe.component.mjs +65 -0
  104. package/components/basic/iframe/esm2022/iframe.props.mjs +15 -0
  105. package/components/basic/iframe/esm2022/index.mjs +5 -0
  106. package/components/basic/iframe/esm2022/public_api.mjs +2 -0
  107. package/components/basic/iframe/fesm2022/index.mjs +84 -0
  108. package/components/basic/iframe/fesm2022/index.mjs.map +1 -0
  109. package/components/basic/iframe/index.d.ts +5 -0
  110. package/components/basic/iframe/package.json +20 -0
  111. package/components/basic/iframe/public_api.d.ts +1 -0
  112. package/components/basic/label/.npmignore +2 -0
  113. package/components/basic/label/bundles/index.umd.js +109 -0
  114. package/components/basic/label/esm2022/index.mjs +5 -0
  115. package/components/basic/label/esm2022/label.directive.mjs +71 -0
  116. package/components/basic/label/esm2022/label.props.mjs +17 -0
  117. package/components/basic/label/esm2022/public_api.mjs +2 -0
  118. package/components/basic/label/fesm2022/index.mjs +93 -0
  119. package/components/basic/label/fesm2022/index.mjs.map +1 -0
  120. package/components/basic/label/index.d.ts +5 -0
  121. package/components/basic/{default/label → label}/label.directive.d.ts +1 -1
  122. package/components/basic/label/package.json +20 -0
  123. package/components/basic/label/public_api.d.ts +1 -0
  124. package/components/basic/picture/.npmignore +2 -0
  125. package/components/basic/picture/bundles/index.umd.js +138 -0
  126. package/components/basic/{default → picture}/esm2022/index.mjs +1 -1
  127. package/components/basic/picture/esm2022/picture.directive.mjs +93 -0
  128. package/components/basic/picture/esm2022/picture.props.mjs +23 -0
  129. package/components/basic/picture/esm2022/public_api.mjs +2 -0
  130. package/components/basic/picture/fesm2022/index.mjs +121 -0
  131. package/components/basic/picture/fesm2022/index.mjs.map +1 -0
  132. package/components/basic/picture/index.d.ts +5 -0
  133. package/components/basic/picture/package.json +20 -0
  134. package/components/basic/picture/public_api.d.ts +1 -0
  135. package/components/basic/progress/progress-bar/.npmignore +2 -0
  136. package/components/basic/progress/progress-bar/bundles/index.umd.js +170 -0
  137. package/components/basic/progress/progress-bar/esm2022/index.mjs +5 -0
  138. package/components/basic/progress/progress-bar/esm2022/progress-bar.component.mjs +130 -0
  139. package/components/basic/progress/{esm2022/progress-bar → progress-bar/esm2022}/progress-bar.props.mjs +1 -1
  140. package/components/basic/progress/progress-bar/esm2022/public_api.mjs +2 -0
  141. package/components/basic/progress/progress-bar/fesm2022/index.mjs +154 -0
  142. package/components/basic/progress/progress-bar/fesm2022/index.mjs.map +1 -0
  143. package/components/basic/progress/progress-bar/index.d.ts +5 -0
  144. package/components/basic/progress/progress-bar/package.json +20 -0
  145. package/components/basic/progress/progress-bar/public_api.d.ts +1 -0
  146. package/components/basic/progress/progress-circle/.npmignore +2 -0
  147. package/components/basic/progress/progress-circle/bundles/index.umd.js +161 -0
  148. package/components/basic/progress/progress-circle/esm2022/index.mjs +5 -0
  149. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +120 -0
  150. package/components/basic/progress/{esm2022/progress-circle → progress-circle/esm2022}/progress-circle.props.mjs +1 -1
  151. package/components/basic/progress/progress-circle/esm2022/public_api.mjs +2 -0
  152. package/components/basic/progress/progress-circle/fesm2022/index.mjs +145 -0
  153. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -0
  154. package/components/basic/progress/progress-circle/index.d.ts +5 -0
  155. package/components/basic/progress/progress-circle/package.json +20 -0
  156. package/components/basic/progress/progress-circle/public_api.d.ts +1 -0
  157. package/components/basic/progress/progress-utils/.npmignore +2 -0
  158. package/components/basic/progress/progress-utils/bundles/index.umd.js +35 -0
  159. package/components/basic/progress/progress-utils/esm2022/index.mjs +5 -0
  160. package/components/basic/progress/progress-utils/esm2022/progress-utils.mjs +25 -0
  161. package/components/basic/progress/progress-utils/esm2022/public_api.mjs +2 -0
  162. package/components/basic/progress/progress-utils/fesm2022/index.mjs +32 -0
  163. package/components/basic/progress/progress-utils/fesm2022/index.mjs.map +1 -0
  164. package/components/basic/progress/progress-utils/index.d.ts +5 -0
  165. package/components/basic/progress/progress-utils/package.json +20 -0
  166. package/components/basic/progress/progress-utils/public_api.d.ts +1 -0
  167. package/components/basic/rich-text-editor/bundles/index.umd.js +23 -40
  168. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +19 -38
  169. package/components/basic/rich-text-editor/fesm2022/index.mjs +21 -39
  170. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  171. package/components/basic/rich-text-editor/package.json +0 -3
  172. package/components/basic/rich-text-editor/rich-text-editor.component.d.ts +1 -1
  173. package/components/basic/search/bundles/index.umd.js +109 -313
  174. package/components/basic/search/esm2022/scrollable.directive.mjs +13 -14
  175. package/components/basic/search/esm2022/search.component.mjs +40 -246
  176. package/components/basic/search/fesm2022/index.mjs +52 -256
  177. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  178. package/components/basic/search/package.json +0 -3
  179. package/components/basic/search/scrollable.directive.d.ts +2 -3
  180. package/components/basic/search/search.component.d.ts +1 -1
  181. package/components/basic/spinner/.npmignore +2 -0
  182. package/components/basic/spinner/bundles/index.umd.js +118 -0
  183. package/components/{input/default → basic/spinner}/esm2022/index.mjs +1 -1
  184. package/components/basic/spinner/esm2022/public_api.mjs +2 -0
  185. package/components/basic/spinner/esm2022/spinner.component.mjs +79 -0
  186. package/components/basic/spinner/esm2022/spinner.props.mjs +20 -0
  187. package/components/basic/spinner/fesm2022/index.mjs +103 -0
  188. package/components/basic/spinner/fesm2022/index.mjs.map +1 -0
  189. package/components/basic/spinner/index.d.ts +5 -0
  190. package/components/basic/spinner/package.json +20 -0
  191. package/components/basic/spinner/public_api.d.ts +1 -0
  192. package/components/basic/tree/bundles/index.umd.js +34 -38
  193. package/components/basic/tree/esm2022/tree.component.mjs +31 -36
  194. package/components/basic/tree/fesm2022/index.mjs +32 -36
  195. package/components/basic/tree/fesm2022/index.mjs.map +1 -1
  196. package/components/basic/tree/package.json +0 -3
  197. package/components/basic/video/.npmignore +2 -0
  198. package/components/basic/video/bundles/index.umd.js +116 -0
  199. package/components/basic/video/esm2022/index.mjs +5 -0
  200. package/components/basic/video/esm2022/public_api.mjs +2 -0
  201. package/components/basic/video/esm2022/video.component.mjs +70 -0
  202. package/components/basic/video/esm2022/video.props.mjs +24 -0
  203. package/components/basic/video/fesm2022/index.mjs +99 -0
  204. package/components/basic/video/fesm2022/index.mjs.map +1 -0
  205. package/components/basic/video/index.d.ts +5 -0
  206. package/components/basic/video/package.json +20 -0
  207. package/components/basic/video/public_api.d.ts +1 -0
  208. package/components/chart/bundles/index.umd.js +22 -75
  209. package/components/chart/esm2022/chart.component.mjs +20 -74
  210. package/components/chart/fesm2022/index.mjs +21 -74
  211. package/components/chart/fesm2022/index.mjs.map +1 -1
  212. package/components/chart/package.json +0 -3
  213. package/components/containers/accordion/bundles/index.umd.js +45 -100
  214. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +19 -70
  215. package/components/containers/accordion/esm2022/accordion.directive.mjs +24 -29
  216. package/components/containers/accordion/fesm2022/index.mjs +43 -98
  217. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  218. package/components/containers/accordion/package.json +0 -3
  219. package/components/containers/layout-grid/bundles/index.umd.js +60 -60
  220. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +23 -23
  221. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +20 -20
  222. package/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +20 -20
  223. package/components/containers/layout-grid/fesm2022/index.mjs +61 -61
  224. package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  225. package/components/containers/layout-grid/package.json +0 -3
  226. package/components/containers/linear-layout/bundles/index.umd.js +38 -38
  227. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +20 -20
  228. package/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +20 -20
  229. package/components/containers/linear-layout/fesm2022/index.mjs +39 -39
  230. package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  231. package/components/containers/linear-layout/package.json +0 -3
  232. package/components/containers/panel/bundles/index.umd.js +62 -223
  233. package/components/containers/panel/esm2022/panel.component.mjs +29 -190
  234. package/components/containers/panel/fesm2022/index.mjs +29 -190
  235. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  236. package/components/containers/panel/package.json +0 -3
  237. package/components/containers/tabs/bundles/index.umd.js +95 -204
  238. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +34 -51
  239. package/components/containers/tabs/esm2022/tabs.component.mjs +29 -123
  240. package/components/containers/tabs/fesm2022/index.mjs +61 -170
  241. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  242. package/components/containers/tabs/package.json +0 -3
  243. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -4
  244. package/components/containers/tile/bundles/index.umd.js +19 -19
  245. package/components/containers/tile/esm2022/tile.directive.mjs +20 -20
  246. package/components/containers/tile/fesm2022/index.mjs +20 -20
  247. package/components/containers/tile/fesm2022/index.mjs.map +1 -1
  248. package/components/containers/tile/package.json +0 -3
  249. package/components/containers/wizard/bundles/index.umd.js +119 -302
  250. package/components/containers/wizard/esm2022/wizard-action/wizard-action.directive.mjs +21 -21
  251. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +32 -45
  252. package/components/containers/wizard/esm2022/wizard.component.mjs +30 -201
  253. package/components/containers/wizard/fesm2022/index.mjs +81 -264
  254. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  255. package/components/containers/wizard/package.json +0 -3
  256. package/components/containers/wizard/wizard.component.d.ts +1 -1
  257. package/components/data/card/bundles/index.umd.js +108 -208
  258. package/components/data/card/esm2022/card-actions/card-actions.directive.mjs +15 -15
  259. package/components/data/card/esm2022/card-content/card-content.component.mjs +19 -34
  260. package/components/data/card/esm2022/card-footer/card-footer.directive.mjs +15 -15
  261. package/components/data/card/esm2022/card.component.mjs +21 -107
  262. package/components/data/card/fesm2022/index.mjs +67 -167
  263. package/components/data/card/fesm2022/index.mjs.map +1 -1
  264. package/components/data/card/package.json +0 -3
  265. package/components/data/form/bundles/index.umd.js +287 -467
  266. package/components/data/form/esm2022/form-action/form-action.directive.mjs +22 -22
  267. package/components/data/form/esm2022/form-field/form-field.directive.mjs +80 -91
  268. package/components/data/form/esm2022/form-widget.directive.mjs +31 -31
  269. package/components/data/form/esm2022/form.component.mjs +88 -251
  270. package/components/data/form/esm2022/form.props.mjs +1 -1
  271. package/components/data/form/esm2022/live-actions/dependson.directive.mjs +19 -24
  272. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +15 -15
  273. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +15 -15
  274. package/components/data/form/esm2022/live-form/live-form.directive.mjs +23 -25
  275. package/components/data/form/fesm2022/index.mjs +288 -468
  276. package/components/data/form/fesm2022/index.mjs.map +1 -1
  277. package/components/data/form/package.json +0 -3
  278. package/components/data/list/bundles/index.umd.js +80 -360
  279. package/components/data/list/esm2022/list-item.directive.mjs +27 -34
  280. package/components/data/list/esm2022/list.animator.mjs +1 -1
  281. package/components/data/list/esm2022/list.component.mjs +55 -330
  282. package/components/data/list/esm2022/list.props.mjs +1 -1
  283. package/components/data/list/fesm2022/index.mjs +79 -358
  284. package/components/data/list/fesm2022/index.mjs.map +1 -1
  285. package/components/data/list/list-item.directive.d.ts +3 -3
  286. package/components/data/list/list.component.d.ts +2 -4
  287. package/components/data/list/package.json +0 -3
  288. package/components/data/live-table/bundles/index.umd.js +28 -39
  289. package/components/data/live-table/esm2022/live-table.component.mjs +25 -37
  290. package/components/data/live-table/fesm2022/index.mjs +26 -37
  291. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  292. package/components/data/live-table/package.json +0 -3
  293. package/components/data/pagination/bundles/index.umd.js +33 -505
  294. package/components/data/pagination/esm2022/pagination.component.mjs +33 -507
  295. package/components/data/pagination/esm2022/pagination.props.mjs +1 -1
  296. package/components/data/pagination/fesm2022/index.mjs +32 -505
  297. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  298. package/components/data/pagination/package.json +0 -3
  299. package/components/data/pagination/pagination.component.d.ts +1 -1
  300. package/components/data/table/bundles/index.umd.js +310 -457
  301. package/components/data/table/esm2022/table-action/table-action.directive.mjs +22 -22
  302. package/components/data/table/esm2022/table-column/table-column.directive.mjs +50 -71
  303. package/components/data/table/esm2022/table-column/table-column.props.mjs +1 -1
  304. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +26 -26
  305. package/components/data/table/esm2022/table-cud.directive.mjs +15 -15
  306. package/components/data/table/esm2022/table-filter.directive.mjs +16 -16
  307. package/components/data/table/esm2022/table-row/table-row.directive.mjs +24 -24
  308. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +29 -29
  309. package/components/data/table/esm2022/table.component.mjs +135 -263
  310. package/components/data/table/esm2022/table.props.mjs +2 -1
  311. package/components/data/table/fesm2022/index.mjs +312 -459
  312. package/components/data/table/fesm2022/index.mjs.map +1 -1
  313. package/components/data/table/package.json +0 -3
  314. package/components/data/table/table-column/table-column.directive.d.ts +1 -1
  315. package/components/data/table/table.component.d.ts +3 -0
  316. package/components/dialogs/alert-dialog/bundles/index.umd.js +50 -79
  317. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +32 -62
  318. package/components/dialogs/alert-dialog/fesm2022/index.mjs +32 -61
  319. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  320. package/components/dialogs/alert-dialog/package.json +0 -3
  321. package/components/dialogs/confirm-dialog/bundles/index.umd.js +36 -72
  322. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +34 -71
  323. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +35 -71
  324. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  325. package/components/dialogs/confirm-dialog/package.json +0 -3
  326. package/components/dialogs/default/bundles/index.umd.js +101 -245
  327. package/components/dialogs/default/dialog-header/dialog-header.component.d.ts +4 -1
  328. package/components/dialogs/default/esm2022/base-dialog.mjs +14 -14
  329. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -18
  330. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +20 -20
  331. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +39 -181
  332. package/components/dialogs/default/fesm2022/index.mjs +85 -229
  333. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  334. package/components/dialogs/default/package.json +0 -3
  335. package/components/dialogs/design-dialog/bundles/index.umd.js +52 -108
  336. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +50 -107
  337. package/components/dialogs/design-dialog/fesm2022/index.mjs +51 -107
  338. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  339. package/components/dialogs/design-dialog/package.json +0 -3
  340. package/components/dialogs/iframe-dialog/bundles/index.umd.js +33 -81
  341. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +32 -82
  342. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +33 -82
  343. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  344. package/components/dialogs/iframe-dialog/package.json +0 -3
  345. package/components/dialogs/login-dialog/bundles/index.umd.js +22 -29
  346. package/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +23 -30
  347. package/components/dialogs/login-dialog/fesm2022/index.mjs +23 -30
  348. package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  349. package/components/dialogs/login-dialog/package.json +0 -3
  350. package/components/dialogs/partial-dialog/bundles/index.umd.js +39 -85
  351. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +38 -85
  352. package/components/dialogs/partial-dialog/fesm2022/index.mjs +39 -85
  353. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  354. package/components/dialogs/partial-dialog/package.json +0 -3
  355. package/components/input/base-form/.npmignore +2 -0
  356. package/components/input/base-form/bundles/index.umd.js +133 -0
  357. package/components/input/base-form/esm2022/base-form.component.mjs +110 -0
  358. package/components/input/base-form/esm2022/index.mjs +5 -0
  359. package/components/input/base-form/esm2022/public_api.mjs +2 -0
  360. package/components/input/base-form/fesm2022/index.mjs +117 -0
  361. package/components/input/base-form/fesm2022/index.mjs.map +1 -0
  362. package/components/input/base-form/index.d.ts +5 -0
  363. package/components/input/base-form/package.json +20 -0
  364. package/components/input/base-form/public_api.d.ts +1 -0
  365. package/components/input/base-form-custom/.npmignore +2 -0
  366. package/components/input/{default → base-form-custom}/base-form-custom.component.d.ts +1 -1
  367. package/components/input/base-form-custom/bundles/index.umd.js +118 -0
  368. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +94 -0
  369. package/components/input/base-form-custom/esm2022/index.mjs +5 -0
  370. package/components/input/base-form-custom/esm2022/public_api.mjs +2 -0
  371. package/components/input/base-form-custom/fesm2022/index.mjs +101 -0
  372. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -0
  373. package/components/input/base-form-custom/index.d.ts +5 -0
  374. package/components/input/base-form-custom/package.json +20 -0
  375. package/components/input/base-form-custom/public_api.d.ts +1 -0
  376. package/components/input/button/.npmignore +2 -0
  377. package/components/input/button/bundles/index.umd.js +98 -0
  378. package/components/input/button/esm2022/button.component.mjs +50 -0
  379. package/components/input/button/esm2022/button.props.mjs +26 -0
  380. package/components/input/button/esm2022/index.mjs +5 -0
  381. package/components/input/button/esm2022/public_api.mjs +2 -0
  382. package/components/input/button/fesm2022/index.mjs +81 -0
  383. package/components/input/button/fesm2022/index.mjs.map +1 -0
  384. package/components/input/button/index.d.ts +5 -0
  385. package/components/input/button/package.json +20 -0
  386. package/components/input/button/public_api.d.ts +1 -0
  387. package/components/input/button-group/.npmignore +2 -0
  388. package/components/input/button-group/bundles/index.umd.js +80 -0
  389. package/components/input/button-group/esm2022/button-group.directive.mjs +47 -0
  390. package/components/input/button-group/esm2022/button-group.props.mjs +10 -0
  391. package/components/input/button-group/esm2022/index.mjs +5 -0
  392. package/components/input/button-group/esm2022/public_api.mjs +2 -0
  393. package/components/input/button-group/fesm2022/index.mjs +62 -0
  394. package/components/input/button-group/fesm2022/index.mjs.map +1 -0
  395. package/components/input/button-group/index.d.ts +5 -0
  396. package/components/input/button-group/package.json +20 -0
  397. package/components/input/button-group/public_api.d.ts +1 -0
  398. package/components/input/calendar/bundles/index.umd.js +25 -38
  399. package/components/input/calendar/esm2022/calendar.component.mjs +22 -36
  400. package/components/input/calendar/fesm2022/index.mjs +23 -36
  401. package/components/input/calendar/fesm2022/index.mjs.map +1 -1
  402. package/components/input/calendar/package.json +0 -3
  403. package/components/input/caption-position/.npmignore +2 -0
  404. package/components/input/caption-position/bundles/index.umd.js +196 -0
  405. package/components/input/caption-position/esm2022/caption-position.directive.mjs +172 -0
  406. package/components/input/caption-position/esm2022/index.mjs +5 -0
  407. package/components/input/caption-position/esm2022/public_api.mjs +2 -0
  408. package/components/input/caption-position/fesm2022/index.mjs +178 -0
  409. package/components/input/caption-position/fesm2022/index.mjs.map +1 -0
  410. package/components/input/caption-position/index.d.ts +5 -0
  411. package/components/input/caption-position/package.json +20 -0
  412. package/components/input/caption-position/public_api.d.ts +1 -0
  413. package/components/input/checkbox/.npmignore +2 -0
  414. package/components/input/checkbox/bundles/index.umd.js +190 -0
  415. package/components/input/{default/checkbox → checkbox}/checkbox.component.d.ts +1 -1
  416. package/components/input/checkbox/esm2022/checkbox.component.mjs +145 -0
  417. package/components/input/checkbox/esm2022/checkbox.props.mjs +27 -0
  418. package/components/{basic/progress → input/checkbox}/esm2022/index.mjs +1 -1
  419. package/components/input/checkbox/esm2022/public_api.mjs +2 -0
  420. package/components/input/checkbox/fesm2022/index.mjs +175 -0
  421. package/components/input/checkbox/fesm2022/index.mjs.map +1 -0
  422. package/components/input/checkbox/index.d.ts +5 -0
  423. package/components/input/checkbox/package.json +20 -0
  424. package/components/input/checkbox/public_api.d.ts +1 -0
  425. package/components/input/checkboxset/.npmignore +2 -0
  426. package/components/input/checkboxset/bundles/index.umd.js +151 -0
  427. package/components/input/{default/checkboxset → checkboxset}/checkboxset.component.d.ts +1 -1
  428. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +99 -0
  429. package/components/input/checkboxset/esm2022/checkboxset.props.mjs +35 -0
  430. package/components/input/checkboxset/esm2022/index.mjs +5 -0
  431. package/components/input/checkboxset/esm2022/public_api.mjs +2 -0
  432. package/components/input/checkboxset/fesm2022/index.mjs +138 -0
  433. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -0
  434. package/components/input/checkboxset/index.d.ts +5 -0
  435. package/components/input/checkboxset/package.json +20 -0
  436. package/components/input/checkboxset/public_api.d.ts +1 -0
  437. package/components/input/chips/bundles/index.umd.js +94 -153
  438. package/components/input/chips/chips.component.d.ts +1 -1
  439. package/components/input/chips/esm2022/chips.component.mjs +41 -101
  440. package/components/input/chips/fesm2022/index.mjs +42 -101
  441. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  442. package/components/input/chips/package.json +0 -3
  443. package/components/input/color-picker/bundles/index.umd.js +35 -74
  444. package/components/input/color-picker/color-picker.component.d.ts +2 -2
  445. package/components/input/color-picker/esm2022/color-picker.component.mjs +34 -75
  446. package/components/input/color-picker/fesm2022/index.mjs +36 -75
  447. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  448. package/components/input/color-picker/package.json +0 -3
  449. package/components/input/composite/.npmignore +2 -0
  450. package/components/input/composite/bundles/index.umd.js +111 -0
  451. package/components/input/composite/esm2022/composite.directive.mjs +79 -0
  452. package/components/input/composite/esm2022/composite.props.mjs +10 -0
  453. package/components/input/composite/esm2022/index.mjs +5 -0
  454. package/components/input/composite/esm2022/public_api.mjs +2 -0
  455. package/components/input/composite/fesm2022/index.mjs +94 -0
  456. package/components/input/composite/fesm2022/index.mjs.map +1 -0
  457. package/components/input/composite/index.d.ts +5 -0
  458. package/components/input/composite/package.json +20 -0
  459. package/components/input/composite/public_api.d.ts +1 -0
  460. package/components/input/currency/bundles/index.umd.js +31 -52
  461. package/components/input/currency/currency.component.d.ts +1 -1
  462. package/components/input/currency/esm2022/currency.component.mjs +28 -50
  463. package/components/input/currency/fesm2022/index.mjs +30 -51
  464. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  465. package/components/input/currency/package.json +0 -3
  466. package/components/input/dataset-aware-form/.npmignore +2 -0
  467. package/components/input/dataset-aware-form/bundles/index.umd.js +328 -0
  468. package/components/input/{default → dataset-aware-form}/dataset-aware-form.component.d.ts +1 -1
  469. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +307 -0
  470. package/components/input/dataset-aware-form/esm2022/index.mjs +5 -0
  471. package/components/input/dataset-aware-form/esm2022/public_api.mjs +2 -0
  472. package/components/input/dataset-aware-form/fesm2022/index.mjs +314 -0
  473. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -0
  474. package/components/input/dataset-aware-form/index.d.ts +5 -0
  475. package/components/input/dataset-aware-form/package.json +20 -0
  476. package/components/input/dataset-aware-form/public_api.d.ts +1 -0
  477. package/components/input/epoch/base-date-time/.npmignore +2 -0
  478. package/components/input/epoch/{base-date-time.component.d.ts → base-date-time/base-date-time.component.d.ts} +1 -1
  479. package/components/input/epoch/base-date-time/bundles/index.umd.js +1086 -0
  480. package/components/input/epoch/{esm2022 → base-date-time/esm2022}/base-date-time.component.mjs +22 -31
  481. package/components/input/epoch/base-date-time/esm2022/index.mjs +5 -0
  482. package/components/input/epoch/base-date-time/esm2022/public_api.mjs +2 -0
  483. package/components/input/epoch/base-date-time/fesm2022/index.mjs +1077 -0
  484. package/components/input/epoch/base-date-time/fesm2022/index.mjs.map +1 -0
  485. package/components/input/epoch/base-date-time/index.d.ts +5 -0
  486. package/components/input/epoch/base-date-time/package.json +20 -0
  487. package/components/input/epoch/base-date-time/public_api.d.ts +1 -0
  488. package/components/input/epoch/date/.npmignore +2 -0
  489. package/components/input/epoch/date/bundles/index.umd.js +492 -0
  490. package/components/input/epoch/date/date.component.d.ts +2 -2
  491. package/components/input/epoch/date/esm2022/date.component.mjs +322 -0
  492. package/components/input/epoch/{esm2022/date → date/esm2022}/date.props.mjs +1 -1
  493. package/components/input/epoch/{esm2022/date → date/esm2022}/imaskUtil.mjs +1 -1
  494. package/components/input/epoch/date/esm2022/index.mjs +5 -0
  495. package/components/input/epoch/date/esm2022/public_api.mjs +2 -0
  496. package/components/input/epoch/date/fesm2022/index.mjs +482 -0
  497. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -0
  498. package/components/input/epoch/date/index.d.ts +5 -0
  499. package/components/input/epoch/date/package.json +20 -0
  500. package/components/input/epoch/date/public_api.d.ts +1 -0
  501. package/components/input/epoch/date-time/.npmignore +2 -0
  502. package/components/input/epoch/date-time/bundles/index.umd.js +518 -0
  503. package/components/input/epoch/date-time/date-time.component.d.ts +1 -1
  504. package/components/input/epoch/date-time/esm2022/date-time.component.mjs +458 -0
  505. package/components/input/epoch/{esm2022/date-time → date-time/esm2022}/date-time.props.mjs +1 -1
  506. package/components/input/epoch/date-time/esm2022/index.mjs +5 -0
  507. package/components/input/epoch/date-time/esm2022/public_api.mjs +2 -0
  508. package/components/input/epoch/date-time/fesm2022/index.mjs +509 -0
  509. package/components/input/epoch/date-time/fesm2022/index.mjs.map +1 -0
  510. package/components/input/epoch/date-time/index.d.ts +5 -0
  511. package/components/input/epoch/date-time/package.json +20 -0
  512. package/components/input/epoch/date-time/public_api.d.ts +1 -0
  513. package/components/input/epoch/date-time-picker/.npmignore +2 -0
  514. package/components/input/epoch/date-time-picker/bundles/index.umd.js +453 -0
  515. package/components/input/epoch/date-time-picker/esm2022/date-time-picker.component.mjs +433 -0
  516. package/components/input/epoch/date-time-picker/esm2022/index.mjs +5 -0
  517. package/components/input/epoch/date-time-picker/esm2022/public_api.mjs +2 -0
  518. package/components/input/epoch/date-time-picker/fesm2022/index.mjs +439 -0
  519. package/components/input/epoch/date-time-picker/fesm2022/index.mjs.map +1 -0
  520. package/components/input/epoch/date-time-picker/index.d.ts +5 -0
  521. package/components/input/epoch/date-time-picker/package.json +20 -0
  522. package/components/input/epoch/date-time-picker/public_api.d.ts +1 -0
  523. package/components/input/epoch/picker/.npmignore +2 -0
  524. package/components/input/epoch/picker/bundles/index.umd.js +192 -0
  525. package/components/input/epoch/picker/esm2022/index.mjs +5 -0
  526. package/components/input/epoch/picker/esm2022/picker.component.mjs +165 -0
  527. package/components/input/epoch/picker/esm2022/public_api.mjs +3 -0
  528. package/components/input/epoch/picker/fesm2022/index.mjs +172 -0
  529. package/components/input/epoch/picker/fesm2022/index.mjs.map +1 -0
  530. package/components/input/epoch/picker/index.d.ts +5 -0
  531. package/components/input/epoch/picker/package.json +20 -0
  532. package/components/input/epoch/picker/public_api.d.ts +2 -0
  533. package/components/input/epoch/time/.npmignore +2 -0
  534. package/components/input/epoch/time/bundles/index.umd.js +397 -0
  535. package/components/input/epoch/time/esm2022/index.mjs +5 -0
  536. package/components/input/epoch/time/esm2022/public_api.mjs +2 -0
  537. package/components/input/epoch/time/esm2022/time.component.mjs +348 -0
  538. package/components/input/epoch/{esm2022/time → time/esm2022}/time.props.mjs +1 -1
  539. package/components/input/epoch/time/fesm2022/index.mjs +387 -0
  540. package/components/input/epoch/time/fesm2022/index.mjs.map +1 -0
  541. package/components/input/epoch/time/index.d.ts +5 -0
  542. package/components/input/epoch/time/package.json +20 -0
  543. package/components/input/epoch/time/public_api.d.ts +1 -0
  544. package/components/input/epoch/time/time.component.d.ts +1 -1
  545. package/components/input/file-upload/bundles/index.umd.js +56 -348
  546. package/components/input/file-upload/esm2022/file-upload.component.mjs +20 -313
  547. package/components/input/file-upload/fesm2022/index.mjs +20 -312
  548. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  549. package/components/input/file-upload/package.json +0 -3
  550. package/components/input/number/.npmignore +2 -0
  551. package/components/input/number/bundles/index.umd.js +101 -0
  552. package/components/input/number/esm2022/index.mjs +5 -0
  553. package/components/input/number/esm2022/number.component.mjs +49 -0
  554. package/components/input/number/esm2022/number.props.mjs +35 -0
  555. package/components/input/number/esm2022/public_api.mjs +2 -0
  556. package/components/input/number/fesm2022/index.mjs +87 -0
  557. package/components/input/number/fesm2022/index.mjs.map +1 -0
  558. package/components/input/number/index.d.ts +5 -0
  559. package/components/input/{default/number → number}/number.component.d.ts +1 -1
  560. package/components/input/number/package.json +20 -0
  561. package/components/input/number/public_api.d.ts +1 -0
  562. package/components/input/radioset/.npmignore +2 -0
  563. package/components/input/radioset/bundles/index.umd.js +136 -0
  564. package/components/input/radioset/esm2022/index.mjs +5 -0
  565. package/components/input/radioset/esm2022/public_api.mjs +2 -0
  566. package/components/input/radioset/esm2022/radioset.component.mjs +84 -0
  567. package/components/input/radioset/esm2022/radioset.props.mjs +35 -0
  568. package/components/input/radioset/fesm2022/index.mjs +123 -0
  569. package/components/input/radioset/fesm2022/index.mjs.map +1 -0
  570. package/components/input/radioset/index.d.ts +5 -0
  571. package/components/input/radioset/package.json +20 -0
  572. package/components/input/radioset/public_api.d.ts +1 -0
  573. package/components/input/{default/radioset → radioset}/radioset.component.d.ts +1 -1
  574. package/components/input/rating/bundles/index.umd.js +49 -103
  575. package/components/input/rating/esm2022/rating.component.mjs +24 -79
  576. package/components/input/rating/fesm2022/index.mjs +25 -79
  577. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  578. package/components/input/rating/package.json +0 -3
  579. package/components/input/rating/rating.component.d.ts +1 -1
  580. package/components/input/select/.npmignore +2 -0
  581. package/components/input/select/bundles/index.umd.js +219 -0
  582. package/components/input/select/esm2022/index.mjs +5 -0
  583. package/components/input/select/esm2022/public_api.mjs +2 -0
  584. package/components/input/select/esm2022/select.component.mjs +166 -0
  585. package/components/input/select/esm2022/select.props.mjs +36 -0
  586. package/components/input/select/fesm2022/index.mjs +205 -0
  587. package/components/input/select/fesm2022/index.mjs.map +1 -0
  588. package/components/input/select/index.d.ts +5 -0
  589. package/components/input/select/package.json +20 -0
  590. package/components/input/select/public_api.d.ts +1 -0
  591. package/components/input/{default/select → select}/select.component.d.ts +1 -1
  592. package/components/input/slider/bundles/index.umd.js +44 -111
  593. package/components/input/slider/esm2022/slider.component.mjs +25 -95
  594. package/components/input/slider/esm2022/slider.props.mjs +1 -1
  595. package/components/input/slider/fesm2022/index.mjs +25 -93
  596. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  597. package/components/input/slider/package.json +0 -3
  598. package/components/input/slider/slider.component.d.ts +2 -2
  599. package/components/input/switch/.npmignore +2 -0
  600. package/components/input/switch/bundles/index.umd.js +204 -0
  601. package/components/input/switch/esm2022/index.mjs +5 -0
  602. package/components/input/switch/esm2022/public_api.mjs +2 -0
  603. package/components/input/switch/esm2022/switch.component.mjs +159 -0
  604. package/components/input/switch/esm2022/switch.props.mjs +28 -0
  605. package/components/input/switch/fesm2022/index.mjs +191 -0
  606. package/components/input/switch/fesm2022/index.mjs.map +1 -0
  607. package/components/input/switch/index.d.ts +5 -0
  608. package/components/input/switch/package.json +20 -0
  609. package/components/input/switch/public_api.d.ts +1 -0
  610. package/components/input/{default/switch → switch}/switch.component.d.ts +1 -1
  611. package/components/input/text/.npmignore +2 -0
  612. package/components/input/{default/text/base → text/base-input}/base-input.d.ts +1 -1
  613. package/components/input/text/bundles/index.umd.js +1070 -0
  614. package/components/input/text/esm2022/base-input/base-input.mjs +93 -0
  615. package/components/input/text/esm2022/index.mjs +5 -0
  616. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +46 -0
  617. package/components/input/text/esm2022/input-calendar/input-calendar.props.mjs +30 -0
  618. package/components/input/text/esm2022/input-color/input-color.component.mjs +46 -0
  619. package/components/input/text/esm2022/input-color/input-color.props.mjs +27 -0
  620. package/components/input/text/esm2022/input-email/input-email.component.mjs +46 -0
  621. package/components/input/text/esm2022/input-email/input-email.props.mjs +29 -0
  622. package/components/input/text/esm2022/input-number/input-number.component.mjs +56 -0
  623. package/components/input/text/esm2022/input-number/input-number.props.mjs +32 -0
  624. package/components/input/text/esm2022/input-text/input-text.component.mjs +121 -0
  625. package/components/input/text/esm2022/input-text/input-text.props.mjs +46 -0
  626. package/components/input/text/esm2022/number-locale/number-locale.mjs +539 -0
  627. package/components/input/text/esm2022/public_api.mjs +8 -0
  628. package/components/input/text/fesm2022/index.mjs +1054 -0
  629. package/components/input/text/fesm2022/index.mjs.map +1 -0
  630. package/components/input/text/index.d.ts +5 -0
  631. package/components/input/{default/text/calendar → text/input-calendar}/input-calendar.component.d.ts +1 -1
  632. package/components/input/{default/text/color → text/input-color}/input-color.component.d.ts +1 -1
  633. package/components/input/{default/text/email → text/input-email}/input-email.component.d.ts +1 -1
  634. package/components/input/{default/text/number → text/input-number}/input-number.component.d.ts +1 -1
  635. package/components/input/{default/text/text → text/input-text}/input-text.component.d.ts +1 -1
  636. package/components/input/{default/text/locale → text/number-locale}/number-locale.d.ts +1 -1
  637. package/components/input/text/package.json +20 -0
  638. package/components/input/text/public_api.d.ts +7 -0
  639. package/components/input/textarea/.npmignore +2 -0
  640. package/components/input/textarea/bundles/index.umd.js +101 -0
  641. package/components/input/textarea/esm2022/index.mjs +5 -0
  642. package/components/input/textarea/esm2022/public_api.mjs +2 -0
  643. package/components/input/textarea/esm2022/textarea.component.mjs +53 -0
  644. package/components/input/textarea/esm2022/textarea.props.mjs +30 -0
  645. package/components/input/textarea/fesm2022/index.mjs +87 -0
  646. package/components/input/textarea/fesm2022/index.mjs.map +1 -0
  647. package/components/input/textarea/index.d.ts +5 -0
  648. package/components/input/textarea/package.json +20 -0
  649. package/components/input/textarea/public_api.d.ts +1 -0
  650. package/components/input/{default/textarea → textarea}/textarea.component.d.ts +1 -1
  651. package/components/navigation/breadcrumb/bundles/index.umd.js +37 -79
  652. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +20 -64
  653. package/components/navigation/breadcrumb/fesm2022/index.mjs +21 -64
  654. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  655. package/components/navigation/breadcrumb/package.json +0 -3
  656. package/components/navigation/menu/bundles/index.umd.js +247 -442
  657. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +14 -19
  658. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +13 -29
  659. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +43 -100
  660. package/components/navigation/menu/esm2022/menu.component.mjs +53 -104
  661. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +30 -37
  662. package/components/navigation/menu/esm2022/nav/nav.component.mjs +20 -88
  663. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +14 -14
  664. package/components/navigation/menu/fesm2022/index.mjs +174 -369
  665. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  666. package/components/navigation/menu/menu-dropdown/menu-dropdown.component.d.ts +2 -3
  667. package/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +3 -3
  668. package/components/navigation/menu/package.json +0 -3
  669. package/components/navigation/navbar/bundles/index.umd.js +32 -83
  670. package/components/navigation/navbar/esm2022/navbar.component.mjs +20 -72
  671. package/components/navigation/navbar/fesm2022/index.mjs +20 -71
  672. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  673. package/components/navigation/navbar/package.json +0 -3
  674. package/components/navigation/popover/bundles/index.umd.js +31 -59
  675. package/components/navigation/popover/esm2022/popover.component.mjs +29 -58
  676. package/components/navigation/popover/fesm2022/index.mjs +31 -59
  677. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  678. package/components/navigation/popover/package.json +0 -3
  679. package/components/page/default/bundles/index.umd.js +109 -123
  680. package/components/page/default/esm2022/content/content.component.mjs +16 -25
  681. package/components/page/default/esm2022/layout.directive.mjs +21 -21
  682. package/components/page/default/esm2022/page-content/page-content.component.mjs +16 -23
  683. package/components/page/default/esm2022/page.directive.mjs +21 -21
  684. package/components/page/default/esm2022/router-outlet.directive.mjs +20 -20
  685. package/components/page/default/esm2022/spa-page.directive.mjs +21 -21
  686. package/components/page/default/fesm2022/index.mjs +111 -125
  687. package/components/page/default/fesm2022/index.mjs.map +1 -1
  688. package/components/page/default/package.json +0 -3
  689. package/components/page/footer/bundles/index.umd.js +20 -20
  690. package/components/page/footer/esm2022/footer.directive.mjs +21 -21
  691. package/components/page/footer/fesm2022/index.mjs +21 -21
  692. package/components/page/footer/fesm2022/index.mjs.map +1 -1
  693. package/components/page/footer/package.json +0 -3
  694. package/components/page/header/bundles/index.umd.js +19 -26
  695. package/components/page/header/esm2022/header.component.mjs +16 -24
  696. package/components/page/header/fesm2022/index.mjs +17 -24
  697. package/components/page/header/fesm2022/index.mjs.map +1 -1
  698. package/components/page/header/package.json +0 -3
  699. package/components/page/left-panel/bundles/index.umd.js +30 -30
  700. package/components/page/left-panel/esm2022/left-panel.directive.mjs +31 -31
  701. package/components/page/left-panel/fesm2022/index.mjs +31 -31
  702. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  703. package/components/page/left-panel/package.json +0 -3
  704. package/components/page/right-panel/bundles/index.umd.js +23 -23
  705. package/components/page/right-panel/esm2022/right-panel.directive.mjs +24 -24
  706. package/components/page/right-panel/fesm2022/index.mjs +24 -24
  707. package/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  708. package/components/page/right-panel/package.json +0 -3
  709. package/components/page/top-nav/bundles/index.umd.js +20 -20
  710. package/components/page/top-nav/esm2022/top-nav.directive.mjs +21 -21
  711. package/components/page/top-nav/fesm2022/index.mjs +21 -21
  712. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  713. package/components/page/top-nav/package.json +0 -3
  714. package/components/prefab/bundles/index.umd.js +41 -41
  715. package/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +20 -20
  716. package/components/prefab/esm2022/prefab.directive.mjs +23 -23
  717. package/components/prefab/fesm2022/index.mjs +42 -42
  718. package/components/prefab/fesm2022/index.mjs.map +1 -1
  719. package/components/prefab/package.json +0 -3
  720. package/core/bundles/index.umd.js +80 -61
  721. package/core/esm2022/services/constant.service.mjs +7 -7
  722. package/core/esm2022/services/custom-icons-loader.service.mjs +7 -7
  723. package/core/esm2022/services/field-type.service.mjs +7 -7
  724. package/core/esm2022/services/field-widget.service.mjs +7 -7
  725. package/core/esm2022/services/pagination.service.mjs +7 -7
  726. package/core/esm2022/services/script-loader.service.mjs +7 -7
  727. package/core/esm2022/services/state-persistence.service.mjs +7 -7
  728. package/core/esm2022/services/user-custom-pipe-manager.service.mjs +7 -7
  729. package/core/esm2022/services/utils.service.mjs +7 -7
  730. package/core/esm2022/services/viewport.service.mjs +7 -7
  731. package/core/esm2022/types/types.mjs +1 -1
  732. package/core/esm2022/utils/build-utils.mjs +21 -2
  733. package/core/fesm2022/index.mjs +80 -61
  734. package/core/fesm2022/index.mjs.map +1 -1
  735. package/core/package.json +3 -6
  736. package/core/types/types.d.ts +3 -1
  737. package/http/bundles/index.umd.js +8 -8
  738. package/http/esm2022/http.service.mjs +9 -9
  739. package/http/fesm2022/index.mjs +8 -8
  740. package/http/fesm2022/index.mjs.map +1 -1
  741. package/http/package.json +2 -5
  742. package/locales/moment/ar-dz.js +8 -8
  743. package/locales/moment/ar-ly.js +8 -8
  744. package/locales/moment/ar-ps.js +123 -0
  745. package/locales/moment/ar.js +8 -8
  746. package/locales/moment/be.js +2 -2
  747. package/locales/moment/bs.js +14 -4
  748. package/locales/moment/ca.js +6 -6
  749. package/locales/moment/cs.js +5 -4
  750. package/locales/moment/cv.js +2 -2
  751. package/locales/moment/en-au.js +6 -6
  752. package/locales/moment/en-ca.js +6 -6
  753. package/locales/moment/en-gb.js +6 -6
  754. package/locales/moment/en-ie.js +6 -6
  755. package/locales/moment/en-il.js +6 -6
  756. package/locales/moment/en-in.js +6 -6
  757. package/locales/moment/en-nz.js +6 -6
  758. package/locales/moment/en-sg.js +6 -6
  759. package/locales/moment/it.js +4 -4
  760. package/locales/moment/ku-kmr.js +125 -0
  761. package/locales/moment/lt.js +2 -2
  762. package/locales/moment/me.js +2 -2
  763. package/locales/moment/nb.js +4 -4
  764. package/locales/moment/nl-be.js +1 -1
  765. package/locales/moment/nl.js +1 -1
  766. package/locales/moment/oc-lnc.js +6 -6
  767. package/locales/moment/ru.js +2 -2
  768. package/locales/moment/sv.js +6 -6
  769. package/locales/moment/tet.js +6 -6
  770. package/locales/moment/tlh.js +8 -8
  771. package/locales/moment/tzl.js +2 -2
  772. package/locales/moment/uk.js +4 -4
  773. package/locales/moment/x-pseudo.js +6 -6
  774. package/locales/moment-timezone/moment-timezone-with-data.js +2 -2
  775. package/npm-shrinkwrap.json +2 -2
  776. package/oAuth/bundles/index.umd.js +5 -5
  777. package/oAuth/esm2022/oAuth.service.mjs +6 -6
  778. package/oAuth/fesm2022/index.mjs +5 -5
  779. package/oAuth/fesm2022/index.mjs.map +1 -1
  780. package/oAuth/package.json +2 -5
  781. package/package-lock.json +2 -2
  782. package/package.json +1 -1
  783. package/runtime/base/bundles/index.umd.js +3163 -3100
  784. package/runtime/base/components/empty-component/empty-page.component.d.ts +1 -0
  785. package/runtime/base/esm2022/components/app-component/app.component.mjs +14 -95
  786. package/runtime/base/esm2022/components/app-spinner.component.mjs +34 -45
  787. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +8 -7
  788. package/runtime/base/esm2022/components/base-layout.component.mjs +14 -21
  789. package/runtime/base/esm2022/components/base-page.component.mjs +12 -19
  790. package/runtime/base/esm2022/components/base-partial.component.mjs +9 -14
  791. package/runtime/base/esm2022/components/base-prefab.component.mjs +9 -14
  792. package/runtime/base/esm2022/components/base-spa-page.component.mjs +12 -19
  793. package/runtime/base/esm2022/components/custom-toaster.component.mjs +30 -52
  794. package/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +33 -15
  795. package/runtime/base/esm2022/components/prefab-preview.component.mjs +19 -26
  796. package/runtime/base/esm2022/directives/accessroles.directive.mjs +17 -17
  797. package/runtime/base/esm2022/directives/prefab.directive.mjs +15 -15
  798. package/runtime/base/esm2022/guards/auth.guard.mjs +6 -6
  799. package/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +11 -11
  800. package/runtime/base/esm2022/guards/page-not-found.guard.mjs +6 -6
  801. package/runtime/base/esm2022/guards/role.guard.mjs +6 -6
  802. package/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +12 -12
  803. package/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +14 -14
  804. package/runtime/base/esm2022/public_api.mjs +5 -2
  805. package/runtime/base/esm2022/resolves/app-before-load.resolve.mjs +22 -0
  806. package/runtime/base/esm2022/resolves/app-extension.resolve.mjs +6 -6
  807. package/runtime/base/esm2022/resolves/app-js.resolve.mjs +6 -6
  808. package/runtime/base/esm2022/resolves/app-variables.resolve.mjs +9 -9
  809. package/runtime/base/esm2022/resolves/i18n.resolve.mjs +6 -6
  810. package/runtime/base/esm2022/resolves/metadata.resolve.mjs +9 -9
  811. package/runtime/base/esm2022/resolves/security-config.resolve.mjs +9 -9
  812. package/runtime/base/esm2022/runtime-base.module.mjs +457 -316
  813. package/runtime/base/esm2022/services/app-defaults.service.mjs +6 -6
  814. package/runtime/base/esm2022/services/app.manager.service.mjs +25 -9
  815. package/runtime/base/esm2022/services/app.service.mjs +40 -18
  816. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +6 -6
  817. package/runtime/base/esm2022/services/http-interceptor.services.mjs +6 -6
  818. package/runtime/base/esm2022/services/i18n.service.mjs +37 -34
  819. package/runtime/base/esm2022/services/navigation.service.mjs +6 -6
  820. package/runtime/base/esm2022/services/pipe-provider.service.mjs +13 -13
  821. package/runtime/base/esm2022/services/pipe.service.mjs +10 -8
  822. package/runtime/base/esm2022/services/prefab-manager.service.mjs +6 -6
  823. package/runtime/base/esm2022/services/spinner.service.mjs +6 -6
  824. package/runtime/base/esm2022/services/toaster.service.mjs +6 -6
  825. package/runtime/base/esm2022/util/fragment-monitor.mjs +6 -6
  826. package/runtime/base/esm2022/util/utils.mjs +15 -1
  827. package/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +1 -1
  828. package/runtime/base/fesm2022/index.mjs +3146 -3071
  829. package/runtime/base/fesm2022/index.mjs.map +1 -1
  830. package/runtime/base/package.json +2 -5
  831. package/runtime/base/public_api.d.ts +4 -1
  832. package/runtime/base/resolves/app-before-load.resolve.d.ts +11 -0
  833. package/runtime/base/runtime-base.module.d.ts +96 -59
  834. package/runtime/base/services/app.manager.service.d.ts +2 -1
  835. package/runtime/base/services/app.service.d.ts +4 -2
  836. package/runtime/base/services/i18n.service.d.ts +2 -1
  837. package/runtime/base/util/utils.d.ts +2 -1
  838. package/runtime/dynamic/app/app.config.d.ts +1 -1
  839. package/runtime/dynamic/app/services/app-variables-provider.service.d.ts +3 -1
  840. package/runtime/dynamic/bundles/index.umd.js +145 -114
  841. package/runtime/dynamic/esm2022/app/app.config.mjs +11 -10
  842. package/runtime/dynamic/esm2022/app/app.module.mjs +35 -5
  843. package/runtime/dynamic/esm2022/app/app.routes.mjs +2 -11
  844. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +11 -16
  845. package/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +9 -9
  846. package/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +9 -9
  847. package/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +6 -6
  848. package/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +15 -11
  849. package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +57 -8
  850. package/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +6 -6
  851. package/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +6 -6
  852. package/runtime/dynamic/fesm2022/index.mjs +143 -88
  853. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  854. package/runtime/dynamic/package.json +2 -5
  855. package/scripts/datatable/datatable.js +26 -5
  856. package/scripts/jquery-ui/ui/widgets/droppable.js +3 -3
  857. package/scripts/jquery-ui/ui/widgets/resizable.js +72 -19
  858. package/scripts/jquery-ui/ui/widgets/sortable.js +9 -16
  859. package/security/bundles/index.umd.js +5 -5
  860. package/security/esm2022/security.service.mjs +6 -6
  861. package/security/fesm2022/index.mjs +5 -5
  862. package/security/fesm2022/index.mjs.map +1 -1
  863. package/security/package.json +2 -5
  864. package/swipey/fesm2022/index.mjs.map +1 -1
  865. package/swipey/package.json +2 -5
  866. package/transpiler/build.d.ts +1 -1
  867. package/transpiler/bundles/index.umd.js +94 -56
  868. package/transpiler/esm2022/build.mjs +5 -2
  869. package/transpiler/esm2022/imports.mjs +92 -57
  870. package/transpiler/fesm2022/index.mjs +94 -56
  871. package/transpiler/fesm2022/index.mjs.map +1 -1
  872. package/transpiler/package.json +3 -6
  873. package/variables/bundles/index.umd.js +20 -10
  874. package/variables/constants/variables.constants.d.ts +9 -0
  875. package/variables/esm2022/constants/variables.constants.mjs +10 -1
  876. package/variables/esm2022/service/metadata-service/metadata.service.mjs +6 -6
  877. package/variables/esm2022/service/variables.service.mjs +6 -6
  878. package/variables/fesm2022/index.mjs +20 -11
  879. package/variables/fesm2022/index.mjs.map +1 -1
  880. package/variables/package.json +2 -5
  881. package/variables/service/variables.service.d.ts +1 -1
  882. package/build-task/esm2022/basic/default/anchor/anchor.build.mjs +0 -15
  883. package/build-task/esm2022/basic/default/audio/audio.build.mjs +0 -10
  884. package/build-task/esm2022/basic/default/html/html.build.mjs +0 -15
  885. package/build-task/esm2022/basic/default/icon/icon.build.mjs +0 -10
  886. package/build-task/esm2022/basic/default/iframe/iframe.build.mjs +0 -10
  887. package/build-task/esm2022/basic/default/label/label.build.mjs +0 -25
  888. package/build-task/esm2022/basic/default/picture/picture.build.mjs +0 -14
  889. package/build-task/esm2022/basic/default/spinner/spinner.build.mjs +0 -15
  890. package/build-task/esm2022/basic/default/video/video.build.mjs +0 -10
  891. package/components/base/components.module.d.ts +0 -25
  892. package/components/base/esm2022/components.module.mjs +0 -152
  893. package/components/basic/default/bundles/index.umd.js +0 -1036
  894. package/components/basic/default/esm2022/anchor/anchor.component.mjs +0 -198
  895. package/components/basic/default/esm2022/anchor/anchor.props.mjs +0 -27
  896. package/components/basic/default/esm2022/audio/audio.component.mjs +0 -59
  897. package/components/basic/default/esm2022/audio/audio.props.mjs +0 -19
  898. package/components/basic/default/esm2022/html/html.directive.mjs +0 -76
  899. package/components/basic/default/esm2022/html/html.props.mjs +0 -12
  900. package/components/basic/default/esm2022/icon/icon.component.mjs +0 -70
  901. package/components/basic/default/esm2022/icon/icon.props.mjs +0 -19
  902. package/components/basic/default/esm2022/iframe/iframe.component.mjs +0 -85
  903. package/components/basic/default/esm2022/iframe/iframe.props.mjs +0 -15
  904. package/components/basic/default/esm2022/label/label.directive.mjs +0 -71
  905. package/components/basic/default/esm2022/label/label.props.mjs +0 -17
  906. package/components/basic/default/esm2022/picture/picture.directive.mjs +0 -95
  907. package/components/basic/default/esm2022/picture/picture.props.mjs +0 -23
  908. package/components/basic/default/esm2022/public_api.mjs +0 -10
  909. package/components/basic/default/esm2022/spinner/spinner.component.mjs +0 -130
  910. package/components/basic/default/esm2022/spinner/spinner.props.mjs +0 -20
  911. package/components/basic/default/esm2022/video/video.component.mjs +0 -113
  912. package/components/basic/default/esm2022/video/video.props.mjs +0 -24
  913. package/components/basic/default/fesm2022/index.mjs +0 -1012
  914. package/components/basic/default/fesm2022/index.mjs.map +0 -1
  915. package/components/basic/default/public_api.d.ts +0 -9
  916. package/components/basic/progress/bundles/index.umd.js +0 -361
  917. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +0 -154
  918. package/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +0 -132
  919. package/components/basic/progress/esm2022/public_api.mjs +0 -3
  920. package/components/basic/progress/esm2022/utils.mjs +0 -25
  921. package/components/basic/progress/fesm2022/index.mjs +0 -344
  922. package/components/basic/progress/fesm2022/index.mjs.map +0 -1
  923. package/components/basic/progress/public_api.d.ts +0 -2
  924. package/components/input/default/bundles/index.umd.js +0 -3559
  925. package/components/input/default/esm2022/base-form-custom.component.mjs +0 -94
  926. package/components/input/default/esm2022/base-form.component.mjs +0 -110
  927. package/components/input/default/esm2022/button/button.component.mjs +0 -106
  928. package/components/input/default/esm2022/button/button.props.mjs +0 -26
  929. package/components/input/default/esm2022/button-group/button-group.directive.mjs +0 -51
  930. package/components/input/default/esm2022/button-group/button-group.props.mjs +0 -10
  931. package/components/input/default/esm2022/caption-position.directive.mjs +0 -172
  932. package/components/input/default/esm2022/checkbox/checkbox.component.mjs +0 -179
  933. package/components/input/default/esm2022/checkbox/checkbox.props.mjs +0 -27
  934. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +0 -268
  935. package/components/input/default/esm2022/checkboxset/checkboxset.props.mjs +0 -35
  936. package/components/input/default/esm2022/composite/composite.directive.mjs +0 -84
  937. package/components/input/default/esm2022/composite/composite.props.mjs +0 -10
  938. package/components/input/default/esm2022/dataset-aware-form.component.mjs +0 -307
  939. package/components/input/default/esm2022/number/number.component.mjs +0 -68
  940. package/components/input/default/esm2022/number/number.props.mjs +0 -35
  941. package/components/input/default/esm2022/public_api.mjs +0 -21
  942. package/components/input/default/esm2022/radioset/radioset.component.mjs +0 -251
  943. package/components/input/default/esm2022/radioset/radioset.props.mjs +0 -35
  944. package/components/input/default/esm2022/select/select.component.mjs +0 -230
  945. package/components/input/default/esm2022/select/select.props.mjs +0 -36
  946. package/components/input/default/esm2022/switch/switch.component.mjs +0 -227
  947. package/components/input/default/esm2022/switch/switch.props.mjs +0 -28
  948. package/components/input/default/esm2022/text/base/base-input.mjs +0 -93
  949. package/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +0 -69
  950. package/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +0 -30
  951. package/components/input/default/esm2022/text/color/input-color.component.mjs +0 -69
  952. package/components/input/default/esm2022/text/color/input-color.props.mjs +0 -27
  953. package/components/input/default/esm2022/text/email/input-email.component.mjs +0 -68
  954. package/components/input/default/esm2022/text/email/input-email.props.mjs +0 -29
  955. package/components/input/default/esm2022/text/locale/number-locale.mjs +0 -539
  956. package/components/input/default/esm2022/text/number/input-number.component.mjs +0 -79
  957. package/components/input/default/esm2022/text/number/input-number.props.mjs +0 -32
  958. package/components/input/default/esm2022/text/text/input-text.component.mjs +0 -145
  959. package/components/input/default/esm2022/text/text/input-text.props.mjs +0 -46
  960. package/components/input/default/esm2022/textarea/textarea.component.mjs +0 -85
  961. package/components/input/default/esm2022/textarea/textarea.props.mjs +0 -30
  962. package/components/input/default/fesm2022/index.mjs +0 -3529
  963. package/components/input/default/fesm2022/index.mjs.map +0 -1
  964. package/components/input/default/public_api.d.ts +0 -20
  965. package/components/input/epoch/bundles/index.umd.js +0 -3292
  966. package/components/input/epoch/esm2022/date/date.component.mjs +0 -376
  967. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +0 -473
  968. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +0 -563
  969. package/components/input/epoch/esm2022/picker/picker.component.mjs +0 -184
  970. package/components/input/epoch/esm2022/public_api.mjs +0 -6
  971. package/components/input/epoch/esm2022/time/time.component.mjs +0 -432
  972. package/components/input/epoch/fesm2022/index.mjs +0 -3280
  973. package/components/input/epoch/fesm2022/index.mjs.map +0 -1
  974. package/components/input/epoch/public_api.d.ts +0 -5
  975. /package/build-task/basic/{default/anchor → anchor}/anchor.build.d.ts +0 -0
  976. /package/build-task/basic/{default/audio → audio}/audio.build.d.ts +0 -0
  977. /package/build-task/basic/{default/html → html}/html.build.d.ts +0 -0
  978. /package/build-task/basic/{default/icon → icon}/icon.build.d.ts +0 -0
  979. /package/build-task/basic/{default/iframe → iframe}/iframe.build.d.ts +0 -0
  980. /package/build-task/basic/{default/label → label}/label.build.d.ts +0 -0
  981. /package/build-task/basic/{default/picture → picture}/picture.build.d.ts +0 -0
  982. /package/build-task/basic/{default/spinner → spinner}/spinner.build.d.ts +0 -0
  983. /package/build-task/basic/{default/video → video}/video.build.d.ts +0 -0
  984. /package/components/basic/{default → anchor}/.npmignore +0 -0
  985. /package/components/basic/{default/anchor → anchor}/anchor.component.d.ts +0 -0
  986. /package/components/basic/{default/anchor → anchor}/anchor.props.d.ts +0 -0
  987. /package/components/basic/{progress → audio}/.npmignore +0 -0
  988. /package/components/basic/{default/audio → audio}/audio.component.d.ts +0 -0
  989. /package/components/basic/{default/audio → audio}/audio.props.d.ts +0 -0
  990. /package/components/{input/default → basic/html}/.npmignore +0 -0
  991. /package/components/basic/{default/html → html}/html.directive.d.ts +0 -0
  992. /package/components/basic/{default/html → html}/html.props.d.ts +0 -0
  993. /package/components/{input/epoch → basic/icon}/.npmignore +0 -0
  994. /package/components/basic/{default/icon → icon}/icon.component.d.ts +0 -0
  995. /package/components/basic/{default/icon → icon}/icon.props.d.ts +0 -0
  996. /package/components/basic/{default/iframe → iframe}/iframe.component.d.ts +0 -0
  997. /package/components/basic/{default/iframe → iframe}/iframe.props.d.ts +0 -0
  998. /package/components/basic/{default/label → label}/label.props.d.ts +0 -0
  999. /package/components/basic/{default/picture → picture}/picture.directive.d.ts +0 -0
  1000. /package/components/basic/{default/picture → picture}/picture.props.d.ts +0 -0
  1001. /package/components/basic/progress/{utils.d.ts → progress-utils/progress-utils.d.ts} +0 -0
  1002. /package/components/basic/{default/spinner → spinner}/spinner.component.d.ts +0 -0
  1003. /package/components/basic/{default/spinner → spinner}/spinner.props.d.ts +0 -0
  1004. /package/components/basic/{default/video → video}/video.component.d.ts +0 -0
  1005. /package/components/basic/{default/video → video}/video.props.d.ts +0 -0
  1006. /package/components/input/{default → base-form}/base-form.component.d.ts +0 -0
  1007. /package/components/input/{default/button → button}/button.component.d.ts +0 -0
  1008. /package/components/input/{default/button → button}/button.props.d.ts +0 -0
  1009. /package/components/input/{default/button-group → button-group}/button-group.directive.d.ts +0 -0
  1010. /package/components/input/{default/button-group → button-group}/button-group.props.d.ts +0 -0
  1011. /package/components/input/{default → caption-position}/caption-position.directive.d.ts +0 -0
  1012. /package/components/input/{default/checkbox → checkbox}/checkbox.props.d.ts +0 -0
  1013. /package/components/input/{default/checkboxset → checkboxset}/checkboxset.props.d.ts +0 -0
  1014. /package/components/input/{default/composite → composite}/composite.directive.d.ts +0 -0
  1015. /package/components/input/{default/composite → composite}/composite.props.d.ts +0 -0
  1016. /package/components/input/epoch/{date-time → date-time-picker}/date-time-picker.component.d.ts +0 -0
  1017. /package/components/input/{default/number → number}/number.props.d.ts +0 -0
  1018. /package/components/input/{default/radioset → radioset}/radioset.props.d.ts +0 -0
  1019. /package/components/input/{default/select → select}/select.props.d.ts +0 -0
  1020. /package/components/input/{default/switch → switch}/switch.props.d.ts +0 -0
  1021. /package/components/input/{default/text/calendar → text/input-calendar}/input-calendar.props.d.ts +0 -0
  1022. /package/components/input/{default/text/color → text/input-color}/input-color.props.d.ts +0 -0
  1023. /package/components/input/{default/text/email → text/input-email}/input-email.props.d.ts +0 -0
  1024. /package/components/input/{default/text/number → text/input-number}/input-number.props.d.ts +0 -0
  1025. /package/components/input/{default/text/text → text/input-text}/input-text.props.d.ts +0 -0
  1026. /package/components/input/{default/textarea → textarea}/textarea.props.d.ts +0 -0
@@ -490,11 +490,11 @@ export class StatePersistence {
490
490
  }
491
491
  return response;
492
492
  }
493
- static { this.ɵfac = function StatePersistence_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || StatePersistence)(); }; }
494
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: StatePersistence, factory: StatePersistence.ɵfac, providedIn: 'root' }); }
493
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StatePersistence, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
494
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StatePersistence, providedIn: 'root' }); }
495
495
  }
496
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StatePersistence, [{
497
- type: Injectable,
498
- args: [{ providedIn: 'root' }]
499
- }], null, null); })();
500
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtcGVyc2lzdGVuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3NlcnZpY2VzL3N0YXRlLXBlcnNpc3RlbmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDOztBQUdsRixNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVksb0JBQWUsR0FBRyxTQUFTLENBQUM7UUFDNUIsMEJBQXFCLEdBQUcsRUFBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUMsQ0FBQztRQUN6RSxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7S0F5ZW5DO0lBdmVHOzs7T0FHRztJQUNJLGlCQUFpQixDQUFDLEdBQUc7UUFDeEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxhQUFhLENBQUMsVUFBZSxFQUFFLFVBQWtCLEVBQUUsYUFBc0I7UUFDNUUsSUFBSSxHQUFHLEdBQUcsYUFBYSxJQUFJLFVBQVUsQ0FBQztRQUN0QyxJQUFJLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDbEUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FB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LFlBQVk7aUJBQ25DLE9BQU8sQ0FBQyxJQUFJLEVBQUcsR0FBRyxDQUFDLENBQUksWUFBWTtpQkFDbkMsT0FBTyxDQUFDLElBQUksRUFBRyxHQUFHLENBQUMsQ0FBSSxZQUFZO2lCQUNuQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFJLFlBQVk7aUJBQ25DLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUksWUFBWTthQUMzQyxDQUFDO1FBQ04sQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO2lIQTNlUSxnQkFBZ0I7dUVBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0IsbUJBREgsTUFBTTs7aUZBQ25CLGdCQUFnQjtjQUQ1QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjbG9uZSwgZ2V0LCBpbmNsdWRlcywgaXNBcnJheSwgaXNFbXB0eSwgaXNPYmplY3QsIG1lcmdlfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3RhdGVQZXJzaXN0ZW5jZSB7XG4gICAgcHJpdmF0ZSBISVNUT1JZX0hBTkRMRVIgPSAncmVwbGFjZSc7XG4gICAgcHJpdmF0ZSBISVNUT1JZX0hBTkRMRVJfVFlQRVMgPSB7J3B1c2gnOiAncHVzaFN0YXRlJywgJ3JlcGxhY2UnOiAncmVwbGFjZVN0YXRlJ307XG4gICAgcHJpdmF0ZSBXSURHRVRfU1RBVEVfS0VZID0gJ3dzJztcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHBhc3NlZCB2YWx1ZSBhcyB0aGUgSGlzdG9yeSBoYW5kbGVyIGlmIGl0IGV4aXN0cyBpbiB0aGUgSGlzdG9yeV9IYW5kbGVyX1R5cGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSB2YWxcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0SGlzdG9yeUhhbmRsZXIodmFsKSB7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLkhJU1RPUllfSEFORExFUl9UWVBFUykuaW5kZXhPZih2YWwpID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuSElTVE9SWV9IQU5ETEVSID0gdmFsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIHVuaXF1ZSBrZXkgZm9yIHNldHRpbmcgc3RhdGUgcGFyYW0gYnkgdXNpbmcgdGhlIHZpZXdQYXJlbnQgcHJvcGVydHkgb2YgYSB3aWRnZXRcbiAgICAgKiBzbyB0aGF0IG5hbWUgY29uZmxpY3RzIGFyZSBhdm9pZGVkIHdoZW4gdGhlIHNhbWUgd2lkZ2V0IG5hbWUgaXNcbiAgICAgKiBwcmVzZW50IGluc2lkZSBhIFBhZ2UsIGEgUGFydGlhbCB3aXRoaW4gYSBQYWdlIG9yIGEgUHJlZmFiIHdpdGhpbiBhIFBhZ2UgYW5kIHNvIG9uLlxuICAgICAqIEUuZy46XG4gICAgICogaWYgYSBwYWdlIGhhcyBhIHRhYnMgd2lkZ2V0IHdpdGggdGhlIG5hbWUgdGFiczEsIGEgcGFydGlhbCBQYXJ0aWFsMShpbnNpZGUgY29udGFpbmVyMSkgaW5jbHVzaW9uIHdpdGhpbiB3aGljaFxuICAgICAqIHRoZXJlIGlzIGEgdGFicyB3aXRoIG5hbWUgdGFiczEgYW5kIGEgcHJlZmFiIE15UHJlZmFiIGluY2x1c2lvbiB3aXRoIGEgdGFicyB3aWRnZXQgd2l0aCB0aGUgbmFtZSB0YWJzMSxcbiAgICAgKiBnZXROZXN0ZWRQYXRoIHdpbGwgcmV0dXJuIHRhYnMxLCBjb250YWluZXIxLlBhcnRpYWwxLnRhYnMxIGFuZCBNeVByZWZhYjEuTXlQcmVmYWIudGFiczEgcmVzcGVjdGl2ZWx5LlxuICAgICAqIEBwYXJhbSB2aWV3UGFyZW50XG4gICAgICogQHBhcmFtIHdpZGdldE5hbWVcbiAgICAgKiBAcGFyYW0gY3VycmVudE91dHB1dFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXROZXN0ZWRQYXRoKHZpZXdQYXJlbnQ6IGFueSwgd2lkZ2V0TmFtZTogc3RyaW5nLCBjdXJyZW50T3V0cHV0Pzogc3RyaW5nKSB7XG4gICAgICAgIGxldCBvdXQgPSBjdXJyZW50T3V0cHV0IHx8IHdpZGdldE5hbWU7XG4gICAgICAgIGlmICh2aWV3UGFyZW50ICYmICh2aWV3UGFyZW50LnByZWZhYk5hbWUgfHwgdmlld1BhcmVudC5wYXJ0aWFsTmFtZSkpIHtcbiAgICAgICAgICAgIG91dCA9IG91dC5sZW5ndGggPiAwID8gb3V0ICsgJy4nICsgKHZpZXdQYXJlbnQucHJlZmFiTmFtZSB8fCB2aWV3UGFyZW50LnBhcnRpYWxOYW1lKSA6ICh2aWV3UGFyZW50LnByZWZhYk5hbWUgfHwgdmlld1BhcmVudC5wYXJ0aWFsTmFtZSk7XG4gICAgICAgICAgICAvLyBzYW1lIHBhcnRpYWwvcHJlZmFiIGNhbiBiZSBkcm9wcGVkIG11bHRpcGxlIHRpbWVzIGluIGEgcGFnZS4gQXBwZW5kaW5nIGNvbnRhaW5lcidzIG5hbWUgZm9yIHVuaXF1ZW5lc3MuXG4gICAgICAgICAgICBvdXQgPSBvdXQgKyAnLicgKyB2aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldC5uYW1lO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TmVzdGVkUGF0aCh2aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldC52aWV3UGFyZW50LCB3aWRnZXROYW1lLCBvdXQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQuc3BsaXQoJy4nKS5yZXZlcnNlKCkuam9pbignLicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlY29kZXMgYW5kIHBhcnNlcyB0aGUgc3RhdGUgaW5mb3JtYXRpb24gYW5kIHJldHVybnMgdGhlIHBhcnNlZCBzdGF0ZSBvYmplY3RcbiAgICAgKiBAcGFyYW0gbW9kZSA6IG9wdGlvbmFsIHBhcmFtZXRlciBpZiB0aGUgd2lkZ2V0L3ZhcmlhYmxlIHVzZXMgYSBzdGF0ZSBoYW5kbGluZyBtb2RlKHVybCwgbG9jYWwgc3RvcmFnZSwgc2Vzc2lvbiBzdG9yYWdlKVxuICAgICAqIG90aGVyIHRoYW4gdGhlIHByb2plY3QgbGV2ZWwgbW9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTdGF0ZUluZm9ybWF0aW9uKG1vZGUpIHtcbiAgICAgICAgbGV0IHBhcnNlZFN0YXRlSW5mbywgc3RhdGVJbmZvO1xuICAgICAgICBpZiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAndXJsJykge1xuICAgICAgICAgICAgY29uc3QgZGVjb2RlZFVSSSA9IGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgICAgICBzdGF0ZUluZm8gPSBkZWNvZGVkVVJJLm1hdGNoKC8od21fc3RhdGU9KS4qPygmfCQpLyk7XG4gICAgICAgICAgICBpZiAoc3RhdGVJbmZvKSB7XG4gICAgICAgICAgICAgICAgc3RhdGVJbmZvID0gc3RhdGVJbmZvWzBdLnJlcGxhY2UoJ3dtX3N0YXRlPScsICcnKTtcbiAgICAgICAgICAgICAgICBwYXJzZWRTdGF0ZUluZm8gPSB0aGlzLnVyaVRvSnNvbihzdGF0ZUluZm8pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZWRTdGF0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnbG9jYWxzdG9yYWdlJykge1xuICAgICAgICAgICAgc3RhdGVJbmZvID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0od2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1xcLy9nLCAnJykgKyAnX3dtX3N0YXRlJyk7XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnc2Vzc2lvbnN0b3JhZ2UnKSB7XG4gICAgICAgICAgICBzdGF0ZUluZm8gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9cXC8vZywgJycpICsgJ193bV9zdGF0ZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZUluZm8pIHtcbiAgICAgICAgICAgIHBhcnNlZFN0YXRlSW5mbyA9IEpTT04ucGFyc2Uoc3RhdGVJbmZvKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZWRTdGF0ZUluZm87XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBwYXNzZWQgd2lkZ2V0IGluc3RhbmNlIGhhcyBhbnkgc3RhdGUgaW5mb3JtYXRpb24gYXZhaWxhYmxlIG9yIG5vdFxuICAgICAqIEBwYXJhbSB3aWRnZXRcbiAgICAgKiBAcGFyYW0gbW9kZSA6IG9wdGlvbmFsIHBhcmFtZXRlciBpZiB0aGUgd2lkZ2V0IHVzZXMgYSBzdGF0ZSBoYW5kbGluZyBtb2RlKHVybCwgbG9jYWwgc3RvcmFnZSwgc2Vzc2lvbiBzdG9yYWdlKVxuICAgICAqIG90aGVyIHRoYW4gdGhlIHByb2plY3QgbGV2ZWwgbW9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXaWRnZXRTdGF0ZSh3aWRnZXQsIG1vZGU/KSB7XG4gICAgICAgIG1vZGUgPSBtb2RlIHx8IHRoaXMuY29tcHV0ZU1vZGUod2lkZ2V0LnN0YXRlaGFuZGxlcik7XG4gICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXJzZWRTdGF0ZUluZm8gPSB0aGlzLmdldFN0YXRlSW5mb3JtYXRpb24obW9kZSk7XG4gICAgICAgIGlmIChwYXJzZWRTdGF0ZUluZm8gJiYgd2lkZ2V0ICAmJiB3aWRnZXQuZ2V0QXBwSW5zdGFuY2UoKS5hY3RpdmVQYWdlTmFtZSAmJiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnbG9jYWxzdG9yYWdlJyB8fCBtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdzZXNzaW9uc3RvcmFnZScpKSB7XG4gICAgICAgICAgICBwYXJzZWRTdGF0ZUluZm8gPSBwYXJzZWRTdGF0ZUluZm9bd2lkZ2V0LmdldEFwcEluc3RhbmNlKCkuYWN0aXZlUGFnZU5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChnZXQocGFyc2VkU3RhdGVJbmZvLCB0aGlzLldJREdFVF9TVEFURV9LRVkpKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZUtleSA9IHRoaXMuZ2V0TmVzdGVkUGF0aCh3aWRnZXQudmlld1BhcmVudCwgd2lkZ2V0LmdldFdpZGdldCgpLm5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlZFN0YXRlSW5mb1t0aGlzLldJREdFVF9TVEFURV9LRVldW3N0YXRlS2V5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXB1dGVNb2RlKHdpZGdldFN0YXRlSGFuZGxlcikge1xuICAgICAgICBpZiAoIXdpZGdldFN0YXRlSGFuZGxlcikge1xuICAgICAgICAgICAgcmV0dXJuICd1cmwnO1xuICAgICAgICB9IGVsc2UgaWYgKHdpZGdldFN0YXRlSGFuZGxlciAmJiB3aWRnZXRTdGF0ZUhhbmRsZXIudG9Mb3dlckNhc2UoKSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gd2lkZ2V0U3RhdGVIYW5kbGVyLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBwYXNzZWQgdmFsdWUgdG8gdGhlIHN0YXRlIGluZm9ybWF0aW9uIGJ5IHVzaW5nIHRoZSBwYXNzZWQgd2lkZ2V0IGluc3RhbmNlXG4gICAgICogQHBhcmFtIHdpZGdldFxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqIEBwYXJhbSBtb2RlIDogb3B0aW9uYWwgcGFyYW1ldGVyIGlmIHRoZSB3aWRnZXQgdXNlcyBhIHN0YXRlIGhhbmRsaW5nIG1vZGUodXJsLCBsb2NhbCBzdG9yYWdlLCBzZXNzaW9uIHN0b3JhZ2UpXG4gICAgICogb3RoZXIgdGhhbiB0aGUgcHJvamVjdCBsZXZlbCBtb2RlXG4gICAgICovXG4gICAgcHVibGljIHNldFdpZGdldFN0YXRlKHdpZGdldCwgdmFsdWUsIG1vZGU/KSB7XG4gICAgICAgIGNvbnN0IHN0YXRlS2V5ID0gdGhpcy5nZXROZXN0ZWRQYXRoKHdpZGdldC52aWV3UGFyZW50LCB3aWRnZXQuZ2V0V2lkZ2V0KCkubmFtZSk7XG4gICAgICAgIG1vZGUgPSBtb2RlIHx8IHRoaXMuY29tcHV0ZU1vZGUod2lkZ2V0LnN0YXRlaGFuZGxlcik7XG4gICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGVQYXJhbXModGhpcy5XSURHRVRfU1RBVEVfS0VZLCBzdGF0ZUtleSwgdmFsdWUsIG1vZGUsIHdpZGdldCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgcGFzc2VkIHdpZGdldOKAmXMgc3RhdGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgU3RhdGUgT2JqZWN0LiBJZiBhIGtleSBpcyBwYXNzZWQsIHRoZW4gb25seSB0aGF0XG4gICAgICogcGFydGljdWxhciBlbnRyeSB3aWxsIGJlIHJlbW92ZWQsIG5vdCBhbnkgb3RoZXIgZW50cmllcyBmb3IgdGhhdCB3aWRnZXQuXG4gICAgICogQHBhcmFtIHdpZGdldFxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcGFyYW0gbW9kZSA6IG9wdGlvbmFsIHBhcmFtZXRlciBpZiB0aGUgd2lkZ2V0IHVzZXMgYSBzdGF0ZSBoYW5kbGluZyBtb2RlKHVybCwgbG9jYWwgc3RvcmFnZSwgc2Vzc2lvbiBzdG9yYWdlKVxuICAgICAqIG90aGVyIHRoYW4gdGhlIHByb2plY3QgbGV2ZWwgbW9kZVxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVXaWRnZXRTdGF0ZSh3aWRnZXQsIGtleT8sIG1vZGU/KSB7XG4gICAgICAgIG1vZGUgPSBtb2RlIHx8IHRoaXMuY29tcHV0ZU1vZGUod2lkZ2V0LnN0YXRlaGFuZGxlcik7XG4gICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXRlS2V5ID0gdGhpcy5nZXROZXN0ZWRQYXRoKHdpZGdldC52aWV3UGFyZW50LCB3aWRnZXQuZ2V0V2lkZ2V0KCkubmFtZSk7XG4gICAgICAgIHRoaXMucmVtb3ZlU3RhdGVQYXJhbSh0aGlzLldJREdFVF9TVEFURV9LRVksIHN0YXRlS2V5LCBrZXksIG1vZGUsIHdpZGdldCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcGFzc2VkIHZhbHVlIHRvIHRoZSBzdGF0ZSBpbmZvcm1hdGlvbiBieSB1c2luZyB0aGUgcGFzc2VkIHZhcmlhYmxlIG5hbWUgYXMga2V5XG4gICAgICogQHBhcmFtIHZhcmlhYmxlTmFtZVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqIEBwYXJhbSBtb2RlIDogb3B0aW9uYWwgcGFyYW1ldGVyIGlmIHRoZSB2YXJpYWJsZSB1c2VzIGEgc3RhdGUgaGFuZGxpbmcgbW9kZSh1cmwsIGxvY2FsIHN0b3JhZ2UsIHNlc3Npb24gc3RvcmFnZSlcbiAgICAgKiBvdGhlciB0aGFuIHRoZSBwcm9qZWN0IGxldmVsIG1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0U3RhdGVWYXJpYWJsZSh2YXJpYWJsZU5hbWUsIHZhbHVlLCBtb2RlPykge1xuICAgICAgICBtb2RlID0gbW9kZSB8fCB0aGlzLmNvbXB1dGVNb2RlKG1vZGUpO1xuICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlUGFyYW1zKCcnLCB2YXJpYWJsZU5hbWUsIHZhbHVlLCBtb2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIHBhc3NlZCB2YXJpYWJsZSBuYW1lIGhhcyBhbnkgc3RhdGUgaW5mb3JtYXRpb24gYXZhaWxhYmxlIGluIHRoZSB1cmwgb3Igbm90XG4gICAgICogQHBhcmFtIHZhcmlhYmxlTmFtZVxuICAgICAqIEBwYXJhbSBtb2RlIDogb3B0aW9uYWwgcGFyYW1ldGVyIGlmIHRoZSB2YXJpYWJsZSB1c2VzIGEgc3RhdGUgaGFuZGxpbmcgbW9kZSh1cmwsIGxvY2FsIHN0b3JhZ2UsIHNlc3Npb24gc3RvcmFnZSlcbiAgICAgKiBvdGhlciB0aGFuIHRoZSBwcm9qZWN0IGxldmVsIG1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U3RhdGVWYXJpYWJsZSh2YXJpYWJsZU5hbWU6IHN0cmluZywgbW9kZT8pIHtcbiAgICAgICAgbW9kZSA9IG1vZGUgfHwgdGhpcy5jb21wdXRlTW9kZShtb2RlKTtcbiAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyc2VkU3RhdGVJbmZvID0gdGhpcy5nZXRTdGF0ZUluZm9ybWF0aW9uKG1vZGUpO1xuICAgICAgICBpZiAocGFyc2VkU3RhdGVJbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VkU3RhdGVJbmZvW3ZhcmlhYmxlTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIHBhc3NlZCB2YXJpYWJsZeKAmXMgc3RhdGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgVVJMLlxuICAgICAqIEBwYXJhbSB2YXJpYWJsZU5hbWVcbiAgICAgKiBAcGFyYW0gbW9kZSA6IG9wdGlvbmFsIHBhcmFtZXRlciBpZiB0aGUgd2lkZ2V0IHVzZXMgYSBzdGF0ZSBoYW5kbGluZyBtb2RlKHVybCwgbG9jYWwgc3RvcmFnZSwgc2Vzc2lvbiBzdG9yYWdlKVxuICAgICAqIG90aGVyIHRoYW4gdGhlIHByb2plY3QgbGV2ZWwgbW9kZVxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVTdGF0ZVZhcmlhYmxlKHZhcmlhYmxlTmFtZSwgbW9kZT8pIHtcbiAgICAgICAgbW9kZSA9IG1vZGUgfHwgdGhpcy5jb21wdXRlTW9kZShtb2RlKTtcbiAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVTdGF0ZVBhcmFtKCcnLCB2YXJpYWJsZU5hbWUsIG51bGwsIG1vZGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHBhc3NlZCBzdGF0ZSBpbmZvcm1hdGlvbiBpbiB0aGUgdXJsIGJ5IHBhcnNpbmcgdGhlIHBhc3NlZCB2YWx1ZSBhbmQgY2hlY2tpbmdcbiAgICAgKiBpdHMgdHlwZS4gSWYgaXRzIGFuIGFycmF5IHR5cGUsIHRoZW4gdGhlIHBhc3NlZCB2YWx1ZXMgd2lsbCBiZSBwdXNoZWQgaW50byBhbiBhcnJheSBhbmQgdGhlbiBzZXQgaW4gdGhlIHN0YXRlXG4gICAgICogRS5nLlxuICAgICAqIEN1cnJlbnQgc3RhdGUgaW5mb3JtYXRpb24gaXMgbGlrZSA6XG4gICAgIHtcbiAgICAgICBcIndpZGdldF9zdGF0ZVwiOiB7XG4gICAgICAgICAgIFwiVGFibGUxXCI6IHtcbiAgICAgICAgICAgICAgIFwic2VsZWN0ZWRJdGVtXCI6IFtcbiAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgIFwicGFnZVwiOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICBcImluZGV4XCI6IFwiMVwiXG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgIFwicGFnaW5hdGlvblwiOiBcIjFcIlxuICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICB9XG4gICAgICogSW5wdXQgdmFsdWUgd2lsbCBiZSBsaWtlOlxuICAgICB7XG4gICAgICAgXCJzZWxlY3RlZEl0ZW1cIjogW1xuICAgICAgICAge1xuICAgICAgICAgICBcInBhZ2VcIjogXCIxXCIsXG4gICAgICAgICAgIFwiaW5kZXhcIjogXCIyXCJcbiAgICAgICAgIH1cbiAgICAgICBdXG4gICAgIH1cblxuICAgICAqIFRoaXMgcGFyc2luZyBsb2dpYyB3aWxsIGNvbnZlcnQgaXQgdG8gdGhlIGZvbGxvd2luZ1xuICAgICB7XG4gICAgICAgXCJ3aWRnZXRfc3RhdGVcIjoge1xuICAgICAgICAgICBcIlRhYmxlMVwiOiB7XG4gICAgICAgICAgICAgICBcInNlbGVjdGVkSXRlbVwiOiBbXG4gICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICBcInBhZ2VcIjogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgXCJpbmRleFwiOiBcIjFcIlxuICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgXCJwYWdlXCI6IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgIFwiaW5kZXhcIjogXCIyXCJcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgXCJwYWdpbmF0aW9uXCI6IFwiMVwiXG4gICAgICAgICB9XG4gICAgICAgICB9XG4gICAgIH1cbiAgICAgKiBCYXNlZCBvbiBob3cgdGhlIEhJU1RPUllfSEFORExFUiBpcyBjb25maWd1cmVkLCB0aGUgdXBkYXRlZCB1cmwgd2lsbCBlaXRoZXIgcmVwbGFjZSB0aGUgZXhpc3RpbmcgdXJsIG9yXG4gICAgICogcHVzaCBhIG5ldyBzdGF0ZSBpbiB0aGUgdXJsIHNvIHRoYXQgYmFjayBidXR0b24gbWF5IHRyYWNrIGVhY2ggdXBkYXRlIHRvIHRoZSBzdGF0ZS5cbiAgICAgKiBAcGFyYW0gc3RhdGVQYXJhbVxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcGFyYW0gdmFsXG4gICAgICogQHBhcmFtIG1vZGUgOiBvcHRpb25hbCBwYXJhbWV0ZXIgaWYgdGhlIHdpZGdldC92YXJpYWJsZSB1c2VzIGEgc3RhdGUgaGFuZGxpbmcgbW9kZSh1cmwsIGxvY2FsIHN0b3JhZ2UsIHNlc3Npb24gc3RvcmFnZSlcbiAgICAgKiBvdGhlciB0aGFuIHRoZSBwcm9qZWN0IGxldmVsIG1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0U3RhdGVQYXJhbXMoc3RhdGVQYXJhbTogc3RyaW5nLCBrZXk6IHN0cmluZywgdmFsOiBhbnksIG1vZGU/LCB3aWRnZXQ/KSB7XG4gICAgICAgIGxldCB1cmwgPSAnJywgcGFyc2VkT2JqO1xuICAgICAgICBjb25zdCBzdGF0ZU9iaiA9IHRoaXMuZ2V0U3RhdGVJbmZvcm1hdGlvbihtb2RlKTtcbiAgICAgICAgaWYgKHdpZGdldCAmJiBzdGF0ZU9iaiAmJiB3aWRnZXQuZ2V0QXBwSW5zdGFuY2UoKS5hY3RpdmVQYWdlTmFtZSAmJiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnbG9jYWxzdG9yYWdlJyB8fCBtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdzZXNzaW9uc3RvcmFnZScpKSB7XG4gICAgICAgICAgICBwYXJzZWRPYmogPSBzdGF0ZU9ialt3aWRnZXQuZ2V0QXBwSW5zdGFuY2UoKS5hY3RpdmVQYWdlTmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJzZWRPYmogPSBjbG9uZShzdGF0ZU9iaik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXRlUGFyYW0pIHtcbiAgICAgICAgICAgIGlmIChwYXJzZWRPYmogJiYgIXBhcnNlZE9ialtzdGF0ZVBhcmFtXSkge1xuICAgICAgICAgICAgICAgIHBhcnNlZE9ialtzdGF0ZVBhcmFtXSA9IHt9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICghcGFyc2VkT2JqKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0ge1tzdGF0ZVBhcmFtXToge319O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KHZhbCkgJiYgIWlzQXJyYXkodmFsKSkge1xuICAgICAgICAgICAgICAgIHBhcnNlZE9ialtzdGF0ZVBhcmFtXVtrZXldID0gcGFyc2VkT2JqW3N0YXRlUGFyYW1dW2tleV0gfHwge307XG4gICAgICAgICAgICAgICAgbWVyZ2UocGFyc2VkT2JqW3N0YXRlUGFyYW1dW2tleV0sIHZhbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnNlZE9ialtzdGF0ZVBhcmFtXVtrZXldID0gdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHBhcnNlZE9iaiAmJiAhcGFyc2VkT2JqW2tleV0pIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmpba2V5XSA9IHt9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICghcGFyc2VkT2JqKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0ge1trZXldOiB7fX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNPYmplY3QodmFsKSAmJiAhaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqW2tleV0gPSBwYXJzZWRPYmpba2V5XSB8fCB7fTtcbiAgICAgICAgICAgICAgICBtZXJnZShwYXJzZWRPYmpba2V5XSwgdmFsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqW2tleV0gPSB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZm9yIExvY2FsIGFuZCBTZXNzaW9uIFN0b3JhZ2UsIHdyYXAgc3RhdGUgb2JqZWN0IGluc2lkZSBwYWdlIG5hbWUgc28gdGhhdCB3aWRnZXQgbmFtZSBjb25mbGljdHMgZG9uJ3QgYXJpc2UgYmV0d2VlbiBwYWdlcy5cbiAgICAgICAgaWYgKHdpZGdldCAmJiB3aWRnZXQuZ2V0QXBwSW5zdGFuY2UoKS5hY3RpdmVQYWdlTmFtZSAmJiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnbG9jYWxzdG9yYWdlJyB8fCBtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdzZXNzaW9uc3RvcmFnZScpKSB7XG4gICAgICAgICAgICBpZiAoc3RhdGVPYmopIHtcbiAgICAgICAgICAgICAgICBzdGF0ZU9ialt3aWRnZXQuZ2V0QXBwSW5zdGFuY2UoKS5hY3RpdmVQYWdlTmFtZV0gPSBwYXJzZWRPYmo7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0gc3RhdGVPYmo7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnNlZE9iaiA9IHtbd2lkZ2V0LmdldEFwcEluc3RhbmNlKCkuYWN0aXZlUGFnZU5hbWVdOiBwYXJzZWRPYmp9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuXG4gICAgICAgIGxldCBkZWNvZGVkVVJJID0gZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKGRlY29kZWRVUkkuaW5kZXhPZignPycpIDwgMCkge1xuICAgICAgICAgICAgZGVjb2RlZFVSSSA9IGRlY29kZWRVUkkgKyAnP3dtX3N0YXRlPSc7XG4gICAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZFVSSS5pbmRleE9mKCd3bV9zdGF0ZScpIDwgMCkge1xuICAgICAgICAgICAgZGVjb2RlZFVSSSA9IGRlY29kZWRVUkkgKyAnJndtX3N0YXRlPSc7XG4gICAgICAgIH1cbiAgICAgICAgdXJsID0gZGVjb2RlZFVSSS5yZXBsYWNlKC8od21fc3RhdGU9KS4qPygmfCQpLyAsJyQxJyArIHRoaXMuanNvblRvVXJpKHBhcnNlZE9iaikgKyAnJDInKTtcblxuICAgICAgICBpZiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnbG9jYWxzdG9yYWdlJykge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0od2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1xcLy9nLCAnJykgKyAnX3dtX3N0YXRlJywgSlNPTi5zdHJpbmdpZnkocGFyc2VkT2JqKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnc2Vzc2lvbnN0b3JhZ2UnKSB7XG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9cXC8vZywgJycpICsgJ193bV9zdGF0ZScsIEpTT04uc3RyaW5naWZ5KHBhcnNlZE9iaikpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaHJlZikgPT09IGRlY29kZVVSSUNvbXBvbmVudCh1cmwpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuSElTVE9SWV9IQU5ETEVSID09PSAncHVzaCcpIHtcbiAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7IHBhdGg6IHVybCB9LCAnJywgdXJsKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLkhJU1RPUllfSEFORExFUiA9PT0gJ3JlcGxhY2UnKSB7XG4gICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoeyBwYXRoOiB1cmwgfSwgJycsIHVybCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBwYXNzZWQgc3RhdGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgdXJsXG4gICAgICogRS5nLlxuICAgICAqIEN1cnJlbnQgc3RhdGUgaW5mb3JtYXRpb24gaXMgbGlrZSA6XG4gICAgIHtcbiAgICAgICBcIndpZGdldF9zdGF0ZVwiOiB7XG4gICAgICAgICAgIFwiVGFibGUxXCI6IHtcbiAgICAgICAgICAgICAgIFwic2VsZWN0ZWRJdGVtXCI6IFtcbiAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgIFwicGFnZVwiOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICBcImluZGV4XCI6IFwiMVwiXG4gICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgXCJwYWdlXCI6IFwiMlwiLFxuICAgICAgICAgICAgICAgICBcImluZGV4XCI6IFwiMVwiXG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgIFwicGFnaW5hdGlvblwiOiBcIjFcIlxuICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICB9XG4gICAgICogSW5wdXQgdmFsdWVzIHdpbGwgYmUgbGlrZTpcbiAgICAgc3ViUGFyYW0gOiAnc2VsZWN0ZWRJdGVtJ1xuXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBjb252ZXJ0IGl0IHRvIHRoZSBmb2xsb3dpbmdcbiAgICAge1xuICAgICAgIFwid2lkZ2V0X3N0YXRlXCI6IHtcbiAgICAgICAgICAgXCJUYWJsZTFcIjoge1xuICAgICAgICAgICAgIFwicGFnaW5hdGlvblwiOiBcIjFcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICB9XG4gICAgICogQHBhcmFtIHN0YXRlUGFyYW1cbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHBhcmFtIHN1YlBhcmFtXG4gICAgICogQHBhcmFtIG1vZGUgOiBvcHRpb25hbCBwYXJhbWV0ZXIgaWYgdGhlIHdpZGdldC92YXJpYWJsZSB1c2VzIGEgc3RhdGUgaGFuZGxpbmcgbW9kZSh1cmwsIGxvY2FsIHN0b3JhZ2UsIHNlc3Npb24gc3RvcmFnZSlcbiAgICAgKiBvdGhlciB0aGFuIHRoZSBwcm9qZWN0IGxldmVsIG1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlU3RhdGVQYXJhbShzdGF0ZVBhcmFtLCBrZXksIHN1YlBhcmFtPywgbW9kZT8sIHdpZGdldD8pIHtcbiAgICAgICAgbGV0IHVybCA9ICcnLCBwYXJzZWRPYmo7XG4gICAgICAgIGNvbnN0IHN0YXRlT2JqID0gdGhpcy5nZXRTdGF0ZUluZm9ybWF0aW9uKG1vZGUpO1xuICAgICAgICBpZiAod2lkZ2V0ICYmIHN0YXRlT2JqICYmIHdpZGdldC5nZXRBcHBJbnN0YW5jZSgpLmFjdGl2ZVBhZ2VOYW1lICYmIChtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdsb2NhbHN0b3JhZ2UnIHx8IG1vZGUudG9Mb3dlckNhc2UoKSA9PT0gJ3Nlc3Npb25zdG9yYWdlJykpIHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IHN0YXRlT2JqW3dpZGdldC5nZXRBcHBJbnN0YW5jZSgpLmFjdGl2ZVBhZ2VOYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IGNsb25lKHN0YXRlT2JqKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldChwYXJzZWRPYmosIFtzdGF0ZVBhcmFtXSkgJiYgIWdldChwYXJzZWRPYmosIGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBGaXggZm9yIFtXTVMtMjQ2OThdOiB3aGVuIHRhYmxlIGlzIGluc2lkZSBhIHByZWZhYiwgc3RhdGUgcGVyc2lzdGVuY2Uga2V5IGlzIGxpa2UgXCJUZXN0TGFiZWxfMTEuVGVzdExhYmVsXzEuc3RhdGljVmFyaWFibGUxVGFibGUxXCJcbiAgICAgICAgLy8gZ2V0KHBhcnNlZE9iaiwgc3RhdGVQYXJhbSArICcuJyArIGtleSkgaXMgdW5kZWZpbmVkIHNvIHVzaW5nIChwYXJzZWRPYmogJiYgcGFyc2VkT2JqW3N0YXRlUGFyYW1dICYmIHBhcnNlZE9ialtzdGF0ZVBhcmFtXVtrZXldKSBjb25kaXRpb24uXG4gICAgICAgIGlmIChnZXQocGFyc2VkT2JqLCBzdGF0ZVBhcmFtICsgJy4nICsga2V5KSB8fCAocGFyc2VkT2JqICYmIHBhcnNlZE9ialtzdGF0ZVBhcmFtXSAmJiBwYXJzZWRPYmpbc3RhdGVQYXJhbV1ba2V5XSkpIHtcbiAgICAgICAgICAgIGlmIChzdWJQYXJhbSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpbc3RhdGVQYXJhbV1ba2V5XVtzdWJQYXJhbV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpbc3RhdGVQYXJhbV1ba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VtcHR5KHBhcnNlZE9ialtzdGF0ZVBhcmFtXVtrZXldKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpbc3RhdGVQYXJhbV1ba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VtcHR5KHBhcnNlZE9ialtzdGF0ZVBhcmFtXSkpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkT2JqW3N0YXRlUGFyYW1dO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFzdGF0ZVBhcmFtICYmIGdldChwYXJzZWRPYmosIGtleSkpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGZvciBMb2NhbCBhbmQgU2Vzc2lvbiBTdG9yYWdlLCB3cmFwIHN0YXRlIG9iamVjdCBpbnNpZGUgcGFnZSBuYW1lIHNvIHRoYXQgd2lkZ2V0IG5hbWUgY29uZmxpY3RzIGRvbid0IGFyaXNlIGJldHdlZW4gcGFnZXMuXG4gICAgICAgIGlmICh3aWRnZXQgJiYgd2lkZ2V0LmdldEFwcEluc3RhbmNlKCkuYWN0aXZlUGFnZU5hbWUgJiYgKG1vZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2xvY2Fsc3RvcmFnZScgfHwgbW9kZS50b0xvd2VyQ2FzZSgpID09PSAnc2Vzc2lvbnN0b3JhZ2UnKSkge1xuICAgICAgICAgICAgaWYgKHN0YXRlT2JqKSB7XG4gICAgICAgICAgICAgICAgc3RhdGVPYmpbd2lkZ2V0LmdldEFwcEluc3RhbmNlKCkuYWN0aXZlUGFnZU5hbWVdID0gcGFyc2VkT2JqO1xuICAgICAgICAgICAgICAgIHBhcnNlZE9iaiA9IHN0YXRlT2JqO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmogPSB7W3dpZGdldC5nZXRBcHBJbnN0YW5jZSgpLmFjdGl2ZVBhZ2VOYW1lXTogcGFyc2VkT2JqfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIGlmIChtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdsb2NhbHN0b3JhZ2UnKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXFwvL2csICcnKSArICdfd21fc3RhdGUnLCBKU09OLnN0cmluZ2lmeShwYXJzZWRPYmopKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdzZXNzaW9uc3RvcmFnZScpIHtcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0od2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1xcLy9nLCAnJykgKyAnX3dtX3N0YXRlJywgSlNPTi5zdHJpbmdpZnkocGFyc2VkT2JqKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvZGVkVVJJID0gZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKGlzRW1wdHkocGFyc2VkT2JqKSkge1xuICAgICAgICAgICAgdXJsID0gZGVjb2RlZFVSSS5yZXBsYWNlKC8od21fc3RhdGU9KS4qPygmfCQpLyAsJycgKyAnJDInKTtcbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhbJyYnLCAnPyddLCB1cmwuY2hhckF0KHVybC5sZW5ndGggLSAxKSkpIHtcbiAgICAgICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSh1cmwuY2hhckF0KHVybC5sZW5ndGggLSAxKSwgJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXJsID0gZGVjb2RlZFVSSS5yZXBsYWNlKC8od21fc3RhdGU9KS4qPygmfCQpLyAsJyQxJyArIHRoaXMuanNvblRvVXJpKHBhcnNlZE9iaikgKyAnJDInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7IHBhdGg6IHVybCB9LCAnJywgdXJsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyB0aGUgU3RhdGUgSW5mb3JtYXRpb24gb2JqZWN0IGludG8gYW4gZW5jb2RlZCBvYmplY3Qgd2hlbiBzdGF0ZSBoYW5kbGluZyBtb2RlIGlzIFVSTFxuICAgICAqIHNvIHRoYXQgYSBtZWFuaW5nZnVsIFVSTCBjYW4gYmUgZm9ybWVkIGFuZCB0aGUgdXNlciBjYW4gbWFrZSBjaGFuZ2VzIGVhc2lseSB0byB0aGUgVVJMLlxuICAgICAqIEUuZy5cbiAgICAgKiBzdGF0ZSBpbmZvcm1hdGlvbiBpbnB1dCB3aWxsIGJlIGxpa2UgOlxuICAgICB7XG4gICAgICAgICBcIndpZGdldC1zdGF0ZVwiOiB7XG4gICAgICAgICAgICAgXCJUYWJsZTFcIjoge1xuICAgICAgICAgICAgIFwicGFnaW5hdGlvblwiOiBcIjNcIixcbiAgICAgICAgICAgICBcInNlYXJjaFwiOltcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZpZWxkXCI6XCJzdGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjpcIk5ZXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXRjaE1vZGVcIjpcImFueXdoZXJlaWdub3JlY2FzZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOlwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICB9LFxuICAgICBcIkN1c3RvbVZhcmlhYmxlU2VsZWN0ZWRJdGVtc1wiOiBbXCIyXCIsIFwiM1wiXVxuICAgICB9XG5cblxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgY29udmVydCBpdCB0byB0aGUgZm9sbG93aW5nXG4gICAgICgnd2lkZ2V0LXN0YXRlJ34oJ1RhYmxlMSd+KCdwYWdpbmF0aW9uJ34nMydfJ3NlYXJjaCd+ISgnZmllbGQnfidzdGF0ZSdfJ3ZhbHVlJ34nTlknXydtYXRjaE1vZGUnfidhbnl3aGVyZWlnbm9yZWNhc2UnXyd0eXBlJ34nc3RyaW5nJykqKSlfJ0N1c3RvbVZhcmlhYmxlU2VsZWN0ZWRJdGVtcyd+IScyJ18nMycqKVxuICAgICAqIEBwYXJhbSBqc29uT2JqXG4gICAgICovXG4gICAgcHJpdmF0ZSBqc29uVG9VcmkoanNvbk9iaikge1xuICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoanNvbk9iailcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvWygpJ35fISpdL2csIGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSAoKSd+XyEqIHdpdGggXFx1MDAwMCBlc2NhcGUgc2VxdWVuY2VzXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnXFxcXHUnICsgKCcwMDAwJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcey9nLCAnKCcpICAgIC8vICAgIHsgLT4gKFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXH0vZywgJyknKSAgICAvLyAgICB9IC0+IClcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXCIvZywgIFwiJ1wiKSAgICAvLyAgICBcIiAtPiAnXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcOi9nLCAnficpICAgIC8vICAgIDogLT4gflxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8sL2csICAnXycpICAgIC8vICAgICwgLT4gX1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFsvZywgJyEnKSAgICAvLyAgICBbIC0+ICFcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxdL2csICcqJykgICAgLy8gICAgXSAtPiAqXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVjb2RlcyB0aGUgZW5jb2RlZCBTdGF0ZSBJbmZvcm1hdGlvbiBvYmplY3QgaW50byBhIEpTT04gb2JqZWN0IHdoZW4gc3RhdGUgaGFuZGxpbmcgbW9kZSBpcyBVUkxcbiAgICAgKiBzbyB0aGF0IHN0YXRlIGluZm9ybWF0aW9uIGNhbiBiZSBwYXJzZWQgYW5kIGFwcGxpZWQgdG8gdGhlIHdpZGdldHMuXG4gICAgICogRS5nLlxuICAgICAqIGVuY29kZWQgc3RhdGUgaW5mb3JtYXRpb24gaW5wdXQgd2lsbCBiZSBsaWtlIDpcbiAgICAgKCd3aWRnZXQtc3RhdGUnfignVGFibGUxJ34oJ3BhZ2luYXRpb24nficzJ18nc2VhcmNoJ34hKCdmaWVsZCd+J3N0YXRlJ18ndmFsdWUnfidOWSdfJ21hdGNoTW9kZSd+J2FueXdoZXJlaWdub3JlY2FzZSdfJ3R5cGUnfidzdHJpbmcnKSopKV8nQ3VzdG9tVmFyaWFibGVTZWxlY3RlZEl0ZW1zJ34hJzInXyczJyopXG5cblxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgY29udmVydCBpdCB0byB0aGUgZm9sbG93aW5nXG4gICAgIHtcbiAgICAgICAgIFwid2lkZ2V0LXN0YXRlXCI6IHtcbiAgICAgICAgICAgICBcIlRhYmxlMVwiOiB7XG4gICAgICAgICAgICAgXCJwYWdpbmF0aW9uXCI6IFwiM1wiLFxuICAgICAgICAgICAgIFwic2VhcmNoXCI6W1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZmllbGRcIjpcInN0YXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOlwiTllcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hdGNoTW9kZVwiOlwiYW55d2hlcmVpZ25vcmVjYXNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6XCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgIH0sXG4gICAgIFwiQ3VzdG9tVmFyaWFibGVTZWxlY3RlZEl0ZW1zXCI6IFtcIjJcIiwgXCIzXCJdXG4gICAgIH1cbiAgICAgKiBAcGFyYW0gZW5jb2RlZE9ialxuICAgICAqL1xuICAgIHByaXZhdGUgdXJpVG9Kc29uKGVuY29kZWRPYmopIHtcbiAgICAgICAgbGV0IHJlc3BvbnNlOiBhbnk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXNwb25zZSA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRPYmopXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXCgvZywgJ3snKSAgICAvLyAgICAoIC0+IHtcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcKS9nLCAnfScpICAgIC8vICAgICkgLT4gfVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvJy9nLCAgJ1wiJykgICAgLy8gICAgJyAtPiBcIlxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvfi9nLCAgJzonKSAgICAvLyAgICB+IC0+IDpcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL18vZywgICcsJykgICAgLy8gICAgXyAtPiAsXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXCEvZywgJ1snKSAgICAvLyAgICAhIC0+IFtcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcKi9nLCAnXScpICAgIC8vICAgICogLT4gXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG59XG5cbiJdfQ==
496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StatePersistence, decorators: [{
497
+ type: Injectable,
498
+ args: [{ providedIn: 'root' }]
499
+ }] });
500
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtcGVyc2lzdGVuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3NlcnZpY2VzL3N0YXRlLXBlcnNpc3RlbmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDOztBQUdsRixNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVksb0JBQWUsR0FBRyxTQUFTLENBQUM7UUFDNUIsMEJBQXFCLEdBQUcsRUFBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUMsQ0FBQztRQUN6RSxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7S0F5ZW5DO0lBdmVHOzs7T0FHRztJQUNJLGlCQUFpQixDQUFDLEdBQUc7UUFDeEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxhQUFhLENBQUMsVUFBZSxFQUFFLFVBQWtCLEVBQUUsYUFBc0I7UUFDNUUsSUFBSSxHQUFHLEdBQUcsYUFBYSxJQUFJLFVBQVUsQ0FBQztRQUN0QyxJQUFJLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDbEUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FB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LFlBQVk7aUJBQ25DLE9BQU8sQ0FBQyxJQUFJLEVBQUcsR0FBRyxDQUFDLENBQUksWUFBWTtpQkFDbkMsT0FBTyxDQUFDLElBQUksRUFBRyxHQUFHLENBQUMsQ0FBSSxZQUFZO2lCQUNuQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFJLFlBQVk7aUJBQ25DLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUksWUFBWTthQUMzQyxDQUFDO1FBQ04sQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDOytHQTNlUSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQURILE1BQU07OzRGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjbG9uZSwgZ2V0LCBpbmNsdWRlcywgaXNBcnJheSwgaXNFbXB0eSwgaXNPYmplY3QsIG1lcmdlfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3RhdGVQZXJzaXN0ZW5jZSB7XG4gICAgcHJpdmF0ZSBISVNUT1JZX0hBTkRMRVIgPSAncmVwbGFjZSc7XG4gICAgcHJpdmF0ZSBISVNUT1JZX0hBTkRMRVJfVFlQRVMgPSB7J3B1c2gnOiAncHVzaFN0YXRlJywgJ3JlcGxhY2UnOiAncmVwbGFjZVN0YXRlJ307XG4gICAgcHJpdmF0ZSBXSURHRVRfU1RBVEVfS0VZID0gJ3dzJztcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHBhc3NlZCB2YWx1ZSBhcyB0aGUgSGlzdG9yeSBoYW5kbGVyIGlmIGl0IGV4aXN0cyBpbiB0aGUgSGlzdG9yeV9IYW5kbGVyX1R5cGVzIG9iamVjdFxuICAgICAqIEBwYXJhbSB2YWxcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0SGlzdG9yeUhhbmRsZXIodmFsKSB7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLkhJU1RPUllfSEFORExFUl9UWVBFUykuaW5kZXhPZih2YWwpID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuSElTVE9SWV9IQU5ETEVSID0gdmFsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIHVuaXF1ZSBrZXkgZm9yIHNldHRpbmcgc3RhdGUgcGFyYW0gYnkgdXNpbmcgdGhlIHZpZXdQYXJlbnQgcHJvcGVydHkgb2YgYSB3aWRnZXRcbiAgICAgKiBzbyB0aGF0IG5hbWUgY29uZmxpY3RzIGFyZSBhdm9pZGVkIHdoZW4gdGhlIHNhbWUgd2lkZ2V0IG5hbWUgaXNcbiAgICAgKiBwcmVzZW50IGluc2lkZSBhIFBhZ2UsIGEgUGFydGlhbCB3aXRoaW4gYSBQYWdlIG9yIGEgUHJlZmFiIHdpdGhpbiBhIFBhZ2UgYW5kIHNvIG9uLlxuICAgICAqIEUuZy46XG4gICAgICogaWYgYSBwYWdlIGhhcyBhIHRhYnMgd2lkZ2V0IHdpdGggdGhlIG5hbWUgdGFiczEsIGEgcGFydGlhbCBQYXJ0aWFsMShpbnNpZGUgY29udGFpbmVyMSkgaW5jbHVzaW9uIHdpdGhpbiB3aGljaFxuICAgICAqIHRoZXJlIGlzIGEgdGFicyB3aXRoIG5hbWUgdGFiczEgYW5kIGEgcHJlZmFiIE15UHJlZmFiIGluY2x1c2lvbiB3aXRoIGEgdGFicyB3aWRnZXQgd2l0aCB0aGUgbmFtZSB0YWJzMSxcbiAgICAgKiBnZXROZXN0ZWRQYXRoIHdpbGwgcmV0dXJuIHRhYnMxLCBjb250YWluZXIxLlBhcnRpYWwxLnRhYnMxIGFuZCBNeVByZWZhYjEuTXlQcmVmYWIudGFiczEgcmVzcGVjdGl2ZWx5LlxuICAgICAqIEBwYXJhbSB2aWV3UGFyZW50XG4gICAgICogQHBhcmFtIHdpZGdldE5hbWVcbiAgICAgKiBAcGFyYW0gY3VycmVudE91dHB1dFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXROZXN0ZWRQYXRoKHZpZXdQYXJlbnQ6IGFueSwgd2lkZ2V0TmFtZTogc3RyaW5nLCBjdXJyZW50T3V0cHV0Pzogc3RyaW5nKSB7XG4gICAgICAgIGxldCBvdXQgPSBjdXJyZW50T3V0cHV0IHx8IHdpZGdldE5hbWU7XG4gICAgICAgIGlmICh2aWV3UGFyZW50ICYmICh2aWV3UGFyZW50LnByZWZhYk5hbWUgfHwgdmlld1BhcmVudC5wYXJ0aWFsTmFtZSkpIHtcbiAgICAgICAgICAgIG91dCA9IG91dC5sZW5ndGggPiAwID8gb3V0ICsgJy4nICsgKHZpZXdQYXJlbnQucHJlZmFiTmFtZSB8fCB2aWV3UGFyZW50LnBhcnRpYWxOYW1lKSA6ICh2aWV3UGFyZW50LnByZWZhYk5hbWUgfHwgdmlld1BhcmVudC5wYXJ0aWFsTmFtZSk7XG4gICAgICAgICAgICAvLyBzYW1lIHBhcnRpYWwvcHJlZmFiIGNhbiBiZSBkcm9wcGVkIG11bHRpcGxlIHRpbWVzIGluIGEgcGFnZS4gQXBwZW5kaW5nIGNvbnRhaW5lcidzIG5hbWUgZm9yIHVuaXF1ZW5lc3MuXG4gICAgICAgICAgICBvdXQgPSBvdXQgKyAnLicgKyB2aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldC5uYW1lO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TmVzdGVkUGF0aCh2aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldC52aWV3UGFyZW50LCB3aWRnZXROYW1lLCBvdXQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQuc3BsaXQoJy4nKS5yZXZlcnNlKCkuam9pbignLicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlY29kZXMgYW5kIHBhcnNlcyB0aGUgc3RhdGUgaW5mb3JtYXRpb24gYW5kIHJldHVybnMgdGhlIHBhcnNlZCBzdGF0ZSBvYmplY3RcbiAgICAgKiBAcGFyYW0gbW9kZSA6IG9wdGlvbmFsIHBhcmFtZXRlciBpZiB0aGUgd2lkZ2V0L3ZhcmlhYmxlIHVzZXMgYSBzdGF0ZSBoYW5kbGluZyBtb2RlKHVybCwgbG9jYWwgc3RvcmFnZSwgc2Vzc2lvbiBzdG9yYWdlKVxuICAgICAqIG90aGVyIHRoYW4gdGhlIHByb2plY3QgbGV2ZWwgbW9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTdGF0ZUluZm9ybWF0aW9uKG1vZGUpIHtcbiAgICAgICAgbGV0IHBhcnNlZFN0YXRlSW5mbywgc3RhdGVJbmZvO1xuICAgICAgICBpZiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAndXJsJykge1xuICAgICAgICAgICAgY29uc3QgZGVjb2RlZFVSSSA9IGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgICAgICBzdGF0ZUluZm8gPSBkZWNvZGVkVVJJLm1hdGNoKC8od21fc3RhdGU9KS4qPygmfCQpLyk7XG4gICAgICAgICAgICBpZiAoc3RhdGVJbmZvKSB7XG4gICAgICAgICAgICAgICAgc3RhdGVJbmZvID0gc3RhdGVJbmZvWzBdLnJlcGxhY2UoJ3dtX3N0YXRlPScsICcnKTtcbiAgICAgICAgICAgICAgICBwYXJzZWRTdGF0ZUluZm8gPSB0aGlzLnVyaVRvSnNvbihzdGF0ZUluZm8pO1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZWRTdGF0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnbG9jYWxzdG9yYWdlJykge1xuICAgICAgICAgICAgc3RhdGVJbmZvID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0od2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1xcLy9nLCAnJykgKyAnX3dtX3N0YXRlJyk7XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnc2Vzc2lvbnN0b3JhZ2UnKSB7XG4gICAgICAgICAgICBzdGF0ZUluZm8gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9cXC8vZywgJycpICsgJ193bV9zdGF0ZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZUluZm8pIHtcbiAgICAgICAgICAgIHBhcnNlZFN0YXRlSW5mbyA9IEpTT04ucGFyc2Uoc3RhdGVJbmZvKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZWRTdGF0ZUluZm87XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBwYXNzZWQgd2lkZ2V0IGluc3RhbmNlIGhhcyBhbnkgc3RhdGUgaW5mb3JtYXRpb24gYXZhaWxhYmxlIG9yIG5vdFxuICAgICAqIEBwYXJhbSB3aWRnZXRcbiAgICAgKiBAcGFyYW0gbW9kZSA6IG9wdGlvbmFsIHBhcmFtZXRlciBpZiB0aGUgd2lkZ2V0IHVzZXMgYSBzdGF0ZSBoYW5kbGluZyBtb2RlKHVybCwgbG9jYWwgc3RvcmFnZSwgc2Vzc2lvbiBzdG9yYWdlKVxuICAgICAqIG90aGVyIHRoYW4gdGhlIHByb2plY3QgbGV2ZWwgbW9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXaWRnZXRTdGF0ZSh3aWRnZXQsIG1vZGU/KSB7XG4gICAgICAgIG1vZGUgPSBtb2RlIHx8IHRoaXMuY29tcHV0ZU1vZGUod2lkZ2V0LnN0YXRlaGFuZGxlcik7XG4gICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXJzZWRTdGF0ZUluZm8gPSB0aGlzLmdldFN0YXRlSW5mb3JtYXRpb24obW9kZSk7XG4gICAgICAgIGlmIChwYXJzZWRTdGF0ZUluZm8gJiYgd2lkZ2V0ICAmJiB3aWRnZXQuZ2V0QXBwSW5zdGFuY2UoKS5hY3RpdmVQYWdlTmFtZSAmJiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnbG9jYWxzdG9yYWdlJyB8fCBtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdzZXNzaW9uc3RvcmFnZScpKSB7XG4gICAgICAgICAgICBwYXJzZWRTdGF0ZUluZm8gPSBwYXJzZWRTdGF0ZUluZm9bd2lkZ2V0LmdldEFwcEluc3RhbmNlKCkuYWN0aXZlUGFnZU5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChnZXQocGFyc2VkU3RhdGVJbmZvLCB0aGlzLldJREdFVF9TVEFURV9LRVkpKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZUtleSA9IHRoaXMuZ2V0TmVzdGVkUGF0aCh3aWRnZXQudmlld1BhcmVudCwgd2lkZ2V0LmdldFdpZGdldCgpLm5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlZFN0YXRlSW5mb1t0aGlzLldJREdFVF9TVEFURV9LRVldW3N0YXRlS2V5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXB1dGVNb2RlKHdpZGdldFN0YXRlSGFuZGxlcikge1xuICAgICAgICBpZiAoIXdpZGdldFN0YXRlSGFuZGxlcikge1xuICAgICAgICAgICAgcmV0dXJuICd1cmwnO1xuICAgICAgICB9IGVsc2UgaWYgKHdpZGdldFN0YXRlSGFuZGxlciAmJiB3aWRnZXRTdGF0ZUhhbmRsZXIudG9Mb3dlckNhc2UoKSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gd2lkZ2V0U3RhdGVIYW5kbGVyLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBwYXNzZWQgdmFsdWUgdG8gdGhlIHN0YXRlIGluZm9ybWF0aW9uIGJ5IHVzaW5nIHRoZSBwYXNzZWQgd2lkZ2V0IGluc3RhbmNlXG4gICAgICogQHBhcmFtIHdpZGdldFxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqIEBwYXJhbSBtb2RlIDogb3B0aW9uYWwgcGFyYW1ldGVyIGlmIHRoZSB3aWRnZXQgdXNlcyBhIHN0YXRlIGhhbmRsaW5nIG1vZGUodXJsLCBsb2NhbCBzdG9yYWdlLCBzZXNzaW9uIHN0b3JhZ2UpXG4gICAgICogb3RoZXIgdGhhbiB0aGUgcHJvamVjdCBsZXZlbCBtb2RlXG4gICAgICovXG4gICAgcHVibGljIHNldFdpZGdldFN0YXRlKHdpZGdldCwgdmFsdWUsIG1vZGU/KSB7XG4gICAgICAgIGNvbnN0IHN0YXRlS2V5ID0gdGhpcy5nZXROZXN0ZWRQYXRoKHdpZGdldC52aWV3UGFyZW50LCB3aWRnZXQuZ2V0V2lkZ2V0KCkubmFtZSk7XG4gICAgICAgIG1vZGUgPSBtb2RlIHx8IHRoaXMuY29tcHV0ZU1vZGUod2lkZ2V0LnN0YXRlaGFuZGxlcik7XG4gICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGVQYXJhbXModGhpcy5XSURHRVRfU1RBVEVfS0VZLCBzdGF0ZUtleSwgdmFsdWUsIG1vZGUsIHdpZGdldCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgcGFzc2VkIHdpZGdldOKAmXMgc3RhdGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgU3RhdGUgT2JqZWN0LiBJZiBhIGtleSBpcyBwYXNzZWQsIHRoZW4gb25seSB0aGF0XG4gICAgICogcGFydGljdWxhciBlbnRyeSB3aWxsIGJlIHJlbW92ZWQsIG5vdCBhbnkgb3RoZXIgZW50cmllcyBmb3IgdGhhdCB3aWRnZXQuXG4gICAgICogQHBhcmFtIHdpZGdldFxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcGFyYW0gbW9kZSA6IG9wdGlvbmFsIHBhcmFtZXRlciBpZiB0aGUgd2lkZ2V0IHVzZXMgYSBzdGF0ZSBoYW5kbGluZyBtb2RlKHVybCwgbG9jYWwgc3RvcmFnZSwgc2Vzc2lvbiBzdG9yYWdlKVxuICAgICAqIG90aGVyIHRoYW4gdGhlIHByb2plY3QgbGV2ZWwgbW9kZVxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVXaWRnZXRTdGF0ZSh3aWRnZXQsIGtleT8sIG1vZGU/KSB7XG4gICAgICAgIG1vZGUgPSBtb2RlIHx8IHRoaXMuY29tcHV0ZU1vZGUod2lkZ2V0LnN0YXRlaGFuZGxlcik7XG4gICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXRlS2V5ID0gdGhpcy5nZXROZXN0ZWRQYXRoKHdpZGdldC52aWV3UGFyZW50LCB3aWRnZXQuZ2V0V2lkZ2V0KCkubmFtZSk7XG4gICAgICAgIHRoaXMucmVtb3ZlU3RhdGVQYXJhbSh0aGlzLldJREdFVF9TVEFURV9LRVksIHN0YXRlS2V5LCBrZXksIG1vZGUsIHdpZGdldCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcGFzc2VkIHZhbHVlIHRvIHRoZSBzdGF0ZSBpbmZvcm1hdGlvbiBieSB1c2luZyB0aGUgcGFzc2VkIHZhcmlhYmxlIG5hbWUgYXMga2V5XG4gICAgICogQHBhcmFtIHZhcmlhYmxlTmFtZVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqIEBwYXJhbSBtb2RlIDogb3B0aW9uYWwgcGFyYW1ldGVyIGlmIHRoZSB2YXJpYWJsZSB1c2VzIGEgc3RhdGUgaGFuZGxpbmcgbW9kZSh1cmwsIGxvY2FsIHN0b3JhZ2UsIHNlc3Npb24gc3RvcmFnZSlcbiAgICAgKiBvdGhlciB0aGFuIHRoZSBwcm9qZWN0IGxldmVsIG1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0U3RhdGVWYXJpYWJsZSh2YXJpYWJsZU5hbWUsIHZhbHVlLCBtb2RlPykge1xuICAgICAgICBtb2RlID0gbW9kZSB8fCB0aGlzLmNvbXB1dGVNb2RlKG1vZGUpO1xuICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlUGFyYW1zKCcnLCB2YXJpYWJsZU5hbWUsIHZhbHVlLCBtb2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIHBhc3NlZCB2YXJpYWJsZSBuYW1lIGhhcyBhbnkgc3RhdGUgaW5mb3JtYXRpb24gYXZhaWxhYmxlIGluIHRoZSB1cmwgb3Igbm90XG4gICAgICogQHBhcmFtIHZhcmlhYmxlTmFtZVxuICAgICAqIEBwYXJhbSBtb2RlIDogb3B0aW9uYWwgcGFyYW1ldGVyIGlmIHRoZSB2YXJpYWJsZSB1c2VzIGEgc3RhdGUgaGFuZGxpbmcgbW9kZSh1cmwsIGxvY2FsIHN0b3JhZ2UsIHNlc3Npb24gc3RvcmFnZSlcbiAgICAgKiBvdGhlciB0aGFuIHRoZSBwcm9qZWN0IGxldmVsIG1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U3RhdGVWYXJpYWJsZSh2YXJpYWJsZU5hbWU6IHN0cmluZywgbW9kZT8pIHtcbiAgICAgICAgbW9kZSA9IG1vZGUgfHwgdGhpcy5jb21wdXRlTW9kZShtb2RlKTtcbiAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyc2VkU3RhdGVJbmZvID0gdGhpcy5nZXRTdGF0ZUluZm9ybWF0aW9uKG1vZGUpO1xuICAgICAgICBpZiAocGFyc2VkU3RhdGVJbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VkU3RhdGVJbmZvW3ZhcmlhYmxlTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIHBhc3NlZCB2YXJpYWJsZeKAmXMgc3RhdGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgVVJMLlxuICAgICAqIEBwYXJhbSB2YXJpYWJsZU5hbWVcbiAgICAgKiBAcGFyYW0gbW9kZSA6IG9wdGlvbmFsIHBhcmFtZXRlciBpZiB0aGUgd2lkZ2V0IHVzZXMgYSBzdGF0ZSBoYW5kbGluZyBtb2RlKHVybCwgbG9jYWwgc3RvcmFnZSwgc2Vzc2lvbiBzdG9yYWdlKVxuICAgICAqIG90aGVyIHRoYW4gdGhlIHByb2plY3QgbGV2ZWwgbW9kZVxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVTdGF0ZVZhcmlhYmxlKHZhcmlhYmxlTmFtZSwgbW9kZT8pIHtcbiAgICAgICAgbW9kZSA9IG1vZGUgfHwgdGhpcy5jb21wdXRlTW9kZShtb2RlKTtcbiAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVTdGF0ZVBhcmFtKCcnLCB2YXJpYWJsZU5hbWUsIG51bGwsIG1vZGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHBhc3NlZCBzdGF0ZSBpbmZvcm1hdGlvbiBpbiB0aGUgdXJsIGJ5IHBhcnNpbmcgdGhlIHBhc3NlZCB2YWx1ZSBhbmQgY2hlY2tpbmdcbiAgICAgKiBpdHMgdHlwZS4gSWYgaXRzIGFuIGFycmF5IHR5cGUsIHRoZW4gdGhlIHBhc3NlZCB2YWx1ZXMgd2lsbCBiZSBwdXNoZWQgaW50byBhbiBhcnJheSBhbmQgdGhlbiBzZXQgaW4gdGhlIHN0YXRlXG4gICAgICogRS5nLlxuICAgICAqIEN1cnJlbnQgc3RhdGUgaW5mb3JtYXRpb24gaXMgbGlrZSA6XG4gICAgIHtcbiAgICAgICBcIndpZGdldF9zdGF0ZVwiOiB7XG4gICAgICAgICAgIFwiVGFibGUxXCI6IHtcbiAgICAgICAgICAgICAgIFwic2VsZWN0ZWRJdGVtXCI6IFtcbiAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgIFwicGFnZVwiOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICBcImluZGV4XCI6IFwiMVwiXG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgIFwicGFnaW5hdGlvblwiOiBcIjFcIlxuICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICB9XG4gICAgICogSW5wdXQgdmFsdWUgd2lsbCBiZSBsaWtlOlxuICAgICB7XG4gICAgICAgXCJzZWxlY3RlZEl0ZW1cIjogW1xuICAgICAgICAge1xuICAgICAgICAgICBcInBhZ2VcIjogXCIxXCIsXG4gICAgICAgICAgIFwiaW5kZXhcIjogXCIyXCJcbiAgICAgICAgIH1cbiAgICAgICBdXG4gICAgIH1cblxuICAgICAqIFRoaXMgcGFyc2luZyBsb2dpYyB3aWxsIGNvbnZlcnQgaXQgdG8gdGhlIGZvbGxvd2luZ1xuICAgICB7XG4gICAgICAgXCJ3aWRnZXRfc3RhdGVcIjoge1xuICAgICAgICAgICBcIlRhYmxlMVwiOiB7XG4gICAgICAgICAgICAgICBcInNlbGVjdGVkSXRlbVwiOiBbXG4gICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICBcInBhZ2VcIjogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgXCJpbmRleFwiOiBcIjFcIlxuICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgXCJwYWdlXCI6IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgIFwiaW5kZXhcIjogXCIyXCJcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgXCJwYWdpbmF0aW9uXCI6IFwiMVwiXG4gICAgICAgICB9XG4gICAgICAgICB9XG4gICAgIH1cbiAgICAgKiBCYXNlZCBvbiBob3cgdGhlIEhJU1RPUllfSEFORExFUiBpcyBjb25maWd1cmVkLCB0aGUgdXBkYXRlZCB1cmwgd2lsbCBlaXRoZXIgcmVwbGFjZSB0aGUgZXhpc3RpbmcgdXJsIG9yXG4gICAgICogcHVzaCBhIG5ldyBzdGF0ZSBpbiB0aGUgdXJsIHNvIHRoYXQgYmFjayBidXR0b24gbWF5IHRyYWNrIGVhY2ggdXBkYXRlIHRvIHRoZSBzdGF0ZS5cbiAgICAgKiBAcGFyYW0gc3RhdGVQYXJhbVxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcGFyYW0gdmFsXG4gICAgICogQHBhcmFtIG1vZGUgOiBvcHRpb25hbCBwYXJhbWV0ZXIgaWYgdGhlIHdpZGdldC92YXJpYWJsZSB1c2VzIGEgc3RhdGUgaGFuZGxpbmcgbW9kZSh1cmwsIGxvY2FsIHN0b3JhZ2UsIHNlc3Npb24gc3RvcmFnZSlcbiAgICAgKiBvdGhlciB0aGFuIHRoZSBwcm9qZWN0IGxldmVsIG1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0U3RhdGVQYXJhbXMoc3RhdGVQYXJhbTogc3RyaW5nLCBrZXk6IHN0cmluZywgdmFsOiBhbnksIG1vZGU/LCB3aWRnZXQ/KSB7XG4gICAgICAgIGxldCB1cmwgPSAnJywgcGFyc2VkT2JqO1xuICAgICAgICBjb25zdCBzdGF0ZU9iaiA9IHRoaXMuZ2V0U3RhdGVJbmZvcm1hdGlvbihtb2RlKTtcbiAgICAgICAgaWYgKHdpZGdldCAmJiBzdGF0ZU9iaiAmJiB3aWRnZXQuZ2V0QXBwSW5zdGFuY2UoKS5hY3RpdmVQYWdlTmFtZSAmJiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnbG9jYWxzdG9yYWdlJyB8fCBtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdzZXNzaW9uc3RvcmFnZScpKSB7XG4gICAgICAgICAgICBwYXJzZWRPYmogPSBzdGF0ZU9ialt3aWRnZXQuZ2V0QXBwSW5zdGFuY2UoKS5hY3RpdmVQYWdlTmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJzZWRPYmogPSBjbG9uZShzdGF0ZU9iaik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXRlUGFyYW0pIHtcbiAgICAgICAgICAgIGlmIChwYXJzZWRPYmogJiYgIXBhcnNlZE9ialtzdGF0ZVBhcmFtXSkge1xuICAgICAgICAgICAgICAgIHBhcnNlZE9ialtzdGF0ZVBhcmFtXSA9IHt9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICghcGFyc2VkT2JqKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0ge1tzdGF0ZVBhcmFtXToge319O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KHZhbCkgJiYgIWlzQXJyYXkodmFsKSkge1xuICAgICAgICAgICAgICAgIHBhcnNlZE9ialtzdGF0ZVBhcmFtXVtrZXldID0gcGFyc2VkT2JqW3N0YXRlUGFyYW1dW2tleV0gfHwge307XG4gICAgICAgICAgICAgICAgbWVyZ2UocGFyc2VkT2JqW3N0YXRlUGFyYW1dW2tleV0sIHZhbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnNlZE9ialtzdGF0ZVBhcmFtXVtrZXldID0gdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHBhcnNlZE9iaiAmJiAhcGFyc2VkT2JqW2tleV0pIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmpba2V5XSA9IHt9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICghcGFyc2VkT2JqKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0ge1trZXldOiB7fX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNPYmplY3QodmFsKSAmJiAhaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqW2tleV0gPSBwYXJzZWRPYmpba2V5XSB8fCB7fTtcbiAgICAgICAgICAgICAgICBtZXJnZShwYXJzZWRPYmpba2V5XSwgdmFsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqW2tleV0gPSB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZm9yIExvY2FsIGFuZCBTZXNzaW9uIFN0b3JhZ2UsIHdyYXAgc3RhdGUgb2JqZWN0IGluc2lkZSBwYWdlIG5hbWUgc28gdGhhdCB3aWRnZXQgbmFtZSBjb25mbGljdHMgZG9uJ3QgYXJpc2UgYmV0d2VlbiBwYWdlcy5cbiAgICAgICAgaWYgKHdpZGdldCAmJiB3aWRnZXQuZ2V0QXBwSW5zdGFuY2UoKS5hY3RpdmVQYWdlTmFtZSAmJiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnbG9jYWxzdG9yYWdlJyB8fCBtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdzZXNzaW9uc3RvcmFnZScpKSB7XG4gICAgICAgICAgICBpZiAoc3RhdGVPYmopIHtcbiAgICAgICAgICAgICAgICBzdGF0ZU9ialt3aWRnZXQuZ2V0QXBwSW5zdGFuY2UoKS5hY3RpdmVQYWdlTmFtZV0gPSBwYXJzZWRPYmo7XG4gICAgICAgICAgICAgICAgcGFyc2VkT2JqID0gc3RhdGVPYmo7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnNlZE9iaiA9IHtbd2lkZ2V0LmdldEFwcEluc3RhbmNlKCkuYWN0aXZlUGFnZU5hbWVdOiBwYXJzZWRPYmp9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuXG4gICAgICAgIGxldCBkZWNvZGVkVVJJID0gZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKGRlY29kZWRVUkkuaW5kZXhPZignPycpIDwgMCkge1xuICAgICAgICAgICAgZGVjb2RlZFVSSSA9IGRlY29kZWRVUkkgKyAnP3dtX3N0YXRlPSc7XG4gICAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZFVSSS5pbmRleE9mKCd3bV9zdGF0ZScpIDwgMCkge1xuICAgICAgICAgICAgZGVjb2RlZFVSSSA9IGRlY29kZWRVUkkgKyAnJndtX3N0YXRlPSc7XG4gICAgICAgIH1cbiAgICAgICAgdXJsID0gZGVjb2RlZFVSSS5yZXBsYWNlKC8od21fc3RhdGU9KS4qPygmfCQpLyAsJyQxJyArIHRoaXMuanNvblRvVXJpKHBhcnNlZE9iaikgKyAnJDInKTtcblxuICAgICAgICBpZiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnbG9jYWxzdG9yYWdlJykge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0od2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1xcLy9nLCAnJykgKyAnX3dtX3N0YXRlJywgSlNPTi5zdHJpbmdpZnkocGFyc2VkT2JqKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZS50b0xvd2VyQ2FzZSgpID09PSAnc2Vzc2lvbnN0b3JhZ2UnKSB7XG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9cXC8vZywgJycpICsgJ193bV9zdGF0ZScsIEpTT04uc3RyaW5naWZ5KHBhcnNlZE9iaikpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaHJlZikgPT09IGRlY29kZVVSSUNvbXBvbmVudCh1cmwpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuSElTVE9SWV9IQU5ETEVSID09PSAncHVzaCcpIHtcbiAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7IHBhdGg6IHVybCB9LCAnJywgdXJsKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLkhJU1RPUllfSEFORExFUiA9PT0gJ3JlcGxhY2UnKSB7XG4gICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoeyBwYXRoOiB1cmwgfSwgJycsIHVybCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBwYXNzZWQgc3RhdGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgdXJsXG4gICAgICogRS5nLlxuICAgICAqIEN1cnJlbnQgc3RhdGUgaW5mb3JtYXRpb24gaXMgbGlrZSA6XG4gICAgIHtcbiAgICAgICBcIndpZGdldF9zdGF0ZVwiOiB7XG4gICAgICAgICAgIFwiVGFibGUxXCI6IHtcbiAgICAgICAgICAgICAgIFwic2VsZWN0ZWRJdGVtXCI6IFtcbiAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgIFwicGFnZVwiOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICBcImluZGV4XCI6IFwiMVwiXG4gICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgXCJwYWdlXCI6IFwiMlwiLFxuICAgICAgICAgICAgICAgICBcImluZGV4XCI6IFwiMVwiXG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgIFwicGFnaW5hdGlvblwiOiBcIjFcIlxuICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICB9XG4gICAgICogSW5wdXQgdmFsdWVzIHdpbGwgYmUgbGlrZTpcbiAgICAgc3ViUGFyYW0gOiAnc2VsZWN0ZWRJdGVtJ1xuXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBjb252ZXJ0IGl0IHRvIHRoZSBmb2xsb3dpbmdcbiAgICAge1xuICAgICAgIFwid2lkZ2V0X3N0YXRlXCI6IHtcbiAgICAgICAgICAgXCJUYWJsZTFcIjoge1xuICAgICAgICAgICAgIFwicGFnaW5hdGlvblwiOiBcIjFcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICB9XG4gICAgICogQHBhcmFtIHN0YXRlUGFyYW1cbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHBhcmFtIHN1YlBhcmFtXG4gICAgICogQHBhcmFtIG1vZGUgOiBvcHRpb25hbCBwYXJhbWV0ZXIgaWYgdGhlIHdpZGdldC92YXJpYWJsZSB1c2VzIGEgc3RhdGUgaGFuZGxpbmcgbW9kZSh1cmwsIGxvY2FsIHN0b3JhZ2UsIHNlc3Npb24gc3RvcmFnZSlcbiAgICAgKiBvdGhlciB0aGFuIHRoZSBwcm9qZWN0IGxldmVsIG1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlU3RhdGVQYXJhbShzdGF0ZVBhcmFtLCBrZXksIHN1YlBhcmFtPywgbW9kZT8sIHdpZGdldD8pIHtcbiAgICAgICAgbGV0IHVybCA9ICcnLCBwYXJzZWRPYmo7XG4gICAgICAgIGNvbnN0IHN0YXRlT2JqID0gdGhpcy5nZXRTdGF0ZUluZm9ybWF0aW9uKG1vZGUpO1xuICAgICAgICBpZiAod2lkZ2V0ICYmIHN0YXRlT2JqICYmIHdpZGdldC5nZXRBcHBJbnN0YW5jZSgpLmFjdGl2ZVBhZ2VOYW1lICYmIChtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdsb2NhbHN0b3JhZ2UnIHx8IG1vZGUudG9Mb3dlckNhc2UoKSA9PT0gJ3Nlc3Npb25zdG9yYWdlJykpIHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IHN0YXRlT2JqW3dpZGdldC5nZXRBcHBJbnN0YW5jZSgpLmFjdGl2ZVBhZ2VOYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcnNlZE9iaiA9IGNsb25lKHN0YXRlT2JqKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldChwYXJzZWRPYmosIFtzdGF0ZVBhcmFtXSkgJiYgIWdldChwYXJzZWRPYmosIGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBGaXggZm9yIFtXTVMtMjQ2OThdOiB3aGVuIHRhYmxlIGlzIGluc2lkZSBhIHByZWZhYiwgc3RhdGUgcGVyc2lzdGVuY2Uga2V5IGlzIGxpa2UgXCJUZXN0TGFiZWxfMTEuVGVzdExhYmVsXzEuc3RhdGljVmFyaWFibGUxVGFibGUxXCJcbiAgICAgICAgLy8gZ2V0KHBhcnNlZE9iaiwgc3RhdGVQYXJhbSArICcuJyArIGtleSkgaXMgdW5kZWZpbmVkIHNvIHVzaW5nIChwYXJzZWRPYmogJiYgcGFyc2VkT2JqW3N0YXRlUGFyYW1dICYmIHBhcnNlZE9ialtzdGF0ZVBhcmFtXVtrZXldKSBjb25kaXRpb24uXG4gICAgICAgIGlmIChnZXQocGFyc2VkT2JqLCBzdGF0ZVBhcmFtICsgJy4nICsga2V5KSB8fCAocGFyc2VkT2JqICYmIHBhcnNlZE9ialtzdGF0ZVBhcmFtXSAmJiBwYXJzZWRPYmpbc3RhdGVQYXJhbV1ba2V5XSkpIHtcbiAgICAgICAgICAgIGlmIChzdWJQYXJhbSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpbc3RhdGVQYXJhbV1ba2V5XVtzdWJQYXJhbV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpbc3RhdGVQYXJhbV1ba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VtcHR5KHBhcnNlZE9ialtzdGF0ZVBhcmFtXVtrZXldKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpbc3RhdGVQYXJhbV1ba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VtcHR5KHBhcnNlZE9ialtzdGF0ZVBhcmFtXSkpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkT2JqW3N0YXRlUGFyYW1dO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFzdGF0ZVBhcmFtICYmIGdldChwYXJzZWRPYmosIGtleSkpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRPYmpba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGZvciBMb2NhbCBhbmQgU2Vzc2lvbiBTdG9yYWdlLCB3cmFwIHN0YXRlIG9iamVjdCBpbnNpZGUgcGFnZSBuYW1lIHNvIHRoYXQgd2lkZ2V0IG5hbWUgY29uZmxpY3RzIGRvbid0IGFyaXNlIGJldHdlZW4gcGFnZXMuXG4gICAgICAgIGlmICh3aWRnZXQgJiYgd2lkZ2V0LmdldEFwcEluc3RhbmNlKCkuYWN0aXZlUGFnZU5hbWUgJiYgKG1vZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2xvY2Fsc3RvcmFnZScgfHwgbW9kZS50b0xvd2VyQ2FzZSgpID09PSAnc2Vzc2lvbnN0b3JhZ2UnKSkge1xuICAgICAgICAgICAgaWYgKHN0YXRlT2JqKSB7XG4gICAgICAgICAgICAgICAgc3RhdGVPYmpbd2lkZ2V0LmdldEFwcEluc3RhbmNlKCkuYWN0aXZlUGFnZU5hbWVdID0gcGFyc2VkT2JqO1xuICAgICAgICAgICAgICAgIHBhcnNlZE9iaiA9IHN0YXRlT2JqO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRPYmogPSB7W3dpZGdldC5nZXRBcHBJbnN0YW5jZSgpLmFjdGl2ZVBhZ2VOYW1lXTogcGFyc2VkT2JqfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIGlmIChtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdsb2NhbHN0b3JhZ2UnKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXFwvL2csICcnKSArICdfd21fc3RhdGUnLCBKU09OLnN0cmluZ2lmeShwYXJzZWRPYmopKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChtb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdzZXNzaW9uc3RvcmFnZScpIHtcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0od2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1xcLy9nLCAnJykgKyAnX3dtX3N0YXRlJywgSlNPTi5zdHJpbmdpZnkocGFyc2VkT2JqKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvZGVkVVJJID0gZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKGlzRW1wdHkocGFyc2VkT2JqKSkge1xuICAgICAgICAgICAgdXJsID0gZGVjb2RlZFVSSS5yZXBsYWNlKC8od21fc3RhdGU9KS4qPygmfCQpLyAsJycgKyAnJDInKTtcbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhbJyYnLCAnPyddLCB1cmwuY2hhckF0KHVybC5sZW5ndGggLSAxKSkpIHtcbiAgICAgICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSh1cmwuY2hhckF0KHVybC5sZW5ndGggLSAxKSwgJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXJsID0gZGVjb2RlZFVSSS5yZXBsYWNlKC8od21fc3RhdGU9KS4qPygmfCQpLyAsJyQxJyArIHRoaXMuanNvblRvVXJpKHBhcnNlZE9iaikgKyAnJDInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7IHBhdGg6IHVybCB9LCAnJywgdXJsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyB0aGUgU3RhdGUgSW5mb3JtYXRpb24gb2JqZWN0IGludG8gYW4gZW5jb2RlZCBvYmplY3Qgd2hlbiBzdGF0ZSBoYW5kbGluZyBtb2RlIGlzIFVSTFxuICAgICAqIHNvIHRoYXQgYSBtZWFuaW5nZnVsIFVSTCBjYW4gYmUgZm9ybWVkIGFuZCB0aGUgdXNlciBjYW4gbWFrZSBjaGFuZ2VzIGVhc2lseSB0byB0aGUgVVJMLlxuICAgICAqIEUuZy5cbiAgICAgKiBzdGF0ZSBpbmZvcm1hdGlvbiBpbnB1dCB3aWxsIGJlIGxpa2UgOlxuICAgICB7XG4gICAgICAgICBcIndpZGdldC1zdGF0ZVwiOiB7XG4gICAgICAgICAgICAgXCJUYWJsZTFcIjoge1xuICAgICAgICAgICAgIFwicGFnaW5hdGlvblwiOiBcIjNcIixcbiAgICAgICAgICAgICBcInNlYXJjaFwiOltcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZpZWxkXCI6XCJzdGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjpcIk5ZXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXRjaE1vZGVcIjpcImFueXdoZXJlaWdub3JlY2FzZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOlwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICB9LFxuICAgICBcIkN1c3RvbVZhcmlhYmxlU2VsZWN0ZWRJdGVtc1wiOiBbXCIyXCIsIFwiM1wiXVxuICAgICB9XG5cblxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgY29udmVydCBpdCB0byB0aGUgZm9sbG93aW5nXG4gICAgICgnd2lkZ2V0LXN0YXRlJ34oJ1RhYmxlMSd+KCdwYWdpbmF0aW9uJ34nMydfJ3NlYXJjaCd+ISgnZmllbGQnfidzdGF0ZSdfJ3ZhbHVlJ34nTlknXydtYXRjaE1vZGUnfidhbnl3aGVyZWlnbm9yZWNhc2UnXyd0eXBlJ34nc3RyaW5nJykqKSlfJ0N1c3RvbVZhcmlhYmxlU2VsZWN0ZWRJdGVtcyd+IScyJ18nMycqKVxuICAgICAqIEBwYXJhbSBqc29uT2JqXG4gICAgICovXG4gICAgcHJpdmF0ZSBqc29uVG9VcmkoanNvbk9iaikge1xuICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoanNvbk9iailcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvWygpJ35fISpdL2csIGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSAoKSd+XyEqIHdpdGggXFx1MDAwMCBlc2NhcGUgc2VxdWVuY2VzXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnXFxcXHUnICsgKCcwMDAwJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcey9nLCAnKCcpICAgIC8vICAgIHsgLT4gKFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXH0vZywgJyknKSAgICAvLyAgICB9IC0+IClcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXCIvZywgIFwiJ1wiKSAgICAvLyAgICBcIiAtPiAnXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcOi9nLCAnficpICAgIC8vICAgIDogLT4gflxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8sL2csICAnXycpICAgIC8vICAgICwgLT4gX1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFsvZywgJyEnKSAgICAvLyAgICBbIC0+ICFcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxdL2csICcqJykgICAgLy8gICAgXSAtPiAqXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVjb2RlcyB0aGUgZW5jb2RlZCBTdGF0ZSBJbmZvcm1hdGlvbiBvYmplY3QgaW50byBhIEpTT04gb2JqZWN0IHdoZW4gc3RhdGUgaGFuZGxpbmcgbW9kZSBpcyBVUkxcbiAgICAgKiBzbyB0aGF0IHN0YXRlIGluZm9ybWF0aW9uIGNhbiBiZSBwYXJzZWQgYW5kIGFwcGxpZWQgdG8gdGhlIHdpZGdldHMuXG4gICAgICogRS5nLlxuICAgICAqIGVuY29kZWQgc3RhdGUgaW5mb3JtYXRpb24gaW5wdXQgd2lsbCBiZSBsaWtlIDpcbiAgICAgKCd3aWRnZXQtc3RhdGUnfignVGFibGUxJ34oJ3BhZ2luYXRpb24nficzJ18nc2VhcmNoJ34hKCdmaWVsZCd+J3N0YXRlJ18ndmFsdWUnfidOWSdfJ21hdGNoTW9kZSd+J2FueXdoZXJlaWdub3JlY2FzZSdfJ3R5cGUnfidzdHJpbmcnKSopKV8nQ3VzdG9tVmFyaWFibGVTZWxlY3RlZEl0ZW1zJ34hJzInXyczJyopXG5cblxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgY29udmVydCBpdCB0byB0aGUgZm9sbG93aW5nXG4gICAgIHtcbiAgICAgICAgIFwid2lkZ2V0LXN0YXRlXCI6IHtcbiAgICAgICAgICAgICBcIlRhYmxlMVwiOiB7XG4gICAgICAgICAgICAgXCJwYWdpbmF0aW9uXCI6IFwiM1wiLFxuICAgICAgICAgICAgIFwic2VhcmNoXCI6W1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZmllbGRcIjpcInN0YXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOlwiTllcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hdGNoTW9kZVwiOlwiYW55d2hlcmVpZ25vcmVjYXNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6XCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgIH0sXG4gICAgIFwiQ3VzdG9tVmFyaWFibGVTZWxlY3RlZEl0ZW1zXCI6IFtcIjJcIiwgXCIzXCJdXG4gICAgIH1cbiAgICAgKiBAcGFyYW0gZW5jb2RlZE9ialxuICAgICAqL1xuICAgIHByaXZhdGUgdXJpVG9Kc29uKGVuY29kZWRPYmopIHtcbiAgICAgICAgbGV0IHJlc3BvbnNlOiBhbnk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXNwb25zZSA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRPYmopXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXCgvZywgJ3snKSAgICAvLyAgICAoIC0+IHtcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcKS9nLCAnfScpICAgIC8vICAgICkgLT4gfVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvJy9nLCAgJ1wiJykgICAgLy8gICAgJyAtPiBcIlxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvfi9nLCAgJzonKSAgICAvLyAgICB+IC0+IDpcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL18vZywgICcsJykgICAgLy8gICAgXyAtPiAsXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXCEvZywgJ1snKSAgICAvLyAgICAhIC0+IFtcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcKi9nLCAnXScpICAgIC8vICAgICogLT4gXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG59XG5cbiJdfQ==
@@ -13,11 +13,11 @@ export class CustomPipeManager {
13
13
  hasCustomPipe(key) {
14
14
  return this.customPipes.has(key);
15
15
  }
16
- static { this.ɵfac = function CustomPipeManager_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CustomPipeManager)(); }; }
17
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CustomPipeManager, factory: CustomPipeManager.ɵfac, providedIn: 'root' }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomPipeManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomPipeManager, providedIn: 'root' }); }
18
18
  }
19
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CustomPipeManager, [{
20
- type: Injectable,
21
- args: [{ providedIn: 'root' }]
22
- }], null, null); })();
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jdXN0b20tcGlwZS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9zZXJ2aWNlcy91c2VyLWN1c3RvbS1waXBlLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRVksZ0JBQVcsR0FBUSxJQUFJLEdBQUcsRUFBRSxDQUFDO0tBZXhDO0lBYlUsYUFBYSxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO2tIQWJRLGlCQUFpQjt1RUFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQixtQkFESixNQUFNOztpRkFDbkIsaUJBQWlCO2NBRDdCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDdXN0b21QaXBlTWFuYWdlciB7XG4gICAgcHJpdmF0ZSBjdXN0b21QaXBlczogYW55ID0gbmV3IE1hcCgpO1xuXG4gICAgcHVibGljIHNldEN1c3RvbVBpcGUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jdXN0b21QaXBlcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEN1c3RvbVBpcGUoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tUGlwZXMuZ2V0KGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0N1c3RvbVBpcGUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tUGlwZXMuaGFzKGtleSk7XG4gICAgfVxuXG5cbn1cblxuIl19
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomPipeManager, decorators: [{
20
+ type: Injectable,
21
+ args: [{ providedIn: 'root' }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jdXN0b20tcGlwZS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9zZXJ2aWNlcy91c2VyLWN1c3RvbS1waXBlLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRVksZ0JBQVcsR0FBUSxJQUFJLEdBQUcsRUFBRSxDQUFDO0tBZXhDO0lBYlUsYUFBYSxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sYUFBYSxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQWJRLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBREosTUFBTTs7NEZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDdXN0b21QaXBlTWFuYWdlciB7XG4gICAgcHJpdmF0ZSBjdXN0b21QaXBlczogYW55ID0gbmV3IE1hcCgpO1xuXG4gICAgcHVibGljIHNldEN1c3RvbVBpcGUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jdXN0b21QaXBlcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEN1c3RvbVBpcGUoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tUGlwZXMuZ2V0KGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0N1c3RvbVBpcGUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tUGlwZXMuaGFzKGtleSk7XG4gICAgfVxuXG5cbn1cblxuIl19
@@ -6,11 +6,11 @@ export class UtilsService {
6
6
  constructor() {
7
7
  assign(this, Utils);
8
8
  }
9
- static { this.ɵfac = function UtilsService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UtilsService)(); }; }
10
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: UtilsService, factory: UtilsService.ɵfac, providedIn: 'root' }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UtilsService, providedIn: 'root' }); }
11
11
  }
12
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UtilsService, [{
13
- type: Injectable,
14
- args: [{ providedIn: 'root' }]
15
- }], () => [], null); })();
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBR2pDLE1BQU0sT0FBTyxZQUFZO0lBQ3JCO1FBQ0ksTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDOzZHQUhRLFlBQVk7dUVBQVosWUFBWSxXQUFaLFlBQVksbUJBREEsTUFBTTs7aUZBQ2xCLFlBQVk7Y0FEeEIsVUFBVTtlQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHthc3NpZ259IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgYXNzaWduKHRoaXMsIFV0aWxzKTtcbiAgICB9XG59XG4iXX0=
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UtilsService, decorators: [{
13
+ type: Injectable,
14
+ args: [{ providedIn: 'root' }]
15
+ }], ctorParameters: () => [] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBR2pDLE1BQU0sT0FBTyxZQUFZO0lBQ3JCO1FBQ0ksTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDOytHQUhRLFlBQVk7bUhBQVosWUFBWSxjQURBLE1BQU07OzRGQUNsQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHthc3NpZ259IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgYXNzaWduKHRoaXMsIFV0aWxzKTtcbiAgICB9XG59XG4iXX0=
@@ -97,11 +97,11 @@ export class Viewport {
97
97
  this._eventNotifier.destroy();
98
98
  window.removeEventListener('resize', this.resizeFn);
99
99
  }
100
- static { this.ɵfac = function Viewport_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Viewport)(); }; }
101
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Viewport, factory: Viewport.ɵfac, providedIn: 'root' }); }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Viewport, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
101
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Viewport, providedIn: 'root' }); }
102
102
  }
103
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Viewport, [{
104
- type: Injectable,
105
- args: [{ providedIn: 'root' }]
106
- }], () => [], null); })();
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3NlcnZpY2VzL3ZpZXdwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFFOUIsSUFBSSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDL0IsSUFBSSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFDNUIsSUFBSSwwQkFBMEIsR0FBRyxJQUFJLENBQUM7QUFRdEMsTUFBTSxPQUFPLGdCQUFnQjtDQUc1QjtBQVFELE1BQU0sT0FBTyxRQUFRO0lBYWpCO1FBWk8sZ0JBQVcsR0FBRztZQUNqQixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXLEVBQUUsS0FBSztTQUNyQixDQUFDO1FBQ0ssaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsbUJBQWMsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU01QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsTUFBTSxDQUFDLGdCQUFnQixzQ0FBdUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV4RSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDM0QsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFV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QkFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxJQUFJLDZCQUFxQixDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDO3lHQXJHUSxRQUFRO3VFQUFSLFFBQVEsV0FBUixRQUFRLG1CQURJLE1BQU07O2lGQUNsQixRQUFRO2NBRHBCLFVBQVU7ZUFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50Tm90aWZpZXIgfSBmcm9tICcuLi91dGlscy9ldmVudC1ub3RpZmllcic7XG5pbXBvcnQgeyBpc0FuZHJvaWQsIGlzQW5kcm9pZFRhYmxldCwgaXNJb3MsIGlzSXBhZCB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7Z2V0fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmxldCBNSU5JTVVNX01PQklMRV9XSURUSCA9IDQ4MDtcbmxldCBNSU5JTVVNX1RBQl9XSURUSCA9IDc2ODtcbmxldCBNSU5JTVVNX0xBUkdFX1NDUkVFTl9XSURUSCA9IDEyMDA7XG5cbmNvbnN0IGVudW0gU0NSRUVOX1RZUEUge1xuICAgIE1PQklMRSxcbiAgICBUQUJMRVQsXG4gICAgTEFSR0VfU0NSRUVOX0RFVklDRVNcbn1cblxuZXhwb3J0IGNsYXNzIElWaWV3cG9ydFNlcnZpY2Uge1xuICAgIG5vdGlmeTogKGV2ZW50bmFtZTogVmlld3BvcnRFdmVudCwgb3B0aW9ucz86IEFycmF5PGFueT4pID0+IHZvaWQ7XG4gICAgc3Vic2NyaWJlOiAoZXZlbnRuYW1lOiBWaWV3cG9ydEV2ZW50LCBjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gVmlld3BvcnRFdmVudCB7XG4gICAgT1JJRU5UQVRJT05fQ0hBTkdFID0gJ29yaWVudGF0aW9uY2hhbmdlJyxcbiAgICBSRVNJWkUgPSAncmVzaXplJ1xufVxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBWaWV3cG9ydCBpbXBsZW1lbnRzIElWaWV3cG9ydFNlcnZpY2UsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIG9yaWVudGF0aW9uID0ge1xuICAgICAgICBpc1BvcnRyYWl0OiBmYWxzZSxcbiAgICAgICAgaXNMYW5kc2NhcGU6IGZhbHNlXG4gICAgfTtcbiAgICBwdWJsaWMgaXNNb2JpbGVUeXBlID0gZmFsc2U7XG4gICAgcHVibGljIGlzVGFibGV0VHlwZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgdHlwZTtcbiAgICBwdWJsaWMgX2V2ZW50Tm90aWZpZXIgPSBuZXcgRXZlbnROb3RpZmllcih0cnVlKTtcbiAgICBwcml2YXRlIHNjcmVlbldpZHRoO1xuICAgIHByaXZhdGUgc2NyZWVuSGVpZ2h0O1xuICAgIHByaXZhdGUgc2VsZWN0ZWRWaWV3UG9ydDogYW55O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2V0U2NyZWVuVHlwZSgpO1xuXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFZpZXdwb3J0RXZlbnQuUkVTSVpFLCB0aGlzLnJlc2l6ZUZuLmJpbmQodGhpcykpO1xuXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gd2luZG93Lm1hdGNoTWVkaWEoJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyk7XG4gICAgICAgIGlmIChxdWVyeS5tYXRjaGVzKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uLmlzUG9ydHJhaXQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vcmllbnRhdGlvbi5pc0xhbmRzY2FwZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgYSBtZWRpYSBxdWVyeSBjaGFuZ2UgbGlzdGVuZXJcbiAgICAgICAgLy8gYWRkRXZlbnRMaXN0ZW5lciBpcyBub3Qgc3VwcG9ydGVkIGlvcyBicm93c2VyXG4gICAgICAgIGlmIChxdWVyeS5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgICAgICBxdWVyeS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAkZXZlbnQgPT4gdGhpcy5vcmllbnRhdGlvbkNoYW5nZSgkZXZlbnQsICEkZXZlbnQubWF0Y2hlcykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlKHNlbGVjdGVkVmlld1BvcnQ6IE9iamVjdCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmlld1BvcnQgPSBzZWxlY3RlZFZpZXdQb3J0O1xuICAgICAgICB0aGlzLnNldFNjcmVlblR5cGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9yaWVudGF0aW9uQ2hhbmdlKCRldmVudCwgaXNMYW5kc2NhcGUpIHtcbiAgICAgICAgaWYgKGlzTGFuZHNjYXBlICE9PSB0aGlzLm9yaWVudGF0aW9uLmlzTGFuZHNjYXBlKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uLmlzUG9ydHJhaXQgPSAhaXNMYW5kc2NhcGU7XG4gICAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uLmlzTGFuZHNjYXBlID0gaXNMYW5kc2NhcGU7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeShWaWV3cG9ydEV2ZW50Lk9SSUVOVEFUSU9OX0NIQU5HRSwgeyAkZXZlbnQsIGRhdGE6IHtpc1BvcnRyYWl0OiAhaXNMYW5kc2NhcGUsIGlzTGFuZHNjYXBlOiBpc0xhbmRzY2FwZX0gfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2l6ZUZuKCRldmVudCkge1xuICAgICAgICBjb25zdCAkZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcud20tYXBwJyk7XG4gICAgICAgIGlmICghJGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTY3JlZW5UeXBlKCk7XG4gICAgICAgIHRoaXMub3JpZW50YXRpb25DaGFuZ2UoJGV2ZW50LCB0aGlzLnNjcmVlbldpZHRoID49IHRoaXMuc2NyZWVuSGVpZ2h0KTtcbiAgICAgICAgdGhpcy5ub3RpZnkoVmlld3BvcnRFdmVudC5SRVNJWkUsIHskZXZlbnQsIGRhdGE6IHtzY3JlZW5XaWR0aDogdGhpcy5zY3JlZW5XaWR0aCwgc2NyZWVuSGVpZ2h0OiB0aGlzLnNjcmVlbkhlaWdodH19KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3Vic2NyaWJlKGV2ZW50TmFtZSwgY2FsbGJhY2s6IChkYXRhOiBhbnkpID0+IHZvaWQpOiAoKSA9PiB2b2lkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V2ZW50Tm90aWZpZXIuc3Vic2NyaWJlKGV2ZW50TmFtZSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIHB1YmxpYyBub3RpZnkoZXZlbnROYW1lOiBzdHJpbmcsIC4uLmRhdGE6IEFycmF5PGFueT4pIHtcbiAgICAgICAgdGhpcy5fZXZlbnROb3RpZmllci5ub3RpZnkuYXBwbHkodGhpcy5fZXZlbnROb3RpZmllciwgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNjcmVlblR5cGUoKSB7XG4gICAgICAgIGNvbnN0ICRlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy53bS1hcHAnKTtcbiAgICAgICAgdGhpcy5zY3JlZW5XaWR0aCA9ICRlbC5jbGllbnRXaWR0aDtcbiAgICAgICAgdGhpcy5zY3JlZW5IZWlnaHQgPSAkZWwuY2xpZW50SGVpZ2h0O1xuXG4gICAgICAgIHZhciBtaW5WYWx1ZSA9IHRoaXMuc2NyZWVuV2lkdGggPCB0aGlzLnNjcmVlbkhlaWdodCA/IHRoaXMuc2NyZWVuV2lkdGggOiB0aGlzLnNjcmVlbkhlaWdodDtcbiAgICAgICAgdmFyIG1heFZhbHVlID0gdGhpcy5zY3JlZW5XaWR0aCA+IHRoaXMuc2NyZWVuSGVpZ2h0ID8gdGhpcy5zY3JlZW5XaWR0aCA6IHRoaXMuc2NyZWVuSGVpZ2h0O1xuXG4gICAgICAgIHRoaXMuaXNUYWJsZXRUeXBlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNNb2JpbGVUeXBlID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGdldCh0aGlzLnNlbGVjdGVkVmlld1BvcnQsICdkZXZpY2VDYXRlZ29yeScpKSB7XG4gICAgICAgICAgICBjb25zdCBkZXZpY2VDYXRlZ29yeSA9IHRoaXMuc2VsZWN0ZWRWaWV3UG9ydC5kZXZpY2VDYXRlZ29yeTtcbiAgICAgICAgICAgIGlmIChkZXZpY2VDYXRlZ29yeSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzVGFibGV0VHlwZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRldmljZUNhdGVnb3J5ID09PSAnU21hcnRwaG9uZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlVHlwZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgTUlOSU1VTV9NT0JJTEVfV0lEVEggPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zY3JlZW4teHMnKSkgfHwgNDgwO1xuICAgICAgICAgICAgIE1JTklNVU1fVEFCX1dJRFRIID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tc2NyZWVuLXNtJykpIHx8IDc2ODtcbiAgICAgICAgICAgICBNSU5JTVVNX0xBUkdFX1NDUkVFTl9XSURUSCA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLXNjcmVlbi1sZycpKSB8fCAxMjAwO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2NyZWVuV2lkdGggPj0gTUlOSU1VTV9MQVJHRV9TQ1JFRU5fV0lEVEgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzVGFibGV0VHlwZSA9IGlzQW5kcm9pZCgpIHx8IGlzSW9zKCkgfHwgaXNBbmRyb2lkVGFibGV0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc01vYmlsZVR5cGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zY3JlZW5XaWR0aCA+PSBNSU5JTVVNX1RBQl9XSURUSCkge1xuICAgICAgICAgICAgICAgIHRoaXMudHlwZSA9IFNDUkVFTl9UWVBFLlRBQkxFVDtcbiAgICAgICAgICAgICAgICB0aGlzLmlzVGFibGV0VHlwZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudHlwZSA9IFNDUkVFTl9UWVBFLk1PQklMRTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlVHlwZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fZXZlbnROb3RpZmllci5kZXN0cm95KCk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUZuKTtcbiAgICB9XG59XG4iXX0=
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Viewport, decorators: [{
104
+ type: Injectable,
105
+ args: [{ providedIn: 'root' }]
106
+ }], ctorParameters: () => [] });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3NlcnZpY2VzL3ZpZXdwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFFOUIsSUFBSSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFDL0IsSUFBSSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFDNUIsSUFBSSwwQkFBMEIsR0FBRyxJQUFJLENBQUM7QUFRdEMsTUFBTSxPQUFPLGdCQUFnQjtDQUc1QjtBQVFELE1BQU0sT0FBTyxRQUFRO0lBYWpCO1FBWk8sZ0JBQVcsR0FBRztZQUNqQixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXLEVBQUUsS0FBSztTQUNyQixDQUFDO1FBQ0ssaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsbUJBQWMsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU01QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsTUFBTSxDQUFDLGdCQUFnQixzQ0FBdUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV4RSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDM0QsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFV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QkFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxJQUFJLDZCQUFxQixDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDOytHQXJHUSxRQUFRO21IQUFSLFFBQVEsY0FESSxNQUFNOzs0RkFDbEIsUUFBUTtrQkFEcEIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0V2ZW50Tm90aWZpZXJ9IGZyb20gJy4uL3V0aWxzL2V2ZW50LW5vdGlmaWVyJztcbmltcG9ydCB7aXNBbmRyb2lkLCBpc0FuZHJvaWRUYWJsZXQsIGlzSW9zfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5pbXBvcnQge2dldH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5sZXQgTUlOSU1VTV9NT0JJTEVfV0lEVEggPSA0ODA7XG5sZXQgTUlOSU1VTV9UQUJfV0lEVEggPSA3Njg7XG5sZXQgTUlOSU1VTV9MQVJHRV9TQ1JFRU5fV0lEVEggPSAxMjAwO1xuXG5jb25zdCBlbnVtIFNDUkVFTl9UWVBFIHtcbiAgICBNT0JJTEUsXG4gICAgVEFCTEVULFxuICAgIExBUkdFX1NDUkVFTl9ERVZJQ0VTXG59XG5cbmV4cG9ydCBjbGFzcyBJVmlld3BvcnRTZXJ2aWNlIHtcbiAgICBub3RpZnk6IChldmVudG5hbWU6IFZpZXdwb3J0RXZlbnQsIG9wdGlvbnM/OiBBcnJheTxhbnk+KSA9PiB2b2lkO1xuICAgIHN1YnNjcmliZTogKGV2ZW50bmFtZTogVmlld3BvcnRFdmVudCwgY2FsbGJhY2s6IChkYXRhOiBhbnkpID0+IHZvaWQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIFZpZXdwb3J0RXZlbnQge1xuICAgIE9SSUVOVEFUSU9OX0NIQU5HRSA9ICdvcmllbnRhdGlvbmNoYW5nZScsXG4gICAgUkVTSVpFID0gJ3Jlc2l6ZSdcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVmlld3BvcnQgaW1wbGVtZW50cyBJVmlld3BvcnRTZXJ2aWNlLCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBvcmllbnRhdGlvbiA9IHtcbiAgICAgICAgaXNQb3J0cmFpdDogZmFsc2UsXG4gICAgICAgIGlzTGFuZHNjYXBlOiBmYWxzZVxuICAgIH07XG4gICAgcHVibGljIGlzTW9iaWxlVHlwZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1RhYmxldFR5cGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIHR5cGU7XG4gICAgcHVibGljIF9ldmVudE5vdGlmaWVyID0gbmV3IEV2ZW50Tm90aWZpZXIodHJ1ZSk7XG4gICAgcHJpdmF0ZSBzY3JlZW5XaWR0aDtcbiAgICBwcml2YXRlIHNjcmVlbkhlaWdodDtcbiAgICBwcml2YXRlIHNlbGVjdGVkVmlld1BvcnQ6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNldFNjcmVlblR5cGUoKTtcblxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihWaWV3cG9ydEV2ZW50LlJFU0laRSwgdGhpcy5yZXNpemVGbi5iaW5kKHRoaXMpKTtcblxuICAgICAgICBjb25zdCBxdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcob3JpZW50YXRpb246IHBvcnRyYWl0KScpO1xuICAgICAgICBpZiAocXVlcnkubWF0Y2hlcykge1xuICAgICAgICAgICAgdGhpcy5vcmllbnRhdGlvbi5pc1BvcnRyYWl0ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3JpZW50YXRpb24uaXNMYW5kc2NhcGUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIGEgbWVkaWEgcXVlcnkgY2hhbmdlIGxpc3RlbmVyXG4gICAgICAgIC8vIGFkZEV2ZW50TGlzdGVuZXIgaXMgbm90IHN1cHBvcnRlZCBpb3MgYnJvd3NlclxuICAgICAgICBpZiAocXVlcnkuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICAgICAgcXVlcnkuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgJGV2ZW50ID0+IHRoaXMub3JpZW50YXRpb25DaGFuZ2UoJGV2ZW50LCAhJGV2ZW50Lm1hdGNoZXMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZShzZWxlY3RlZFZpZXdQb3J0OiBPYmplY3QpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZpZXdQb3J0ID0gc2VsZWN0ZWRWaWV3UG9ydDtcbiAgICAgICAgdGhpcy5zZXRTY3JlZW5UeXBlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcmllbnRhdGlvbkNoYW5nZSgkZXZlbnQsIGlzTGFuZHNjYXBlKSB7XG4gICAgICAgIGlmIChpc0xhbmRzY2FwZSAhPT0gdGhpcy5vcmllbnRhdGlvbi5pc0xhbmRzY2FwZSkge1xuICAgICAgICAgICAgdGhpcy5vcmllbnRhdGlvbi5pc1BvcnRyYWl0ID0gIWlzTGFuZHNjYXBlO1xuICAgICAgICAgICAgdGhpcy5vcmllbnRhdGlvbi5pc0xhbmRzY2FwZSA9IGlzTGFuZHNjYXBlO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkoVmlld3BvcnRFdmVudC5PUklFTlRBVElPTl9DSEFOR0UsIHsgJGV2ZW50LCBkYXRhOiB7aXNQb3J0cmFpdDogIWlzTGFuZHNjYXBlLCBpc0xhbmRzY2FwZTogaXNMYW5kc2NhcGV9IH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNpemVGbigkZXZlbnQpIHtcbiAgICAgICAgY29uc3QgJGVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLndtLWFwcCcpO1xuICAgICAgICBpZiAoISRlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U2NyZWVuVHlwZSgpO1xuICAgICAgICB0aGlzLm9yaWVudGF0aW9uQ2hhbmdlKCRldmVudCwgdGhpcy5zY3JlZW5XaWR0aCA+PSB0aGlzLnNjcmVlbkhlaWdodCk7XG4gICAgICAgIHRoaXMubm90aWZ5KFZpZXdwb3J0RXZlbnQuUkVTSVpFLCB7JGV2ZW50LCBkYXRhOiB7c2NyZWVuV2lkdGg6IHRoaXMuc2NyZWVuV2lkdGgsIHNjcmVlbkhlaWdodDogdGhpcy5zY3JlZW5IZWlnaHR9fSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN1YnNjcmliZShldmVudE5hbWUsIGNhbGxiYWNrOiAoZGF0YTogYW55KSA9PiB2b2lkKTogKCkgPT4gdm9pZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ldmVudE5vdGlmaWVyLnN1YnNjcmliZShldmVudE5hbWUsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbm90aWZ5KGV2ZW50TmFtZTogc3RyaW5nLCAuLi5kYXRhOiBBcnJheTxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2V2ZW50Tm90aWZpZXIubm90aWZ5LmFwcGx5KHRoaXMuX2V2ZW50Tm90aWZpZXIsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTY3JlZW5UeXBlKCkge1xuICAgICAgICBjb25zdCAkZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcud20tYXBwJyk7XG4gICAgICAgIHRoaXMuc2NyZWVuV2lkdGggPSAkZWwuY2xpZW50V2lkdGg7XG4gICAgICAgIHRoaXMuc2NyZWVuSGVpZ2h0ID0gJGVsLmNsaWVudEhlaWdodDtcblxuICAgICAgICB2YXIgbWluVmFsdWUgPSB0aGlzLnNjcmVlbldpZHRoIDwgdGhpcy5zY3JlZW5IZWlnaHQgPyB0aGlzLnNjcmVlbldpZHRoIDogdGhpcy5zY3JlZW5IZWlnaHQ7XG4gICAgICAgIHZhciBtYXhWYWx1ZSA9IHRoaXMuc2NyZWVuV2lkdGggPiB0aGlzLnNjcmVlbkhlaWdodCA/IHRoaXMuc2NyZWVuV2lkdGggOiB0aGlzLnNjcmVlbkhlaWdodDtcblxuICAgICAgICB0aGlzLmlzVGFibGV0VHlwZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzTW9iaWxlVHlwZSA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChnZXQodGhpcy5zZWxlY3RlZFZpZXdQb3J0LCAnZGV2aWNlQ2F0ZWdvcnknKSkge1xuICAgICAgICAgICAgY29uc3QgZGV2aWNlQ2F0ZWdvcnkgPSB0aGlzLnNlbGVjdGVkVmlld1BvcnQuZGV2aWNlQ2F0ZWdvcnk7XG4gICAgICAgICAgICBpZiAoZGV2aWNlQ2F0ZWdvcnkgPT09ICdUYWInKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1RhYmxldFR5cGUgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkZXZpY2VDYXRlZ29yeSA9PT0gJ1NtYXJ0cGhvbmUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc01vYmlsZVR5cGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgIE1JTklNVU1fTU9CSUxFX1dJRFRIID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tc2NyZWVuLXhzJykpIHx8IDQ4MDtcbiAgICAgICAgICAgICBNSU5JTVVNX1RBQl9XSURUSCA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLXNjcmVlbi1zbScpKSB8fCA3Njg7XG4gICAgICAgICAgICAgTUlOSU1VTV9MQVJHRV9TQ1JFRU5fV0lEVEggPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zY3JlZW4tbGcnKSkgfHwgMTIwMDtcbiAgICAgICAgICAgIGlmICh0aGlzLnNjcmVlbldpZHRoID49IE1JTklNVU1fTEFSR0VfU0NSRUVOX1dJRFRIKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1RhYmxldFR5cGUgPSBpc0FuZHJvaWQoKSB8fCBpc0lvcygpIHx8IGlzQW5kcm9pZFRhYmxldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGVUeXBlID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2NyZWVuV2lkdGggPj0gTUlOSU1VTV9UQUJfV0lEVEgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnR5cGUgPSBTQ1JFRU5fVFlQRS5UQUJMRVQ7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1RhYmxldFR5cGUgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnR5cGUgPSBTQ1JFRU5fVFlQRS5NT0JJTEU7XG4gICAgICAgICAgICAgICAgdGhpcy5pc01vYmlsZVR5cGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2V2ZW50Tm90aWZpZXIuZGVzdHJveSgpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVGbik7XG4gICAgfVxufVxuIl19
@@ -78,4 +78,4 @@ export class PartialRefProvider {
78
78
  }
79
79
  export class CustomWidgetRefProvider {
80
80
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy90eXBlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3JCLGlEQUFJLENBQUE7SUFDSixxREFBTSxDQUFBO0lBQ04sdURBQU8sQ0FBQTtJQUNQLHFEQUFNLENBQUE7QUFDVixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUFFRCxNQUFNLE9BQU8sV0FBVztDQUV2QjtBQUVELElBQUssU0EwQ0o7QUExQ0QsV0FBSyxTQUFTO0lBQ1YseUNBQTRCLENBQUE7SUFDNUIsMkNBQThCLENBQUE7SUFDOUIsMkNBQThCLENBQUE7SUFDOUIsMkNBQThCLENBQUE7SUFDOUIsOEJBQWlCLENBQUE7SUFDakIsOEJBQWlCLENBQUE7SUFDakIsOEJBQWlCLENBQUE7SUFDakIsd0NBQTJCLENBQUE7SUFDM0IsMkNBQThCLENBQUE7SUFDOUIsMERBQTZDLENBQUE7SUFDN0MsdUNBQTBCLENBQUE7SUFDMUIsdUNBQTBCLENBQUE7SUFDMUIsb0RBQXVDLENBQUE7SUFDdkMsb0VBQXVELENBQUE7SUFDdkQsOENBQWlDLENBQUE7SUFDakMsbUNBQXNCLENBQUE7SUFDdEIsMkRBQThDLENBQUE7SUFDOUMsb0VBQXVELENBQUE7SUFDdkQsc0RBQXlDLENBQUE7SUFDekMsNENBQStCLENBQUE7SUFDL0Isa0NBQXFCLENBQUE7SUFDckIsaUNBQW9CLENBQUE7SUFDcEIsb0RBQXVDLENBQUE7SUFDdkMsOENBQWlDLENBQUE7SUFDakMsd0NBQTJCLENBQUE7SUFDM0IsNERBQStDLENBQUE7SUFDL0MsdUNBQTBCLENBQUE7SUFDMUIsNkNBQWdDLENBQUE7SUFDaEMsb0RBQXVDLENBQUE7SUFDdkMsb0RBQXVDLENBQUE7SUFDdkMsMERBQTZDLENBQUE7SUFDN0MsMERBQTZDLENBQUE7SUFDN0MsNERBQStDLENBQUE7SUFDL0Msb0RBQXVDLENBQUE7SUFDdkMsaUNBQW9CLENBQUE7SUFDcEIsaUNBQW9CLENBQUE7SUFDcEIsdUNBQTBCLENBQUE7SUFDMUIsbURBQXNDLENBQUE7SUFDdEMsb0RBQXVDLENBQUE7SUFDdkMsOEJBQWlCLENBQUE7SUFDakIsNkNBQWdDLENBQUE7QUFDcEMsQ0FBQyxFQTFDSSxTQUFTLEtBQVQsU0FBUyxRQTBDYjtBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN0QixTQUFTO0NBQ1osQ0FBQztBQUVGLE1BQU0sT0FBZ0IsR0FBRztDQThDeEI7QUFHRCxNQUFNLE9BQWdCLHFCQUFxQjtDQWlCMUM7QUFFRCxNQUFNLE9BQWdCLG1CQUFtQjtDQW1CeEM7QUFFRCxNQUFNLE9BQWdCLG1CQUFtQjtDQWlCeEM7QUFFRCxNQUFNLE9BQWdCLHNCQUFzQjtDQWdCM0M7QUFFRCxNQUFNLE9BQWdCLHNCQUFzQjtDQU8zQztBQUNELE1BQU0sT0FBZ0IsMkJBQTJCO0NBRWhEO0FBVUQsTUFBTSxPQUFnQix5QkFBeUI7Q0FLOUM7QUFFRCxNQUFNLE9BQWdCLFdBQVc7Q0FNaEM7QUFFRCxNQUFNLE9BQWdCLDJCQUEyQjtDQUVoRDtBQUVELE1BQU0sT0FBZ0Isa0JBQWtCO0NBRXZDO0FBRUQsTUFBTSxPQUFnQix1QkFBdUI7Q0FFNUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDb21wb25lbnRUeXBlIHtcbiAgICBQQUdFLFxuICAgIFBSRUZBQixcbiAgICBQQVJUSUFMLFxuICAgIFdJREdFVFxufVxuXG5leHBvcnQgY2xhc3MgSURhdGFTb3VyY2Uge1xuICAgIGV4ZWN1dGU6IChvcGVyYXRpb246IE9wZXJhdGlvbiwgb3B0aW9ucz86IGFueSkgPT4gYm9vbGVhbiB8IHN0cmluZyB8IFByb21pc2U8YW55Pjtcbn1cblxuZW51bSBPcGVyYXRpb24ge1xuICAgIExJU1RfUkVDT1JEUyA9ICdsaXN0UmVjb3JkcycsXG4gICAgVVBEQVRFX1JFQ09SRCA9ICd1cGRhdGVSZWNvcmQnLFxuICAgIElOU0VSVF9SRUNPUkQgPSAnaW5zZXJ0UmVjb3JkJyxcbiAgICBERUxFVEVfUkVDT1JEID0gJ2RlbGV0ZVJlY29yZCcsXG4gICAgSU5WT0tFID0gJ2ludm9rZScsXG4gICAgVVBEQVRFID0gJ3VwZGF0ZScsXG4gICAgTk9USUZZID0gJ25vdGlmeScsXG4gICAgSVNfQVBJX0FXQVJFID0gJ2lzQXBpQXdhcmUnLFxuICAgIFNVUFBPUlRTX0NSVUQgPSAnc3VwcG9ydHNDUlVEJyxcbiAgICBTVVBQT1JUU19ESVNUSU5DVF9BUEkgPSAnc3VwcG9ydHNEaXN0aW5jdEFQSScsXG4gICAgSVNfUEFHRUFCTEUgPSAnaXNQYWdlYWJsZScsXG4gICAgSVNfU09SVEFCTEUgPSAnaXNTb3J0YWJsZScsXG4gICAgR0VUX09QRVJBVElPTl9UWVBFID0gJ2dldE9wZXJhdGlvblR5cGUnLFxuICAgIEdFVF9SRUxBVEVEX1BSSU1BUllfS0VZUyA9ICdnZXRSZWxhdGVkVGFibGVQcmltYXJ5S2V5cycsXG4gICAgR0VUX0VOVElUWV9OQU1FID0gJ2dldEVudGl0eU5hbWUnLFxuICAgIFNFVF9JTlBVVCA9ICdzZXRpbnB1dCcsXG4gICAgR0VUX1JFTEFURURfVEFCTEVfREFUQSA9ICdnZXRSZWxhdGVkVGFibGVEYXRhJyxcbiAgICBHRVRfRElTVElOQ1RfREFUQV9CWV9GSUVMRFMgPSAnZ2V0RGlzdGluY3REYXRhQnlGaWVsZHMnLFxuICAgIEdFVF9BR0dSRUdBVEVEX0RBVEEgPSAnZ2V0QWdncmVnYXRlZERhdGEnLFxuICAgIEdFVF9NQVRDSF9NT0RFID0gJ2dldE1hdGNoTW9kZScsXG4gICAgRE9XTkxPQUQgPSAnZG93bmxvYWQnLFxuICAgIEdFVF9OQU1FID0gJ2dldE5hbWUnLFxuICAgIEdFVF9QUk9QRVJUSUVTX01BUCA9ICdnZXRQcm9wZXJ0aWVzTWFwJyxcbiAgICBHRVRfUFJJTUFSWV9LRVkgPSAnZ2V0UHJpbWFyeUtleScsXG4gICAgR0VUX0JMT0JfVVJMID0gJ2dldEJsb2JVUkwnLFxuICAgIFNVUFBPUlRTX1NFUlZFUl9GSUxURVIgPSAnc3VwcG9ydHNTZXJ2ZXJGaWx0ZXInLFxuICAgIEdFVF9PUFRJT05TID0gJ2dldE9wdGlvbnMnLFxuICAgIFNFQVJDSF9SRUNPUkRTID0gJ3NlYXJjaFJlY29yZHMnLFxuICAgIEdFVF9SRVFVRVNUX1BBUkFNUyA9ICdnZXRSZXF1ZXN0UGFyYW1zJyxcbiAgICBHRVRfUEFHSU5HX09QVElPTlMgPSAnZ2V0UGFnaW5nT3B0aW9ucycsXG4gICAgRkVUQ0hfRElTVElOQ1RfVkFMVUVTID0gJ2ZldGNoRGlzdGluY3RWYWx1ZXMnLFxuICAgIEdFVF9VTklRVUVfSURFTlRJRklFUiA9ICdnZXRVbmlxdWVJZGVudGlmaWVyJyxcbiAgICBHRVRfQ09OVEVYVF9JREVOVElGSUVSID0gJ2dldENvbnRleHRJZGVudGlmaWVyJyxcbiAgICBJU19VUERBVEVfUkVRVUlSRUQgPSAnaXNVcGRhdGVSZXF1aXJlZCcsXG4gICAgQUREX0lURU0gPSAnYWRkSXRlbScsXG4gICAgU0VUX0lURU0gPSAnc2V0SXRlbScsXG4gICAgUkVNT1ZFX0lURU0gPSAncmVtb3ZlSXRlbScsXG4gICAgSVNfQk9VTkRfVE9fTE9DQUxFID0gJ2lzQm91bmRUb0xvY2FsZScsXG4gICAgR0VUX0RFRkFVTFRfTE9DQUxFID0gJ2dldERlZmF1bHRMb2NhbGUnLFxuICAgIENBTkNFTCA9ICdjYW5jZWwnLFxuICAgIFNFVF9QQUdJTkFUSU9OID0gJ3NldFBhZ2luYXRpb24nXG59XG5cbmV4cG9ydCBjb25zdCBEYXRhU291cmNlID0ge1xuICAgIE9wZXJhdGlvblxufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFwcCB7XG4gICAgYXBwTG9jYWxlOiBhbnk7XG4gICAgVmFyaWFibGVzOiBhbnk7XG4gICAgQWN0aW9uczogYW55O1xuICAgIG9uQXBwVmFyaWFibGVzUmVhZHk6IEZ1bmN0aW9uO1xuICAgIG9uU2Vzc2lvblRpbWVvdXQ6IEZ1bmN0aW9uO1xuICAgIG9uQmVmb3JlQXBwUmVhZHk6IEZ1bmN0aW9uO1xuICAgIG9uUGFnZVJlYWR5OiBGdW5jdGlvbjtcbiAgICBvbkJlZm9yZVBhZ2VMZWF2ZTogRnVuY3Rpb247XG4gICAgb25CZWZvcmVTZXJ2aWNlQ2FsbDogRnVuY3Rpb247XG4gICAgb25TZXJ2aWNlU3VjY2VzczogRnVuY3Rpb247XG4gICAgb25TZXJ2aWNlRXJyb3I6IEZ1bmN0aW9uO1xuICAgIHByb2plY3ROYW1lOiBzdHJpbmc7XG4gICAgaXNQcmVmYWJUeXBlOiBib29sZWFuO1xuICAgIGlzQXBwbGljYXRpb25UeXBlOiBib29sZWFuO1xuICAgIHNldHdpZGdldExvY2FsZTogRnVuY3Rpb247XG4gICAgc2V0QXBwTW9kZTogRnVuY3Rpb247XG4gICAgaXNUYWJsZXRBcHBsaWNhdGlvblR5cGU6IGJvb2xlYW47XG4gICAgaXNUZW1wbGF0ZUJ1bmRsZVR5cGU6IGJvb2xlYW47XG4gICAgY2hhbmdlTG9jYWxlOiBGdW5jdGlvbjtcbiAgICBnZXRTZWxlY3RlZExvY2FsZTogRnVuY3Rpb247XG4gICAgc2V0VGltZXpvbmU6IEZ1bmN0aW9uO1xuICAgIHJlbG9hZDogRnVuY3Rpb247XG4gICAgb240MDE6IEZ1bmN0aW9uO1xuICAgIG5vdGlmeUFwcDogRnVuY3Rpb247XG4gICAgaW1wb3J0TW9kdWxlOiBGdW5jdGlvbjtcbiAgICBnZXREZXBlbmRlbmN5OiBGdW5jdGlvbjtcbiAgICBuZXR3b3JrU3RhdHVzOiBhbnk7XG4gICAgbm90aWZ5OiAoZXZlbnROYW1lOiBzdHJpbmcsIGRhdGE/OiBhbnkpID0+IHZvaWQ7XG4gICAgZGVwbG95ZWRVcmw6IHN0cmluZztcbiAgICBjdXN0b21VcmxTY2hlbWU6IHN0cmluZztcbiAgICBzZWxlY3RlZFZpZXdQb3J0OiBPYmplY3Q7XG4gICAgc3Vic2NyaWJlOiAoZXZlbnROYW1lLCBjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZCkgPT4gKCkgPT4gdm9pZDtcbiAgICBkeW5hbWljQ29tcG9uZW50Q29udGFpbmVyUmVmOiBhbnk7XG4gICAgY2xlYXJQYWdlQ2FjaGU6IChwYWdlTmFtZT86IHN0cmluZykgPT4gdm9pZDtcblxuICAgIGFjdGl2ZVBhZ2VOYW1lOiBzdHJpbmc7XG4gICAgYWN0aXZlUGFnZTogYW55O1xuICAgIFBhZ2U6IGFueTtcbiAgICBhY3RpdmVQYWdlTG9hZFRpbWU6IG51bWJlcjtcbiAgICBsYW5kaW5nUGFnZU5hbWU6IHN0cmluZztcbiAgICBsYXN0QWN0aXZlUGFnZU5hbWU6IHN0cmluZztcbiAgICBkZXZpY2VDYXRlZ29yeTogc3RyaW5nO1xuXG4gICAgYWN0aXZlTGF5b3V0TmFtZTogc3RyaW5nO1xuICAgIGxheW91dFBhZ2VzOiBzdHJpbmdbXTtcbn1cblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REaWFsb2dTZXJ2aWNlIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVnaXN0ZXIobmFtZTogc3RyaW5nLCBkaWFsb2dSZWY6IGFueSwgc2NvcGU6IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IGRlUmVnaXN0ZXIobmFtZTogc3RyaW5nLCBzY29wZTogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgb3BlbihuYW1lOiBzdHJpbmcsIHNjb3BlPzogYW55LCBpbml0U3RhdGU/OiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBjbG9zZShuYW1lOiBzdHJpbmcsIHNjb3BlPzogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2hvd0FwcENvbmZpcm1EaWFsb2coaW5pdFN0YXRlPzogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgY2xvc2VBcHBDb25maXJtRGlhbG9nKCk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldEFwcENvbmZpcm1EaWFsb2coKTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0QXBwQ29uZmlybURpYWxvZyhkaWFsb2dOYW1lOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBjbG9zZUFsbERpYWxvZ3M6IEZ1bmN0aW9uO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBhZGRUb09wZW5lZERpYWxvZ3MocmVmOiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRMYXN0T3BlbmVkRGlhbG9nKCk7XG4gICAgcHVibGljIGFic3RyYWN0IHJlbW92ZUZyb21PcGVuZWREaWFsb2dzKHJlZjogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0T3BlbmVkRGlhbG9ncygpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBhZGRUb0Nsb3NlZERpYWxvZ3MocmVmOiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCByZW1vdmVGcm9tQ2xvc2VkRGlhbG9ncyhyZWY6IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldERpYWxvZ1JlZkZyb21DbG9zZWREaWFsb2dzKCk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEh0dHBTZXJ2aWNlIHtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2VuZChvcHRpb25zOiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXRMb2NhbGUobG9jYWxlKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0TG9jYWxlKCk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldEhlYWRlcihlcnJvciwgaGVhZGVyS2V5KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgaXNQbGF0Zm9ybVNlc3Npb25UaW1lb3V0KGVycm9yKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0KHVybDogc3RyaW5nLCBvcHRpb25zPzogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcG9zdCh1cmwsIGRhdGEsIG9wdGlvbnMpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBwdXQodXJsLCBkYXRhLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcGF0Y2godXJsLCBkYXRhLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZGVsZXRlKHVybCwgb3B0aW9ucyk7XG4gICAgcHVibGljIGFic3RyYWN0IGhlYWQodXJsLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QganNvbnAodXJsLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgdXBsb2FkKHVybCwgZGF0YSwgb3B0aW9ucyk7XG4gICAgcHVibGljIGFic3RyYWN0IHJlZ2lzdGVyT25TZXNzaW9uVGltZW91dChjYWxsYmFjayk7XG4gICAgcHVibGljIGFic3RyYWN0IG9uNDAxKCk7XG4gICAgcHVibGljIGFic3RyYWN0IHB1c2hUb1Nlc3Npb25GYWlsdXJlUXVldWUoY2FsbGJhY2spO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBleGVjdXRlU2Vzc2lvbkZhaWx1cmVSZXF1ZXN0cygpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZW5kQ2FsbEFzT2JzZXJ2YWJsZShvcHRpb25zOiBhbnksIHBhcmFtcz86IGFueSk6IGFueTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0STE4blNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRTZWxlY3RlZExvY2FsZSgpOiBzdHJpbmc7XG4gICAgcHVibGljIGFic3RyYWN0IGdldERlZmF1bHRTdXBwb3J0ZWRMb2NhbGUoKTogc3RyaW5nO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRBcHBMb2NhbGUoKTogYW55O1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXRTZWxlY3RlZExvY2FsZShsb2NhbGUpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBsb2FkRGVmYXVsdExvY2FsZSgpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRMb2NhbGl6ZWRNZXNzYWdlKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBpbml0Q2FsZW5kYXJMb2NhbGUoKTogUHJvbWlzZTxhbnk+O1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBsb2FkQXBwTG9jYWxlQnVuZGxlKCk7XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGxvYWRNb21lbnRMb2NhbGVCdW5kbGUobG9jYWxlTGFuZyk7XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGxvYWRMb2NhbGVCdW5kbGVzKGxvY2FsZUxhbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXRUaW1lem9uZShsb2NhbGUsIGNvbXBJbnN0YW5jZT8pO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRGb3JtYXRzQnlMb2NhbGUoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0VGltZXpvbmUoY29tcEluc3RhbmNlPyk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldFByZWZhYkxvY2FsZUJ1bmRsZShwcmVmYWJOYW1lOiBzdHJpbmcpOiBhbnk7XG4gICAgcHVibGljIGFic3RyYWN0IHNldHdpZGdldExvY2FsZShsb2NhbGUpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXR3aWRnZXRMb2NhbGUoKTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VG9hc3RlclNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzdWNjZXNzKHRpdGxlOiBzdHJpbmcsIGRlc2M6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGVycm9yKHRpdGxlOiBzdHJpbmcsIGRlc2M6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGluZm8odGl0bGU6IHN0cmluZywgZGVzYzogc3RyaW5nKTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgd2Fybih0aXRsZTogc3RyaW5nLCBkZXNjOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG93KFxuICAgICAgICB0eXBlOiBzdHJpbmcsXG4gICAgICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgICAgIGRlc2M6IHN0cmluZyxcbiAgICAgICAgdGltZW91dDogbnVtYmVyLFxuICAgICAgICBib2R5T3V0cHV0VHlwZTogc3RyaW5nLFxuICAgICAgICBvbkNsaWNrSGFuZGxlcjogRnVuY3Rpb24sXG4gICAgICAgIG9uSGlkZUNhbGxiYWNrOiBGdW5jdGlvblxuICAgICk7XG4gICAgcHVibGljIGFic3RyYWN0IGhpZGUodG9hc3Rlck9iajogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2hvd0N1c3RvbShwYWdlTmFtZTogc3RyaW5nLCBvcHRpb25zPzogYW55KTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3Bpbm5lclNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRNZXNzYWdlU291cmNlKCk7XG4gICAgcHVibGljIGFic3RyYWN0IHNob3dDb250ZXh0U3Bpbm5lcihzcGlubmVyQ29udGV4dDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGlkOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG93QXBwU3Bpbm5lcihtc2c6IHN0cmluZywgaWQ6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGhpZGVDb250ZXh0U3Bpbm5lcihjdHg6IHN0cmluZywgaWQ6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IHNob3cobWVzc2FnZTogc3RyaW5nLCBpZD86IHN0cmluZywgc3Bpbm5lckNsYXNzPzogc3RyaW5nLCBzcGlubmVyQ29udGV4dD86IHN0cmluZywgdmFyaWFibGVTY29wZUlkPzogc3RyaW5nKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgaGlkZShpZDogc3RyaW5nKTtcbn1cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQge1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbk9wdGlvbnMge1xuICAgICRldmVudD86IGFueTtcbiAgICBwYWdlTmFtZT86IHN0cmluZztcbiAgICB0cmFuc2l0aW9uPzogc3RyaW5nO1xuICAgIHVybFBhcmFtcz86IGFueTtcbiAgICB2aWV3TmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRQYWdlVHJhbnNpdGlvbigpOiBzdHJpbmc7XG4gICAgcHVibGljIGFic3RyYWN0IGdvVG9QYWdlKHBhZ2VOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IE5hdmlnYXRpb25PcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ29Ub1ByZXZpb3VzKCk7XG4gICAgcHVibGljIGFic3RyYWN0IGdvVG9WaWV3KHZpZXdOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IE5hdmlnYXRpb25PcHRpb25zLCB2YXJpYWJsZTogYW55KTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFwcERlZmF1bHRzIHtcbiAgICBwdWJsaWMgZGF0ZUZvcm1hdDtcbiAgICBwdWJsaWMgdGltZUZvcm1hdDtcbiAgICBwdWJsaWMgZGF0ZVRpbWVGb3JtYXQ7XG4gICAgcHVibGljIGN1cnJlbmN5Q29kZTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0Rm9ybWF0cyhmb3JtYXRzOiBhbnkpO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0Q29tcG9uZW50RmFjdG9yeVJlZihzZWxlY3Rvcjogc3RyaW5nLCBtYXJrdXA6IHN0cmluZywgb3B0aW9ucz86IGFueSk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYXJ0aWFsUmVmUHJvdmlkZXIge1xuICAgIGFic3RyYWN0IGdldENvbXBvbmVudEZhY3RvcnlSZWYocGFydGlhbE5hbWU6IHN0cmluZywgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbVdpZGdldFJlZlByb3ZpZGVyIHtcbiAgICBhYnN0cmFjdCBnZXRDb21wb25lbnRGYWN0b3J5UmVmKGN1c3RvbVdpZGdldE5hbWU6IHN0cmluZywgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YW55Pjtcbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy90eXBlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3JCLGlEQUFJLENBQUE7SUFDSixxREFBTSxDQUFBO0lBQ04sdURBQU8sQ0FBQTtJQUNQLHFEQUFNLENBQUE7QUFDVixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUFFRCxNQUFNLE9BQU8sV0FBVztDQUV2QjtBQUVELElBQUssU0EwQ0o7QUExQ0QsV0FBSyxTQUFTO0lBQ1YseUNBQTRCLENBQUE7SUFDNUIsMkNBQThCLENBQUE7SUFDOUIsMkNBQThCLENBQUE7SUFDOUIsMkNBQThCLENBQUE7SUFDOUIsOEJBQWlCLENBQUE7SUFDakIsOEJBQWlCLENBQUE7SUFDakIsOEJBQWlCLENBQUE7SUFDakIsd0NBQTJCLENBQUE7SUFDM0IsMkNBQThCLENBQUE7SUFDOUIsMERBQTZDLENBQUE7SUFDN0MsdUNBQTBCLENBQUE7SUFDMUIsdUNBQTBCLENBQUE7SUFDMUIsb0RBQXVDLENBQUE7SUFDdkMsb0VBQXVELENBQUE7SUFDdkQsOENBQWlDLENBQUE7SUFDakMsbUNBQXNCLENBQUE7SUFDdEIsMkRBQThDLENBQUE7SUFDOUMsb0VBQXVELENBQUE7SUFDdkQsc0RBQXlDLENBQUE7SUFDekMsNENBQStCLENBQUE7SUFDL0Isa0NBQXFCLENBQUE7SUFDckIsaUNBQW9CLENBQUE7SUFDcEIsb0RBQXVDLENBQUE7SUFDdkMsOENBQWlDLENBQUE7SUFDakMsd0NBQTJCLENBQUE7SUFDM0IsNERBQStDLENBQUE7SUFDL0MsdUNBQTBCLENBQUE7SUFDMUIsNkNBQWdDLENBQUE7SUFDaEMsb0RBQXVDLENBQUE7SUFDdkMsb0RBQXVDLENBQUE7SUFDdkMsMERBQTZDLENBQUE7SUFDN0MsMERBQTZDLENBQUE7SUFDN0MsNERBQStDLENBQUE7SUFDL0Msb0RBQXVDLENBQUE7SUFDdkMsaUNBQW9CLENBQUE7SUFDcEIsaUNBQW9CLENBQUE7SUFDcEIsdUNBQTBCLENBQUE7SUFDMUIsbURBQXNDLENBQUE7SUFDdEMsb0RBQXVDLENBQUE7SUFDdkMsOEJBQWlCLENBQUE7SUFDakIsNkNBQWdDLENBQUE7QUFDcEMsQ0FBQyxFQTFDSSxTQUFTLEtBQVQsU0FBUyxRQTBDYjtBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN0QixTQUFTO0NBQ1osQ0FBQztBQUVGLE1BQU0sT0FBZ0IsR0FBRztDQStDeEI7QUFHRCxNQUFNLE9BQWdCLHFCQUFxQjtDQWlCMUM7QUFFRCxNQUFNLE9BQWdCLG1CQUFtQjtDQW1CeEM7QUFFRCxNQUFNLE9BQWdCLG1CQUFtQjtDQWtCeEM7QUFFRCxNQUFNLE9BQWdCLHNCQUFzQjtDQWdCM0M7QUFFRCxNQUFNLE9BQWdCLHNCQUFzQjtDQU8zQztBQUNELE1BQU0sT0FBZ0IsMkJBQTJCO0NBRWhEO0FBVUQsTUFBTSxPQUFnQix5QkFBeUI7Q0FLOUM7QUFFRCxNQUFNLE9BQWdCLFdBQVc7Q0FNaEM7QUFFRCxNQUFNLE9BQWdCLDJCQUEyQjtDQUVoRDtBQUVELE1BQU0sT0FBZ0Isa0JBQWtCO0NBRXZDO0FBRUQsTUFBTSxPQUFnQix1QkFBdUI7Q0FFNUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDb21wb25lbnRUeXBlIHtcbiAgICBQQUdFLFxuICAgIFBSRUZBQixcbiAgICBQQVJUSUFMLFxuICAgIFdJREdFVFxufVxuXG5leHBvcnQgY2xhc3MgSURhdGFTb3VyY2Uge1xuICAgIGV4ZWN1dGU6IChvcGVyYXRpb246IE9wZXJhdGlvbiwgb3B0aW9ucz86IGFueSkgPT4gYm9vbGVhbiB8IHN0cmluZyB8IFByb21pc2U8YW55Pjtcbn1cblxuZW51bSBPcGVyYXRpb24ge1xuICAgIExJU1RfUkVDT1JEUyA9ICdsaXN0UmVjb3JkcycsXG4gICAgVVBEQVRFX1JFQ09SRCA9ICd1cGRhdGVSZWNvcmQnLFxuICAgIElOU0VSVF9SRUNPUkQgPSAnaW5zZXJ0UmVjb3JkJyxcbiAgICBERUxFVEVfUkVDT1JEID0gJ2RlbGV0ZVJlY29yZCcsXG4gICAgSU5WT0tFID0gJ2ludm9rZScsXG4gICAgVVBEQVRFID0gJ3VwZGF0ZScsXG4gICAgTk9USUZZID0gJ25vdGlmeScsXG4gICAgSVNfQVBJX0FXQVJFID0gJ2lzQXBpQXdhcmUnLFxuICAgIFNVUFBPUlRTX0NSVUQgPSAnc3VwcG9ydHNDUlVEJyxcbiAgICBTVVBQT1JUU19ESVNUSU5DVF9BUEkgPSAnc3VwcG9ydHNEaXN0aW5jdEFQSScsXG4gICAgSVNfUEFHRUFCTEUgPSAnaXNQYWdlYWJsZScsXG4gICAgSVNfU09SVEFCTEUgPSAnaXNTb3J0YWJsZScsXG4gICAgR0VUX09QRVJBVElPTl9UWVBFID0gJ2dldE9wZXJhdGlvblR5cGUnLFxuICAgIEdFVF9SRUxBVEVEX1BSSU1BUllfS0VZUyA9ICdnZXRSZWxhdGVkVGFibGVQcmltYXJ5S2V5cycsXG4gICAgR0VUX0VOVElUWV9OQU1FID0gJ2dldEVudGl0eU5hbWUnLFxuICAgIFNFVF9JTlBVVCA9ICdzZXRpbnB1dCcsXG4gICAgR0VUX1JFTEFURURfVEFCTEVfREFUQSA9ICdnZXRSZWxhdGVkVGFibGVEYXRhJyxcbiAgICBHRVRfRElTVElOQ1RfREFUQV9CWV9GSUVMRFMgPSAnZ2V0RGlzdGluY3REYXRhQnlGaWVsZHMnLFxuICAgIEdFVF9BR0dSRUdBVEVEX0RBVEEgPSAnZ2V0QWdncmVnYXRlZERhdGEnLFxuICAgIEdFVF9NQVRDSF9NT0RFID0gJ2dldE1hdGNoTW9kZScsXG4gICAgRE9XTkxPQUQgPSAnZG93bmxvYWQnLFxuICAgIEdFVF9OQU1FID0gJ2dldE5hbWUnLFxuICAgIEdFVF9QUk9QRVJUSUVTX01BUCA9ICdnZXRQcm9wZXJ0aWVzTWFwJyxcbiAgICBHRVRfUFJJTUFSWV9LRVkgPSAnZ2V0UHJpbWFyeUtleScsXG4gICAgR0VUX0JMT0JfVVJMID0gJ2dldEJsb2JVUkwnLFxuICAgIFNVUFBPUlRTX1NFUlZFUl9GSUxURVIgPSAnc3VwcG9ydHNTZXJ2ZXJGaWx0ZXInLFxuICAgIEdFVF9PUFRJT05TID0gJ2dldE9wdGlvbnMnLFxuICAgIFNFQVJDSF9SRUNPUkRTID0gJ3NlYXJjaFJlY29yZHMnLFxuICAgIEdFVF9SRVFVRVNUX1BBUkFNUyA9ICdnZXRSZXF1ZXN0UGFyYW1zJyxcbiAgICBHRVRfUEFHSU5HX09QVElPTlMgPSAnZ2V0UGFnaW5nT3B0aW9ucycsXG4gICAgRkVUQ0hfRElTVElOQ1RfVkFMVUVTID0gJ2ZldGNoRGlzdGluY3RWYWx1ZXMnLFxuICAgIEdFVF9VTklRVUVfSURFTlRJRklFUiA9ICdnZXRVbmlxdWVJZGVudGlmaWVyJyxcbiAgICBHRVRfQ09OVEVYVF9JREVOVElGSUVSID0gJ2dldENvbnRleHRJZGVudGlmaWVyJyxcbiAgICBJU19VUERBVEVfUkVRVUlSRUQgPSAnaXNVcGRhdGVSZXF1aXJlZCcsXG4gICAgQUREX0lURU0gPSAnYWRkSXRlbScsXG4gICAgU0VUX0lURU0gPSAnc2V0SXRlbScsXG4gICAgUkVNT1ZFX0lURU0gPSAncmVtb3ZlSXRlbScsXG4gICAgSVNfQk9VTkRfVE9fTE9DQUxFID0gJ2lzQm91bmRUb0xvY2FsZScsXG4gICAgR0VUX0RFRkFVTFRfTE9DQUxFID0gJ2dldERlZmF1bHRMb2NhbGUnLFxuICAgIENBTkNFTCA9ICdjYW5jZWwnLFxuICAgIFNFVF9QQUdJTkFUSU9OID0gJ3NldFBhZ2luYXRpb24nXG59XG5cbmV4cG9ydCBjb25zdCBEYXRhU291cmNlID0ge1xuICAgIE9wZXJhdGlvblxufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFwcCB7XG4gICAgYXBwTG9jYWxlOiBhbnk7XG4gICAgVmFyaWFibGVzOiBhbnk7XG4gICAgQWN0aW9uczogYW55O1xuICAgIG9uQXBwVmFyaWFibGVzUmVhZHk6IEZ1bmN0aW9uO1xuICAgIG9uU2Vzc2lvblRpbWVvdXQ6IEZ1bmN0aW9uO1xuICAgIG9uQmVmb3JlQXBwUmVhZHk6IEZ1bmN0aW9uO1xuICAgIG9uUGFnZVJlYWR5OiBGdW5jdGlvbjtcbiAgICBvbkJlZm9yZVBhZ2VMZWF2ZTogRnVuY3Rpb247XG4gICAgb25CZWZvcmVTZXJ2aWNlQ2FsbDogRnVuY3Rpb247XG4gICAgb25TZXJ2aWNlU3VjY2VzczogRnVuY3Rpb247XG4gICAgb25TZXJ2aWNlRXJyb3I6IEZ1bmN0aW9uO1xuICAgIHByb2plY3ROYW1lOiBzdHJpbmc7XG4gICAgaXNQcmVmYWJUeXBlOiBib29sZWFuO1xuICAgIGlzQXBwbGljYXRpb25UeXBlOiBib29sZWFuO1xuICAgIHNldHdpZGdldExvY2FsZTogRnVuY3Rpb247XG4gICAgc2V0TW9kZTogRnVuY3Rpb247XG4gICAgaXNUYWJsZXRBcHBsaWNhdGlvblR5cGU6IGJvb2xlYW47XG4gICAgaXNUZW1wbGF0ZUJ1bmRsZVR5cGU6IGJvb2xlYW47XG4gICAgY2hhbmdlTG9jYWxlOiBGdW5jdGlvbjtcbiAgICBnZXRTZWxlY3RlZExvY2FsZTogRnVuY3Rpb247XG4gICAgc2V0VGltZXpvbmU6IEZ1bmN0aW9uO1xuICAgIHJlbG9hZDogRnVuY3Rpb247XG4gICAgb240MDE6IEZ1bmN0aW9uO1xuICAgIG5vdGlmeUFwcDogRnVuY3Rpb247XG4gICAgaW1wb3J0TW9kdWxlOiBGdW5jdGlvbjtcbiAgICBnZXREZXBlbmRlbmN5OiBGdW5jdGlvbjtcbiAgICBuZXR3b3JrU3RhdHVzOiBhbnk7XG4gICAgbm90aWZ5OiAoZXZlbnROYW1lOiBzdHJpbmcsIGRhdGE/OiBhbnkpID0+IHZvaWQ7XG4gICAgZGVwbG95ZWRVcmw6IHN0cmluZztcbiAgICBjdXN0b21VcmxTY2hlbWU6IHN0cmluZztcbiAgICBzZWxlY3RlZFZpZXdQb3J0OiBPYmplY3Q7XG4gICAgc3Vic2NyaWJlOiAoZXZlbnROYW1lLCBjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZCkgPT4gKCkgPT4gdm9pZDtcbiAgICBkeW5hbWljQ29tcG9uZW50Q29udGFpbmVyUmVmOiBhbnk7XG4gICAgY2xlYXJQYWdlQ2FjaGU6IChwYWdlTmFtZT86IHN0cmluZykgPT4gdm9pZDtcbiAgICBpc1ByaXNtOiBib29sZWFuO1xuXG4gICAgYWN0aXZlUGFnZU5hbWU6IHN0cmluZztcbiAgICBhY3RpdmVQYWdlOiBhbnk7XG4gICAgUGFnZTogYW55O1xuICAgIGFjdGl2ZVBhZ2VMb2FkVGltZTogbnVtYmVyO1xuICAgIGxhbmRpbmdQYWdlTmFtZTogc3RyaW5nO1xuICAgIGxhc3RBY3RpdmVQYWdlTmFtZTogc3RyaW5nO1xuICAgIGRldmljZUNhdGVnb3J5OiBzdHJpbmc7XG5cbiAgICBhY3RpdmVMYXlvdXROYW1lOiBzdHJpbmc7XG4gICAgbGF5b3V0UGFnZXM6IHN0cmluZ1tdO1xufVxuXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdERpYWxvZ1NlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCByZWdpc3RlcihuYW1lOiBzdHJpbmcsIGRpYWxvZ1JlZjogYW55LCBzY29wZTogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZGVSZWdpc3RlcihuYW1lOiBzdHJpbmcsIHNjb3BlOiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBvcGVuKG5hbWU6IHN0cmluZywgc2NvcGU/OiBhbnksIGluaXRTdGF0ZT86IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IGNsb3NlKG5hbWU6IHN0cmluZywgc2NvcGU/OiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG93QXBwQ29uZmlybURpYWxvZyhpbml0U3RhdGU/OiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBjbG9zZUFwcENvbmZpcm1EaWFsb2coKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0QXBwQ29uZmlybURpYWxvZygpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXRBcHBDb25maXJtRGlhbG9nKGRpYWxvZ05hbWU6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGNsb3NlQWxsRGlhbG9nczogRnVuY3Rpb247XG4gICAgcHVibGljIGFic3RyYWN0IGFkZFRvT3BlbmVkRGlhbG9ncyhyZWY6IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldExhc3RPcGVuZWREaWFsb2coKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVtb3ZlRnJvbU9wZW5lZERpYWxvZ3MocmVmOiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRPcGVuZWREaWFsb2dzKCk7XG4gICAgcHVibGljIGFic3RyYWN0IGFkZFRvQ2xvc2VkRGlhbG9ncyhyZWY6IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IHJlbW92ZUZyb21DbG9zZWREaWFsb2dzKHJlZjogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGlhbG9nUmVmRnJvbUNsb3NlZERpYWxvZ3MoKTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0SHR0cFNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZW5kKG9wdGlvbnM6IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IHNldExvY2FsZShsb2NhbGUpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRMb2NhbGUoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0SGVhZGVyKGVycm9yLCBoZWFkZXJLZXkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBpc1BsYXRmb3JtU2Vzc2lvblRpbWVvdXQoZXJyb3IpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBwb3N0KHVybCwgZGF0YSwgb3B0aW9ucyk7XG4gICAgcHVibGljIGFic3RyYWN0IHB1dCh1cmwsIGRhdGEsIG9wdGlvbnMpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBwYXRjaCh1cmwsIGRhdGEsIG9wdGlvbnMpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBkZWxldGUodXJsLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgaGVhZCh1cmwsIG9wdGlvbnMpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBqc29ucCh1cmwsIG9wdGlvbnMpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCB1cGxvYWQodXJsLCBkYXRhLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVnaXN0ZXJPblNlc3Npb25UaW1lb3V0KGNhbGxiYWNrKTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgb240MDEoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcHVzaFRvU2Vzc2lvbkZhaWx1cmVRdWV1ZShjYWxsYmFjayk7XG4gICAgcHVibGljIGFic3RyYWN0IGV4ZWN1dGVTZXNzaW9uRmFpbHVyZVJlcXVlc3RzKCk7XG4gICAgcHVibGljIGFic3RyYWN0IHNlbmRDYWxsQXNPYnNlcnZhYmxlKG9wdGlvbnM6IGFueSwgcGFyYW1zPzogYW55KTogYW55O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RJMThuU2VydmljZSB7XG4gICAgcHVibGljIGFic3RyYWN0IGdldFNlbGVjdGVkTG9jYWxlKCk6IHN0cmluZztcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGVmYXVsdFN1cHBvcnRlZExvY2FsZSgpOiBzdHJpbmc7XG4gICAgcHVibGljIGFic3RyYWN0IGdldEFwcExvY2FsZSgpOiBhbnk7XG4gICAgcHVibGljIGFic3RyYWN0IHNldFNlbGVjdGVkTG9jYWxlKGxvY2FsZSk7XG4gICAgcHVibGljIGFic3RyYWN0IGxvYWREZWZhdWx0TG9jYWxlKCk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldExvY2FsaXplZE1lc3NhZ2UobWVzc2FnZSwgLi4uYXJncyk7XG4gICAgcHVibGljIGFic3RyYWN0IGluaXRDYWxlbmRhckxvY2FsZSgpOiBQcm9taXNlPGFueT47XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGxvYWRBcHBMb2NhbGVCdW5kbGUoKTtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9hZE1vbWVudExvY2FsZUJ1bmRsZShsb2NhbGVMYW5nKTtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9hZExvY2FsZUJ1bmRsZXMobG9jYWxlTGFuZyk7XG4gICAgcHVibGljIGFic3RyYWN0IHNldFRpbWV6b25lKGxvY2FsZSwgY29tcEluc3RhbmNlPyk7XG4gICAgcHVibGljIGFic3RyYWN0IHNldFRpbWV6b25lRWFybHkoKTogUHJvbWlzZTxhbnk+O1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRGb3JtYXRzQnlMb2NhbGUoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0VGltZXpvbmUoY29tcEluc3RhbmNlPyk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldFByZWZhYkxvY2FsZUJ1bmRsZShwcmVmYWJOYW1lOiBzdHJpbmcpOiBhbnk7XG4gICAgcHVibGljIGFic3RyYWN0IHNldHdpZGdldExvY2FsZShsb2NhbGUpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXR3aWRnZXRMb2NhbGUoKTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VG9hc3RlclNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzdWNjZXNzKHRpdGxlOiBzdHJpbmcsIGRlc2M6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGVycm9yKHRpdGxlOiBzdHJpbmcsIGRlc2M6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGluZm8odGl0bGU6IHN0cmluZywgZGVzYzogc3RyaW5nKTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgd2Fybih0aXRsZTogc3RyaW5nLCBkZXNjOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG93KFxuICAgICAgICB0eXBlOiBzdHJpbmcsXG4gICAgICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgICAgIGRlc2M6IHN0cmluZyxcbiAgICAgICAgdGltZW91dDogbnVtYmVyLFxuICAgICAgICBib2R5T3V0cHV0VHlwZTogc3RyaW5nLFxuICAgICAgICBvbkNsaWNrSGFuZGxlcjogRnVuY3Rpb24sXG4gICAgICAgIG9uSGlkZUNhbGxiYWNrOiBGdW5jdGlvblxuICAgICk7XG4gICAgcHVibGljIGFic3RyYWN0IGhpZGUodG9hc3Rlck9iajogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2hvd0N1c3RvbShwYWdlTmFtZTogc3RyaW5nLCBvcHRpb25zPzogYW55KTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3Bpbm5lclNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRNZXNzYWdlU291cmNlKCk7XG4gICAgcHVibGljIGFic3RyYWN0IHNob3dDb250ZXh0U3Bpbm5lcihzcGlubmVyQ29udGV4dDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGlkOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG93QXBwU3Bpbm5lcihtc2c6IHN0cmluZywgaWQ6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGhpZGVDb250ZXh0U3Bpbm5lcihjdHg6IHN0cmluZywgaWQ6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IHNob3cobWVzc2FnZTogc3RyaW5nLCBpZD86IHN0cmluZywgc3Bpbm5lckNsYXNzPzogc3RyaW5nLCBzcGlubmVyQ29udGV4dD86IHN0cmluZywgdmFyaWFibGVTY29wZUlkPzogc3RyaW5nKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgaGlkZShpZDogc3RyaW5nKTtcbn1cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQge1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbk9wdGlvbnMge1xuICAgICRldmVudD86IGFueTtcbiAgICBwYWdlTmFtZT86IHN0cmluZztcbiAgICB0cmFuc2l0aW9uPzogc3RyaW5nO1xuICAgIHVybFBhcmFtcz86IGFueTtcbiAgICB2aWV3TmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRQYWdlVHJhbnNpdGlvbigpOiBzdHJpbmc7XG4gICAgcHVibGljIGFic3RyYWN0IGdvVG9QYWdlKHBhZ2VOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IE5hdmlnYXRpb25PcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ29Ub1ByZXZpb3VzKCk7XG4gICAgcHVibGljIGFic3RyYWN0IGdvVG9WaWV3KHZpZXdOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IE5hdmlnYXRpb25PcHRpb25zLCB2YXJpYWJsZTogYW55KTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFwcERlZmF1bHRzIHtcbiAgICBwdWJsaWMgZGF0ZUZvcm1hdDtcbiAgICBwdWJsaWMgdGltZUZvcm1hdDtcbiAgICBwdWJsaWMgZGF0ZVRpbWVGb3JtYXQ7XG4gICAgcHVibGljIGN1cnJlbmN5Q29kZTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0Rm9ybWF0cyhmb3JtYXRzOiBhbnkpO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0Q29tcG9uZW50RmFjdG9yeVJlZihzZWxlY3Rvcjogc3RyaW5nLCBtYXJrdXA6IHN0cmluZywgb3B0aW9ucz86IGFueSk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYXJ0aWFsUmVmUHJvdmlkZXIge1xuICAgIGFic3RyYWN0IGdldENvbXBvbmVudEZhY3RvcnlSZWYocGFydGlhbE5hbWU6IHN0cmluZywgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbVdpZGdldFJlZlByb3ZpZGVyIHtcbiAgICBhYnN0cmFjdCBnZXRDb21wb25lbnRGYWN0b3J5UmVmKGN1c3RvbVdpZGdldE5hbWU6IHN0cmluZywgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YW55Pjtcbn1cbiJdfQ==