@sapui5/sap.fe.macros 1.139.0 → 1.141.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/macros/.library +1 -1
  3. package/src/sap/fe/macros/Chart.js +53 -2
  4. package/src/sap/fe/macros/Chart.tsx +55 -0
  5. package/src/sap/fe/macros/CollaborativeDraftHandler.js +230 -0
  6. package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +218 -0
  7. package/src/sap/fe/macros/CommonHelper.js +59 -15
  8. package/src/sap/fe/macros/CommonHelper.ts +65 -14
  9. package/src/sap/fe/macros/ConditionalSwitch.js +174 -0
  10. package/src/sap/fe/macros/ConditionalSwitch.tsx +141 -0
  11. package/src/sap/fe/macros/ConditionalSwitchProperty.js +78 -0
  12. package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +62 -0
  13. package/src/sap/fe/macros/Field.js +78 -64
  14. package/src/sap/fe/macros/Field.ts +97 -68
  15. package/src/sap/fe/macros/FooterContent.js +5 -2
  16. package/src/sap/fe/macros/FooterContent.tsx +4 -1
  17. package/src/sap/fe/macros/MacroAPI.js +9 -4
  18. package/src/sap/fe/macros/MacroAPI.ts +9 -4
  19. package/src/sap/fe/macros/MessageButton.js +1 -2
  20. package/src/sap/fe/macros/MessageButton.tsx +0 -1
  21. package/src/sap/fe/macros/MultiValueField.js +10 -7
  22. package/src/sap/fe/macros/MultiValueField.tsx +7 -3
  23. package/src/sap/fe/macros/Page.js +5 -7
  24. package/src/sap/fe/macros/Page.tsx +4 -6
  25. package/src/sap/fe/macros/Paginator.js +9 -4
  26. package/src/sap/fe/macros/Paginator.tsx +12 -3
  27. package/src/sap/fe/macros/RichTextEditor.js +3 -2
  28. package/src/sap/fe/macros/RichTextEditor.tsx +2 -1
  29. package/src/sap/fe/macros/Share.js +14 -2
  30. package/src/sap/fe/macros/Share.tsx +13 -0
  31. package/src/sap/fe/macros/Status.js +251 -0
  32. package/src/sap/fe/macros/Status.tsx +212 -0
  33. package/src/sap/fe/macros/ValueHelp.js +4 -28
  34. package/src/sap/fe/macros/ValueHelp.tsx +2 -42
  35. package/src/sap/fe/macros/ai/EasyFillDialog.js +11 -17
  36. package/src/sap/fe/macros/ai/EasyFillDialog.tsx +11 -16
  37. package/src/sap/fe/macros/ai/EasyFilterBar.js +246 -97
  38. package/src/sap/fe/macros/ai/EasyFilterBar.tsx +302 -106
  39. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +76 -33
  40. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +89 -40
  41. package/src/sap/fe/macros/ai/SummarizationButton.js +2 -2
  42. package/src/sap/fe/macros/ai/SummarizationButton.tsx +1 -1
  43. package/src/sap/fe/macros/chart/Chart.js +2 -2
  44. package/src/sap/fe/macros/chart/Chart.tsx +1 -1
  45. package/src/sap/fe/macros/chart/ChartHelper.js +1 -2
  46. package/src/sap/fe/macros/chart/ChartHelper.ts +0 -1
  47. package/src/sap/fe/macros/chart/ChartRuntime.js +1 -2
  48. package/src/sap/fe/macros/chart/ChartRuntime.ts +0 -1
  49. package/src/sap/fe/macros/chart/MdcChartTemplate.js +5 -5
  50. package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +5 -5
  51. package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.js +9 -2
  52. package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.tsx +8 -0
  53. package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +5 -1
  54. package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +4 -0
  55. package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +4 -2
  56. package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +3 -1
  57. package/src/sap/fe/macros/controls/FilterBar.js +14 -5
  58. package/src/sap/fe/macros/controls/FilterBar.ts +3 -0
  59. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +2 -2
  60. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
  61. package/src/sap/fe/macros/controls/RadioButtons.js +61 -38
  62. package/src/sap/fe/macros/controls/RadioButtons.tsx +39 -18
  63. package/src/sap/fe/macros/controls/Section.js +4 -3
  64. package/src/sap/fe/macros/controls/Section.ts +3 -2
  65. package/src/sap/fe/macros/controls/section/SubSection.js +63 -8
  66. package/src/sap/fe/macros/controls/section/SubSection.ts +67 -1
  67. package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +43 -4
  68. package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -1
  69. package/src/sap/fe/macros/designtime/Designtime.helper.js +28 -1
  70. package/src/sap/fe/macros/designtime/Designtime.helper.ts +27 -0
  71. package/src/sap/fe/macros/field/Field.js +2 -2
  72. package/src/sap/fe/macros/field/Field.tsx +1 -1
  73. package/src/sap/fe/macros/field/FieldBaseDelegate.js +13 -7
  74. package/src/sap/fe/macros/field/FieldBaseDelegate.ts +12 -8
  75. package/src/sap/fe/macros/field/FieldFormatOptions.js +25 -2
  76. package/src/sap/fe/macros/field/FieldFormatOptions.ts +13 -0
  77. package/src/sap/fe/macros/field/FieldHelper.js +2 -2
  78. package/src/sap/fe/macros/field/FieldHelper.ts +1 -4
  79. package/src/sap/fe/macros/field/FieldRuntime.js +1 -2
  80. package/src/sap/fe/macros/field/FieldRuntime.ts +0 -1
  81. package/src/sap/fe/macros/field/FieldTemplating.js +3 -3
  82. package/src/sap/fe/macros/field/FieldTemplating.ts +4 -2
  83. package/src/sap/fe/macros/filter/FilterUtils.js +233 -5
  84. package/src/sap/fe/macros/filter/FilterUtils.ts +291 -7
  85. package/src/sap/fe/macros/filterBar/FilterBar.block.js +5 -3
  86. package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +4 -2
  87. package/src/sap/fe/macros/filterBar/FilterBar.js +2 -2
  88. package/src/sap/fe/macros/filterBar/FilterBar.tsx +1 -1
  89. package/src/sap/fe/macros/filterBar/FilterBarAPI.js +63 -27
  90. package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +49 -3
  91. package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +5 -3
  92. package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +5 -2
  93. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +7 -2
  94. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +6 -1
  95. package/src/sap/fe/macros/form/Form.block.js +7 -8
  96. package/src/sap/fe/macros/form/Form.block.ts +4 -6
  97. package/src/sap/fe/macros/form/Form.js +1 -4
  98. package/src/sap/fe/macros/form/Form.tsx +0 -3
  99. package/src/sap/fe/macros/form/FormContainer.block.js +555 -5
  100. package/src/sap/fe/macros/form/FormContainer.block.ts +665 -7
  101. package/src/sap/fe/macros/form/FormContainer.fragment.xml +1 -0
  102. package/src/sap/fe/macros/form/FormDelegate.js +24 -8
  103. package/src/sap/fe/macros/form/FormDelegate.ts +29 -7
  104. package/src/sap/fe/macros/form/FormHelper.js +1 -2
  105. package/src/sap/fe/macros/form/FormHelper.ts +0 -1
  106. package/src/sap/fe/macros/fpm/CustomFragment.block.js +1 -2
  107. package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
  108. package/src/sap/fe/macros/internal/ActionCommand.block.js +1 -2
  109. package/src/sap/fe/macros/internal/ActionCommand.block.ts +0 -1
  110. package/src/sap/fe/macros/internal/DataPoint.js +3 -2
  111. package/src/sap/fe/macros/internal/DataPoint.tsx +10 -1
  112. package/src/sap/fe/macros/internal/FilterField.block.js +19 -5
  113. package/src/sap/fe/macros/internal/FilterField.block.ts +16 -4
  114. package/src/sap/fe/macros/internal/field/DisplayStyle.js +9 -3
  115. package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +10 -2
  116. package/src/sap/fe/macros/internal/field/EditStyle.js +21 -4
  117. package/src/sap/fe/macros/internal/field/EditStyle.tsx +18 -4
  118. package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +3 -2
  119. package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +5 -1
  120. package/src/sap/fe/macros/internal/filterField/FilterFieldTemplate.fragment.xml +1 -0
  121. package/src/sap/fe/macros/internal/helpers/ActionHelper.js +36 -5
  122. package/src/sap/fe/macros/internal/helpers/ActionHelper.ts +34 -4
  123. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +46 -8
  124. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +60 -6
  125. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +38 -2
  126. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +37 -2
  127. package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -1
  128. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +10 -3
  129. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +13 -2
  130. package/src/sap/fe/macros/library.js +1 -1
  131. package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.js +2 -1
  132. package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.ts +1 -0
  133. package/src/sap/fe/macros/messagebundle.properties +24 -4
  134. package/src/sap/fe/macros/messagebundle_ar.properties +8 -2
  135. package/src/sap/fe/macros/messagebundle_bg.properties +8 -2
  136. package/src/sap/fe/macros/messagebundle_ca.properties +11 -5
  137. package/src/sap/fe/macros/messagebundle_cnr.properties +8 -2
  138. package/src/sap/fe/macros/messagebundle_cs.properties +7 -1
  139. package/src/sap/fe/macros/messagebundle_cy.properties +9 -3
  140. package/src/sap/fe/macros/messagebundle_da.properties +8 -2
  141. package/src/sap/fe/macros/messagebundle_de.properties +13 -7
  142. package/src/sap/fe/macros/messagebundle_el.properties +7 -1
  143. package/src/sap/fe/macros/messagebundle_en.properties +11 -5
  144. package/src/sap/fe/macros/messagebundle_en_GB.properties +9 -3
  145. package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +11 -5
  146. package/src/sap/fe/macros/messagebundle_es.properties +10 -4
  147. package/src/sap/fe/macros/messagebundle_es_MX.properties +11 -5
  148. package/src/sap/fe/macros/messagebundle_et.properties +9 -3
  149. package/src/sap/fe/macros/messagebundle_fi.properties +7 -1
  150. package/src/sap/fe/macros/messagebundle_fr.properties +9 -3
  151. package/src/sap/fe/macros/messagebundle_fr_CA.properties +8 -2
  152. package/src/sap/fe/macros/messagebundle_hi.properties +8 -2
  153. package/src/sap/fe/macros/messagebundle_hr.properties +8 -2
  154. package/src/sap/fe/macros/messagebundle_hu.properties +7 -1
  155. package/src/sap/fe/macros/messagebundle_id.properties +15 -9
  156. package/src/sap/fe/macros/messagebundle_it.properties +7 -1
  157. package/src/sap/fe/macros/messagebundle_iw.properties +8 -2
  158. package/src/sap/fe/macros/messagebundle_ja.properties +13 -7
  159. package/src/sap/fe/macros/messagebundle_kk.properties +11 -5
  160. package/src/sap/fe/macros/messagebundle_ko.properties +8 -2
  161. package/src/sap/fe/macros/messagebundle_lt.properties +9 -3
  162. package/src/sap/fe/macros/messagebundle_lv.properties +8 -2
  163. package/src/sap/fe/macros/messagebundle_mk.properties +8 -2
  164. package/src/sap/fe/macros/messagebundle_ms.properties +7 -1
  165. package/src/sap/fe/macros/messagebundle_nl.properties +7 -1
  166. package/src/sap/fe/macros/messagebundle_no.properties +7 -1
  167. package/src/sap/fe/macros/messagebundle_pl.properties +8 -2
  168. package/src/sap/fe/macros/messagebundle_pt.properties +7 -1
  169. package/src/sap/fe/macros/messagebundle_pt_PT.properties +7 -1
  170. package/src/sap/fe/macros/messagebundle_ro.properties +8 -2
  171. package/src/sap/fe/macros/messagebundle_ru.properties +10 -4
  172. package/src/sap/fe/macros/messagebundle_sh.properties +8 -2
  173. package/src/sap/fe/macros/messagebundle_sk.properties +7 -1
  174. package/src/sap/fe/macros/messagebundle_sl.properties +7 -1
  175. package/src/sap/fe/macros/messagebundle_sr.properties +8 -2
  176. package/src/sap/fe/macros/messagebundle_sv.properties +7 -1
  177. package/src/sap/fe/macros/messagebundle_th.properties +8 -2
  178. package/src/sap/fe/macros/messagebundle_tr.properties +7 -1
  179. package/src/sap/fe/macros/messagebundle_uk.properties +10 -4
  180. package/src/sap/fe/macros/messagebundle_vi.properties +10 -4
  181. package/src/sap/fe/macros/messagebundle_zh_CN.properties +7 -1
  182. package/src/sap/fe/macros/messagebundle_zh_TW.properties +8 -2
  183. package/src/sap/fe/macros/messages/MessageButton.js +39 -18
  184. package/src/sap/fe/macros/messages/MessageButton.ts +42 -19
  185. package/src/sap/fe/macros/messages/MessagePopover.js +4 -2
  186. package/src/sap/fe/macros/messages/MessagePopover.ts +6 -4
  187. package/src/sap/fe/macros/microchart/MicroChart.js +2 -2
  188. package/src/sap/fe/macros/microchart/MicroChart.tsx +1 -1
  189. package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -2
  190. package/src/sap/fe/macros/microchart/MicroChartContainer.ts +1 -2
  191. package/src/sap/fe/macros/microchart/MicroChartHelper.js +2 -3
  192. package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +1 -2
  193. package/src/sap/fe/macros/share/ShareAPI.js +4 -29
  194. package/src/sap/fe/macros/share/ShareAPI.ts +1 -32
  195. package/src/sap/fe/macros/situations/SituationsPopover.js +3 -1
  196. package/src/sap/fe/macros/situations/SituationsPopover.ts +2 -0
  197. package/src/sap/fe/macros/table/ActionsTemplating.js +4 -8
  198. package/src/sap/fe/macros/table/ActionsTemplating.tsx +5 -8
  199. package/src/sap/fe/macros/table/BasicSearch.js +1 -1
  200. package/src/sap/fe/macros/table/BasicSearch.ts +2 -1
  201. package/src/sap/fe/macros/table/Column.js +14 -2
  202. package/src/sap/fe/macros/table/Column.ts +7 -0
  203. package/src/sap/fe/macros/table/ColumnExportSettings.js +83 -15
  204. package/src/sap/fe/macros/table/ColumnExportSettings.ts +44 -0
  205. package/src/sap/fe/macros/table/ColumnOverride.js +14 -2
  206. package/src/sap/fe/macros/table/ColumnOverride.ts +7 -0
  207. package/src/sap/fe/macros/table/MdcTableTemplate.js +7 -5
  208. package/src/sap/fe/macros/table/MdcTableTemplate.tsx +21 -11
  209. package/src/sap/fe/macros/table/QuickFilterSelector.js +12 -3
  210. package/src/sap/fe/macros/table/QuickFilterSelector.tsx +15 -2
  211. package/src/sap/fe/macros/table/Table.block.js +188 -147
  212. package/src/sap/fe/macros/table/Table.block.tsx +41 -11
  213. package/src/sap/fe/macros/table/Table.js +16 -10
  214. package/src/sap/fe/macros/table/Table.tsx +16 -10
  215. package/src/sap/fe/macros/table/TableAPI.js +224 -184
  216. package/src/sap/fe/macros/table/TableAPI.ts +63 -19
  217. package/src/sap/fe/macros/table/TableEventHandlerProvider.js +6 -6
  218. package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +5 -4
  219. package/src/sap/fe/macros/table/TableHelper.js +2 -3
  220. package/src/sap/fe/macros/table/TableHelper.ts +1 -2
  221. package/src/sap/fe/macros/table/TableRuntime.js +24 -5
  222. package/src/sap/fe/macros/table/TableRuntime.ts +31 -3
  223. package/src/sap/fe/macros/table/TreeTable.js +16 -10
  224. package/src/sap/fe/macros/table/TreeTable.tsx +16 -10
  225. package/src/sap/fe/macros/table/Utils.js +8 -3
  226. package/src/sap/fe/macros/table/Utils.ts +12 -3
  227. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -2
  228. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +0 -1
  229. package/src/sap/fe/macros/table/delegates/TableDelegate.js +69 -34
  230. package/src/sap/fe/macros/table/delegates/TableDelegate.ts +75 -33
  231. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -2
  232. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +0 -1
  233. package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +10 -10
  234. package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +11 -9
  235. package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +14 -12
  236. package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +11 -10
  237. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +34 -4
  238. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +45 -2
  239. package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +55 -12
  240. package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +71 -9
  241. package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +53 -2
  242. package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +55 -0
  243. package/src/sap/fe/macros/table/mixin/TableExport.js +22 -3
  244. package/src/sap/fe/macros/table/mixin/TableExport.ts +25 -4
  245. package/src/sap/fe/macros/table/mixin/TableHierarchy.js +5 -1
  246. package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +7 -0
  247. package/src/sap/fe/macros/table/mixin/TableSharing.js +4 -2
  248. package/src/sap/fe/macros/table/mixin/TableSharing.ts +10 -1
  249. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +36 -10
  250. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +44 -9
  251. package/src/sap/fe/macros/visualfilters/VisualFilter.js +5 -4
  252. package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +3 -2
  253. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +2 -3
  254. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +1 -2
@@ -79,9 +79,14 @@ sap.ui.define(["sap/base/util/deepClone", "sap/base/util/merge", "sap/base/util/
79
79
  */
80
80
  _proto.setOrBindProperty = function setOrBindProperty(propertyName, value) {
81
81
  if (value !== undefined) {
82
- const parsedExpression = BindingInfo.parse(value);
83
- if (parsedExpression) {
84
- this.bindProperty(propertyName, parsedExpression);
82
+ let parsedExpression;
83
+ try {
84
+ parsedExpression = BindingInfo.parse(value);
85
+ } catch (_e) {
86
+ // Just ignore the error
87
+ }
88
+ if (parsedExpression || typeof value === "string" && value.startsWith("{")) {
89
+ this.bindProperty(propertyName, parsedExpression ?? value);
85
90
  } else {
86
91
  if (this.getMetadata().getProperty(propertyName)?.type === "boolean" && typeof value === "string") {
87
92
  value = value === "true";
@@ -176,4 +181,4 @@ sap.ui.define(["sap/base/util/deepClone", "sap/base/util/merge", "sap/base/util/
176
181
  }), _class2)) || _class);
177
182
  return MacroAPI;
178
183
  }, false);
179
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNYWNyb0FQSSIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiaW1wbGVtZW50SW50ZXJmYWNlIiwiX2RlYzMiLCJhZ2dyZWdhdGlvbiIsInR5cGUiLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsIl9kZWM0IiwicHJvcGVydHkiLCJfZGVjNSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfTWFjcm9BUEkiLCJfQnVpbGRpbmdCbG9jayIsIm1TZXR0aW5ncyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJwYXJlbnRDb250ZXh0VG9CaW5kIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJhcHBseVNldHRpbmdzIiwib1Njb3BlIiwiZXZlbnRzS2V5cyIsIk9iamVjdCIsImtleXMiLCJnZXRNZXRhZGF0YSIsImdldEV2ZW50cyIsImV2ZW50c0tleSIsInVuZGVmaW5lZCIsImluaXQiLCJnZXRNb2RlbCIsIm9QYWdlTW9kZWwiLCJDb21wb25lbnQiLCJnZXRPd25lckNvbXBvbmVudEZvciIsInNldE1vZGVsIiwic2V0T3JCaW5kUHJvcGVydHkiLCJwcm9wZXJ0eU5hbWUiLCJ2YWx1ZSIsInBhcnNlZEV4cHJlc3Npb24iLCJCaW5kaW5nSW5mbyIsInBhcnNlIiwiYmluZFByb3BlcnR5IiwiZ2V0UHJvcGVydHkiLCJzZXRQcm9wZXJ0eSIsInNldFBhcmVudEJpbmRpbmdDb250ZXh0IiwibW9kZWxOYW1lIiwicGF0aCIsInNldFBhcmVudCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiZm9yRWFjaCIsImdldFBhcmVudCIsImJpbmRPYmplY3QiLCJtb2RlbCIsImV2ZW50cyIsImNoYW5nZSIsIm9Cb3VuZENvbnRleHQiLCJnZXRCb3VuZENvbnRleHQiLCJnZXRPYmplY3QiLCJCdWlsZGluZ0Jsb2NrIiwibmFtZXNwYWNlIiwibWFjcm9OYW1lIiwiZnJhZ21lbnQiLCJoYXNWYWxpZGF0aW9uIiwiZ2V0Q29udmVydGVyQ29udGV4dCIsImRhdGFNb2RlbE9iamVjdFBhdGgiLCJjb250ZXh0UGF0aCIsInNldHRpbmdzIiwiZXh0cmFQYXJhbXMiLCJhcHBDb21wb25lbnQiLCJvcmlnaW5hbFZpZXdEYXRhIiwibW9kZWxzIiwidmlld0RhdGEiLCJnZXREYXRhIiwiYXNzaWduIiwicmVzb3VyY2VNb2RlbCIsImRlZXBDbG9uZSIsImNvbnRyb2xDb25maWd1cmF0aW9uIiwicmVsYXRpdmVQYXRoIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImNvbnRleHRMb2NhdGlvbiIsImVudGl0eVNldE5hbWUiLCJ0YXJnZXRFbnRpdHlTZXQiLCJuYW1lIiwiZW50aXR5U2V0IiwibWVyZ2UiLCJDb252ZXJ0ZXJDb250ZXh0IiwiY3JlYXRlQ29udmVydGVyQ29udGV4dEZvck1hY3JvIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJtZXRhTW9kZWwiLCJnZXREaWFnbm9zdGljcyIsIk1hbmlmZXN0V3JhcHBlciIsImNyZWF0ZUJpbmRpbmdDb250ZXh0Iiwib0RhdGEiLCJzQ29udGV4dFBhdGgiLCJ1aWQiLCJjb252ZXJ0ZXJDb250ZXh0IiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNYWNyb0FQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVlcENsb25lIGZyb20gXCJzYXAvYmFzZS91dGlsL2RlZXBDbG9uZVwiO1xuaW1wb3J0IG1lcmdlIGZyb20gXCJzYXAvYmFzZS91dGlsL21lcmdlXCI7XG5pbXBvcnQgdWlkIGZyb20gXCJzYXAvYmFzZS91dGlsL3VpZFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VNYW5pZmVzdFNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IE1hbmlmZXN0V3JhcHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFdyYXBwZXJcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0VGFyZ2V0T2JqZWN0UGF0aCwgdHlwZSBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IEJpbmRpbmdJbmZvIGZyb20gXCJzYXAvdWkvYmFzZS9CaW5kaW5nSW5mb1wiO1xuaW1wb3J0IHR5cGUgeyAkTWFuYWdlZE9iamVjdFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm1Db250ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIENsaWVudENvbnRleHRCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvQ2xpZW50Q29udGV4dEJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5cbi8qKlxuICogQmFzZSBBUEkgY29udHJvbCBmb3IgYnVpbGRpbmcgYmxvY2tzLlxuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQHB1YmxpY1xuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLk1hY3JvQVBJXCIpXG5jbGFzcyBNYWNyb0FQSTxUIGV4dGVuZHMgb2JqZWN0ID0ge30+IGV4dGVuZHMgQnVpbGRpbmdCbG9jazxDb250cm9sLCBUPiBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQgPSB0cnVlO1xuXG5cdHN0YXRpYyBuYW1lc3BhY2UgPSBcInNhcC5mZS5tYWNyb3NcIjtcblxuXHRzdGF0aWMgbWFjcm9OYW1lID0gXCJNYWNyb1wiO1xuXG5cdHN0YXRpYyBmcmFnbWVudCA9IFwic2FwLmZlLm1hY3Jvcy5NYWNyb1wiO1xuXG5cdHN0YXRpYyBoYXNWYWxpZGF0aW9uID0gdHJ1ZTtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IENvbnRyb2w7XG5cblx0Y29uc3RydWN0b3IobVNldHRpbmdzPzogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxNYWNyb0FQST4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihtU2V0dGluZ3MsIG90aGVycyk7XG5cdH1cblxuXHRhcHBseVNldHRpbmdzKG1TZXR0aW5nczogJE1hbmFnZWRPYmplY3RTZXR0aW5ncywgb1Njb3BlPzogb2JqZWN0KTogdGhpcyB7XG5cdFx0Ly8gQ2xlYW51cCBldmVudHNcblx0XHRpZiAobVNldHRpbmdzKSB7XG5cdFx0XHRjb25zdCBldmVudHNLZXlzID0gT2JqZWN0LmtleXModGhpcy5nZXRNZXRhZGF0YSgpLmdldEV2ZW50cygpKTtcblx0XHRcdGZvciAoY29uc3QgZXZlbnRzS2V5IG9mIGV2ZW50c0tleXMpIHtcblx0XHRcdFx0aWYgKG1TZXR0aW5nc1tldmVudHNLZXkgYXMga2V5b2YgJE1hbmFnZWRPYmplY3RTZXR0aW5nc10gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGRlbGV0ZSBtU2V0dGluZ3NbZXZlbnRzS2V5IGFzIGtleW9mICRNYW5hZ2VkT2JqZWN0U2V0dGluZ3NdO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHN1cGVyLmFwcGx5U2V0dGluZ3MobVNldHRpbmdzLCBvU2NvcGUpO1xuXHR9XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRzdXBlci5pbml0KCk7XG5cdFx0aWYgKCF0aGlzLmdldE1vZGVsKFwiX3BhZ2VNb2RlbFwiKSkge1xuXHRcdFx0Y29uc3Qgb1BhZ2VNb2RlbCA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcih0aGlzKT8uZ2V0TW9kZWwoXCJfcGFnZU1vZGVsXCIpO1xuXHRcdFx0aWYgKG9QYWdlTW9kZWwpIHtcblx0XHRcdFx0dGhpcy5zZXRNb2RlbChvUGFnZU1vZGVsLCBcIl9wYWdlTW9kZWxcIik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHBhdGggb2YgdGhlIGNvbnRleHQgdXNlZCBpbiB0aGUgY3VycmVudCBwYWdlIG9yIGJsb2NrLlxuXHQgKiBUaGlzIHNldHRpbmcgaXMgZGVmaW5lZCBieSB0aGUgZnJhbWV3b3JrLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGNvbnRleHRQYXRoITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSByZWxhdGl2ZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgbWV0YW1vZGVsLCBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0UGF0aC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRtZXRhUGF0aCE6IHN0cmluZztcblxuXHQvKipcblx0ICogU2V0IG9yIGJpbmQgYSBwcm9wZXJ0eS5cblx0ICogQHBhcmFtIHByb3BlcnR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHlcblx0ICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHlcblx0ICovXG5cdHNldE9yQmluZFByb3BlcnR5KHByb3BlcnR5TmFtZTogc3RyaW5nLCB2YWx1ZT86IHVua25vd24pOiB2b2lkIHtcblx0XHRpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29uc3QgcGFyc2VkRXhwcmVzc2lvbiA9IEJpbmRpbmdJbmZvLnBhcnNlKHZhbHVlKTtcblx0XHRcdGlmIChwYXJzZWRFeHByZXNzaW9uKSB7XG5cdFx0XHRcdHRoaXMuYmluZFByb3BlcnR5KHByb3BlcnR5TmFtZSwgcGFyc2VkRXhwcmVzc2lvbik7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5nZXRNZXRhZGF0YSgpLmdldFByb3BlcnR5KHByb3BlcnR5TmFtZSk/LnR5cGUgPT09IFwiYm9vbGVhblwiICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdHZhbHVlID0gdmFsdWUgPT09IFwidHJ1ZVwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuc2V0UHJvcGVydHkocHJvcGVydHlOYW1lLCB2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIGEgQ29udmVydGVyIENvbnRleHQuXG5cdCAqIEBwYXJhbSBkYXRhTW9kZWxPYmplY3RQYXRoXG5cdCAqIEBwYXJhbSBjb250ZXh0UGF0aFxuXHQgKiBAcGFyYW0gc2V0dGluZ3Ncblx0ICogQHBhcmFtIGV4dHJhUGFyYW1zXG5cdCAqIEByZXR1cm5zIEEgQ29udmVydGVyIENvbnRleHRcblx0ICovXG5cdHN0YXRpYyBnZXRDb252ZXJ0ZXJDb250ZXh0ID0gZnVuY3Rpb24gKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8dW5rbm93bj4sXG5cdFx0Y29udGV4dFBhdGg6IHN0cmluZyxcblx0XHRzZXR0aW5nczogVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncyxcblx0XHRleHRyYVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cdCk6IENvbnZlcnRlckNvbnRleHQge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IHNldHRpbmdzLmFwcENvbXBvbmVudDtcblx0XHRjb25zdCBvcmlnaW5hbFZpZXdEYXRhID0gc2V0dGluZ3MubW9kZWxzLnZpZXdEYXRhPy5nZXREYXRhKCk7XG5cdFx0bGV0IHZpZXdEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgb3JpZ2luYWxWaWV3RGF0YSk7XG5cdFx0ZGVsZXRlIHZpZXdEYXRhLnJlc291cmNlTW9kZWw7XG5cdFx0ZGVsZXRlIHZpZXdEYXRhLmFwcENvbXBvbmVudDtcblx0XHR2aWV3RGF0YSA9IGRlZXBDbG9uZSh2aWV3RGF0YSk7XG5cdFx0bGV0IGNvbnRyb2xDb25maWd1cmF0aW9uID0ge307XG5cblx0XHQvLyBPbmx5IG1lcmdlIGluIHBhZ2UgY29udHJvbCBjb25maWd1cmF0aW9uIGlmIHRoZSBidWlsZGluZyBibG9jayBpcyBvbiB0aGUgc2FtZSBjb250ZXh0XG5cdFx0Y29uc3QgcmVsYXRpdmVQYXRoID0gZ2V0VGFyZ2V0T2JqZWN0UGF0aChkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbiA/PyBkYXRhTW9kZWxPYmplY3RQYXRoKTtcblx0XHRjb25zdCBlbnRpdHlTZXROYW1lID0gZGF0YU1vZGVsT2JqZWN0UGF0aC5jb250ZXh0TG9jYXRpb24/LnRhcmdldEVudGl0eVNldD8ubmFtZSA/PyBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVNldD8ubmFtZTtcblx0XHRpZiAoXG5cdFx0XHRyZWxhdGl2ZVBhdGggPT09IG9yaWdpbmFsVmlld0RhdGE/LmNvbnRleHRQYXRoIHx8XG5cdFx0XHRyZWxhdGl2ZVBhdGggPT09IGAvJHtvcmlnaW5hbFZpZXdEYXRhPy5lbnRpdHlTZXR9YCB8fFxuXHRcdFx0ZW50aXR5U2V0TmFtZSA9PT0gb3JpZ2luYWxWaWV3RGF0YT8uZW50aXR5U2V0XG5cdFx0KSB7XG5cdFx0XHRjb250cm9sQ29uZmlndXJhdGlvbiA9IHZpZXdEYXRhLmNvbnRyb2xDb25maWd1cmF0aW9uO1xuXHRcdH1cblx0XHR2aWV3RGF0YS5jb250cm9sQ29uZmlndXJhdGlvbiA9IG1lcmdlKGNvbnRyb2xDb25maWd1cmF0aW9uLCBleHRyYVBhcmFtcyB8fCB7fSk7XG5cblx0XHRyZXR1cm4gQ29udmVydGVyQ29udGV4dC5jcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8oXG5cdFx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0Lm5hbWUsXG5cdFx0XHRzZXR0aW5ncy5tb2RlbHMubWV0YU1vZGVsLFxuXHRcdFx0YXBwQ29tcG9uZW50Py5nZXREaWFnbm9zdGljcygpLFxuXHRcdFx0bWVyZ2UsXG5cdFx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbixcblx0XHRcdG5ldyBNYW5pZmVzdFdyYXBwZXIodmlld0RhdGEgYXMgQmFzZU1hbmlmZXN0U2V0dGluZ3MsIGFwcENvbXBvbmVudClcblx0XHQpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBDcmVhdGUgYSBCaW5kaW5nIENvbnRleHQuXG5cdCAqIEBwYXJhbSBvRGF0YVxuXHQgKiBAcGFyYW0gbVNldHRpbmdzXG5cdCAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGNvbnRleHRcblx0ICovXG5cdHN0YXRpYyBjcmVhdGVCaW5kaW5nQ29udGV4dCA9IGZ1bmN0aW9uIChvRGF0YTogb2JqZWN0LCBtU2V0dGluZ3M6IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MpOiBDb250ZXh0IHtcblx0XHRjb25zdCBzQ29udGV4dFBhdGggPSBgL3VpZC0tJHt1aWQoKX1gO1xuXHRcdG1TZXR0aW5ncy5tb2RlbHMuY29udmVydGVyQ29udGV4dC5zZXRQcm9wZXJ0eShzQ29udGV4dFBhdGgsIG9EYXRhKTtcblx0XHRyZXR1cm4gbVNldHRpbmdzLm1vZGVscy5jb252ZXJ0ZXJDb250ZXh0LmNyZWF0ZUJpbmRpbmdDb250ZXh0KHNDb250ZXh0UGF0aCkhO1xuXHR9O1xuXG5cdHBhcmVudENvbnRleHRUb0JpbmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuXHQvKipcblx0ICogS2VlcCB0cmFjayBvZiBhIGJpbmRpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBhc3NpZ25lZCB0byB0aGUgcGFyZW50IG9mIHRoYXQgY29udHJvbC5cblx0ICogQHBhcmFtIG1vZGVsTmFtZSBUaGUgbW9kZWwgbmFtZSB0aGF0IHRoZSBjb250ZXh0IHdpbGwgcmVsYXRlIHRvXG5cdCAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBiaW5kaW5nIGNvbnRleHRcblx0ICovXG5cdHNldFBhcmVudEJpbmRpbmdDb250ZXh0KG1vZGVsTmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLnBhcmVudENvbnRleHRUb0JpbmRbbW9kZWxOYW1lXSA9IHBhdGg7XG5cdH1cblxuXHRzZXRQYXJlbnQoLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRzdXBlci5zZXRQYXJlbnQoLi4uYXJncyk7XG5cdFx0T2JqZWN0LmtleXModGhpcy5wYXJlbnRDb250ZXh0VG9CaW5kKS5mb3JFYWNoKChtb2RlbE5hbWUpID0+IHtcblx0XHRcdHRoaXMuZ2V0UGFyZW50KCkhLmJpbmRPYmplY3Qoe1xuXHRcdFx0XHRwYXRoOiB0aGlzLnBhcmVudENvbnRleHRUb0JpbmRbbW9kZWxOYW1lXSxcblx0XHRcdFx0bW9kZWw6IG1vZGVsTmFtZSxcblx0XHRcdFx0ZXZlbnRzOiB7XG5cdFx0XHRcdFx0Y2hhbmdlOiBmdW5jdGlvbiAodGhpczogQ2xpZW50Q29udGV4dEJpbmRpbmcpIHtcblx0XHRcdFx0XHRcdGNvbnN0IG9Cb3VuZENvbnRleHQgPSB0aGlzLmdldEJvdW5kQ29udGV4dCgpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0XHRcdFx0aWYgKG9Cb3VuZENvbnRleHQgJiYgIW9Cb3VuZENvbnRleHQuZ2V0T2JqZWN0KCkpIHtcblx0XHRcdFx0XHRcdFx0b0JvdW5kQ29udGV4dC5zZXRQcm9wZXJ0eShcIlwiLCB7fSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYWNyb0FQSTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQSxJQU1NQSxRQUFRLElBQUFDLElBQUEsR0FEYkMsY0FBYyxD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
184
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNYWNyb0FQSSIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiaW1wbGVtZW50SW50ZXJmYWNlIiwiX2RlYzMiLCJhZ2dyZWdhdGlvbiIsInR5cGUiLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsIl9kZWM0IiwicHJvcGVydHkiLCJfZGVjNSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfTWFjcm9BUEkiLCJfQnVpbGRpbmdCbG9jayIsIm1TZXR0aW5ncyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJwYXJlbnRDb250ZXh0VG9CaW5kIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJhcHBseVNldHRpbmdzIiwib1Njb3BlIiwiZXZlbnRzS2V5cyIsIk9iamVjdCIsImtleXMiLCJnZXRNZXRhZGF0YSIsImdldEV2ZW50cyIsImV2ZW50c0tleSIsInVuZGVmaW5lZCIsImluaXQiLCJnZXRNb2RlbCIsIm9QYWdlTW9kZWwiLCJDb21wb25lbnQiLCJnZXRPd25lckNvbXBvbmVudEZvciIsInNldE1vZGVsIiwic2V0T3JCaW5kUHJvcGVydHkiLCJwcm9wZXJ0eU5hbWUiLCJ2YWx1ZSIsInBhcnNlZEV4cHJlc3Npb24iLCJCaW5kaW5nSW5mbyIsInBhcnNlIiwiX2UiLCJzdGFydHNXaXRoIiwiYmluZFByb3BlcnR5IiwiZ2V0UHJvcGVydHkiLCJzZXRQcm9wZXJ0eSIsInNldFBhcmVudEJpbmRpbmdDb250ZXh0IiwibW9kZWxOYW1lIiwicGF0aCIsInNldFBhcmVudCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiZm9yRWFjaCIsImdldFBhcmVudCIsImJpbmRPYmplY3QiLCJtb2RlbCIsImV2ZW50cyIsImNoYW5nZSIsIm9Cb3VuZENvbnRleHQiLCJnZXRCb3VuZENvbnRleHQiLCJnZXRPYmplY3QiLCJCdWlsZGluZ0Jsb2NrIiwibmFtZXNwYWNlIiwibWFjcm9OYW1lIiwiZnJhZ21lbnQiLCJoYXNWYWxpZGF0aW9uIiwiZ2V0Q29udmVydGVyQ29udGV4dCIsImRhdGFNb2RlbE9iamVjdFBhdGgiLCJjb250ZXh0UGF0aCIsInNldHRpbmdzIiwiZXh0cmFQYXJhbXMiLCJhcHBDb21wb25lbnQiLCJvcmlnaW5hbFZpZXdEYXRhIiwibW9kZWxzIiwidmlld0RhdGEiLCJnZXREYXRhIiwiYXNzaWduIiwicmVzb3VyY2VNb2RlbCIsImRlZXBDbG9uZSIsImNvbnRyb2xDb25maWd1cmF0aW9uIiwicmVsYXRpdmVQYXRoIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImNvbnRleHRMb2NhdGlvbiIsImVudGl0eVNldE5hbWUiLCJ0YXJnZXRFbnRpdHlTZXQiLCJuYW1lIiwiZW50aXR5U2V0IiwibWVyZ2UiLCJDb252ZXJ0ZXJDb250ZXh0IiwiY3JlYXRlQ29udmVydGVyQ29udGV4dEZvck1hY3JvIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJtZXRhTW9kZWwiLCJnZXREaWFnbm9zdGljcyIsIk1hbmlmZXN0V3JhcHBlciIsImNyZWF0ZUJpbmRpbmdDb250ZXh0Iiwib0RhdGEiLCJzQ29udGV4dFBhdGgiLCJ1aWQiLCJjb252ZXJ0ZXJDb250ZXh0IiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNYWNyb0FQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVlcENsb25lIGZyb20gXCJzYXAvYmFzZS91dGlsL2RlZXBDbG9uZVwiO1xuaW1wb3J0IG1lcmdlIGZyb20gXCJzYXAvYmFzZS91dGlsL21lcmdlXCI7XG5pbXBvcnQgdWlkIGZyb20gXCJzYXAvYmFzZS91dGlsL3VpZFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VNYW5pZmVzdFNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IE1hbmlmZXN0V3JhcHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFdyYXBwZXJcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0VGFyZ2V0T2JqZWN0UGF0aCwgdHlwZSBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IEJpbmRpbmdJbmZvIGZyb20gXCJzYXAvdWkvYmFzZS9CaW5kaW5nSW5mb1wiO1xuaW1wb3J0IHR5cGUgeyAkTWFuYWdlZE9iamVjdFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm1Db250ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIENsaWVudENvbnRleHRCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvQ2xpZW50Q29udGV4dEJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5cbi8qKlxuICogQmFzZSBBUEkgY29udHJvbCBmb3IgYnVpbGRpbmcgYmxvY2tzLlxuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQHB1YmxpY1xuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLk1hY3JvQVBJXCIpXG5jbGFzcyBNYWNyb0FQSTxUIGV4dGVuZHMgb2JqZWN0ID0ge30+IGV4dGVuZHMgQnVpbGRpbmdCbG9jazxDb250cm9sLCBUPiBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQgPSB0cnVlO1xuXG5cdHN0YXRpYyBuYW1lc3BhY2UgPSBcInNhcC5mZS5tYWNyb3NcIjtcblxuXHRzdGF0aWMgbWFjcm9OYW1lID0gXCJNYWNyb1wiO1xuXG5cdHN0YXRpYyBmcmFnbWVudCA9IFwic2FwLmZlLm1hY3Jvcy5NYWNyb1wiO1xuXG5cdHN0YXRpYyBoYXNWYWxpZGF0aW9uID0gdHJ1ZTtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IENvbnRyb2w7XG5cblx0Y29uc3RydWN0b3IobVNldHRpbmdzPzogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxNYWNyb0FQST4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihtU2V0dGluZ3MsIG90aGVycyk7XG5cdH1cblxuXHRhcHBseVNldHRpbmdzKG1TZXR0aW5nczogJE1hbmFnZWRPYmplY3RTZXR0aW5ncywgb1Njb3BlPzogb2JqZWN0KTogdGhpcyB7XG5cdFx0Ly8gQ2xlYW51cCBldmVudHNcblx0XHRpZiAobVNldHRpbmdzKSB7XG5cdFx0XHRjb25zdCBldmVudHNLZXlzID0gT2JqZWN0LmtleXModGhpcy5nZXRNZXRhZGF0YSgpLmdldEV2ZW50cygpKTtcblx0XHRcdGZvciAoY29uc3QgZXZlbnRzS2V5IG9mIGV2ZW50c0tleXMpIHtcblx0XHRcdFx0aWYgKG1TZXR0aW5nc1tldmVudHNLZXkgYXMga2V5b2YgJE1hbmFnZWRPYmplY3RTZXR0aW5nc10gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGRlbGV0ZSBtU2V0dGluZ3NbZXZlbnRzS2V5IGFzIGtleW9mICRNYW5hZ2VkT2JqZWN0U2V0dGluZ3NdO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHN1cGVyLmFwcGx5U2V0dGluZ3MobVNldHRpbmdzLCBvU2NvcGUpO1xuXHR9XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRzdXBlci5pbml0KCk7XG5cdFx0aWYgKCF0aGlzLmdldE1vZGVsKFwiX3BhZ2VNb2RlbFwiKSkge1xuXHRcdFx0Y29uc3Qgb1BhZ2VNb2RlbCA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcih0aGlzKT8uZ2V0TW9kZWwoXCJfcGFnZU1vZGVsXCIpO1xuXHRcdFx0aWYgKG9QYWdlTW9kZWwpIHtcblx0XHRcdFx0dGhpcy5zZXRNb2RlbChvUGFnZU1vZGVsLCBcIl9wYWdlTW9kZWxcIik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHBhdGggb2YgdGhlIGNvbnRleHQgdXNlZCBpbiB0aGUgY3VycmVudCBwYWdlIG9yIGJsb2NrLlxuXHQgKiBUaGlzIHNldHRpbmcgaXMgZGVmaW5lZCBieSB0aGUgZnJhbWV3b3JrLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGNvbnRleHRQYXRoITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSByZWxhdGl2ZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgbWV0YW1vZGVsLCBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0UGF0aC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRtZXRhUGF0aCE6IHN0cmluZztcblxuXHQvKipcblx0ICogU2V0IG9yIGJpbmQgYSBwcm9wZXJ0eS5cblx0ICogQHBhcmFtIHByb3BlcnR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHlcblx0ICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHlcblx0ICovXG5cdHNldE9yQmluZFByb3BlcnR5KHByb3BlcnR5TmFtZTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuXHRcdGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRsZXQgcGFyc2VkRXhwcmVzc2lvbjtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHBhcnNlZEV4cHJlc3Npb24gPSBCaW5kaW5nSW5mby5wYXJzZSh2YWx1ZSk7XG5cdFx0XHR9IGNhdGNoIChfZSkge1xuXHRcdFx0XHQvLyBKdXN0IGlnbm9yZSB0aGUgZXJyb3Jcblx0XHRcdH1cblx0XHRcdGlmIChwYXJzZWRFeHByZXNzaW9uIHx8ICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUuc3RhcnRzV2l0aChcIntcIikpKSB7XG5cdFx0XHRcdHRoaXMuYmluZFByb3BlcnR5KHByb3BlcnR5TmFtZSwgcGFyc2VkRXhwcmVzc2lvbiA/PyB2YWx1ZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5nZXRNZXRhZGF0YSgpLmdldFByb3BlcnR5KHByb3BlcnR5TmFtZSk/LnR5cGUgPT09IFwiYm9vbGVhblwiICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdHZhbHVlID0gdmFsdWUgPT09IFwidHJ1ZVwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuc2V0UHJvcGVydHkocHJvcGVydHlOYW1lLCB2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIGEgQ29udmVydGVyIENvbnRleHQuXG5cdCAqIEBwYXJhbSBkYXRhTW9kZWxPYmplY3RQYXRoXG5cdCAqIEBwYXJhbSBjb250ZXh0UGF0aFxuXHQgKiBAcGFyYW0gc2V0dGluZ3Ncblx0ICogQHBhcmFtIGV4dHJhUGFyYW1zXG5cdCAqIEByZXR1cm5zIEEgQ29udmVydGVyIENvbnRleHRcblx0ICovXG5cdHN0YXRpYyBnZXRDb252ZXJ0ZXJDb250ZXh0ID0gZnVuY3Rpb24gKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8dW5rbm93bj4sXG5cdFx0Y29udGV4dFBhdGg6IHN0cmluZyxcblx0XHRzZXR0aW5nczogVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncyxcblx0XHRleHRyYVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cdCk6IENvbnZlcnRlckNvbnRleHQge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IHNldHRpbmdzLmFwcENvbXBvbmVudDtcblx0XHRjb25zdCBvcmlnaW5hbFZpZXdEYXRhID0gc2V0dGluZ3MubW9kZWxzLnZpZXdEYXRhPy5nZXREYXRhKCk7XG5cdFx0bGV0IHZpZXdEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgb3JpZ2luYWxWaWV3RGF0YSk7XG5cdFx0ZGVsZXRlIHZpZXdEYXRhLnJlc291cmNlTW9kZWw7XG5cdFx0ZGVsZXRlIHZpZXdEYXRhLmFwcENvbXBvbmVudDtcblx0XHR2aWV3RGF0YSA9IGRlZXBDbG9uZSh2aWV3RGF0YSk7XG5cdFx0bGV0IGNvbnRyb2xDb25maWd1cmF0aW9uID0ge307XG5cblx0XHQvLyBPbmx5IG1lcmdlIGluIHBhZ2UgY29udHJvbCBjb25maWd1cmF0aW9uIGlmIHRoZSBidWlsZGluZyBibG9jayBpcyBvbiB0aGUgc2FtZSBjb250ZXh0XG5cdFx0Y29uc3QgcmVsYXRpdmVQYXRoID0gZ2V0VGFyZ2V0T2JqZWN0UGF0aChkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbiA/PyBkYXRhTW9kZWxPYmplY3RQYXRoKTtcblx0XHRjb25zdCBlbnRpdHlTZXROYW1lID0gZGF0YU1vZGVsT2JqZWN0UGF0aC5jb250ZXh0TG9jYXRpb24/LnRhcmdldEVudGl0eVNldD8ubmFtZSA/PyBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVNldD8ubmFtZTtcblx0XHRpZiAoXG5cdFx0XHRyZWxhdGl2ZVBhdGggPT09IG9yaWdpbmFsVmlld0RhdGE/LmNvbnRleHRQYXRoIHx8XG5cdFx0XHRyZWxhdGl2ZVBhdGggPT09IGAvJHtvcmlnaW5hbFZpZXdEYXRhPy5lbnRpdHlTZXR9YCB8fFxuXHRcdFx0ZW50aXR5U2V0TmFtZSA9PT0gb3JpZ2luYWxWaWV3RGF0YT8uZW50aXR5U2V0XG5cdFx0KSB7XG5cdFx0XHRjb250cm9sQ29uZmlndXJhdGlvbiA9IHZpZXdEYXRhLmNvbnRyb2xDb25maWd1cmF0aW9uO1xuXHRcdH1cblx0XHR2aWV3RGF0YS5jb250cm9sQ29uZmlndXJhdGlvbiA9IG1lcmdlKGNvbnRyb2xDb25maWd1cmF0aW9uLCBleHRyYVBhcmFtcyB8fCB7fSk7XG5cblx0XHRyZXR1cm4gQ29udmVydGVyQ29udGV4dC5jcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8oXG5cdFx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0Lm5hbWUsXG5cdFx0XHRzZXR0aW5ncy5tb2RlbHMubWV0YU1vZGVsLFxuXHRcdFx0YXBwQ29tcG9uZW50Py5nZXREaWFnbm9zdGljcygpLFxuXHRcdFx0bWVyZ2UsXG5cdFx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbixcblx0XHRcdG5ldyBNYW5pZmVzdFdyYXBwZXIodmlld0RhdGEgYXMgQmFzZU1hbmlmZXN0U2V0dGluZ3MsIGFwcENvbXBvbmVudClcblx0XHQpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBDcmVhdGUgYSBCaW5kaW5nIENvbnRleHQuXG5cdCAqIEBwYXJhbSBvRGF0YVxuXHQgKiBAcGFyYW0gbVNldHRpbmdzXG5cdCAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGNvbnRleHRcblx0ICovXG5cdHN0YXRpYyBjcmVhdGVCaW5kaW5nQ29udGV4dCA9IGZ1bmN0aW9uIChvRGF0YTogb2JqZWN0LCBtU2V0dGluZ3M6IFRlbXBsYXRlUHJvY2Vzc29yU2V0dGluZ3MpOiBDb250ZXh0IHtcblx0XHRjb25zdCBzQ29udGV4dFBhdGggPSBgL3VpZC0tJHt1aWQoKX1gO1xuXHRcdG1TZXR0aW5ncy5tb2RlbHMuY29udmVydGVyQ29udGV4dC5zZXRQcm9wZXJ0eShzQ29udGV4dFBhdGgsIG9EYXRhKTtcblx0XHRyZXR1cm4gbVNldHRpbmdzLm1vZGVscy5jb252ZXJ0ZXJDb250ZXh0LmNyZWF0ZUJpbmRpbmdDb250ZXh0KHNDb250ZXh0UGF0aCkhO1xuXHR9O1xuXG5cdHBhcmVudENvbnRleHRUb0JpbmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuXHQvKipcblx0ICogS2VlcCB0cmFjayBvZiBhIGJpbmRpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBhc3NpZ25lZCB0byB0aGUgcGFyZW50IG9mIHRoYXQgY29udHJvbC5cblx0ICogQHBhcmFtIG1vZGVsTmFtZSBUaGUgbW9kZWwgbmFtZSB0aGF0IHRoZSBjb250ZXh0IHdpbGwgcmVsYXRlIHRvXG5cdCAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBiaW5kaW5nIGNvbnRleHRcblx0ICovXG5cdHNldFBhcmVudEJpbmRpbmdDb250ZXh0KG1vZGVsTmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLnBhcmVudENvbnRleHRUb0JpbmRbbW9kZWxOYW1lXSA9IHBhdGg7XG5cdH1cblxuXHRzZXRQYXJlbnQoLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRzdXBlci5zZXRQYXJlbnQoLi4uYXJncyk7XG5cdFx0T2JqZWN0LmtleXModGhpcy5wYXJlbnRDb250ZXh0VG9CaW5kKS5mb3JFYWNoKChtb2RlbE5hbWUpID0+IHtcblx0XHRcdHRoaXMuZ2V0UGFyZW50KCkhLmJpbmRPYmplY3Qoe1xuXHRcdFx0XHRwYXRoOiB0aGlzLnBhcmVudENvbnRleHRUb0JpbmRbbW9kZWxOYW1lXSxcblx0XHRcdFx0bW9kZWw6IG1vZGVsTmFtZSxcblx0XHRcdFx0ZXZlbnRzOiB7XG5cdFx0XHRcdFx0Y2hhbmdlOiBmdW5jdGlvbiAodGhpczogQ2xpZW50Q29udGV4dEJpbmRpbmcpIHtcblx0XHRcdFx0XHRcdGNvbnN0IG9Cb3VuZENvbnRleHQgPSB0aGlzLmdldEJvdW5kQ29udGV4dCgpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0XHRcdFx0aWYgKG9Cb3VuZENvbnRleHQgJiYgIW9Cb3VuZENvbnRleHQuZ2V0T2JqZWN0KCkpIHtcblx0XHRcdFx0XHRcdFx0b0JvdW5kQ29udGV4dC5zZXRQcm9wZXJ0eShcIlwiLCB7fSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYWNyb0FQSTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQSxJQU1NQSxRQUFRLElBQUFDLElBQUEsR0FEYkMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLEVBQUFDLEtBQUEsR0FFdkNDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLEVBQUFDLEtBQUEsR0FXOUNDLFdBQVcsQ0FBQztJQUFFQyxJQUFJLEVBQUUscUJBQXFCO0lBQUVDLFFBQVEsRUFBRSxLQUFLO0lBQUVDLFNBQVMsRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBb0M5RUMsUUFBUSxDQUFDO0lBQUVKLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBSyxLQUFBLEdBTzVCRCxRQUFRLENBQUM7SUFBRUosSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFOLElBQUEsQ0FBQVksTUFBQSxJQUFBQyxPQUFBLElBQUFDLFNBQUEsMEJBQUFDLGNBQUE7SUF4QzdCLFNBQUFoQixTQUFZaUIsU0FBcUQsRUFBRUMsTUFBeUIsRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFDN0ZBLEtBQUEsR0FBQUgsY0FBQSxDQUFBSSxJQUFBLE9BQU1ILFNBQVMsRUFBRUMsTUFBTSxDQUFDO01BQUNHLDBCQUFBLENBQUFGLEtBQUEsNENBQUFHLFdBQUEsRUFBQUgsS0FBQTtNQUFBRSwwQkFBQSxDQUFBRixLQUFBLGFBQUFJLFlBQUEsRUFBQUosS0FBQTtNQTJCMUI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtNQUpDRSwwQkFBQSxDQUFBRixLQUFBLGlCQUFBSyxZQUFBLEVBQUFMLEtBQUE7TUFRQTtBQUNEO0FBQ0E7QUFDQTtNQUhDRSwwQkFBQSxDQUFBRixLQUFBLGNBQUFNLFlBQUEsRUFBQU4sS0FBQTtNQUFBQSxLQUFBLENBdUZBTyxtQkFBbUIs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
@@ -88,11 +88,16 @@ class MacroAPI<T extends object = {}> extends BuildingBlock<Control, T> implemen
88
88
  * @param propertyName The name of the property
89
89
  * @param value The value of the property
90
90
  */
91
- setOrBindProperty(propertyName: string, value?: unknown): void {
91
+ setOrBindProperty(propertyName: string, value: unknown): void {
92
92
  if (value !== undefined) {
93
- const parsedExpression = BindingInfo.parse(value);
94
- if (parsedExpression) {
95
- this.bindProperty(propertyName, parsedExpression);
93
+ let parsedExpression;
94
+ try {
95
+ parsedExpression = BindingInfo.parse(value);
96
+ } catch (_e) {
97
+ // Just ignore the error
98
+ }
99
+ if (parsedExpression || (typeof value === "string" && value.startsWith("{"))) {
100
+ this.bindProperty(propertyName, parsedExpression ?? value);
96
101
  } else {
97
102
  if (this.getMetadata().getProperty(propertyName)?.type === "boolean" && typeof value === "string") {
98
103
  value = value === "true";
@@ -26,7 +26,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/building
26
26
  * &lt;macros:MessageButton visibilityChange=".handler.onMessageButtonVisibilityChange" /&gt;
27
27
  * </pre>
28
28
  * @public
29
- * @experimental
30
29
  */
31
30
  let MessageButton = (_dec = defineUI5Class("sap.fe.macros.MessageButton"), _dec2 = event(), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlock) {
32
31
  function MessageButton(idOrSettings, settings) {
@@ -260,4 +259,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/building
260
259
  _exports = MessageButton;
261
260
  return _exports;
262
261
  }, false);
263
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXNzYWdlQnV0dG9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJldmVudCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9jayIsImlkT3JTZXR0aW5ncyIsInNldHRpbmdzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9tZXNzYWdlSXRlbU1lc3NhZ2VEZXRhaWxNYXAiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiX21lc3NhZ2VNb2RlbCIsIk1lc3NhZ2luZyIsImdldE1lc3NhZ2VNb2RlbCIsIl9tbVByb3BlcnR5QmluZGluZyIsImJpbmRQcm9wZXJ0eSIsImF0dGFjaENoYW5nZSIsInByb2Nlc3NNZXNzYWdlcyIsImV2ZW50RGVsZWdhdGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsInJlbW92ZUV2ZW50RGVsZWdhdGUiLCJhZGRFdmVudERlbGVnYXRlIiwibWVzc2FnZXMiLCJnZXREYXRhIiwibWVzc2FnZURldGFpbHMiLCJyZWR1Y2UiLCJyZWR1Y2VkTWVzc2FnZXMiLCJtZXNzYWdlIiwiaXNCb3VuZCIsImdldFRhcmdldHMiLCJsZW5ndGgiLCJpc01lc3NhZ2VUZWNobmljYWwiLCJnZXRUZWNobmljYWwiLCJwdXNoIiwiZ2V0UGFnZUNvbnRyb2xsZXIiLCJtZXNzYWdlSGFuZGxlciIsImJlZm9yZVNob3dNZXNzYWdlQnV0dG9uIiwiYWRqdXN0TWVzc2FnZUJ1dHRvblByb3BlcnRpZXMiLCJtZXNzYWdlUHJpb3JpdHlNYXAiLCJFcnJvciIsIldhcm5pbmciLCJTdWNjZXNzIiwiSW5mb3JtYXRpb24iLCJOb25lIiwiYXZhaWxhYmxlSGlnaGVzdFByaW9yaXR5IiwiZXJyb3JDb3VudCIsIm1lc3NhZ2VJdGVtcyIsIm1lc3NhZ2VEZXRhaWwiLCJtZXNzYWdlVHlwZSIsImdldFR5cGUiLCJtZXNzYWdlUHJpb3JpdHkiLCJNZXNzYWdlVHlwZSIsImNyZWF0ZU1lc3NhZ2VJdGVtIiwiZ2V0Q29udGVudCIsInNldFRleHQiLCJ0b1N0cmluZyIsInByaW9yaXRpemVkQnV0dG9uVHlwZSIsIkJ1dHRvblR5cGUiLCJOZWdhdGl2ZSIsIkNyaXRpY2FsIiwiTmV1dHJhbCIsIkRlZmF1bHQiLCJzZXRUeXBlIiwicHJpb3JpdGl6ZWRUb29sVGlwS2V5IiwidG9vbHRpcEtleSIsInRvb2x0aXBUZXh0IiwiZ2V0VHJhbnNsYXRlZFRleHQiLCJzZXRUb29sdGlwIiwiZ2V0VmlzaWJsZSIsInNldFZpc2libGUiLCJmaXJlRXZlbnQiLCJ2aXNpYmxlIiwiY3JlYXRlTWVzc2FnZVBvcG92ZXIiLCJtZXNzYWdlSXRlbSIsIl9qc3giLCJNZXNzYWdlSXRlbSIsInRpdGxlIiwiZ2V0TWVzc2FnZSIsImRlc2NyaXB0aW9uIiwiZ2V0RGVzY3JpcHRpb24iLCJ0eXBlIiwibWFya3VwRGVzY3JpcHRpb24iLCJsb25ndGV4dFVybCIsImdldERlc2NyaXB0aW9uVXJsIiwic3VidGl0bGUiLCJnZXRBZGRpdGlvbmFsVGV4dCIsImdyb3VwTmFtZSIsImFjdGl2ZVRpdGxlIiwiZ2V0Q29udHJvbElkcyIsImFjdGl2ZVRpdGxlSGFuZGxlciIsImdldElkIiwiX21lc3NhZ2VQb3BvdmVyIiwiZGVzdHJveSIsIk1lc3NhZ2VQb3BvdmVyIiwiZ3JvdXBJdGVtcyIsImFjdGl2ZVRpdGxlUHJlc3MiLCJwcmVzc0V2ZW50IiwiZ2V0UGFyYW1ldGVyIiwiaGFuZGxlQWN0aXZlVGl0bGVQcmVzcyIsImNoaWxkcmVuIiwiaXRlbXMiLCJhZGREZXBlbmRlbnQiLCJzZXRUaW1lb3V0Iiwib3BlbkJ5IiwiY29udHJvbElkIiwiZ2V0Q29udHJvbElkIiwiY29udHJvbCIsIlVJNUVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImZvY3VzIiwiTG9nIiwiZXJyb3IiLCJ0b2dnbGVNZXNzYWdlUG9wb3ZlciIsInRvZ2dsZSIsIkJ1dHRvbiIsInByZXNzIiwiYmluZCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk1lc3NhZ2VCdXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlRGV0YWlsIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL01lc3NhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBNZXNzYWdlSXRlbSBmcm9tIFwic2FwL20vTWVzc2FnZUl0ZW1cIjtcbmltcG9ydCB0eXBlIHsgTWVzc2FnZVBvcG92ZXIkQWN0aXZlVGl0bGVQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL01lc3NhZ2VQb3BvdmVyXCI7XG5pbXBvcnQgTWVzc2FnZVBvcG92ZXIgZnJvbSBcInNhcC9tL01lc3NhZ2VQb3BvdmVyXCI7XG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgTWVzc2FnaW5nIGZyb20gXCJzYXAvdWkvY29yZS9NZXNzYWdpbmdcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2UgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVwiO1xuaW1wb3J0IE1lc3NhZ2VUeXBlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VUeXBlXCI7XG5pbXBvcnQgdHlwZSBQcm9wZXJ0eUJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9Qcm9wZXJ0eUJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2VNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL21lc3NhZ2UvTWVzc2FnZU1vZGVsXCI7XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgdXNlZCB0byBzaG93IGJvdW5kIG1lc3NhZ2VzLlxuICpcbiAqIFRoZSBNZXNzYWdlIEJ1dHRvbiBCdWlsZGluZyBCbG9jayBnZXRzIHRoZSBib3VuZCBtZXNzYWdlcyBmcm9tIHRoZSBNZXNzYWdlTW9kZWwuXG4gKlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqXG4gKiA8cHJlPlxuICogJmx0O21hY3JvczpNZXNzYWdlQnV0dG9uIHZpc2liaWxpdHlDaGFuZ2U9XCIuaGFuZGxlci5vbk1lc3NhZ2VCdXR0b25WaXNpYmlsaXR5Q2hhbmdlXCIgLyZndDtcbiAqIDwvcHJlPlxuICogQHB1YmxpY1xuICogQGV4cGVyaW1lbnRhbFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLk1lc3NhZ2VCdXR0b25cIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lc3NhZ2VCdXR0b24gZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrPEJ1dHRvbj4ge1xuXHQvKipcblx0ICogVGhlIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBtZXNzYWdlIGJ1dHRvbidzIHZpc2liaWxpdHkgY2hhbmdlcy5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QGV2ZW50KClcblx0dmlzaWJpbGl0eUNoYW5nZSE6IEZ1bmN0aW9uO1xuXG5cdF9tZXNzYWdlTW9kZWwhOiBNZXNzYWdlTW9kZWw7XG5cblx0X21lc3NhZ2VQb3BvdmVyITogTWVzc2FnZVBvcG92ZXI7XG5cblx0X21tUHJvcGVydHlCaW5kaW5nITogUHJvcGVydHlCaW5kaW5nO1xuXG5cdF9tZXNzYWdlSXRlbU1lc3NhZ2VEZXRhaWxNYXA6IFJlY29yZDxzdHJpbmcsIE1lc3NhZ2VEZXRhaWw+ID0ge307XG5cblx0Y29uc3RydWN0b3IoaWRPclNldHRpbmdzPzogc3RyaW5nIHwgUHJvcGVydGllc09mPE1lc3NhZ2VCdXR0b24+LCBzZXR0aW5ncz86IFByb3BlcnRpZXNPZjxNZXNzYWdlQnV0dG9uPikge1xuXHRcdHN1cGVyKGlkT3JTZXR0aW5ncywgc2V0dGluZ3MpO1xuXHR9XG5cdC8qKlxuXHQgKiBIYW5kbGVyIGZvciB0aGUgb25NZXRhZGF0YUF2YWlsYWJsZSBldmVudC5cblx0ICovXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLmNvbnRlbnQpIHtcblx0XHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdH1cblx0XHQvLyBnZXQgdGhlIG1lc3NhZ2UgbW9kZWwgYW5kIGF0dGFjaCB0byBpdCdzIGNoYW5nZSBldmVudC5cblx0XHR0aGlzLl9tZXNzYWdlTW9kZWwgPSBNZXNzYWdpbmcuZ2V0TWVzc2FnZU1vZGVsKCk7XG5cdFx0dGhpcy5fbW1Qcm9wZXJ0eUJpbmRpbmcgPSB0aGlzLl9tZXNzYWdlTW9kZWwuYmluZFByb3BlcnR5KFwiL1wiKTtcblx0XHR0aGlzLl9tbVByb3BlcnR5QmluZGluZy5hdHRhY2hDaGFuZ2UodGhpcy5wcm9jZXNzTWVzc2FnZXMsIHRoaXMpO1xuXHRcdGNvbnN0IGV2ZW50RGVsZWdhdGUgPSB7XG5cdFx0XHRvbkJlZm9yZVJlbmRlcmluZzogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR0aGlzLnByb2Nlc3NNZXNzYWdlcygpO1xuXHRcdFx0XHR0aGlzLnJlbW92ZUV2ZW50RGVsZWdhdGUoZXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHR0aGlzLmFkZEV2ZW50RGVsZWdhdGUoZXZlbnREZWxlZ2F0ZSk7XG5cdH1cblxuXHQvKipcblx0ICogUHJvY2Vzc2VzIG1lc3NhZ2VzIGluIHRoZSBtZXNzYWdlIG1vZGVsLlxuXHQgKlxuXHQgKiBGaWx0ZXJzIG91dCB0aGUgYm91bmQgYW5kIG5vbiB0ZWNobmljYWwgbWVzc2FnZXMgZnJvbSB0aGUgbWVzc2FnZSBtb2RlbFxuXHQgKiBBbmQgY2FsbHMgdGhlIE1lc3NhZ2VIYW5kbGVyLmJlZm9yZVNob3dNZXNzYWdlQnV0dG9uIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIHRvIGFsbG93IGNvbnN1bWVycyB0byBhZGFwdCB0aGUgbWVzc2FnZXMgdGhhdCB3aWxsIGJlIHNob3duLlxuXHQgKlxuXHQgKiBBZGRpdGlvbmFsbHksIGl0IGFkanVzdHMgdGhlIG1lc3NhZ2UgYnV0dG9uJ3MgcHJvZXBydGllcyBiYXNlZCBvbiB0aGUgbWVzc2FnZXMgdG8gYmUgc2hvd24uXG5cdCAqXG5cdCAqL1xuXHRhc3luYyBwcm9jZXNzTWVzc2FnZXMoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgbWVzc2FnZXM6IE1lc3NhZ2VbXSA9IHRoaXMuX21lc3NhZ2VNb2RlbD8uZ2V0RGF0YSgpO1xuXG5cdFx0Ly8gZ2V0IGJvdW5kIG1lc3NhZ2VzLlxuXHRcdGNvbnN0IG1lc3NhZ2VEZXRhaWxzID0gbWVzc2FnZXMucmVkdWNlKChyZWR1Y2VkTWVzc2FnZXM6IE1lc3NhZ2VEZXRhaWxbXSwgbWVzc2FnZSk6IE1lc3NhZ2VEZXRhaWxbXSA9PiB7XG5cdFx0XHRjb25zdCBpc0JvdW5kID0gbWVzc2FnZS5nZXRUYXJnZXRzKCkubGVuZ3RoID4gMDtcblx0XHRcdGNvbnN0IGlzTWVzc2FnZVRlY2huaWNhbCA9IG1lc3NhZ2UuZ2V0VGVjaG5pY2FsKCk7XG5cdFx0XHRpZiAoaXNCb3VuZCAmJiAhaXNNZXNzYWdlVGVjaG5pY2FsKSB7XG5cdFx0XHRcdHJlZHVjZWRNZXNzYWdlcy5wdXNoKHsgbWVzc2FnZSB9KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZWR1Y2VkTWVzc2FnZXM7XG5cdFx0fSwgW10pO1xuXG5cdFx0aWYgKG1lc3NhZ2VEZXRhaWxzICYmIG1lc3NhZ2VEZXRhaWxzLmxlbmd0aCA+IDApIHtcblx0XHRcdGF3YWl0IHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKS5tZXNzYWdlSGFuZGxlci5iZWZvcmVTaG93TWVzc2FnZUJ1dHRvbihtZXNzYWdlRGV0YWlscyk7XG5cdFx0fVxuXHRcdHRoaXMuYWRqdXN0TWVzc2FnZUJ1dHRvblByb3BlcnRpZXMobWVzc2FnZURldGFpbHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkanVzdHMgdGhlIG1lc3NhZ2UgYnV0dG9uIHByb3BlcnRpZXMgYW5kIGNyZWF0ZXMgYSBtZXNzYWdlIHBvcG92ZXIgdG8gc2hvdyB0aGUgbWVzc2FnZXMuXG5cdCAqXG5cdCAqIFNldHMgdGhlIG1lc3NhZ2VzIGJ1dHRvbnMgcHJvcGVydGllcyBvbiB0aGUgYmFzaXMgb2YgbWVzc2FnZXMgdG8gYmUgc2hvd24uXG5cdCAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBtZXNzYWdlcyBidXR0b24gaXMgZGV0ZXJtaW5lZCBvbiB0aGUgYmFzaXMgb2YgdGhlIHByaW9yaXR5IG9mIG1lc3NhZ2VzIHRvIGJlIHNob3duLlxuXHQgKlxuXHQgKiBBZGRpdGlvbmFsbHksIGNyZWF0ZXMgYSBtZXNzYWdlIHBvcG92ZXIgdG8gc2hvdyB0aGUgbWVzc2FnZXMuXG5cdCAqIEBwYXJhbSBtZXNzYWdlRGV0YWlscyBNZXNzYWdlIGRldGFpbHMgdXNlZCB0byByZW5kZXIgZWFjaCBtZXNzYWdlIGl0ZW0uXG5cdCAqL1xuXHRhZGp1c3RNZXNzYWdlQnV0dG9uUHJvcGVydGllcyhtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbFtdKTogdm9pZCB7XG5cdFx0dGhpcy5fbWVzc2FnZUl0ZW1NZXNzYWdlRGV0YWlsTWFwID0ge307XG5cdFx0aWYgKG1lc3NhZ2VEZXRhaWxzICYmIG1lc3NhZ2VEZXRhaWxzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnN0IG1lc3NhZ2VQcmlvcml0eU1hcCA9IHtcblx0XHRcdFx0RXJyb3I6IDAsXG5cdFx0XHRcdFdhcm5pbmc6IDEsXG5cdFx0XHRcdFN1Y2Nlc3M6IDIsXG5cdFx0XHRcdEluZm9ybWF0aW9uOiAzLFxuXHRcdFx0XHROb25lOiA0XG5cdFx0XHR9O1xuXG5cdFx0XHRsZXQgYXZhaWxhYmxlSGlnaGVzdFByaW9yaXR5ID0gbWVzc2FnZVByaW9yaXR5TWFwLk5vbmU7IC8vIHdlIHN0YXJ0IGZyb20gdGhlIGxvd2VzdFxuXHRcdFx0bGV0IGVycm9yQ291bnQgPSAwO1xuXHRcdFx0Y29uc3QgbWVzc2FnZUl0ZW1zOiBNZXNzYWdlSXRlbVtdID0gW107XG5cdFx0XHRmb3IgKGNvbnN0IG1lc3NhZ2VEZXRhaWwgb2YgbWVzc2FnZURldGFpbHMpIHtcblx0XHRcdFx0Y29uc3QgbWVzc2FnZSA9IG1lc3NhZ2VEZXRhaWwubWVzc2FnZTtcblx0XHRcdFx0Y29uc3QgbWVzc2FnZVR5cGUgPSBtZXNzYWdlLmdldFR5cGUoKTtcblx0XHRcdFx0Y29uc3QgbWVzc2FnZVByaW9yaXR5ID0gbWVzc2FnZVByaW9yaXR5TWFwW21lc3NhZ2VUeXBlXTtcblx0XHRcdFx0aWYgKG1lc3NhZ2VQcmlvcml0eSA8IGF2YWlsYWJsZUhpZ2hlc3RQcmlvcml0eSkge1xuXHRcdFx0XHRcdGF2YWlsYWJsZUhpZ2hlc3RQcmlvcml0eSA9IG1lc3NhZ2VQcmlvcml0eTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAobWVzc2FnZVR5cGUgPT09IE1lc3NhZ2VUeXBlLkVycm9yKSB7XG5cdFx0XHRcdFx0ZXJyb3JDb3VudCsrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG1lc3NhZ2VJdGVtcy5wdXNoKHRoaXMuY3JlYXRlTWVzc2FnZUl0ZW0obWVzc2FnZURldGFpbCkpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBzZXQgcHJvcGVydGllcyBvbiB0aGUgbWVzc2FnZSBidXR0b25zXG5cblx0XHRcdC8vIHNldFRleHRcblx0XHRcdHRoaXMuZ2V0Q29udGVudCgpPy5zZXRUZXh0KG1lc3NhZ2VEZXRhaWxzLmxlbmd0aC50b1N0cmluZygpKTtcblxuXHRcdFx0Ly8gc2V0VHlwZVxuXHRcdFx0Y29uc3QgcHJpb3JpdGl6ZWRCdXR0b25UeXBlID0gW1xuXHRcdFx0XHRCdXR0b25UeXBlLk5lZ2F0aXZlLFxuXHRcdFx0XHRCdXR0b25UeXBlLkNyaXRpY2FsLFxuXHRcdFx0XHRCdXR0b25UeXBlLlN1Y2Nlc3MsXG5cdFx0XHRcdEJ1dHRvblR5cGUuTmV1dHJhbCxcblx0XHRcdFx0QnV0dG9uVHlwZS5EZWZhdWx0XG5cdFx0XHRdO1xuXHRcdFx0dGhpcy5nZXRDb250ZW50KCk/LnNldFR5cGUocHJpb3JpdGl6ZWRCdXR0b25UeXBlW2F2YWlsYWJsZUhpZ2hlc3RQcmlvcml0eV0pO1xuXG5cdFx0XHQvLyBzZXRUb29sdGlwXG5cdFx0XHRjb25zdCBwcmlvcml0aXplZFRvb2xUaXBLZXkgPSBbXG5cdFx0XHRcdFwiQ19DT01NT05fU0FQRkVfRVJST1JfTUVTU0FHRVNfUEFHRV9USVRMRV9FUlJPUlwiLFxuXHRcdFx0XHRcIkNfQ09NTU9OX1NBUEZFX0VSUk9SX01FU1NBR0VTX1BBR0VfV0FSTklOR19UT09MVElQXCIsXG5cdFx0XHRcdFwiQ19NRVNTQUdFX0hBTkRMSU5HX1NBUEZFX0VSUk9SX01FU1NBR0VTX1BBR0VfVElUTEVfU1VDQ0VTU1wiLFxuXHRcdFx0XHRcIkNfTUVTU0FHRV9IQU5ETElOR19TQVBGRV9FUlJPUl9NRVNTQUdFU19QQUdFX1RJVExFX0lORk9cIixcblx0XHRcdFx0XCJcIlxuXHRcdFx0XTtcblx0XHRcdGNvbnN0IHRvb2x0aXBLZXkgPVxuXHRcdFx0XHRlcnJvckNvdW50ID4gMVxuXHRcdFx0XHRcdD8gXCJDX0NPTU1PTl9TQVBGRV9FUlJPUl9NRVNTQUdFU19QQUdFX01VTFRJUExFX0VSUk9SX1RPT0xUSVBcIlxuXHRcdFx0XHRcdDogcHJpb3JpdGl6ZWRUb29sVGlwS2V5W2F2YWlsYWJsZUhpZ2hlc3RQcmlvcml0eV07XG5cdFx0XHRsZXQgdG9vbHRpcFRleHQgPSB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KHRvb2x0aXBLZXkpO1xuXHRcdFx0aWYgKGVycm9yQ291bnQgPiAxKSB7XG5cdFx0XHRcdHRvb2x0aXBUZXh0ID0gYCR7ZXJyb3JDb3VudH0gICR7dG9vbHRpcFRleHR9YDtcblx0XHRcdH1cblx0XHRcdHRoaXMuZ2V0Q29udGVudCgpPy5zZXRUb29sdGlwKHRvb2x0aXBUZXh0KTtcblxuXHRcdFx0Ly8gc2V0VmlzaWJsZVxuXHRcdFx0aWYgKCF0aGlzLmdldENvbnRlbnQoKT8uZ2V0VmlzaWJsZSgpKSB7XG5cdFx0XHRcdHRoaXMuZ2V0Q29udGVudCgpPy5zZXRWaXNpYmxlKHRydWUpO1xuXHRcdFx0XHR0aGlzLmZpcmVFdmVudChcInZpc2liaWxpdHlDaGFuZ2VcIiwgeyB2aXNpYmxlOiB0aGlzLmdldENvbnRlbnQoKT8uZ2V0VmlzaWJsZSgpIH0pO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBhbHNvIHNob3cgdGhlIG1lc3NhZ2UgcG9wb3ZlclxuXHRcdFx0dGhpcy5jcmVhdGVNZXNzYWdlUG9wb3ZlcihtZXNzYWdlSXRlbXMpO1xuXHRcdH1cblxuXHRcdGlmIChtZXNzYWdlRGV0YWlscy5sZW5ndGggPT09IDApIHtcblx0XHRcdGlmICh0aGlzLmdldENvbnRlbnQoKT8uZ2V0VmlzaWJsZSgpKSB7XG5cdFx0XHRcdHRoaXMuZ2V0Q29udGVudCgpPy5zZXRWaXNpYmxlKGZhbHNlKTtcblx0XHRcdFx0dGhpcy5maXJlRXZlbnQoXCJ2aXNpYmlsaXR5Q2hhbmdlXCIsIHsgdmlzaWJsZTogdGhpcy5nZXRDb250ZW50KCk/LmdldFZpc2libGUoKSB9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG1lc3NhZ2UgSXRlbS5cblx0ICogQHBhcmFtIG1lc3NhZ2VEZXRhaWwgTWVzc2FnZSBkZXRhaWwgcmVsZXZhbnQgZm9yIGNyZWF0aW5nIHRoZSBtZXNzYWdlIGl0ZW0uXG5cdCAqIEByZXR1cm5zIE1lc3NhZ2VJdGVtIGNyZWF0ZWQgZnJvbSBNZXNzYWdlIERldGFpbFxuXHQgKi9cblx0Y3JlYXRlTWVzc2FnZUl0ZW0obWVzc2FnZURldGFpbDogTWVzc2FnZURldGFpbCk6IE1lc3NhZ2VJdGVtIHtcblx0XHRjb25zdCBtZXNzYWdlID0gbWVzc2FnZURldGFpbC5tZXNzYWdlO1xuXHRcdGNvbnN0IG1lc3NhZ2VJdGVtID0gKFxuXHRcdFx0PE1lc3NhZ2VJdGVtXG5cdFx0XHRcdHRpdGxlPXttZXNzYWdlLmdldE1lc3NhZ2UoKX1cblx0XHRcdFx0ZGVzY3JpcHRpb249e21lc3NhZ2UuZ2V0RGVzY3JpcHRpb24oKX1cblx0XHRcdFx0dHlwZT17bWVzc2FnZS5nZXRUeXBlKCl9XG5cdFx0XHRcdG1hcmt1cERlc2NyaXB0aW9uPXt0cnVlfVxuXHRcdFx0XHRsb25ndGV4dFVybD17bWVzc2FnZS5nZXREZXNjcmlwdGlvblVybCgpfVxuXHRcdFx0XHRzdWJ0aXRsZT17bWVzc2FnZS5nZXRBZGRpdGlvbmFsVGV4dCgpfVxuXHRcdFx0XHRncm91cE5hbWU9e21lc3NhZ2VEZXRhaWwuZ3JvdXBOYW1lIHx8IHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJUX01FU1NBR0VfQlVUVE9OX1NBUEZFX01FU1NBR0VfR1JPVVBfR0VORVJBTFwiKX1cblx0XHRcdFx0YWN0aXZlVGl0bGU9e21lc3NhZ2UuZ2V0Q29udHJvbElkcygpLmxlbmd0aCA+IDAgfHwgdHlwZW9mIG1lc3NhZ2VEZXRhaWwuYWN0aXZlVGl0bGVIYW5kbGVyID09PSBcImZ1bmN0aW9uXCJ9XG5cdFx0XHQvPlxuXHRcdCkgYXMgTWVzc2FnZUl0ZW07XG5cdFx0dGhpcy5fbWVzc2FnZUl0ZW1NZXNzYWdlRGV0YWlsTWFwW21lc3NhZ2VJdGVtLmdldElkKCldID0gbWVzc2FnZURldGFpbDtcblx0XHRyZXR1cm4gbWVzc2FnZUl0ZW07XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG1lc3NhZ2UgUG9wb3Zlci5cblx0ICogQHBhcmFtIG1lc3NhZ2VJdGVtc1xuXHQgKi9cblx0Y3JlYXRlTWVzc2FnZVBvcG92ZXIobWVzc2FnZUl0ZW1zOiBNZXNzYWdlSXRlbVtdKTogdm9pZCB7XG5cdFx0dGhpcy5fbWVzc2FnZVBvcG92ZXI/LmRlc3Ryb3koKTtcblx0XHR0aGlzLl9tZXNzYWdlUG9wb3ZlciA9IChcblx0XHRcdDxNZXNzYWdlUG9wb3ZlclxuXHRcdFx0XHRncm91cEl0ZW1zPXt0cnVlfVxuXHRcdFx0XHRhY3RpdmVUaXRsZVByZXNzPXsocHJlc3NFdmVudDogTWVzc2FnZVBvcG92ZXIkQWN0aXZlVGl0bGVQcmVzc0V2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgbWVzc2FnZUl0ZW0gPSBwcmVzc0V2ZW50LmdldFBhcmFtZXRlcihcIml0ZW1cIik7XG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVBY3RpdmVUaXRsZVByZXNzKG1lc3NhZ2VJdGVtKTtcblx0XHRcdFx0fX1cblx0XHRcdD5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRpdGVtczogbWVzc2FnZUl0ZW1zXG5cdFx0XHRcdH19XG5cdFx0XHQ8L01lc3NhZ2VQb3BvdmVyPlxuXHRcdCkgYXMgTWVzc2FnZVBvcG92ZXI7XG5cdFx0dGhpcy5nZXRDb250ZW50KCk/LmFkZERlcGVuZGVudCh0aGlzLl9tZXNzYWdlUG9wb3Zlcik7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLl9tZXNzYWdlUG9wb3Zlci5vcGVuQnkodGhpcy5nZXRDb250ZW50KCkgYXMgQnV0dG9uKTtcblx0XHR9LCAwKTtcblx0fVxuXHQvKipcblx0ICogSGFuZGxlcyBhY3RpdmUgdGl0bGUgcHJlc3MuXG5cdCAqXG5cdCAqIElmIGFuIGFjdGl2ZVRpdGxlSGFuZGxlciBpcyBwcm92aWRlZCBieSB0aGUgY29uc3VtZXIgdmlhIHRoZSBjb250cm9sbGVyIGV4dGVuc2lvbiB0aGVuIGl0IGlzIGNhbGxlZC5cblx0ICogT3RoZXJ3aXNlLCB3ZSB0cnkgdG8gZm9jdXMgb24gdGhlIGNvbnRyb2wgaWYgYSBjb250cm9sIElkIGluIHRoZSBtZXNzYWdlIGlzIGF2YWlsYWJsZS5cblx0ICogQHBhcmFtIG1lc3NhZ2VJdGVtXG5cdCAqL1xuXHRoYW5kbGVBY3RpdmVUaXRsZVByZXNzKG1lc3NhZ2VJdGVtPzogTWVzc2FnZUl0ZW0pOiB2b2lkIHtcblx0XHRpZiAobWVzc2FnZUl0ZW0pIHtcblx0XHRcdGNvbnN0IG1lc3NhZ2VEZXRhaWwgPSB0aGlzLl9tZXNzYWdlSXRlbU1lc3NhZ2VEZXRhaWxNYXBbbWVzc2FnZUl0ZW0/LmdldElkKCldO1xuXHRcdFx0aWYgKG1lc3NhZ2VEZXRhaWwuYWN0aXZlVGl0bGVIYW5kbGVyKSB7XG5cdFx0XHRcdG1lc3NhZ2VEZXRhaWwuYWN0aXZlVGl0bGVIYW5kbGVyKG1lc3NhZ2VEZXRhaWwubWVzc2FnZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb25zdCBjb250cm9sSWQgPSBtZXNzYWdlRGV0YWlsLm1lc3NhZ2UuZ2V0Q29udHJvbElkKCk7XG5cdFx0XHRcdGNvbnN0IGNvbnRyb2wgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRyb2xJZCk7XG5cdFx0XHRcdGlmIChjb250cm9sKSB7XG5cdFx0XHRcdFx0Y29udHJvbC5mb2N1cygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdExvZy5lcnJvcihcIm1lc3NhZ2UgaXRlbSBub3QgZm91bmQhXCIpO1xuXHRcdH1cblx0fVxuXG5cdGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fbW1Qcm9wZXJ0eUJpbmRpbmcuZGVzdHJveSgpO1xuXHR9XG5cdC8qKlxuXHQgKiBUb2dnbGUgaGFuZGxlciBmb3IgdGhlIG1lc3NhZ2UgcG9wb3Zlci5cblx0ICovXG5cdHRvZ2dsZU1lc3NhZ2VQb3BvdmVyKCk6IHZvaWQge1xuXHRcdHRoaXMuX21lc3NhZ2VQb3BvdmVyLnRvZ2dsZSh0aGlzLmNvbnRlbnQgYXMgQnV0dG9uKTtcblx0fVxuXHQvKipcblx0ICogQ3JlYXRlcyB0aGUgY29udGVudCBmb3IgdGhlIGJ1aWxkaW5nIGJsb2NrLlxuXHQgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBjb250ZW50IGNvbnRyb2wuXG5cdCAqL1xuXHRjcmVhdGVDb250ZW50KCk6IEJ1dHRvbiB7XG5cdFx0cmV0dXJuIDxCdXR0b24gdmlzaWJsZT1cImZhbHNlXCIgcHJlc3M9e3RoaXMudG9nZ2xlTWVzc2FnZVBvcG92ZXIuYmluZCh0aGlzKX0gLz47XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFaQSxJQWNxQkEsYUFBYSxJQUFBQyxJQUFBLEdBRGpDQyxjQUFjLENBQUMsNkJBQTZCLENBQUMsRUFBQUMsS0FBQSxHQU01Q0MsS0FBSyxDQUFDLENBQUMsRUFBQUgsSUFBQSxDQUFBSSxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGNBQUE7SUFXUixTQUFBUCxjQUFZUSxZQUFtRCxFQUFFQyxRQUFzQyxFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUN4R0EsS0FBQSxHQUFBSCxjQUFBLENBQUFJLElBQUEsT0FBTUgsWUFBWSxFQUFFQyxRQUFRLENBQUM7TUFoQjlCO0FBQ0Q7QUFDQTtBQUNBO01BSENHLDBCQUFBLENBQUFGLEtBQUEsc0JBQUFHLFdBQUEsRUFBQUgsS0FBQTtNQUFBQSxLQUFBLENBYUFJLDRCQUE0QixHQUFrQyxDQUFDLENBQUM7TUFBQSxPQUFBSixLQUFBO0lBSWhFO0lBQ0E7QUFDRDtBQUNBO0lBRkNLLFFBQUEsR0FBQWYsYUFBQTtJQUFBZ0IsY0FBQSxDQUFBaEIsYUFBQSxFQUFBTyxjQUFBO0lBQUEsSUFBQVUsTUFBQSxHQUFBakIsYUFBQSxDQUFBa0IsU0FBQTtJQUFBRCxNQUFBLENBR0FFLG1CQUFtQixHQUFuQixTQUFBQSxtQkFBbUJBLENBQUEsRUFBUztNQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDQyxPQUFPLEVBQUU7UUFDbEIs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
262
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXNzYWdlQnV0dG9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJldmVudCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9jayIsImlkT3JTZXR0aW5ncyIsInNldHRpbmdzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9tZXNzYWdlSXRlbU1lc3NhZ2VEZXRhaWxNYXAiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiX21lc3NhZ2VNb2RlbCIsIk1lc3NhZ2luZyIsImdldE1lc3NhZ2VNb2RlbCIsIl9tbVByb3BlcnR5QmluZGluZyIsImJpbmRQcm9wZXJ0eSIsImF0dGFjaENoYW5nZSIsInByb2Nlc3NNZXNzYWdlcyIsImV2ZW50RGVsZWdhdGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsInJlbW92ZUV2ZW50RGVsZWdhdGUiLCJhZGRFdmVudERlbGVnYXRlIiwibWVzc2FnZXMiLCJnZXREYXRhIiwibWVzc2FnZURldGFpbHMiLCJyZWR1Y2UiLCJyZWR1Y2VkTWVzc2FnZXMiLCJtZXNzYWdlIiwiaXNCb3VuZCIsImdldFRhcmdldHMiLCJsZW5ndGgiLCJpc01lc3NhZ2VUZWNobmljYWwiLCJnZXRUZWNobmljYWwiLCJwdXNoIiwiZ2V0UGFnZUNvbnRyb2xsZXIiLCJtZXNzYWdlSGFuZGxlciIsImJlZm9yZVNob3dNZXNzYWdlQnV0dG9uIiwiYWRqdXN0TWVzc2FnZUJ1dHRvblByb3BlcnRpZXMiLCJtZXNzYWdlUHJpb3JpdHlNYXAiLCJFcnJvciIsIldhcm5pbmciLCJTdWNjZXNzIiwiSW5mb3JtYXRpb24iLCJOb25lIiwiYXZhaWxhYmxlSGlnaGVzdFByaW9yaXR5IiwiZXJyb3JDb3VudCIsIm1lc3NhZ2VJdGVtcyIsIm1lc3NhZ2VEZXRhaWwiLCJtZXNzYWdlVHlwZSIsImdldFR5cGUiLCJtZXNzYWdlUHJpb3JpdHkiLCJNZXNzYWdlVHlwZSIsImNyZWF0ZU1lc3NhZ2VJdGVtIiwiZ2V0Q29udGVudCIsInNldFRleHQiLCJ0b1N0cmluZyIsInByaW9yaXRpemVkQnV0dG9uVHlwZSIsIkJ1dHRvblR5cGUiLCJOZWdhdGl2ZSIsIkNyaXRpY2FsIiwiTmV1dHJhbCIsIkRlZmF1bHQiLCJzZXRUeXBlIiwicHJpb3JpdGl6ZWRUb29sVGlwS2V5IiwidG9vbHRpcEtleSIsInRvb2x0aXBUZXh0IiwiZ2V0VHJhbnNsYXRlZFRleHQiLCJzZXRUb29sdGlwIiwiZ2V0VmlzaWJsZSIsInNldFZpc2libGUiLCJmaXJlRXZlbnQiLCJ2aXNpYmxlIiwiY3JlYXRlTWVzc2FnZVBvcG92ZXIiLCJtZXNzYWdlSXRlbSIsIl9qc3giLCJNZXNzYWdlSXRlbSIsInRpdGxlIiwiZ2V0TWVzc2FnZSIsImRlc2NyaXB0aW9uIiwiZ2V0RGVzY3JpcHRpb24iLCJ0eXBlIiwibWFya3VwRGVzY3JpcHRpb24iLCJsb25ndGV4dFVybCIsImdldERlc2NyaXB0aW9uVXJsIiwic3VidGl0bGUiLCJnZXRBZGRpdGlvbmFsVGV4dCIsImdyb3VwTmFtZSIsImFjdGl2ZVRpdGxlIiwiZ2V0Q29udHJvbElkcyIsImFjdGl2ZVRpdGxlSGFuZGxlciIsImdldElkIiwiX21lc3NhZ2VQb3BvdmVyIiwiZGVzdHJveSIsIk1lc3NhZ2VQb3BvdmVyIiwiZ3JvdXBJdGVtcyIsImFjdGl2ZVRpdGxlUHJlc3MiLCJwcmVzc0V2ZW50IiwiZ2V0UGFyYW1ldGVyIiwiaGFuZGxlQWN0aXZlVGl0bGVQcmVzcyIsImNoaWxkcmVuIiwiaXRlbXMiLCJhZGREZXBlbmRlbnQiLCJzZXRUaW1lb3V0Iiwib3BlbkJ5IiwiY29udHJvbElkIiwiZ2V0Q29udHJvbElkIiwiY29udHJvbCIsIlVJNUVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImZvY3VzIiwiTG9nIiwiZXJyb3IiLCJ0b2dnbGVNZXNzYWdlUG9wb3ZlciIsInRvZ2dsZSIsIkJ1dHRvbiIsInByZXNzIiwiYmluZCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk1lc3NhZ2VCdXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlRGV0YWlsIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL01lc3NhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBNZXNzYWdlSXRlbSBmcm9tIFwic2FwL20vTWVzc2FnZUl0ZW1cIjtcbmltcG9ydCB0eXBlIHsgTWVzc2FnZVBvcG92ZXIkQWN0aXZlVGl0bGVQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL01lc3NhZ2VQb3BvdmVyXCI7XG5pbXBvcnQgTWVzc2FnZVBvcG92ZXIgZnJvbSBcInNhcC9tL01lc3NhZ2VQb3BvdmVyXCI7XG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgTWVzc2FnaW5nIGZyb20gXCJzYXAvdWkvY29yZS9NZXNzYWdpbmdcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2UgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVwiO1xuaW1wb3J0IE1lc3NhZ2VUeXBlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VUeXBlXCI7XG5pbXBvcnQgdHlwZSBQcm9wZXJ0eUJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9Qcm9wZXJ0eUJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2VNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL21lc3NhZ2UvTWVzc2FnZU1vZGVsXCI7XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgdXNlZCB0byBzaG93IGJvdW5kIG1lc3NhZ2VzLlxuICpcbiAqIFRoZSBNZXNzYWdlIEJ1dHRvbiBCdWlsZGluZyBCbG9jayBnZXRzIHRoZSBib3VuZCBtZXNzYWdlcyBmcm9tIHRoZSBNZXNzYWdlTW9kZWwuXG4gKlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqXG4gKiA8cHJlPlxuICogJmx0O21hY3JvczpNZXNzYWdlQnV0dG9uIHZpc2liaWxpdHlDaGFuZ2U9XCIuaGFuZGxlci5vbk1lc3NhZ2VCdXR0b25WaXNpYmlsaXR5Q2hhbmdlXCIgLyZndDtcbiAqIDwvcHJlPlxuICogQHB1YmxpY1xuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLk1lc3NhZ2VCdXR0b25cIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lc3NhZ2VCdXR0b24gZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrPEJ1dHRvbj4ge1xuXHQvKipcblx0ICogVGhlIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBtZXNzYWdlIGJ1dHRvbidzIHZpc2liaWxpdHkgY2hhbmdlcy5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QGV2ZW50KClcblx0dmlzaWJpbGl0eUNoYW5nZSE6IEZ1bmN0aW9uO1xuXG5cdF9tZXNzYWdlTW9kZWwhOiBNZXNzYWdlTW9kZWw7XG5cblx0X21lc3NhZ2VQb3BvdmVyITogTWVzc2FnZVBvcG92ZXI7XG5cblx0X21tUHJvcGVydHlCaW5kaW5nITogUHJvcGVydHlCaW5kaW5nO1xuXG5cdF9tZXNzYWdlSXRlbU1lc3NhZ2VEZXRhaWxNYXA6IFJlY29yZDxzdHJpbmcsIE1lc3NhZ2VEZXRhaWw+ID0ge307XG5cblx0Y29uc3RydWN0b3IoaWRPclNldHRpbmdzPzogc3RyaW5nIHwgUHJvcGVydGllc09mPE1lc3NhZ2VCdXR0b24+LCBzZXR0aW5ncz86IFByb3BlcnRpZXNPZjxNZXNzYWdlQnV0dG9uPikge1xuXHRcdHN1cGVyKGlkT3JTZXR0aW5ncywgc2V0dGluZ3MpO1xuXHR9XG5cdC8qKlxuXHQgKiBIYW5kbGVyIGZvciB0aGUgb25NZXRhZGF0YUF2YWlsYWJsZSBldmVudC5cblx0ICovXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLmNvbnRlbnQpIHtcblx0XHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdH1cblx0XHQvLyBnZXQgdGhlIG1lc3NhZ2UgbW9kZWwgYW5kIGF0dGFjaCB0byBpdCdzIGNoYW5nZSBldmVudC5cblx0XHR0aGlzLl9tZXNzYWdlTW9kZWwgPSBNZXNzYWdpbmcuZ2V0TWVzc2FnZU1vZGVsKCk7XG5cdFx0dGhpcy5fbW1Qcm9wZXJ0eUJpbmRpbmcgPSB0aGlzLl9tZXNzYWdlTW9kZWwuYmluZFByb3BlcnR5KFwiL1wiKTtcblx0XHR0aGlzLl9tbVByb3BlcnR5QmluZGluZy5hdHRhY2hDaGFuZ2UodGhpcy5wcm9jZXNzTWVzc2FnZXMsIHRoaXMpO1xuXHRcdGNvbnN0IGV2ZW50RGVsZWdhdGUgPSB7XG5cdFx0XHRvbkJlZm9yZVJlbmRlcmluZzogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR0aGlzLnByb2Nlc3NNZXNzYWdlcygpO1xuXHRcdFx0XHR0aGlzLnJlbW92ZUV2ZW50RGVsZWdhdGUoZXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHR0aGlzLmFkZEV2ZW50RGVsZWdhdGUoZXZlbnREZWxlZ2F0ZSk7XG5cdH1cblxuXHQvKipcblx0ICogUHJvY2Vzc2VzIG1lc3NhZ2VzIGluIHRoZSBtZXNzYWdlIG1vZGVsLlxuXHQgKlxuXHQgKiBGaWx0ZXJzIG91dCB0aGUgYm91bmQgYW5kIG5vbiB0ZWNobmljYWwgbWVzc2FnZXMgZnJvbSB0aGUgbWVzc2FnZSBtb2RlbFxuXHQgKiBBbmQgY2FsbHMgdGhlIE1lc3NhZ2VIYW5kbGVyLmJlZm9yZVNob3dNZXNzYWdlQnV0dG9uIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIHRvIGFsbG93IGNvbnN1bWVycyB0byBhZGFwdCB0aGUgbWVzc2FnZXMgdGhhdCB3aWxsIGJlIHNob3duLlxuXHQgKlxuXHQgKiBBZGRpdGlvbmFsbHksIGl0IGFkanVzdHMgdGhlIG1lc3NhZ2UgYnV0dG9uJ3MgcHJvZXBydGllcyBiYXNlZCBvbiB0aGUgbWVzc2FnZXMgdG8gYmUgc2hvd24uXG5cdCAqXG5cdCAqL1xuXHRhc3luYyBwcm9jZXNzTWVzc2FnZXMoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgbWVzc2FnZXM6IE1lc3NhZ2VbXSA9IHRoaXMuX21lc3NhZ2VNb2RlbD8uZ2V0RGF0YSgpO1xuXG5cdFx0Ly8gZ2V0IGJvdW5kIG1lc3NhZ2VzLlxuXHRcdGNvbnN0IG1lc3NhZ2VEZXRhaWxzID0gbWVzc2FnZXMucmVkdWNlKChyZWR1Y2VkTWVzc2FnZXM6IE1lc3NhZ2VEZXRhaWxbXSwgbWVzc2FnZSk6IE1lc3NhZ2VEZXRhaWxbXSA9PiB7XG5cdFx0XHRjb25zdCBpc0JvdW5kID0gbWVzc2FnZS5nZXRUYXJnZXRzKCkubGVuZ3RoID4gMDtcblx0XHRcdGNvbnN0IGlzTWVzc2FnZVRlY2huaWNhbCA9IG1lc3NhZ2UuZ2V0VGVjaG5pY2FsKCk7XG5cdFx0XHRpZiAoaXNCb3VuZCAmJiAhaXNNZXNzYWdlVGVjaG5pY2FsKSB7XG5cdFx0XHRcdHJlZHVjZWRNZXNzYWdlcy5wdXNoKHsgbWVzc2FnZSB9KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZWR1Y2VkTWVzc2FnZXM7XG5cdFx0fSwgW10pO1xuXG5cdFx0aWYgKG1lc3NhZ2VEZXRhaWxzICYmIG1lc3NhZ2VEZXRhaWxzLmxlbmd0aCA+IDApIHtcblx0XHRcdGF3YWl0IHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKS5tZXNzYWdlSGFuZGxlci5iZWZvcmVTaG93TWVzc2FnZUJ1dHRvbihtZXNzYWdlRGV0YWlscyk7XG5cdFx0fVxuXHRcdHRoaXMuYWRqdXN0TWVzc2FnZUJ1dHRvblByb3BlcnRpZXMobWVzc2FnZURldGFpbHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkanVzdHMgdGhlIG1lc3NhZ2UgYnV0dG9uIHByb3BlcnRpZXMgYW5kIGNyZWF0ZXMgYSBtZXNzYWdlIHBvcG92ZXIgdG8gc2hvdyB0aGUgbWVzc2FnZXMuXG5cdCAqXG5cdCAqIFNldHMgdGhlIG1lc3NhZ2VzIGJ1dHRvbnMgcHJvcGVydGllcyBvbiB0aGUgYmFzaXMgb2YgbWVzc2FnZXMgdG8gYmUgc2hvd24uXG5cdCAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBtZXNzYWdlcyBidXR0b24gaXMgZGV0ZXJtaW5lZCBvbiB0aGUgYmFzaXMgb2YgdGhlIHByaW9yaXR5IG9mIG1lc3NhZ2VzIHRvIGJlIHNob3duLlxuXHQgKlxuXHQgKiBBZGRpdGlvbmFsbHksIGNyZWF0ZXMgYSBtZXNzYWdlIHBvcG92ZXIgdG8gc2hvdyB0aGUgbWVzc2FnZXMuXG5cdCAqIEBwYXJhbSBtZXNzYWdlRGV0YWlscyBNZXNzYWdlIGRldGFpbHMgdXNlZCB0byByZW5kZXIgZWFjaCBtZXNzYWdlIGl0ZW0uXG5cdCAqL1xuXHRhZGp1c3RNZXNzYWdlQnV0dG9uUHJvcGVydGllcyhtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbFtdKTogdm9pZCB7XG5cdFx0dGhpcy5fbWVzc2FnZUl0ZW1NZXNzYWdlRGV0YWlsTWFwID0ge307XG5cdFx0aWYgKG1lc3NhZ2VEZXRhaWxzICYmIG1lc3NhZ2VEZXRhaWxzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnN0IG1lc3NhZ2VQcmlvcml0eU1hcCA9IHtcblx0XHRcdFx0RXJyb3I6IDAsXG5cdFx0XHRcdFdhcm5pbmc6IDEsXG5cdFx0XHRcdFN1Y2Nlc3M6IDIsXG5cdFx0XHRcdEluZm9ybWF0aW9uOiAzLFxuXHRcdFx0XHROb25lOiA0XG5cdFx0XHR9O1xuXG5cdFx0XHRsZXQgYXZhaWxhYmxlSGlnaGVzdFByaW9yaXR5ID0gbWVzc2FnZVByaW9yaXR5TWFwLk5vbmU7IC8vIHdlIHN0YXJ0IGZyb20gdGhlIGxvd2VzdFxuXHRcdFx0bGV0IGVycm9yQ291bnQgPSAwO1xuXHRcdFx0Y29uc3QgbWVzc2FnZUl0ZW1zOiBNZXNzYWdlSXRlbVtdID0gW107XG5cdFx0XHRmb3IgKGNvbnN0IG1lc3NhZ2VEZXRhaWwgb2YgbWVzc2FnZURldGFpbHMpIHtcblx0XHRcdFx0Y29uc3QgbWVzc2FnZSA9IG1lc3NhZ2VEZXRhaWwubWVzc2FnZTtcblx0XHRcdFx0Y29uc3QgbWVzc2FnZVR5cGUgPSBtZXNzYWdlLmdldFR5cGUoKTtcblx0XHRcdFx0Y29uc3QgbWVzc2FnZVByaW9yaXR5ID0gbWVzc2FnZVByaW9yaXR5TWFwW21lc3NhZ2VUeXBlXTtcblx0XHRcdFx0aWYgKG1lc3NhZ2VQcmlvcml0eSA8IGF2YWlsYWJsZUhpZ2hlc3RQcmlvcml0eSkge1xuXHRcdFx0XHRcdGF2YWlsYWJsZUhpZ2hlc3RQcmlvcml0eSA9IG1lc3NhZ2VQcmlvcml0eTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAobWVzc2FnZVR5cGUgPT09IE1lc3NhZ2VUeXBlLkVycm9yKSB7XG5cdFx0XHRcdFx0ZXJyb3JDb3VudCsrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG1lc3NhZ2VJdGVtcy5wdXNoKHRoaXMuY3JlYXRlTWVzc2FnZUl0ZW0obWVzc2FnZURldGFpbCkpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBzZXQgcHJvcGVydGllcyBvbiB0aGUgbWVzc2FnZSBidXR0b25zXG5cblx0XHRcdC8vIHNldFRleHRcblx0XHRcdHRoaXMuZ2V0Q29udGVudCgpPy5zZXRUZXh0KG1lc3NhZ2VEZXRhaWxzLmxlbmd0aC50b1N0cmluZygpKTtcblxuXHRcdFx0Ly8gc2V0VHlwZVxuXHRcdFx0Y29uc3QgcHJpb3JpdGl6ZWRCdXR0b25UeXBlID0gW1xuXHRcdFx0XHRCdXR0b25UeXBlLk5lZ2F0aXZlLFxuXHRcdFx0XHRCdXR0b25UeXBlLkNyaXRpY2FsLFxuXHRcdFx0XHRCdXR0b25UeXBlLlN1Y2Nlc3MsXG5cdFx0XHRcdEJ1dHRvblR5cGUuTmV1dHJhbCxcblx0XHRcdFx0QnV0dG9uVHlwZS5EZWZhdWx0XG5cdFx0XHRdO1xuXHRcdFx0dGhpcy5nZXRDb250ZW50KCk/LnNldFR5cGUocHJpb3JpdGl6ZWRCdXR0b25UeXBlW2F2YWlsYWJsZUhpZ2hlc3RQcmlvcml0eV0pO1xuXG5cdFx0XHQvLyBzZXRUb29sdGlwXG5cdFx0XHRjb25zdCBwcmlvcml0aXplZFRvb2xUaXBLZXkgPSBbXG5cdFx0XHRcdFwiQ19DT01NT05fU0FQRkVfRVJST1JfTUVTU0FHRVNfUEFHRV9USVRMRV9FUlJPUlwiLFxuXHRcdFx0XHRcIkNfQ09NTU9OX1NBUEZFX0VSUk9SX01FU1NBR0VTX1BBR0VfV0FSTklOR19UT09MVElQXCIsXG5cdFx0XHRcdFwiQ19NRVNTQUdFX0hBTkRMSU5HX1NBUEZFX0VSUk9SX01FU1NBR0VTX1BBR0VfVElUTEVfU1VDQ0VTU1wiLFxuXHRcdFx0XHRcIkNfTUVTU0FHRV9IQU5ETElOR19TQVBGRV9FUlJPUl9NRVNTQUdFU19QQUdFX1RJVExFX0lORk9cIixcblx0XHRcdFx0XCJcIlxuXHRcdFx0XTtcblx0XHRcdGNvbnN0IHRvb2x0aXBLZXkgPVxuXHRcdFx0XHRlcnJvckNvdW50ID4gMVxuXHRcdFx0XHRcdD8gXCJDX0NPTU1PTl9TQVBGRV9FUlJPUl9NRVNTQUdFU19QQUdFX01VTFRJUExFX0VSUk9SX1RPT0xUSVBcIlxuXHRcdFx0XHRcdDogcHJpb3JpdGl6ZWRUb29sVGlwS2V5W2F2YWlsYWJsZUhpZ2hlc3RQcmlvcml0eV07XG5cdFx0XHRsZXQgdG9vbHRpcFRleHQgPSB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KHRvb2x0aXBLZXkpO1xuXHRcdFx0aWYgKGVycm9yQ291bnQgPiAxKSB7XG5cdFx0XHRcdHRvb2x0aXBUZXh0ID0gYCR7ZXJyb3JDb3VudH0gICR7dG9vbHRpcFRleHR9YDtcblx0XHRcdH1cblx0XHRcdHRoaXMuZ2V0Q29udGVudCgpPy5zZXRUb29sdGlwKHRvb2x0aXBUZXh0KTtcblxuXHRcdFx0Ly8gc2V0VmlzaWJsZVxuXHRcdFx0aWYgKCF0aGlzLmdldENvbnRlbnQoKT8uZ2V0VmlzaWJsZSgpKSB7XG5cdFx0XHRcdHRoaXMuZ2V0Q29udGVudCgpPy5zZXRWaXNpYmxlKHRydWUpO1xuXHRcdFx0XHR0aGlzLmZpcmVFdmVudChcInZpc2liaWxpdHlDaGFuZ2VcIiwgeyB2aXNpYmxlOiB0aGlzLmdldENvbnRlbnQoKT8uZ2V0VmlzaWJsZSgpIH0pO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBhbHNvIHNob3cgdGhlIG1lc3NhZ2UgcG9wb3ZlclxuXHRcdFx0dGhpcy5jcmVhdGVNZXNzYWdlUG9wb3ZlcihtZXNzYWdlSXRlbXMpO1xuXHRcdH1cblxuXHRcdGlmIChtZXNzYWdlRGV0YWlscy5sZW5ndGggPT09IDApIHtcblx0XHRcdGlmICh0aGlzLmdldENvbnRlbnQoKT8uZ2V0VmlzaWJsZSgpKSB7XG5cdFx0XHRcdHRoaXMuZ2V0Q29udGVudCgpPy5zZXRWaXNpYmxlKGZhbHNlKTtcblx0XHRcdFx0dGhpcy5maXJlRXZlbnQoXCJ2aXNpYmlsaXR5Q2hhbmdlXCIsIHsgdmlzaWJsZTogdGhpcy5nZXRDb250ZW50KCk/LmdldFZpc2libGUoKSB9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG1lc3NhZ2UgSXRlbS5cblx0ICogQHBhcmFtIG1lc3NhZ2VEZXRhaWwgTWVzc2FnZSBkZXRhaWwgcmVsZXZhbnQgZm9yIGNyZWF0aW5nIHRoZSBtZXNzYWdlIGl0ZW0uXG5cdCAqIEByZXR1cm5zIE1lc3NhZ2VJdGVtIGNyZWF0ZWQgZnJvbSBNZXNzYWdlIERldGFpbFxuXHQgKi9cblx0Y3JlYXRlTWVzc2FnZUl0ZW0obWVzc2FnZURldGFpbDogTWVzc2FnZURldGFpbCk6IE1lc3NhZ2VJdGVtIHtcblx0XHRjb25zdCBtZXNzYWdlID0gbWVzc2FnZURldGFpbC5tZXNzYWdlO1xuXHRcdGNvbnN0IG1lc3NhZ2VJdGVtID0gKFxuXHRcdFx0PE1lc3NhZ2VJdGVtXG5cdFx0XHRcdHRpdGxlPXttZXNzYWdlLmdldE1lc3NhZ2UoKX1cblx0XHRcdFx0ZGVzY3JpcHRpb249e21lc3NhZ2UuZ2V0RGVzY3JpcHRpb24oKX1cblx0XHRcdFx0dHlwZT17bWVzc2FnZS5nZXRUeXBlKCl9XG5cdFx0XHRcdG1hcmt1cERlc2NyaXB0aW9uPXt0cnVlfVxuXHRcdFx0XHRsb25ndGV4dFVybD17bWVzc2FnZS5nZXREZXNjcmlwdGlvblVybCgpfVxuXHRcdFx0XHRzdWJ0aXRsZT17bWVzc2FnZS5nZXRBZGRpdGlvbmFsVGV4dCgpfVxuXHRcdFx0XHRncm91cE5hbWU9e21lc3NhZ2VEZXRhaWwuZ3JvdXBOYW1lIHx8IHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJUX01FU1NBR0VfQlVUVE9OX1NBUEZFX01FU1NBR0VfR1JPVVBfR0VORVJBTFwiKX1cblx0XHRcdFx0YWN0aXZlVGl0bGU9e21lc3NhZ2UuZ2V0Q29udHJvbElkcygpLmxlbmd0aCA+IDAgfHwgdHlwZW9mIG1lc3NhZ2VEZXRhaWwuYWN0aXZlVGl0bGVIYW5kbGVyID09PSBcImZ1bmN0aW9uXCJ9XG5cdFx0XHQvPlxuXHRcdCkgYXMgTWVzc2FnZUl0ZW07XG5cdFx0dGhpcy5fbWVzc2FnZUl0ZW1NZXNzYWdlRGV0YWlsTWFwW21lc3NhZ2VJdGVtLmdldElkKCldID0gbWVzc2FnZURldGFpbDtcblx0XHRyZXR1cm4gbWVzc2FnZUl0ZW07XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG1lc3NhZ2UgUG9wb3Zlci5cblx0ICogQHBhcmFtIG1lc3NhZ2VJdGVtc1xuXHQgKi9cblx0Y3JlYXRlTWVzc2FnZVBvcG92ZXIobWVzc2FnZUl0ZW1zOiBNZXNzYWdlSXRlbVtdKTogdm9pZCB7XG5cdFx0dGhpcy5fbWVzc2FnZVBvcG92ZXI/LmRlc3Ryb3koKTtcblx0XHR0aGlzLl9tZXNzYWdlUG9wb3ZlciA9IChcblx0XHRcdDxNZXNzYWdlUG9wb3ZlclxuXHRcdFx0XHRncm91cEl0ZW1zPXt0cnVlfVxuXHRcdFx0XHRhY3RpdmVUaXRsZVByZXNzPXsocHJlc3NFdmVudDogTWVzc2FnZVBvcG92ZXIkQWN0aXZlVGl0bGVQcmVzc0V2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgbWVzc2FnZUl0ZW0gPSBwcmVzc0V2ZW50LmdldFBhcmFtZXRlcihcIml0ZW1cIik7XG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVBY3RpdmVUaXRsZVByZXNzKG1lc3NhZ2VJdGVtKTtcblx0XHRcdFx0fX1cblx0XHRcdD5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRpdGVtczogbWVzc2FnZUl0ZW1zXG5cdFx0XHRcdH19XG5cdFx0XHQ8L01lc3NhZ2VQb3BvdmVyPlxuXHRcdCkgYXMgTWVzc2FnZVBvcG92ZXI7XG5cdFx0dGhpcy5nZXRDb250ZW50KCk/LmFkZERlcGVuZGVudCh0aGlzLl9tZXNzYWdlUG9wb3Zlcik7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLl9tZXNzYWdlUG9wb3Zlci5vcGVuQnkodGhpcy5nZXRDb250ZW50KCkgYXMgQnV0dG9uKTtcblx0XHR9LCAwKTtcblx0fVxuXHQvKipcblx0ICogSGFuZGxlcyBhY3RpdmUgdGl0bGUgcHJlc3MuXG5cdCAqXG5cdCAqIElmIGFuIGFjdGl2ZVRpdGxlSGFuZGxlciBpcyBwcm92aWRlZCBieSB0aGUgY29uc3VtZXIgdmlhIHRoZSBjb250cm9sbGVyIGV4dGVuc2lvbiB0aGVuIGl0IGlzIGNhbGxlZC5cblx0ICogT3RoZXJ3aXNlLCB3ZSB0cnkgdG8gZm9jdXMgb24gdGhlIGNvbnRyb2wgaWYgYSBjb250cm9sIElkIGluIHRoZSBtZXNzYWdlIGlzIGF2YWlsYWJsZS5cblx0ICogQHBhcmFtIG1lc3NhZ2VJdGVtXG5cdCAqL1xuXHRoYW5kbGVBY3RpdmVUaXRsZVByZXNzKG1lc3NhZ2VJdGVtPzogTWVzc2FnZUl0ZW0pOiB2b2lkIHtcblx0XHRpZiAobWVzc2FnZUl0ZW0pIHtcblx0XHRcdGNvbnN0IG1lc3NhZ2VEZXRhaWwgPSB0aGlzLl9tZXNzYWdlSXRlbU1lc3NhZ2VEZXRhaWxNYXBbbWVzc2FnZUl0ZW0/LmdldElkKCldO1xuXHRcdFx0aWYgKG1lc3NhZ2VEZXRhaWwuYWN0aXZlVGl0bGVIYW5kbGVyKSB7XG5cdFx0XHRcdG1lc3NhZ2VEZXRhaWwuYWN0aXZlVGl0bGVIYW5kbGVyKG1lc3NhZ2VEZXRhaWwubWVzc2FnZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb25zdCBjb250cm9sSWQgPSBtZXNzYWdlRGV0YWlsLm1lc3NhZ2UuZ2V0Q29udHJvbElkKCk7XG5cdFx0XHRcdGNvbnN0IGNvbnRyb2wgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRyb2xJZCk7XG5cdFx0XHRcdGlmIChjb250cm9sKSB7XG5cdFx0XHRcdFx0Y29udHJvbC5mb2N1cygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdExvZy5lcnJvcihcIm1lc3NhZ2UgaXRlbSBub3QgZm91bmQhXCIpO1xuXHRcdH1cblx0fVxuXG5cdGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fbW1Qcm9wZXJ0eUJpbmRpbmcuZGVzdHJveSgpO1xuXHR9XG5cdC8qKlxuXHQgKiBUb2dnbGUgaGFuZGxlciBmb3IgdGhlIG1lc3NhZ2UgcG9wb3Zlci5cblx0ICovXG5cdHRvZ2dsZU1lc3NhZ2VQb3BvdmVyKCk6IHZvaWQge1xuXHRcdHRoaXMuX21lc3NhZ2VQb3BvdmVyLnRvZ2dsZSh0aGlzLmNvbnRlbnQgYXMgQnV0dG9uKTtcblx0fVxuXHQvKipcblx0ICogQ3JlYXRlcyB0aGUgY29udGVudCBmb3IgdGhlIGJ1aWxkaW5nIGJsb2NrLlxuXHQgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBjb250ZW50IGNvbnRyb2wuXG5cdCAqL1xuXHRjcmVhdGVDb250ZW50KCk6IEJ1dHRvbiB7XG5cdFx0cmV0dXJuIDxCdXR0b24gdmlzaWJsZT1cImZhbHNlXCIgcHJlc3M9e3RoaXMudG9nZ2xlTWVzc2FnZVBvcG92ZXIuYmluZCh0aGlzKX0gLz47XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBWEEsSUFhcUJBLGFBQWEsSUFBQUMsSUFBQSxHQURqQ0MsY0FBYyxDQUFDLDZCQUE2QixDQUFDLEVBQUFDLEtBQUEsR0FNNUNDLEtBQUssQ0FBQyxDQUFDLEVBQUFILElBQUEsQ0FBQUksTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxjQUFBO0lBV1IsU0FBQVAsY0FBWVEsWUFBbUQsRUFBRUMsUUFBc0MsRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFDeEdBLEtBQUEsR0FBQUgsY0FBQSxDQUFBSSxJQUFBLE9BQU1ILFlBQVksRUFBRUMsUUFBUSxDQUFDO01BaEI5QjtBQUNEO0FBQ0E7QUFDQTtNQUhDRywwQkFBQSxDQUFBRixLQUFBLHNCQUFBRyxXQUFBLEVBQUFILEtBQUE7TUFBQUEsS0FBQSxDQWFBSSw0QkFBNEIsR0FBa0MsQ0FBQyxDQUFDO01BQUEsT0FBQUosS0FBQTtJQUloRTtJQUNBO0FBQ0Q7QUFDQTtJQUZDSyxRQUFBLEdBQUFmLGFBQUE7SUFBQWdCLGNBQUEsQ0FBQWhCLGFBQUEsRUFBQU8sY0FBQTtJQUFBLElBQUFVLE1BQUEsR0FBQWpCLGFBQUEsQ0FBQWtCLFNBQUE7SUFBQUQsTUFBQSxDQUdBRSxtQkFBbUIsR0FBbkIsU0FBQUEsbUJBQW1CQSxDQUFBLEVBQVM7TUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQ0MsT0FBTyxFQUFFO1FBQ2xCLElBQUksQ0FBQ0EsT0FBTyxHQUFHLElB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
@@ -26,7 +26,6 @@ import type MessageModel from "sap/ui/model/message/MessageModel";
26
26
  * &lt;macros:MessageButton visibilityChange=".handler.onMessageButtonVisibilityChange" /&gt;
27
27
  * </pre>
28
28
  * @public
29
- * @experimental
30
29
  */
31
30
  @defineUI5Class("sap.fe.macros.MessageButton")
32
31
  export default class MessageButton extends BuildingBlock<Button> {