@sapui5/sap.fe.macros 1.114.0 → 1.115.1

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 (261) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/macros/.library +1 -1
  3. package/src/sap/fe/macros/DelegateUtil-dbg.js +1 -1
  4. package/src/sap/fe/macros/DelegateUtil.ts +3 -2
  5. package/src/sap/fe/macros/chart/Chart.block-dbg.js +13 -12
  6. package/src/sap/fe/macros/chart/Chart.block.js +21 -21
  7. package/src/sap/fe/macros/chart/Chart.block.js.map +1 -1
  8. package/src/sap/fe/macros/chart/Chart.block.ts +12 -11
  9. package/src/sap/fe/macros/chart/ChartAPI-dbg.js +10 -5
  10. package/src/sap/fe/macros/chart/ChartAPI.js +1 -1
  11. package/src/sap/fe/macros/chart/ChartAPI.js.map +1 -1
  12. package/src/sap/fe/macros/chart/ChartAPI.ts +23 -7
  13. package/src/sap/fe/macros/chart/ChartDelegate-dbg.js +7 -4
  14. package/src/sap/fe/macros/chart/ChartDelegate.js +1 -1
  15. package/src/sap/fe/macros/chart/ChartDelegate.js.map +1 -1
  16. package/src/sap/fe/macros/chart/ChartDelegate.ts +17 -10
  17. package/src/sap/fe/macros/contact/ContactDelegate-dbg.js +1 -1
  18. package/src/sap/fe/macros/contact/ContactDelegate.ts +8 -5
  19. package/src/sap/fe/macros/controls/CustomQuickViewPage-dbg.js +21 -25
  20. package/src/sap/fe/macros/controls/CustomQuickViewPage.js +1 -1
  21. package/src/sap/fe/macros/controls/CustomQuickViewPage.js.map +1 -1
  22. package/src/sap/fe/macros/controls/CustomQuickViewPage.ts +21 -22
  23. package/src/sap/fe/macros/fcl/FlexibleColumnLayoutActions.block-dbg.js +3 -2
  24. package/src/sap/fe/macros/fcl/FlexibleColumnLayoutActions.block.js +2 -2
  25. package/src/sap/fe/macros/fcl/FlexibleColumnLayoutActions.block.js.map +1 -1
  26. package/src/sap/fe/macros/fcl/FlexibleColumnLayoutActions.block.ts +6 -1
  27. package/src/sap/fe/macros/field/FieldAPI-dbg.js +8 -3
  28. package/src/sap/fe/macros/field/FieldAPI.js +1 -1
  29. package/src/sap/fe/macros/field/FieldAPI.js.map +1 -1
  30. package/src/sap/fe/macros/field/FieldAPI.ts +18 -3
  31. package/src/sap/fe/macros/field/FieldBaseDelegate-dbg.js +34 -21
  32. package/src/sap/fe/macros/field/FieldBaseDelegate.js +1 -1
  33. package/src/sap/fe/macros/field/FieldBaseDelegate.js.map +1 -1
  34. package/src/sap/fe/macros/field/FieldBaseDelegate.ts +34 -19
  35. package/src/sap/fe/macros/field/FieldHelper-dbg.js +1 -32
  36. package/src/sap/fe/macros/field/FieldHelper.js +1 -1
  37. package/src/sap/fe/macros/field/FieldHelper.js.map +1 -1
  38. package/src/sap/fe/macros/field/FieldHelper.ts +0 -31
  39. package/src/sap/fe/macros/field/FieldRuntime-dbg.js +9 -7
  40. package/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  41. package/src/sap/fe/macros/field/FieldRuntime.js.map +1 -1
  42. package/src/sap/fe/macros/field/FieldRuntime.ts +6 -5
  43. package/src/sap/fe/macros/field/FieldTemplating-dbg.js +7 -6
  44. package/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  45. package/src/sap/fe/macros/field/FieldTemplating.js.map +1 -1
  46. package/src/sap/fe/macros/field/FieldTemplating.ts +22 -17
  47. package/src/sap/fe/macros/field/PublicField.block-dbg.js +3 -2
  48. package/src/sap/fe/macros/field/PublicField.block.js +1 -1
  49. package/src/sap/fe/macros/field/PublicField.block.js.map +1 -1
  50. package/src/sap/fe/macros/field/PublicField.block.ts +4 -1
  51. package/src/sap/fe/macros/filter/FilterUtils-dbg.js +2 -2
  52. package/src/sap/fe/macros/filter/FilterUtils.js +1 -1
  53. package/src/sap/fe/macros/filter/FilterUtils.js.map +1 -1
  54. package/src/sap/fe/macros/filter/FilterUtils.ts +1 -1
  55. package/src/sap/fe/macros/filterBar/FilterBar.block-dbg.js +11 -12
  56. package/src/sap/fe/macros/filterBar/FilterBar.block.js +14 -14
  57. package/src/sap/fe/macros/filterBar/FilterBar.block.js.map +1 -1
  58. package/src/sap/fe/macros/filterBar/FilterBar.block.ts +10 -10
  59. package/src/sap/fe/macros/filterBar/FilterBarAPI-dbg.js +31 -6
  60. package/src/sap/fe/macros/filterBar/FilterBarAPI.js +1 -1
  61. package/src/sap/fe/macros/filterBar/FilterBarAPI.js.map +1 -1
  62. package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +39 -5
  63. package/src/sap/fe/macros/filterBar/FilterBarDelegate-dbg.js +12 -11
  64. package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +1 -1
  65. package/src/sap/fe/macros/filterBar/FilterBarDelegate.js.map +1 -1
  66. package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +11 -10
  67. package/src/sap/fe/macros/form/Form.block-dbg.js +5 -4
  68. package/src/sap/fe/macros/form/Form.block.js +3 -3
  69. package/src/sap/fe/macros/form/Form.block.js.map +1 -1
  70. package/src/sap/fe/macros/form/Form.block.ts +4 -3
  71. package/src/sap/fe/macros/form/FormContainer.fragment.xml +0 -1
  72. package/src/sap/fe/macros/form/FormElement.block-dbg.js +3 -2
  73. package/src/sap/fe/macros/form/FormElement.block.js +2 -2
  74. package/src/sap/fe/macros/form/FormElement.block.js.map +1 -1
  75. package/src/sap/fe/macros/form/FormElement.block.ts +2 -1
  76. package/src/sap/fe/macros/insights/CommonInsightsHelper-dbg.js +61 -8
  77. package/src/sap/fe/macros/insights/CommonInsightsHelper.js +1 -1
  78. package/src/sap/fe/macros/insights/CommonInsightsHelper.js.map +1 -1
  79. package/src/sap/fe/macros/insights/CommonInsightsHelper.ts +63 -8
  80. package/src/sap/fe/macros/insights/InsightsCardHelper-dbg.js +36 -22
  81. package/src/sap/fe/macros/insights/InsightsCardHelper.js +1 -1
  82. package/src/sap/fe/macros/insights/InsightsCardHelper.js.map +1 -1
  83. package/src/sap/fe/macros/insights/InsightsCardHelper.ts +55 -29
  84. package/src/sap/fe/macros/internal/FilterField.block-dbg.js +3 -3
  85. package/src/sap/fe/macros/internal/FilterField.block.js +2 -2
  86. package/src/sap/fe/macros/internal/FilterField.block.js.map +1 -1
  87. package/src/sap/fe/macros/internal/FilterField.block.ts +2 -2
  88. package/src/sap/fe/macros/internal/InternalField.block-dbg.js +44 -153
  89. package/src/sap/fe/macros/internal/InternalField.block.js +1 -1
  90. package/src/sap/fe/macros/internal/InternalField.block.js.map +1 -1
  91. package/src/sap/fe/macros/internal/InternalField.block.ts +55 -145
  92. package/src/sap/fe/macros/internal/field/DisplayStyle-dbg.js +23 -17
  93. package/src/sap/fe/macros/internal/field/DisplayStyle.js +29 -30
  94. package/src/sap/fe/macros/internal/field/DisplayStyle.js.map +1 -1
  95. package/src/sap/fe/macros/internal/field/DisplayStyle.ts +31 -20
  96. package/src/sap/fe/macros/internal/field/EditStyle-dbg.js +17 -26
  97. package/src/sap/fe/macros/internal/field/EditStyle.js +28 -36
  98. package/src/sap/fe/macros/internal/field/EditStyle.js.map +1 -1
  99. package/src/sap/fe/macros/internal/field/EditStyle.ts +22 -41
  100. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter-dbg.js +38 -2
  101. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +1 -1
  102. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js.map +1 -1
  103. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +51 -0
  104. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper-dbg.js +42 -25
  105. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +1 -1
  106. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js.map +1 -1
  107. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +54 -25
  108. package/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +3 -3
  109. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
  110. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js.map +1 -1
  111. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +10 -6
  112. package/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating-dbg.js +1 -2
  113. package/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.js.map +1 -1
  114. package/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.ts +0 -1
  115. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +4 -2
  116. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  117. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js.map +1 -1
  118. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +14 -7
  119. package/src/sap/fe/macros/library-dbg.js +8 -3
  120. package/src/sap/fe/macros/library-preload.js +311 -208
  121. package/src/sap/fe/macros/library-preload.js.map +1 -1
  122. package/src/sap/fe/macros/library.js +1 -1
  123. package/src/sap/fe/macros/library.js.map +1 -1
  124. package/src/sap/fe/macros/library.ts +6 -1
  125. package/src/sap/fe/macros/manifest.json +1 -1
  126. package/src/sap/fe/macros/messagebundle_ar.properties +9 -9
  127. package/src/sap/fe/macros/messagebundle_bg.properties +9 -9
  128. package/src/sap/fe/macros/messagebundle_ca.properties +9 -9
  129. package/src/sap/fe/macros/messagebundle_cs.properties +9 -9
  130. package/src/sap/fe/macros/messagebundle_cy.properties +9 -9
  131. package/src/sap/fe/macros/messagebundle_da.properties +9 -9
  132. package/src/sap/fe/macros/messagebundle_de.properties +9 -9
  133. package/src/sap/fe/macros/messagebundle_el.properties +9 -9
  134. package/src/sap/fe/macros/messagebundle_es.properties +9 -9
  135. package/src/sap/fe/macros/messagebundle_es_MX.properties +9 -9
  136. package/src/sap/fe/macros/messagebundle_et.properties +9 -9
  137. package/src/sap/fe/macros/messagebundle_fi.properties +9 -9
  138. package/src/sap/fe/macros/messagebundle_fr.properties +9 -9
  139. package/src/sap/fe/macros/messagebundle_fr_CA.properties +9 -9
  140. package/src/sap/fe/macros/messagebundle_hi.properties +9 -9
  141. package/src/sap/fe/macros/messagebundle_hr.properties +9 -9
  142. package/src/sap/fe/macros/messagebundle_hu.properties +9 -9
  143. package/src/sap/fe/macros/messagebundle_id.properties +9 -9
  144. package/src/sap/fe/macros/messagebundle_it.properties +9 -9
  145. package/src/sap/fe/macros/messagebundle_iw.properties +9 -9
  146. package/src/sap/fe/macros/messagebundle_ja.properties +9 -9
  147. package/src/sap/fe/macros/messagebundle_kk.properties +9 -9
  148. package/src/sap/fe/macros/messagebundle_ko.properties +9 -9
  149. package/src/sap/fe/macros/messagebundle_lt.properties +9 -9
  150. package/src/sap/fe/macros/messagebundle_lv.properties +9 -9
  151. package/src/sap/fe/macros/messagebundle_ms.properties +9 -9
  152. package/src/sap/fe/macros/messagebundle_nl.properties +9 -9
  153. package/src/sap/fe/macros/messagebundle_no.properties +9 -9
  154. package/src/sap/fe/macros/messagebundle_pl.properties +9 -9
  155. package/src/sap/fe/macros/messagebundle_pt.properties +9 -9
  156. package/src/sap/fe/macros/messagebundle_pt_PT.properties +9 -9
  157. package/src/sap/fe/macros/messagebundle_ro.properties +9 -9
  158. package/src/sap/fe/macros/messagebundle_ru.properties +9 -9
  159. package/src/sap/fe/macros/messagebundle_sh.properties +9 -9
  160. package/src/sap/fe/macros/messagebundle_sk.properties +9 -9
  161. package/src/sap/fe/macros/messagebundle_sl.properties +9 -9
  162. package/src/sap/fe/macros/messagebundle_sv.properties +9 -9
  163. package/src/sap/fe/macros/messagebundle_th.properties +9 -9
  164. package/src/sap/fe/macros/messagebundle_tr.properties +9 -9
  165. package/src/sap/fe/macros/messagebundle_uk.properties +9 -9
  166. package/src/sap/fe/macros/messagebundle_vi.properties +9 -9
  167. package/src/sap/fe/macros/messagebundle_zh_CN.properties +9 -9
  168. package/src/sap/fe/macros/messagebundle_zh_TW.properties +9 -9
  169. package/src/sap/fe/macros/messages/MessageButton-dbg.js +1 -1
  170. package/src/sap/fe/macros/messages/MessageButton.ts +3 -2
  171. package/src/sap/fe/macros/microchart/MicroChart.block-dbg.js +3 -2
  172. package/src/sap/fe/macros/microchart/MicroChart.block.js +2 -2
  173. package/src/sap/fe/macros/microchart/MicroChart.block.js.map +1 -1
  174. package/src/sap/fe/macros/microchart/MicroChart.block.ts +2 -1
  175. package/src/sap/fe/macros/microchart/MicroChartContainer-dbg.js +2 -2
  176. package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -1
  177. package/src/sap/fe/macros/microchart/MicroChartContainer.js.map +1 -1
  178. package/src/sap/fe/macros/microchart/MicroChartContainer.ts +3 -2
  179. package/src/sap/fe/macros/paginator/Paginator.block-dbg.js +3 -2
  180. package/src/sap/fe/macros/paginator/Paginator.block.js +4 -4
  181. package/src/sap/fe/macros/paginator/Paginator.block.js.map +1 -1
  182. package/src/sap/fe/macros/paginator/Paginator.block.ts +2 -1
  183. package/src/sap/fe/macros/quickView/QuickViewDelegate-dbg.js +3 -2
  184. package/src/sap/fe/macros/quickView/QuickViewDelegate.js +1 -1
  185. package/src/sap/fe/macros/quickView/QuickViewDelegate.js.map +1 -1
  186. package/src/sap/fe/macros/quickView/QuickViewDelegate.ts +2 -1
  187. package/src/sap/fe/macros/quickView/fragments/DataFieldQuickView.fragment.xml +5 -5
  188. package/src/sap/fe/macros/share/Share.block-dbg.js +3 -2
  189. package/src/sap/fe/macros/share/Share.block.js +1 -1
  190. package/src/sap/fe/macros/share/Share.block.js.map +1 -1
  191. package/src/sap/fe/macros/share/Share.block.tsx +2 -1
  192. package/src/sap/fe/macros/table/ActionsTemplating-dbg.js +446 -0
  193. package/src/sap/fe/macros/table/ActionsTemplating.js +118 -0
  194. package/src/sap/fe/macros/table/ActionsTemplating.js.map +1 -0
  195. package/src/sap/fe/macros/table/ActionsTemplating.ts +585 -0
  196. package/src/sap/fe/macros/table/BasicSearch-dbg.js +35 -3
  197. package/src/sap/fe/macros/table/BasicSearch.js +1 -1
  198. package/src/sap/fe/macros/table/BasicSearch.js.map +1 -1
  199. package/src/sap/fe/macros/table/BasicSearch.ts +35 -2
  200. package/src/sap/fe/macros/table/ColumnContent.fragment.xml +1 -1
  201. package/src/sap/fe/macros/table/CustomColumn.fragment.xml +1 -0
  202. package/src/sap/fe/macros/table/SlotColumn.fragment.xml +1 -0
  203. package/src/sap/fe/macros/table/Table.block-dbg.js +130 -138
  204. package/src/sap/fe/macros/table/Table.block.js +44 -43
  205. package/src/sap/fe/macros/table/Table.block.js.map +1 -1
  206. package/src/sap/fe/macros/table/Table.block.ts +51 -28
  207. package/src/sap/fe/macros/table/TableAPI-dbg.js +63 -23
  208. package/src/sap/fe/macros/table/TableAPI.js +1 -1
  209. package/src/sap/fe/macros/table/TableAPI.js.map +1 -1
  210. package/src/sap/fe/macros/table/TableAPI.ts +58 -7
  211. package/src/sap/fe/macros/table/TableFullScreenDialog.block-dbg.js +4 -1
  212. package/src/sap/fe/macros/table/TableFullScreenDialog.block.js +1 -1
  213. package/src/sap/fe/macros/table/TableFullScreenDialog.block.js.map +1 -1
  214. package/src/sap/fe/macros/table/TableFullScreenDialog.block.tsx +5 -3
  215. package/src/sap/fe/macros/table/TableHelper-dbg.js +54 -51
  216. package/src/sap/fe/macros/table/TableHelper.js +1 -1
  217. package/src/sap/fe/macros/table/TableHelper.js.map +1 -1
  218. package/src/sap/fe/macros/table/TableHelper.ts +88 -63
  219. package/src/sap/fe/macros/table/Utils-dbg.js +1 -1
  220. package/src/sap/fe/macros/table/Utils.ts +3 -3
  221. package/src/sap/fe/macros/table/delegates/ALPTableDelegate-dbg.js +2 -1
  222. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -1
  223. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js.map +1 -1
  224. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +1 -0
  225. package/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +36 -23
  226. package/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  227. package/src/sap/fe/macros/table/delegates/TableDelegate.js.map +1 -1
  228. package/src/sap/fe/macros/table/delegates/TableDelegate.ts +39 -27
  229. package/src/sap/fe/macros/table/delegates/TreeTableDelegate-dbg.js +2 -1
  230. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -1
  231. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js.map +1 -1
  232. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +1 -0
  233. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate-dbg.js +46 -30
  234. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +1 -1
  235. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js.map +1 -1
  236. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +48 -30
  237. package/src/sap/fe/macros/visualfilters/InteractiveChartHelper-dbg.js +1 -1
  238. package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.ts +6 -2
  239. package/src/sap/fe/macros/visualfilters/VisualFilter.block-dbg.js +5 -5
  240. package/src/sap/fe/macros/visualfilters/VisualFilter.block.js +3 -3
  241. package/src/sap/fe/macros/visualfilters/VisualFilter.block.js.map +1 -1
  242. package/src/sap/fe/macros/visualfilters/VisualFilter.block.ts +4 -4
  243. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime-dbg.js +1 -1
  244. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +2 -2
  245. package/src/sap/fe/macros/visualfilters/fragments/InteractiveBarChart-dbg.js +2 -2
  246. package/src/sap/fe/macros/visualfilters/fragments/InteractiveBarChart.js +1 -1
  247. package/src/sap/fe/macros/visualfilters/fragments/InteractiveBarChart.js.map +1 -1
  248. package/src/sap/fe/macros/visualfilters/fragments/InteractiveBarChart.ts +1 -1
  249. package/src/sap/fe/macros/visualfilters/fragments/InteractiveChartWithError-dbg.js +2 -2
  250. package/src/sap/fe/macros/visualfilters/fragments/InteractiveChartWithError.js +1 -1
  251. package/src/sap/fe/macros/visualfilters/fragments/InteractiveChartWithError.js.map +1 -1
  252. package/src/sap/fe/macros/visualfilters/fragments/InteractiveChartWithError.ts +1 -1
  253. package/src/sap/fe/macros/visualfilters/fragments/InteractiveLineChart-dbg.js +2 -2
  254. package/src/sap/fe/macros/visualfilters/fragments/InteractiveLineChart.js +1 -1
  255. package/src/sap/fe/macros/visualfilters/fragments/InteractiveLineChart.js.map +1 -1
  256. package/src/sap/fe/macros/visualfilters/fragments/InteractiveLineChart.ts +1 -1
  257. package/src/sap/fe/macros/internal/form/FormTemplating-dbg.js +0 -47
  258. package/src/sap/fe/macros/internal/form/FormTemplating.js +0 -6
  259. package/src/sap/fe/macros/internal/form/FormTemplating.js.map +0 -1
  260. package/src/sap/fe/macros/internal/form/FormTemplating.ts +0 -42
  261. package/src/sap/fe/macros/table/Actions.fragment.xml +0 -240
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.macros",
3
- "version": "1.114.0",
3
+ "version": "1.115.1",
4
4
  "description": "SAPUI5 Library sap.fe.macros",
5
5
  "keywords": [
6
6
  "sapui5",
@@ -6,7 +6,7 @@
6
6
  SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.114.0</version>
9
+ <version>1.115.1</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.macros</documentation>
12
12
 
@@ -189,4 +189,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
189
189
  };
190
190
  return DelegateUtil;
191
191
  }, false);
192
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOU19NQUNST0RBVEEiLCJfcmV0cmlldmVNb2RlbCIsImNvbnRyb2wiLCJkZXRhY2hNb2RlbENvbnRleHRDaGFuZ2UiLCJzTW9kZWxOYW1lIiwibW9kZWxOYW1lIiwib01vZGVsIiwiZ2V0TW9kZWwiLCJyZXNvbHZlIiwiYXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlIiwiZ2V0Q3VzdG9tRGF0YVdpdGhNb2RpZmllciIsIm9Db250cm9sIiwic1Byb3BlcnR5Iiwib01vZGlmaWVyIiwiYUN1c3RvbURhdGEiLCJhUmV0cmlldmVkQ3VzdG9tRGF0YSIsIlByb21pc2UiLCJ0aGVuIiwiZ2V0QWdncmVnYXRpb24iLCJiaW5kIiwib1Byb21pc2UiLCJyZWR1Y2UiLCJvUHJldmlvdXNQcm9taXNlIiwib0N1c3RvbURhdGEiLCJnZXRQcm9wZXJ0eSIsInNLZXkiLCJwdXNoIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiRkVUQ0hFRF9QUk9QRVJUSUVTX0RBVEFfS0VZIiwiRGVsZWdhdGVVdGlsIiwic2V0Q2FjaGVkUHJvcGVydGllcyIsImZldGNoZWRQcm9wZXJ0aWVzIiwid2luZG93IiwiRWxlbWVudCIsImtleSIsInNldEN1c3RvbURhdGEiLCJnZXRDYWNoZWRQcm9wZXJ0aWVzIiwiZ2V0Q3VzdG9tRGF0YSIsImdldEF0dHJpYnV0ZU5TIiwiZGF0YSIsIkZ1bmN0aW9uIiwidlZhbHVlIiwic2V0QXR0cmlidXRlTlMiLCJmZXRjaFByb3BlcnRpZXNGb3JFbnRpdHkiLCJzRW50aXR5U2V0Iiwib01ldGFNb2RlbCIsInJlcXVlc3RPYmplY3QiLCJmZXRjaEFubm90YXRpb25zRm9yRW50aXR5IiwiZmV0Y2hNb2RlbCIsImdldERlbGVnYXRlIiwicGF5bG9hZCIsIm9Db250ZXh0IiwiY2FsbCIsInRlbXBsYXRlQ29udHJvbEZyYWdtZW50Iiwic0ZyYWdtZW50TmFtZSIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsIm9PcHRpb25zIiwiQ29tbW9uVXRpbHMiLCJkb2VzVmFsdWVIZWxwRXhpc3QiLCJtUGFyYW1ldGVycyIsInNQcm9wZXJ0eU5hbWUiLCJzVmFsdWVIZWxwVHlwZSIsInNPcmlnaW5hbFByb3BlcnR5Iiwic0JpbmRpbmdQYXRoIiwib1Byb3BlcnR5Q29udGV4dCIsImNyZWF0ZUJpbmRpbmdDb250ZXh0Iiwic1ZhbHVlSGVscFByb3BlcnR5IiwiRmllbGRIZWxwZXIiLCJ2YWx1ZUhlbHBQcm9wZXJ0eSIsImJJc0Fic29sdXRlIiwiaW5kZXhPZiIsImdldE9iamVjdCIsInNHZW5lcmF0ZWRJZCIsImdlbmVyYXRlSUQiLCJmbGV4SWQiLCJnZW5lcmF0ZSIsImdldElkIiwiZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGgiLCJjb250ZXh0IiwiZ2V0UGF0aCIsImFEZXBlbmRlbnRzIiwic29tZSIsIm9EZXBlbmRlbnQiLCJpc1ZhbHVlSGVscFJlcXVpcmVkIiwiYkluRmlsdGVyRmllbGQiLCJiUmVhZE9ubHkiLCJhbGwiLCJhUmVzdWx0cyIsImNhdGNoIiwib0Vycm9yIiwiTG9nIiwid2FybmluZyIsImlzTXVsdGlWYWx1ZSIsIm9Qcm9wZXJ0eSIsImJJc011bHRpVmFsdWUiLCJmaWx0ZXJFeHByZXNzaW9uIiwidHlwZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGVsZWdhdGVVdGlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHtcblx0Y29sdW1uRXhwb3J0U2V0dGluZ3MsXG5cdEN1c3RvbUJhc2VkVGFibGVDb2x1bW4sXG5cdEV4dGVuc2lvbkZvckFuYWx5dGljcyxcblx0UHJvcGVydHlUeXBlQ29uZmlnLFxuXHRWaXN1YWxTZXR0aW5nc1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vVGFibGVcIjtcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHsgRGlzcGxheU1vZGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EaXNwbGF5TW9kZUZvcm1hdHRlclwiO1xuaW1wb3J0IHsgZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUZvcm1hdHRlcnNcIjtcbmltcG9ydCBGaWVsZEhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJRCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL3ZhbHVlaGVscC9WYWx1ZUhlbHBUZW1wbGF0aW5nXCI7XG5pbXBvcnQgTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9Nb2RlbFwiO1xuXG5jb25zdCBOU19NQUNST0RBVEEgPSBcImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L2V4dGVuc2lvbi9zYXAudWkuY29yZS5DdXN0b21EYXRhLzFcIjtcblxuZXhwb3J0IHR5cGUgdGFibGVEZWxlZ2F0ZU1vZGVsID0ge1xuXHRlbmFibGVBdXRvQ29sdW1uV2lkdGg6IGJvb2xlYW47XG5cdGlzT3B0aW1pemVkRm9yU21hbGxEZXZpY2U6IGJvb2xlYW47XG5cdHJlYWRPbmx5OiBib29sZWFuO1xuXHRjb2x1bW5FZGl0TW9kZTogc3RyaW5nO1xuXHR0YWJsZVR5cGU6IHN0cmluZztcblx0b25DaGFuZ2U6IEZ1bmN0aW9uO1xuXHRpZDogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uUHJvcGVydHlQYXRoOiBzdHJpbmc7XG5cdGNvbHVtbkluZm86IEN1c3RvbUVsZW1lbnQ8Q3VzdG9tQmFzZWRUYWJsZUNvbHVtbj47XG5cdGNvbGxlY3Rpb246IHtcblx0XHRzUGF0aDogc3RyaW5nO1xuXHRcdG9Nb2RlbDogc3RyaW5nO1xuXHR9O1xufTtcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlJbmZvID0ge1xuXHRhZGRpdGlvbmFsTGFiZWxzPzogc3RyaW5nW107XG5cdGNhc2VTZW5zaXRpdmU/OiBib29sZWFuO1xuXHRkZXNjcmlwdGlvbj86IHN0cmluZztcblx0ZGVzY3JpcHRpb25Qcm9wZXJ0eT86IHN0cmluZztcblx0ZXhwb3J0U2V0dGluZ3M/OiBjb2x1bW5FeHBvcnRTZXR0aW5ncyB8IG51bGw7XG5cdGZpbHRlcmFibGU/OiBib29sZWFuO1xuXHRncm91cD86IHN0cmluZztcblx0Z3JvdXBhYmxlPzogYm9vbGVhbjtcblx0Z3JvdXBMYWJlbD86IHN0cmluZztcblx0a2V5PzogYm9vbGVhbjtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdG1heENvbmRpdGlvbnM/OiBudW1iZXI7XG5cdG1ldGFkYXRhUGF0aDogc3RyaW5nO1xuXHRtb2RlPzogRGlzcGxheU1vZGU7XG5cdG5hbWU6IHN0cmluZztcblx0cGF0aD86IHN0cmluZztcblx0cHJvcGVydHlJbmZvcz86IHN0cmluZ1tdO1xuXHRyZWxhdGl2ZVBhdGg/OiBzdHJpbmc7XG5cdHNvcnRhYmxlPzogYm9vbGVhbjtcblx0c29ydERpcmVjdGlvbj86IHN0cmluZztcblx0dGV4dD86IHN0cmluZztcblx0dG9vbHRpcD86IHN0cmluZztcblx0dHlwZUNvbmZpZzogUHJvcGVydHlUeXBlQ29uZmlnO1xuXHR1bml0Pzogc3RyaW5nO1xuXHR2YWx1ZVByb3BlcnR5Pzogc3RyaW5nO1xuXHR2aXNpYmxlOiBib29sZWFuO1xuXHR2aXN1YWxTZXR0aW5ncz86IFZpc3VhbFNldHRpbmdzO1xuXHRleHBvcnREYXRhUG9pbnRUYXJnZXRWYWx1ZT86IHN0cmluZztcblx0aXNQYXJhbWV0ZXI/OiBib29sZWFuO1xuXHRhZ2dyZWdhdGFibGU/OiBib29sZWFuO1xuXHRleHRlbnNpb24/OiBFeHRlbnNpb25Gb3JBbmFseXRpY3M7XG59O1xuXG5mdW5jdGlvbiBfcmV0cmlldmVNb2RlbCh0aGlzOiB7IG1vZGVsTmFtZTogc3RyaW5nOyBjb250cm9sOiBhbnk7IHJlc29sdmU6IEZ1bmN0aW9uIH0pIHtcblx0dGhpcy5jb250cm9sLmRldGFjaE1vZGVsQ29udGV4dENoYW5nZShfcmV0cmlldmVNb2RlbCwgdGhpcyk7XG5cdGNvbnN0IHNNb2RlbE5hbWUgPSB0aGlzLm1vZGVsTmFtZSxcblx0XHRvTW9kZWwgPSB0aGlzLmNvbnRyb2wuZ2V0TW9kZWwoc01vZGVsTmFtZSk7XG5cblx0aWYgKG9Nb2RlbCkge1xuXHRcdHRoaXMucmVzb2x2ZShvTW9kZWwpO1xuXHR9IGVsc2Uge1xuXHRcdHRoaXMuY29udHJvbC5hdHRhY2hNb2RlbENvbnRleHRDaGFuZ2UoX3JldHJpZXZlTW9kZWwsIHRoaXMpO1xuXHR9XG59XG5hc3luYyBmdW5jdGlvbiBnZXRDdXN0b21EYXRhV2l0aE1vZGlmaWVyKG9Db250cm9sOiBhbnksIHNQcm9wZXJ0eTogYW55LCBvTW9kaWZpZXI6IGFueSkge1xuXHRjb25zdCBhQ3VzdG9tRGF0YTogYW55W10gPSBbXTtcblxuXHRjb25zdCBhUmV0cmlldmVkQ3VzdG9tRGF0YSA9IGF3YWl0IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oXG5cdFx0b01vZGlmaWVyLmdldEFnZ3JlZ2F0aW9uLmJpbmQob01vZGlmaWVyLCBvQ29udHJvbCwgXCJjdXN0b21EYXRhXCIpIGFzICgpID0+IGFueVtdXG5cdCk7XG5cblx0Y29uc3Qgb1Byb21pc2UgPSBhUmV0cmlldmVkQ3VzdG9tRGF0YS5yZWR1Y2UoKG9QcmV2aW91c1Byb21pc2U6IFByb21pc2U8dm9pZD4sIG9DdXN0b21EYXRhKSA9PiB7XG5cdFx0cmV0dXJuIG9QcmV2aW91c1Byb21pc2UudGhlbihvTW9kaWZpZXIuZ2V0UHJvcGVydHkuYmluZChvTW9kaWZpZXIsIG9DdXN0b21EYXRhLCBcImtleVwiKSkudGhlbihmdW5jdGlvbiAoc0tleTogYW55KSB7XG5cdFx0XHRpZiAoc0tleSA9PT0gc1Byb3BlcnR5KSB7XG5cdFx0XHRcdGFDdXN0b21EYXRhLnB1c2gob0N1c3RvbURhdGEpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9LCBQcm9taXNlLnJlc29sdmUoKSk7XG5cdGF3YWl0IG9Qcm9taXNlO1xuXG5cdGlmIChhQ3VzdG9tRGF0YS5sZW5ndGggPT09IDEpIHtcblx0XHRyZXR1cm4gb01vZGlmaWVyLmdldFByb3BlcnR5KGFDdXN0b21EYXRhWzBdLCBcInZhbHVlXCIpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cbn1cbmNvbnN0IEZFVENIRURfUFJPUEVSVElFU19EQVRBX0tFWSA9IFwic2FwX2ZlX0NvbnRyb2xEZWxlZ2F0ZV9wcm9wZXJ0eUluZm9NYXBcIjtcblxuY29uc3QgRGVsZWdhdGVVdGlsID0ge1xuXHRzZXRDYWNoZWRQcm9wZXJ0aWVzKGNvbnRyb2w6IGFueSwgZmV0Y2hlZFByb3BlcnRpZXM6IFByb3BlcnR5SW5mb1tdKSB7XG5cdFx0Ly8gZG8gbm90IGNhY2hlIGR1cmluZyB0ZW1wbGF0aW5nLCBlbHNlIGl0IGJlY29tZXMgcGFydCBvZiB0aGUgY2FjaGVkIHZpZXdcblx0XHRpZiAoY29udHJvbCBpbnN0YW5jZW9mIHdpbmRvdy5FbGVtZW50KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGtleSA9IEZFVENIRURfUFJPUEVSVElFU19EQVRBX0tFWTtcblx0XHREZWxlZ2F0ZVV0aWwuc2V0Q3VzdG9tRGF0YShjb250cm9sLCBrZXksIGZldGNoZWRQcm9wZXJ0aWVzKTtcblx0fSxcblx0Z2V0Q2FjaGVkUHJvcGVydGllcyhjb250cm9sOiBhbnkpOiBQcm9wZXJ0eUluZm9bXSB8IG51bGwge1xuXHRcdC8vIHByb3BlcnRpZXMgYXJlIG5vdCBjYWNoZWQgZHVyaW5nIHRlbXBsYXRpbmdcblx0XHRpZiAoY29udHJvbCBpbnN0YW5jZW9mIHdpbmRvdy5FbGVtZW50KSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0Y29uc3Qga2V5ID0gRkVUQ0hFRF9QUk9QRVJUSUVTX0RBVEFfS0VZO1xuXHRcdHJldHVybiBEZWxlZ2F0ZVV0aWwuZ2V0Q3VzdG9tRGF0YShjb250cm9sLCBrZXkpO1xuXHR9LFxuXG5cdGdldEN1c3RvbURhdGEob0NvbnRyb2w6IGFueSwgc1Byb3BlcnR5OiBhbnksIG9Nb2RpZmllcj86IGFueSkge1xuXHRcdC8vIElmIE1vZGlmaWVyIGlzIGdpdmVuLCB0aGUgbWV0aG9kIG11c3QgZXhlY3V0ZSBhc3luY2hyb25vdXNseSBhbmQgcmV0dXJuIGEgUHJvbWlzZVxuXHRcdGlmIChvTW9kaWZpZXIpIHtcblx0XHRcdHJldHVybiBnZXRDdXN0b21EYXRhV2l0aE1vZGlmaWVyKG9Db250cm9sLCBzUHJvcGVydHksIG9Nb2RpZmllcik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIERlbGVnYXRlIGludm9rZWQgZnJvbSBhIG5vbi1mbGV4IGNoYW5nZSAtIEZpbHRlckJhckRlbGVnYXRlLl9hZGRQMTNuSXRlbSBmb3IgT1AgdGFibGUgZmlsdGVyaW5nLCBGaWx0ZXJCYXJEZWxlZ2F0ZS5mZXRjaFByb3BlcnRpZXMgZXRjLlxuXHRcdFx0aWYgKG9Db250cm9sICYmIHNQcm9wZXJ0eSkge1xuXHRcdFx0XHRpZiAob0NvbnRyb2wgaW5zdGFuY2VvZiB3aW5kb3cuRWxlbWVudCkge1xuXHRcdFx0XHRcdHJldHVybiBvQ29udHJvbC5nZXRBdHRyaWJ1dGVOUyhOU19NQUNST0RBVEEsIHNQcm9wZXJ0eSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9Db250cm9sLmRhdGEgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuXHRcdFx0XHRcdHJldHVybiBvQ29udHJvbC5kYXRhKHNQcm9wZXJ0eSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9LFxuXHRzZXRDdXN0b21EYXRhKG9Db250cm9sOiBhbnksIHNQcm9wZXJ0eTogYW55LCB2VmFsdWU6IGFueSkge1xuXHRcdGlmIChvQ29udHJvbCAmJiBzUHJvcGVydHkpIHtcblx0XHRcdGlmIChvQ29udHJvbCBpbnN0YW5jZW9mIHdpbmRvdy5FbGVtZW50KSB7XG5cdFx0XHRcdHJldHVybiBvQ29udHJvbC5zZXRBdHRyaWJ1dGVOUyhOU19NQUNST0RBVEEsIGBjdXN0b21EYXRhOiR7c1Byb3BlcnR5fWAsIHZWYWx1ZSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAob0NvbnRyb2wuZGF0YSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG5cdFx0XHRcdHJldHVybiBvQ29udHJvbC5kYXRhKHNQcm9wZXJ0eSwgdlZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGZldGNoUHJvcGVydGllc0ZvckVudGl0eShzRW50aXR5U2V0OiBhbnksIG9NZXRhTW9kZWw6IGFueSkge1xuXHRcdHJldHVybiBvTWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoYCR7c0VudGl0eVNldH0vYCk7XG5cdH0sXG5cdGZldGNoQW5ub3RhdGlvbnNGb3JFbnRpdHkoc0VudGl0eVNldDogYW55LCBvTWV0YU1vZGVsOiBhbnkpIHtcblx0XHRyZXR1cm4gb01ldGFNb2RlbC5yZXF1ZXN0T2JqZWN0KGAke3NFbnRpdHlTZXR9QGApO1xuXHR9LFxuXHRmZXRjaE1vZGVsKG9Db250cm9sOiBhbnkpOiBQcm9taXNlPE1vZGVsPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG5cdFx0XHRjb25zdCBzTW9kZWxOYW1lID0gb0NvbnRyb2wuZ2V0RGVsZWdhdGUoKS5wYXlsb2FkICYmIG9Db250cm9sLmdldERlbGVnYXRlKCkucGF5bG9hZC5tb2RlbE5hbWUsXG5cdFx0XHRcdG9Db250ZXh0ID0geyBtb2RlbE5hbWU6IHNNb2RlbE5hbWUsIGNvbnRyb2w6IG9Db250cm9sLCByZXNvbHZlOiByZXNvbHZlIH07XG5cdFx0XHRfcmV0cmlldmVNb2RlbC5jYWxsKG9Db250ZXh0KTtcblx0XHR9KTtcblx0fSxcblx0dGVtcGxhdGVDb250cm9sRnJhZ21lbnQoc0ZyYWdtZW50TmFtZTogYW55LCBvUHJlcHJvY2Vzc29yU2V0dGluZ3M6IGFueSwgb09wdGlvbnM6IGFueSwgb01vZGlmaWVyPzogYW55KSB7XG5cdFx0cmV0dXJuIENvbW1vblV0aWxzLnRlbXBsYXRlQ29udHJvbEZyYWdtZW50KHNGcmFnbWVudE5hbWUsIG9QcmVwcm9jZXNzb3JTZXR0aW5ncywgb09wdGlvbnMsIG9Nb2RpZmllcik7XG5cdH0sXG5cdGRvZXNWYWx1ZUhlbHBFeGlzdChtUGFyYW1ldGVyczogYW55KSB7XG5cdFx0Y29uc3Qgc1Byb3BlcnR5TmFtZSA9IG1QYXJhbWV0ZXJzLnNQcm9wZXJ0eU5hbWUgfHwgXCJcIjtcblx0XHRjb25zdCBzVmFsdWVIZWxwVHlwZSA9IG1QYXJhbWV0ZXJzLnNWYWx1ZUhlbHBUeXBlIHx8IFwiXCI7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG1QYXJhbWV0ZXJzLm9NZXRhTW9kZWw7XG5cdFx0Y29uc3Qgb01vZGlmaWVyID0gbVBhcmFtZXRlcnMub01vZGlmaWVyO1xuXHRcdGNvbnN0IHNPcmlnaW5hbFByb3BlcnR5ID0gYCR7bVBhcmFtZXRlcnMuc0JpbmRpbmdQYXRofS8ke3NQcm9wZXJ0eU5hbWV9YDtcblx0XHRjb25zdCBvUHJvcGVydHlDb250ZXh0ID0gb01ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChzT3JpZ2luYWxQcm9wZXJ0eSk7XG5cdFx0bGV0IHNWYWx1ZUhlbHBQcm9wZXJ0eSA9IEZpZWxkSGVscGVyLnZhbHVlSGVscFByb3BlcnR5KG9Qcm9wZXJ0eUNvbnRleHQpO1xuXHRcdGNvbnN0IGJJc0Fic29sdXRlID0gbVBhcmFtZXRlcnMuc0JpbmRpbmdQYXRoICYmIG1QYXJhbWV0ZXJzLnNCaW5kaW5nUGF0aC5pbmRleE9mKFwiL1wiKSA9PT0gMDtcblxuXHRcdC8vIHVuaXQvY3VycmVuY3lcblx0XHRpZiAoc1ZhbHVlSGVscFByb3BlcnR5LmluZGV4T2YoXCIkUGF0aFwiKSA+IC0xKSB7XG5cdFx0XHRzVmFsdWVIZWxwUHJvcGVydHkgPSBvTWV0YU1vZGVsLmdldE9iamVjdChzVmFsdWVIZWxwUHJvcGVydHkpO1xuXHRcdH1cblx0XHRpZiAoYklzQWJzb2x1dGUgJiYgc1ZhbHVlSGVscFByb3BlcnR5LmluZGV4T2YoXCIvXCIpICE9PSAwKSB7XG5cdFx0XHRzVmFsdWVIZWxwUHJvcGVydHkgPSBgJHttUGFyYW1ldGVycy5zQmluZGluZ1BhdGh9LyR7c1ZhbHVlSGVscFByb3BlcnR5fWA7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgc0dlbmVyYXRlZElkID0gZ2VuZXJhdGVJRChcblx0XHRcdG1QYXJhbWV0ZXJzLmZsZXhJZCxcblx0XHRcdGdlbmVyYXRlKFtvTW9kaWZpZXIgPyBvTW9kaWZpZXIuZ2V0SWQobVBhcmFtZXRlcnMub0NvbnRyb2wpIDogbVBhcmFtZXRlcnMub0NvbnRyb2wuZ2V0SWQoKSwgc1ZhbHVlSGVscFR5cGVdKSxcblx0XHRcdGdldFJlbGF0aXZlUHJvcGVydHlQYXRoKG9Qcm9wZXJ0eUNvbnRleHQuZ2V0UHJvcGVydHkoc09yaWdpbmFsUHJvcGVydHkpLCB7XG5cdFx0XHRcdGNvbnRleHQ6IHtcblx0XHRcdFx0XHRnZXRNb2RlbDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIG1QYXJhbWV0ZXJzLm9NZXRhTW9kZWw7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRnZXRQYXRoOiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gc09yaWdpbmFsUHJvcGVydHk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGFzIGFueVxuXHRcdFx0fSksXG5cdFx0XHRnZXRSZWxhdGl2ZVByb3BlcnR5UGF0aChvUHJvcGVydHlDb250ZXh0LmdldFByb3BlcnR5KHNWYWx1ZUhlbHBQcm9wZXJ0eSksIHtcblx0XHRcdFx0Y29udGV4dDoge1xuXHRcdFx0XHRcdGdldE1vZGVsOiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gbVBhcmFtZXRlcnMub01ldGFNb2RlbDtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdldFBhdGg6ICgpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBzVmFsdWVIZWxwUHJvcGVydHk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGFzIGFueVxuXHRcdFx0fSlcblx0XHQpO1xuXG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdGlmIChvTW9kaWZpZXIpIHtcblx0XHRcdFx0XHRyZXR1cm4gb01vZGlmaWVyLmdldEFnZ3JlZ2F0aW9uKG1QYXJhbWV0ZXJzLm9Db250cm9sLCBcImRlcGVuZGVudHNcIik7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIG1QYXJhbWV0ZXJzLm9Db250cm9sLmdldEFnZ3JlZ2F0aW9uKFwiZGVwZW5kZW50c1wiKTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoYURlcGVuZGVudHM6IGFueSkge1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFxuXHRcdFx0XHRcdGFEZXBlbmRlbnRzICYmXG5cdFx0XHRcdFx0XHRhRGVwZW5kZW50cy5zb21lKGZ1bmN0aW9uIChvRGVwZW5kZW50OiBhbnkpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG9Nb2RpZmllciA/IG9Nb2RpZmllci5nZXRJZChvRGVwZW5kZW50KSA9PT0gc0dlbmVyYXRlZElkIDogb0RlcGVuZGVudC5nZXRJZCgpID09PSBzR2VuZXJhdGVkSWQ7XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHQpO1xuXHRcdFx0fSk7XG5cdH0sXG5cdGlzVmFsdWVIZWxwUmVxdWlyZWQobVBhcmFtZXRlcnM6IGFueSwgYkluRmlsdGVyRmllbGQ/OiBib29sZWFuKSB7XG5cdFx0Y29uc3Qgc1Byb3BlcnR5TmFtZSA9IG1QYXJhbWV0ZXJzLnNQcm9wZXJ0eU5hbWUgfHwgXCJcIixcblx0XHRcdG9NZXRhTW9kZWwgPSBtUGFyYW1ldGVycy5vTWV0YU1vZGVsLFxuXHRcdFx0c1Byb3BlcnR5ID0gYCR7bVBhcmFtZXRlcnMuc0JpbmRpbmdQYXRofS8ke3NQcm9wZXJ0eU5hbWV9YCxcblx0XHRcdG9Qcm9wZXJ0eUNvbnRleHQgPSBvTWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KHNQcm9wZXJ0eSksXG5cdFx0XHRzVmFsdWVIZWxwUHJvcGVydHkgPSBGaWVsZEhlbHBlci52YWx1ZUhlbHBQcm9wZXJ0eShvUHJvcGVydHlDb250ZXh0LCBiSW5GaWx0ZXJGaWVsZCk7XG5cblx0XHRyZXR1cm4gdGhpcy5nZXRDdXN0b21EYXRhKG1QYXJhbWV0ZXJzLm9Db250cm9sLCBcImRpc3BsYXlNb2RlUHJvcGVydHlCaW5kaW5nXCIsIG1QYXJhbWV0ZXJzLm9Nb2RpZmllcilcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChiUmVhZE9ubHk6IGFueSkge1xuXHRcdFx0XHQvLyBDaGVjayB3aGV0aGVyIHRoZSBjb250cm9sIGlzIHJlYWQtb25seS4gSWYgeWVzLCBubyBuZWVkIG9mIGEgdmFsdWUgaGVscC5cblx0XHRcdFx0YlJlYWRPbmx5ID0gdHlwZW9mIGJSZWFkT25seSA9PT0gXCJib29sZWFuXCIgPyBiUmVhZE9ubHkgOiBiUmVhZE9ubHkgPT09IFwidHJ1ZVwiO1xuXHRcdFx0XHRpZiAoYlJlYWRPbmx5KSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIEVsc2UsIGNoZWNrIHdoZXRoZXIgVmFsdWUgSGVscCByZWxldmFudCBhbm5vdGF0aW9uIGV4aXN0cyBmb3IgdGhlIHByb3BlcnR5LlxuXHRcdFx0XHQvLyBUT0RPIHVzZSBQcm9wZXJ0eUZvcm1hdHRlci5oYXNWYWx1ZUhlbHAgKCkgPT4gaWYgZG9pbmcgc28sIFFVbml0IHRlc3RzIGZhaWwgZHVlIHRvIG1vY2tlZCBtb2RlbCBpbXBsZW1lbnRhdGlvblxuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoW1xuXHRcdFx0XHRcdG9NZXRhTW9kZWwucmVxdWVzdE9iamVjdChgJHtzVmFsdWVIZWxwUHJvcGVydHl9QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXNgKSxcblx0XHRcdFx0XHRvTWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoYCR7c1ZhbHVlSGVscFByb3BlcnR5fUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVmFsdWVMaXN0UmVmZXJlbmNlc2ApLFxuXHRcdFx0XHRcdG9NZXRhTW9kZWwucmVxdWVzdE9iamVjdChgJHtzVmFsdWVIZWxwUHJvcGVydHl9QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RNYXBwaW5nYCksXG5cdFx0XHRcdFx0b01ldGFNb2RlbC5yZXF1ZXN0T2JqZWN0KGAke3NWYWx1ZUhlbHBQcm9wZXJ0eX1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdGApXG5cdFx0XHRcdF0pO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChhUmVzdWx0czogYW55W10pIHtcblx0XHRcdFx0cmV0dXJuICEhYVJlc3VsdHNbMF0gfHwgISFhUmVzdWx0c1sxXSB8fCAhIWFSZXN1bHRzWzJdIHx8ICEhYVJlc3VsdHNbM107XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cud2FybmluZyhcIkVycm9yIHdoaWxlIHJldHJpZXZpbmcgY3VzdG9tIGRhdGEgLyB2YWx1ZSBsaXN0IGFubm90YXRpb24gdmFsdWVzXCIsIG9FcnJvcik7XG5cdFx0XHR9KTtcblx0fSxcblx0aXNNdWx0aVZhbHVlKG9Qcm9wZXJ0eTogYW55KSB7XG5cdFx0bGV0IGJJc011bHRpVmFsdWUgPSB0cnVlO1xuXHRcdC8vU2luZ2xlVmFsdWUgfCBNdWx0aVZhbHVlIHwgU2luZ2xlUmFuZ2UgfCBNdWx0aVJhbmdlIHwgU2VhcmNoRXhwcmVzc2lvbiB8IE11bHRpUmFuZ2VPclNlYXJjaEV4cHJlc3Npb25cblx0XHRzd2l0Y2ggKG9Qcm9wZXJ0eS5maWx0ZXJFeHByZXNzaW9uKSB7XG5cdFx0XHRjYXNlIFwiU2VhcmNoRXhwcmVzc2lvblwiOlxuXHRcdFx0Y2FzZSBcIlNpbmdsZVJhbmdlXCI6XG5cdFx0XHRjYXNlIFwiU2luZ2xlVmFsdWVcIjpcblx0XHRcdFx0YklzTXVsdGlWYWx1ZSA9IGZhbHNlO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHRpZiAob1Byb3BlcnR5LnR5cGUgJiYgb1Byb3BlcnR5LnR5cGUuaW5kZXhPZihcIkJvb2xlYW5cIikgPiAwKSB7XG5cdFx0XHRiSXNNdWx0aVZhbHVlID0gZmFsc2U7XG5cdFx0fVxuXHRcdHJldHVybiBiSXNNdWx0aVZhbHVlO1xuXHR9XG59O1xuZXhwb3J0IGRlZmF1bHQgRGVsZWdhdGVVdGlsO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7O0VBaUJBLE1BQU1BLFlBQVksR0FBRyxrRUFBa0U7RUFvRHZGLFNBQVNDLGNBQWMsR0FBK0Q7SUFDckYsSUFBSSxDQUFDQyxPQUFPLENBQUNDLHdCQUF3QixDQUFDRixjQUFjLEVBQUUsSUFBSSxDQUFDO0lBQzNELE1BQU1HLFVBQVUsR0FBRyxJQUFJLENBQUNDLFNBQVM7TUFDaENDLE1BQU0sR0FBRyxJQUFJLENBQUNKLE9BQU8sQ0FBQ0ssUUFBUSxDQUFDSCxVQUFVLENBQUM7SUFFM0MsSUFBSUUsTUFBTSxFQUFFO01BQ1gsSUFBSSxDQUFDRSxPQUFPLENBQUNGLE1BQU0sQ0FBQztJQUNyQixDQUFDLE1BQU07TUFDTixJQUFJLENBQUNKLE9BQU8sQ0FBQ08sd0JBQXdCLENBQUNSLGNBQWMsRUFBRSxJQUFJLENBQUM7SUFDNUQ7RUFDRDtFQUNBLGVBQWVTLHlCQUF5QixDQUFDQyxRQUFhLEVBQUVDLFNBQWMsRUFBRUMsU0FBYyxFQUFFO0lBQ3ZGLE1BQU1DLFdBQWtCLEdBQUcsRUFBRTtJQUU3QixNQUFNQyxvQkFBb0IsR0FBRyxNQUFNQyxPQUFPLENBQUNSLE9BQU8sRUFBRSxDQUFDUyxJQUFJLENBQ3hESixTQUFT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
192
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOU19NQUNST0RBVEEiLCJfcmV0cmlldmVNb2RlbCIsImNvbnRyb2wiLCJkZXRhY2hNb2RlbENvbnRleHRDaGFuZ2UiLCJzTW9kZWxOYW1lIiwibW9kZWxOYW1lIiwib01vZGVsIiwiZ2V0TW9kZWwiLCJyZXNvbHZlIiwiYXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlIiwiZ2V0Q3VzdG9tRGF0YVdpdGhNb2RpZmllciIsIm9Db250cm9sIiwic1Byb3BlcnR5Iiwib01vZGlmaWVyIiwiYUN1c3RvbURhdGEiLCJhUmV0cmlldmVkQ3VzdG9tRGF0YSIsIlByb21pc2UiLCJ0aGVuIiwiZ2V0QWdncmVnYXRpb24iLCJiaW5kIiwib1Byb21pc2UiLCJyZWR1Y2UiLCJvUHJldmlvdXNQcm9taXNlIiwib0N1c3RvbURhdGEiLCJnZXRQcm9wZXJ0eSIsInNLZXkiLCJwdXNoIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiRkVUQ0hFRF9QUk9QRVJUSUVTX0RBVEFfS0VZIiwiRGVsZWdhdGVVdGlsIiwic2V0Q2FjaGVkUHJvcGVydGllcyIsImZldGNoZWRQcm9wZXJ0aWVzIiwid2luZG93IiwiRWxlbWVudCIsImtleSIsInNldEN1c3RvbURhdGEiLCJnZXRDYWNoZWRQcm9wZXJ0aWVzIiwiZ2V0Q3VzdG9tRGF0YSIsImdldEF0dHJpYnV0ZU5TIiwiZGF0YSIsIkZ1bmN0aW9uIiwidlZhbHVlIiwic2V0QXR0cmlidXRlTlMiLCJmZXRjaFByb3BlcnRpZXNGb3JFbnRpdHkiLCJzRW50aXR5U2V0Iiwib01ldGFNb2RlbCIsInJlcXVlc3RPYmplY3QiLCJmZXRjaEFubm90YXRpb25zRm9yRW50aXR5IiwiZmV0Y2hNb2RlbCIsImdldERlbGVnYXRlIiwicGF5bG9hZCIsIm9Db250ZXh0IiwiY2FsbCIsInRlbXBsYXRlQ29udHJvbEZyYWdtZW50Iiwic0ZyYWdtZW50TmFtZSIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsIm9PcHRpb25zIiwiQ29tbW9uVXRpbHMiLCJkb2VzVmFsdWVIZWxwRXhpc3QiLCJtUGFyYW1ldGVycyIsInNQcm9wZXJ0eU5hbWUiLCJzVmFsdWVIZWxwVHlwZSIsInNPcmlnaW5hbFByb3BlcnR5Iiwic0JpbmRpbmdQYXRoIiwib1Byb3BlcnR5Q29udGV4dCIsImNyZWF0ZUJpbmRpbmdDb250ZXh0Iiwic1ZhbHVlSGVscFByb3BlcnR5IiwiRmllbGRIZWxwZXIiLCJ2YWx1ZUhlbHBQcm9wZXJ0eSIsImJJc0Fic29sdXRlIiwiaW5kZXhPZiIsImdldE9iamVjdCIsInNHZW5lcmF0ZWRJZCIsImdlbmVyYXRlSUQiLCJmbGV4SWQiLCJnZW5lcmF0ZSIsImdldElkIiwiZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGgiLCJjb250ZXh0IiwiZ2V0UGF0aCIsImFEZXBlbmRlbnRzIiwic29tZSIsIm9EZXBlbmRlbnQiLCJpc1ZhbHVlSGVscFJlcXVpcmVkIiwiYkluRmlsdGVyRmllbGQiLCJiUmVhZE9ubHkiLCJhbGwiLCJhUmVzdWx0cyIsImNhdGNoIiwib0Vycm9yIiwiTG9nIiwid2FybmluZyIsImlzTXVsdGlWYWx1ZSIsIm9Qcm9wZXJ0eSIsImJJc011bHRpVmFsdWUiLCJmaWx0ZXJFeHByZXNzaW9uIiwidHlwZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGVsZWdhdGVVdGlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHtcblx0Y29sdW1uRXhwb3J0U2V0dGluZ3MsXG5cdEN1c3RvbUJhc2VkVGFibGVDb2x1bW4sXG5cdEV4dGVuc2lvbkZvckFuYWx5dGljcyxcblx0UHJvcGVydHlUeXBlQ29uZmlnLFxuXHRWaXN1YWxTZXR0aW5nc1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vVGFibGVcIjtcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHsgRGlzcGxheU1vZGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EaXNwbGF5TW9kZUZvcm1hdHRlclwiO1xuaW1wb3J0IHsgZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUZvcm1hdHRlcnNcIjtcbmltcG9ydCBGaWVsZEhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJRCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL3ZhbHVlaGVscC9WYWx1ZUhlbHBUZW1wbGF0aW5nXCI7XG5pbXBvcnQgTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9Nb2RlbFwiO1xuXG5jb25zdCBOU19NQUNST0RBVEEgPSBcImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L2V4dGVuc2lvbi9zYXAudWkuY29yZS5DdXN0b21EYXRhLzFcIjtcblxuZXhwb3J0IHR5cGUgdGFibGVEZWxlZ2F0ZU1vZGVsID0ge1xuXHRlbmFibGVBdXRvQ29sdW1uV2lkdGg6IGJvb2xlYW47XG5cdGlzT3B0aW1pemVkRm9yU21hbGxEZXZpY2U6IGJvb2xlYW47XG5cdHJlYWRPbmx5OiBib29sZWFuO1xuXHRjb2x1bW5FZGl0TW9kZTogc3RyaW5nO1xuXHR0YWJsZVR5cGU6IHN0cmluZztcblx0b25DaGFuZ2U6IEZ1bmN0aW9uO1xuXHRpZDogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uUHJvcGVydHlQYXRoOiBzdHJpbmc7XG5cdGNvbHVtbkluZm86IEN1c3RvbUVsZW1lbnQ8Q3VzdG9tQmFzZWRUYWJsZUNvbHVtbj47XG5cdGNvbGxlY3Rpb246IHtcblx0XHRzUGF0aDogc3RyaW5nO1xuXHRcdG9Nb2RlbDogc3RyaW5nO1xuXHR9O1xufTtcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlJbmZvID0ge1xuXHRhZGRpdGlvbmFsTGFiZWxzPzogc3RyaW5nW107XG5cdGNhc2VTZW5zaXRpdmU/OiBib29sZWFuO1xuXHRkZXNjcmlwdGlvbj86IHN0cmluZztcblx0ZGVzY3JpcHRpb25Qcm9wZXJ0eT86IHN0cmluZztcblx0ZXhwb3J0U2V0dGluZ3M/OiBjb2x1bW5FeHBvcnRTZXR0aW5ncyB8IG51bGw7XG5cdGZpbHRlcmFibGU/OiBib29sZWFuO1xuXHRncm91cD86IHN0cmluZztcblx0Z3JvdXBhYmxlPzogYm9vbGVhbjtcblx0Z3JvdXBMYWJlbD86IHN0cmluZztcblx0a2V5PzogYm9vbGVhbjtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdG1heENvbmRpdGlvbnM/OiBudW1iZXI7XG5cdG1ldGFkYXRhUGF0aD86IHN0cmluZztcblx0bW9kZT86IERpc3BsYXlNb2RlO1xuXHRuYW1lOiBzdHJpbmc7XG5cdHBhdGg/OiBzdHJpbmc7XG5cdHByb3BlcnR5SW5mb3M/OiBzdHJpbmdbXTtcblx0cmVsYXRpdmVQYXRoPzogc3RyaW5nO1xuXHRzb3J0YWJsZT86IGJvb2xlYW47XG5cdHNvcnREaXJlY3Rpb24/OiBzdHJpbmc7XG5cdHRleHQ/OiBzdHJpbmc7XG5cdHRvb2x0aXA/OiBzdHJpbmc7XG5cdHR5cGVDb25maWc/OiBQcm9wZXJ0eVR5cGVDb25maWc7XG5cdHR5cGU/OiBzdHJpbmc7XG5cdHVuaXQ/OiBzdHJpbmc7XG5cdHZhbHVlUHJvcGVydHk/OiBzdHJpbmc7XG5cdHZpc2libGU6IGJvb2xlYW47XG5cdHZpc3VhbFNldHRpbmdzPzogVmlzdWFsU2V0dGluZ3M7XG5cdGV4cG9ydERhdGFQb2ludFRhcmdldFZhbHVlPzogc3RyaW5nO1xuXHRpc1BhcmFtZXRlcj86IGJvb2xlYW47XG5cdGFnZ3JlZ2F0YWJsZT86IGJvb2xlYW47XG5cdGV4dGVuc2lvbj86IEV4dGVuc2lvbkZvckFuYWx5dGljcztcbn07XG5cbmZ1bmN0aW9uIF9yZXRyaWV2ZU1vZGVsKHRoaXM6IHsgbW9kZWxOYW1lOiBzdHJpbmc7IGNvbnRyb2w6IGFueTsgcmVzb2x2ZTogRnVuY3Rpb24gfSkge1xuXHR0aGlzLmNvbnRyb2wuZGV0YWNoTW9kZWxDb250ZXh0Q2hhbmdlKF9yZXRyaWV2ZU1vZGVsLCB0aGlzKTtcblx0Y29uc3Qgc01vZGVsTmFtZSA9IHRoaXMubW9kZWxOYW1lLFxuXHRcdG9Nb2RlbCA9IHRoaXMuY29udHJvbC5nZXRNb2RlbChzTW9kZWxOYW1lKTtcblxuXHRpZiAob01vZGVsKSB7XG5cdFx0dGhpcy5yZXNvbHZlKG9Nb2RlbCk7XG5cdH0gZWxzZSB7XG5cdFx0dGhpcy5jb250cm9sLmF0dGFjaE1vZGVsQ29udGV4dENoYW5nZShfcmV0cmlldmVNb2RlbCwgdGhpcyk7XG5cdH1cbn1cbmFzeW5jIGZ1bmN0aW9uIGdldEN1c3RvbURhdGFXaXRoTW9kaWZpZXIob0NvbnRyb2w6IGFueSwgc1Byb3BlcnR5OiBhbnksIG9Nb2RpZmllcjogYW55KSB7XG5cdGNvbnN0IGFDdXN0b21EYXRhOiBhbnlbXSA9IFtdO1xuXG5cdGNvbnN0IGFSZXRyaWV2ZWRDdXN0b21EYXRhID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihcblx0XHRvTW9kaWZpZXIuZ2V0QWdncmVnYXRpb24uYmluZChvTW9kaWZpZXIsIG9Db250cm9sLCBcImN1c3RvbURhdGFcIikgYXMgKCkgPT4gYW55W11cblx0KTtcblxuXHRjb25zdCBvUHJvbWlzZSA9IGFSZXRyaWV2ZWRDdXN0b21EYXRhLnJlZHVjZSgob1ByZXZpb3VzUHJvbWlzZTogUHJvbWlzZTx2b2lkPiwgb0N1c3RvbURhdGEpID0+IHtcblx0XHRyZXR1cm4gb1ByZXZpb3VzUHJvbWlzZS50aGVuKG9Nb2RpZmllci5nZXRQcm9wZXJ0eS5iaW5kKG9Nb2RpZmllciwgb0N1c3RvbURhdGEsIFwia2V5XCIpKS50aGVuKGZ1bmN0aW9uIChzS2V5OiBhbnkpIHtcblx0XHRcdGlmIChzS2V5ID09PSBzUHJvcGVydHkpIHtcblx0XHRcdFx0YUN1c3RvbURhdGEucHVzaChvQ3VzdG9tRGF0YSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sIFByb21pc2UucmVzb2x2ZSgpKTtcblx0YXdhaXQgb1Byb21pc2U7XG5cblx0aWYgKGFDdXN0b21EYXRhLmxlbmd0aCA9PT0gMSkge1xuXHRcdHJldHVybiBvTW9kaWZpZXIuZ2V0UHJvcGVydHkoYUN1c3RvbURhdGFbMF0sIFwidmFsdWVcIik7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxufVxuY29uc3QgRkVUQ0hFRF9QUk9QRVJUSUVTX0RBVEFfS0VZID0gXCJzYXBfZmVfQ29udHJvbERlbGVnYXRlX3Byb3BlcnR5SW5mb01hcFwiO1xuXG5jb25zdCBEZWxlZ2F0ZVV0aWwgPSB7XG5cdHNldENhY2hlZFByb3BlcnRpZXMoY29udHJvbDogYW55LCBmZXRjaGVkUHJvcGVydGllczogUHJvcGVydHlJbmZvW10pIHtcblx0XHQvLyBkbyBub3QgY2FjaGUgZHVyaW5nIHRlbXBsYXRpbmcsIGVsc2UgaXQgYmVjb21lcyBwYXJ0IG9mIHRoZSBjYWNoZWQgdmlld1xuXHRcdGlmIChjb250cm9sIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3Qga2V5ID0gRkVUQ0hFRF9QUk9QRVJUSUVTX0RBVEFfS0VZO1xuXHRcdERlbGVnYXRlVXRpbC5zZXRDdXN0b21EYXRhKGNvbnRyb2wsIGtleSwgZmV0Y2hlZFByb3BlcnRpZXMpO1xuXHR9LFxuXHRnZXRDYWNoZWRQcm9wZXJ0aWVzKGNvbnRyb2w6IGFueSk6IFByb3BlcnR5SW5mb1tdIHwgbnVsbCB7XG5cdFx0Ly8gcHJvcGVydGllcyBhcmUgbm90IGNhY2hlZCBkdXJpbmcgdGVtcGxhdGluZ1xuXHRcdGlmIChjb250cm9sIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRjb25zdCBrZXkgPSBGRVRDSEVEX1BST1BFUlRJRVNfREFUQV9LRVk7XG5cdFx0cmV0dXJuIERlbGVnYXRlVXRpbC5nZXRDdXN0b21EYXRhKGNvbnRyb2wsIGtleSk7XG5cdH0sXG5cblx0Z2V0Q3VzdG9tRGF0YShvQ29udHJvbDogYW55LCBzUHJvcGVydHk6IGFueSwgb01vZGlmaWVyPzogYW55KSB7XG5cdFx0Ly8gSWYgTW9kaWZpZXIgaXMgZ2l2ZW4sIHRoZSBtZXRob2QgbXVzdCBleGVjdXRlIGFzeW5jaHJvbm91c2x5IGFuZCByZXR1cm4gYSBQcm9taXNlXG5cdFx0aWYgKG9Nb2RpZmllcikge1xuXHRcdFx0cmV0dXJuIGdldEN1c3RvbURhdGFXaXRoTW9kaWZpZXIob0NvbnRyb2wsIHNQcm9wZXJ0eSwgb01vZGlmaWVyKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gRGVsZWdhdGUgaW52b2tlZCBmcm9tIGEgbm9uLWZsZXggY2hhbmdlIC0gRmlsdGVyQmFyRGVsZWdhdGUuX2FkZFAxM25JdGVtIGZvciBPUCB0YWJsZSBmaWx0ZXJpbmcsIEZpbHRlckJhckRlbGVnYXRlLmZldGNoUHJvcGVydGllcyBldGMuXG5cdFx0XHRpZiAob0NvbnRyb2wgJiYgc1Byb3BlcnR5KSB7XG5cdFx0XHRcdGlmIChvQ29udHJvbCBpbnN0YW5jZW9mIHdpbmRvdy5FbGVtZW50KSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9Db250cm9sLmdldEF0dHJpYnV0ZU5TKE5TX01BQ1JPREFUQSwgc1Byb3BlcnR5KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob0NvbnRyb2wuZGF0YSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9Db250cm9sLmRhdGEoc1Byb3BlcnR5KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH0sXG5cdHNldEN1c3RvbURhdGEob0NvbnRyb2w6IGFueSwgc1Byb3BlcnR5OiBhbnksIHZWYWx1ZTogYW55KSB7XG5cdFx0aWYgKG9Db250cm9sICYmIHNQcm9wZXJ0eSkge1xuXHRcdFx0aWYgKG9Db250cm9sIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcblx0XHRcdFx0cmV0dXJuIG9Db250cm9sLnNldEF0dHJpYnV0ZU5TKE5TX01BQ1JPREFUQSwgYGN1c3RvbURhdGE6JHtzUHJvcGVydHl9YCwgdlZhbHVlKTtcblx0XHRcdH1cblx0XHRcdGlmIChvQ29udHJvbC5kYXRhIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcblx0XHRcdFx0cmV0dXJuIG9Db250cm9sLmRhdGEoc1Byb3BlcnR5LCB2VmFsdWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0ZmV0Y2hQcm9wZXJ0aWVzRm9yRW50aXR5KHNFbnRpdHlTZXQ6IGFueSwgb01ldGFNb2RlbDogYW55KSB7XG5cdFx0cmV0dXJuIG9NZXRhTW9kZWwucmVxdWVzdE9iamVjdChgJHtzRW50aXR5U2V0fS9gKTtcblx0fSxcblx0ZmV0Y2hBbm5vdGF0aW9uc0ZvckVudGl0eShzRW50aXR5U2V0OiBhbnksIG9NZXRhTW9kZWw6IGFueSkge1xuXHRcdHJldHVybiBvTWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoYCR7c0VudGl0eVNldH1AYCk7XG5cdH0sXG5cdGZldGNoTW9kZWwob0NvbnRyb2w6IGFueSk6IFByb21pc2U8TW9kZWw+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdGNvbnN0IHNNb2RlbE5hbWUgPSBvQ29udHJvbC5nZXREZWxlZ2F0ZSgpLnBheWxvYWQgJiYgb0NvbnRyb2wuZ2V0RGVsZWdhdGUoKS5wYXlsb2FkLm1vZGVsTmFtZSxcblx0XHRcdFx0b0NvbnRleHQgPSB7IG1vZGVsTmFtZTogc01vZGVsTmFtZSwgY29udHJvbDogb0NvbnRyb2wsIHJlc29sdmU6IHJlc29sdmUgfTtcblx0XHRcdF9yZXRyaWV2ZU1vZGVsLmNhbGwob0NvbnRleHQpO1xuXHRcdH0pO1xuXHR9LFxuXHR0ZW1wbGF0ZUNvbnRyb2xGcmFnbWVudChzRnJhZ21lbnROYW1lOiBhbnksIG9QcmVwcm9jZXNzb3JTZXR0aW5nczogYW55LCBvT3B0aW9uczogYW55LCBvTW9kaWZpZXI/OiBhbnkpIHtcblx0XHRyZXR1cm4gQ29tbW9uVXRpbHMudGVtcGxhdGVDb250cm9sRnJhZ21lbnQoc0ZyYWdtZW50TmFtZSwgb1ByZXByb2Nlc3NvclNldHRpbmdzLCBvT3B0aW9ucywgb01vZGlmaWVyKTtcblx0fSxcblx0ZG9lc1ZhbHVlSGVscEV4aXN0KG1QYXJhbWV0ZXJzOiBhbnkpIHtcblx0XHRjb25zdCBzUHJvcGVydHlOYW1lID0gbVBhcmFtZXRlcnMuc1Byb3BlcnR5TmFtZSB8fCBcIlwiO1xuXHRcdGNvbnN0IHNWYWx1ZUhlbHBUeXBlID0gbVBhcmFtZXRlcnMuc1ZhbHVlSGVscFR5cGUgfHwgXCJcIjtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gbVBhcmFtZXRlcnMub01ldGFNb2RlbDtcblx0XHRjb25zdCBvTW9kaWZpZXIgPSBtUGFyYW1ldGVycy5vTW9kaWZpZXI7XG5cdFx0Y29uc3Qgc09yaWdpbmFsUHJvcGVydHkgPSBgJHttUGFyYW1ldGVycy5zQmluZGluZ1BhdGh9LyR7c1Byb3BlcnR5TmFtZX1gO1xuXHRcdGNvbnN0IG9Qcm9wZXJ0eUNvbnRleHQgPSBvTWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KHNPcmlnaW5hbFByb3BlcnR5KTtcblx0XHRsZXQgc1ZhbHVlSGVscFByb3BlcnR5ID0gRmllbGRIZWxwZXIudmFsdWVIZWxwUHJvcGVydHkob1Byb3BlcnR5Q29udGV4dCk7XG5cdFx0Y29uc3QgYklzQWJzb2x1dGUgPSBtUGFyYW1ldGVycy5zQmluZGluZ1BhdGggJiYgbVBhcmFtZXRlcnMuc0JpbmRpbmdQYXRoLmluZGV4T2YoXCIvXCIpID09PSAwO1xuXG5cdFx0Ly8gdW5pdC9jdXJyZW5jeVxuXHRcdGlmIChzVmFsdWVIZWxwUHJvcGVydHkuaW5kZXhPZihcIiRQYXRoXCIpID4gLTEpIHtcblx0XHRcdHNWYWx1ZUhlbHBQcm9wZXJ0eSA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KHNWYWx1ZUhlbHBQcm9wZXJ0eSk7XG5cdFx0fVxuXHRcdGlmIChiSXNBYnNvbHV0ZSAmJiBzVmFsdWVIZWxwUHJvcGVydHkuaW5kZXhPZihcIi9cIikgIT09IDApIHtcblx0XHRcdHNWYWx1ZUhlbHBQcm9wZXJ0eSA9IGAke21QYXJhbWV0ZXJzLnNCaW5kaW5nUGF0aH0vJHtzVmFsdWVIZWxwUHJvcGVydHl9YDtcblx0XHR9XG5cblx0XHRjb25zdCBzR2VuZXJhdGVkSWQgPSBnZW5lcmF0ZUlEKFxuXHRcdFx0bVBhcmFtZXRlcnMuZmxleElkLFxuXHRcdFx0Z2VuZXJhdGUoW29Nb2RpZmllciA/IG9Nb2RpZmllci5nZXRJZChtUGFyYW1ldGVycy5vQ29udHJvbCkgOiBtUGFyYW1ldGVycy5vQ29udHJvbC5nZXRJZCgpLCBzVmFsdWVIZWxwVHlwZV0pLFxuXHRcdFx0Z2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGgob1Byb3BlcnR5Q29udGV4dC5nZXRQcm9wZXJ0eShzT3JpZ2luYWxQcm9wZXJ0eSksIHtcblx0XHRcdFx0Y29udGV4dDoge1xuXHRcdFx0XHRcdGdldE1vZGVsOiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gbVBhcmFtZXRlcnMub01ldGFNb2RlbDtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdldFBhdGg6ICgpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBzT3JpZ2luYWxQcm9wZXJ0eTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gYXMgYW55XG5cdFx0XHR9KSxcblx0XHRcdGdldFJlbGF0aXZlUHJvcGVydHlQYXRoKG9Qcm9wZXJ0eUNvbnRleHQuZ2V0UHJvcGVydHkoc1ZhbHVlSGVscFByb3BlcnR5KSwge1xuXHRcdFx0XHRjb250ZXh0OiB7XG5cdFx0XHRcdFx0Z2V0TW9kZWw6ICgpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBtUGFyYW1ldGVycy5vTWV0YU1vZGVsO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Z2V0UGF0aDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHNWYWx1ZUhlbHBQcm9wZXJ0eTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gYXMgYW55XG5cdFx0XHR9KVxuXHRcdCk7XG5cblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcblx0XHRcdC50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0aWYgKG9Nb2RpZmllcikge1xuXHRcdFx0XHRcdHJldHVybiBvTW9kaWZpZXIuZ2V0QWdncmVnYXRpb24obVBhcmFtZXRlcnMub0NvbnRyb2wsIFwiZGVwZW5kZW50c1wiKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbVBhcmFtZXRlcnMub0NvbnRyb2wuZ2V0QWdncmVnYXRpb24oXCJkZXBlbmRlbnRzXCIpO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChhRGVwZW5kZW50czogYW55KSB7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoXG5cdFx0XHRcdFx0YURlcGVuZGVudHMgJiZcblx0XHRcdFx0XHRcdGFEZXBlbmRlbnRzLnNvbWUoZnVuY3Rpb24gKG9EZXBlbmRlbnQ6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb01vZGlmaWVyID8gb01vZGlmaWVyLmdldElkKG9EZXBlbmRlbnQpID09PSBzR2VuZXJhdGVkSWQgOiBvRGVwZW5kZW50LmdldElkKCkgPT09IHNHZW5lcmF0ZWRJZDtcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdCk7XG5cdFx0XHR9KTtcblx0fSxcblx0aXNWYWx1ZUhlbHBSZXF1aXJlZChtUGFyYW1ldGVyczogYW55LCBiSW5GaWx0ZXJGaWVsZD86IGJvb2xlYW4pIHtcblx0XHRjb25zdCBzUHJvcGVydHlOYW1lID0gbVBhcmFtZXRlcnMuc1Byb3BlcnR5TmFtZSB8fCBcIlwiLFxuXHRcdFx0b01ldGFNb2RlbCA9IG1QYXJhbWV0ZXJzLm9NZXRhTW9kZWwsXG5cdFx0XHRzUHJvcGVydHkgPSBgJHttUGFyYW1ldGVycy5zQmluZGluZ1BhdGh9LyR7c1Byb3BlcnR5TmFtZX1gLFxuXHRcdFx0b1Byb3BlcnR5Q29udGV4dCA9IG9NZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoc1Byb3BlcnR5KSxcblx0XHRcdHNWYWx1ZUhlbHBQcm9wZXJ0eSA9IEZpZWxkSGVscGVyLnZhbHVlSGVscFByb3BlcnR5KG9Qcm9wZXJ0eUNvbnRleHQsIGJJbkZpbHRlckZpZWxkKTtcblxuXHRcdHJldHVybiB0aGlzLmdldEN1c3RvbURhdGEobVBhcmFtZXRlcnMub0NvbnRyb2wsIFwiZGlzcGxheU1vZGVQcm9wZXJ0eUJpbmRpbmdcIiwgbVBhcmFtZXRlcnMub01vZGlmaWVyKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKGJSZWFkT25seTogYW55KSB7XG5cdFx0XHRcdC8vIENoZWNrIHdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgcmVhZC1vbmx5LiBJZiB5ZXMsIG5vIG5lZWQgb2YgYSB2YWx1ZSBoZWxwLlxuXHRcdFx0XHRiUmVhZE9ubHkgPSB0eXBlb2YgYlJlYWRPbmx5ID09PSBcImJvb2xlYW5cIiA/IGJSZWFkT25seSA6IGJSZWFkT25seSA9PT0gXCJ0cnVlXCI7XG5cdFx0XHRcdGlmIChiUmVhZE9ubHkpIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gRWxzZSwgY2hlY2sgd2hldGhlciBWYWx1ZSBIZWxwIHJlbGV2YW50IGFubm90YXRpb24gZXhpc3RzIGZvciB0aGUgcHJvcGVydHkuXG5cdFx0XHRcdC8vIFRPRE8gdXNlIFByb3BlcnR5Rm9ybWF0dGVyLmhhc1ZhbHVlSGVscCAoKSA9PiBpZiBkb2luZyBzbywgUVVuaXQgdGVzdHMgZmFpbCBkdWUgdG8gbW9ja2VkIG1vZGVsIGltcGxlbWVudGF0aW9uXG5cdFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChbXG5cdFx0XHRcdFx0b01ldGFNb2RlbC5yZXF1ZXN0T2JqZWN0KGAke3NWYWx1ZUhlbHBQcm9wZXJ0eX1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlc2ApLFxuXHRcdFx0XHRcdG9NZXRhTW9kZWwucmVxdWVzdE9iamVjdChgJHtzVmFsdWVIZWxwUHJvcGVydHl9QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RSZWZlcmVuY2VzYCksXG5cdFx0XHRcdFx0b01ldGFNb2RlbC5yZXF1ZXN0T2JqZWN0KGAke3NWYWx1ZUhlbHBQcm9wZXJ0eX1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdE1hcHBpbmdgKSxcblx0XHRcdFx0XHRvTWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoYCR7c1ZhbHVlSGVscFByb3BlcnR5fUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVmFsdWVMaXN0YClcblx0XHRcdFx0XSk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKGFSZXN1bHRzOiBhbnlbXSkge1xuXHRcdFx0XHRyZXR1cm4gISFhUmVzdWx0c1swXSB8fCAhIWFSZXN1bHRzWzFdIHx8ICEhYVJlc3VsdHNbMl0gfHwgISFhUmVzdWx0c1szXTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy53YXJuaW5nKFwiRXJyb3Igd2hpbGUgcmV0cmlldmluZyBjdXN0b20gZGF0YSAvIHZhbHVlIGxpc3QgYW5ub3RhdGlvbiB2YWx1ZXNcIiwgb0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9LFxuXHRpc011bHRpVmFsdWUob1Byb3BlcnR5OiBhbnkpIHtcblx0XHRsZXQgYklzTXVsdGlWYWx1ZSA9IHRydWU7XG5cdFx0Ly9TaW5nbGVWYWx1ZSB8IE11bHRpVmFsdWUgfCBTaW5nbGVSYW5nZSB8IE11bHRpUmFuZ2UgfCBTZWFyY2hFeHByZXNzaW9uIHwgTXVsdGlSYW5nZU9yU2VhcmNoRXhwcmVzc2lvblxuXHRcdHN3aXRjaCAob1Byb3BlcnR5LmZpbHRlckV4cHJlc3Npb24pIHtcblx0XHRcdGNhc2UgXCJTZWFyY2hFeHByZXNzaW9uXCI6XG5cdFx0XHRjYXNlIFwiU2luZ2xlUmFuZ2VcIjpcblx0XHRcdGNhc2UgXCJTaW5nbGVWYWx1ZVwiOlxuXHRcdFx0XHRiSXNNdWx0aVZhbHVlID0gZmFsc2U7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGlmIChvUHJvcGVydHkudHlwZSAmJiBvUHJvcGVydHkudHlwZS5pbmRleE9mKFwiQm9vbGVhblwiKSA+IDApIHtcblx0XHRcdGJJc011bHRpVmFsdWUgPSBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIGJJc011bHRpVmFsdWU7XG5cdH1cbn07XG5leHBvcnQgZGVmYXVsdCBEZWxlZ2F0ZVV0aWw7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7RUFpQkEsTUFBTUEsWUFBWSxHQUFHLGtFQUFrRTtFQXFEdkYsU0FBU0MsY0FBYyxHQUErRDtJQUNyRixJQUFJLENBQUNDLE9BQU8sQ0FBQ0Msd0JBQXdCLENBQUNGLGNBQWMsRUFBRSxJQUFJLENBQUM7SUFDM0QsTUFBTUcsVUFBVSxHQUFHLElBQUksQ0FBQ0MsU0FBUztNQUNoQ0MsTUFBTSxHQUFHLElBQUksQ0FBQ0osT0FBTyxDQUFDSyxRQUFRLENBQUNILFVBQVUsQ0FBQztJQUUzQyxJQUFJRSxNQUFNLEVBQUU7TUFDWCxJQUFJLENBQUNFLE9BQU8sQ0FBQ0YsTUFBTSxDQUFDO0lBQ3JCLENBQUMsTUFBTTtNQUNOLElBQUksQ0FBQ0osT0FBTyxDQUFDTyx3QkFBd0IsQ0FBQ1IsY0FBYyxFQUFFLElBQUksQ0FBQztJQUM1RDtFQUNEO0VBQ0EsZUFBZVMseUJBQXlCLENBQUNDLFFBQWEsRUFBRUMsU0FBYyxFQUFFQyxTQUFjLEVBQUU7SUFDdkYsTUFBTUMsV0FBa0IsR0FBRyxFQUFFO0lBRTdCLE1BQU1DLG9CQUFvQixHQUFHLE1BQU1DLE9BQU8sQ0FBQ1IsT0FBTyxFQUFFLENB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
@@ -46,7 +46,7 @@ export type PropertyInfo = {
46
46
  key?: boolean;
47
47
  label?: string;
48
48
  maxConditions?: number;
49
- metadataPath: string;
49
+ metadataPath?: string;
50
50
  mode?: DisplayMode;
51
51
  name: string;
52
52
  path?: string;
@@ -56,7 +56,8 @@ export type PropertyInfo = {
56
56
  sortDirection?: string;
57
57
  text?: string;
58
58
  tooltip?: string;
59
- typeConfig: PropertyTypeConfig;
59
+ typeConfig?: PropertyTypeConfig;
60
+ type?: string;
60
61
  unit?: string;
61
62
  valueProperty?: string;
62
63
  visible: boolean;