@sapui5/sap.fe.core 1.112.0 → 1.114.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 (434) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime-dbg.js +70 -6
  4. package/src/sap/fe/core/ActionRuntime.js +1 -1
  5. package/src/sap/fe/core/ActionRuntime.js.map +1 -1
  6. package/src/sap/fe/core/ActionRuntime.ts +118 -3
  7. package/src/sap/fe/core/AppComponent-dbg.js +16 -6
  8. package/src/sap/fe/core/AppComponent.js +1 -1
  9. package/src/sap/fe/core/AppComponent.js.map +1 -1
  10. package/src/sap/fe/core/AppComponent.ts +21 -7
  11. package/src/sap/fe/core/AppStateHandler-dbg.js +11 -10
  12. package/src/sap/fe/core/AppStateHandler.js +1 -1
  13. package/src/sap/fe/core/AppStateHandler.js.map +1 -1
  14. package/src/sap/fe/core/AppStateHandler.ts +14 -11
  15. package/src/sap/fe/core/CommonUtils-dbg.js +102 -175
  16. package/src/sap/fe/core/CommonUtils.js +1 -1
  17. package/src/sap/fe/core/CommonUtils.js.map +1 -1
  18. package/src/sap/fe/core/CommonUtils.ts +114 -211
  19. package/src/sap/fe/core/ExtensionAPI-dbg.js +3 -1
  20. package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
  21. package/src/sap/fe/core/ExtensionAPI.ts +2 -0
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +2 -1
  23. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +1 -1
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -1
  25. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +1 -0
  26. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +2 -2
  27. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +1 -1
  28. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -1
  29. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +13 -18
  30. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +32 -24
  31. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +4 -4
  32. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -1
  33. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.ts +41 -29
  34. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +2 -2
  35. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +1 -1
  36. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -1
  37. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +1 -1
  38. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +2 -2
  39. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +1 -1
  40. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -1
  41. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +3 -1
  42. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +124 -57
  43. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  44. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  45. package/src/sap/fe/core/controllerextensions/EditFlow.ts +146 -73
  46. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +35 -74
  47. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  48. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  49. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +35 -78
  50. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +217 -127
  51. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  52. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  53. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +227 -129
  54. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +3 -5
  55. package/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  56. package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -1
  57. package/src/sap/fe/core/controllerextensions/PageReady.ts +2 -4
  58. package/src/sap/fe/core/controllerextensions/Share-dbg.js +3 -2
  59. package/src/sap/fe/core/controllerextensions/Share.js +1 -1
  60. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  61. package/src/sap/fe/core/controllerextensions/Share.ts +2 -1
  62. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +19 -14
  63. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  64. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  65. package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -14
  66. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +41 -24
  67. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  68. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  69. package/src/sap/fe/core/controllerextensions/ViewState.ts +64 -31
  70. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +8 -8
  71. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  72. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  73. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +7 -9
  74. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +7 -45
  75. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  76. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  77. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +5 -48
  78. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +4 -4
  79. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +1 -1
  80. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
  81. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -2
  82. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +3 -3
  83. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating-dbg.js +52 -0
  84. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.js +6 -0
  85. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.js.map +1 -0
  86. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.ts +46 -0
  87. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +103 -0
  88. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +6 -0
  89. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -0
  90. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +124 -0
  91. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +106 -205
  92. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  93. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  94. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +121 -216
  95. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +31 -4
  96. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  97. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  98. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +38 -3
  99. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +13 -10
  100. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +1 -1
  101. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  102. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +7 -20
  103. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +9 -4
  104. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +1 -1
  105. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -1
  106. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +12 -3
  107. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +10 -6
  108. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +1 -1
  109. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -1
  110. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +20 -11
  111. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +1 -8
  112. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  113. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  114. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +0 -9
  115. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +19 -15
  116. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  117. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  118. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +19 -22
  119. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +67 -1
  120. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  121. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
  122. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +68 -0
  123. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -0
  124. package/src/sap/fe/core/controls/CommandExecution-dbg.js +4 -9
  125. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  126. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  127. package/src/sap/fe/core/controls/CommandExecution.ts +0 -8
  128. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block-dbg.js +335 -0
  129. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +6 -0
  130. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js.map +1 -0
  131. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +336 -0
  132. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
  133. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +3 -28
  134. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
  135. package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -1
  136. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +8 -29
  137. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +30 -1
  138. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  139. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  140. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +38 -0
  141. package/src/sap/fe/core/converters/ConverterContext-dbg.js +3 -5
  142. package/src/sap/fe/core/converters/ConverterContext.js +1 -1
  143. package/src/sap/fe/core/converters/ConverterContext.js.map +1 -1
  144. package/src/sap/fe/core/converters/ConverterContext.ts +2 -5
  145. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
  146. package/src/sap/fe/core/converters/ManifestSettings.ts +7 -6
  147. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +5 -3
  148. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  149. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
  150. package/src/sap/fe/core/converters/ManifestWrapper.ts +7 -1
  151. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +49 -28
  152. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  153. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  154. package/src/sap/fe/core/converters/MetaModelConverter.ts +62 -30
  155. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -3
  156. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  157. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  158. package/src/sap/fe/core/converters/TemplateConverter.ts +1 -6
  159. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +22 -7
  160. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  161. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  162. package/src/sap/fe/core/converters/annotations/DataField.ts +20 -7
  163. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +701 -681
  164. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  165. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  166. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -12
  167. package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  168. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
  169. package/src/sap/fe/core/converters/controls/Common/Action.ts +9 -14
  170. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +32 -20
  171. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  172. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  173. package/src/sap/fe/core/converters/controls/Common/Chart.ts +30 -18
  174. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +4 -5
  175. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  176. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  177. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +6 -37
  178. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +7 -6
  179. package/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  180. package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -1
  181. package/src/sap/fe/core/converters/controls/Common/Form.ts +5 -11
  182. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +5 -5
  183. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  184. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
  185. package/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -4
  186. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +135 -85
  187. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  188. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  189. package/src/sap/fe/core/converters/controls/Common/Table.ts +189 -119
  190. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +56 -22
  191. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  192. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  193. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +67 -31
  194. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +137 -49
  195. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  196. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  197. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +166 -43
  198. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +33 -14
  199. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  200. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  201. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +31 -12
  202. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +27 -18
  203. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  204. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
  205. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +36 -23
  206. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +37 -15
  207. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  208. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  209. package/src/sap/fe/core/converters/helpers/Aggregation.ts +36 -20
  210. package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +8 -6
  211. package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
  212. package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -1
  213. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +8 -6
  214. package/src/sap/fe/core/converters/helpers/InsightsHelpers-dbg.js +39 -0
  215. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +6 -0
  216. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js.map +1 -0
  217. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +45 -0
  218. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +3 -2
  219. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  220. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
  221. package/src/sap/fe/core/converters/helpers/IssueManager.ts +2 -1
  222. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +17 -16
  223. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  224. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
  225. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +11 -11
  226. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +20 -17
  227. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  228. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  229. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +25 -56
  230. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +13 -13
  231. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  232. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  233. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +18 -13
  234. package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +17 -33
  235. package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
  236. package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -1
  237. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +27 -22
  238. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -6
  239. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  240. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
  241. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -5
  242. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +13 -5
  243. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  244. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  245. package/src/sap/fe/core/formatters/ValueFormatter.ts +19 -9
  246. package/src/sap/fe/core/fpm/manifest.json +1 -1
  247. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +2 -1
  248. package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
  249. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  250. package/src/sap/fe/core/helpers/BindingToolkit.ts +1 -1
  251. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +58 -35
  252. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  253. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  254. package/src/sap/fe/core/helpers/DeleteHelper.ts +76 -54
  255. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +8 -4
  256. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  257. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  258. package/src/sap/fe/core/helpers/MassEditHelper.ts +7 -5
  259. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +6 -5
  260. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  261. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  262. package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
  263. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +167 -4
  264. package/src/sap/fe/core/helpers/MetaModelFunction.js +1 -1
  265. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -1
  266. package/src/sap/fe/core/helpers/MetaModelFunction.ts +205 -3
  267. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +37 -73
  268. package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  269. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
  270. package/src/sap/fe/core/helpers/ModelHelper.ts +41 -68
  271. package/src/sap/fe/core/helpers/RecommendationHelper-dbg.js +71 -0
  272. package/src/sap/fe/core/helpers/RecommendationHelper.js +6 -0
  273. package/src/sap/fe/core/helpers/RecommendationHelper.js.map +1 -0
  274. package/src/sap/fe/core/helpers/RecommendationHelper.ts +94 -0
  275. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +19 -3
  276. package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
  277. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -1
  278. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +21 -0
  279. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +40 -6
  280. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  281. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
  282. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +39 -5
  283. package/src/sap/fe/core/helpers/SizeHelper-dbg.js +53 -0
  284. package/src/sap/fe/core/helpers/SizeHelper.js +6 -0
  285. package/src/sap/fe/core/helpers/SizeHelper.js.map +1 -0
  286. package/src/sap/fe/core/helpers/SizeHelper.ts +51 -0
  287. package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +52 -26
  288. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  289. package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
  290. package/src/sap/fe/core/helpers/StableIdHelper.ts +49 -25
  291. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +147 -1
  292. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  293. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
  294. package/src/sap/fe/core/helpers/TypeGuards.ts +151 -1
  295. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +25 -2
  296. package/src/sap/fe/core/jsx-runtime/jsx-control.js +1 -1
  297. package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -1
  298. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +24 -0
  299. package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
  300. package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -0
  301. package/src/sap/fe/core/library-dbg.js +1 -1
  302. package/src/sap/fe/core/library-preload.js +123 -95
  303. package/src/sap/fe/core/library-preload.js.map +1 -1
  304. package/src/sap/fe/core/library.js +1 -1
  305. package/src/sap/fe/core/manifest.json +1 -1
  306. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +67 -15
  307. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  308. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
  309. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -14
  310. package/src/sap/fe/core/messagebundle.properties +6 -6
  311. package/src/sap/fe/core/messagebundle_ar.properties +5 -6
  312. package/src/sap/fe/core/messagebundle_bg.properties +11 -12
  313. package/src/sap/fe/core/messagebundle_ca.properties +3 -4
  314. package/src/sap/fe/core/messagebundle_cs.properties +3 -4
  315. package/src/sap/fe/core/messagebundle_cy.properties +3 -4
  316. package/src/sap/fe/core/messagebundle_da.properties +3 -4
  317. package/src/sap/fe/core/messagebundle_de.properties +11 -12
  318. package/src/sap/fe/core/messagebundle_el.properties +5 -6
  319. package/src/sap/fe/core/messagebundle_en.properties +3 -4
  320. package/src/sap/fe/core/messagebundle_en_GB.properties +4 -5
  321. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +3 -4
  322. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +3 -4
  323. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +3 -2
  324. package/src/sap/fe/core/messagebundle_es.properties +3 -4
  325. package/src/sap/fe/core/messagebundle_es_MX.properties +3 -4
  326. package/src/sap/fe/core/messagebundle_et.properties +3 -4
  327. package/src/sap/fe/core/messagebundle_fi.properties +3 -4
  328. package/src/sap/fe/core/messagebundle_fr.properties +3 -4
  329. package/src/sap/fe/core/messagebundle_fr_CA.properties +11 -12
  330. package/src/sap/fe/core/messagebundle_hi.properties +11 -12
  331. package/src/sap/fe/core/messagebundle_hr.properties +3 -4
  332. package/src/sap/fe/core/messagebundle_hu.properties +3 -4
  333. package/src/sap/fe/core/messagebundle_id.properties +11 -12
  334. package/src/sap/fe/core/messagebundle_it.properties +3 -4
  335. package/src/sap/fe/core/messagebundle_iw.properties +3 -4
  336. package/src/sap/fe/core/messagebundle_ja.properties +4 -5
  337. package/src/sap/fe/core/messagebundle_kk.properties +3 -4
  338. package/src/sap/fe/core/messagebundle_ko.properties +11 -12
  339. package/src/sap/fe/core/messagebundle_lt.properties +3 -4
  340. package/src/sap/fe/core/messagebundle_lv.properties +11 -12
  341. package/src/sap/fe/core/messagebundle_ms.properties +3 -4
  342. package/src/sap/fe/core/messagebundle_nl.properties +3 -4
  343. package/src/sap/fe/core/messagebundle_no.properties +3 -4
  344. package/src/sap/fe/core/messagebundle_pl.properties +11 -12
  345. package/src/sap/fe/core/messagebundle_pt.properties +3 -4
  346. package/src/sap/fe/core/messagebundle_pt_PT.properties +3 -4
  347. package/src/sap/fe/core/messagebundle_ro.properties +14 -15
  348. package/src/sap/fe/core/messagebundle_ru.properties +11 -12
  349. package/src/sap/fe/core/messagebundle_sh.properties +3 -4
  350. package/src/sap/fe/core/messagebundle_sk.properties +3 -4
  351. package/src/sap/fe/core/messagebundle_sl.properties +3 -4
  352. package/src/sap/fe/core/messagebundle_sv.properties +11 -12
  353. package/src/sap/fe/core/messagebundle_th.properties +3 -4
  354. package/src/sap/fe/core/messagebundle_tr.properties +3 -4
  355. package/src/sap/fe/core/messagebundle_uk.properties +3 -4
  356. package/src/sap/fe/core/messagebundle_vi.properties +3 -4
  357. package/src/sap/fe/core/messagebundle_zh_CN.properties +11 -12
  358. package/src/sap/fe/core/messagebundle_zh_TW.properties +11 -12
  359. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +22 -8
  360. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  361. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  362. package/src/sap/fe/core/rootView/RootViewBaseController.ts +17 -7
  363. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +36 -3
  364. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  365. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  366. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +37 -1
  367. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +13 -1
  368. package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
  369. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  370. package/src/sap/fe/core/services/NavigationServiceFactory.ts +13 -0
  371. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +7 -1
  372. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  373. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  374. package/src/sap/fe/core/services/RoutingServiceFactory.ts +20 -2
  375. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +7 -1
  376. package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  377. package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -1
  378. package/src/sap/fe/core/services/ShellServicesFactory.ts +10 -0
  379. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +10 -7
  380. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  381. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  382. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +12 -13
  383. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +9 -3
  384. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  385. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  386. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +11 -15
  387. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +4 -3
  388. package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
  389. package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
  390. package/src/sap/fe/core/templating/CommonFormatters.ts +2 -2
  391. package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +1 -1
  392. package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
  393. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +19 -18
  394. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  395. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  396. package/src/sap/fe/core/templating/DataModelPathHelper.ts +24 -18
  397. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +5 -5
  398. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  399. package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -1
  400. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -2
  401. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +19 -28
  402. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  403. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
  404. package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -24
  405. package/src/sap/fe/core/templating/EntityTypeHelper-dbg.js +48 -0
  406. package/src/sap/fe/core/templating/EntityTypeHelper.js +6 -0
  407. package/src/sap/fe/core/templating/EntityTypeHelper.js.map +1 -0
  408. package/src/sap/fe/core/templating/EntityTypeHelper.ts +37 -0
  409. package/src/sap/fe/core/templating/FilterHelper-dbg.js +12 -1
  410. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  411. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  412. package/src/sap/fe/core/templating/FilterHelper.ts +12 -0
  413. package/src/sap/fe/core/templating/FilterTemplating-dbg.js +7 -8
  414. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  415. package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -1
  416. package/src/sap/fe/core/templating/FilterTemplating.ts +5 -8
  417. package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +1 -6
  418. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  419. package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -1
  420. package/src/sap/fe/core/templating/PropertyFormatters.ts +0 -5
  421. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +13 -46
  422. package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
  423. package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -1
  424. package/src/sap/fe/core/templating/PropertyHelper.ts +14 -43
  425. package/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
  426. package/src/sap/fe/core/templating/UIFormatters.js +1 -1
  427. package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
  428. package/src/sap/fe/core/templating/UIFormatters.ts +45 -34
  429. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +0 -91
  430. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +0 -59
  431. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +0 -171
  432. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +0 -6
  433. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +0 -1
  434. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +0 -184
@@ -2,12 +2,13 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/templating/DataModelPathHelper"], function (ManifestWrapper, MetaModelConverter, DataModelPathHelper) {
5
+ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/TypeGuards", "sap/fe/core/templating/DataModelPathHelper"], function (ManifestWrapper, MetaModelConverter, TypeGuards, DataModelPathHelper) {
6
6
  "use strict";
7
7
 
8
8
  var getTargetObjectPath = DataModelPathHelper.getTargetObjectPath;
9
9
  var getContextRelativeTargetObjectPath = DataModelPathHelper.getContextRelativeTargetObjectPath;
10
10
  var enhanceDataModelPath = DataModelPathHelper.enhanceDataModelPath;
11
+ var isServiceObject = TypeGuards.isServiceObject;
11
12
  var getInvolvedDataModelObjectFromPath = MetaModelConverter.getInvolvedDataModelObjectFromPath;
12
13
  var convertTypes = MetaModelConverter.convertTypes;
13
14
  /**
@@ -19,9 +20,6 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
19
20
  const isAnnotationTerm = function (vAnnotationPath) {
20
21
  return typeof vAnnotationPath === "object";
21
22
  };
22
- function isServiceObject(objectPart) {
23
- return objectPart && objectPart.hasOwnProperty("_type");
24
- }
25
23
  const getDataModelPathForEntitySet = function (resolvedMetaPath, convertedTypes) {
26
24
  let rootEntitySet;
27
25
  let currentEntitySet;
@@ -400,4 +398,4 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
400
398
  }();
401
399
  return ConverterContext;
402
400
  }, false);
403
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0Fubm90YXRpb25UZXJtIiwidkFubm90YXRpb25QYXRoIiwiaXNTZXJ2aWNlT2JqZWN0Iiwib2JqZWN0UGFydCIsImhhc093blByb3BlcnR5IiwiZ2V0RGF0YU1vZGVsUGF0aEZvckVudGl0eVNldCIsInJlc29sdmVkTWV0YVBhdGgiLCJjb252ZXJ0ZWRUeXBlcyIsInJvb3RFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5U2V0IiwicHJldmlvdXNFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5VHlwZSIsIm5hdmlnYXRlZFBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJvYmplY3RQYXRoIiwiZm9yRWFjaCIsIl90eXBlIiwicHVzaCIsIm5hbWUiLCJ0YXJnZXRUeXBlIiwibmF2aWdhdGlvblByb3BlcnR5QmluZGluZyIsImpvaW4iLCJ1bmRlZmluZWQiLCJlbnRpdHlUeXBlIiwiZGF0YU1vZGVsUGF0aCIsInN0YXJ0aW5nRW50aXR5U2V0IiwidGFyZ2V0RW50aXR5VHlwZSIsInRhcmdldEVudGl0eVNldCIsImNvbnRleHRMb2NhdGlvbiIsInRhcmdldE9iamVjdCIsInRhcmdldCIsIkNvbnZlcnRlckNvbnRleHQiLCJtYW5pZmVzdFNldHRpbmdzIiwiZGlhZ25vc3RpY3MiLCJtZXJnZUZuIiwidGFyZ2V0RGF0YU1vZGVsUGF0aCIsIm1hbmlmZXN0V3JhcHBlciIsIk1hbmlmZXN0V3JhcHBlciIsImJhc2VDb250ZXh0UGF0aCIsImdldFRhcmdldE9iamVjdFBhdGgiLCJfZ2V0RW50aXR5VHlwZUZyb21GdWxseVF1YWxpZmllZE5hbWUiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJlbnRpdHlUeXBlcyIsImZpbmQiLCJzdGFydHNXaXRoIiwicmVwbGFjZUFubm90YXRpb24iLCJyZXBsYWNlIiwiZ2V0QW5ub3RhdGlvbkVudGl0eVR5cGUiLCJhbm5vdGF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJFcnJvciIsImdldE1hbmlmZXN0Q29udHJvbENvbmZpZ3VyYXRpb24iLCJnZXRDb250cm9sQ29uZmlndXJhdGlvbiIsInNBbm5vdGF0aW9uUGF0aCIsImhhc011bHRpcGxlRW50aXR5U2V0cyIsImdldEVudGl0eVNldCIsImdldEFic29sdXRlQW5ub3RhdGlvblBhdGgiLCJnZXRDb250ZXh0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJnZXRFbnRpdHlDb250YWluZXIiLCJlbnRpdHlDb250YWluZXIiLCJnZXRFbnRpdHlUeXBlIiwiZ2V0UGFyYW1ldGVyRW50aXR5VHlwZSIsInBhcmFtZXRlckVudGl0eVR5cGUiLCJpc1BhcmFtZXRlcml6ZWQiLCJhbm5vdGF0aW9ucyIsIkNvbW1vbiIsIlJlc3VsdENvbnRleHQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsImluY2x1ZGVzIiwiaXNBYnNvbHV0ZSIsInBhdGgiLCJiYXNlIiwic3BsaXQiLCJlbmRzV2l0aCIsInJlc29sdmVBYnNvbHV0ZVBhdGgiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RGcm9tUGF0aCIsInZpc2l0ZWRPYmplY3RzIiwiY29udmVydGVyQ29udGV4dCIsImdldFRlbXBsYXRlVHlwZSIsImdldENvbnZlcnRlZFR5cGVzIiwiZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJlbnRpdHlUeXBlRlFOIiwibWF0Y2giLCJsZW5ndGgiLCJyZXBsYWNlZEFubm90YXRpb25QYXRoIiwic3Vic3RyIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiZ2V0RGlhZ25vc3RpY3MiLCJyZXNvbHZlUGF0aCIsImdldENvbnZlcnRlckNvbnRleHRGb3IiLCJjb250ZXh0UGF0aCIsInRhcmdldFBhdGgiLCJnZXRBbm5vdGF0aW9uc0J5VGVybSIsInZvY2FidWxhcnlOYW1lIiwiYW5ub3RhdGlvblRlcm0iLCJhbm5vdGF0aW9uU291cmNlcyIsIm91dEFubm90YXRpb25zIiwiYW5ub3RhdGlvblNvdXJjZSIsIk9iamVjdCIsImtleXMiLCJmaWx0ZXIiLCJ0ZXJtIiwicmVkdWNlIiwicHJldmlvdXNWYWx1ZSIsImtleSIsImdldFJlbGF0aXZlTW9kZWxQYXRoRnVuY3Rpb24iLCJzUGF0aCIsImVuaGFuY2VkUGF0aCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwiZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCIsImNyZWF0ZUNvbnZlcnRlckNvbnRleHRGb3JNYWNybyIsInNFbnRpdHlTZXROYW1lIiwib01ldGFNb2RlbENvbnRleHQiLCJvTWV0YU1vZGVsIiwiaXNBIiwiZ2V0TW9kZWwiLCJvQ29udmVydGVkTWV0YWRhdGEiLCJjb252ZXJ0VHlwZXMiLCJlbnRpdHlTZXRzIiwiZW50aXR5U2V0Iiwic2luZ2xldG9ucyJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29udmVydGVyQ29udGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG5cdEFubm90YXRpb25UZXJtLFxuXHRDb252ZXJ0ZWRNZXRhZGF0YSxcblx0RW50aXR5Q29udGFpbmVyLFxuXHRFbnRpdHlTZXQsXG5cdEVudGl0eVR5cGUsXG5cdE5hdmlnYXRpb25Qcm9wZXJ0eSxcblx0UmVzb2x1dGlvblRhcmdldCxcblx0U2VydmljZU9iamVjdCxcblx0U2VydmljZU9iamVjdEFuZEFubm90YXRpb24sXG5cdFNpbmdsZXRvblxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5VHlwZUFubm90YXRpb25zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9FZG1fVHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgQmFzZU1hbmlmZXN0U2V0dGluZ3MsIFRlbXBsYXRlVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCBNYW5pZmVzdFdyYXBwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgeyBjb252ZXJ0VHlwZXMsIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0RnJvbVBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB0eXBlIHsgSURpYWdub3N0aWNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvVGVtcGxhdGVDb252ZXJ0ZXJcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGVuaGFuY2VEYXRhTW9kZWxQYXRoLCBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkQW5ub3RhdGlvbkNvbnRleHQgPSB7XG5cdGFubm90YXRpb246IEFubm90YXRpb25UZXJtPGFueT47XG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIG9iamVjdCBpcyBhbiBhbm5vdGF0aW9uIHRlcm0uXG4gKlxuICogQHBhcmFtIHZBbm5vdGF0aW9uUGF0aFxuICogQHJldHVybnMgYHRydWVgIGlmIGl0J3MgYW4gYW5ub3RhdGlvbiB0ZXJtXG4gKi9cbmNvbnN0IGlzQW5ub3RhdGlvblRlcm0gPSBmdW5jdGlvbiAodkFubm90YXRpb25QYXRoOiBzdHJpbmcgfCBBbm5vdGF0aW9uVGVybTxhbnk+KTogdkFubm90YXRpb25QYXRoIGlzIEFubm90YXRpb25UZXJtPGFueT4ge1xuXHRyZXR1cm4gdHlwZW9mIHZBbm5vdGF0aW9uUGF0aCA9PT0gXCJvYmplY3RcIjtcbn07XG5cbmZ1bmN0aW9uIGlzU2VydmljZU9iamVjdChvYmplY3RQYXJ0OiBTZXJ2aWNlT2JqZWN0QW5kQW5ub3RhdGlvbik6IG9iamVjdFBhcnQgaXMgU2VydmljZU9iamVjdCB7XG5cdHJldHVybiBvYmplY3RQYXJ0ICYmIG9iamVjdFBhcnQuaGFzT3duUHJvcGVydHkoXCJfdHlwZVwiKTtcbn1cblxuY29uc3QgZ2V0RGF0YU1vZGVsUGF0aEZvckVudGl0eVNldCA9IGZ1bmN0aW9uIChcblx0cmVzb2x2ZWRNZXRhUGF0aDogUmVzb2x1dGlvblRhcmdldDxhbnk+LFxuXHRjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGFcbik6IERhdGFNb2RlbE9iamVjdFBhdGgge1xuXHRsZXQgcm9vdEVudGl0eVNldDogRW50aXR5U2V0IHwgdW5kZWZpbmVkO1xuXHRsZXQgY3VycmVudEVudGl0eVNldDogRW50aXR5U2V0IHwgdW5kZWZpbmVkO1xuXHRsZXQgcHJldmlvdXNFbnRpdHlTZXQ6IEVudGl0eVNldCB8IHVuZGVmaW5lZDtcblx0bGV0IGN1cnJlbnRFbnRpdHlUeXBlOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkO1xuXHRsZXQgbmF2aWdhdGVkUGF0aHM6IHN0cmluZ1tdID0gW107XG5cdGNvbnN0IG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBOYXZpZ2F0aW9uUHJvcGVydHlbXSA9IFtdO1xuXHRyZXNvbHZlZE1ldGFQYXRoLm9iamVjdFBhdGguZm9yRWFjaCgob2JqZWN0UGFydDogU2VydmljZU9iamVjdEFuZEFubm90YXRpb24pID0+IHtcblx0XHRpZiAoaXNTZXJ2aWNlT2JqZWN0KG9iamVjdFBhcnQpKSB7XG5cdFx0XHRzd2l0Y2ggKG9iamVjdFBhcnQuX3R5cGUpIHtcblx0XHRcdFx0Y2FzZSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiOlxuXHRcdFx0XHRcdG5hdmlnYXRlZFBhdGhzLnB1c2gob2JqZWN0UGFydC5uYW1lKTtcblx0XHRcdFx0XHRuYXZpZ2F0aW9uUHJvcGVydGllcy5wdXNoKG9iamVjdFBhcnQpO1xuXHRcdFx0XHRcdGN1cnJlbnRFbnRpdHlUeXBlID0gb2JqZWN0UGFydC50YXJnZXRUeXBlO1xuXHRcdFx0XHRcdGlmIChwcmV2aW91c0VudGl0eVNldCAmJiBwcmV2aW91c0VudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nLmhhc093blByb3BlcnR5KG5hdmlnYXRlZFBhdGhzLmpvaW4oXCIvXCIpKSkge1xuXHRcdFx0XHRcdFx0Y3VycmVudEVudGl0eVNldCA9IHByZXZpb3VzRW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmdbbmF2aWdhdGVkUGF0aHMuam9pbihcIi9cIildIGFzIEVudGl0eVNldDtcblx0XHRcdFx0XHRcdHByZXZpb3VzRW50aXR5U2V0ID0gY3VycmVudEVudGl0eVNldDtcblx0XHRcdFx0XHRcdG5hdmlnYXRlZFBhdGhzID0gW107XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFwiRW50aXR5U2V0XCI6XG5cdFx0XHRcdFx0aWYgKHJvb3RFbnRpdHlTZXQgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0cm9vdEVudGl0eVNldCA9IG9iamVjdFBhcnQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSBvYmplY3RQYXJ0O1xuXHRcdFx0XHRcdHByZXZpb3VzRW50aXR5U2V0ID0gY3VycmVudEVudGl0eVNldDtcblx0XHRcdFx0XHRjdXJyZW50RW50aXR5VHlwZSA9IGN1cnJlbnRFbnRpdHlTZXQ/LmVudGl0eVR5cGU7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgZGF0YU1vZGVsUGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCA9IHtcblx0XHRzdGFydGluZ0VudGl0eVNldDogcm9vdEVudGl0eVNldCBhcyBFbnRpdHlTZXQsXG5cdFx0dGFyZ2V0RW50aXR5VHlwZTogY3VycmVudEVudGl0eVR5cGUgYXMgRW50aXR5VHlwZSxcblx0XHR0YXJnZXRFbnRpdHlTZXQ6IGN1cnJlbnRFbnRpdHlTZXQsXG5cdFx0bmF2aWdhdGlvblByb3BlcnRpZXM6IG5hdmlnYXRpb25Qcm9wZXJ0aWVzLFxuXHRcdGNvbnRleHRMb2NhdGlvbjogdW5kZWZpbmVkLFxuXHRcdHRhcmdldE9iamVjdDogcmVzb2x2ZWRNZXRhUGF0aC50YXJnZXQsXG5cdFx0Y29udmVydGVkVHlwZXM6IGNvbnZlcnRlZFR5cGVzXG5cdH07XG5cdGRhdGFNb2RlbFBhdGguY29udGV4dExvY2F0aW9uID0gZGF0YU1vZGVsUGF0aDtcblx0cmV0dXJuIGRhdGFNb2RlbFBhdGg7XG59O1xuXG4vKipcbiAqIENyZWF0ZSBhIENvbnZlcnRlckNvbnRleHQgb2JqZWN0IHRoYXQgd2lsbCBiZSB1c2VkIHdpdGhpbiB0aGUgY29udmVydGVycy5cbiAqXG4gKiBAcGFyYW0ge0NvbnZlcnRlZE1ldGFkYXRhfSBvQ29udmVydGVkVHlwZXMgVGhlIGNvbnZlcnRlZCBhbm5vdGF0aW9uIGFuZCBzZXJ2aWNlIHR5cGVzXG4gKiBAcGFyYW0ge0Jhc2VNYW5pZmVzdFNldHRpbmdzfSBvTWFuaWZlc3RTZXR0aW5ncyBUaGUgbWFuaWZlc3RTZXR0aW5ncyB0aGF0IGFwcGxpZXMgdG8gdGhpcyBwYWdlXG4gKiBAcGFyYW0ge1RlbXBsYXRlVHlwZX0gdGVtcGxhdGVUeXBlIFRoZSB0eXBlIG9mIHRlbXBsYXRlIHdlJ3JlIGxvb2tpbmcgYXQgcmlnaHQgbm93XG4gKiBAcGFyYW0ge0lEaWFnbm9zdGljc30gZGlhZ25vc3RpY3MgVGhlIGRpYWdub3N0aWNzIHNoaW1cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG1lcmdlRm4gVGhlIGZ1bmN0aW9uIHRvIGJlIHVzZWQgdG8gcGVyZm9tIHNvbWUgZGVlcCBtZXJnZXMgYmV0d2VlbiBvYmplY3RcbiAqIEBwYXJhbSB7RGF0YU1vZGVsT2JqZWN0UGF0aH0gdGFyZ2V0RGF0YU1vZGVsUGF0aCBUaGUgZ2xvYmFsIHBhdGggdG8gcmVhY2ggdGhlIGVudGl0eVNldFxuICogQHJldHVybnMge0NvbnZlcnRlckNvbnRleHR9IEEgY29udmVydGVyIGNvbnRleHQgZm9yIHRoZSBjb252ZXJ0ZXJzXG4gKi9cbmNsYXNzIENvbnZlcnRlckNvbnRleHQge1xuXHRwcml2YXRlIG1hbmlmZXN0V3JhcHBlcjogTWFuaWZlc3RXcmFwcGVyO1xuXG5cdHByaXZhdGUgYmFzZUNvbnRleHRQYXRoOiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGEsXG5cdFx0cHJpdmF0ZSBtYW5pZmVzdFNldHRpbmdzOiBCYXNlTWFuaWZlc3RTZXR0aW5ncyxcblx0XHRwcml2YXRlIGRpYWdub3N0aWNzOiBJRGlhZ25vc3RpY3MsXG5cdFx0cHJpdmF0ZSBtZXJnZUZuOiBGdW5jdGlvbixcblx0XHRwcml2YXRlIHRhcmdldERhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGhcblx0KSB7XG5cdFx0dGhpcy5tYW5pZmVzdFdyYXBwZXIgPSBuZXcgTWFuaWZlc3RXcmFwcGVyKHRoaXMubWFuaWZlc3RTZXR0aW5ncywgbWVyZ2VGbik7XG5cdFx0dGhpcy5iYXNlQ29udGV4dFBhdGggPSBnZXRUYXJnZXRPYmplY3RQYXRoKHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aCk7XG5cdH1cblxuXHRwcml2YXRlIF9nZXRFbnRpdHlUeXBlRnJvbUZ1bGx5UXVhbGlmaWVkTmFtZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IEVudGl0eVR5cGUgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmNvbnZlcnRlZFR5cGVzLmVudGl0eVR5cGVzLmZpbmQoKGVudGl0eVR5cGUpID0+IHtcblx0XHRcdGlmIChmdWxseVF1YWxpZmllZE5hbWUuc3RhcnRzV2l0aChlbnRpdHlUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZSkpIHtcblx0XHRcdFx0Y29uc3QgcmVwbGFjZUFubm90YXRpb24gPSBmdWxseVF1YWxpZmllZE5hbWUucmVwbGFjZShlbnRpdHlUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZSwgXCJcIik7XG5cdFx0XHRcdHJldHVybiByZXBsYWNlQW5ub3RhdGlvbi5zdGFydHNXaXRoKFwiL1wiKSB8fCByZXBsYWNlQW5ub3RhdGlvbi5zdGFydHNXaXRoKFwiQFwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgZW50aXR5VHlwZSBhc3NvY2lhdGVkIHdpdGggYW4gYW5ub3RhdGlvbiBvYmplY3QuXG5cdCAqXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uIFRoZSBhbm5vdGF0aW9uIG9iamVjdCBmb3Igd2hpY2ggd2Ugd2FudCB0byBmaW5kIHRoZSBlbnRpdHlUeXBlXG5cdCAqIEByZXR1cm5zIFRoZSBFbnRpdHlUeXBlIHRoZSBhbm5vdGF0aW9uIHJlZmVycyB0b1xuXHQgKi9cblx0Z2V0QW5ub3RhdGlvbkVudGl0eVR5cGUoYW5ub3RhdGlvbj86IEFubm90YXRpb25UZXJtPGFueT4pOiBFbnRpdHlUeXBlIHtcblx0XHRpZiAoYW5ub3RhdGlvbikge1xuXHRcdFx0Y29uc3QgYW5ub3RhdGlvblBhdGggPSBhbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0XHRcdGNvbnN0IHRhcmdldEVudGl0eVR5cGUgPSB0aGlzLl9nZXRFbnRpdHlUeXBlRnJvbUZ1bGx5UXVhbGlmaWVkTmFtZShhbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRpZiAoIXRhcmdldEVudGl0eVR5cGUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBFbnRpdHkgVHlwZSBmb3IgJHthbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZX1gKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0YXJnZXRFbnRpdHlUeXBlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVR5cGU7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSBtYW5pZmVzdCBzZXR0aW5ncyBkZWZpbmVkIGZvciBhIHNwZWNpZmljIGNvbnRyb2wgd2l0aGluIGNvbnRyb2xDb25maWd1cmF0aW9uLlxuXHQgKlxuXHQgKiBAcGFyYW0gdkFubm90YXRpb25QYXRoIFRoZSBhbm5vdGF0aW9uIHBhdGggb3Igb2JqZWN0IHRvIGV2YWx1YXRlXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIGNvbmZpZ3VyYXRpb24gZm9yIHRoYXQgc3BlY2lmaWMgYW5ub3RhdGlvbiBwYXRoIGlmIGl0IGV4aXN0c1xuXHQgKi9cblx0Z2V0TWFuaWZlc3RDb250cm9sQ29uZmlndXJhdGlvbih2QW5ub3RhdGlvblBhdGg6IHN0cmluZyB8IEFubm90YXRpb25UZXJtPGFueT4pOiBhbnkge1xuXHRcdGlmIChpc0Fubm90YXRpb25UZXJtKHZBbm5vdGF0aW9uUGF0aCkpIHtcblx0XHRcdHJldHVybiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRDb250cm9sQ29uZmlndXJhdGlvbihcblx0XHRcdFx0dkFubm90YXRpb25QYXRoLmZ1bGx5UXVhbGlmaWVkTmFtZS5yZXBsYWNlKHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZSwgXCJcIilcblx0XHRcdCk7XG5cdFx0fVxuXHRcdC8vIENoZWNraW5nIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBlbnRpdHkgc2V0IGluIHRoZSBtYW5pZmVzdCwgYW5kIGNvbXBhcmluZyB0aGUgZW50aXR5IHNldCBvZiB0aGUgQ29udHJvbENvbmZpZ3VyYXRpb24gd2l0aCB0aGUgb25lIGZyb20gdGhlIGFubm90YXRpb24uXG5cdFx0Y29uc3Qgc0Fubm90YXRpb25QYXRoID1cblx0XHRcdHRoaXMubWFuaWZlc3RXcmFwcGVyLmhhc011bHRpcGxlRW50aXR5U2V0cygpICYmIHRoaXMuYmFzZUNvbnRleHRQYXRoICE9PSBgLyR7dGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0RW50aXR5U2V0KCl9YFxuXHRcdFx0XHQ/IGAke3RoaXMuYmFzZUNvbnRleHRQYXRofS8ke3ZBbm5vdGF0aW9uUGF0aH1gXG5cdFx0XHRcdDogdkFubm90YXRpb25QYXRoO1xuXHRcdHJldHVybiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRDb250cm9sQ29uZmlndXJhdGlvbihzQW5ub3RhdGlvblBhdGgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBhbiBhYnNvbHV0ZSBhbm5vdGF0aW9uIHBhdGggYmFzZWQgb24gdGhlIGN1cnJlbnQgbWV0YSBtb2RlbCBjb250ZXh0LlxuXHQgKlxuXHQgKiBAcGFyYW0gc0Fubm90YXRpb25QYXRoIFRoZSByZWxhdGl2ZSBhbm5vdGF0aW9uIHBhdGhcblx0ICogQHJldHVybnMgVGhlIGNvcnJlY3QgYW5ub3RhdGlvbiBwYXRoIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbnRleHRcblx0ICovXG5cdGdldEFic29sdXRlQW5ub3RhdGlvblBhdGgoc0Fubm90YXRpb25QYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGlmICghc0Fubm90YXRpb25QYXRoKSB7XG5cdFx0XHRyZXR1cm4gc0Fubm90YXRpb25QYXRoO1xuXHRcdH1cblx0XHRpZiAoc0Fubm90YXRpb25QYXRoWzBdID09PSBcIi9cIikge1xuXHRcdFx0cmV0dXJuIHNBbm5vdGF0aW9uUGF0aDtcblx0XHR9XG5cdFx0cmV0dXJuIGAke3RoaXMuYmFzZUNvbnRleHRQYXRofS8ke3NBbm5vdGF0aW9uUGF0aH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSBjdXJyZW50IGVudGl0eVNldC5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGN1cnJlbnQgRW50aXR5U2V0IGlmIGl0IGV4aXN0cy5cblx0ICovXG5cdGdldEVudGl0eVNldCgpOiBFbnRpdHlTZXQgfCBTaW5nbGV0b24gfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnRhcmdldERhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5U2V0IGFzIEVudGl0eVNldCB8IFNpbmdsZXRvbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgY29udGV4dCBwYXRoLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgY29udGV4dCBwYXRoIG9mIHRoZSBjb252ZXJ0ZXIuXG5cdCAqL1xuXHRnZXRDb250ZXh0UGF0aCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmJhc2VDb250ZXh0UGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgY3VycmVudCBkYXRhIG1vZGVsIG9iamVjdCBwYXRoLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBkYXRhIG1vZGVsIG9iamVjdCBwYXRoXG5cdCAqL1xuXHRnZXREYXRhTW9kZWxPYmplY3RQYXRoKCk6IERhdGFNb2RlbE9iamVjdFBhdGgge1xuXHRcdHJldHVybiB0aGlzLnRhcmdldERhdGFNb2RlbFBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBFbnRpdHlDb250YWluZXIuXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHNlcnZpY2UgRW50aXR5Q29udGFpbmVyXG5cdCAqL1xuXHRnZXRFbnRpdHlDb250YWluZXIoKTogRW50aXR5Q29udGFpbmVyIHtcblx0XHRyZXR1cm4gdGhpcy5jb252ZXJ0ZWRUeXBlcy5lbnRpdHlDb250YWluZXI7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBFbnRpdHlUeXBlIGJhc2VkIG9uIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGN1cnJlbnQgRW50aXR5VHlwZS5cblx0ICovXG5cdGdldEVudGl0eVR5cGUoKTogRW50aXR5VHlwZSB7XG5cdFx0cmV0dXJuIHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlUeXBlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGVudGl0eSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgaW4gY2FzZSBvZiBhIHBhcmFtZXRlcml6ZWQgc2VydmljZS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGVudGl0eSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXJcblx0ICovXG5cdGdldFBhcmFtZXRlckVudGl0eVR5cGUoKTogRW50aXR5VHlwZSB7XG5cdFx0Y29uc3QgcGFyYW1ldGVyRW50aXR5VHlwZSA9IHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldC5lbnRpdHlUeXBlO1xuXHRcdGNvbnN0IGlzUGFyYW1ldGVyaXplZCA9ICEhcGFyYW1ldGVyRW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uQ29tbW9uPy5SZXN1bHRDb250ZXh0O1xuXHRcdHJldHVybiAoaXNQYXJhbWV0ZXJpemVkICYmIHBhcmFtZXRlckVudGl0eVR5cGUpIGFzIEVudGl0eVR5cGU7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIGFuIGFubm90YXRpb24gZnJvbSBhbiBlbnRpdHkgdHlwZSBiYXNlZCBvbiBhbm5vdGF0aW9uIHBhdGguXG5cdCAqXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uUGF0aCBUaGUgYW5ub3RhdGlvbiBwYXRoIHRvIGJlIGV2YWx1YXRlZFxuXHQgKiBAcmV0dXJucyBUaGUgdGFyZ2V0IGFubm90YXRpb24gcGF0aCBhcyB3ZWxsIGFzIGEgY29udmVydGVyIGNvbnRleHQgdG8gZ28gd2l0aCBpdFxuXHQgKi9cblx0Z2V0RW50aXR5VHlwZUFubm90YXRpb24oYW5ub3RhdGlvblBhdGg6IHN0cmluZyk6IFJlc29sdmVkQW5ub3RhdGlvbkNvbnRleHQge1xuXHRcdGlmICghYW5ub3RhdGlvblBhdGguaW5jbHVkZXMoXCJAXCIpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYE5vdCBhbiBhbm5vdGF0aW9uIHBhdGg6ICcke2Fubm90YXRpb25QYXRofSdgKTtcblx0XHR9XG5cblx0XHRjb25zdCBpc0Fic29sdXRlID0gYW5ub3RhdGlvblBhdGguc3RhcnRzV2l0aChcIi9cIik7XG5cdFx0bGV0IHBhdGg6IHN0cmluZztcblxuXHRcdGlmIChpc0Fic29sdXRlKSB7XG5cdFx0XHQvLyBwYXRoIGNhbiBiZSB1c2VkIGFzLWlzXG5cdFx0XHRwYXRoID0gYW5ub3RhdGlvblBhdGg7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGJ1aWxkIGFuIGFic29sdXRlIHBhdGggYmFzZWQgb24gdGhlIGVudGl0eSB0eXBlICh0aGlzIGZ1bmN0aW9uIHdvcmtzIG9uIHRoZSB0eXBlISlcblx0XHRcdGNvbnN0IGJhc2UgPSB0aGlzLmdldENvbnRleHRQYXRoKCkuc3BsaXQoXCJAXCIsIDEpWzBdO1xuXHRcdFx0cGF0aCA9IGJhc2UuZW5kc1dpdGgoXCIvXCIpID8gYmFzZSArIGFubm90YXRpb25QYXRoIDogYCR7YmFzZX0vJHthbm5vdGF0aW9uUGF0aH1gO1xuXHRcdH1cblxuXHRcdGNvbnN0IHRhcmdldDogUmVzb2x1dGlvblRhcmdldDxhbnk+ID0gdGhpcy5yZXNvbHZlQWJzb2x1dGVQYXRoKHBhdGgpO1xuXG5cdFx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0RnJvbVBhdGgoXG5cdFx0XHR7IHRhcmdldDogdGFyZ2V0LnRhcmdldCwgdmlzaXRlZE9iamVjdHM6IHRhcmdldC5vYmplY3RQYXRoIGFzIFNlcnZpY2VPYmplY3RbXSB9LFxuXHRcdFx0dGhpcy5jb252ZXJ0ZWRUeXBlcyxcblx0XHRcdGlzQWJzb2x1dGUgPyB1bmRlZmluZWQgOiB0aGlzLnRhcmdldERhdGFNb2RlbFBhdGguY29udGV4dExvY2F0aW9uLFxuXHRcdFx0dHJ1ZVxuXHRcdCk7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0YW5ub3RhdGlvbjogdGFyZ2V0LnRhcmdldCxcblx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IG5ldyBDb252ZXJ0ZXJDb250ZXh0KFxuXHRcdFx0XHR0aGlzLmNvbnZlcnRlZFR5cGVzLFxuXHRcdFx0XHR0aGlzLm1hbmlmZXN0U2V0dGluZ3MsXG5cdFx0XHRcdHRoaXMuZGlhZ25vc3RpY3MsXG5cdFx0XHRcdHRoaXMubWVyZ2VGbixcblx0XHRcdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aFxuXHRcdFx0KVxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIHR5cGUgb2YgdGVtcGxhdGUgd2UncmUgd29ya2luZyBvbiAoZS5nLiBMaXN0UmVwb3J0IC8gT2JqZWN0UGFnZSAvIC4uLikuXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHRlbnBsYXRlIHR5cGVcblx0ICovXG5cdGdldFRlbXBsYXRlVHlwZSgpOiBUZW1wbGF0ZVR5cGUge1xuXHRcdHJldHVybiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRUZW1wbGF0ZVR5cGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgY29udmVydGVkIHR5cGVzLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBjb252ZXJ0ZWQgdHlwZXNcblx0ICovXG5cdGdldENvbnZlcnRlZFR5cGVzKCk6IENvbnZlcnRlZE1ldGFkYXRhIHtcblx0XHRyZXR1cm4gdGhpcy5jb252ZXJ0ZWRUeXBlcztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSBhIHJlbGF0aXZlIGFubm90YXRpb24gcGF0aCBiZXR3ZWVuIGFuIGFubm90YXRpb24gcGF0aCBhbmQgYW4gZW50aXR5IHR5cGUuXG5cdCAqXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uUGF0aFxuXHQgKiBAcGFyYW0gZW50aXR5VHlwZVxuXHQgKiBAcmV0dXJucyBUaGUgcmVsYXRpdmUgYW5udG90YXRpb24gcGF0aC5cblx0ICovXG5cdGdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgoYW5ub3RhdGlvblBhdGg6IHN0cmluZywgZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGFubm90YXRpb25QYXRoLnJlcGxhY2UoZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsIFwiXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRyYW5zZm9ybSBhbiBlbnRpdHlUeXBlIGJhc2VkIHBhdGggdG8gYW4gZW50aXR5U2V0IGJhc2VkIG9uZSAodWk1IHRlbXBsYXRpbmcgZ2VuZXJhbGx5IGV4cGVjdCBhbiBlbnRpdHlTZXRCYXNlZFBhdGgpLlxuXHQgKlxuXHQgKiBAcGFyYW0gYW5ub3RhdGlvblBhdGhcblx0ICogQHJldHVybnMgVGhlIEVudGl0eVNldCBiYXNlZCBhbm5vdGF0aW9uIHBhdGhcblx0ICovXG5cdGdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoYW5ub3RhdGlvblBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKCFhbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0cmV0dXJuIGFubm90YXRpb25QYXRoO1xuXHRcdH1cblx0XHRjb25zdCBlbnRpdHlUeXBlRlFOID0gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVR5cGUuZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRcdGlmIChcblx0XHRcdHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQgfHxcblx0XHRcdCgodGhpcy5iYXNlQ29udGV4dFBhdGguc3RhcnRzV2l0aChcIi9cIikgJiYgdGhpcy5iYXNlQ29udGV4dFBhdGgubWF0Y2goL1xcLy9nKSkgfHwgW10pLmxlbmd0aCA+IDFcblx0XHQpIHtcblx0XHRcdGxldCByZXBsYWNlZEFubm90YXRpb25QYXRoID0gYW5ub3RhdGlvblBhdGgucmVwbGFjZShlbnRpdHlUeXBlRlFOLCBcIi9cIik7XG5cdFx0XHRpZiAocmVwbGFjZWRBbm5vdGF0aW9uUGF0aC5sZW5ndGggPiAyICYmIHJlcGxhY2VkQW5ub3RhdGlvblBhdGhbMF0gPT09IFwiL1wiICYmIHJlcGxhY2VkQW5ub3RhdGlvblBhdGhbMV0gPT09IFwiL1wiKSB7XG5cdFx0XHRcdHJlcGxhY2VkQW5ub3RhdGlvblBhdGggPSByZXBsYWNlZEFubm90YXRpb25QYXRoLnN1YnN0cigxKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzLmJhc2VDb250ZXh0UGF0aCArIChyZXBsYWNlZEFubm90YXRpb25QYXRoLnN0YXJ0c1dpdGgoXCIvXCIpID8gcmVwbGFjZWRBbm5vdGF0aW9uUGF0aCA6IGAvJHtyZXBsYWNlZEFubm90YXRpb25QYXRofWApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gYC8ke2Fubm90YXRpb25QYXRofWA7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSBtYW5pZmVzdCB3cmFwcGVyIGZvciB0aGUgY3VycmVudCBjb250ZXh0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBtYW5pZmVzdCB3cmFwcGVyXG5cdCAqL1xuXHRnZXRNYW5pZmVzdFdyYXBwZXIoKTogTWFuaWZlc3RXcmFwcGVyIHtcblx0XHRyZXR1cm4gdGhpcy5tYW5pZmVzdFdyYXBwZXI7XG5cdH1cblxuXHRnZXREaWFnbm9zdGljcygpOiBJRGlhZ25vc3RpY3Mge1xuXHRcdHJldHVybiB0aGlzLmRpYWdub3N0aWNzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSB0YXJnZXQgZnJvbSBhbiBhYnNvbHV0ZSBwYXRoLlxuXHQgKlxuXHQgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB3ZSB3YW50IHRvIGdldCB0aGUgdGFyZ2V0XG5cdCAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoXG5cdCAqL1xuXHRyZXNvbHZlQWJzb2x1dGVQYXRoPFQ+KHBhdGg6IHN0cmluZyk6IFJlc29sdXRpb25UYXJnZXQ8VD4ge1xuXHRcdHJldHVybiB0aGlzLmNvbnZlcnRlZFR5cGVzLnJlc29sdmVQYXRoKHBhdGgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIGEgbmV3IGNvbnZlcnRlciBjb250ZXh0LCBzY29wZWQgZm9yIGEgZGlmZmVyZW50IGNvbnRleHQgcGF0aC5cblx0ICpcblx0ICogQHBhcmFtIGNvbnRleHRQYXRoIFRoZSBwYXRoIHdlIHdhbnQgdG8gb3JjaGVzdHJhdGUgdGhlIGNvbnZlcnRlciBjb250ZXh0IGFyb3VuZFxuXHQgKiBAcmV0dXJucyBUaGUgY29udmVydGVkIGNvbnRleHQgZm9yIHRoZSBzdWIgcGF0aFxuXHQgKi9cblx0Z2V0Q29udmVydGVyQ29udGV4dEZvcjxUPihjb250ZXh0UGF0aDogc3RyaW5nKTogQ29udmVydGVyQ29udGV4dCB7XG5cdFx0Y29uc3QgcmVzb2x2ZWRNZXRhUGF0aDogUmVzb2x1dGlvblRhcmdldDxUPiA9IHRoaXMuY29udmVydGVkVHlwZXMucmVzb2x2ZVBhdGgoY29udGV4dFBhdGgpO1xuXHRcdGNvbnN0IHRhcmdldFBhdGggPSBnZXREYXRhTW9kZWxQYXRoRm9yRW50aXR5U2V0KHJlc29sdmVkTWV0YVBhdGgsIHRoaXMuY29udmVydGVkVHlwZXMpO1xuXHRcdHJldHVybiBuZXcgQ29udmVydGVyQ29udGV4dCh0aGlzLmNvbnZlcnRlZFR5cGVzLCB0aGlzLm1hbmlmZXN0U2V0dGluZ3MsIHRoaXMuZGlhZ25vc3RpY3MsIHRoaXMubWVyZ2VGbiwgdGFyZ2V0UGF0aCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGFsbCBhbm5vdGF0aW9ucyBvZiBhIGdpdmVuIHRlcm0gYW5kIHZvY2FidWxhcnkgb24gYW4gZW50aXR5IHR5cGVcblx0ICogKG9yIG9uIHRoZSBjdXJyZW50IGVudGl0eSB0eXBlIGlmIGVudGl0eVR5cGUgaXNuJ3Qgc3BlY2lmaWVkKS5cblx0ICpcblx0ICogQHBhcmFtIHZvY2FidWxhcnlOYW1lXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uVGVybVxuXHQgKiBAcGFyYW0gW2Fubm90YXRpb25Tb3VyY2VzXVxuXHQgKiBAcmV0dXJucyBBbGwgdGhlIGFubm90YXRpb24gZm9yIGEgc3BlY2lmaWMgdGVybSBhbmQgdm9jYWJ1bGFyeSBmcm9tIGFuIGVudGl0eSB0eXBlXG5cdCAqL1xuXHRnZXRBbm5vdGF0aW9uc0J5VGVybShcblx0XHR2b2NhYnVsYXJ5TmFtZToga2V5b2YgRW50aXR5VHlwZUFubm90YXRpb25zLFxuXHRcdGFubm90YXRpb25UZXJtOiBzdHJpbmcsXG5cdFx0YW5ub3RhdGlvblNvdXJjZXM6IChTZXJ2aWNlT2JqZWN0IHwgdW5kZWZpbmVkKVtdID0gW3RoaXMuZ2V0RW50aXR5VHlwZSgpXVxuXHQpOiBBbm5vdGF0aW9uVGVybTxhbnk+W10ge1xuXHRcdGxldCBvdXRBbm5vdGF0aW9uczogQW5ub3RhdGlvblRlcm08YW55PltdID0gW107XG5cdFx0YW5ub3RhdGlvblNvdXJjZXMuZm9yRWFjaCgoYW5ub3RhdGlvblNvdXJjZSkgPT4ge1xuXHRcdFx0aWYgKGFubm90YXRpb25Tb3VyY2UpIHtcblx0XHRcdFx0Y29uc3QgYW5ub3RhdGlvbnM6IFJlY29yZDxzdHJpbmcsIEFubm90YXRpb25UZXJtPGFueT4+ID0gYW5ub3RhdGlvblNvdXJjZT8uYW5ub3RhdGlvbnNbdm9jYWJ1bGFyeU5hbWVdIHx8IHt9O1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvbnMpIHtcblx0XHRcdFx0XHRvdXRBbm5vdGF0aW9ucyA9IE9iamVjdC5rZXlzKGFubm90YXRpb25zKVxuXHRcdFx0XHRcdFx0LmZpbHRlcigoYW5ub3RhdGlvbikgPT4gYW5ub3RhdGlvbnNbYW5ub3RhdGlvbl0udGVybSA9PT0gYW5ub3RhdGlvblRlcm0pXG5cdFx0XHRcdFx0XHQucmVkdWNlKChwcmV2aW91c1ZhbHVlOiBBbm5vdGF0aW9uVGVybTxhbnk+W10sIGtleTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHByZXZpb3VzVmFsdWUucHVzaChhbm5vdGF0aW9uc1trZXldKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHByZXZpb3VzVmFsdWU7XG5cdFx0XHRcdFx0XHR9LCBvdXRBbm5vdGF0aW9ucyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gb3V0QW5ub3RhdGlvbnM7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSByZWxhdGl2ZSBtb2RlbCBwYXRoIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbnRleHQgcGF0aC5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIHJlbGF0aXZlIG1vZGVsIHBhdGggb3IgdW5kZWZpbmVkIGlmIHRoZSBwYXRoIGlzIG5vdCByZXNvbHZlYWJsZVxuXHQgKi9cblx0Z2V0UmVsYXRpdmVNb2RlbFBhdGhGdW5jdGlvbigpOiBGdW5jdGlvbiB7XG5cdFx0Y29uc3QgdGFyZ2V0RGF0YU1vZGVsUGF0aCA9IHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aDtcblx0XHRyZXR1cm4gZnVuY3Rpb24gKHNQYXRoOiBzdHJpbmcpIHtcblx0XHRcdGNvbnN0IGVuaGFuY2VkUGF0aCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoKHRhcmdldERhdGFNb2RlbFBhdGgsIHNQYXRoKTtcblx0XHRcdHJldHVybiBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoKGVuaGFuY2VkUGF0aCwgdHJ1ZSk7XG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgdGhlIGNvbnZlcnRlciBjb250ZXh0IG5lY2Vzc2FyeSBmb3IgYSBtYWNybyBiYXNlZCBvbiBhIG1ldGFtb2RlbCBjb250ZXh0LlxuXHQgKlxuXHQgKiBAcGFyYW0gc0VudGl0eVNldE5hbWVcblx0ICogQHBhcmFtIG9NZXRhTW9kZWxDb250ZXh0XG5cdCAqIEBwYXJhbSBkaWFnbm9zdGljc1xuXHQgKiBAcGFyYW0gbWVyZ2VGblxuXHQgKiBAcGFyYW0gdGFyZ2V0RGF0YU1vZGVsUGF0aFxuXHQgKiBAcGFyYW0gbWFuaWZlc3RTZXR0aW5nc1xuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBjb252ZXJ0ZXIgY29udGV4dFxuXHQgKi9cblx0c3RhdGljIGNyZWF0ZUNvbnZlcnRlckNvbnRleHRGb3JNYWNybyhcblx0XHRzRW50aXR5U2V0TmFtZTogc3RyaW5nLFxuXHRcdG9NZXRhTW9kZWxDb250ZXh0OiBDb250ZXh0IHwgT0RhdGFNZXRhTW9kZWwsXG5cdFx0ZGlhZ25vc3RpY3M6IElEaWFnbm9zdGljcyxcblx0XHRtZXJnZUZuOiBGdW5jdGlvbixcblx0XHR0YXJnZXREYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoIHwgdW5kZWZpbmVkLFxuXHRcdG1hbmlmZXN0U2V0dGluZ3M6IEJhc2VNYW5pZmVzdFNldHRpbmdzID0ge30gYXMgQmFzZU1hbmlmZXN0U2V0dGluZ3Ncblx0KTogQ29udmVydGVyQ29udGV4dCB7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwgPSBvTWV0YU1vZGVsQ29udGV4dC5pc0EoXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFNZXRhTW9kZWxcIilcblx0XHRcdD8gKG9NZXRhTW9kZWxDb250ZXh0IGFzIE9EYXRhTWV0YU1vZGVsKVxuXHRcdFx0OiAoKG9NZXRhTW9kZWxDb250ZXh0IGFzIENvbnRleHQpLmdldE1vZGVsKCkgYXMgdW5rbm93biBhcyBPRGF0YU1ldGFNb2RlbCk7XG5cdFx0Y29uc3Qgb0NvbnZlcnRlZE1ldGFkYXRhID0gY29udmVydFR5cGVzKG9NZXRhTW9kZWwpO1xuXHRcdGxldCB0YXJnZXRFbnRpdHlTZXQ6IFNpbmdsZXRvbiB8IEVudGl0eVNldCA9IG9Db252ZXJ0ZWRNZXRhZGF0YS5lbnRpdHlTZXRzLmZpbmQoXG5cdFx0XHQoZW50aXR5U2V0KSA9PiBlbnRpdHlTZXQubmFtZSA9PT0gc0VudGl0eVNldE5hbWVcblx0XHQpIGFzIEVudGl0eVNldDtcblx0XHRpZiAoIXRhcmdldEVudGl0eVNldCkge1xuXHRcdFx0dGFyZ2V0RW50aXR5U2V0ID0gb0NvbnZlcnRlZE1ldGFkYXRhLnNpbmdsZXRvbnMuZmluZCgoZW50aXR5U2V0KSA9PiBlbnRpdHlTZXQubmFtZSA9PT0gc0VudGl0eVNldE5hbWUpIGFzIFNpbmdsZXRvbjtcblx0XHR9XG5cdFx0aWYgKCF0YXJnZXREYXRhTW9kZWxQYXRoIHx8IHRhcmdldEVudGl0eVNldCAhPT0gdGFyZ2V0RGF0YU1vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldCkge1xuXHRcdFx0dGFyZ2V0RGF0YU1vZGVsUGF0aCA9IHtcblx0XHRcdFx0c3RhcnRpbmdFbnRpdHlTZXQ6IHRhcmdldEVudGl0eVNldCxcblx0XHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXM6IFtdLFxuXHRcdFx0XHR0YXJnZXRFbnRpdHlTZXQ6IHRhcmdldEVudGl0eVNldCxcblx0XHRcdFx0dGFyZ2V0RW50aXR5VHlwZTogdGFyZ2V0RW50aXR5U2V0LmVudGl0eVR5cGUsXG5cdFx0XHRcdHRhcmdldE9iamVjdDogdGFyZ2V0RW50aXR5U2V0LFxuXHRcdFx0XHRjb252ZXJ0ZWRUeXBlczogb0NvbnZlcnRlZE1ldGFkYXRhXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRyZXR1cm4gbmV3IENvbnZlcnRlckNvbnRleHQob0NvbnZlcnRlZE1ldGFkYXRhLCBtYW5pZmVzdFNldHRpbmdzLCBkaWFnbm9zdGljcywgbWVyZ2VGbiwgdGFyZ2V0RGF0YU1vZGVsUGF0aCk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29udmVydGVyQ29udGV4dDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0VBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLE1BQU1BLGdCQUFnQixHQUFHLFVBQVVDLGVBQTZDLEVBQTBDO0lBQ3pILE9BQU8sT0FBT0EsZUFBZSxLQUFLLFFBQVE7RUFDM0MsQ0FBQztFQUVELFNBQVNDLGVBQWUsQ0FBQ0MsVUFBc0MsRUFBK0I7SUFDN0YsT0FBT0EsVUFB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
401
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0Fubm90YXRpb25UZXJtIiwidkFubm90YXRpb25QYXRoIiwiZ2V0RGF0YU1vZGVsUGF0aEZvckVudGl0eVNldCIsInJlc29sdmVkTWV0YVBhdGgiLCJjb252ZXJ0ZWRUeXBlcyIsInJvb3RFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5U2V0IiwicHJldmlvdXNFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5VHlwZSIsIm5hdmlnYXRlZFBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJvYmplY3RQYXRoIiwiZm9yRWFjaCIsIm9iamVjdFBhcnQiLCJpc1NlcnZpY2VPYmplY3QiLCJfdHlwZSIsInB1c2giLCJuYW1lIiwidGFyZ2V0VHlwZSIsIm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmciLCJoYXNPd25Qcm9wZXJ0eSIsImpvaW4iLCJ1bmRlZmluZWQiLCJlbnRpdHlUeXBlIiwiZGF0YU1vZGVsUGF0aCIsInN0YXJ0aW5nRW50aXR5U2V0IiwidGFyZ2V0RW50aXR5VHlwZSIsInRhcmdldEVudGl0eVNldCIsImNvbnRleHRMb2NhdGlvbiIsInRhcmdldE9iamVjdCIsInRhcmdldCIsIkNvbnZlcnRlckNvbnRleHQiLCJtYW5pZmVzdFNldHRpbmdzIiwiZGlhZ25vc3RpY3MiLCJtZXJnZUZuIiwidGFyZ2V0RGF0YU1vZGVsUGF0aCIsIm1hbmlmZXN0V3JhcHBlciIsIk1hbmlmZXN0V3JhcHBlciIsImJhc2VDb250ZXh0UGF0aCIsImdldFRhcmdldE9iamVjdFBhdGgiLCJfZ2V0RW50aXR5VHlwZUZyb21GdWxseVF1YWxpZmllZE5hbWUiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJlbnRpdHlUeXBlcyIsImZpbmQiLCJzdGFydHNXaXRoIiwicmVwbGFjZUFubm90YXRpb24iLCJyZXBsYWNlIiwiZ2V0QW5ub3RhdGlvbkVudGl0eVR5cGUiLCJhbm5vdGF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJFcnJvciIsImdldE1hbmlmZXN0Q29udHJvbENvbmZpZ3VyYXRpb24iLCJnZXRDb250cm9sQ29uZmlndXJhdGlvbiIsInNBbm5vdGF0aW9uUGF0aCIsImhhc011bHRpcGxlRW50aXR5U2V0cyIsImdldEVudGl0eVNldCIsImdldEFic29sdXRlQW5ub3RhdGlvblBhdGgiLCJnZXRDb250ZXh0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJnZXRFbnRpdHlDb250YWluZXIiLCJlbnRpdHlDb250YWluZXIiLCJnZXRFbnRpdHlUeXBlIiwiZ2V0UGFyYW1ldGVyRW50aXR5VHlwZSIsInBhcmFtZXRlckVudGl0eVR5cGUiLCJpc1BhcmFtZXRlcml6ZWQiLCJhbm5vdGF0aW9ucyIsIkNvbW1vbiIsIlJlc3VsdENvbnRleHQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsImluY2x1ZGVzIiwiaXNBYnNvbHV0ZSIsInBhdGgiLCJiYXNlIiwic3BsaXQiLCJlbmRzV2l0aCIsInJlc29sdmVBYnNvbHV0ZVBhdGgiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RGcm9tUGF0aCIsInZpc2l0ZWRPYmplY3RzIiwiY29udmVydGVyQ29udGV4dCIsImdldFRlbXBsYXRlVHlwZSIsImdldENvbnZlcnRlZFR5cGVzIiwiZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJlbnRpdHlUeXBlRlFOIiwibWF0Y2giLCJsZW5ndGgiLCJyZXBsYWNlZEFubm90YXRpb25QYXRoIiwic3Vic3RyIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiZ2V0RGlhZ25vc3RpY3MiLCJyZXNvbHZlUGF0aCIsImdldENvbnZlcnRlckNvbnRleHRGb3IiLCJjb250ZXh0UGF0aCIsInRhcmdldFBhdGgiLCJnZXRBbm5vdGF0aW9uc0J5VGVybSIsInZvY2FidWxhcnlOYW1lIiwiYW5ub3RhdGlvblRlcm0iLCJhbm5vdGF0aW9uU291cmNlcyIsIm91dEFubm90YXRpb25zIiwiYW5ub3RhdGlvblNvdXJjZSIsIk9iamVjdCIsImtleXMiLCJmaWx0ZXIiLCJ0ZXJtIiwicmVkdWNlIiwicHJldmlvdXNWYWx1ZSIsImtleSIsImdldFJlbGF0aXZlTW9kZWxQYXRoRnVuY3Rpb24iLCJzUGF0aCIsImVuaGFuY2VkUGF0aCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwiZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCIsImNyZWF0ZUNvbnZlcnRlckNvbnRleHRGb3JNYWNybyIsInNFbnRpdHlTZXROYW1lIiwib01ldGFNb2RlbENvbnRleHQiLCJvTWV0YU1vZGVsIiwiaXNBIiwiZ2V0TW9kZWwiLCJvQ29udmVydGVkTWV0YWRhdGEiLCJjb252ZXJ0VHlwZXMiLCJlbnRpdHlTZXRzIiwiZW50aXR5U2V0Iiwic2luZ2xldG9ucyJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29udmVydGVyQ29udGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG5cdEFubm90YXRpb25UZXJtLFxuXHRDb252ZXJ0ZWRNZXRhZGF0YSxcblx0RW50aXR5Q29udGFpbmVyLFxuXHRFbnRpdHlTZXQsXG5cdEVudGl0eVR5cGUsXG5cdE5hdmlnYXRpb25Qcm9wZXJ0eSxcblx0UmVzb2x1dGlvblRhcmdldCxcblx0U2VydmljZU9iamVjdCxcblx0U2VydmljZU9iamVjdEFuZEFubm90YXRpb24sXG5cdFNpbmdsZXRvblxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5VHlwZUFubm90YXRpb25zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9FZG1fVHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgQmFzZU1hbmlmZXN0U2V0dGluZ3MsIFRlbXBsYXRlVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCBNYW5pZmVzdFdyYXBwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgeyBjb252ZXJ0VHlwZXMsIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0RnJvbVBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB0eXBlIHsgSURpYWdub3N0aWNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvVGVtcGxhdGVDb252ZXJ0ZXJcIjtcbmltcG9ydCB7IGlzU2VydmljZU9iamVjdCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGVuaGFuY2VEYXRhTW9kZWxQYXRoLCBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkQW5ub3RhdGlvbkNvbnRleHQgPSB7XG5cdGFubm90YXRpb246IEFubm90YXRpb25UZXJtPGFueT47XG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIG9iamVjdCBpcyBhbiBhbm5vdGF0aW9uIHRlcm0uXG4gKlxuICogQHBhcmFtIHZBbm5vdGF0aW9uUGF0aFxuICogQHJldHVybnMgYHRydWVgIGlmIGl0J3MgYW4gYW5ub3RhdGlvbiB0ZXJtXG4gKi9cbmNvbnN0IGlzQW5ub3RhdGlvblRlcm0gPSBmdW5jdGlvbiAodkFubm90YXRpb25QYXRoOiBzdHJpbmcgfCBBbm5vdGF0aW9uVGVybTxhbnk+KTogdkFubm90YXRpb25QYXRoIGlzIEFubm90YXRpb25UZXJtPGFueT4ge1xuXHRyZXR1cm4gdHlwZW9mIHZBbm5vdGF0aW9uUGF0aCA9PT0gXCJvYmplY3RcIjtcbn07XG5cbmNvbnN0IGdldERhdGFNb2RlbFBhdGhGb3JFbnRpdHlTZXQgPSBmdW5jdGlvbiAoXG5cdHJlc29sdmVkTWV0YVBhdGg6IFJlc29sdXRpb25UYXJnZXQ8YW55Pixcblx0Y29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhXG4pOiBEYXRhTW9kZWxPYmplY3RQYXRoIHtcblx0bGV0IHJvb3RFbnRpdHlTZXQ6IEVudGl0eVNldCB8IHVuZGVmaW5lZDtcblx0bGV0IGN1cnJlbnRFbnRpdHlTZXQ6IEVudGl0eVNldCB8IHVuZGVmaW5lZDtcblx0bGV0IHByZXZpb3VzRW50aXR5U2V0OiBFbnRpdHlTZXQgfCB1bmRlZmluZWQ7XG5cdGxldCBjdXJyZW50RW50aXR5VHlwZTogRW50aXR5VHlwZSB8IHVuZGVmaW5lZDtcblx0bGV0IG5hdmlnYXRlZFBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXHRjb25zdCBuYXZpZ2F0aW9uUHJvcGVydGllczogTmF2aWdhdGlvblByb3BlcnR5W10gPSBbXTtcblx0cmVzb2x2ZWRNZXRhUGF0aC5vYmplY3RQYXRoLmZvckVhY2goKG9iamVjdFBhcnQ6IFNlcnZpY2VPYmplY3RBbmRBbm5vdGF0aW9uKSA9PiB7XG5cdFx0aWYgKGlzU2VydmljZU9iamVjdChvYmplY3RQYXJ0KSkge1xuXHRcdFx0c3dpdGNoIChvYmplY3RQYXJ0Ll90eXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJOYXZpZ2F0aW9uUHJvcGVydHlcIjpcblx0XHRcdFx0XHRuYXZpZ2F0ZWRQYXRocy5wdXNoKG9iamVjdFBhcnQubmFtZSk7XG5cdFx0XHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXMucHVzaChvYmplY3RQYXJ0KTtcblx0XHRcdFx0XHRjdXJyZW50RW50aXR5VHlwZSA9IG9iamVjdFBhcnQudGFyZ2V0VHlwZTtcblx0XHRcdFx0XHRpZiAocHJldmlvdXNFbnRpdHlTZXQgJiYgcHJldmlvdXNFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZy5oYXNPd25Qcm9wZXJ0eShuYXZpZ2F0ZWRQYXRocy5qb2luKFwiL1wiKSkpIHtcblx0XHRcdFx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSBwcmV2aW91c0VudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW25hdmlnYXRlZFBhdGhzLmpvaW4oXCIvXCIpXSBhcyBFbnRpdHlTZXQ7XG5cdFx0XHRcdFx0XHRwcmV2aW91c0VudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHRcdFx0XHRuYXZpZ2F0ZWRQYXRocyA9IFtdO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBcIkVudGl0eVNldFwiOlxuXHRcdFx0XHRcdGlmIChyb290RW50aXR5U2V0ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdHJvb3RFbnRpdHlTZXQgPSBvYmplY3RQYXJ0O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gb2JqZWN0UGFydDtcblx0XHRcdFx0XHRwcmV2aW91c0VudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHRcdFx0Y3VycmVudEVudGl0eVR5cGUgPSBjdXJyZW50RW50aXR5U2V0Py5lbnRpdHlUeXBlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG5cdGNvbnN0IGRhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGggPSB7XG5cdFx0c3RhcnRpbmdFbnRpdHlTZXQ6IHJvb3RFbnRpdHlTZXQgYXMgRW50aXR5U2V0LFxuXHRcdHRhcmdldEVudGl0eVR5cGU6IGN1cnJlbnRFbnRpdHlUeXBlIGFzIEVudGl0eVR5cGUsXG5cdFx0dGFyZ2V0RW50aXR5U2V0OiBjdXJyZW50RW50aXR5U2V0LFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBuYXZpZ2F0aW9uUHJvcGVydGllcyxcblx0XHRjb250ZXh0TG9jYXRpb246IHVuZGVmaW5lZCxcblx0XHR0YXJnZXRPYmplY3Q6IHJlc29sdmVkTWV0YVBhdGgudGFyZ2V0LFxuXHRcdGNvbnZlcnRlZFR5cGVzOiBjb252ZXJ0ZWRUeXBlc1xuXHR9O1xuXHRkYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbiA9IGRhdGFNb2RlbFBhdGg7XG5cdHJldHVybiBkYXRhTW9kZWxQYXRoO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgYSBDb252ZXJ0ZXJDb250ZXh0IG9iamVjdCB0aGF0IHdpbGwgYmUgdXNlZCB3aXRoaW4gdGhlIGNvbnZlcnRlcnMuXG4gKlxuICogQHBhcmFtIHtDb252ZXJ0ZWRNZXRhZGF0YX0gb0NvbnZlcnRlZFR5cGVzIFRoZSBjb252ZXJ0ZWQgYW5ub3RhdGlvbiBhbmQgc2VydmljZSB0eXBlc1xuICogQHBhcmFtIHtCYXNlTWFuaWZlc3RTZXR0aW5nc30gb01hbmlmZXN0U2V0dGluZ3MgVGhlIG1hbmlmZXN0U2V0dGluZ3MgdGhhdCBhcHBsaWVzIHRvIHRoaXMgcGFnZVxuICogQHBhcmFtIHtUZW1wbGF0ZVR5cGV9IHRlbXBsYXRlVHlwZSBUaGUgdHlwZSBvZiB0ZW1wbGF0ZSB3ZSdyZSBsb29raW5nIGF0IHJpZ2h0IG5vd1xuICogQHBhcmFtIHtJRGlhZ25vc3RpY3N9IGRpYWdub3N0aWNzIFRoZSBkaWFnbm9zdGljcyBzaGltXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBtZXJnZUZuIFRoZSBmdW5jdGlvbiB0byBiZSB1c2VkIHRvIHBlcmZvbSBzb21lIGRlZXAgbWVyZ2VzIGJldHdlZW4gb2JqZWN0XG4gKiBAcGFyYW0ge0RhdGFNb2RlbE9iamVjdFBhdGh9IHRhcmdldERhdGFNb2RlbFBhdGggVGhlIGdsb2JhbCBwYXRoIHRvIHJlYWNoIHRoZSBlbnRpdHlTZXRcbiAqIEByZXR1cm5zIHtDb252ZXJ0ZXJDb250ZXh0fSBBIGNvbnZlcnRlciBjb250ZXh0IGZvciB0aGUgY29udmVydGVyc1xuICovXG5jbGFzcyBDb252ZXJ0ZXJDb250ZXh0IHtcblx0cHJpdmF0ZSBtYW5pZmVzdFdyYXBwZXI6IE1hbmlmZXN0V3JhcHBlcjtcblxuXHRwcml2YXRlIGJhc2VDb250ZXh0UGF0aDogc3RyaW5nO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgY29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhLFxuXHRcdHByaXZhdGUgbWFuaWZlc3RTZXR0aW5nczogQmFzZU1hbmlmZXN0U2V0dGluZ3MsXG5cdFx0cHJpdmF0ZSBkaWFnbm9zdGljczogSURpYWdub3N0aWNzLFxuXHRcdHByaXZhdGUgbWVyZ2VGbjogRnVuY3Rpb24sXG5cdFx0cHJpdmF0ZSB0YXJnZXREYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoXG5cdCkge1xuXHRcdHRoaXMubWFuaWZlc3RXcmFwcGVyID0gbmV3IE1hbmlmZXN0V3JhcHBlcih0aGlzLm1hbmlmZXN0U2V0dGluZ3MsIG1lcmdlRm4pO1xuXHRcdHRoaXMuYmFzZUNvbnRleHRQYXRoID0gZ2V0VGFyZ2V0T2JqZWN0UGF0aCh0aGlzLnRhcmdldERhdGFNb2RlbFBhdGgpO1xuXHR9XG5cblx0cHJpdmF0ZSBfZ2V0RW50aXR5VHlwZUZyb21GdWxseVF1YWxpZmllZE5hbWUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5jb252ZXJ0ZWRUeXBlcy5lbnRpdHlUeXBlcy5maW5kKChlbnRpdHlUeXBlKSA9PiB7XG5cdFx0XHRpZiAoZnVsbHlRdWFsaWZpZWROYW1lLnN0YXJ0c1dpdGgoZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUpKSB7XG5cdFx0XHRcdGNvbnN0IHJlcGxhY2VBbm5vdGF0aW9uID0gZnVsbHlRdWFsaWZpZWROYW1lLnJlcGxhY2UoZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsIFwiXCIpO1xuXHRcdFx0XHRyZXR1cm4gcmVwbGFjZUFubm90YXRpb24uc3RhcnRzV2l0aChcIi9cIikgfHwgcmVwbGFjZUFubm90YXRpb24uc3RhcnRzV2l0aChcIkBcIik7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIGVudGl0eVR5cGUgYXNzb2NpYXRlZCB3aXRoIGFuIGFubm90YXRpb24gb2JqZWN0LlxuXHQgKlxuXHQgKiBAcGFyYW0gYW5ub3RhdGlvbiBUaGUgYW5ub3RhdGlvbiBvYmplY3QgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZmluZCB0aGUgZW50aXR5VHlwZVxuXHQgKiBAcmV0dXJucyBUaGUgRW50aXR5VHlwZSB0aGUgYW5ub3RhdGlvbiByZWZlcnMgdG9cblx0ICovXG5cdGdldEFubm90YXRpb25FbnRpdHlUeXBlKGFubm90YXRpb24/OiBBbm5vdGF0aW9uVGVybTxhbnk+KTogRW50aXR5VHlwZSB7XG5cdFx0aWYgKGFubm90YXRpb24pIHtcblx0XHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gYW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWU7XG5cdFx0XHRjb25zdCB0YXJnZXRFbnRpdHlUeXBlID0gdGhpcy5fZ2V0RW50aXR5VHlwZUZyb21GdWxseVF1YWxpZmllZE5hbWUoYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0aWYgKCF0YXJnZXRFbnRpdHlUeXBlKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgRW50aXR5IFR5cGUgZm9yICR7YW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWV9YCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGFyZ2V0RW50aXR5VHlwZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlUeXBlO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgbWFuaWZlc3Qgc2V0dGluZ3MgZGVmaW5lZCBmb3IgYSBzcGVjaWZpYyBjb250cm9sIHdpdGhpbiBjb250cm9sQ29uZmlndXJhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIHZBbm5vdGF0aW9uUGF0aCBUaGUgYW5ub3RhdGlvbiBwYXRoIG9yIG9iamVjdCB0byBldmFsdWF0ZVxuXHQgKiBAcmV0dXJucyBUaGUgY29udHJvbCBjb25maWd1cmF0aW9uIGZvciB0aGF0IHNwZWNpZmljIGFubm90YXRpb24gcGF0aCBpZiBpdCBleGlzdHNcblx0ICovXG5cdGdldE1hbmlmZXN0Q29udHJvbENvbmZpZ3VyYXRpb24odkFubm90YXRpb25QYXRoOiBzdHJpbmcgfCBBbm5vdGF0aW9uVGVybTxhbnk+KTogYW55IHtcblx0XHRpZiAoaXNBbm5vdGF0aW9uVGVybSh2QW5ub3RhdGlvblBhdGgpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0Q29udHJvbENvbmZpZ3VyYXRpb24oXG5cdFx0XHRcdHZBbm5vdGF0aW9uUGF0aC5mdWxseVF1YWxpZmllZE5hbWUucmVwbGFjZSh0aGlzLnRhcmdldERhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsIFwiXCIpXG5cdFx0XHQpO1xuXHRcdH1cblx0XHQvLyBDaGVja2luZyBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZW50aXR5IHNldCBpbiB0aGUgbWFuaWZlc3QsIGFuZCBjb21wYXJpbmcgdGhlIGVudGl0eSBzZXQgb2YgdGhlIENvbnRyb2xDb25maWd1cmF0aW9uIHdpdGggdGhlIG9uZSBmcm9tIHRoZSBhbm5vdGF0aW9uLlxuXHRcdGNvbnN0IHNBbm5vdGF0aW9uUGF0aCA9XG5cdFx0XHR0aGlzLm1hbmlmZXN0V3JhcHBlci5oYXNNdWx0aXBsZUVudGl0eVNldHMoKSAmJiB0aGlzLmJhc2VDb250ZXh0UGF0aCAhPT0gYC8ke3RoaXMubWFuaWZlc3RXcmFwcGVyLmdldEVudGl0eVNldCgpfWBcblx0XHRcdFx0PyBgJHt0aGlzLmJhc2VDb250ZXh0UGF0aH0vJHt2QW5ub3RhdGlvblBhdGh9YFxuXHRcdFx0XHQ6IHZBbm5vdGF0aW9uUGF0aDtcblx0XHRyZXR1cm4gdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0Q29udHJvbENvbmZpZ3VyYXRpb24oc0Fubm90YXRpb25QYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgYW4gYWJzb2x1dGUgYW5ub3RhdGlvbiBwYXRoIGJhc2VkIG9uIHRoZSBjdXJyZW50IG1ldGEgbW9kZWwgY29udGV4dC5cblx0ICpcblx0ICogQHBhcmFtIHNBbm5vdGF0aW9uUGF0aCBUaGUgcmVsYXRpdmUgYW5ub3RhdGlvbiBwYXRoXG5cdCAqIEByZXR1cm5zIFRoZSBjb3JyZWN0IGFubm90YXRpb24gcGF0aCBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0XG5cdCAqL1xuXHRnZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKHNBbm5vdGF0aW9uUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAoIXNBbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0cmV0dXJuIHNBbm5vdGF0aW9uUGF0aDtcblx0XHR9XG5cdFx0aWYgKHNBbm5vdGF0aW9uUGF0aFswXSA9PT0gXCIvXCIpIHtcblx0XHRcdHJldHVybiBzQW5ub3RhdGlvblBhdGg7XG5cdFx0fVxuXHRcdHJldHVybiBgJHt0aGlzLmJhc2VDb250ZXh0UGF0aH0vJHtzQW5ub3RhdGlvblBhdGh9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgY3VycmVudCBlbnRpdHlTZXQuXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IEVudGl0eVNldCBpZiBpdCBleGlzdHMuXG5cdCAqL1xuXHRnZXRFbnRpdHlTZXQoKTogRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCBhcyBFbnRpdHlTZXQgfCBTaW5nbGV0b247XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIGNvbnRleHQgcGF0aC5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgcGF0aCBvZiB0aGUgY29udmVydGVyLlxuXHQgKi9cblx0Z2V0Q29udGV4dFBhdGgoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5iYXNlQ29udGV4dFBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIGN1cnJlbnQgZGF0YSBtb2RlbCBvYmplY3QgcGF0aC5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGN1cnJlbnQgZGF0YSBtb2RlbCBvYmplY3QgcGF0aFxuXHQgKi9cblx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpOiBEYXRhTW9kZWxPYmplY3RQYXRoIHtcblx0XHRyZXR1cm4gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgRW50aXR5Q29udGFpbmVyLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBzZXJ2aWNlIEVudGl0eUNvbnRhaW5lclxuXHQgKi9cblx0Z2V0RW50aXR5Q29udGFpbmVyKCk6IEVudGl0eUNvbnRhaW5lciB7XG5cdFx0cmV0dXJuIHRoaXMuY29udmVydGVkVHlwZXMuZW50aXR5Q29udGFpbmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgRW50aXR5VHlwZSBiYXNlZCBvbiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUuXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IEVudGl0eVR5cGUuXG5cdCAqL1xuXHRnZXRFbnRpdHlUeXBlKCk6IEVudGl0eVR5cGUge1xuXHRcdHJldHVybiB0aGlzLnRhcmdldERhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5VHlwZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBlbnRpdHkgdHlwZSBvZiB0aGUgcGFyYW1ldGVyIGluIGNhc2Ugb2YgYSBwYXJhbWV0ZXJpemVkIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSBlbnRpdHkgdHlwZSBvZiB0aGUgcGFyYW1ldGVyXG5cdCAqL1xuXHRnZXRQYXJhbWV0ZXJFbnRpdHlUeXBlKCk6IEVudGl0eVR5cGUge1xuXHRcdGNvbnN0IHBhcmFtZXRlckVudGl0eVR5cGUgPSB0aGlzLnRhcmdldERhdGFNb2RlbFBhdGguc3RhcnRpbmdFbnRpdHlTZXQuZW50aXR5VHlwZTtcblx0XHRjb25zdCBpc1BhcmFtZXRlcml6ZWQgPSAhIXBhcmFtZXRlckVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LkNvbW1vbj8uUmVzdWx0Q29udGV4dDtcblx0XHRyZXR1cm4gKGlzUGFyYW1ldGVyaXplZCAmJiBwYXJhbWV0ZXJFbnRpdHlUeXBlKSBhcyBFbnRpdHlUeXBlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyBhbiBhbm5vdGF0aW9uIGZyb20gYW4gZW50aXR5IHR5cGUgYmFzZWQgb24gYW5ub3RhdGlvbiBwYXRoLlxuXHQgKlxuXHQgKiBAcGFyYW0gYW5ub3RhdGlvblBhdGggVGhlIGFubm90YXRpb24gcGF0aCB0byBiZSBldmFsdWF0ZWRcblx0ICogQHJldHVybnMgVGhlIHRhcmdldCBhbm5vdGF0aW9uIHBhdGggYXMgd2VsbCBhcyBhIGNvbnZlcnRlciBjb250ZXh0IHRvIGdvIHdpdGggaXRcblx0ICovXG5cdGdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGFubm90YXRpb25QYXRoOiBzdHJpbmcpOiBSZXNvbHZlZEFubm90YXRpb25Db250ZXh0IHtcblx0XHRpZiAoIWFubm90YXRpb25QYXRoLmluY2x1ZGVzKFwiQFwiKSkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBOb3QgYW4gYW5ub3RhdGlvbiBwYXRoOiAnJHthbm5vdGF0aW9uUGF0aH0nYCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgaXNBYnNvbHV0ZSA9IGFubm90YXRpb25QYXRoLnN0YXJ0c1dpdGgoXCIvXCIpO1xuXHRcdGxldCBwYXRoOiBzdHJpbmc7XG5cblx0XHRpZiAoaXNBYnNvbHV0ZSkge1xuXHRcdFx0Ly8gcGF0aCBjYW4gYmUgdXNlZCBhcy1pc1xuXHRcdFx0cGF0aCA9IGFubm90YXRpb25QYXRoO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBidWlsZCBhbiBhYnNvbHV0ZSBwYXRoIGJhc2VkIG9uIHRoZSBlbnRpdHkgdHlwZSAodGhpcyBmdW5jdGlvbiB3b3JrcyBvbiB0aGUgdHlwZSEpXG5cdFx0XHRjb25zdCBiYXNlID0gdGhpcy5nZXRDb250ZXh0UGF0aCgpLnNwbGl0KFwiQFwiLCAxKVswXTtcblx0XHRcdHBhdGggPSBiYXNlLmVuZHNXaXRoKFwiL1wiKSA/IGJhc2UgKyBhbm5vdGF0aW9uUGF0aCA6IGAke2Jhc2V9LyR7YW5ub3RhdGlvblBhdGh9YDtcblx0XHR9XG5cblx0XHRjb25zdCB0YXJnZXQ6IFJlc29sdXRpb25UYXJnZXQ8YW55PiA9IHRoaXMucmVzb2x2ZUFic29sdXRlUGF0aChwYXRoKTtcblxuXHRcdGNvbnN0IGRhdGFNb2RlbE9iamVjdFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdEZyb21QYXRoKFxuXHRcdFx0eyB0YXJnZXQ6IHRhcmdldC50YXJnZXQsIHZpc2l0ZWRPYmplY3RzOiB0YXJnZXQub2JqZWN0UGF0aCB9LFxuXHRcdFx0dGhpcy5jb252ZXJ0ZWRUeXBlcyxcblx0XHRcdGlzQWJzb2x1dGUgPyB1bmRlZmluZWQgOiB0aGlzLnRhcmdldERhdGFNb2RlbFBhdGguY29udGV4dExvY2F0aW9uLFxuXHRcdFx0dHJ1ZVxuXHRcdCk7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0YW5ub3RhdGlvbjogdGFyZ2V0LnRhcmdldCxcblx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IG5ldyBDb252ZXJ0ZXJDb250ZXh0KFxuXHRcdFx0XHR0aGlzLmNvbnZlcnRlZFR5cGVzLFxuXHRcdFx0XHR0aGlzLm1hbmlmZXN0U2V0dGluZ3MsXG5cdFx0XHRcdHRoaXMuZGlhZ25vc3RpY3MsXG5cdFx0XHRcdHRoaXMubWVyZ2VGbixcblx0XHRcdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aFxuXHRcdFx0KVxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIHR5cGUgb2YgdGVtcGxhdGUgd2UncmUgd29ya2luZyBvbiAoZS5nLiBMaXN0UmVwb3J0IC8gT2JqZWN0UGFnZSAvIC4uLikuXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHRlbnBsYXRlIHR5cGVcblx0ICovXG5cdGdldFRlbXBsYXRlVHlwZSgpOiBUZW1wbGF0ZVR5cGUge1xuXHRcdHJldHVybiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRUZW1wbGF0ZVR5cGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgY29udmVydGVkIHR5cGVzLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBjb252ZXJ0ZWQgdHlwZXNcblx0ICovXG5cdGdldENvbnZlcnRlZFR5cGVzKCk6IENvbnZlcnRlZE1ldGFkYXRhIHtcblx0XHRyZXR1cm4gdGhpcy5jb252ZXJ0ZWRUeXBlcztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSBhIHJlbGF0aXZlIGFubm90YXRpb24gcGF0aCBiZXR3ZWVuIGFuIGFubm90YXRpb24gcGF0aCBhbmQgYW4gZW50aXR5IHR5cGUuXG5cdCAqXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uUGF0aFxuXHQgKiBAcGFyYW0gZW50aXR5VHlwZVxuXHQgKiBAcmV0dXJucyBUaGUgcmVsYXRpdmUgYW5udG90YXRpb24gcGF0aC5cblx0ICovXG5cdGdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgoYW5ub3RhdGlvblBhdGg6IHN0cmluZywgZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGFubm90YXRpb25QYXRoLnJlcGxhY2UoZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsIFwiXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRyYW5zZm9ybSBhbiBlbnRpdHlUeXBlIGJhc2VkIHBhdGggdG8gYW4gZW50aXR5U2V0IGJhc2VkIG9uZSAodWk1IHRlbXBsYXRpbmcgZ2VuZXJhbGx5IGV4cGVjdCBhbiBlbnRpdHlTZXRCYXNlZFBhdGgpLlxuXHQgKlxuXHQgKiBAcGFyYW0gYW5ub3RhdGlvblBhdGhcblx0ICogQHJldHVybnMgVGhlIEVudGl0eVNldCBiYXNlZCBhbm5vdGF0aW9uIHBhdGhcblx0ICovXG5cdGdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoYW5ub3RhdGlvblBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKCFhbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0cmV0dXJuIGFubm90YXRpb25QYXRoO1xuXHRcdH1cblx0XHRjb25zdCBlbnRpdHlUeXBlRlFOID0gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVR5cGUuZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRcdGlmIChcblx0XHRcdHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQgfHxcblx0XHRcdCgodGhpcy5iYXNlQ29udGV4dFBhdGguc3RhcnRzV2l0aChcIi9cIikgJiYgdGhpcy5iYXNlQ29udGV4dFBhdGgubWF0Y2goL1xcLy9nKSkgfHwgW10pLmxlbmd0aCA+IDFcblx0XHQpIHtcblx0XHRcdGxldCByZXBsYWNlZEFubm90YXRpb25QYXRoID0gYW5ub3RhdGlvblBhdGgucmVwbGFjZShlbnRpdHlUeXBlRlFOLCBcIi9cIik7XG5cdFx0XHRpZiAocmVwbGFjZWRBbm5vdGF0aW9uUGF0aC5sZW5ndGggPiAyICYmIHJlcGxhY2VkQW5ub3RhdGlvblBhdGhbMF0gPT09IFwiL1wiICYmIHJlcGxhY2VkQW5ub3RhdGlvblBhdGhbMV0gPT09IFwiL1wiKSB7XG5cdFx0XHRcdHJlcGxhY2VkQW5ub3RhdGlvblBhdGggPSByZXBsYWNlZEFubm90YXRpb25QYXRoLnN1YnN0cigxKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzLmJhc2VDb250ZXh0UGF0aCArIChyZXBsYWNlZEFubm90YXRpb25QYXRoLnN0YXJ0c1dpdGgoXCIvXCIpID8gcmVwbGFjZWRBbm5vdGF0aW9uUGF0aCA6IGAvJHtyZXBsYWNlZEFubm90YXRpb25QYXRofWApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gYC8ke2Fubm90YXRpb25QYXRofWA7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSBtYW5pZmVzdCB3cmFwcGVyIGZvciB0aGUgY3VycmVudCBjb250ZXh0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBtYW5pZmVzdCB3cmFwcGVyXG5cdCAqL1xuXHRnZXRNYW5pZmVzdFdyYXBwZXIoKTogTWFuaWZlc3RXcmFwcGVyIHtcblx0XHRyZXR1cm4gdGhpcy5tYW5pZmVzdFdyYXBwZXI7XG5cdH1cblxuXHRnZXREaWFnbm9zdGljcygpOiBJRGlhZ25vc3RpY3Mge1xuXHRcdHJldHVybiB0aGlzLmRpYWdub3N0aWNzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSB0YXJnZXQgZnJvbSBhbiBhYnNvbHV0ZSBwYXRoLlxuXHQgKlxuXHQgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB3ZSB3YW50IHRvIGdldCB0aGUgdGFyZ2V0XG5cdCAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoXG5cdCAqL1xuXHRyZXNvbHZlQWJzb2x1dGVQYXRoPFQ+KHBhdGg6IHN0cmluZyk6IFJlc29sdXRpb25UYXJnZXQ8VD4ge1xuXHRcdHJldHVybiB0aGlzLmNvbnZlcnRlZFR5cGVzLnJlc29sdmVQYXRoKHBhdGgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIGEgbmV3IGNvbnZlcnRlciBjb250ZXh0LCBzY29wZWQgZm9yIGEgZGlmZmVyZW50IGNvbnRleHQgcGF0aC5cblx0ICpcblx0ICogQHBhcmFtIGNvbnRleHRQYXRoIFRoZSBwYXRoIHdlIHdhbnQgdG8gb3JjaGVzdHJhdGUgdGhlIGNvbnZlcnRlciBjb250ZXh0IGFyb3VuZFxuXHQgKiBAcmV0dXJucyBUaGUgY29udmVydGVkIGNvbnRleHQgZm9yIHRoZSBzdWIgcGF0aFxuXHQgKi9cblx0Z2V0Q29udmVydGVyQ29udGV4dEZvcjxUPihjb250ZXh0UGF0aDogc3RyaW5nKTogQ29udmVydGVyQ29udGV4dCB7XG5cdFx0Y29uc3QgcmVzb2x2ZWRNZXRhUGF0aDogUmVzb2x1dGlvblRhcmdldDxUPiA9IHRoaXMuY29udmVydGVkVHlwZXMucmVzb2x2ZVBhdGgoY29udGV4dFBhdGgpO1xuXHRcdGNvbnN0IHRhcmdldFBhdGggPSBnZXREYXRhTW9kZWxQYXRoRm9yRW50aXR5U2V0KHJlc29sdmVkTWV0YVBhdGgsIHRoaXMuY29udmVydGVkVHlwZXMpO1xuXHRcdHJldHVybiBuZXcgQ29udmVydGVyQ29udGV4dCh0aGlzLmNvbnZlcnRlZFR5cGVzLCB0aGlzLm1hbmlmZXN0U2V0dGluZ3MsIHRoaXMuZGlhZ25vc3RpY3MsIHRoaXMubWVyZ2VGbiwgdGFyZ2V0UGF0aCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGFsbCBhbm5vdGF0aW9ucyBvZiBhIGdpdmVuIHRlcm0gYW5kIHZvY2FidWxhcnkgb24gYW4gZW50aXR5IHR5cGVcblx0ICogKG9yIG9uIHRoZSBjdXJyZW50IGVudGl0eSB0eXBlIGlmIGVudGl0eVR5cGUgaXNuJ3Qgc3BlY2lmaWVkKS5cblx0ICpcblx0ICogQHBhcmFtIHZvY2FidWxhcnlOYW1lXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uVGVybVxuXHQgKiBAcGFyYW0gW2Fubm90YXRpb25Tb3VyY2VzXVxuXHQgKiBAcmV0dXJucyBBbGwgdGhlIGFubm90YXRpb24gZm9yIGEgc3BlY2lmaWMgdGVybSBhbmQgdm9jYWJ1bGFyeSBmcm9tIGFuIGVudGl0eSB0eXBlXG5cdCAqL1xuXHRnZXRBbm5vdGF0aW9uc0J5VGVybShcblx0XHR2b2NhYnVsYXJ5TmFtZToga2V5b2YgRW50aXR5VHlwZUFubm90YXRpb25zLFxuXHRcdGFubm90YXRpb25UZXJtOiBzdHJpbmcsXG5cdFx0YW5ub3RhdGlvblNvdXJjZXM6IChTZXJ2aWNlT2JqZWN0IHwgdW5kZWZpbmVkKVtdID0gW3RoaXMuZ2V0RW50aXR5VHlwZSgpXVxuXHQpOiBBbm5vdGF0aW9uVGVybTxhbnk+W10ge1xuXHRcdGxldCBvdXRBbm5vdGF0aW9uczogQW5ub3RhdGlvblRlcm08YW55PltdID0gW107XG5cdFx0YW5ub3RhdGlvblNvdXJjZXMuZm9yRWFjaCgoYW5ub3RhdGlvblNvdXJjZSkgPT4ge1xuXHRcdFx0aWYgKGFubm90YXRpb25Tb3VyY2UpIHtcblx0XHRcdFx0Y29uc3QgYW5ub3RhdGlvbnM6IFJlY29yZDxzdHJpbmcsIEFubm90YXRpb25UZXJtPGFueT4+ID0gYW5ub3RhdGlvblNvdXJjZT8uYW5ub3RhdGlvbnNbdm9jYWJ1bGFyeU5hbWVdIHx8IHt9O1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvbnMpIHtcblx0XHRcdFx0XHRvdXRBbm5vdGF0aW9ucyA9IE9iamVjdC5rZXlzKGFubm90YXRpb25zKVxuXHRcdFx0XHRcdFx0LmZpbHRlcigoYW5ub3RhdGlvbikgPT4gYW5ub3RhdGlvbnNbYW5ub3RhdGlvbl0udGVybSA9PT0gYW5ub3RhdGlvblRlcm0pXG5cdFx0XHRcdFx0XHQucmVkdWNlKChwcmV2aW91c1ZhbHVlOiBBbm5vdGF0aW9uVGVybTxhbnk+W10sIGtleTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHByZXZpb3VzVmFsdWUucHVzaChhbm5vdGF0aW9uc1trZXldKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHByZXZpb3VzVmFsdWU7XG5cdFx0XHRcdFx0XHR9LCBvdXRBbm5vdGF0aW9ucyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gb3V0QW5ub3RhdGlvbnM7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSByZWxhdGl2ZSBtb2RlbCBwYXRoIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbnRleHQgcGF0aC5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIHJlbGF0aXZlIG1vZGVsIHBhdGggb3IgdW5kZWZpbmVkIGlmIHRoZSBwYXRoIGlzIG5vdCByZXNvbHZlYWJsZVxuXHQgKi9cblx0Z2V0UmVsYXRpdmVNb2RlbFBhdGhGdW5jdGlvbigpOiBGdW5jdGlvbiB7XG5cdFx0Y29uc3QgdGFyZ2V0RGF0YU1vZGVsUGF0aCA9IHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aDtcblx0XHRyZXR1cm4gZnVuY3Rpb24gKHNQYXRoOiBzdHJpbmcpIHtcblx0XHRcdGNvbnN0IGVuaGFuY2VkUGF0aCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoKHRhcmdldERhdGFNb2RlbFBhdGgsIHNQYXRoKTtcblx0XHRcdHJldHVybiBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoKGVuaGFuY2VkUGF0aCwgdHJ1ZSk7XG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgdGhlIGNvbnZlcnRlciBjb250ZXh0IG5lY2Vzc2FyeSBmb3IgYSBtYWNybyBiYXNlZCBvbiBhIG1ldGFtb2RlbCBjb250ZXh0LlxuXHQgKlxuXHQgKiBAcGFyYW0gc0VudGl0eVNldE5hbWVcblx0ICogQHBhcmFtIG9NZXRhTW9kZWxDb250ZXh0XG5cdCAqIEBwYXJhbSBkaWFnbm9zdGljc1xuXHQgKiBAcGFyYW0gbWVyZ2VGblxuXHQgKiBAcGFyYW0gdGFyZ2V0RGF0YU1vZGVsUGF0aFxuXHQgKiBAcGFyYW0gbWFuaWZlc3RTZXR0aW5nc1xuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBjb252ZXJ0ZXIgY29udGV4dFxuXHQgKi9cblx0c3RhdGljIGNyZWF0ZUNvbnZlcnRlckNvbnRleHRGb3JNYWNybyhcblx0XHRzRW50aXR5U2V0TmFtZTogc3RyaW5nLFxuXHRcdG9NZXRhTW9kZWxDb250ZXh0OiBDb250ZXh0IHwgT0RhdGFNZXRhTW9kZWwsXG5cdFx0ZGlhZ25vc3RpY3M6IElEaWFnbm9zdGljcyxcblx0XHRtZXJnZUZuOiBGdW5jdGlvbixcblx0XHR0YXJnZXREYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoIHwgdW5kZWZpbmVkLFxuXHRcdG1hbmlmZXN0U2V0dGluZ3M6IEJhc2VNYW5pZmVzdFNldHRpbmdzID0ge30gYXMgQmFzZU1hbmlmZXN0U2V0dGluZ3Ncblx0KTogQ29udmVydGVyQ29udGV4dCB7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwgPSBvTWV0YU1vZGVsQ29udGV4dC5pc0EoXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFNZXRhTW9kZWxcIilcblx0XHRcdD8gKG9NZXRhTW9kZWxDb250ZXh0IGFzIE9EYXRhTWV0YU1vZGVsKVxuXHRcdFx0OiAoKG9NZXRhTW9kZWxDb250ZXh0IGFzIENvbnRleHQpLmdldE1vZGVsKCkgYXMgdW5rbm93biBhcyBPRGF0YU1ldGFNb2RlbCk7XG5cdFx0Y29uc3Qgb0NvbnZlcnRlZE1ldGFkYXRhID0gY29udmVydFR5cGVzKG9NZXRhTW9kZWwpO1xuXHRcdGxldCB0YXJnZXRFbnRpdHlTZXQ6IFNpbmdsZXRvbiB8IEVudGl0eVNldCA9IG9Db252ZXJ0ZWRNZXRhZGF0YS5lbnRpdHlTZXRzLmZpbmQoXG5cdFx0XHQoZW50aXR5U2V0KSA9PiBlbnRpdHlTZXQubmFtZSA9PT0gc0VudGl0eVNldE5hbWVcblx0XHQpIGFzIEVudGl0eVNldDtcblx0XHRpZiAoIXRhcmdldEVudGl0eVNldCkge1xuXHRcdFx0dGFyZ2V0RW50aXR5U2V0ID0gb0NvbnZlcnRlZE1ldGFkYXRhLnNpbmdsZXRvbnMuZmluZCgoZW50aXR5U2V0KSA9PiBlbnRpdHlTZXQubmFtZSA9PT0gc0VudGl0eVNldE5hbWUpIGFzIFNpbmdsZXRvbjtcblx0XHR9XG5cdFx0aWYgKCF0YXJnZXREYXRhTW9kZWxQYXRoIHx8IHRhcmdldEVudGl0eVNldCAhPT0gdGFyZ2V0RGF0YU1vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldCkge1xuXHRcdFx0dGFyZ2V0RGF0YU1vZGVsUGF0aCA9IHtcblx0XHRcdFx0c3RhcnRpbmdFbnRpdHlTZXQ6IHRhcmdldEVudGl0eVNldCxcblx0XHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXM6IFtdLFxuXHRcdFx0XHR0YXJnZXRFbnRpdHlTZXQ6IHRhcmdldEVudGl0eVNldCxcblx0XHRcdFx0dGFyZ2V0RW50aXR5VHlwZTogdGFyZ2V0RW50aXR5U2V0LmVudGl0eVR5cGUsXG5cdFx0XHRcdHRhcmdldE9iamVjdDogdGFyZ2V0RW50aXR5U2V0LFxuXHRcdFx0XHRjb252ZXJ0ZWRUeXBlczogb0NvbnZlcnRlZE1ldGFkYXRhXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRyZXR1cm4gbmV3IENvbnZlcnRlckNvbnRleHQob0NvbnZlcnRlZE1ldGFkYXRhLCBtYW5pZmVzdFNldHRpbmdzLCBkaWFnbm9zdGljcywgbWVyZ2VGbiwgdGFyZ2V0RGF0YU1vZGVsUGF0aCk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29udmVydGVyQ29udGV4dDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7OztFQTRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxNQUFNQSxnQkFBZ0IsR0FBRyxVQUFVQyxlQUE2QyxFQUEwQztJQUN6SCxPQUFPLE9BQU9BLGVBQWUsS0FBSyxRQUFRO0VBQzNDLENBQUM7RUFFRCxNQUFNQyw0QkFBNEIsR0FBRyxVQUNwQ0MsZ0JBQXVDLEVBQ3ZDQyxjQUFpQyxFQUNYO0lBQ3RCLElBQUlDLGFBQW9DO0lBQ3hDLElBQUlDLGdCQUF1QztJQUMzQyxJQUFJQyxpQkFBd0M7SUFDNUMsSUFBSUMsaUJBQXlDO0lBQzdDLElBQUlDLGNBQXdCLEdBQUcsRUFBRTtJQUNq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
@@ -2,5 +2,5 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/ManifestWrapper","sap/fe/core/converters/MetaModelConverter","sap/fe/core/templating/DataModelPathHelper"],function(t,e,n){"use strict";var i=n.getTargetObjectPath;var a=n.getContextRelativeTargetObjectPath;var r=n.enhanceDataModelPath;var o=e.getInvolvedDataModelObjectFromPath;var s=e.convertTypes;const u=function(t){return typeof t==="object"};function h(t){return t&&t.hasOwnProperty("_type")}const l=function(t,e){let n;let i;let a;let r;let o=[];const s=[];t.objectPath.forEach(t=>{var e;if(h(t)){switch(t._type){case"NavigationProperty":o.push(t.name);s.push(t);r=t.targetType;if(a&&a.navigationPropertyBinding.hasOwnProperty(o.join("/"))){i=a.navigationPropertyBinding[o.join("/")];a=i;o=[]}else{i=undefined}break;case"EntitySet":if(n===undefined){n=t}i=t;a=i;r=(e=i)===null||e===void 0?void 0:e.entityType;break;default:break}}});const u={startingEntitySet:n,targetEntityType:r,targetEntitySet:i,navigationProperties:s,contextLocation:undefined,targetObject:t.target,convertedTypes:e};u.contextLocation=u;return u};let c=function(){function e(e,n,a,r,o){this.convertedTypes=e;this.manifestSettings=n;this.diagnostics=a;this.mergeFn=r;this.targetDataModelPath=o;this.manifestWrapper=new t(this.manifestSettings,r);this.baseContextPath=i(this.targetDataModelPath)}var n=e.prototype;n._getEntityTypeFromFullyQualifiedName=function t(e){return this.convertedTypes.entityTypes.find(t=>{if(e.startsWith(t.fullyQualifiedName)){const n=e.replace(t.fullyQualifiedName,"");return n.startsWith("/")||n.startsWith("@")}return false})};n.getAnnotationEntityType=function t(e){if(e){const t=e.fullyQualifiedName;const n=this._getEntityTypeFromFullyQualifiedName(t);if(!n){throw new Error(`Cannot find Entity Type for ${e.fullyQualifiedName}`)}return n}else{return this.targetDataModelPath.targetEntityType}};n.getManifestControlConfiguration=function t(e){if(u(e)){return this.manifestWrapper.getControlConfiguration(e.fullyQualifiedName.replace(this.targetDataModelPath.targetEntityType.fullyQualifiedName,""))}const n=this.manifestWrapper.hasMultipleEntitySets()&&this.baseContextPath!==`/${this.manifestWrapper.getEntitySet()}`?`${this.baseContextPath}/${e}`:e;return this.manifestWrapper.getControlConfiguration(n)};n.getAbsoluteAnnotationPath=function t(e){if(!e){return e}if(e[0]==="/"){return e}return`${this.baseContextPath}/${e}`};n.getEntitySet=function t(){return this.targetDataModelPath.targetEntitySet};n.getContextPath=function t(){return this.baseContextPath};n.getDataModelObjectPath=function t(){return this.targetDataModelPath};n.getEntityContainer=function t(){return this.convertedTypes.entityContainer};n.getEntityType=function t(){return this.targetDataModelPath.targetEntityType};n.getParameterEntityType=function t(){var e,n;const i=this.targetDataModelPath.startingEntitySet.entityType;const a=!!((e=i.annotations)!==null&&e!==void 0&&(n=e.Common)!==null&&n!==void 0&&n.ResultContext);return a&&i};n.getEntityTypeAnnotation=function t(n){if(!n.includes("@")){throw new Error(`Not an annotation path: '${n}'`)}const i=n.startsWith("/");let a;if(i){a=n}else{const t=this.getContextPath().split("@",1)[0];a=t.endsWith("/")?t+n:`${t}/${n}`}const r=this.resolveAbsolutePath(a);const s=o({target:r.target,visitedObjects:r.objectPath},this.convertedTypes,i?undefined:this.targetDataModelPath.contextLocation,true);return{annotation:r.target,converterContext:new e(this.convertedTypes,this.manifestSettings,this.diagnostics,this.mergeFn,s)}};n.getTemplateType=function t(){return this.manifestWrapper.getTemplateType()};n.getConvertedTypes=function t(){return this.convertedTypes};n.getRelativeAnnotationPath=function t(e,n){return e.replace(n.fullyQualifiedName,"")};n.getEntitySetBasedAnnotationPath=function t(e){if(!e){return e}const n=this.targetDataModelPath.targetEntityType.fullyQualifiedName;if(this.targetDataModelPath.targetEntitySet||(this.baseContextPath.startsWith("/")&&this.baseContextPath.match(/\//g)||[]).length>1){let t=e.replace(n,"/");if(t.length>2&&t[0]==="/"&&t[1]==="/"){t=t.substr(1)}return this.baseContextPath+(t.startsWith("/")?t:`/${t}`)}else{return`/${e}`}};n.getManifestWrapper=function t(){return this.manifestWrapper};n.getDiagnostics=function t(){return this.diagnostics};n.resolveAbsolutePath=function t(e){return this.convertedTypes.resolvePath(e)};n.getConverterContextFor=function t(n){const i=this.convertedTypes.resolvePath(n);const a=l(i,this.convertedTypes);return new e(this.convertedTypes,this.manifestSettings,this.diagnostics,this.mergeFn,a)};n.getAnnotationsByTerm=function t(e,n){let i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:[this.getEntityType()];let a=[];i.forEach(t=>{if(t){const i=(t===null||t===void 0?void 0:t.annotations[e])||{};if(i){a=Object.keys(i).filter(t=>i[t].term===n).reduce((t,e)=>{t.push(i[e]);return t},a)}}});return a};n.getRelativeModelPathFunction=function t(){const e=this.targetDataModelPath;return function(t){const n=r(e,t);return a(n,true)}};e.createConverterContextForMacro=function t(n,i,a,r,o){let u=arguments.length>5&&arguments[5]!==undefined?arguments[5]:{};const h=i.isA("sap.ui.model.odata.v4.ODataMetaModel")?i:i.getModel();const l=s(h);let c=l.entitySets.find(t=>t.name===n);if(!c){c=l.singletons.find(t=>t.name===n)}if(!o||c!==o.startingEntitySet){o={startingEntitySet:c,navigationProperties:[],targetEntitySet:c,targetEntityType:c.entityType,targetObject:c,convertedTypes:l}}return new e(l,u,a,r,o)};return e}();return c},false);
5
+ sap.ui.define(["sap/fe/core/converters/ManifestWrapper","sap/fe/core/converters/MetaModelConverter","sap/fe/core/helpers/TypeGuards","sap/fe/core/templating/DataModelPathHelper"],function(t,e,n,i){"use strict";var a=i.getTargetObjectPath;var r=i.getContextRelativeTargetObjectPath;var o=i.enhanceDataModelPath;var s=n.isServiceObject;var u=e.getInvolvedDataModelObjectFromPath;var h=e.convertTypes;const l=function(t){return typeof t==="object"};const c=function(t,e){let n;let i;let a;let r;let o=[];const u=[];t.objectPath.forEach(t=>{var e;if(s(t)){switch(t._type){case"NavigationProperty":o.push(t.name);u.push(t);r=t.targetType;if(a&&a.navigationPropertyBinding.hasOwnProperty(o.join("/"))){i=a.navigationPropertyBinding[o.join("/")];a=i;o=[]}else{i=undefined}break;case"EntitySet":if(n===undefined){n=t}i=t;a=i;r=(e=i)===null||e===void 0?void 0:e.entityType;break;default:break}}});const h={startingEntitySet:n,targetEntityType:r,targetEntitySet:i,navigationProperties:u,contextLocation:undefined,targetObject:t.target,convertedTypes:e};h.contextLocation=h;return h};let f=function(){function e(e,n,i,r,o){this.convertedTypes=e;this.manifestSettings=n;this.diagnostics=i;this.mergeFn=r;this.targetDataModelPath=o;this.manifestWrapper=new t(this.manifestSettings,r);this.baseContextPath=a(this.targetDataModelPath)}var n=e.prototype;n._getEntityTypeFromFullyQualifiedName=function t(e){return this.convertedTypes.entityTypes.find(t=>{if(e.startsWith(t.fullyQualifiedName)){const n=e.replace(t.fullyQualifiedName,"");return n.startsWith("/")||n.startsWith("@")}return false})};n.getAnnotationEntityType=function t(e){if(e){const t=e.fullyQualifiedName;const n=this._getEntityTypeFromFullyQualifiedName(t);if(!n){throw new Error(`Cannot find Entity Type for ${e.fullyQualifiedName}`)}return n}else{return this.targetDataModelPath.targetEntityType}};n.getManifestControlConfiguration=function t(e){if(l(e)){return this.manifestWrapper.getControlConfiguration(e.fullyQualifiedName.replace(this.targetDataModelPath.targetEntityType.fullyQualifiedName,""))}const n=this.manifestWrapper.hasMultipleEntitySets()&&this.baseContextPath!==`/${this.manifestWrapper.getEntitySet()}`?`${this.baseContextPath}/${e}`:e;return this.manifestWrapper.getControlConfiguration(n)};n.getAbsoluteAnnotationPath=function t(e){if(!e){return e}if(e[0]==="/"){return e}return`${this.baseContextPath}/${e}`};n.getEntitySet=function t(){return this.targetDataModelPath.targetEntitySet};n.getContextPath=function t(){return this.baseContextPath};n.getDataModelObjectPath=function t(){return this.targetDataModelPath};n.getEntityContainer=function t(){return this.convertedTypes.entityContainer};n.getEntityType=function t(){return this.targetDataModelPath.targetEntityType};n.getParameterEntityType=function t(){var e,n;const i=this.targetDataModelPath.startingEntitySet.entityType;const a=!!((e=i.annotations)!==null&&e!==void 0&&(n=e.Common)!==null&&n!==void 0&&n.ResultContext);return a&&i};n.getEntityTypeAnnotation=function t(n){if(!n.includes("@")){throw new Error(`Not an annotation path: '${n}'`)}const i=n.startsWith("/");let a;if(i){a=n}else{const t=this.getContextPath().split("@",1)[0];a=t.endsWith("/")?t+n:`${t}/${n}`}const r=this.resolveAbsolutePath(a);const o=u({target:r.target,visitedObjects:r.objectPath},this.convertedTypes,i?undefined:this.targetDataModelPath.contextLocation,true);return{annotation:r.target,converterContext:new e(this.convertedTypes,this.manifestSettings,this.diagnostics,this.mergeFn,o)}};n.getTemplateType=function t(){return this.manifestWrapper.getTemplateType()};n.getConvertedTypes=function t(){return this.convertedTypes};n.getRelativeAnnotationPath=function t(e,n){return e.replace(n.fullyQualifiedName,"")};n.getEntitySetBasedAnnotationPath=function t(e){if(!e){return e}const n=this.targetDataModelPath.targetEntityType.fullyQualifiedName;if(this.targetDataModelPath.targetEntitySet||(this.baseContextPath.startsWith("/")&&this.baseContextPath.match(/\//g)||[]).length>1){let t=e.replace(n,"/");if(t.length>2&&t[0]==="/"&&t[1]==="/"){t=t.substr(1)}return this.baseContextPath+(t.startsWith("/")?t:`/${t}`)}else{return`/${e}`}};n.getManifestWrapper=function t(){return this.manifestWrapper};n.getDiagnostics=function t(){return this.diagnostics};n.resolveAbsolutePath=function t(e){return this.convertedTypes.resolvePath(e)};n.getConverterContextFor=function t(n){const i=this.convertedTypes.resolvePath(n);const a=c(i,this.convertedTypes);return new e(this.convertedTypes,this.manifestSettings,this.diagnostics,this.mergeFn,a)};n.getAnnotationsByTerm=function t(e,n){let i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:[this.getEntityType()];let a=[];i.forEach(t=>{if(t){const i=(t===null||t===void 0?void 0:t.annotations[e])||{};if(i){a=Object.keys(i).filter(t=>i[t].term===n).reduce((t,e)=>{t.push(i[e]);return t},a)}}});return a};n.getRelativeModelPathFunction=function t(){const e=this.targetDataModelPath;return function(t){const n=o(e,t);return r(n,true)}};e.createConverterContextForMacro=function t(n,i,a,r,o){let s=arguments.length>5&&arguments[5]!==undefined?arguments[5]:{};const u=i.isA("sap.ui.model.odata.v4.ODataMetaModel")?i:i.getModel();const l=h(u);let c=l.entitySets.find(t=>t.name===n);if(!c){c=l.singletons.find(t=>t.name===n)}if(!o||c!==o.startingEntitySet){o={startingEntitySet:c,navigationProperties:[],targetEntitySet:c,targetEntityType:c.entityType,targetObject:c,convertedTypes:l}}return new e(l,s,a,r,o)};return e}();return f},false);
6
6
  //# sourceMappingURL=ConverterContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConverterContext.js","names":["sap","ui","define","ManifestWrapper","MetaModelConverter","DataModelPathHelper","getTargetObjectPath","getContextRelativeTargetObjectPath","enhanceDataModelPath","getInvolvedDataModelObjectFromPath","convertTypes","isAnnotationTerm","vAnnotationPath","isServiceObject","objectPart","hasOwnProperty","getDataModelPathForEntitySet","resolvedMetaPath","convertedTypes","rootEntitySet","currentEntitySet","previousEntitySet","currentEntityType","navigatedPaths","navigationProperties","objectPath","forEach","_currentEntitySet","_type","push","name","targetType","navigationPropertyBinding","join","undefined","entityType","dataModelPath","startingEntitySet","targetEntityType","targetEntitySet","contextLocation","targetObject","target","ConverterContext","manifestSettings","diagnostics","mergeFn","targetDataModelPath","this","manifestWrapper","baseContextPath","_proto","prototype","_getEntityTypeFromFullyQualifiedName","fullyQualifiedName","entityTypes","find","startsWith","replaceAnnotation","replace","getAnnotationEntityType","annotation","annotationPath","Error","getManifestControlConfiguration","getControlConfiguration","sAnnotationPath","hasMultipleEntitySets","getEntitySet","getAbsoluteAnnotationPath","getContextPath","getDataModelObjectPath","getEntityContainer","entityContainer","getEntityType","getParameterEntityType","_parameterEntityType$","_parameterEntityType$2","parameterEntityType","isParameterized","annotations","Common","ResultContext","getEntityTypeAnnotation","includes","isAbsolute","path","base","split","endsWith","resolveAbsolutePath","dataModelObjectPath","visitedObjects","converterContext","getTemplateType","getConvertedTypes","getRelativeAnnotationPath","getEntitySetBasedAnnotationPath","entityTypeFQN","match","length","replacedAnnotationPath","substr","getManifestWrapper","getDiagnostics","resolvePath","getConverterContextFor","contextPath","targetPath","getAnnotationsByTerm","vocabularyName","annotationTerm","annotationSources","arguments","outAnnotations","annotationSource","Object","keys","filter","term","reduce","previousValue","key","getRelativeModelPathFunction","sPath","enhancedPath","createConverterContextForMacro","sEntitySetName","oMetaModelContext","oMetaModel","isA","getModel","oConvertedMetadata","entitySets","entitySet","singletons"],"sources":["ConverterContext-dbg.js"],"mappings":"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"}
1
+ {"version":3,"file":"ConverterContext.js","names":["sap","ui","define","ManifestWrapper","MetaModelConverter","TypeGuards","DataModelPathHelper","getTargetObjectPath","getContextRelativeTargetObjectPath","enhanceDataModelPath","isServiceObject","getInvolvedDataModelObjectFromPath","convertTypes","isAnnotationTerm","vAnnotationPath","getDataModelPathForEntitySet","resolvedMetaPath","convertedTypes","rootEntitySet","currentEntitySet","previousEntitySet","currentEntityType","navigatedPaths","navigationProperties","objectPath","forEach","objectPart","_currentEntitySet","_type","push","name","targetType","navigationPropertyBinding","hasOwnProperty","join","undefined","entityType","dataModelPath","startingEntitySet","targetEntityType","targetEntitySet","contextLocation","targetObject","target","ConverterContext","manifestSettings","diagnostics","mergeFn","targetDataModelPath","this","manifestWrapper","baseContextPath","_proto","prototype","_getEntityTypeFromFullyQualifiedName","fullyQualifiedName","entityTypes","find","startsWith","replaceAnnotation","replace","getAnnotationEntityType","annotation","annotationPath","Error","getManifestControlConfiguration","getControlConfiguration","sAnnotationPath","hasMultipleEntitySets","getEntitySet","getAbsoluteAnnotationPath","getContextPath","getDataModelObjectPath","getEntityContainer","entityContainer","getEntityType","getParameterEntityType","_parameterEntityType$","_parameterEntityType$2","parameterEntityType","isParameterized","annotations","Common","ResultContext","getEntityTypeAnnotation","includes","isAbsolute","path","base","split","endsWith","resolveAbsolutePath","dataModelObjectPath","visitedObjects","converterContext","getTemplateType","getConvertedTypes","getRelativeAnnotationPath","getEntitySetBasedAnnotationPath","entityTypeFQN","match","length","replacedAnnotationPath","substr","getManifestWrapper","getDiagnostics","resolvePath","getConverterContextFor","contextPath","targetPath","getAnnotationsByTerm","vocabularyName","annotationTerm","annotationSources","arguments","outAnnotations","annotationSource","Object","keys","filter","term","reduce","previousValue","key","getRelativeModelPathFunction","sPath","enhancedPath","createConverterContextForMacro","sEntitySetName","oMetaModelContext","oMetaModel","isA","getModel","oConvertedMetadata","entitySets","entitySet","singletons"],"sources":["ConverterContext-dbg.js"],"mappings":"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"}
@@ -15,6 +15,7 @@ import type { BaseManifestSettings, TemplateType } from "sap/fe/core/converters/
15
15
  import ManifestWrapper from "sap/fe/core/converters/ManifestWrapper";
16
16
  import { convertTypes, getInvolvedDataModelObjectFromPath } from "sap/fe/core/converters/MetaModelConverter";
17
17
  import type { IDiagnostics } from "sap/fe/core/converters/TemplateConverter";
18
+ import { isServiceObject } from "sap/fe/core/helpers/TypeGuards";
18
19
  import type { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
19
20
  import { enhanceDataModelPath, getContextRelativeTargetObjectPath, getTargetObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
20
21
  import Context from "sap/ui/model/Context";
@@ -35,10 +36,6 @@ const isAnnotationTerm = function (vAnnotationPath: string | AnnotationTerm<any>
35
36
  return typeof vAnnotationPath === "object";
36
37
  };
37
38
 
38
- function isServiceObject(objectPart: ServiceObjectAndAnnotation): objectPart is ServiceObject {
39
- return objectPart && objectPart.hasOwnProperty("_type");
40
- }
41
-
42
39
  const getDataModelPathForEntitySet = function (
43
40
  resolvedMetaPath: ResolutionTarget<any>,
44
41
  convertedTypes: ConvertedMetadata
@@ -264,7 +261,7 @@ class ConverterContext {
264
261
  const target: ResolutionTarget<any> = this.resolveAbsolutePath(path);
265
262
 
266
263
  const dataModelObjectPath = getInvolvedDataModelObjectFromPath(
267
- { target: target.target, visitedObjects: target.objectPath as ServiceObject[] },
264
+ { target: target.target, visitedObjects: target.objectPath },
268
265
  this.convertedTypes,
269
266
  isAbsolute ? undefined : this.targetDataModelPath.contextLocation,
270
267
  true
@@ -78,4 +78,4 @@ sap.ui.define([], function () {
78
78
  _exports.HorizontalAlign = HorizontalAlign;
79
79
  return _exports;
80
80
  }, false);
81
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZW1wbGF0ZVR5cGUiLCJBY3Rpb25UeXBlIiwiU2VsZWN0aW9uTW9kZSIsIlZhcmlhbnRNYW5hZ2VtZW50VHlwZSIsIkNyZWF0aW9uTW9kZSIsIlZpc3VhbGl6YXRpb25UeXBlIiwiSW1wb3J0YW5jZSIsIkhvcml6b250YWxBbGlnbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTWFuaWZlc3RTZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZvcm1FbGVtZW50VHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9Gb3JtXCI7XG5pbXBvcnQgdHlwZSB7IEZsZXhTZXR0aW5ncywgSGVhZGVyRmFjZXRUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvT2JqZWN0UGFnZS9IZWFkZXJGYWNldFwiO1xuaW1wb3J0IHR5cGUgeyBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgdHlwZSB7IEdyaWRUYWJsZVJvd0NvdW50TW9kZSwgVGFibGVUeXBlIH0gZnJvbSBcIi4vY29udHJvbHMvQ29tbW9uL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IENvbmZpZ3VyYWJsZVJlY29yZCwgUG9zaXRpb24sIFBvc2l0aW9uYWJsZSB9IGZyb20gXCIuL2hlbHBlcnMvQ29uZmlndXJhYmxlT2JqZWN0XCI7XG5cbi8vIEVOVU1TXG5cbmV4cG9ydCBlbnVtIFRlbXBsYXRlVHlwZSB7XG5cdExpc3RSZXBvcnQgPSBcIkxpc3RSZXBvcnRcIixcblx0T2JqZWN0UGFnZSA9IFwiT2JqZWN0UGFnZVwiLFxuXHRBbmFseXRpY2FsTGlzdFBhZ2UgPSBcIkFuYWx5dGljYWxMaXN0UGFnZVwiXG59XG5cbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xuXHREYXRhRmllbGRGb3JBY3Rpb24gPSBcIkZvckFjdGlvblwiLFxuXHREYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gPSBcIkZvck5hdmlnYXRpb25cIixcblx0RGVmYXVsdCA9IFwiRGVmYXVsdFwiLFxuXHRQcmltYXJ5ID0gXCJQcmltYXJ5XCIsXG5cdFNlY29uZGFyeSA9IFwiU2Vjb25kYXJ5XCIsXG5cdFN3aXRjaFRvQWN0aXZlT2JqZWN0ID0gXCJTd2l0Y2hUb0FjdGl2ZU9iamVjdFwiLFxuXHRTd2l0Y2hUb0RyYWZ0T2JqZWN0ID0gXCJTd2l0Y2hUb0RyYWZ0T2JqZWN0XCIsXG5cdERyYWZ0QWN0aW9ucyA9IFwiRHJhZnRBY3Rpb25zXCIsXG5cdENvbGxhYm9yYXRpb25BdmF0YXJzID0gXCJDb2xsYWJvcmF0aW9uQXZhdGFyc1wiLFxuXHREZWZhdWx0QXBwbHkgPSBcIkRlZmF1bHRBcHBseVwiLFxuXHRNZW51ID0gXCJNZW51XCIsXG5cdFNob3dGb3JtRGV0YWlscyA9IFwiU2hvd0Zvcm1EZXRhaWxzXCIsXG5cdENvcHkgPSBcIkNvcHlcIlxufVxuXG5leHBvcnQgZW51bSBTZWxlY3Rpb25Nb2RlIHtcblx0QXV0byA9IFwiQXV0b1wiLFxuXHROb25lID0gXCJOb25lXCIsXG5cdE11bHRpID0gXCJNdWx0aVwiLFxuXHRTaW5nbGUgPSBcIlNpbmdsZVwiXG59XG5cbmV4cG9ydCBlbnVtIFZhcmlhbnRNYW5hZ2VtZW50VHlwZSB7XG5cdFBhZ2UgPSBcIlBhZ2VcIixcblx0Q29udHJvbCA9IFwiQ29udHJvbFwiLFxuXHROb25lID0gXCJOb25lXCJcbn1cblxuZXhwb3J0IGVudW0gQ3JlYXRpb25Nb2RlIHtcblx0TmV3UGFnZSA9IFwiTmV3UGFnZVwiLFxuXHRJbmxpbmUgPSBcIklubGluZVwiLFxuXHRDcmVhdGlvblJvdyA9IFwiQ3JlYXRpb25Sb3dcIixcblx0SW5saW5lQ3JlYXRpb25Sb3dzID0gXCJJbmxpbmVDcmVhdGlvblJvd3NcIixcblx0RXh0ZXJuYWwgPSBcIkV4dGVybmFsXCJcbn1cblxuZXhwb3J0IGVudW0gVmlzdWFsaXphdGlvblR5cGUge1xuXHRUYWJsZSA9IFwiVGFibGVcIixcblx0Q2hhcnQgPSBcIkNoYXJ0XCJcbn1cblxuLy8gVGFibGVcbmV4cG9ydCB0eXBlIEF2YWlsYWJpbGl0eVR5cGUgPSBcIkRlZmF1bHRcIiB8IFwiQWRhcHRhdGlvblwiIHwgXCJIaWRkZW5cIjtcbmV4cG9ydCBlbnVtIEltcG9ydGFuY2Uge1xuXHRIaWdoID0gXCJIaWdoXCIsXG5cdE1lZGl1bSA9IFwiTWVkaXVtXCIsXG5cdExvdyA9IFwiTG93XCIsXG5cdE5vbmUgPSBcIk5vbmVcIlxufVxuXG5leHBvcnQgZW51bSBIb3Jpem9udGFsQWxpZ24ge1xuXHRFbmQgPSBcIkVuZFwiLFxuXHRCZWdpbiA9IFwiQmVnaW5cIixcblx0Q2VudGVyID0gXCJDZW50ZXJcIlxufVxuXG4vLyBUWVBFU1xuXG5leHBvcnQgdHlwZSBDb250ZW50RGVuc2l0aWVzVHlwZSA9IHtcblx0Y29tcGFjdD86IGJvb2xlYW47XG5cdGNvenk/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTWFuaWZlc3RTaWRlQ29udGVudCA9IHtcblx0dGVtcGxhdGU6IHN0cmluZztcblx0ZXF1YWxTcGxpdD86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2YgYSBLUEkgaW4gdGhlIG1hbmlmZXN0XG4gKi9cbmV4cG9ydCB0eXBlIEtQSUNvbmZpZ3VyYXRpb24gPSB7XG5cdG1vZGVsPzogc3RyaW5nO1xuXHRlbnRpdHlTZXQ6IHN0cmluZztcblx0cXVhbGlmaWVyOiBzdHJpbmc7XG5cdGRldGFpbE5hdmlnYXRpb24/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBDb250cm9sQ29uZmlndXJhdGlvbiA9IHtcblx0W2Fubm90YXRpb25QYXRoOiBzdHJpbmddOiBDb250cm9sTWFuaWZlc3RDb25maWd1cmF0aW9uO1xufSAmIHtcblx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW1cIj86IFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GYWNldHNcIj86IEZhY2V0c0NvbnRyb2xDb25maWd1cmF0aW9uO1xuXHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJGYWNldHNcIj86IEhlYWRlckZhY2V0c0NvbnRyb2xDb25maWd1cmF0aW9uO1xuXHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5TZWxlY3Rpb25GaWVsZHNcIj86IEZpbHRlck1hbmlmZXN0Q29uZmlndXJhdGlvbjtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYgQmFzZU1hbmlmZXN0U2V0dGluZ3NcbiAqL1xuZXhwb3J0IHR5cGUgQmFzZU1hbmlmZXN0U2V0dGluZ3MgPSB7XG5cdGNvbnRlbnQ/OiB7XG5cdFx0aGVhZGVyPzoge1xuXHRcdFx0ZmFjZXRzPzogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+O1xuXHRcdFx0YWN0aW9ucz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEFjdGlvbj47XG5cdFx0fTtcblx0XHRmb290ZXI/OiB7XG5cdFx0XHRhY3Rpb25zPzogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPjtcblx0XHR9O1xuXHR9O1xuXHRjb250cm9sQ29uZmlndXJhdGlvbj86IENvbnRyb2xDb25maWd1cmF0aW9uO1xuXHRjb252ZXJ0ZXJUeXBlOiBUZW1wbGF0ZVR5cGU7XG5cdGVudGl0eVNldDogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uPzoge1xuXHRcdFtuYXZpZ2F0aW9uUGF0aDogc3RyaW5nXTogTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbjtcblx0fTtcblx0dmlld0xldmVsPzogbnVtYmVyO1xuXHRmY2xFbmFibGVkPzogYm9vbGVhbjtcblx0Y29udGV4dFBhdGg/OiBzdHJpbmc7XG5cdHZhcmlhbnRNYW5hZ2VtZW50PzogVmFyaWFudE1hbmFnZW1lbnRUeXBlO1xuXHRkZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aD86IHN0cmluZztcblx0Y29udGVudERlbnNpdGllcz86IENvbnRlbnREZW5zaXRpZXNUeXBlO1xuXHRzaGVsbENvbnRlbnREZW5zaXR5Pzogc3RyaW5nO1xuXHRpc0Rlc2t0b3A/OiBib29sZWFuO1xuXHRpc1Bob25lPzogYm9vbGVhbjtcblx0ZW5hYmxlTGF6eUxvYWRpbmc/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb24gPSB7XG5cdG91dGJvdW5kPzogc3RyaW5nO1xuXHRvdXRib3VuZERldGFpbD86IHtcblx0XHRzZW1hbnRpY09iamVjdDogc3RyaW5nO1xuXHRcdGFjdGlvbjogc3RyaW5nO1xuXHRcdHBhcmFtZXRlcnM/OiBhbnk7XG5cdH07XG5cdHJvdXRlPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBOYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb24gPSB7XG5cdGNyZWF0ZT86IE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uO1xuXHRkZXRhaWw/OiBOYXZpZ2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbjtcblx0ZGlzcGxheT86IHtcblx0XHRvdXRib3VuZD86IHN0cmluZztcblx0XHR0YXJnZXQ/OiBzdHJpbmc7IC8vIGZvciBjb21wYXRpYmlsaXR5XG5cdFx0cm91dGU/OiBzdHJpbmc7XG5cdH07XG59O1xuXG50eXBlIEhlYWRlckZhY2V0c0NvbnRyb2xDb25maWd1cmF0aW9uID0ge1xuXHRmYWNldHM6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEhlYWRlckZhY2V0Pjtcbn07XG5cbnR5cGUgRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb24gPSB7XG5cdHNlY3Rpb25zOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RTZWN0aW9uPjtcbn07XG5cbnR5cGUgTWFuaWZlc3RGb3JtRWxlbWVudCA9IFBvc2l0aW9uYWJsZSAmIHtcblx0dHlwZTogRm9ybUVsZW1lbnRUeXBlO1xuXHR0ZW1wbGF0ZTogc3RyaW5nO1xuXHRsYWJlbD86IHN0cmluZztcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IHtcblx0ZmllbGRzOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RGb3JtRWxlbWVudD47XG59O1xuXG5leHBvcnQgdHlwZSBDb250cm9sTWFuaWZlc3RDb25maWd1cmF0aW9uID1cblx0fCBUYWJsZU1hbmlmZXN0Q29uZmlndXJhdGlvblxuXHR8IENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uXG5cdHwgRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb25cblx0fCBIZWFkZXJGYWNldHNDb250cm9sQ29uZmlndXJhdGlvblxuXHR8IEZvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb25cblx0fCBGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb247XG5cbi8qKiBPYmplY3QgUGFnZSAqL1xuXG5leHBvcnQgdHlwZSBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncyA9IEJhc2VNYW5pZmVzdFNldHRpbmdzICYge1xuXHRjb250ZW50Pzoge1xuXHRcdGhlYWRlcj86IHtcblx0XHRcdHZpc2libGU/OiBib29sZWFuO1xuXHRcdFx0YW5jaG9yQmFyVmlzaWJsZT86IGJvb2xlYW47XG5cdFx0XHRmYWNldHM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RIZWFkZXJGYWNldD47XG5cdFx0fTtcblx0XHRib2R5Pzoge1xuXHRcdFx0c2VjdGlvbnM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RTZWN0aW9uPjtcblx0XHR9O1xuXHR9O1xuXHRlZGl0YWJsZUhlYWRlckNvbnRlbnQ6IGJvb2xlYW47XG5cdHNlY3Rpb25MYXlvdXQ6IFwiVGFic1wiIHwgXCJQYWdlXCI7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIE1hbmlmZXN0SGVhZGVyRmFjZXRcbiAqL1xuZXhwb3J0IHR5cGUgTWFuaWZlc3RIZWFkZXJGYWNldCA9IHtcblx0dHlwZT86IEhlYWRlckZhY2V0VHlwZTtcblx0bmFtZT86IHN0cmluZztcblx0dGVtcGxhdGU/OiBzdHJpbmc7XG5cdHBvc2l0aW9uPzogUG9zaXRpb247XG5cdHZpc2libGU/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0dGl0bGU/OiBzdHJpbmc7XG5cdHN1YlRpdGxlPzogc3RyaW5nO1xuXHRzdGFzaGVkPzogYm9vbGVhbjtcblx0ZmxleFNldHRpbmdzPzogRmxleFNldHRpbmdzO1xuXHRyZXF1ZXN0R3JvdXBJZD86IHN0cmluZztcblx0dGVtcGxhdGVFZGl0Pzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBNYW5pZmVzdFNlY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgTWFuaWZlc3RTZWN0aW9uID0ge1xuXHR0aXRsZT86IHN0cmluZztcblx0aWQ/OiBzdHJpbmc7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0cG9zaXRpb24/OiBQb3NpdGlvbjtcblx0dGVtcGxhdGU/OiBzdHJpbmc7XG5cdHN1YlNlY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RTdWJTZWN0aW9uPjtcblx0YWN0aW9ucz86IFJlY29yZDxzdHJpbmcsIE1hbmlmZXN0QWN0aW9uPjtcbn07XG5cbmV4cG9ydCB0eXBlIE1hbmlmZXN0U3ViU2VjdGlvbiA9IHtcblx0aWQ/OiBzdHJpbmc7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHRlbXBsYXRlPzogc3RyaW5nO1xuXHR0aXRsZT86IHN0cmluZztcblx0cG9zaXRpb24/OiBQb3NpdGlvbjtcblx0dmlzaWJsZT86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xuXHRzaWRlQ29udGVudD86IE1hbmlmZXN0U2lkZUNvbnRlbnQ7XG5cdGVuYWJsZUxhenlMb2FkaW5nPzogYm9vbGVhbjtcblx0ZW1iZWRkZWRDb21wb25lbnQ/OiBNYW5pZmVzdFJldXNlQ29tcG9uZW50U2V0dGluZ3M7XG59O1xuXG5leHBvcnQgdHlwZSBNYW5pZmVzdFJldXNlQ29tcG9uZW50U2V0dGluZ3MgPSB7XG5cdG5hbWU6IHN0cmluZztcblx0c2V0dGluZ3M/OiBhbnk7XG59O1xuXG4vKiogTGlzdCBSZXBvcnQgKi9cblxuZXhwb3J0IHR5cGUgTGlzdFJlcG9ydE1hbmlmZXN0U2V0dGluZ3MgPSBCYXNlTWFuaWZlc3RTZXR0aW5ncyAmIHtcblx0c3RpY2t5TXVsdGlUYWJIZWFkZXI/OiBib29sZWFuO1xuXHRpbml0aWFsTG9hZD86IGJvb2xlYW47XG5cdHZpZXdzPzogTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb247XG5cdGtleVBlcmZvcm1hbmNlSW5kaWNhdG9ycz86IHtcblx0XHRba3BpTmFtZTogc3RyaW5nXTogS1BJQ29uZmlndXJhdGlvbjtcblx0fTtcblx0aGlkZUZpbHRlckJhcj86IGJvb2xlYW47XG5cdHVzZUhpZGRlbkZpbHRlckJhcj86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBWaWV3UGF0aENvbmZpZ3VyYXRpb24gPSBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24gfCBDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbjtcblxuZXhwb3J0IHR5cGUgVmlld0NvbmZpZ3VyYXRpb24gPSBWaWV3UGF0aENvbmZpZ3VyYXRpb24gfCBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uO1xuXG5leHBvcnQgdHlwZSBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uID0ge1xuXHRrZXk/OiBzdHJpbmc7XG5cdGxhYmVsOiBzdHJpbmc7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdHZpc2libGU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24gPSB7XG5cdGtlZXBQcmV2aW91c1BlcnNvbmFsaXphdGlvbj86IGJvb2xlYW47XG5cdGtleT86IHN0cmluZztcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblx0dmlzaWJsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uID0ge1xuXHRwcmltYXJ5OiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb25bXTtcblx0c2Vjb25kYXJ5OiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb25bXTtcblx0ZGVmYXVsdFBhdGg/OiBcImJvdGhcIiB8IFwicHJpbWFyeVwiIHwgXCJzZWNvbmRhcnlcIjtcblx0a2V5Pzogc3RyaW5nO1xuXHR2aXNpYmxlPzogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aD86IHN0cmluZztcbn07XG5cbi8qKlxuICogQHR5cGVkZWYgTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb24gPSB7XG5cdHBhdGhzOiBWaWV3Q29uZmlndXJhdGlvbltdO1xuXHRzaG93Q291bnRzPzogYm9vbGVhbjtcbn07XG5cbi8qKiBGaWx0ZXIgQ29uZmlndXJhdGlvbiAqL1xuXG4vKiogQHR5cGVkZWYgRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uICovXG5leHBvcnQgdHlwZSBGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdGZpbHRlckZpZWxkcz86IFJlY29yZDxzdHJpbmcsIEZpbHRlckZpZWxkTWFuaWZlc3RDb25maWd1cmF0aW9uPjtcblx0bmF2aWdhdGlvblByb3BlcnRpZXM/OiBzdHJpbmdbXTtcblx0dXNlU2VtYW50aWNEYXRlUmFuZ2U/OiBib29sZWFuO1xuXHRzaG93Q2xlYXJCdXR0b24/OiBib29sZWFuO1xuXHRpbml0aWFsTGF5b3V0Pzogc3RyaW5nO1xuXHRsYXlvdXQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJGaWVsZE1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IFBvc2l0aW9uYWJsZSAmIHtcblx0dHlwZT86IHN0cmluZztcblx0bGFiZWw/OiBzdHJpbmc7XG5cdHRlbXBsYXRlPzogc3RyaW5nO1xuXHRhdmFpbGFiaWxpdHk/OiBBdmFpbGFiaWxpdHlUeXBlO1xuXHRzZXR0aW5ncz86IEZpbHRlclNldHRpbmdzO1xuXHR2aXN1YWxGaWx0ZXI/OiB2aXN1YWxGaWx0ZXJDb25maWd1cmF0aW9uO1xuXHRyZXF1aXJlZD86IGJvb2xlYW47XG5cdHNsb3ROYW1lPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgdmlzdWFsRmlsdGVyQ29uZmlndXJhdGlvbiA9IHtcblx0dmFsdWVMaXN0Pzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgT3BlcmF0b3JDb25maWd1cmF0aW9uID0ge1xuXHRwYXRoOiBzdHJpbmc7XG5cdGVxdWFscz86IHN0cmluZztcblx0Y29udGFpbnM/OiBzdHJpbmc7XG5cdGV4Y2x1ZGU6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0T3BlcmF0b3IgPSB7XG5cdG9wZXJhdG9yOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJTZXR0aW5ncyA9IHtcblx0b3BlcmF0b3JDb25maWd1cmF0aW9uPzogT3BlcmF0b3JDb25maWd1cmF0aW9uW107XG5cdGRlZmF1bHRWYWx1ZXM/OiBEZWZhdWx0T3BlcmF0b3JbXTtcbn07XG5cbi8qKiBDaGFydCBDb25maWd1cmF0aW9uICovXG5cbmV4cG9ydCB0eXBlIENoYXJ0UGVyc29uYWxpemF0aW9uTWFuaWZlc3RTZXR0aW5ncyA9XG5cdHwgYm9vbGVhblxuXHR8IHtcblx0XHRcdHNvcnQ6IGJvb2xlYW47XG5cdFx0XHR0eXBlOiBib29sZWFuO1xuXHRcdFx0aXRlbTogYm9vbGVhbjtcblx0XHRcdGZpbHRlcjogYm9vbGVhbjtcblx0ICB9O1xuXG5leHBvcnQgdHlwZSBDaGFydE1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IHtcblx0Y2hhcnRTZXR0aW5nczoge1xuXHRcdHBlcnNvbmFsaXphdGlvbjogQ2hhcnRQZXJzb25hbGl6YXRpb25NYW5pZmVzdFNldHRpbmdzO1xuXHR9O1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uQWZ0ZXJFeGVjdXRpb25Db25maWd1cmF0aW9uID0ge1xuXHRuYXZpZ2F0ZVRvSW5zdGFuY2U/OiBib29sZWFuO1xuXHRlbmFibGVBdXRvU2Nyb2xsPzogYm9vbGVhbjtcbn07XG5cbi8qKiBUYWJsZSBDb25maWd1cmF0aW9uICovXG5cbi8qKlxuICogQHR5cGVkZWYgTWFuaWZlc3RBY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgTWFuaWZlc3RBY3Rpb24gPSB7XG5cdGRlZmF1bHRBY3Rpb24/OiBzdHJpbmc7XG5cdG1lbnU/OiBzdHJpbmdbXTtcblx0dmlzaWJsZT86IHN0cmluZztcblx0ZW5hYmxlZD86IHN0cmluZztcblx0cG9zaXRpb24/OiBQb3NpdGlvbjtcblx0cHJlc3M/OiBzdHJpbmc7XG5cdHRleHQ/OiBzdHJpbmc7XG5cdF9fbm9XcmFwPzogYm9vbGVhbjtcblx0ZW5hYmxlT25TZWxlY3Q/OiBzdHJpbmc7XG5cdGRlZmF1bHRWYWx1ZXNGdW5jdGlvbj86IHN0cmluZztcblx0cmVxdWlyZXNTZWxlY3Rpb24/OiBib29sZWFuO1xuXHRhZnRlckV4ZWN1dGlvbj86IEFjdGlvbkFmdGVyRXhlY3V0aW9uQ29uZmlndXJhdGlvbjtcblx0aW5saW5lPzogYm9vbGVhbjtcblx0ZGV0ZXJtaW5pbmc/OiBib29sZWFuO1xuXHRmYWNldE5hbWU/OiBzdHJpbmc7XG5cdGNvbW1hbmQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBCYXNlQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uID0gUG9zaXRpb25hYmxlICYge1xuXHR3aWR0aD86IHN0cmluZztcblx0aW1wb3J0YW5jZT86IEltcG9ydGFuY2U7XG5cdGhvcml6b250YWxBbGlnbj86IEhvcml6b250YWxBbGlnbjtcblx0YXZhaWxhYmlsaXR5PzogQXZhaWxhYmlsaXR5VHlwZTtcbn07XG5cbi8vIENhbiBiZSBlaXRoZXIgQ3VzdG9tIENvbHVtbiBmcm9tIE1hbmlmZXN0IG9yIFNsb3QgQ29sdW1uIGZyb20gQnVpbGRpbmcgQmxvY2tcbmV4cG9ydCB0eXBlIEN1c3RvbURlZmluZWRUYWJsZUNvbHVtbiA9IEJhc2VDdXN0b21EZWZpbmVkVGFibGVDb2x1bW4gJiB7XG5cdHR5cGU/OiBzdHJpbmc7XG5cdGhlYWRlcjogc3RyaW5nO1xuXHR0ZW1wbGF0ZTogc3RyaW5nO1xuXHRwcm9wZXJ0aWVzPzogc3RyaW5nW107XG59O1xuXG4vLyBGb3Igb3ZlcndyaXRpbmcgQW5ub3RhdGlvbiBDb2x1bW4gcHJvcGVydGllc1xuZXhwb3J0IHR5cGUgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGUgPSBCYXNlQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uICYge1xuXHRhZnRlckV4ZWN1dGlvbj86IEFjdGlvbkFmdGVyRXhlY3V0aW9uQ29uZmlndXJhdGlvbjtcblx0c2V0dGluZ3M/OiBUYWJsZUNvbHVtblNldHRpbmdzO1xuXHRmb3JtYXRPcHRpb25zPzogRm9ybWF0T3B0aW9uc1R5cGU7XG5cdHNob3dEYXRhRmllbGRzTGFiZWw/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5TZXR0aW5ncyA9IHtcblx0bWljcm9DaGFydFNpemU/OiBzdHJpbmc7XG5cdHNob3dNaWNyb0NoYXJ0TGFiZWw/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGZvcm1hdCBvcHRpb25zIGZvciBtdWx0aWxpbmUgdGV4dCBmaWVsZHMgb24gYSBmb3JtIG9yIGluIGEgdGFibGVcbiAqL1xuZXhwb3J0IHR5cGUgRm9ybWF0T3B0aW9uc1R5cGUgPSB7XG5cdGhhc0RyYWZ0SW5kaWNhdG9yPzogYm9vbGVhbjtcblx0c2VtYW50aWNrZXlzPzogc3RyaW5nW107XG5cdHRleHRMaW5lc0VkaXQ/OiBudW1iZXI7XG5cdHRleHRNYXhDaGFyYWN0ZXJzRGlzcGxheT86IG51bWJlcjtcblx0dGV4dEV4cGFuZEJlaGF2aW9yRGlzcGxheT86IHN0cmluZztcblx0dGV4dE1heExlbmd0aD86IG51bWJlcjtcblxuXHRvYmplY3RTdGF0dXNUZXh0VmlzaWJpbGl0eT86IHN0cmluZztcblx0ZmllbGRHcm91cERyYWZ0SW5kaWNhdG9yUHJvcGVydHlQYXRoPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdHRhYmxlU2V0dGluZ3M/OiBUYWJsZU1hbmlmZXN0U2V0dGluZ3NDb25maWd1cmF0aW9uO1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xuXHRjb2x1bW5zPzogUmVjb3JkPHN0cmluZywgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uIHwgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGU+O1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVQZXJzb25hbGl6YXRpb25Db25maWd1cmF0aW9uID1cblx0fCBib29sZWFuXG5cdHwge1xuXHRcdFx0c29ydDogYm9vbGVhbjtcblx0XHRcdGNvbHVtbjogYm9vbGVhbjtcblx0XHRcdGZpbHRlcjogYm9vbGVhbjtcblx0XHRcdGdyb3VwOiBib29sZWFuO1xuXHRcdFx0YWdncmVnYXRlOiBib29sZWFuO1xuXHQgIH07XG5cbmV4cG9ydCB0eXBlIFRhYmxlTWFuaWZlc3RTZXR0aW5nc0NvbmZpZ3VyYXRpb24gPSB7XG5cdGNyZWF0aW9uTW9kZT86IHtcblx0XHRkaXNhYmxlQWRkUm93QnV0dG9uRm9yRW1wdHlEYXRhPzogYm9vbGVhbjtcblx0XHRjdXN0b21WYWxpZGF0aW9uRnVuY3Rpb24/OiBzdHJpbmc7XG5cdFx0Y3JlYXRlQXRFbmQ/OiBib29sZWFuO1xuXHRcdG5hbWU/OiBDcmVhdGlvbk1vZGU7XG5cdFx0aW5saW5lQ3JlYXRpb25Sb3dDb3VudD86IG51bWJlcjtcblx0XHRpbmxpbmVDcmVhdGlvblJvd3NIaWRkZW5JbkVkaXRNb2RlPzogYm9vbGVhbjtcblx0fTtcblx0ZW5hYmxlRXhwb3J0PzogYm9vbGVhbjtcblx0cXVpY2tWYXJpYW50U2VsZWN0aW9uPzoge1xuXHRcdHBhdGhzOiBbXG5cdFx0XHR7XG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdFx0XHR9XG5cdFx0XTtcblx0XHRoaWRlVGFibGVUaXRsZT86IGJvb2xlYW47XG5cdFx0c2hvd0NvdW50cz86IGJvb2xlYW47XG5cdH07XG5cdHBlcnNvbmFsaXphdGlvbj86IFRhYmxlUGVyc29uYWxpemF0aW9uQ29uZmlndXJhdGlvbjtcblx0LyoqXG5cdCAqIERlZmluZXMgaG93IG1hbnkgaXRlbXMgaW4gYSB0YWJsZSBjYW4gYmUgc2VsZWN0ZWQuIFlvdSBoYXZlIHRoZSBmb2xsb3dpbmcgb3B0aW9uczpcblx0ICogPT4gYnkgZGVmaW5pbmcgJ05vbmUnIHlvdSBjYW4gZnVsbHkgZGlzYWJsZSB0aGUgbGlzdCBzZWxlY3Rpb25cblx0ICogPT4gYnkgZGVmaW5pbmcgJ1NpbmdsZScgeW91IGFsbG93IG9ubHkgb25lIGl0ZW0gdG8gYmUgc2VsZWN0ZWRcblx0ICogPT4gYnkgZGVmaW5pbmcgJ011bHRpJyB5b3UgYWxsb3cgc2V2ZXJhbCBpdGVtcyB0byBiZSBzZWxlY3RlZFxuXHQgKiA9PiBieSB1c2luZyAnQXV0bycgeW91IGxlYXZlIHRoZSBkZWZhdWx0IGRlZmluaXRpb24gJ05vbmUnLCBleGNlcHQgaWYgdGhlcmUgaXMgYW4gYWN0aW9uIHRoYXQgcmVxdWlyZXMgYSBzZWxlY3Rpb24gKHN1Y2ggYXMgZGVsZXRpbmcsIG9yIElCTilcblx0ICovXG5cdHNlbGVjdGlvbk1vZGU/OiBTZWxlY3Rpb25Nb2RlO1xuXHR0eXBlPzogVGFibGVUeXBlO1xuXHRyb3dDb3VudE1vZGU/OiBHcmlkVGFibGVSb3dDb3VudE1vZGU7XG5cdHJvd0NvdW50PzogbnVtYmVyO1xuXHRjb25kZW5zZWRUYWJsZUxheW91dD86IGJvb2xlYW47XG5cdHNlbGVjdEFsbD86IGJvb2xlYW47XG5cdHNlbGVjdGlvbkxpbWl0PzogbnVtYmVyO1xuXHRlbmFibGVQYXN0ZT86IGJvb2xlYW47XG5cdGVuYWJsZUZ1bGxTY3JlZW4/OiBib29sZWFuO1xuXHRlbmFibGVNYXNzRWRpdD86IGJvb2xlYW47XG5cdGhpZXJhcmNoeVF1YWxpZmllcj86IHN0cmluZztcbn07XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7O0VBTUE7RUFBQSxJQUVZQSxZQUFZO0VBQUEsV0FBWkEsWUFBWTtJQUFaQSxZQUFZO0lBQVpBLFlBQVk7SUFBWkEsWUFBWTtFQUFBLEdBQVpBLFlBQVksS0FBWkEsWUFBWTtFQUFBO0VBQUEsSUFNWkMsVUFBVTtFQUFBLFdBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtFQUFBLEdBQVZBLFVBQVUsS0FBVkEsVUFBVTtFQUFBO0VBQUEsSUFnQlZDLGFBQWE7RUFBQSxXQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBYkEsYUFBYTtJQUFiQSxhQUFhO0lBQWJBLGFBQWE7RUFBQSxHQUFiQSxhQUFhLEtBQWJBLGFBQWE7RUFBQTtFQUFBLElBT2JDLHFCQUFxQjtFQUFBLFdBQXJCQSxxQkFBcUI7SUFBckJBLHFCQUFxQjtJQUFyQkEscUJBQXFCO0lBQXJCQSxxQkFBcUI7RUFBQSxHQUFyQkEscUJBQXFCLEtBQXJCQSxxQkFBcUI7RUFBQTtFQUFBLElBTXJCQyxZQUFZO0VBQUEsV0FBWkEsWUFBWTtJQUFaQSxZQUFZO0lBQVpBLFlBQVk7SUFBWkEsWUFBWTtJQUFaQSxZQUFZO0lBQVpBLFlBQVk7RUFBQSxHQUFaQSxZQUFZLEtBQVpBLFlBQVk7RUFBQTtFQUFBLElBUVpDLGlCQUFpQixFQUs3QjtFQUFBLFdBTFlBLGlCQUFpQjtJQUFqQkEsaUJBQWlCO0lBQWpCQSxpQkFBaUI7RUFBQSxHQUFqQkEsaUJBQWlCLEtBQWpCQSxpQkFBaUI7RUFBQTtFQUFBLElBT2pCQyxVQUFVO0VBQUEsV0FBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0VBQUEsR0FBVkEsVUFBVSxLQUFWQSxVQUFVO0VBQUE7RUFBQSxJQU9WQyxlQUFlLEVBTTNCO0VBQUEsV0FOWUEsZUFBZTtJQUFmQSxlQUFlO0lBQWZBLGVBQWU7SUFBZkEsZUFBZTtFQUFBLEdBQWZBLGVBQWUsS0FBZkEsZUFBZTtFQUFBO0VBQUE7QUFBQSJ9
81
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZW1wbGF0ZVR5cGUiLCJBY3Rpb25UeXBlIiwiU2VsZWN0aW9uTW9kZSIsIlZhcmlhbnRNYW5hZ2VtZW50VHlwZSIsIkNyZWF0aW9uTW9kZSIsIlZpc3VhbGl6YXRpb25UeXBlIiwiSW1wb3J0YW5jZSIsIkhvcml6b250YWxBbGlnbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTWFuaWZlc3RTZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZvcm1FbGVtZW50VHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9Gb3JtXCI7XG5pbXBvcnQgdHlwZSB7IEZsZXhTZXR0aW5ncywgSGVhZGVyRmFjZXRUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvT2JqZWN0UGFnZS9IZWFkZXJGYWNldFwiO1xuaW1wb3J0IHR5cGUgeyBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgdHlwZSB7IFRhYmxlUm93Q291bnRNb2RlLCBUYWJsZVR5cGUgfSBmcm9tIFwiLi9jb250cm9scy9Db21tb24vVGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlndXJhYmxlUmVjb3JkLCBQb3NpdGlvbiwgUG9zaXRpb25hYmxlIH0gZnJvbSBcIi4vaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcblxuLy8gRU5VTVNcblxuZXhwb3J0IGVudW0gVGVtcGxhdGVUeXBlIHtcblx0TGlzdFJlcG9ydCA9IFwiTGlzdFJlcG9ydFwiLFxuXHRPYmplY3RQYWdlID0gXCJPYmplY3RQYWdlXCIsXG5cdEFuYWx5dGljYWxMaXN0UGFnZSA9IFwiQW5hbHl0aWNhbExpc3RQYWdlXCJcbn1cblxuZXhwb3J0IGVudW0gQWN0aW9uVHlwZSB7XG5cdERhdGFGaWVsZEZvckFjdGlvbiA9IFwiRm9yQWN0aW9uXCIsXG5cdERhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiA9IFwiRm9yTmF2aWdhdGlvblwiLFxuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdFByaW1hcnkgPSBcIlByaW1hcnlcIixcblx0U2Vjb25kYXJ5ID0gXCJTZWNvbmRhcnlcIixcblx0U3dpdGNoVG9BY3RpdmVPYmplY3QgPSBcIlN3aXRjaFRvQWN0aXZlT2JqZWN0XCIsXG5cdFN3aXRjaFRvRHJhZnRPYmplY3QgPSBcIlN3aXRjaFRvRHJhZnRPYmplY3RcIixcblx0RHJhZnRBY3Rpb25zID0gXCJEcmFmdEFjdGlvbnNcIixcblx0Q29sbGFib3JhdGlvbkF2YXRhcnMgPSBcIkNvbGxhYm9yYXRpb25BdmF0YXJzXCIsXG5cdERlZmF1bHRBcHBseSA9IFwiRGVmYXVsdEFwcGx5XCIsXG5cdE1lbnUgPSBcIk1lbnVcIixcblx0U2hvd0Zvcm1EZXRhaWxzID0gXCJTaG93Rm9ybURldGFpbHNcIixcblx0Q29weSA9IFwiQ29weVwiXG59XG5cbmV4cG9ydCBlbnVtIFNlbGVjdGlvbk1vZGUge1xuXHRBdXRvID0gXCJBdXRvXCIsXG5cdE5vbmUgPSBcIk5vbmVcIixcblx0TXVsdGkgPSBcIk11bHRpXCIsXG5cdFNpbmdsZSA9IFwiU2luZ2xlXCJcbn1cblxuZXhwb3J0IGVudW0gVmFyaWFudE1hbmFnZW1lbnRUeXBlIHtcblx0UGFnZSA9IFwiUGFnZVwiLFxuXHRDb250cm9sID0gXCJDb250cm9sXCIsXG5cdE5vbmUgPSBcIk5vbmVcIlxufVxuXG5leHBvcnQgZW51bSBDcmVhdGlvbk1vZGUge1xuXHROZXdQYWdlID0gXCJOZXdQYWdlXCIsXG5cdElubGluZSA9IFwiSW5saW5lXCIsXG5cdENyZWF0aW9uUm93ID0gXCJDcmVhdGlvblJvd1wiLFxuXHRJbmxpbmVDcmVhdGlvblJvd3MgPSBcIklubGluZUNyZWF0aW9uUm93c1wiLFxuXHRFeHRlcm5hbCA9IFwiRXh0ZXJuYWxcIlxufVxuXG5leHBvcnQgZW51bSBWaXN1YWxpemF0aW9uVHlwZSB7XG5cdFRhYmxlID0gXCJUYWJsZVwiLFxuXHRDaGFydCA9IFwiQ2hhcnRcIlxufVxuXG4vLyBUYWJsZVxuZXhwb3J0IHR5cGUgQXZhaWxhYmlsaXR5VHlwZSA9IFwiRGVmYXVsdFwiIHwgXCJBZGFwdGF0aW9uXCIgfCBcIkhpZGRlblwiO1xuZXhwb3J0IGVudW0gSW1wb3J0YW5jZSB7XG5cdEhpZ2ggPSBcIkhpZ2hcIixcblx0TWVkaXVtID0gXCJNZWRpdW1cIixcblx0TG93ID0gXCJMb3dcIixcblx0Tm9uZSA9IFwiTm9uZVwiXG59XG5cbmV4cG9ydCBlbnVtIEhvcml6b250YWxBbGlnbiB7XG5cdEVuZCA9IFwiRW5kXCIsXG5cdEJlZ2luID0gXCJCZWdpblwiLFxuXHRDZW50ZXIgPSBcIkNlbnRlclwiXG59XG5cbi8vIFRZUEVTXG5cbmV4cG9ydCB0eXBlIENvbnRlbnREZW5zaXRpZXNUeXBlID0ge1xuXHRjb21wYWN0PzogYm9vbGVhbjtcblx0Y296eT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBNYW5pZmVzdFNpZGVDb250ZW50ID0ge1xuXHR0ZW1wbGF0ZTogc3RyaW5nO1xuXHRlcXVhbFNwbGl0PzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvZiBhIEtQSSBpbiB0aGUgbWFuaWZlc3RcbiAqL1xuZXhwb3J0IHR5cGUgS1BJQ29uZmlndXJhdGlvbiA9IHtcblx0bW9kZWw/OiBzdHJpbmc7XG5cdGVudGl0eVNldDogc3RyaW5nO1xuXHRxdWFsaWZpZXI6IHN0cmluZztcblx0ZGV0YWlsTmF2aWdhdGlvbj86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIENvbnRyb2xDb25maWd1cmF0aW9uID0ge1xuXHRbYW5ub3RhdGlvblBhdGg6IHN0cmluZ106IENvbnRyb2xNYW5pZmVzdENvbmZpZ3VyYXRpb247XG59ICYge1xuXHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbVwiPzogVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb247XG5cdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZhY2V0c1wiPzogRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb247XG5cdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0c1wiPzogSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb247XG5cdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkc1wiPzogRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBCYXNlTWFuaWZlc3RTZXR0aW5nc1xuICovXG5leHBvcnQgdHlwZSBCYXNlTWFuaWZlc3RTZXR0aW5ncyA9IHtcblx0Y29udGVudD86IHtcblx0XHRoZWFkZXI/OiB7XG5cdFx0XHRmYWNldHM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RIZWFkZXJGYWNldD47XG5cdFx0XHRhY3Rpb25zPzogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPjtcblx0XHR9O1xuXHRcdGZvb3Rlcj86IHtcblx0XHRcdGFjdGlvbnM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+O1xuXHRcdH07XG5cdH07XG5cdGNvbnRyb2xDb25maWd1cmF0aW9uPzogQ29udHJvbENvbmZpZ3VyYXRpb247XG5cdGNvbnZlcnRlclR5cGU6IFRlbXBsYXRlVHlwZTtcblx0ZW50aXR5U2V0OiBzdHJpbmc7XG5cdG5hdmlnYXRpb24/OiB7XG5cdFx0W25hdmlnYXRpb25QYXRoOiBzdHJpbmddOiBOYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9uO1xuXHR9O1xuXHR2aWV3TGV2ZWw/OiBudW1iZXI7XG5cdGZjbEVuYWJsZWQ/OiBib29sZWFuO1xuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblx0dmFyaWFudE1hbmFnZW1lbnQ/OiBWYXJpYW50TWFuYWdlbWVudFR5cGU7XG5cdGRlZmF1bHRUZW1wbGF0ZUFubm90YXRpb25QYXRoPzogc3RyaW5nO1xuXHRjb250ZW50RGVuc2l0aWVzPzogQ29udGVudERlbnNpdGllc1R5cGU7XG5cdHNoZWxsQ29udGVudERlbnNpdHk/OiBzdHJpbmc7XG5cdGlzRGVza3RvcD86IGJvb2xlYW47XG5cdGlzUGhvbmU/OiBib29sZWFuO1xuXHRlbmFibGVMYXp5TG9hZGluZz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbiA9IHtcblx0b3V0Ym91bmQ/OiBzdHJpbmc7XG5cdG91dGJvdW5kRGV0YWlsPzoge1xuXHRcdHNlbWFudGljT2JqZWN0OiBzdHJpbmc7XG5cdFx0YWN0aW9uOiBzdHJpbmc7XG5cdFx0cGFyYW1ldGVycz86IGFueTtcblx0fTtcblx0cm91dGU/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIE5hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbiA9IHtcblx0Y3JlYXRlPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb247XG5cdGRldGFpbD86IE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uO1xuXHRkaXNwbGF5Pzoge1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdHRhcmdldD86IHN0cmluZzsgLy8gZm9yIGNvbXBhdGliaWxpdHlcblx0XHRyb3V0ZT86IHN0cmluZztcblx0fTtcbn07XG5cbnR5cGUgSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb24gPSB7XG5cdGZhY2V0czogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+O1xufTtcblxudHlwZSBGYWNldHNDb250cm9sQ29uZmlndXJhdGlvbiA9IHtcblx0c2VjdGlvbnM6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdFNlY3Rpb24+O1xufTtcblxudHlwZSBNYW5pZmVzdEZvcm1FbGVtZW50ID0gUG9zaXRpb25hYmxlICYge1xuXHR0eXBlOiBGb3JtRWxlbWVudFR5cGU7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHRmb3JtYXRPcHRpb25zPzogRm9ybWF0T3B0aW9uc1R5cGU7XG59O1xuXG5leHBvcnQgdHlwZSBGb3JtTWFuaWZlc3RDb25maWd1cmF0aW9uID0ge1xuXHRmaWVsZHM6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEZvcm1FbGVtZW50Pjtcbn07XG5cbmV4cG9ydCB0eXBlIENvbnRyb2xNYW5pZmVzdENvbmZpZ3VyYXRpb24gPVxuXHR8IFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uXG5cdHwgQ2hhcnRNYW5pZmVzdENvbmZpZ3VyYXRpb25cblx0fCBGYWNldHNDb250cm9sQ29uZmlndXJhdGlvblxuXHR8IEhlYWRlckZhY2V0c0NvbnRyb2xDb25maWd1cmF0aW9uXG5cdHwgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvblxuXHR8IEZpbHRlck1hbmlmZXN0Q29uZmlndXJhdGlvbjtcblxuLyoqIE9iamVjdCBQYWdlICovXG5cbmV4cG9ydCB0eXBlIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzID0gQmFzZU1hbmlmZXN0U2V0dGluZ3MgJiB7XG5cdGNvbnRlbnQ/OiB7XG5cdFx0aGVhZGVyPzoge1xuXHRcdFx0dmlzaWJsZT86IGJvb2xlYW47XG5cdFx0XHRhbmNob3JCYXJWaXNpYmxlPzogYm9vbGVhbjtcblx0XHRcdGZhY2V0cz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEhlYWRlckZhY2V0Pjtcblx0XHR9O1xuXHRcdGJvZHk/OiB7XG5cdFx0XHRzZWN0aW9ucz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdFNlY3Rpb24+O1xuXHRcdH07XG5cdH07XG5cdGVkaXRhYmxlSGVhZGVyQ29udGVudDogYm9vbGVhbjtcblx0c2VjdGlvbkxheW91dDogXCJUYWJzXCIgfCBcIlBhZ2VcIjtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYgTWFuaWZlc3RIZWFkZXJGYWNldFxuICovXG5leHBvcnQgdHlwZSBNYW5pZmVzdEhlYWRlckZhY2V0ID0ge1xuXHR0eXBlPzogSGVhZGVyRmFjZXRUeXBlO1xuXHRuYW1lPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZT86IHN0cmluZztcblx0cG9zaXRpb24/OiBQb3NpdGlvbjtcblx0dmlzaWJsZT86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXHR0aXRsZT86IHN0cmluZztcblx0c3ViVGl0bGU/OiBzdHJpbmc7XG5cdHN0YXNoZWQ/OiBib29sZWFuO1xuXHRmbGV4U2V0dGluZ3M/OiBGbGV4U2V0dGluZ3M7XG5cdHJlcXVlc3RHcm91cElkPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZUVkaXQ/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIE1hbmlmZXN0U2VjdGlvblxuICovXG5leHBvcnQgdHlwZSBNYW5pZmVzdFNlY3Rpb24gPSB7XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRpZD86IHN0cmluZztcblx0bmFtZT86IHN0cmluZztcblx0dmlzaWJsZT86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXHRwb3NpdGlvbj86IFBvc2l0aW9uO1xuXHR0ZW1wbGF0ZT86IHN0cmluZztcblx0c3ViU2VjdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBNYW5pZmVzdFN1YlNlY3Rpb24+O1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xufTtcblxuZXhwb3J0IHR5cGUgTWFuaWZlc3RTdWJTZWN0aW9uID0ge1xuXHRpZD86IHN0cmluZztcblx0bmFtZT86IHN0cmluZztcblx0dGVtcGxhdGU/OiBzdHJpbmc7XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRwb3NpdGlvbj86IFBvc2l0aW9uO1xuXHR2aXNpYmxlPzogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG5cdGFjdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBNYW5pZmVzdEFjdGlvbj47XG5cdHNpZGVDb250ZW50PzogTWFuaWZlc3RTaWRlQ29udGVudDtcblx0ZW5hYmxlTGF6eUxvYWRpbmc/OiBib29sZWFuO1xuXHRlbWJlZGRlZENvbXBvbmVudD86IE1hbmlmZXN0UmV1c2VDb21wb25lbnRTZXR0aW5ncztcbn07XG5cbmV4cG9ydCB0eXBlIE1hbmlmZXN0UmV1c2VDb21wb25lbnRTZXR0aW5ncyA9IHtcblx0bmFtZTogc3RyaW5nO1xuXHRzZXR0aW5ncz86IGFueTtcbn07XG5cbi8qKiBMaXN0IFJlcG9ydCAqL1xuXG5leHBvcnQgdHlwZSBMaXN0UmVwb3J0TWFuaWZlc3RTZXR0aW5ncyA9IEJhc2VNYW5pZmVzdFNldHRpbmdzICYge1xuXHRzdGlja3lNdWx0aVRhYkhlYWRlcj86IGJvb2xlYW47XG5cdGluaXRpYWxMb2FkPzogYm9vbGVhbjtcblx0dmlld3M/OiBNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvbjtcblx0a2V5UGVyZm9ybWFuY2VJbmRpY2F0b3JzPzoge1xuXHRcdFtrcGlOYW1lOiBzdHJpbmddOiBLUElDb25maWd1cmF0aW9uO1xuXHR9O1xuXHRoaWRlRmlsdGVyQmFyPzogYm9vbGVhbjtcblx0dXNlSGlkZGVuRmlsdGVyQmFyPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFZpZXdQYXRoQ29uZmlndXJhdGlvbiA9IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbiB8IENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXG5leHBvcnQgdHlwZSBWaWV3Q29uZmlndXJhdGlvbiA9IFZpZXdQYXRoQ29uZmlndXJhdGlvbiB8IEN1c3RvbVZpZXdUZW1wbGF0ZUNvbmZpZ3VyYXRpb247XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVZpZXdUZW1wbGF0ZUNvbmZpZ3VyYXRpb24gPSB7XG5cdGtleT86IHN0cmluZztcblx0bGFiZWw6IHN0cmluZztcblx0dGVtcGxhdGU6IHN0cmluZztcblx0dmlzaWJsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbiA9IHtcblx0a2VlcFByZXZpb3VzUGVyc29uYWxpemF0aW9uPzogYm9vbGVhbjtcblx0a2V5Pzogc3RyaW5nO1xuXHRlbnRpdHlTZXQ/OiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdGNvbnRleHRQYXRoPzogc3RyaW5nO1xuXHR2aXNpYmxlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb24gPSB7XG5cdHByaW1hcnk6IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbltdO1xuXHRzZWNvbmRhcnk6IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbltdO1xuXHRkZWZhdWx0UGF0aD86IFwiYm90aFwiIHwgXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiO1xuXHRrZXk/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvblxuICovXG5leHBvcnQgdHlwZSBNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvbiA9IHtcblx0cGF0aHM6IFZpZXdDb25maWd1cmF0aW9uW107XG5cdHNob3dDb3VudHM/OiBib29sZWFuO1xufTtcblxuLyoqIEZpbHRlciBDb25maWd1cmF0aW9uICovXG5cbi8qKiBAdHlwZWRlZiBGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCB0eXBlIEZpbHRlck1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IHtcblx0ZmlsdGVyRmllbGRzPzogUmVjb3JkPHN0cmluZywgRmlsdGVyRmllbGRNYW5pZmVzdENvbmZpZ3VyYXRpb24+O1xuXHRuYXZpZ2F0aW9uUHJvcGVydGllcz86IHN0cmluZ1tdO1xuXHR1c2VTZW1hbnRpY0RhdGVSYW5nZT86IGJvb2xlYW47XG5cdHNob3dDbGVhckJ1dHRvbj86IGJvb2xlYW47XG5cdGluaXRpYWxMYXlvdXQ/OiBzdHJpbmc7XG5cdGxheW91dD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEZpbHRlckZpZWxkTWFuaWZlc3RDb25maWd1cmF0aW9uID0gUG9zaXRpb25hYmxlICYge1xuXHR0eXBlPzogc3RyaW5nO1xuXHRsYWJlbD86IHN0cmluZztcblx0dGVtcGxhdGU/OiBzdHJpbmc7XG5cdGF2YWlsYWJpbGl0eT86IEF2YWlsYWJpbGl0eVR5cGU7XG5cdHNldHRpbmdzPzogRmlsdGVyU2V0dGluZ3M7XG5cdHZpc3VhbEZpbHRlcj86IHZpc3VhbEZpbHRlckNvbmZpZ3VyYXRpb247XG5cdHJlcXVpcmVkPzogYm9vbGVhbjtcblx0c2xvdE5hbWU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSB2aXN1YWxGaWx0ZXJDb25maWd1cmF0aW9uID0ge1xuXHR2YWx1ZUxpc3Q/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBPcGVyYXRvckNvbmZpZ3VyYXRpb24gPSB7XG5cdHBhdGg6IHN0cmluZztcblx0ZXF1YWxzPzogc3RyaW5nO1xuXHRjb250YWlucz86IHN0cmluZztcblx0ZXhjbHVkZTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRPcGVyYXRvciA9IHtcblx0b3BlcmF0b3I6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEZpbHRlclNldHRpbmdzID0ge1xuXHRvcGVyYXRvckNvbmZpZ3VyYXRpb24/OiBPcGVyYXRvckNvbmZpZ3VyYXRpb25bXTtcblx0ZGVmYXVsdFZhbHVlcz86IERlZmF1bHRPcGVyYXRvcltdO1xufTtcblxuLyoqIENoYXJ0IENvbmZpZ3VyYXRpb24gKi9cblxuZXhwb3J0IHR5cGUgQ2hhcnRQZXJzb25hbGl6YXRpb25NYW5pZmVzdFNldHRpbmdzID1cblx0fCBib29sZWFuXG5cdHwge1xuXHRcdFx0c29ydDogYm9vbGVhbjtcblx0XHRcdHR5cGU6IGJvb2xlYW47XG5cdFx0XHRpdGVtOiBib29sZWFuO1xuXHRcdFx0ZmlsdGVyOiBib29sZWFuO1xuXHQgIH07XG5cbmV4cG9ydCB0eXBlIENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uID0ge1xuXHRjaGFydFNldHRpbmdzPzoge1xuXHRcdHBlcnNvbmFsaXphdGlvbjogQ2hhcnRQZXJzb25hbGl6YXRpb25NYW5pZmVzdFNldHRpbmdzO1xuXHR9O1xuXHRlbmFibGVBZGRDYXJkVG9JbnNpZ2h0cz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25BZnRlckV4ZWN1dGlvbkNvbmZpZ3VyYXRpb24gPSB7XG5cdG5hdmlnYXRlVG9JbnN0YW5jZT86IGJvb2xlYW47XG5cdGVuYWJsZUF1dG9TY3JvbGw/OiBib29sZWFuO1xufTtcblxuLyoqIFRhYmxlIENvbmZpZ3VyYXRpb24gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBNYW5pZmVzdEFjdGlvblxuICovXG5leHBvcnQgdHlwZSBNYW5pZmVzdEFjdGlvbiA9IHtcblx0ZGVmYXVsdEFjdGlvbj86IHN0cmluZztcblx0bWVudT86IHN0cmluZ1tdO1xuXHR2aXNpYmxlPzogc3RyaW5nO1xuXHRlbmFibGVkPzogc3RyaW5nO1xuXHRwb3NpdGlvbj86IFBvc2l0aW9uO1xuXHRwcmVzcz86IHN0cmluZztcblx0dGV4dD86IHN0cmluZztcblx0X19ub1dyYXA/OiBib29sZWFuO1xuXHRlbmFibGVPblNlbGVjdD86IHN0cmluZztcblx0ZGVmYXVsdFZhbHVlc0Z1bmN0aW9uPzogc3RyaW5nO1xuXHRyZXF1aXJlc1NlbGVjdGlvbj86IGJvb2xlYW47XG5cdGFmdGVyRXhlY3V0aW9uPzogQWN0aW9uQWZ0ZXJFeGVjdXRpb25Db25maWd1cmF0aW9uO1xuXHRpbmxpbmU/OiBib29sZWFuO1xuXHRkZXRlcm1pbmluZz86IGJvb2xlYW47XG5cdGZhY2V0TmFtZT86IHN0cmluZztcblx0Y29tbWFuZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIEJhc2VDdXN0b21EZWZpbmVkVGFibGVDb2x1bW4gPSBQb3NpdGlvbmFibGUgJiB7XG5cdHdpZHRoPzogc3RyaW5nO1xuXHRpbXBvcnRhbmNlPzogSW1wb3J0YW5jZTtcblx0aG9yaXpvbnRhbEFsaWduPzogSG9yaXpvbnRhbEFsaWduO1xuXHRhdmFpbGFiaWxpdHk/OiBBdmFpbGFiaWxpdHlUeXBlO1xufTtcblxuLy8gQ2FuIGJlIGVpdGhlciBDdXN0b20gQ29sdW1uIGZyb20gTWFuaWZlc3Qgb3IgU2xvdCBDb2x1bW4gZnJvbSBCdWlsZGluZyBCbG9ja1xuZXhwb3J0IHR5cGUgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uID0gQmFzZUN1c3RvbURlZmluZWRUYWJsZUNvbHVtbiAmIHtcblx0dHlwZT86IHN0cmluZztcblx0aGVhZGVyOiBzdHJpbmc7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdHByb3BlcnRpZXM/OiBzdHJpbmdbXTtcbn07XG5cbi8vIEZvciBvdmVyd3JpdGluZyBBbm5vdGF0aW9uIENvbHVtbiBwcm9wZXJ0aWVzXG5leHBvcnQgdHlwZSBDdXN0b21EZWZpbmVkVGFibGVDb2x1bW5Gb3JPdmVycmlkZSA9IEJhc2VDdXN0b21EZWZpbmVkVGFibGVDb2x1bW4gJiB7XG5cdGFmdGVyRXhlY3V0aW9uPzogQWN0aW9uQWZ0ZXJFeGVjdXRpb25Db25maWd1cmF0aW9uO1xuXHRzZXR0aW5ncz86IFRhYmxlQ29sdW1uU2V0dGluZ3M7XG5cdGZvcm1hdE9wdGlvbnM/OiBGb3JtYXRPcHRpb25zVHlwZTtcblx0c2hvd0RhdGFGaWVsZHNMYWJlbD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtblNldHRpbmdzID0ge1xuXHRtaWNyb0NoYXJ0U2l6ZT86IHN0cmluZztcblx0c2hvd01pY3JvQ2hhcnRMYWJlbD86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgZm9ybWF0IG9wdGlvbnMgZm9yIG11bHRpbGluZSB0ZXh0IGZpZWxkcyBvbiBhIGZvcm0gb3IgaW4gYSB0YWJsZVxuICovXG5leHBvcnQgdHlwZSBGb3JtYXRPcHRpb25zVHlwZSA9IHtcblx0aGFzRHJhZnRJbmRpY2F0b3I/OiBib29sZWFuO1xuXHR0ZXh0TGluZXNFZGl0PzogbnVtYmVyO1xuXHR0ZXh0TWF4Q2hhcmFjdGVyc0Rpc3BsYXk/OiBudW1iZXI7XG5cdHRleHRFeHBhbmRCZWhhdmlvckRpc3BsYXk/OiBzdHJpbmc7XG5cdHRleHRNYXhMZW5ndGg/OiBudW1iZXI7XG5cdHNob3dFcnJvck9iamVjdFN0YXR1cz86IHN0cmluZztcblx0ZmllbGRHcm91cERyYWZ0SW5kaWNhdG9yUHJvcGVydHlQYXRoPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdHRhYmxlU2V0dGluZ3M/OiBUYWJsZU1hbmlmZXN0U2V0dGluZ3NDb25maWd1cmF0aW9uO1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xuXHRjb2x1bW5zPzogUmVjb3JkPHN0cmluZywgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uIHwgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGU+O1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVQZXJzb25hbGl6YXRpb25Db25maWd1cmF0aW9uID1cblx0fCBib29sZWFuXG5cdHwge1xuXHRcdFx0c29ydDogYm9vbGVhbjtcblx0XHRcdGNvbHVtbjogYm9vbGVhbjtcblx0XHRcdGZpbHRlcjogYm9vbGVhbjtcblx0XHRcdGdyb3VwOiBib29sZWFuO1xuXHRcdFx0YWdncmVnYXRlOiBib29sZWFuO1xuXHQgIH07XG5cbmV4cG9ydCB0eXBlIFRhYmxlTWFuaWZlc3RTZXR0aW5nc0NvbmZpZ3VyYXRpb24gPSB7XG5cdGNyZWF0aW9uTW9kZT86IHtcblx0XHRkaXNhYmxlQWRkUm93QnV0dG9uRm9yRW1wdHlEYXRhPzogYm9vbGVhbjtcblx0XHRjdXN0b21WYWxpZGF0aW9uRnVuY3Rpb24/OiBzdHJpbmc7XG5cdFx0Y3JlYXRlQXRFbmQ/OiBib29sZWFuO1xuXHRcdG5hbWU/OiBDcmVhdGlvbk1vZGU7XG5cdFx0aW5saW5lQ3JlYXRpb25Sb3dDb3VudD86IG51bWJlcjtcblx0XHRpbmxpbmVDcmVhdGlvblJvd3NIaWRkZW5JbkVkaXRNb2RlPzogYm9vbGVhbjtcblx0fTtcblx0ZW5hYmxlRXhwb3J0PzogYm9vbGVhbjtcblx0ZnJvemVuQ29sdW1uQ291bnQ/OiBudW1iZXI7XG5cdHF1aWNrVmFyaWFudFNlbGVjdGlvbj86IHtcblx0XHRwYXRoczogW1xuXHRcdFx0e1xuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRcdFx0fVxuXHRcdF07XG5cdFx0aGlkZVRhYmxlVGl0bGU/OiBib29sZWFuO1xuXHRcdHNob3dDb3VudHM/OiBib29sZWFuO1xuXHR9O1xuXHRwZXJzb25hbGl6YXRpb24/OiBUYWJsZVBlcnNvbmFsaXphdGlvbkNvbmZpZ3VyYXRpb247XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGhvdyBtYW55IGl0ZW1zIGluIGEgdGFibGUgY2FuIGJlIHNlbGVjdGVkLiBZb3UgaGF2ZSB0aGUgZm9sbG93aW5nIG9wdGlvbnM6XG5cdCAqID0+IGJ5IGRlZmluaW5nICdOb25lJyB5b3UgY2FuIGZ1bGx5IGRpc2FibGUgdGhlIGxpc3Qgc2VsZWN0aW9uXG5cdCAqID0+IGJ5IGRlZmluaW5nICdTaW5nbGUnIHlvdSBhbGxvdyBvbmx5IG9uZSBpdGVtIHRvIGJlIHNlbGVjdGVkXG5cdCAqID0+IGJ5IGRlZmluaW5nICdNdWx0aScgeW91IGFsbG93IHNldmVyYWwgaXRlbXMgdG8gYmUgc2VsZWN0ZWRcblx0ICogPT4gYnkgdXNpbmcgJ0F1dG8nIHlvdSBsZWF2ZSB0aGUgZGVmYXVsdCBkZWZpbml0aW9uICdOb25lJywgZXhjZXB0IGlmIHRoZXJlIGlzIGFuIGFjdGlvbiB0aGF0IHJlcXVpcmVzIGEgc2VsZWN0aW9uIChzdWNoIGFzIGRlbGV0aW5nLCBvciBJQk4pXG5cdCAqL1xuXHRzZWxlY3Rpb25Nb2RlPzogU2VsZWN0aW9uTW9kZTtcblx0dHlwZT86IFRhYmxlVHlwZTtcblx0cm93Q291bnRNb2RlPzogVGFibGVSb3dDb3VudE1vZGU7XG5cdHJvd0NvdW50PzogbnVtYmVyO1xuXHRjb25kZW5zZWRUYWJsZUxheW91dD86IGJvb2xlYW47XG5cdHNlbGVjdEFsbD86IGJvb2xlYW47XG5cdHNlbGVjdGlvbkxpbWl0PzogbnVtYmVyO1xuXHRlbmFibGVQYXN0ZT86IGJvb2xlYW47XG5cdGVuYWJsZUZ1bGxTY3JlZW4/OiBib29sZWFuO1xuXHRlbmFibGVNYXNzRWRpdD86IGJvb2xlYW47XG5cdGVuYWJsZUFkZENhcmRUb0luc2lnaHRzPzogYm9vbGVhbjtcblx0aGllcmFyY2h5UXVhbGlmaWVyPzogc3RyaW5nO1xufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7RUFNQTtFQUFBLElBRVlBLFlBQVk7RUFBQSxXQUFaQSxZQUFZO0lBQVpBLFlBQVk7SUFBWkEsWUFBWTtJQUFaQSxZQUFZO0VBQUEsR0FBWkEsWUFBWSxLQUFaQSxZQUFZO0VBQUE7RUFBQSxJQU1aQyxVQUFVO0VBQUEsV0FBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0VBQUEsR0FBVkEsVUFBVSxLQUFWQSxVQUFVO0VBQUE7RUFBQSxJQWdCVkMsYUFBYTtFQUFBLFdBQWJBLGFBQWE7SUFBYkEsYUFBYTtJQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBYkEsYUFBYTtFQUFBLEdBQWJBLGFBQWEsS0FBYkEsYUFBYTtFQUFBO0VBQUEsSUFPYkMscUJBQXFCO0VBQUEsV0FBckJBLHFCQUFxQjtJQUFyQkEscUJBQXFCO0lBQXJCQSxxQkFBcUI7SUFBckJBLHFCQUFxQjtFQUFBLEdBQXJCQSxxQkFBcUIsS0FBckJBLHFCQUFxQjtFQUFBO0VBQUEsSUFNckJDLFlBQVk7RUFBQSxXQUFaQSxZQUFZO0lBQVpBLFlBQVk7SUFBWkEsWUFBWTtJQUFaQSxZQUFZO0lBQVpBLFlBQVk7SUFBWkEsWUFBWTtFQUFBLEdBQVpBLFlBQVksS0FBWkEsWUFBWTtFQUFBO0VBQUEsSUFRWkMsaUJBQWlCLEVBSzdCO0VBQUEsV0FMWUEsaUJBQWlCO0lBQWpCQSxpQkFBaUI7SUFBakJBLGlCQUFpQjtFQUFBLEdBQWpCQSxpQkFBaUIsS0FBakJBLGlCQUFpQjtFQUFBO0VBQUEsSUFPakJDLFVBQVU7RUFBQSxXQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7RUFBQSxHQUFWQSxVQUFVLEtBQVZBLFVBQVU7RUFBQTtFQUFBLElBT1ZDLGVBQWUsRUFNM0I7RUFBQSxXQU5ZQSxlQUFlO0lBQWZBLGVBQWU7SUFBZkEsZUFBZTtJQUFmQSxlQUFlO0VBQUEsR0FBZkEsZUFBZSxLQUFmQSxlQUFlO0VBQUE7RUFBQTtBQUFBIn0=
@@ -1,7 +1,7 @@
1
1
  import type { FormElementType } from "sap/fe/core/converters/controls/Common/Form";
2
2
  import type { FlexSettings, HeaderFacetType } from "sap/fe/core/converters/controls/ObjectPage/HeaderFacet";
3
3
  import type { CompiledBindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
4
- import type { GridTableRowCountMode, TableType } from "./controls/Common/Table";
4
+ import type { TableRowCountMode, TableType } from "./controls/Common/Table";
5
5
  import type { ConfigurableRecord, Position, Positionable } from "./helpers/ConfigurableObject";
6
6
 
7
7
  // ENUMS
@@ -352,9 +352,10 @@ export type ChartPersonalizationManifestSettings =
352
352
  };
353
353
 
354
354
  export type ChartManifestConfiguration = {
355
- chartSettings: {
355
+ chartSettings?: {
356
356
  personalization: ChartPersonalizationManifestSettings;
357
357
  };
358
+ enableAddCardToInsights?: boolean;
358
359
  };
359
360
 
360
361
  export type ActionAfterExecutionConfiguration = {
@@ -419,13 +420,11 @@ export type TableColumnSettings = {
419
420
  */
420
421
  export type FormatOptionsType = {
421
422
  hasDraftIndicator?: boolean;
422
- semantickeys?: string[];
423
423
  textLinesEdit?: number;
424
424
  textMaxCharactersDisplay?: number;
425
425
  textExpandBehaviorDisplay?: string;
426
426
  textMaxLength?: number;
427
-
428
- objectStatusTextVisibility?: string;
427
+ showErrorObjectStatus?: string;
429
428
  fieldGroupDraftIndicatorPropertyPath?: string;
430
429
  };
431
430
 
@@ -455,6 +454,7 @@ export type TableManifestSettingsConfiguration = {
455
454
  inlineCreationRowsHiddenInEditMode?: boolean;
456
455
  };
457
456
  enableExport?: boolean;
457
+ frozenColumnCount?: number;
458
458
  quickVariantSelection?: {
459
459
  paths: [
460
460
  {
@@ -474,7 +474,7 @@ export type TableManifestSettingsConfiguration = {
474
474
  */
475
475
  selectionMode?: SelectionMode;
476
476
  type?: TableType;
477
- rowCountMode?: GridTableRowCountMode;
477
+ rowCountMode?: TableRowCountMode;
478
478
  rowCount?: number;
479
479
  condensedTableLayout?: boolean;
480
480
  selectAll?: boolean;
@@ -482,5 +482,6 @@ export type TableManifestSettingsConfiguration = {
482
482
  enablePaste?: boolean;
483
483
  enableFullScreen?: boolean;
484
484
  enableMassEdit?: boolean;
485
+ enableAddCardToInsights?: boolean;
485
486
  hierarchyQualifier?: string;
486
487
  };