@sapui5/sap.fe.core 1.134.0 → 1.136.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 (395) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +6 -62
  4. package/src/sap/fe/core/ActionRuntime.ts +14 -65
  5. package/src/sap/fe/core/AppComponent.js +10 -2
  6. package/src/sap/fe/core/AppComponent.ts +6 -0
  7. package/src/sap/fe/core/AppStateHandler.js +9 -7
  8. package/src/sap/fe/core/AppStateHandler.ts +7 -5
  9. package/src/sap/fe/core/BaseController.js +1 -1
  10. package/src/sap/fe/core/CommonUtils.js +8 -4
  11. package/src/sap/fe/core/CommonUtils.ts +19 -4
  12. package/src/sap/fe/core/ExtensionAPI.js +7 -5
  13. package/src/sap/fe/core/ExtensionAPI.ts +5 -3
  14. package/src/sap/fe/core/IRowBindingInterface.js +1 -1
  15. package/src/sap/fe/core/InsightsFormattersExtension.js +1 -1
  16. package/src/sap/fe/core/PageController.js +36 -6
  17. package/src/sap/fe/core/PageController.ts +30 -0
  18. package/src/sap/fe/core/ResourceModel.js +1 -1
  19. package/src/sap/fe/core/ReuseComponent.js +1 -1
  20. package/src/sap/fe/core/TemplateComponent.js +1 -1
  21. package/src/sap/fe/core/TemplateModel.js +1 -1
  22. package/src/sap/fe/core/UIProvider.js +2 -2
  23. package/src/sap/fe/core/UIProvider.ts +3 -32
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +34 -16
  25. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +39 -18
  26. package/src/sap/fe/core/buildingBlocks/IBuildingBlockOwnerComponent.js +1 -1
  27. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
  28. package/src/sap/fe/core/buildingBlocks/templating/AttributeModel.js +1 -1
  29. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockFormatter.js +1 -1
  30. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +2 -2
  31. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +1 -0
  32. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +7 -7
  33. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +9 -9
  34. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +1 -1
  35. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +5 -3
  36. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +3 -1
  37. package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
  38. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +15 -15
  39. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +19 -19
  40. package/src/sap/fe/core/controllerextensions/ContextSharing.js +1 -1
  41. package/src/sap/fe/core/controllerextensions/EditFlow.js +74 -93
  42. package/src/sap/fe/core/controllerextensions/EditFlow.ts +89 -108
  43. package/src/sap/fe/core/controllerextensions/Feedback.js +1 -1
  44. package/src/sap/fe/core/controllerextensions/InlineEditFlow.js +355 -0
  45. package/src/sap/fe/core/controllerextensions/InlineEditFlow.ts +387 -0
  46. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +1 -1
  47. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  48. package/src/sap/fe/core/controllerextensions/InternalRouting.js +36 -11
  49. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +36 -10
  50. package/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
  51. package/src/sap/fe/core/controllerextensions/MessageHandler.js +36 -6
  52. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +41 -1
  53. package/src/sap/fe/core/controllerextensions/PageReady.js +5 -2
  54. package/src/sap/fe/core/controllerextensions/PageReady.ts +3 -0
  55. package/src/sap/fe/core/controllerextensions/Paginator.js +1 -1
  56. package/src/sap/fe/core/controllerextensions/Placeholder.js +1 -1
  57. package/src/sap/fe/core/controllerextensions/Recommendations.js +1 -1
  58. package/src/sap/fe/core/controllerextensions/Routing.js +9 -9
  59. package/src/sap/fe/core/controllerextensions/Routing.ts +4 -4
  60. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  61. package/src/sap/fe/core/controllerextensions/Share.js +1 -1
  62. package/src/sap/fe/core/controllerextensions/SideEffects.js +13 -6
  63. package/src/sap/fe/core/controllerextensions/SideEffects.ts +13 -6
  64. package/src/sap/fe/core/controllerextensions/Telemetry.js +1 -1
  65. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  66. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +14 -11
  67. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +20 -14
  68. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +4 -12
  69. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +2 -10
  70. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +12 -2
  71. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +12 -0
  72. package/src/sap/fe/core/controllerextensions/dialog/ODataStrictDialog.js +1 -1
  73. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
  74. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +111 -89
  75. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +140 -105
  76. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +137 -79
  77. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +133 -120
  78. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +3 -3
  79. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +4 -1
  80. package/src/sap/fe/core/controllerextensions/editFlow/editFlowConstants.js +1 -1
  81. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.js +26 -17
  82. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.ts +32 -23
  83. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.js +3 -3
  84. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.ts +1 -1
  85. package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.js +103 -23
  86. package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.ts +144 -53
  87. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationMessage.js +29 -11
  88. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationMessage.ts +39 -15
  89. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.js +24 -22
  90. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.ts +28 -26
  91. package/src/sap/fe/core/controllerextensions/editFlow/operations/actionHelper.js +1 -1
  92. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -572
  93. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +25 -873
  94. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  95. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +98 -56
  96. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +102 -80
  97. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +5 -3
  98. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +7 -4
  99. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +1 -1
  100. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +1 -1
  101. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +1 -1
  102. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +1 -1
  103. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  104. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +1 -1
  105. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributorMixin.js +1 -1
  106. package/src/sap/fe/core/controls/Any.js +1 -1
  107. package/src/sap/fe/core/controls/AnyElement.js +1 -1
  108. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  109. package/src/sap/fe/core/controls/ComponentLoader.js +1 -1
  110. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.js +3 -3
  111. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.tsx +8 -1
  112. package/src/sap/fe/core/controls/DataWatcher.js +4 -3
  113. package/src/sap/fe/core/controls/DataWatcher.tsx +4 -1
  114. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
  115. package/src/sap/fe/core/controls/HideFormGroupAutomatically.js +10 -4
  116. package/src/sap/fe/core/controls/HideFormGroupAutomatically.ts +13 -2
  117. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -1
  118. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.js +1 -1
  119. package/src/sap/fe/core/controls/inlineEditFlow/BeforeActionDialog.js +68 -0
  120. package/src/sap/fe/core/controls/inlineEditFlow/BeforeActionDialog.tsx +52 -0
  121. package/src/sap/fe/core/controls/inlineEditFlow/BeforeNavigationDialog.js +144 -0
  122. package/src/sap/fe/core/controls/inlineEditFlow/BeforeNavigationDialog.tsx +128 -0
  123. package/src/sap/fe/core/controls/inlineEditFlow/DraftExistsDialog.js +53 -0
  124. package/src/sap/fe/core/controls/inlineEditFlow/DraftExistsDialog.tsx +39 -0
  125. package/src/sap/fe/core/converters/ConverterContext.js +1 -1
  126. package/src/sap/fe/core/converters/ManifestSettings.js +3 -2
  127. package/src/sap/fe/core/converters/ManifestSettings.ts +42 -20
  128. package/src/sap/fe/core/converters/ManifestWrapper.js +8 -2
  129. package/src/sap/fe/core/converters/ManifestWrapper.ts +8 -0
  130. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  131. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  132. package/src/sap/fe/core/converters/annotations/DataField.js +2 -2
  133. package/src/sap/fe/core/converters/annotations/DataField.ts +2 -1
  134. package/src/sap/fe/core/converters/controls/Common/Action.js +55 -6
  135. package/src/sap/fe/core/converters/controls/Common/Action.ts +59 -3
  136. package/src/sap/fe/core/converters/controls/Common/Chart.js +45 -6
  137. package/src/sap/fe/core/converters/controls/Common/Chart.ts +60 -9
  138. package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
  139. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  140. package/src/sap/fe/core/converters/controls/Common/Form.js +21 -5
  141. package/src/sap/fe/core/converters/controls/Common/Form.ts +25 -5
  142. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  143. package/src/sap/fe/core/converters/controls/Common/Table.js +89 -1686
  144. package/src/sap/fe/core/converters/controls/Common/Table.ts +254 -2513
  145. package/src/sap/fe/core/converters/controls/Common/table/Columns.js +1701 -0
  146. package/src/sap/fe/core/converters/controls/Common/table/Columns.ts +2377 -0
  147. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +64 -15
  148. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +76 -14
  149. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +7 -36
  150. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +8 -46
  151. package/src/sap/fe/core/converters/controls/ListReport/FilterField.js +106 -0
  152. package/src/sap/fe/core/converters/controls/ListReport/FilterField.ts +129 -0
  153. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +10 -5
  154. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +8 -3
  155. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
  156. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +5 -3
  157. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +11 -4
  158. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +7 -2
  159. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  160. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  161. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -1
  162. package/src/sap/fe/core/converters/helpers/ID.js +1 -1
  163. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +1 -1
  164. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  165. package/src/sap/fe/core/converters/helpers/Key.js +1 -1
  166. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  167. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  168. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +30 -8
  169. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +40 -16
  170. package/src/sap/fe/core/converters/templates/ListReportConverter.js +5 -3
  171. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +5 -1
  172. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  173. package/src/sap/fe/core/designtime/AnnotationBasedChanges.js +184 -0
  174. package/src/sap/fe/core/designtime/AnnotationBasedChanges.ts +240 -0
  175. package/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
  176. package/src/sap/fe/core/designtime/messagebundle.properties +11 -0
  177. package/src/sap/fe/core/designtime/messagebundle_ar.properties +7 -0
  178. package/src/sap/fe/core/designtime/messagebundle_bg.properties +7 -0
  179. package/src/sap/fe/core/designtime/messagebundle_ca.properties +7 -0
  180. package/src/sap/fe/core/designtime/messagebundle_cnr.properties +7 -0
  181. package/src/sap/fe/core/designtime/messagebundle_cs.properties +7 -0
  182. package/src/sap/fe/core/designtime/messagebundle_cy.properties +7 -0
  183. package/src/sap/fe/core/designtime/messagebundle_da.properties +7 -0
  184. package/src/sap/fe/core/designtime/messagebundle_de.properties +7 -0
  185. package/src/sap/fe/core/designtime/messagebundle_el.properties +7 -0
  186. package/src/sap/fe/core/designtime/messagebundle_en.properties +7 -0
  187. package/src/sap/fe/core/designtime/messagebundle_en_GB.properties +7 -0
  188. package/src/sap/fe/core/designtime/messagebundle_es.properties +7 -0
  189. package/src/sap/fe/core/designtime/messagebundle_es_MX.properties +7 -0
  190. package/src/sap/fe/core/designtime/messagebundle_et.properties +7 -0
  191. package/src/sap/fe/core/designtime/messagebundle_fi.properties +7 -0
  192. package/src/sap/fe/core/designtime/messagebundle_fr.properties +7 -0
  193. package/src/sap/fe/core/designtime/messagebundle_fr_CA.properties +7 -0
  194. package/src/sap/fe/core/designtime/messagebundle_hi.properties +7 -0
  195. package/src/sap/fe/core/designtime/messagebundle_hr.properties +7 -0
  196. package/src/sap/fe/core/designtime/messagebundle_hu.properties +7 -0
  197. package/src/sap/fe/core/designtime/messagebundle_id.properties +7 -0
  198. package/src/sap/fe/core/designtime/messagebundle_it.properties +7 -0
  199. package/src/sap/fe/core/designtime/messagebundle_iw.properties +7 -0
  200. package/src/sap/fe/core/designtime/messagebundle_ja.properties +7 -0
  201. package/src/sap/fe/core/designtime/messagebundle_kk.properties +7 -0
  202. package/src/sap/fe/core/designtime/messagebundle_ko.properties +7 -0
  203. package/src/sap/fe/core/designtime/messagebundle_lt.properties +7 -0
  204. package/src/sap/fe/core/designtime/messagebundle_lv.properties +7 -0
  205. package/src/sap/fe/core/designtime/messagebundle_mk.properties +7 -0
  206. package/src/sap/fe/core/designtime/messagebundle_ms.properties +7 -0
  207. package/src/sap/fe/core/designtime/messagebundle_nl.properties +7 -0
  208. package/src/sap/fe/core/designtime/messagebundle_no.properties +7 -0
  209. package/src/sap/fe/core/designtime/messagebundle_pl.properties +7 -0
  210. package/src/sap/fe/core/designtime/messagebundle_pt.properties +7 -0
  211. package/src/sap/fe/core/designtime/messagebundle_pt_PT.properties +7 -0
  212. package/src/sap/fe/core/designtime/messagebundle_ro.properties +7 -0
  213. package/src/sap/fe/core/designtime/messagebundle_ru.properties +7 -0
  214. package/src/sap/fe/core/designtime/messagebundle_sh.properties +7 -0
  215. package/src/sap/fe/core/designtime/messagebundle_sk.properties +7 -0
  216. package/src/sap/fe/core/designtime/messagebundle_sl.properties +7 -0
  217. package/src/sap/fe/core/designtime/messagebundle_sr.properties +7 -0
  218. package/src/sap/fe/core/designtime/messagebundle_sv.properties +7 -0
  219. package/src/sap/fe/core/designtime/messagebundle_th.properties +7 -0
  220. package/src/sap/fe/core/designtime/messagebundle_tr.properties +7 -0
  221. package/src/sap/fe/core/designtime/messagebundle_uk.properties +7 -0
  222. package/src/sap/fe/core/designtime/messagebundle_vi.properties +7 -0
  223. package/src/sap/fe/core/designtime/messagebundle_zh_CN.properties +7 -0
  224. package/src/sap/fe/core/designtime/messagebundle_zh_TW.properties +7 -0
  225. package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
  226. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  227. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  228. package/src/sap/fe/core/formatters/FiscalFormat.js +1 -1
  229. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
  230. package/src/sap/fe/core/formatters/StandardFormatter.js +1 -1
  231. package/src/sap/fe/core/formatters/ValueFormatter.js +27 -12
  232. package/src/sap/fe/core/formatters/ValueFormatter.ts +25 -11
  233. package/src/sap/fe/core/fpm/Component.js +1 -1
  234. package/src/sap/fe/core/fpm/manifest.json +1 -1
  235. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +1 -1
  236. package/src/sap/fe/core/helpers/AppStartupHelper.js +25 -4
  237. package/src/sap/fe/core/helpers/AppStartupHelper.ts +28 -2
  238. package/src/sap/fe/core/helpers/BindingHelper.js +4 -3
  239. package/src/sap/fe/core/helpers/BindingHelper.ts +2 -1
  240. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +1 -1
  241. package/src/sap/fe/core/helpers/DeleteHelper.js +6 -12
  242. package/src/sap/fe/core/helpers/DeleteHelper.ts +4 -9
  243. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
  244. package/src/sap/fe/core/helpers/EditState.js +1 -1
  245. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -1
  246. package/src/sap/fe/core/helpers/FPMHelper.js +9 -3
  247. package/src/sap/fe/core/helpers/FPMHelper.ts +13 -1
  248. package/src/sap/fe/core/helpers/HTTP503Handler.js +1 -1
  249. package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
  250. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -1
  251. package/src/sap/fe/core/helpers/LoaderUtils.js +1 -1
  252. package/src/sap/fe/core/helpers/ManifestHelper.js +1 -1
  253. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  254. package/src/sap/fe/core/helpers/MetaModelFunction.js +1 -1
  255. package/src/sap/fe/core/helpers/MetaPath.js +1 -1
  256. package/src/sap/fe/core/helpers/ModelHelper.js +15 -5
  257. package/src/sap/fe/core/helpers/ModelHelper.ts +15 -4
  258. package/src/sap/fe/core/helpers/PasteHelper.js +39 -40
  259. package/src/sap/fe/core/helpers/PasteHelper.ts +49 -51
  260. package/src/sap/fe/core/helpers/PromiseKeeper.js +1 -1
  261. package/src/sap/fe/core/helpers/RecommendationHelper.js +1 -1
  262. package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
  263. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  264. package/src/sap/fe/core/helpers/SizeHelper.js +1 -1
  265. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  266. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +1 -1
  267. package/src/sap/fe/core/helpers/Synchronization.js +1 -1
  268. package/src/sap/fe/core/helpers/TitleHelper.js +1 -1
  269. package/src/sap/fe/core/helpers/ToES6Promise.js +1 -1
  270. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  271. package/src/sap/fe/core/helpers/WebSocket.js +11 -2
  272. package/src/sap/fe/core/helpers/WebSocket.ts +8 -0
  273. package/src/sap/fe/core/library.js +16 -4
  274. package/src/sap/fe/core/library.support.js +1 -1
  275. package/src/sap/fe/core/library.ts +1 -0
  276. package/src/sap/fe/core/manifestMerger/AddNewPage.js +1 -1
  277. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  278. package/src/sap/fe/core/messagebundle.properties +41 -2
  279. package/src/sap/fe/core/messagebundle_ar.properties +25 -4
  280. package/src/sap/fe/core/messagebundle_bg.properties +25 -4
  281. package/src/sap/fe/core/messagebundle_ca.properties +24 -3
  282. package/src/sap/fe/core/messagebundle_cnr.properties +25 -4
  283. package/src/sap/fe/core/messagebundle_cs.properties +23 -2
  284. package/src/sap/fe/core/messagebundle_cy.properties +24 -3
  285. package/src/sap/fe/core/messagebundle_da.properties +25 -4
  286. package/src/sap/fe/core/messagebundle_de.properties +28 -7
  287. package/src/sap/fe/core/messagebundle_el.properties +23 -2
  288. package/src/sap/fe/core/messagebundle_en.properties +25 -4
  289. package/src/sap/fe/core/messagebundle_en_GB.properties +25 -4
  290. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +26 -5
  291. package/src/sap/fe/core/messagebundle_es.properties +23 -2
  292. package/src/sap/fe/core/messagebundle_es_MX.properties +23 -2
  293. package/src/sap/fe/core/messagebundle_et.properties +23 -2
  294. package/src/sap/fe/core/messagebundle_fi.properties +23 -2
  295. package/src/sap/fe/core/messagebundle_fr.properties +26 -5
  296. package/src/sap/fe/core/messagebundle_fr_CA.properties +23 -2
  297. package/src/sap/fe/core/messagebundle_hi.properties +24 -3
  298. package/src/sap/fe/core/messagebundle_hr.properties +27 -6
  299. package/src/sap/fe/core/messagebundle_hu.properties +23 -2
  300. package/src/sap/fe/core/messagebundle_id.properties +23 -2
  301. package/src/sap/fe/core/messagebundle_it.properties +25 -4
  302. package/src/sap/fe/core/messagebundle_iw.properties +24 -3
  303. package/src/sap/fe/core/messagebundle_ja.properties +24 -3
  304. package/src/sap/fe/core/messagebundle_kk.properties +23 -2
  305. package/src/sap/fe/core/messagebundle_ko.properties +25 -4
  306. package/src/sap/fe/core/messagebundle_lt.properties +23 -2
  307. package/src/sap/fe/core/messagebundle_lv.properties +25 -4
  308. package/src/sap/fe/core/messagebundle_mk.properties +23 -2
  309. package/src/sap/fe/core/messagebundle_ms.properties +24 -3
  310. package/src/sap/fe/core/messagebundle_nl.properties +23 -2
  311. package/src/sap/fe/core/messagebundle_no.properties +23 -2
  312. package/src/sap/fe/core/messagebundle_pl.properties +25 -4
  313. package/src/sap/fe/core/messagebundle_pt.properties +25 -4
  314. package/src/sap/fe/core/messagebundle_pt_PT.properties +24 -3
  315. package/src/sap/fe/core/messagebundle_ro.properties +25 -4
  316. package/src/sap/fe/core/messagebundle_ru.properties +24 -3
  317. package/src/sap/fe/core/messagebundle_sh.properties +25 -4
  318. package/src/sap/fe/core/messagebundle_sk.properties +24 -3
  319. package/src/sap/fe/core/messagebundle_sl.properties +28 -7
  320. package/src/sap/fe/core/messagebundle_sr.properties +25 -4
  321. package/src/sap/fe/core/messagebundle_sv.properties +23 -2
  322. package/src/sap/fe/core/messagebundle_th.properties +25 -4
  323. package/src/sap/fe/core/messagebundle_tr.properties +23 -2
  324. package/src/sap/fe/core/messagebundle_uk.properties +25 -4
  325. package/src/sap/fe/core/messagebundle_vi.properties +25 -4
  326. package/src/sap/fe/core/messagebundle_zh_CN.properties +26 -5
  327. package/src/sap/fe/core/messagebundle_zh_TW.properties +24 -3
  328. package/src/sap/fe/core/rootView/Fcl.controller.js +11 -7
  329. package/src/sap/fe/core/rootView/Fcl.controller.ts +16 -7
  330. package/src/sap/fe/core/rootView/NavContainer.controller.js +3 -3
  331. package/src/sap/fe/core/rootView/NavContainer.controller.ts +1 -1
  332. package/src/sap/fe/core/rootView/RootViewBaseController.js +87 -35
  333. package/src/sap/fe/core/rootView/RootViewBaseController.ts +113 -57
  334. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
  335. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
  336. package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +29 -13
  337. package/src/sap/fe/core/services/CollaborationManagerServiceFactory.ts +27 -13
  338. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +1 -1
  339. package/src/sap/fe/core/services/ContextSharingServiceFactory.js +1 -1
  340. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +8 -2
  341. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +6 -0
  342. package/src/sap/fe/core/services/InlineEditServiceFactory.js +11 -5
  343. package/src/sap/fe/core/services/InlineEditServiceFactory.ts +9 -3
  344. package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
  345. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  346. package/src/sap/fe/core/services/RoutingServiceFactory.js +14 -7
  347. package/src/sap/fe/core/services/RoutingServiceFactory.ts +11 -5
  348. package/src/sap/fe/core/services/ShellServicesFactory.js +5 -4
  349. package/src/sap/fe/core/services/ShellServicesFactory.ts +5 -3
  350. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +28 -4
  351. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +32 -3
  352. package/src/sap/fe/core/services/TelemetryServiceFactory.js +1 -1
  353. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  354. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +1 -1
  355. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +1 -1
  356. package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.js +1 -1
  357. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
  358. package/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +1 -1
  359. package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
  360. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
  361. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
  362. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  363. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  364. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
  365. package/src/sap/fe/core/templating/ActionHelper.js +1 -1
  366. package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
  367. package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -1
  368. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
  369. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  370. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  371. package/src/sap/fe/core/templating/EntitySetHelper.js +199 -59
  372. package/src/sap/fe/core/templating/EntitySetHelper.ts +221 -61
  373. package/src/sap/fe/core/templating/EntityTypeHelper.js +1 -1
  374. package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
  375. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  376. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  377. package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
  378. package/src/sap/fe/core/templating/SemanticObjectHelper.js +8 -10
  379. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +11 -10
  380. package/src/sap/fe/core/templating/UIFormatters.js +5 -2
  381. package/src/sap/fe/core/templating/UIFormatters.ts +3 -0
  382. package/src/sap/fe/core/type/Date.js +1 -1
  383. package/src/sap/fe/core/type/DateTimeWithTimezone.js +1 -1
  384. package/src/sap/fe/core/type/EDM.js +1 -1
  385. package/src/sap/fe/core/type/Email.js +1 -1
  386. package/src/sap/fe/core/type/FiscalDate.js +1 -1
  387. package/src/sap/fe/core/type/InputMask.js +1 -1
  388. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.js +0 -288
  389. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.tsx +0 -208
  390. package/src/sap/fe/core/controllerextensions/editFlow/ODataOperation.js +0 -404
  391. package/src/sap/fe/core/controllerextensions/editFlow/ODataOperation.ts +0 -502
  392. package/src/sap/fe/core/designtime/TextArrangementChangeAction.js +0 -100
  393. package/src/sap/fe/core/designtime/TextArrangementChangeAction.ts +0 -134
  394. package/src/sap/fe/core/operationsHelper.js +0 -192
  395. package/src/sap/fe/core/operationsHelper.ts +0 -277
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/controllerextensions/pageReady/DataQueryWatcher", "sap/fe/core/services/TemplatedViewServiceFactory", "sap/ui/base/EventProvider", "sap/ui/core/Component", "sap/ui/core/Rendering", "sap/ui/core/mvc/ControllerExtension", "sap/ui/core/mvc/OverrideExecution", "../CommonUtils"], function (Log, ClassSupport, DataQueryWatcher, TemplatedViewServiceFactory, EventProvider, Component, Rendering, ControllerExtension, OverrideExecution, CommonUtils) {
6
6
  "use strict";
@@ -159,6 +159,9 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/controll
159
159
  if (this.isPageReady()) {
160
160
  resolve();
161
161
  } else {
162
+ if (!this._oEventProvider) {
163
+ this._oEventProvider = new EventProvider();
164
+ }
162
165
  this.attachEventOnce("pageReady", null, () => {
163
166
  resolve();
164
167
  }, this);
@@ -270,4 +273,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/controll
270
273
  }(ControllerExtension), _applyDecoratedDescriptor(_class2.prototype, "onInit", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "onInit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onExit", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "onExit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "waitFor", [_dec4, _dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "waitFor"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onRouteMatched", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "onRouteMatched"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onRouteMatchedFinished", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "onRouteMatchedFinished"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onAfterBinding", [_dec8], Object.getOwnPropertyDescriptor(_class2.prototype, "onAfterBinding"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isPageReady", [_dec9, _dec10], Object.getOwnPropertyDescriptor(_class2.prototype, "isPageReady"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "waitPageReady", [_dec11, _dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "waitPageReady"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "attachEventOnce", [_dec13, _dec14], Object.getOwnPropertyDescriptor(_class2.prototype, "attachEventOnce"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "attachEvent", [_dec15, _dec16], Object.getOwnPropertyDescriptor(_class2.prototype, "attachEvent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "detachEvent", [_dec17, _dec18], Object.getOwnPropertyDescriptor(_class2.prototype, "detachEvent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isContextExpected", [_dec19, _dec20], Object.getOwnPropertyDescriptor(_class2.prototype, "isContextExpected"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "checkPageReadyDebounced", [_dec21], Object.getOwnPropertyDescriptor(_class2.prototype, "checkPageReadyDebounced"), _class2.prototype), _class2)) || _class);
271
274
  return PageReadyControllerExtension;
272
275
  }, false);
273
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYWdlUmVhZHlDb250cm9sbGVyRXh0ZW5zaW9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJtZXRob2RPdmVycmlkZSIsIl9kZWMzIiwiX2RlYzQiLCJwdWJsaWNFeHRlbnNpb24iLCJfZGVjNSIsImZpbmFsRXh0ZW5zaW9uIiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJfZGVjMTgiLCJfZGVjMTkiLCJwcml2YXRlRXh0ZW5zaW9uIiwiX2RlYzIwIiwiZXh0ZW5zaWJsZSIsIk92ZXJyaWRlRXhlY3V0aW9uIiwiSW5zdGVhZCIsIl9kZWMyMSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQ29udHJvbGxlckV4dGVuc2lvbiIsIl90aGlzIiwiY2FsbCIsInBhZ2VSZWFkeVRpbWVvdXREZWZhdWx0IiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvbkluaXQiLCJfbmJXYWl0cyIsIl9vRXZlbnRQcm92aWRlciIsIkV2ZW50UHJvdmlkZXIiLCJ2aWV3IiwiZ2V0VmlldyIsImFwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwicGFnZUNvbXBvbmVudCIsIkNvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50Rm9yIiwibWFuaWZlc3RDb250ZW50IiwiZ2V0TWFuaWZlc3QiLCJwYWdlUmVhZHlUaW1lb3V0IiwiYXR0YWNoQ29udGFpbmVyRGVmaW5lZCIsIm9FdmVudCIsInJlZ2lzdGVyQ29udGFpbmVyIiwiZ2V0UGFyYW1ldGVyIiwicm9vdENvbnRyb2xDb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2wiLCJnZXRDb250cm9sbGVyIiwicGxhY2Vob2xkZXIiLCJnZXRQbGFjZWhvbGRlciIsImlzUGxhY2Vob2xkZXJEZWJ1Z0VuYWJsZWQiLCJhdHRhY2hFdmVudCIsImdldFBsYWNlaG9sZGVyRGVidWdTdGF0cyIsImlQYWdlUmVhZHlFdmVudFRpbWVzdGFtcCIsIkRhdGUiLCJub3ciLCJpSGVyb2VzQmF0Y2hSZWNlaXZlZEV2ZW50VGltZXN0YW1wIiwicXVlcnlXYXRjaGVyIiwiRGF0YVF1ZXJ5V2F0Y2hlciIsImNoZWNrUGFnZVJlYWR5RGVib3VuY2VkIiwiYmluZCIsIm9uRXhpdCIsIl9vQXBwQ29tcG9uZW50IiwiX29Db250YWluZXIiLCJfZm5Db250YWluZXJEZWxlZ2F0ZSIsInJlbW92ZUV2ZW50RGVsZWdhdGUiLCJ3YWl0Rm9yIiwib1Byb21pc2UiLCJmaW5hbGx5Iiwic2V0VGltZW91dCIsImNhdGNoIiwib25Sb3V0ZU1hdGNoZWQiLCJfYklzUGFnZVJlYWR5Iiwib25Sb3V0ZU1hdGNoZWRGaW5pc2hlZCIsIm9uQWZ0ZXJCaW5kaW5nUHJvbWlzZSIsInJlZ2lzdGVyQWdncmVnYXRlZENvbnRyb2xzIiwibWFpbkJpbmRpbmdDb250ZXh0IiwibWFpbk9iamVjdEJpbmRpbmciLCJnZXRCaW5kaW5nIiwicmVnaXN0ZXJCaW5kaW5nIiwicHJvbWlzZXMiLCJjb250cm9scyIsImZpbmRBZ2dyZWdhdGVkT2JqZWN0cyIsImZvckVhY2giLCJlbGVtZW50Iiwib2JqZWN0QmluZGluZyIsImdldE9iamVjdEJpbmRpbmciLCJhQmluZGluZ0tleXMiLCJPYmplY3QiLCJrZXlzIiwibUJpbmRpbmdJbmZvcyIsInByb3BlcnR5TmFtZSIsImxpc3RCaW5kaW5nIiwiYmluZGluZyIsImlzQSIsInRhYmxlT3JDaGFydCIsImdldENvbnRlbnQiLCJnZXRDaGFydENvbnRyb2wiLCJiVGFibGVzQ2hhcnRzTG9hZGVkIiwicHVzaCIsInJlZ2lzdGVyVGFibGVPckNoYXJ0IiwicmVnaXN0ZXJGaWx0ZXJCYXIiLCJvbkFmdGVyQmluZGluZyIsIm9CaW5kaW5nQ29udGV4dCIsInBhcmFtZXRlcnMiLCJwYWdlUmVhZHlUaW1lb3V0VGltZXIiLCJjbGVhclRpbWVvdXQiLCJkZWZlcnJlZENyZWF0aW9uIiwiaXNDb250ZXh0RXhwZWN0ZWQiLCJMb2ciLCJlcnJvciIsImZpcmVFdmVudCIsImRpc2FibGVBbmltYXRpb24iLCJiSGFzQ29udGV4dCIsIl9iQWZ0ZXJCaW5kaW5nQWxyZWFkeUFwcGxpZWQiLCJhdHRhY2hFdmVudE9uY2UiLCJ1bmRlZmluZWQiLCJyZXNldCIsIlByb21pc2UiLCJyZXNvbHZlIiwiYVRhYmxlQ2hhcnRJbml0aWFsaXplZFByb21pc2VzIiwibGVuZ3RoIiwiYWxsIiwiaXNQYWdlUmVhZHkiLCJ3YWl0UGFnZVJlYWR5Iiwic0V2ZW50SWQiLCJvRGF0YSIsImZuRnVuY3Rpb24iLCJvTGlzdGVuZXIiLCJkZXRhY2hFdmVudCIsIm9Db250YWluZXIiLCJvbkJlZm9yZVNob3ciLCJiU2hvd24iLCJvbkJlZm9yZUhpZGUiLCJvbkFmdGVyU2hvdyIsInRoZW4iLCJhZGRFdmVudERlbGVnYXRlIiwiYkZyb21OYXYiLCJhcmd1bWVudHMiLCJwYWdlUmVhZHlUaW1lciIsIm1vZGVsIiwiZ2V0TW9kZWwiLCJ0aW1lT3V0IiwiZ2V0T3B0aW1pc3RpY0JhdGNoRW5hYmxlciIsIl9jaGVja1BhZ2VSZWFkeSIsImZuVUlVcGRhdGVkIiwiUmVuZGVyaW5nIiwiaXNQZW5kaW5nIiwiZGV0YWNoVUlVcGRhdGVkIiwiX2JXYWl0aW5nRm9yUmVmcmVzaCIsImNoZWNrVUlVcGRhdGVkIiwiaXNEYXRhUmVjZWl2ZWQiLCJyZXNldERhdGFSZWNlaXZlZCIsImF0dGFjaFVJVXBkYXRlZCIsIlRlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeSIsImdldE51bWJlck9mVmlld3NJbkNyZWF0aW9uU3RhdGUiLCJpc1NlYXJjaFBlbmRpbmciLCJmb3JjZVBhZ2VSZWFkeSIsIkNvbnRyb2xsZXJFeHRlbnNpb24iLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJQYWdlUmVhZHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXh0ZW5zaWJsZSwgZmluYWxFeHRlbnNpb24sIG1ldGhvZE92ZXJyaWRlLCBwcml2YXRlRXh0ZW5zaW9uLCBwdWJsaWNFeHRlbnNpb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgRGF0YVF1ZXJ5V2F0Y2hlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvcGFnZVJlYWR5L0RhdGFRdWVyeVdhdGNoZXJcIjtcbmltcG9ydCBUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1RlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgQ2hhcnRCbG9jayBmcm9tIFwic2FwL2ZlL21hY3Jvcy9DaGFydFwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgVGFibGVBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvVGFibGVBUElcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IEV2ZW50UHJvdmlkZXIgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50UHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQ29tcG9uZW50Q29udGFpbmVyIGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRDb250YWluZXJcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBSZW5kZXJpbmcgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlcmluZ1wiO1xuaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgT3ZlcnJpZGVFeGVjdXRpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9PdmVycmlkZUV4ZWN1dGlvblwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9CaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcIi4uL0NvbW1vblV0aWxzXCI7XG5cbnR5cGUgUmVuZGVyaW5nRXggPSB0eXBlb2YgUmVuZGVyaW5nICYge1xuXHRhdHRhY2hVSVVwZGF0ZWQ6IEZ1bmN0aW9uO1xuXHRkZXRhY2hVSVVwZGF0ZWQ6IEZ1bmN0aW9uO1xufTtcbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLlBhZ2VSZWFkeVwiKVxuY2xhc3MgUGFnZVJlYWR5Q29udHJvbGxlckV4dGVuc2lvbiBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcm90ZWN0ZWQgYmFzZSE6IFBhZ2VDb250cm9sbGVyO1xuXG5cdHByaXZhdGUgX29FdmVudFByb3ZpZGVyITogRXZlbnRQcm92aWRlcjtcblxuXHRwcml2YXRlIHZpZXchOiBWaWV3O1xuXG5cdHByaXZhdGUgYXBwQ29tcG9uZW50ITogQXBwQ29tcG9uZW50O1xuXG5cdHByaXZhdGUgcGFnZUNvbXBvbmVudCE6IENvbXBvbmVudDtcblxuXHRwcml2YXRlIF9vQ29udGFpbmVyITogQ29udHJvbDtcblxuXHRwcml2YXRlIF9iQWZ0ZXJCaW5kaW5nQWxyZWFkeUFwcGxpZWQhOiBib29sZWFuO1xuXG5cdHByaXZhdGUgX2ZuQ29udGFpbmVyRGVsZWdhdGU/OiBvYmplY3Q7XG5cblx0cHJpdmF0ZSBfbmJXYWl0cyE6IG51bWJlcjtcblxuXHRwcml2YXRlIF9iSXNQYWdlUmVhZHkhOiBib29sZWFuO1xuXG5cdHByaXZhdGUgX2JXYWl0aW5nRm9yUmVmcmVzaCE6IGJvb2xlYW47XG5cblx0cHJpdmF0ZSBiU2hvd24hOiBib29sZWFuO1xuXG5cdHByaXZhdGUgYkhhc0NvbnRleHQhOiBib29sZWFuO1xuXG5cdHByaXZhdGUgYlRhYmxlc0NoYXJ0c0xvYWRlZD86IGJvb2xlYW47XG5cblx0cHJpdmF0ZSBwYWdlUmVhZHlUaW1lcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG5cdHByaXZhdGUgcXVlcnlXYXRjaGVyITogRGF0YVF1ZXJ5V2F0Y2hlcjtcblxuXHRwcml2YXRlIG9uQWZ0ZXJCaW5kaW5nUHJvbWlzZSE6IFByb21pc2U8dm9pZD47XG5cblx0cHJpdmF0ZSBwYWdlUmVhZHlUaW1lb3V0RGVmYXVsdCA9IDcwMDA7XG5cblx0cHJpdmF0ZSBwYWdlUmVhZHlUaW1lb3V0VGltZXI/OiBudW1iZXI7XG5cblx0cHJpdmF0ZSBwYWdlUmVhZHlUaW1lb3V0PzogbnVtYmVyO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRAbWV0aG9kT3ZlcnJpZGUoKVxuXHRwdWJsaWMgb25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuX25iV2FpdHMgPSAwO1xuXHRcdHRoaXMuX29FdmVudFByb3ZpZGVyID0gdGhpcy5fb0V2ZW50UHJvdmlkZXIgPyB0aGlzLl9vRXZlbnRQcm92aWRlciA6IG5ldyBFdmVudFByb3ZpZGVyKCk7XG5cdFx0dGhpcy52aWV3ID0gdGhpcy5nZXRWaWV3KCk7XG5cblx0XHR0aGlzLmFwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLnZpZXcpO1xuXHRcdHRoaXMucGFnZUNvbXBvbmVudCA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcih0aGlzLnZpZXcpIGFzIENvbXBvbmVudDtcblx0XHRjb25zdCBtYW5pZmVzdENvbnRlbnQgPSB0aGlzLmFwcENvbXBvbmVudC5nZXRNYW5pZmVzdCgpO1xuXHRcdHRoaXMucGFnZVJlYWR5VGltZW91dCA9IG1hbmlmZXN0Q29udGVudFtcInNhcC51aTVcIl0/LnBhZ2VSZWFkeVRpbWVvdXQgPz8gdGhpcy5wYWdlUmVhZHlUaW1lb3V0RGVmYXVsdDtcblxuXHRcdGlmICh0aGlzLnBhZ2VDb21wb25lbnQ/LmF0dGFjaENvbnRhaW5lckRlZmluZWQpIHtcblx0XHRcdHRoaXMucGFnZUNvbXBvbmVudC5hdHRhY2hDb250YWluZXJEZWZpbmVkKChvRXZlbnQ6IEV2ZW50PHsgY29udGFpbmVyOiBDb21wb25lbnRDb250YWluZXIgfT4pID0+XG5cdFx0XHRcdHRoaXMucmVnaXN0ZXJDb250YWluZXIob0V2ZW50LmdldFBhcmFtZXRlcihcImNvbnRhaW5lclwiKSlcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMucmVnaXN0ZXJDb250YWluZXIodGhpcy52aWV3KTtcblx0XHR9XG5cblx0XHRjb25zdCByb290Q29udHJvbENvbnRyb2xsZXIgPSB0aGlzLmFwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKTtcblx0XHRjb25zdCBwbGFjZWhvbGRlciA9IHJvb3RDb250cm9sQ29udHJvbGxlcj8uZ2V0UGxhY2Vob2xkZXI/LigpO1xuXHRcdGlmIChwbGFjZWhvbGRlcj8uaXNQbGFjZWhvbGRlckRlYnVnRW5hYmxlZCgpKSB7XG5cdFx0XHR0aGlzLmF0dGFjaEV2ZW50KFxuXHRcdFx0XHRcInBhZ2VSZWFkeVwiLFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0cGxhY2Vob2xkZXIuZ2V0UGxhY2Vob2xkZXJEZWJ1Z1N0YXRzKCkuaVBhZ2VSZWFkeUV2ZW50VGltZXN0YW1wID0gRGF0ZS5ub3coKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0dGhpc1xuXHRcdFx0KTtcblx0XHRcdHRoaXMuYXR0YWNoRXZlbnQoXG5cdFx0XHRcdFwiaGVyb2VzQmF0Y2hSZWNlaXZlZFwiLFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0cGxhY2Vob2xkZXIuZ2V0UGxhY2Vob2xkZXJEZWJ1Z1N0YXRzKCkuaUhlcm9lc0JhdGNoUmVjZWl2ZWRFdmVudFRpbWVzdGFtcCA9IERhdGUubm93KCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRoaXNcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5xdWVyeVdhdGNoZXIgPSBuZXcgRGF0YVF1ZXJ5V2F0Y2hlcih0aGlzLl9vRXZlbnRQcm92aWRlciwgdGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZC5iaW5kKHRoaXMpKTtcblx0fVxuXG5cdEBtZXRob2RPdmVycmlkZSgpXG5cdHB1YmxpYyBvbkV4aXQoKTogdm9pZCB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRkZWxldGUgdGhpcy5fb0FwcENvbXBvbmVudDtcblx0XHRpZiAodGhpcy5fb0NvbnRhaW5lciAmJiB0aGlzLl9mbkNvbnRhaW5lckRlbGVnYXRlKSB7XG5cdFx0XHR0aGlzLl9vQ29udGFpbmVyLnJlbW92ZUV2ZW50RGVsZWdhdGUodGhpcy5fZm5Db250YWluZXJEZWxlZ2F0ZSk7XG5cdFx0fVxuXHR9XG5cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdHB1YmxpYyB3YWl0Rm9yKG9Qcm9taXNlOiBQcm9taXNlPHVua25vd24+KTogdm9pZCB7XG5cdFx0dGhpcy5fbmJXYWl0cysrO1xuXHRcdG9Qcm9taXNlXG5cdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuX25iV2FpdHMtLTtcblx0XHRcdFx0fSwgMCk7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKG51bGwpO1xuXHR9XG5cblx0QG1ldGhvZE92ZXJyaWRlKFwiX3JvdXRpbmdcIilcblx0b25Sb3V0ZU1hdGNoZWQoKTogdm9pZCB7XG5cdFx0dGhpcy5fYklzUGFnZVJlYWR5ID0gZmFsc2U7XG5cdH1cblxuXHRAbWV0aG9kT3ZlcnJpZGUoXCJfcm91dGluZ1wiKVxuXHRhc3luYyBvblJvdXRlTWF0Y2hlZEZpbmlzaGVkKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHRoaXMub25BZnRlckJpbmRpbmdQcm9taXNlO1xuXHRcdHRoaXMuY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQoKTtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlckFnZ3JlZ2F0ZWRDb250cm9scyhtYWluQmluZGluZ0NvbnRleHQ/OiBDb250ZXh0KTogUHJvbWlzZTx2b2lkPltdIHtcblx0XHRpZiAobWFpbkJpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHRjb25zdCBtYWluT2JqZWN0QmluZGluZyA9IG1haW5CaW5kaW5nQ29udGV4dC5nZXRCaW5kaW5nKCk7XG5cdFx0XHR0aGlzLnF1ZXJ5V2F0Y2hlci5yZWdpc3RlckJpbmRpbmcobWFpbk9iamVjdEJpbmRpbmcpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcblx0XHRjb25zdCBjb250cm9scyA9IHRoaXMuZ2V0VmlldygpLmZpbmRBZ2dyZWdhdGVkT2JqZWN0cyh0cnVlKTtcblxuXHRcdGNvbnRyb2xzLmZvckVhY2goKGVsZW1lbnQ6IE1hbmFnZWRPYmplY3QgJiB7IG1CaW5kaW5nSW5mb3M/OiBSZWNvcmQ8c3RyaW5nLCB7IGJpbmRpbmc/OiBCaW5kaW5nIH0+IH0pOiB2b2lkID0+IHtcblx0XHRcdGNvbnN0IG9iamVjdEJpbmRpbmcgPSBlbGVtZW50LmdldE9iamVjdEJpbmRpbmcoKTtcblx0XHRcdGlmIChvYmplY3RCaW5kaW5nKSB7XG5cdFx0XHRcdC8vIFJlZ2lzdGVyIG9uIGFsbCBvYmplY3QgYmluZGluZyAobW9zdGx5IHVzZWQgb24gb2JqZWN0IHBhZ2VzKVxuXHRcdFx0XHR0aGlzLnF1ZXJ5V2F0Y2hlci5yZWdpc3RlckJpbmRpbmcob2JqZWN0QmluZGluZyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb25zdCBhQmluZGluZ0tleXMgPSBPYmplY3Qua2V5cyhlbGVtZW50Py5tQmluZGluZ0luZm9zID8/IHt9KTtcblx0XHRcdFx0YUJpbmRpbmdLZXlzLmZvckVhY2goKHByb3BlcnR5TmFtZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGxpc3RCaW5kaW5nID0gZWxlbWVudD8ubUJpbmRpbmdJbmZvcz8uW3Byb3BlcnR5TmFtZV0uYmluZGluZztcblxuXHRcdFx0XHRcdGlmIChsaXN0QmluZGluZyAmJiBsaXN0QmluZGluZy5pc0E8T0RhdGFMaXN0QmluZGluZz4oXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFMaXN0QmluZGluZ1wiKSkge1xuXHRcdFx0XHRcdFx0dGhpcy5xdWVyeVdhdGNoZXIucmVnaXN0ZXJCaW5kaW5nKGxpc3RCaW5kaW5nKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0Ly8gVGhpcyBpcyBkaXJ0eSBidXQgTURDVGFibGVzIGFuZCBNRENDaGFydHMgaGF2ZSBhIHdlaXJkIGxvYWRpbmcgbGlmZWN5Y2xlXG5cdFx0XHRpZiAoZWxlbWVudC5pc0E8VGFibGVBUEk+KFwic2FwLmZlLm1hY3Jvcy50YWJsZS5UYWJsZUFQSVwiKSB8fCBlbGVtZW50LmlzQTxDaGFydEJsb2NrPihcInNhcC5mZS5tYWNyb3MuQ2hhcnRcIikpIHtcblx0XHRcdFx0Y29uc3QgdGFibGVPckNoYXJ0ID0gKGVsZW1lbnQgYXMgVGFibGVBUEkpLmdldENvbnRlbnQ/LigpID8/IChlbGVtZW50IGFzIENoYXJ0QmxvY2spLmdldENoYXJ0Q29udHJvbCgpO1xuXHRcdFx0XHR0aGlzLmJUYWJsZXNDaGFydHNMb2FkZWQgPSBmYWxzZTtcblx0XHRcdFx0cHJvbWlzZXMucHVzaCh0aGlzLnF1ZXJ5V2F0Y2hlci5yZWdpc3RlclRhYmxlT3JDaGFydCh0YWJsZU9yQ2hhcnQpKTtcblx0XHRcdH0gZWxzZSBpZiAoZWxlbWVudC5pc0E8RmlsdGVyQmFyPihcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuRmlsdGVyQmFyXCIpKSB7XG5cdFx0XHRcdHRoaXMucXVlcnlXYXRjaGVyLnJlZ2lzdGVyRmlsdGVyQmFyKGVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHByb21pc2VzO1xuXHR9XG5cblx0QG1ldGhvZE92ZXJyaWRlKFwiX3JvdXRpbmdcIilcblx0b25BZnRlckJpbmRpbmcob0JpbmRpbmdDb250ZXh0PzogQ29udGV4dCwgcGFyYW1ldGVycz86IHsgZGVmZXJyZWRDcmVhdGlvbj86IGJvb2xlYW4gfSk6IHZvaWQge1xuXHRcdC8vIEluIGNhc2UgdGhlIHBhZ2UgaXMgcmViaW5kIHdlIG5lZWQgdG8gY2xlYXIgdGhlIHRpbWVyIChlZzogaW4gRkNMLCB0aGUgdXNlciBjYW4gc2VsZWN0IDIgaXRlbXMgc3VjY2Vzc2l2ZWx5IGluIHRoZSBsaXN0IHJlcG9ydClcblx0XHRpZiAodGhpcy5wYWdlUmVhZHlUaW1lb3V0VGltZXIpIHtcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnBhZ2VSZWFkeVRpbWVvdXRUaW1lcik7XG5cdFx0fVxuXG5cdFx0aWYgKCFwYXJhbWV0ZXJzPy5kZWZlcnJlZENyZWF0aW9uIHx8ICF0aGlzLmlzQ29udGV4dEV4cGVjdGVkKCkgfHwgb0JpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHR0aGlzLnBhZ2VSZWFkeVRpbWVvdXRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRMb2cuZXJyb3IoXG5cdFx0XHRcdFx0YFRoZSBQYWdlUmVhZHkgRXZlbnQgd2FzIG5vdCBmaXJlZCB3aXRoaW4gdGhlICR7dGhpcy5wYWdlUmVhZHlUaW1lb3V0fSBtcyB0aW1lb3V0IC4gSXQgaGFzIGJlZW4gZm9yY2VkLiBQbGVhc2UgY29udGFjdCB5b3VyIGFwcGxpY2F0aW9uIGRldmVsb3BlciBmb3IgZnVydGhlciBhbmFseXNpc2Bcblx0XHRcdFx0KTtcblx0XHRcdFx0dGhpcy5fb0V2ZW50UHJvdmlkZXIuZmlyZUV2ZW50KFwicGFnZVJlYWR5XCIpO1xuXHRcdFx0fSwgdGhpcy5wYWdlUmVhZHlUaW1lb3V0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gV2UgYXJlIGluIGRlZmVycmVkIGNyZWF0aW9uIHdpdGggbm8gY29udGV4dCwgd2UgbmVlZCB0byB3YWl0IGZvciB0aGUgY29udGV4dCB0byBiZSBzZXQgYnkgdGhlIGNyZWF0ZSBkaWFsb2dcblx0XHRcdC8vIFdlIGFsc28gbmVlZCB0byBkaXNhYmxlIHRoZSBwbGFjZWhvbGRlciBhbmltYXRpb25cblx0XHRcdGNvbnN0IHJvb3RDb250cm9sQ29udHJvbGxlciA9IHRoaXMuYXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkuZ2V0Q29udHJvbGxlcigpO1xuXHRcdFx0Y29uc3QgcGxhY2Vob2xkZXIgPSByb290Q29udHJvbENvbnRyb2xsZXI/LmdldFBsYWNlaG9sZGVyPy4oKTtcblx0XHRcdHBsYWNlaG9sZGVyPy5kaXNhYmxlQW5pbWF0aW9uKCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuaXNDb250ZXh0RXhwZWN0ZWQoKSAmJiAhb0JpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHQvLyBGb3JjZSB0byBtZW50aW9uIHdlIGFyZSBleHBlY3RpbmcgZGF0YVxuXHRcdFx0dGhpcy5iSGFzQ29udGV4dCA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmJIYXNDb250ZXh0ID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5fYkFmdGVyQmluZGluZ0FscmVhZHlBcHBsaWVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5fYkFmdGVyQmluZGluZ0FscmVhZHlBcHBsaWVkID0gdHJ1ZTtcblxuXHRcdHRoaXMuYXR0YWNoRXZlbnRPbmNlKFwicGFnZVJlYWR5XCIsIG51bGwsICgpID0+IHtcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnBhZ2VSZWFkeVRpbWVvdXRUaW1lcik7XG5cdFx0XHR0aGlzLnBhZ2VSZWFkeVRpbWVvdXRUaW1lciA9IHVuZGVmaW5lZDtcblx0XHRcdHRoaXMuX2JBZnRlckJpbmRpbmdBbHJlYWR5QXBwbGllZCA9IGZhbHNlO1xuXHRcdFx0dGhpcy5xdWVyeVdhdGNoZXIucmVzZXQoKTtcblx0XHR9KTtcblxuXHRcdHRoaXMub25BZnRlckJpbmRpbmdQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oYXN5bmMgKHJlc29sdmUpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdGNvbnN0IGFUYWJsZUNoYXJ0SW5pdGlhbGl6ZWRQcm9taXNlcyA9IHRoaXMucmVnaXN0ZXJBZ2dyZWdhdGVkQ29udHJvbHMob0JpbmRpbmdDb250ZXh0KTtcblxuXHRcdFx0aWYgKGFUYWJsZUNoYXJ0SW5pdGlhbGl6ZWRQcm9taXNlcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGF3YWl0IFByb21pc2UuYWxsKGFUYWJsZUNoYXJ0SW5pdGlhbGl6ZWRQcm9taXNlcyk7XG5cdFx0XHRcdHRoaXMuYlRhYmxlc0NoYXJ0c0xvYWRlZCA9IHRydWU7XG5cdFx0XHRcdHRoaXMuY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQoKTtcblx0XHRcdFx0cmVzb2x2ZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZCgpO1xuXHRcdFx0XHRyZXNvbHZlKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0cHVibGljIGlzUGFnZVJlYWR5KCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9iSXNQYWdlUmVhZHk7XG5cdH1cblxuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0cHVibGljIGFzeW5jIHdhaXRQYWdlUmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5pc1BhZ2VSZWFkeSgpKSB7XG5cdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuYXR0YWNoRXZlbnRPbmNlKFxuXHRcdFx0XHRcdFwicGFnZVJlYWR5XCIsXG5cdFx0XHRcdFx0bnVsbCxcblx0XHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXNvbHZlKCk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR0aGlzXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0cHVibGljIGF0dGFjaEV2ZW50T25jZShzRXZlbnRJZDogc3RyaW5nLCBvRGF0YTogb2JqZWN0IHwgbnVsbCwgZm5GdW5jdGlvbj86IEZ1bmN0aW9uLCBvTGlzdGVuZXI/OiBvYmplY3QpOiBFdmVudFByb3ZpZGVyIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXG5cdFx0cmV0dXJuIHRoaXMuX29FdmVudFByb3ZpZGVyLmF0dGFjaEV2ZW50T25jZShzRXZlbnRJZCwgb0RhdGEgYXMgb2JqZWN0LCBmbkZ1bmN0aW9uIGFzIEZ1bmN0aW9uLCBvTGlzdGVuZXIpO1xuXHR9XG5cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdHB1YmxpYyBhdHRhY2hFdmVudChzRXZlbnRJZDogc3RyaW5nLCBvRGF0YTogb2JqZWN0IHwgbnVsbCwgZm5GdW5jdGlvbjogRnVuY3Rpb24sIG9MaXN0ZW5lcjogb2JqZWN0KTogRXZlbnRQcm92aWRlciB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1yZXN0LXBhcmFtc1xuXHRcdHJldHVybiB0aGlzLl9vRXZlbnRQcm92aWRlci5hdHRhY2hFdmVudChzRXZlbnRJZCwgb0RhdGEgYXMgb2JqZWN0LCBmbkZ1bmN0aW9uLCBvTGlzdGVuZXIpO1xuXHR9XG5cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdHB1YmxpYyBkZXRhY2hFdmVudChzRXZlbnRJZDogc3RyaW5nLCBmbkZ1bmN0aW9uOiBGdW5jdGlvbik6IEV2ZW50UHJvdmlkZXIge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItcmVzdC1wYXJhbXNcblx0XHRyZXR1cm4gdGhpcy5fb0V2ZW50UHJvdmlkZXIuZGV0YWNoRXZlbnQoc0V2ZW50SWQsIGZuRnVuY3Rpb24pO1xuXHR9XG5cblx0cHJpdmF0ZSByZWdpc3RlckNvbnRhaW5lcihvQ29udGFpbmVyOiBDb250cm9sKTogdm9pZCB7XG5cdFx0dGhpcy5fb0NvbnRhaW5lciA9IG9Db250YWluZXI7XG5cdFx0dGhpcy5fZm5Db250YWluZXJEZWxlZ2F0ZSA9IHtcblx0XHRcdG9uQmVmb3JlU2hvdzogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR0aGlzLmJTaG93biA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLl9iSXNQYWdlUmVhZHkgPSBmYWxzZTtcblx0XHRcdH0sXG5cdFx0XHRvbkJlZm9yZUhpZGU6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0dGhpcy5iU2hvd24gPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5fYklzUGFnZVJlYWR5ID0gZmFsc2U7XG5cdFx0XHR9LFxuXHRcdFx0b25BZnRlclNob3c6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0dGhpcy5iU2hvd24gPSB0cnVlO1xuXHRcdFx0XHR0aGlzLm9uQWZ0ZXJCaW5kaW5nUHJvbWlzZT8udGhlbigoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQodHJ1ZSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0dGhpcy5fb0NvbnRhaW5lcj8uYWRkRXZlbnREZWxlZ2F0ZSh0aGlzLl9mbkNvbnRhaW5lckRlbGVnYXRlLCB0aGlzKTtcblx0fVxuXG5cdEBwcml2YXRlRXh0ZW5zaW9uKClcblx0QGV4dGVuc2libGUoT3ZlcnJpZGVFeGVjdXRpb24uSW5zdGVhZClcblx0cHVibGljIGlzQ29udGV4dEV4cGVjdGVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRwdWJsaWMgY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQoYkZyb21OYXYgPSBmYWxzZSk6IHZvaWQge1xuXHRcdGlmICh0aGlzLnBhZ2VSZWFkeVRpbWVyKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy5wYWdlUmVhZHlUaW1lcik7XG5cdFx0fVxuXHRcdGNvbnN0IG1vZGVsID0gdGhpcy5nZXRWaWV3KCkuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsO1xuXHRcdGxldCB0aW1lT3V0OiBudW1iZXI7XG5cdFx0Ly8gaXNDb250ZXh0RXhwZWN0ZWQgPSB0cnVlIHdoZW4gT2JqZWN0IFBhZ2UgaXMgZGlzcGxheWVkXG5cdFx0aWYgKChtb2RlbCAmJiBtb2RlbC5nZXRPcHRpbWlzdGljQmF0Y2hFbmFibGVyKCkgPT09IG51bGwpIHx8IHRoaXMuaXNDb250ZXh0RXhwZWN0ZWQoKSkge1xuXHRcdFx0dGltZU91dCA9IDIwMDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gV2UgYXJlIHdhaXRpbmcgbGVzcyB0aW1lIGJlY2F1c2UgZGF0YSBpcyBhbHJlYWR5IHRoZXJlIChvcHRpbWlzdGljQmF0Y2gpXG5cdFx0XHR0aW1lT3V0ID0gMjA7XG5cdFx0fVxuXHRcdHRoaXMucGFnZVJlYWR5VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuX2NoZWNrUGFnZVJlYWR5KGJGcm9tTmF2KTtcblx0XHR9LCB0aW1lT3V0KSBhcyB1bmtub3duIGFzIG51bWJlcjtcblx0fVxuXG5cdHB1YmxpYyBfY2hlY2tQYWdlUmVhZHkoYkZyb21OYXYgPSBmYWxzZSk6IHZvaWQge1xuXHRcdGNvbnN0IGZuVUlVcGRhdGVkID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0Ly8gV2FpdCB1bnRpbCB0aGUgVUkgaXMgbm8gbG9uZ2VyIGRpcnR5XG5cdFx0XHRpZiAoIVJlbmRlcmluZy5pc1BlbmRpbmcoKSkge1xuXHRcdFx0XHQoUmVuZGVyaW5nIGFzIFJlbmRlcmluZ0V4KS5kZXRhY2hVSVVwZGF0ZWQoZm5VSVVwZGF0ZWQpO1xuXHRcdFx0XHR0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2ggPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZCgpO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHQvLyBJbiBjYXNlIFVJVXBkYXRlIGRvZXMgbm90IGdldCBjYWxsZWQsIGNoZWNrIGlmIFVJIGlzIG5vdCBkaXJ0eSBhbmQgdGhlbiBjYWxsIF9jaGVja1BhZ2VSZWFkeVxuXHRcdGNvbnN0IGNoZWNrVUlVcGRhdGVkID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0aWYgKFJlbmRlcmluZy5pc1BlbmRpbmcoKSkge1xuXHRcdFx0XHRzZXRUaW1lb3V0KGNoZWNrVUlVcGRhdGVkLCA1MDApO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2gpIHtcblx0XHRcdFx0dGhpcy5fYldhaXRpbmdGb3JSZWZyZXNoID0gZmFsc2U7XG5cdFx0XHRcdChSZW5kZXJpbmcgYXMgUmVuZGVyaW5nRXgpLmRldGFjaFVJVXBkYXRlZChmblVJVXBkYXRlZCk7XG5cdFx0XHRcdHRoaXMuY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQoKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0aWYgKFxuXHRcdFx0dGhpcy5iU2hvd24gJiZcblx0XHRcdHRoaXMucXVlcnlXYXRjaGVyLmlzRGF0YVJlY2VpdmVkKCkgIT09IGZhbHNlICYmXG5cdFx0XHR0aGlzLmJUYWJsZXNDaGFydHNMb2FkZWQgIT09IGZhbHNlICYmXG5cdFx0XHQoIXRoaXMuaXNDb250ZXh0RXhwZWN0ZWQoKSB8fCB0aGlzLmJIYXNDb250ZXh0KSAvLyBFaXRoZXIgbm8gY29udGV4dCBpcyBleHBlY3RlZCBvciB0aGVyZSBpcyBvbmVcblx0XHQpIHtcblx0XHRcdGlmICh0aGlzLnF1ZXJ5V2F0Y2hlci5pc0RhdGFSZWNlaXZlZCgpID09PSB0cnVlICYmICFiRnJvbU5hdiAmJiAhdGhpcy5fYldhaXRpbmdGb3JSZWZyZXNoICYmIFJlbmRlcmluZy5pc1BlbmRpbmcoKSkge1xuXHRcdFx0XHQvLyBJZiB3ZSByZXF1ZXN0ZWQgZGF0YSB3ZSBnZXQgbm90aWZpZWQgYXMgc29vbiBhcyB0aGUgZGF0YSBhcnJpdmVkLCBzbyBiZWZvcmUgdGhlIG5leHQgcmVuZGVyaW5nIHRpY2tcblx0XHRcdFx0dGhpcy5xdWVyeVdhdGNoZXIucmVzZXREYXRhUmVjZWl2ZWQoKTtcblx0XHRcdFx0dGhpcy5fYldhaXRpbmdGb3JSZWZyZXNoID0gdHJ1ZTtcblx0XHRcdFx0KFJlbmRlcmluZyBhcyBSZW5kZXJpbmdFeCkuYXR0YWNoVUlVcGRhdGVkKGZuVUlVcGRhdGVkKTtcblx0XHRcdFx0c2V0VGltZW91dChjaGVja1VJVXBkYXRlZCwgNTAwKTtcblx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdCghdGhpcy5fYldhaXRpbmdGb3JSZWZyZXNoICYmIFJlbmRlcmluZy5pc1BlbmRpbmcoKSkgfHxcblx0XHRcdFx0dGhpcy5fbmJXYWl0cyAhPT0gMCB8fFxuXHRcdFx0XHRUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkuZ2V0TnVtYmVyT2ZWaWV3c0luQ3JlYXRpb25TdGF0ZSgpID4gMCB8fFxuXHRcdFx0XHR0aGlzLnF1ZXJ5V2F0Y2hlci5pc1NlYXJjaFBlbmRpbmcoKVxuXHRcdFx0KSB7XG5cdFx0XHRcdHRoaXMuX2JXYWl0aW5nRm9yUmVmcmVzaCA9IHRydWU7XG5cdFx0XHRcdChSZW5kZXJpbmcgYXMgUmVuZGVyaW5nRXgpLmF0dGFjaFVJVXBkYXRlZChmblVJVXBkYXRlZCk7XG5cdFx0XHRcdHNldFRpbWVvdXQoY2hlY2tVSVVwZGF0ZWQsIDUwMCk7XG5cdFx0XHR9IGVsc2UgaWYgKCF0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2gpIHtcblx0XHRcdFx0Ly8gSW4gdGhlIGNhc2Ugd2UncmUgbm90IHdhaXRpbmcgZm9yIGFueSBkYXRhIChuYXZpZ2F0aW5nIGJhY2sgdG8gYSBwYWdlIHdlIGFscmVhZHkgaGF2ZSBsb2FkZWQpXG5cdFx0XHRcdC8vIGp1c3Qgd2FpdCBmb3IgYSBmcmFtZSB0byBmaXJlIHRoZSBldmVudC5cblx0XHRcdFx0dGhpcy5fYklzUGFnZVJlYWR5ID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy5fb0V2ZW50UHJvdmlkZXIuZmlyZUV2ZW50KFwicGFnZVJlYWR5XCIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBGb3JjZXMgdGhlICdwYWdlUmVhZHknIGV2ZW50IHRvIGJlIHNlbnQuXG5cdCAqL1xuXHRmb3JjZVBhZ2VSZWFkeSgpOiB2b2lkIHtcblx0XHR0aGlzLl9vRXZlbnRQcm92aWRlci5maXJlRXZlbnQoXCJwYWdlUmVhZHlcIik7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFnZVJlYWR5Q29udHJvbGxlckV4dGVuc2lvbjtcbiJdLCJt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
276
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYWdlUmVhZHlDb250cm9sbGVyRXh0ZW5zaW9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJtZXRob2RPdmVycmlkZSIsIl9kZWMzIiwiX2RlYzQiLCJwdWJsaWNFeHRlbnNpb24iLCJfZGVjNSIsImZpbmFsRXh0ZW5zaW9uIiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJfZGVjMTgiLCJfZGVjMTkiLCJwcml2YXRlRXh0ZW5zaW9uIiwiX2RlYzIwIiwiZXh0ZW5zaWJsZSIsIk92ZXJyaWRlRXhlY3V0aW9uIiwiSW5zdGVhZCIsIl9kZWMyMSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQ29udHJvbGxlckV4dGVuc2lvbiIsIl90aGlzIiwiY2FsbCIsInBhZ2VSZWFkeVRpbWVvdXREZWZhdWx0IiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvbkluaXQiLCJfbmJXYWl0cyIsIl9vRXZlbnRQcm92aWRlciIsIkV2ZW50UHJvdmlkZXIiLCJ2aWV3IiwiZ2V0VmlldyIsImFwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwicGFnZUNvbXBvbmVudCIsIkNvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50Rm9yIiwibWFuaWZlc3RDb250ZW50IiwiZ2V0TWFuaWZlc3QiLCJwYWdlUmVhZHlUaW1lb3V0IiwiYXR0YWNoQ29udGFpbmVyRGVmaW5lZCIsIm9FdmVudCIsInJlZ2lzdGVyQ29udGFpbmVyIiwiZ2V0UGFyYW1ldGVyIiwicm9vdENvbnRyb2xDb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2wiLCJnZXRDb250cm9sbGVyIiwicGxhY2Vob2xkZXIiLCJnZXRQbGFjZWhvbGRlciIsImlzUGxhY2Vob2xkZXJEZWJ1Z0VuYWJsZWQiLCJhdHRhY2hFdmVudCIsImdldFBsYWNlaG9sZGVyRGVidWdTdGF0cyIsImlQYWdlUmVhZHlFdmVudFRpbWVzdGFtcCIsIkRhdGUiLCJub3ciLCJpSGVyb2VzQmF0Y2hSZWNlaXZlZEV2ZW50VGltZXN0YW1wIiwicXVlcnlXYXRjaGVyIiwiRGF0YVF1ZXJ5V2F0Y2hlciIsImNoZWNrUGFnZVJlYWR5RGVib3VuY2VkIiwiYmluZCIsIm9uRXhpdCIsIl9vQXBwQ29tcG9uZW50IiwiX29Db250YWluZXIiLCJfZm5Db250YWluZXJEZWxlZ2F0ZSIsInJlbW92ZUV2ZW50RGVsZWdhdGUiLCJ3YWl0Rm9yIiwib1Byb21pc2UiLCJmaW5hbGx5Iiwic2V0VGltZW91dCIsImNhdGNoIiwib25Sb3V0ZU1hdGNoZWQiLCJfYklzUGFnZVJlYWR5Iiwib25Sb3V0ZU1hdGNoZWRGaW5pc2hlZCIsIm9uQWZ0ZXJCaW5kaW5nUHJvbWlzZSIsInJlZ2lzdGVyQWdncmVnYXRlZENvbnRyb2xzIiwibWFpbkJpbmRpbmdDb250ZXh0IiwibWFpbk9iamVjdEJpbmRpbmciLCJnZXRCaW5kaW5nIiwicmVnaXN0ZXJCaW5kaW5nIiwicHJvbWlzZXMiLCJjb250cm9scyIsImZpbmRBZ2dyZWdhdGVkT2JqZWN0cyIsImZvckVhY2giLCJlbGVtZW50Iiwib2JqZWN0QmluZGluZyIsImdldE9iamVjdEJpbmRpbmciLCJhQmluZGluZ0tleXMiLCJPYmplY3QiLCJrZXlzIiwibUJpbmRpbmdJbmZvcyIsInByb3BlcnR5TmFtZSIsImxpc3RCaW5kaW5nIiwiYmluZGluZyIsImlzQSIsInRhYmxlT3JDaGFydCIsImdldENvbnRlbnQiLCJnZXRDaGFydENvbnRyb2wiLCJiVGFibGVzQ2hhcnRzTG9hZGVkIiwicHVzaCIsInJlZ2lzdGVyVGFibGVPckNoYXJ0IiwicmVnaXN0ZXJGaWx0ZXJCYXIiLCJvbkFmdGVyQmluZGluZyIsIm9CaW5kaW5nQ29udGV4dCIsInBhcmFtZXRlcnMiLCJwYWdlUmVhZHlUaW1lb3V0VGltZXIiLCJjbGVhclRpbWVvdXQiLCJkZWZlcnJlZENyZWF0aW9uIiwiaXNDb250ZXh0RXhwZWN0ZWQiLCJMb2ciLCJlcnJvciIsImZpcmVFdmVudCIsImRpc2FibGVBbmltYXRpb24iLCJiSGFzQ29udGV4dCIsIl9iQWZ0ZXJCaW5kaW5nQWxyZWFkeUFwcGxpZWQiLCJhdHRhY2hFdmVudE9uY2UiLCJ1bmRlZmluZWQiLCJyZXNldCIsIlByb21pc2UiLCJyZXNvbHZlIiwiYVRhYmxlQ2hhcnRJbml0aWFsaXplZFByb21pc2VzIiwibGVuZ3RoIiwiYWxsIiwiaXNQYWdlUmVhZHkiLCJ3YWl0UGFnZVJlYWR5Iiwic0V2ZW50SWQiLCJvRGF0YSIsImZuRnVuY3Rpb24iLCJvTGlzdGVuZXIiLCJkZXRhY2hFdmVudCIsIm9Db250YWluZXIiLCJvbkJlZm9yZVNob3ciLCJiU2hvd24iLCJvbkJlZm9yZUhpZGUiLCJvbkFmdGVyU2hvdyIsInRoZW4iLCJhZGRFdmVudERlbGVnYXRlIiwiYkZyb21OYXYiLCJhcmd1bWVudHMiLCJwYWdlUmVhZHlUaW1lciIsIm1vZGVsIiwiZ2V0TW9kZWwiLCJ0aW1lT3V0IiwiZ2V0T3B0aW1pc3RpY0JhdGNoRW5hYmxlciIsIl9jaGVja1BhZ2VSZWFkeSIsImZuVUlVcGRhdGVkIiwiUmVuZGVyaW5nIiwiaXNQZW5kaW5nIiwiZGV0YWNoVUlVcGRhdGVkIiwiX2JXYWl0aW5nRm9yUmVmcmVzaCIsImNoZWNrVUlVcGRhdGVkIiwiaXNEYXRhUmVjZWl2ZWQiLCJyZXNldERhdGFSZWNlaXZlZCIsImF0dGFjaFVJVXBkYXRlZCIsIlRlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeSIsImdldE51bWJlck9mVmlld3NJbkNyZWF0aW9uU3RhdGUiLCJpc1NlYXJjaFBlbmRpbmciLCJmb3JjZVBhZ2VSZWFkeSIsIkNvbnRyb2xsZXJFeHRlbnNpb24iLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJQYWdlUmVhZHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXh0ZW5zaWJsZSwgZmluYWxFeHRlbnNpb24sIG1ldGhvZE92ZXJyaWRlLCBwcml2YXRlRXh0ZW5zaW9uLCBwdWJsaWNFeHRlbnNpb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgRGF0YVF1ZXJ5V2F0Y2hlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvcGFnZVJlYWR5L0RhdGFRdWVyeVdhdGNoZXJcIjtcbmltcG9ydCBUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1RlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgQ2hhcnRCbG9jayBmcm9tIFwic2FwL2ZlL21hY3Jvcy9DaGFydFwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgVGFibGVBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvVGFibGVBUElcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IEV2ZW50UHJvdmlkZXIgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50UHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQ29tcG9uZW50Q29udGFpbmVyIGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRDb250YWluZXJcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBSZW5kZXJpbmcgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlcmluZ1wiO1xuaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgT3ZlcnJpZGVFeGVjdXRpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9PdmVycmlkZUV4ZWN1dGlvblwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9CaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcIi4uL0NvbW1vblV0aWxzXCI7XG5cbnR5cGUgUmVuZGVyaW5nRXggPSB0eXBlb2YgUmVuZGVyaW5nICYge1xuXHRhdHRhY2hVSVVwZGF0ZWQ6IEZ1bmN0aW9uO1xuXHRkZXRhY2hVSVVwZGF0ZWQ6IEZ1bmN0aW9uO1xufTtcbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLlBhZ2VSZWFkeVwiKVxuY2xhc3MgUGFnZVJlYWR5Q29udHJvbGxlckV4dGVuc2lvbiBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcm90ZWN0ZWQgYmFzZSE6IFBhZ2VDb250cm9sbGVyO1xuXG5cdHByaXZhdGUgX29FdmVudFByb3ZpZGVyITogRXZlbnRQcm92aWRlcjtcblxuXHRwcml2YXRlIHZpZXchOiBWaWV3O1xuXG5cdHByaXZhdGUgYXBwQ29tcG9uZW50ITogQXBwQ29tcG9uZW50O1xuXG5cdHByaXZhdGUgcGFnZUNvbXBvbmVudCE6IENvbXBvbmVudDtcblxuXHRwcml2YXRlIF9vQ29udGFpbmVyITogQ29udHJvbDtcblxuXHRwcml2YXRlIF9iQWZ0ZXJCaW5kaW5nQWxyZWFkeUFwcGxpZWQhOiBib29sZWFuO1xuXG5cdHByaXZhdGUgX2ZuQ29udGFpbmVyRGVsZWdhdGU/OiBvYmplY3Q7XG5cblx0cHJpdmF0ZSBfbmJXYWl0cyE6IG51bWJlcjtcblxuXHRwcml2YXRlIF9iSXNQYWdlUmVhZHkhOiBib29sZWFuO1xuXG5cdHByaXZhdGUgX2JXYWl0aW5nRm9yUmVmcmVzaCE6IGJvb2xlYW47XG5cblx0cHJpdmF0ZSBiU2hvd24hOiBib29sZWFuO1xuXG5cdHByaXZhdGUgYkhhc0NvbnRleHQhOiBib29sZWFuO1xuXG5cdHByaXZhdGUgYlRhYmxlc0NoYXJ0c0xvYWRlZD86IGJvb2xlYW47XG5cblx0cHJpdmF0ZSBwYWdlUmVhZHlUaW1lcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG5cdHByaXZhdGUgcXVlcnlXYXRjaGVyITogRGF0YVF1ZXJ5V2F0Y2hlcjtcblxuXHRwcml2YXRlIG9uQWZ0ZXJCaW5kaW5nUHJvbWlzZSE6IFByb21pc2U8dm9pZD47XG5cblx0cHJpdmF0ZSBwYWdlUmVhZHlUaW1lb3V0RGVmYXVsdCA9IDcwMDA7XG5cblx0cHJpdmF0ZSBwYWdlUmVhZHlUaW1lb3V0VGltZXI/OiBudW1iZXI7XG5cblx0cHJpdmF0ZSBwYWdlUmVhZHlUaW1lb3V0PzogbnVtYmVyO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRAbWV0aG9kT3ZlcnJpZGUoKVxuXHRwdWJsaWMgb25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuX25iV2FpdHMgPSAwO1xuXHRcdHRoaXMuX29FdmVudFByb3ZpZGVyID0gdGhpcy5fb0V2ZW50UHJvdmlkZXIgPyB0aGlzLl9vRXZlbnRQcm92aWRlciA6IG5ldyBFdmVudFByb3ZpZGVyKCk7XG5cdFx0dGhpcy52aWV3ID0gdGhpcy5nZXRWaWV3KCk7XG5cblx0XHR0aGlzLmFwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLnZpZXcpO1xuXHRcdHRoaXMucGFnZUNvbXBvbmVudCA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcih0aGlzLnZpZXcpIGFzIENvbXBvbmVudDtcblx0XHRjb25zdCBtYW5pZmVzdENvbnRlbnQgPSB0aGlzLmFwcENvbXBvbmVudC5nZXRNYW5pZmVzdCgpO1xuXHRcdHRoaXMucGFnZVJlYWR5VGltZW91dCA9IG1hbmlmZXN0Q29udGVudFtcInNhcC51aTVcIl0/LnBhZ2VSZWFkeVRpbWVvdXQgPz8gdGhpcy5wYWdlUmVhZHlUaW1lb3V0RGVmYXVsdDtcblxuXHRcdGlmICh0aGlzLnBhZ2VDb21wb25lbnQ/LmF0dGFjaENvbnRhaW5lckRlZmluZWQpIHtcblx0XHRcdHRoaXMucGFnZUNvbXBvbmVudC5hdHRhY2hDb250YWluZXJEZWZpbmVkKChvRXZlbnQ6IEV2ZW50PHsgY29udGFpbmVyOiBDb21wb25lbnRDb250YWluZXIgfT4pID0+XG5cdFx0XHRcdHRoaXMucmVnaXN0ZXJDb250YWluZXIob0V2ZW50LmdldFBhcmFtZXRlcihcImNvbnRhaW5lclwiKSlcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMucmVnaXN0ZXJDb250YWluZXIodGhpcy52aWV3KTtcblx0XHR9XG5cblx0XHRjb25zdCByb290Q29udHJvbENvbnRyb2xsZXIgPSB0aGlzLmFwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKTtcblx0XHRjb25zdCBwbGFjZWhvbGRlciA9IHJvb3RDb250cm9sQ29udHJvbGxlcj8uZ2V0UGxhY2Vob2xkZXI/LigpO1xuXHRcdGlmIChwbGFjZWhvbGRlcj8uaXNQbGFjZWhvbGRlckRlYnVnRW5hYmxlZCgpKSB7XG5cdFx0XHR0aGlzLmF0dGFjaEV2ZW50KFxuXHRcdFx0XHRcInBhZ2VSZWFkeVwiLFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0cGxhY2Vob2xkZXIuZ2V0UGxhY2Vob2xkZXJEZWJ1Z1N0YXRzKCkuaVBhZ2VSZWFkeUV2ZW50VGltZXN0YW1wID0gRGF0ZS5ub3coKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0dGhpc1xuXHRcdFx0KTtcblx0XHRcdHRoaXMuYXR0YWNoRXZlbnQoXG5cdFx0XHRcdFwiaGVyb2VzQmF0Y2hSZWNlaXZlZFwiLFxuXHRcdFx0XHRudWxsLFxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0cGxhY2Vob2xkZXIuZ2V0UGxhY2Vob2xkZXJEZWJ1Z1N0YXRzKCkuaUhlcm9lc0JhdGNoUmVjZWl2ZWRFdmVudFRpbWVzdGFtcCA9IERhdGUubm93KCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRoaXNcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5xdWVyeVdhdGNoZXIgPSBuZXcgRGF0YVF1ZXJ5V2F0Y2hlcih0aGlzLl9vRXZlbnRQcm92aWRlciwgdGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZC5iaW5kKHRoaXMpKTtcblx0fVxuXG5cdEBtZXRob2RPdmVycmlkZSgpXG5cdHB1YmxpYyBvbkV4aXQoKTogdm9pZCB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRkZWxldGUgdGhpcy5fb0FwcENvbXBvbmVudDtcblx0XHRpZiAodGhpcy5fb0NvbnRhaW5lciAmJiB0aGlzLl9mbkNvbnRhaW5lckRlbGVnYXRlKSB7XG5cdFx0XHR0aGlzLl9vQ29udGFpbmVyLnJlbW92ZUV2ZW50RGVsZWdhdGUodGhpcy5fZm5Db250YWluZXJEZWxlZ2F0ZSk7XG5cdFx0fVxuXHR9XG5cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdHB1YmxpYyB3YWl0Rm9yKG9Qcm9taXNlOiBQcm9taXNlPHVua25vd24+KTogdm9pZCB7XG5cdFx0dGhpcy5fbmJXYWl0cysrO1xuXHRcdG9Qcm9taXNlXG5cdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuX25iV2FpdHMtLTtcblx0XHRcdFx0fSwgMCk7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKG51bGwpO1xuXHR9XG5cblx0QG1ldGhvZE92ZXJyaWRlKFwiX3JvdXRpbmdcIilcblx0b25Sb3V0ZU1hdGNoZWQoKTogdm9pZCB7XG5cdFx0dGhpcy5fYklzUGFnZVJlYWR5ID0gZmFsc2U7XG5cdH1cblxuXHRAbWV0aG9kT3ZlcnJpZGUoXCJfcm91dGluZ1wiKVxuXHRhc3luYyBvblJvdXRlTWF0Y2hlZEZpbmlzaGVkKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHRoaXMub25BZnRlckJpbmRpbmdQcm9taXNlO1xuXHRcdHRoaXMuY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQoKTtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlckFnZ3JlZ2F0ZWRDb250cm9scyhtYWluQmluZGluZ0NvbnRleHQ/OiBDb250ZXh0KTogUHJvbWlzZTx2b2lkPltdIHtcblx0XHRpZiAobWFpbkJpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHRjb25zdCBtYWluT2JqZWN0QmluZGluZyA9IG1haW5CaW5kaW5nQ29udGV4dC5nZXRCaW5kaW5nKCk7XG5cdFx0XHR0aGlzLnF1ZXJ5V2F0Y2hlci5yZWdpc3RlckJpbmRpbmcobWFpbk9iamVjdEJpbmRpbmcpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcblx0XHRjb25zdCBjb250cm9scyA9IHRoaXMuZ2V0VmlldygpLmZpbmRBZ2dyZWdhdGVkT2JqZWN0cyh0cnVlKTtcblxuXHRcdGNvbnRyb2xzLmZvckVhY2goKGVsZW1lbnQ6IE1hbmFnZWRPYmplY3QgJiB7IG1CaW5kaW5nSW5mb3M/OiBSZWNvcmQ8c3RyaW5nLCB7IGJpbmRpbmc/OiBCaW5kaW5nIH0+IH0pOiB2b2lkID0+IHtcblx0XHRcdGNvbnN0IG9iamVjdEJpbmRpbmcgPSBlbGVtZW50LmdldE9iamVjdEJpbmRpbmcoKTtcblx0XHRcdGlmIChvYmplY3RCaW5kaW5nKSB7XG5cdFx0XHRcdC8vIFJlZ2lzdGVyIG9uIGFsbCBvYmplY3QgYmluZGluZyAobW9zdGx5IHVzZWQgb24gb2JqZWN0IHBhZ2VzKVxuXHRcdFx0XHR0aGlzLnF1ZXJ5V2F0Y2hlci5yZWdpc3RlckJpbmRpbmcob2JqZWN0QmluZGluZyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb25zdCBhQmluZGluZ0tleXMgPSBPYmplY3Qua2V5cyhlbGVtZW50Py5tQmluZGluZ0luZm9zID8/IHt9KTtcblx0XHRcdFx0YUJpbmRpbmdLZXlzLmZvckVhY2goKHByb3BlcnR5TmFtZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGxpc3RCaW5kaW5nID0gZWxlbWVudD8ubUJpbmRpbmdJbmZvcz8uW3Byb3BlcnR5TmFtZV0uYmluZGluZztcblxuXHRcdFx0XHRcdGlmIChsaXN0QmluZGluZyAmJiBsaXN0QmluZGluZy5pc0E8T0RhdGFMaXN0QmluZGluZz4oXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFMaXN0QmluZGluZ1wiKSkge1xuXHRcdFx0XHRcdFx0dGhpcy5xdWVyeVdhdGNoZXIucmVnaXN0ZXJCaW5kaW5nKGxpc3RCaW5kaW5nKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0Ly8gVGhpcyBpcyBkaXJ0eSBidXQgTURDVGFibGVzIGFuZCBNRENDaGFydHMgaGF2ZSBhIHdlaXJkIGxvYWRpbmcgbGlmZWN5Y2xlXG5cdFx0XHRpZiAoZWxlbWVudC5pc0E8VGFibGVBUEk+KFwic2FwLmZlLm1hY3Jvcy50YWJsZS5UYWJsZUFQSVwiKSB8fCBlbGVtZW50LmlzQTxDaGFydEJsb2NrPihcInNhcC5mZS5tYWNyb3MuQ2hhcnRcIikpIHtcblx0XHRcdFx0Y29uc3QgdGFibGVPckNoYXJ0ID0gKGVsZW1lbnQgYXMgVGFibGVBUEkpLmdldENvbnRlbnQ/LigpID8/IChlbGVtZW50IGFzIENoYXJ0QmxvY2spLmdldENoYXJ0Q29udHJvbCgpO1xuXHRcdFx0XHR0aGlzLmJUYWJsZXNDaGFydHNMb2FkZWQgPSBmYWxzZTtcblx0XHRcdFx0cHJvbWlzZXMucHVzaCh0aGlzLnF1ZXJ5V2F0Y2hlci5yZWdpc3RlclRhYmxlT3JDaGFydCh0YWJsZU9yQ2hhcnQpKTtcblx0XHRcdH0gZWxzZSBpZiAoZWxlbWVudC5pc0E8RmlsdGVyQmFyPihcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuRmlsdGVyQmFyXCIpKSB7XG5cdFx0XHRcdHRoaXMucXVlcnlXYXRjaGVyLnJlZ2lzdGVyRmlsdGVyQmFyKGVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHByb21pc2VzO1xuXHR9XG5cblx0QG1ldGhvZE92ZXJyaWRlKFwiX3JvdXRpbmdcIilcblx0b25BZnRlckJpbmRpbmcob0JpbmRpbmdDb250ZXh0PzogQ29udGV4dCwgcGFyYW1ldGVycz86IHsgZGVmZXJyZWRDcmVhdGlvbj86IGJvb2xlYW4gfSk6IHZvaWQge1xuXHRcdC8vIEluIGNhc2UgdGhlIHBhZ2UgaXMgcmViaW5kIHdlIG5lZWQgdG8gY2xlYXIgdGhlIHRpbWVyIChlZzogaW4gRkNMLCB0aGUgdXNlciBjYW4gc2VsZWN0IDIgaXRlbXMgc3VjY2Vzc2l2ZWx5IGluIHRoZSBsaXN0IHJlcG9ydClcblx0XHRpZiAodGhpcy5wYWdlUmVhZHlUaW1lb3V0VGltZXIpIHtcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnBhZ2VSZWFkeVRpbWVvdXRUaW1lcik7XG5cdFx0fVxuXG5cdFx0aWYgKCFwYXJhbWV0ZXJzPy5kZWZlcnJlZENyZWF0aW9uIHx8ICF0aGlzLmlzQ29udGV4dEV4cGVjdGVkKCkgfHwgb0JpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHR0aGlzLnBhZ2VSZWFkeVRpbWVvdXRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRMb2cuZXJyb3IoXG5cdFx0XHRcdFx0YFRoZSBQYWdlUmVhZHkgRXZlbnQgd2FzIG5vdCBmaXJlZCB3aXRoaW4gdGhlICR7dGhpcy5wYWdlUmVhZHlUaW1lb3V0fSBtcyB0aW1lb3V0IC4gSXQgaGFzIGJlZW4gZm9yY2VkLiBQbGVhc2UgY29udGFjdCB5b3VyIGFwcGxpY2F0aW9uIGRldmVsb3BlciBmb3IgZnVydGhlciBhbmFseXNpc2Bcblx0XHRcdFx0KTtcblx0XHRcdFx0dGhpcy5fb0V2ZW50UHJvdmlkZXIuZmlyZUV2ZW50KFwicGFnZVJlYWR5XCIpO1xuXHRcdFx0fSwgdGhpcy5wYWdlUmVhZHlUaW1lb3V0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gV2UgYXJlIGluIGRlZmVycmVkIGNyZWF0aW9uIHdpdGggbm8gY29udGV4dCwgd2UgbmVlZCB0byB3YWl0IGZvciB0aGUgY29udGV4dCB0byBiZSBzZXQgYnkgdGhlIGNyZWF0ZSBkaWFsb2dcblx0XHRcdC8vIFdlIGFsc28gbmVlZCB0byBkaXNhYmxlIHRoZSBwbGFjZWhvbGRlciBhbmltYXRpb25cblx0XHRcdGNvbnN0IHJvb3RDb250cm9sQ29udHJvbGxlciA9IHRoaXMuYXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkuZ2V0Q29udHJvbGxlcigpO1xuXHRcdFx0Y29uc3QgcGxhY2Vob2xkZXIgPSByb290Q29udHJvbENvbnRyb2xsZXI/LmdldFBsYWNlaG9sZGVyPy4oKTtcblx0XHRcdHBsYWNlaG9sZGVyPy5kaXNhYmxlQW5pbWF0aW9uKCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuaXNDb250ZXh0RXhwZWN0ZWQoKSAmJiAhb0JpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHQvLyBGb3JjZSB0byBtZW50aW9uIHdlIGFyZSBleHBlY3RpbmcgZGF0YVxuXHRcdFx0dGhpcy5iSGFzQ29udGV4dCA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmJIYXNDb250ZXh0ID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5fYkFmdGVyQmluZGluZ0FscmVhZHlBcHBsaWVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5fYkFmdGVyQmluZGluZ0FscmVhZHlBcHBsaWVkID0gdHJ1ZTtcblxuXHRcdHRoaXMuYXR0YWNoRXZlbnRPbmNlKFwicGFnZVJlYWR5XCIsIG51bGwsICgpID0+IHtcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnBhZ2VSZWFkeVRpbWVvdXRUaW1lcik7XG5cdFx0XHR0aGlzLnBhZ2VSZWFkeVRpbWVvdXRUaW1lciA9IHVuZGVmaW5lZDtcblx0XHRcdHRoaXMuX2JBZnRlckJpbmRpbmdBbHJlYWR5QXBwbGllZCA9IGZhbHNlO1xuXHRcdFx0dGhpcy5xdWVyeVdhdGNoZXIucmVzZXQoKTtcblx0XHR9KTtcblxuXHRcdHRoaXMub25BZnRlckJpbmRpbmdQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oYXN5bmMgKHJlc29sdmUpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdGNvbnN0IGFUYWJsZUNoYXJ0SW5pdGlhbGl6ZWRQcm9taXNlcyA9IHRoaXMucmVnaXN0ZXJBZ2dyZWdhdGVkQ29udHJvbHMob0JpbmRpbmdDb250ZXh0KTtcblxuXHRcdFx0aWYgKGFUYWJsZUNoYXJ0SW5pdGlhbGl6ZWRQcm9taXNlcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGF3YWl0IFByb21pc2UuYWxsKGFUYWJsZUNoYXJ0SW5pdGlhbGl6ZWRQcm9taXNlcyk7XG5cdFx0XHRcdHRoaXMuYlRhYmxlc0NoYXJ0c0xvYWRlZCA9IHRydWU7XG5cdFx0XHRcdHRoaXMuY2hlY2tQYWdlUmVhZHlEZWJvdW5jZWQoKTtcblx0XHRcdFx0cmVzb2x2ZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZCgpO1xuXHRcdFx0XHRyZXNvbHZlKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0cHVibGljIGlzUGFnZVJlYWR5KCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9iSXNQYWdlUmVhZHk7XG5cdH1cblxuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0cHVibGljIGFzeW5jIHdhaXRQYWdlUmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5pc1BhZ2VSZWFkeSgpKSB7XG5cdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlmICghdGhpcy5fb0V2ZW50UHJvdmlkZXIpIHtcblx0XHRcdFx0XHR0aGlzLl9vRXZlbnRQcm92aWRlciA9IG5ldyBFdmVudFByb3ZpZGVyKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5hdHRhY2hFdmVudE9uY2UoXG5cdFx0XHRcdFx0XCJwYWdlUmVhZHlcIixcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHRoaXNcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRwdWJsaWMgYXR0YWNoRXZlbnRPbmNlKHNFdmVudElkOiBzdHJpbmcsIG9EYXRhOiBvYmplY3QgfCBudWxsLCBmbkZ1bmN0aW9uPzogRnVuY3Rpb24sIG9MaXN0ZW5lcj86IG9iamVjdCk6IEV2ZW50UHJvdmlkZXIge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItcmVzdC1wYXJhbXNcblx0XHRyZXR1cm4gdGhpcy5fb0V2ZW50UHJvdmlkZXIuYXR0YWNoRXZlbnRPbmNlKHNFdmVudElkLCBvRGF0YSBhcyBvYmplY3QsIGZuRnVuY3Rpb24gYXMgRnVuY3Rpb24sIG9MaXN0ZW5lcik7XG5cdH1cblxuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0cHVibGljIGF0dGFjaEV2ZW50KHNFdmVudElkOiBzdHJpbmcsIG9EYXRhOiBvYmplY3QgfCBudWxsLCBmbkZ1bmN0aW9uOiBGdW5jdGlvbiwgb0xpc3RlbmVyOiBvYmplY3QpOiBFdmVudFByb3ZpZGVyIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXG5cdFx0cmV0dXJuIHRoaXMuX29FdmVudFByb3ZpZGVyLmF0dGFjaEV2ZW50KHNFdmVudElkLCBvRGF0YSBhcyBvYmplY3QsIGZuRnVuY3Rpb24sIG9MaXN0ZW5lcik7XG5cdH1cblxuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0cHVibGljIGRldGFjaEV2ZW50KHNFdmVudElkOiBzdHJpbmcsIGZuRnVuY3Rpb246IEZ1bmN0aW9uKTogRXZlbnRQcm92aWRlciB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1yZXN0LXBhcmFtc1xuXHRcdHJldHVybiB0aGlzLl9vRXZlbnRQcm92aWRlci5kZXRhY2hFdmVudChzRXZlbnRJZCwgZm5GdW5jdGlvbik7XG5cdH1cblxuXHRwcml2YXRlIHJlZ2lzdGVyQ29udGFpbmVyKG9Db250YWluZXI6IENvbnRyb2wpOiB2b2lkIHtcblx0XHR0aGlzLl9vQ29udGFpbmVyID0gb0NvbnRhaW5lcjtcblx0XHR0aGlzLl9mbkNvbnRhaW5lckRlbGVnYXRlID0ge1xuXHRcdFx0b25CZWZvcmVTaG93OiAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdHRoaXMuYlNob3duID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuX2JJc1BhZ2VSZWFkeSA9IGZhbHNlO1xuXHRcdFx0fSxcblx0XHRcdG9uQmVmb3JlSGlkZTogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR0aGlzLmJTaG93biA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLl9iSXNQYWdlUmVhZHkgPSBmYWxzZTtcblx0XHRcdH0sXG5cdFx0XHRvbkFmdGVyU2hvdzogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR0aGlzLmJTaG93biA9IHRydWU7XG5cdFx0XHRcdHRoaXMub25BZnRlckJpbmRpbmdQcm9taXNlPy50aGVuKCgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZCh0cnVlKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHR0aGlzLl9vQ29udGFpbmVyPy5hZGRFdmVudERlbGVnYXRlKHRoaXMuX2ZuQ29udGFpbmVyRGVsZWdhdGUsIHRoaXMpO1xuXHR9XG5cblx0QHByaXZhdGVFeHRlbnNpb24oKVxuXHRAZXh0ZW5zaWJsZShPdmVycmlkZUV4ZWN1dGlvbi5JbnN0ZWFkKVxuXHRwdWJsaWMgaXNDb250ZXh0RXhwZWN0ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdHB1YmxpYyBjaGVja1BhZ2VSZWFkeURlYm91bmNlZChiRnJvbU5hdiA9IGZhbHNlKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMucGFnZVJlYWR5VGltZXIpIHtcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnBhZ2VSZWFkeVRpbWVyKTtcblx0XHR9XG5cdFx0Y29uc3QgbW9kZWwgPSB0aGlzLmdldFZpZXcoKS5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWw7XG5cdFx0bGV0IHRpbWVPdXQ6IG51bWJlcjtcblx0XHQvLyBpc0NvbnRleHRFeHBlY3RlZCA9IHRydWUgd2hlbiBPYmplY3QgUGFnZSBpcyBkaXNwbGF5ZWRcblx0XHRpZiAoKG1vZGVsICYmIG1vZGVsLmdldE9wdGltaXN0aWNCYXRjaEVuYWJsZXIoKSA9PT0gbnVsbCkgfHwgdGhpcy5pc0NvbnRleHRFeHBlY3RlZCgpKSB7XG5cdFx0XHR0aW1lT3V0ID0gMjAwO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBXZSBhcmUgd2FpdGluZyBsZXNzIHRpbWUgYmVjYXVzZSBkYXRhIGlzIGFscmVhZHkgdGhlcmUgKG9wdGltaXN0aWNCYXRjaClcblx0XHRcdHRpbWVPdXQgPSAyMDtcblx0XHR9XG5cdFx0dGhpcy5wYWdlUmVhZHlUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5fY2hlY2tQYWdlUmVhZHkoYkZyb21OYXYpO1xuXHRcdH0sIHRpbWVPdXQpIGFzIHVua25vd24gYXMgbnVtYmVyO1xuXHR9XG5cblx0cHVibGljIF9jaGVja1BhZ2VSZWFkeShiRnJvbU5hdiA9IGZhbHNlKTogdm9pZCB7XG5cdFx0Y29uc3QgZm5VSVVwZGF0ZWQgPSAoKTogdm9pZCA9PiB7XG5cdFx0XHQvLyBXYWl0IHVudGlsIHRoZSBVSSBpcyBubyBsb25nZXIgZGlydHlcblx0XHRcdGlmICghUmVuZGVyaW5nLmlzUGVuZGluZygpKSB7XG5cdFx0XHRcdChSZW5kZXJpbmcgYXMgUmVuZGVyaW5nRXgpLmRldGFjaFVJVXBkYXRlZChmblVJVXBkYXRlZCk7XG5cdFx0XHRcdHRoaXMuX2JXYWl0aW5nRm9yUmVmcmVzaCA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLmNoZWNrUGFnZVJlYWR5RGVib3VuY2VkKCk7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdC8vIEluIGNhc2UgVUlVcGRhdGUgZG9lcyBub3QgZ2V0IGNhbGxlZCwgY2hlY2sgaWYgVUkgaXMgbm90IGRpcnR5IGFuZCB0aGVuIGNhbGwgX2NoZWNrUGFnZVJlYWR5XG5cdFx0Y29uc3QgY2hlY2tVSVVwZGF0ZWQgPSAoKTogdm9pZCA9PiB7XG5cdFx0XHRpZiAoUmVuZGVyaW5nLmlzUGVuZGluZygpKSB7XG5cdFx0XHRcdHNldFRpbWVvdXQoY2hlY2tVSVVwZGF0ZWQsIDUwMCk7XG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuX2JXYWl0aW5nRm9yUmVmcmVzaCkge1xuXHRcdFx0XHR0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2ggPSBmYWxzZTtcblx0XHRcdFx0KFJlbmRlcmluZyBhcyBSZW5kZXJpbmdFeCkuZGV0YWNoVUlVcGRhdGVkKGZuVUlVcGRhdGVkKTtcblx0XHRcdFx0dGhpcy5jaGVja1BhZ2VSZWFkeURlYm91bmNlZCgpO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRpZiAoXG5cdFx0XHR0aGlzLmJTaG93biAmJlxuXHRcdFx0dGhpcy5xdWVyeVdhdGNoZXIuaXNEYXRhUmVjZWl2ZWQoKSAhPT0gZmFsc2UgJiZcblx0XHRcdHRoaXMuYlRhYmxlc0NoYXJ0c0xvYWRlZCAhPT0gZmFsc2UgJiZcblx0XHRcdCghdGhpcy5pc0NvbnRleHRFeHBlY3RlZCgpIHx8IHRoaXMuYkhhc0NvbnRleHQpIC8vIEVpdGhlciBubyBjb250ZXh0IGlzIGV4cGVjdGVkIG9yIHRoZXJlIGlzIG9uZVxuXHRcdCkge1xuXHRcdFx0aWYgKHRoaXMucXVlcnlXYXRjaGVyLmlzRGF0YVJlY2VpdmVkKCkgPT09IHRydWUgJiYgIWJGcm9tTmF2ICYmICF0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2ggJiYgUmVuZGVyaW5nLmlzUGVuZGluZygpKSB7XG5cdFx0XHRcdC8vIElmIHdlIHJlcXVlc3RlZCBkYXRhIHdlIGdldCBub3RpZmllZCBhcyBzb29uIGFzIHRoZSBkYXRhIGFycml2ZWQsIHNvIGJlZm9yZSB0aGUgbmV4dCByZW5kZXJpbmcgdGlja1xuXHRcdFx0XHR0aGlzLnF1ZXJ5V2F0Y2hlci5yZXNldERhdGFSZWNlaXZlZCgpO1xuXHRcdFx0XHR0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2ggPSB0cnVlO1xuXHRcdFx0XHQoUmVuZGVyaW5nIGFzIFJlbmRlcmluZ0V4KS5hdHRhY2hVSVVwZGF0ZWQoZm5VSVVwZGF0ZWQpO1xuXHRcdFx0XHRzZXRUaW1lb3V0KGNoZWNrVUlVcGRhdGVkLCA1MDApO1xuXHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0KCF0aGlzLl9iV2FpdGluZ0ZvclJlZnJlc2ggJiYgUmVuZGVyaW5nLmlzUGVuZGluZygpKSB8fFxuXHRcdFx0XHR0aGlzLl9uYldhaXRzICE9PSAwIHx8XG5cdFx0XHRcdFRlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeS5nZXROdW1iZXJPZlZpZXdzSW5DcmVhdGlvblN0YXRlKCkgPiAwIHx8XG5cdFx0XHRcdHRoaXMucXVlcnlXYXRjaGVyLmlzU2VhcmNoUGVuZGluZygpXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy5fYldhaXRpbmdGb3JSZWZyZXNoID0gdHJ1ZTtcblx0XHRcdFx0KFJlbmRlcmluZyBhcyBSZW5kZXJpbmdFeCkuYXR0YWNoVUlVcGRhdGVkKGZuVUlVcGRhdGVkKTtcblx0XHRcdFx0c2V0VGltZW91dChjaGVja1VJVXBkYXRlZCwgNTAwKTtcblx0XHRcdH0gZWxzZSBpZiAoIXRoaXMuX2JXYWl0aW5nRm9yUmVmcmVzaCkge1xuXHRcdFx0XHQvLyBJbiB0aGUgY2FzZSB3ZSdyZSBub3Qgd2FpdGluZyBmb3IgYW55IGRhdGEgKG5hdmlnYXRpbmcgYmFjayB0byBhIHBhZ2Ugd2UgYWxyZWFkeSBoYXZlIGxvYWRlZClcblx0XHRcdFx0Ly8ganVzdCB3YWl0IGZvciBhIGZyYW1lIHRvIGZpcmUgdGhlIGV2ZW50LlxuXHRcdFx0XHR0aGlzLl9iSXNQYWdlUmVhZHkgPSB0cnVlO1xuXHRcdFx0XHR0aGlzLl9vRXZlbnRQcm92aWRlci5maXJlRXZlbnQoXCJwYWdlUmVhZHlcIik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEZvcmNlcyB0aGUgJ3BhZ2VSZWFkeScgZXZlbnQgdG8gYmUgc2VudC5cblx0ICovXG5cdGZvcmNlUGFnZVJlYWR5KCk6IHZvaWQge1xuXHRcdHRoaXMuX29FdmVudFByb3ZpZGVyLmZpcmVFdmVudChcInBhZ2VSZWFkeVwiKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBQYWdlUmVhZHlDb250cm9sbGVyRXh0ZW5zaW9uO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztNQThCTUEsNEJBQTRCLElBQUFDLElBQUEsR0FEakNDLGNBQWMsQ0FBQyw0Q0FBNEMsQ0FBQyxFQUFBQyxLQUFBLEdBOEMzREMsY0FBYyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQTJDaEJELGNBQWMsQ0FBQyxDQUFDLEVBQUFFLEtBQUEsR0FVaEJDLGVBQWUsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FDakJDLGNBQWMsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FZaEJOLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBQU8sS0FBQSxHQUsxQlAsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFBUSxLQUFBLEdBMkMxQlIsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFBUyxLQUFBLEdBMEQxQk4sZUFBZSxDQUFDLENBQUMsRUFBQU8sTUFBQSxHQUNqQkwsY0FBYyxDQUFDLENBQUMsRUFBQU0sTUFBQSxHQUtoQlIsZUFBZSxDQUFDLENBQUMsRUFBQVMsTUFBQSxHQUNqQlAsY0FBYyxDQUFDLENBQUMsRUFBQVEsTUFBQSxHQXFCaEJWLGVBQWUsQ0FBQyxDQUFDLEVBQUFXLE1BQUEsR0FDakJULGNBQWMsQ0FBQyxDQUFDLEVBQUFVLE1BQUEsR0FNaEJaLGVBQWUsQ0FBQyxDQUFDLEVBQUFhLE1BQUEsR0FDakJYLGNBQWMsQ0FBQyxDQUFDLEVBQUFZLE1BQUEsR0FNaEJkLGVBQWUsQ0FBQyxDQUFDLEVBQUFlLE1BQUEsR0FDakJiLGNBQWMsQ0FBQyxDQUFDLEVBQUFjLE1BQUEsR0EyQmhCQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUFDLE1BQUEsR0FDbEJDLFVBQVUsQ0FBQ0MsaUJBQWlCLENBQUNDLE9BQU8sQ0FBQyxFQUFBQyxNQUFBLEdBS3JDdEIsZUFBZSxDQUFDLENBQUMsRUFBQU4sSUFBQSxD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
@@ -258,6 +258,9 @@ class PageReadyControllerExtension extends ControllerExtension {
258
258
  if (this.isPageReady()) {
259
259
  resolve();
260
260
  } else {
261
+ if (!this._oEventProvider) {
262
+ this._oEventProvider = new EventProvider();
263
+ }
261
264
  this.attachEventOnce(
262
265
  "pageReady",
263
266
  null,
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/base/HookSupport", "sap/ui/core/mvc/ControllerExtension", "sap/ui/core/mvc/OverrideExecution"], function (ClassSupport, HookSupport, ControllerExtension, OverrideExecution) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/base/util/ObjectPath", "sap/fe/base/ClassSupport", "sap/fe/placeholder/library", "sap/ui/core/Placeholder", "sap/ui/core/mvc/ControllerExtension"], function (ObjectPath, ClassSupport, _library, Placeholder, ControllerExtension) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/helpers/RecommendationHelper", "sap/fe/core/helpers/StandardRecommendationHelper", "sap/ui/core/mvc/ControllerExtension", "sap/ui/core/mvc/OverrideExecution", "../CommonUtils", "./editFlow/TransactionHelper", "../controls/Recommendations/ConfirmRecommendationDialog", "./recommendations/Telemetry"], function (Log, ClassSupport, RecommendationHelper, StandardRecommendationHelper, ControllerExtension, OverrideExecution, CommonUtils, TransactionHelper, ConfirmRecommendationDialog, Telemetry) {
6
6
  "use strict";
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/helpers/ModelHelper", "sap/ui/core/mvc/ControllerExtension", "sap/ui/core/mvc/OverrideExecution"], function (ClassSupport, ModelHelper, ControllerExtension, OverrideExecution) {
5
+ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/controllerextensions/BaseControllerExtension", "sap/fe/core/helpers/ModelHelper", "sap/ui/core/mvc/OverrideExecution"], function (ClassSupport, BaseControllerExtension, ModelHelper, OverrideExecution) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _class, _class2;
@@ -19,14 +19,14 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/helpers/ModelHelper", "s
19
19
  * @public
20
20
  * @since 1.86.0
21
21
  */
22
- let Routing = (_dec = defineUI5Class("sap.fe.core.controllerextensions.Routing"), _dec2 = publicExtension(), _dec3 = extensible("AfterAsync"), _dec4 = publicExtension(), _dec5 = finalExtension(), _dec6 = publicExtension(), _dec7 = extensible(OverrideExecution.After), _dec8 = publicExtension(), _dec9 = extensible(OverrideExecution.After), _dec10 = publicExtension(), _dec11 = finalExtension(), _dec(_class = (_class2 = /*#__PURE__*/function (_ControllerExtension) {
22
+ let Routing = (_dec = defineUI5Class("sap.fe.core.controllerextensions.Routing"), _dec2 = publicExtension(), _dec3 = extensible("AfterAsync"), _dec4 = publicExtension(), _dec5 = finalExtension(), _dec6 = publicExtension(), _dec7 = extensible(OverrideExecution.After), _dec8 = publicExtension(), _dec9 = extensible(OverrideExecution.After), _dec10 = publicExtension(), _dec11 = finalExtension(), _dec(_class = (_class2 = /*#__PURE__*/function (_BaseControllerExtens) {
23
23
  function Routing() {
24
- return _ControllerExtension.apply(this, arguments) || this;
24
+ return _BaseControllerExtens.apply(this, arguments) || this;
25
25
  }
26
- _inheritsLoose(Routing, _ControllerExtension);
26
+ _inheritsLoose(Routing, _BaseControllerExtens);
27
27
  var _proto = Routing.prototype;
28
28
  /**
29
- * This function can be used to intercept the routing event happening during the normal process of navigating from one page to another (like clicking on the table row to navigate, or when pagination buttons are clicked).
29
+ * This function can be used to intercept the routing event during the normal navigation process, such as when a table row is clicked to navigate, pagination buttons are used, the Apply button in an object page is clicked, or a sub-object page in a flexible column layout is closed.
30
30
  *
31
31
  * The function is NOT called during other means of external outbound navigation (like a navigation configured via a link, or by using navigation buttons).
32
32
  *
@@ -36,7 +36,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/helpers/ModelHelper", "s
36
36
  * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
37
37
  * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
38
38
  * @param mNavigationParameters Object containing row context and page context
39
- * @param mNavigationParameters.bindingContext The currently selected context
39
+ * @param mNavigationParameters.bindingContext The target navigation context
40
40
  * @returns `true` to prevent the default execution, false to keep the standard behavior
41
41
  * @public
42
42
  * @since 1.86.0
@@ -115,7 +115,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/helpers/ModelHelper", "s
115
115
  return this.base._routing.navigateToRoute(sTargetRouteName, oParameters);
116
116
  };
117
117
  return Routing;
118
- }(ControllerExtension), _applyDecoratedDescriptor(_class2.prototype, "onBeforeNavigation", [_dec2, _dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeNavigation"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "navigate", [_dec4, _dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "navigate"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onBeforeBinding", [_dec6, _dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeBinding"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onAfterBinding", [_dec8, _dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "onAfterBinding"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "navigateToRoute", [_dec10, _dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "navigateToRoute"), _class2.prototype), _class2)) || _class);
118
+ }(BaseControllerExtension), _applyDecoratedDescriptor(_class2.prototype, "onBeforeNavigation", [_dec2, _dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeNavigation"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "navigate", [_dec4, _dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "navigate"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onBeforeBinding", [_dec6, _dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeBinding"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onAfterBinding", [_dec8, _dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "onAfterBinding"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "navigateToRoute", [_dec10, _dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "navigateToRoute"), _class2.prototype), _class2)) || _class);
119
119
  return Routing;
120
120
  }, false);
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSb3V0aW5nIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwdWJsaWNFeHRlbnNpb24iLCJfZGVjMyIsImV4dGVuc2libGUiLCJfZGVjNCIsIl9kZWM1IiwiZmluYWxFeHRlbnNpb24iLCJfZGVjNiIsIl9kZWM3IiwiT3ZlcnJpZGVFeGVjdXRpb24iLCJBZnRlciIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0NvbnRyb2xsZXJFeHRlbnNpb24iLCJhcHBseSIsImFyZ3VtZW50cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25CZWZvcmVOYXZpZ2F0aW9uIiwibU5hdmlnYXRpb25QYXJhbWV0ZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJuYXZpZ2F0ZSIsIm9Db250ZXh0IiwicGFyYW1ldGVycyIsImludGVybmFsTW9kZWwiLCJiYXNlIiwiZ2V0TW9kZWwiLCJzZXRQcm9wZXJ0eSIsIl9yb3V0aW5nIiwibmF2aWdhdGVUb0NvbnRleHQiLCJvbkJlZm9yZUJpbmRpbmciLCJvbkFmdGVyQmluZGluZyIsIm5hdmlnYXRlVG9Sb3V0ZSIsInNUYXJnZXRSb3V0ZU5hbWUiLCJvUGFyYW1ldGVycyIsIm9NZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJiSXNTdGlja3lNb2RlIiwiTW9kZWxIZWxwZXIiLCJpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJDb250cm9sbGVyRXh0ZW5zaW9uIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsIk9iamVjdCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiUm91dGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXh0ZW5zaWJsZSwgZmluYWxFeHRlbnNpb24sIHB1YmxpY0V4dGVuc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIFBhZ2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9QYWdlQ29udHJvbGxlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgQ29udHJvbGxlckV4dGVuc2lvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJFeHRlbnNpb25cIjtcbmltcG9ydCBPdmVycmlkZUV4ZWN1dGlvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL092ZXJyaWRlRXhlY3V0aW9uXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcblxuLyoqXG4gKiBBIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG9mZmVyaW5nIGhvb2tzIGludG8gdGhlIHJvdXRpbmcgZmxvdyBvZiB0aGUgYXBwbGljYXRpb25cbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjg2LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuUm91dGluZ1wiKVxuY2xhc3MgUm91dGluZyBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcml2YXRlIGJhc2UhOiBQYWdlQ29udHJvbGxlcjtcblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBpbnRlcmNlcHQgdGhlIHJvdXRpbmcgZXZlbnQgaGFwcGVuaW5nIGR1cmluZyB0aGUgbm9ybWFsIHByb2Nlc3Mgb2YgbmF2aWdhdGluZyBmcm9tIG9uZSBwYWdlIHRvIGFub3RoZXIgKGxpa2UgY2xpY2tpbmcgb24gdGhlIHRhYmxlIHJvdyB0byBuYXZpZ2F0ZSwgb3Igd2hlbiBwYWdpbmF0aW9uIGJ1dHRvbnMgYXJlIGNsaWNrZWQpLlxuXHQgKlxuXHQgKiBUaGUgZnVuY3Rpb24gaXMgTk9UIGNhbGxlZCBkdXJpbmcgb3RoZXIgbWVhbnMgb2YgZXh0ZXJuYWwgb3V0Ym91bmQgbmF2aWdhdGlvbiAobGlrZSBhIG5hdmlnYXRpb24gY29uZmlndXJlZCB2aWEgYSBsaW5rLCBvciBieSB1c2luZyBuYXZpZ2F0aW9uIGJ1dHRvbnMpLlxuXHQgKlxuXHQgKiBJZiBkZWNsYXJlZCBhcyBhbiBleHRlbnNpb24sIGl0IGFsbG93cyB5b3UgdG8gaW50ZXJjZXB0IGFuZCBjaGFuZ2UgdGhlIG5vcm1hbCBuYXZpZ2F0aW9uIGZsb3cuXG5cdCAqIElmIHlvdSBkZWNpZGUgdG8gZG8geW91ciBvd24gbmF2aWdhdGlvbiBwcm9jZXNzaW5nLCB5b3UgY2FuIHJldHVybiBgdHJ1ZWAgdG8gcHJldmVudCB0aGUgZGVmYXVsdCByb3V0aW5nIGJlaGF2aW9yLlxuXHQgKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIGluZGl2aWR1YWxseSBvdmVycmlkZGVuIGJ5IGNvbnN1bWluZyBjb250cm9sbGVycywgYnV0IG5vdCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuXG5cdCAqIFRoZSBvdmVycmlkZSBleGVjdXRpb24gaXM6IHtAbGluayBzYXAudWkuY29yZS5tdmMuT3ZlcnJpZGVFeGVjdXRpb24uQWZ0ZXJ9LlxuXHQgKiBAcGFyYW0gbU5hdmlnYXRpb25QYXJhbWV0ZXJzIE9iamVjdCBjb250YWluaW5nIHJvdyBjb250ZXh0IGFuZCBwYWdlIGNvbnRleHRcblx0ICogQHBhcmFtIG1OYXZpZ2F0aW9uUGFyYW1ldGVycy5iaW5kaW5nQ29udGV4dCBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGNvbnRleHRcblx0ICogQHJldHVybnMgYHRydWVgIHRvIHByZXZlbnQgdGhlIGRlZmF1bHQgZXhlY3V0aW9uLCBmYWxzZSB0byBrZWVwIHRoZSBzdGFuZGFyZCBiZWhhdmlvclxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjg2LjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZXh0ZW5zaWJsZShcIkFmdGVyQXN5bmNcIilcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRhc3luYyBvbkJlZm9yZU5hdmlnYXRpb24obU5hdmlnYXRpb25QYXJhbWV0ZXJzOiB7IGJpbmRpbmdDb250ZXh0OiBDb250ZXh0IH0pOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHQvLyB0byBiZSBvdmVycmlkZW4gYnkgdGhlIGFwcGxpY2F0aW9uXG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG5cdH1cblxuXHQvKipcblx0ICogQWxsb3dzIG5hdmlnYXRpb24gdG8gYSBzcGVjaWZpYyBjb250ZXh0LlxuXHQgKiBAcGFyYW0gb0NvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgdG8gYmUgbmF2aWdhdGVkIHRvXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzIE9iamVjdCBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgbmF2aWdhdGlvblxuXHQgKiBAcGFyYW0gcGFyYW1ldGVycy5wcmVzZXJ2ZUhpc3RvcnkgIEJ5IGRlZmF1bHQsIHRoZSBpbnRlcm5hbCBhbGdvcml0aG0gZGVjaWRlcyB3aGV0aGVyIHRoZSBuYXZpZ2F0aW9uIHByZXNlcnZlcyB0aGUgcHJldmlvdXMgZW50cnkuIFRoaXMgcGFyYW1ldGVyIGFsbG93cyB5b3UgdG8gb3ZlcnJpZGUgdGhpcyBiZWhhdmlvci5cblx0ICogQHB1YmxpY1xuXHQgKiBAc2luY2UgMS45MC4wXG5cdCAqL1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0bmF2aWdhdGUob0NvbnRleHQ6IENvbnRleHQsIHBhcmFtZXRlcnM/OiB7IHByZXNlcnZlSGlzdG9yeTogYm9vbGVhbiB9KTogdm9pZCB7XG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbCA9IHRoaXMuYmFzZS5nZXRNb2RlbChcImludGVybmFsXCIpIGFzIEpTT05Nb2RlbDtcblx0XHQvLyBXZSBoYXZlIHRvIGRlbGV0ZSB0aGUgaW50ZXJuYWwgbW9kZWwgdmFsdWUgZm9yIFwicGFnaW5hdG9yQ3VycmVudENvbnRleHRcIiB0byBlbnN1cmUgaXQgaXMgcmUtZXZhbHVhdGVkIGJ5IHRoZSBuYXZpZ2F0ZVRvQ29udGV4dCBmdW5jdGlvblxuXHRcdC8vIEJDUDogMjI3MDEyMzgyMFxuXHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoXCIvcGFnaW5hdG9yQ3VycmVudENvbnRleHRcIiwgbnVsbCk7XG5cdFx0dGhpcy5iYXNlLl9yb3V0aW5nLm5hdmlnYXRlVG9Db250ZXh0KG9Db250ZXh0LCBwYXJhbWV0ZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW50ZXJjZXB0IHRoZSByb3V0aW5nIGV2ZW50IGJlZm9yZSBiaW5kaW5nIGEgcGFnZS5cblx0ICpcblx0ICogSWYgaXQgaXMgZGVjbGFyZWQgYXMgYW4gZXh0ZW5zaW9uLCBpdCBhbGxvd3MgeW91IHRvIGludGVyY2VwdCBhbmQgY2hhbmdlIHRoZSBub3JtYWwgZmxvdyBvZiBiaW5kaW5nLlxuXHQgKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgZGlyZWN0bHksIGJ1dCBvdmVycmlkZGVuIHNlcGFyYXRlbHkgYnkgY29uc3VtaW5nIGNvbnRyb2xsZXJzLlxuXHQgKiBUaGUgb3ZlcnJpZGUgZXhlY3V0aW9uIGlzOiB7QGxpbmsgc2FwLnVpLmNvcmUubXZjLk92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyfS5cblx0ICogQHBhcmFtIG9Db250ZXh0IE9iamVjdCBjb250YWluaW5nIHRoZSBjb250ZXh0IGZvciB0aGUgbmF2aWdhdGlvblxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjkwLjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZXh0ZW5zaWJsZShPdmVycmlkZUV4ZWN1dGlvbi5BZnRlcilcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRvbkJlZm9yZUJpbmRpbmcob0NvbnRleHQ6IG9iamVjdCB8IG51bGwpOiB2b2lkIHtcblx0XHQvLyB0byBiZSBvdmVycmlkZW4gYnkgdGhlIGFwcGxpY2F0aW9uXG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGludGVyY2VwdCB0aGUgcm91dGluZyBldmVudCBhZnRlciBiaW5kaW5nIGEgcGFnZS5cblx0ICpcblx0ICogSWYgaXQgaXMgZGVjbGFyZWQgYXMgYW4gZXh0ZW5zaW9uLCBpdCBhbGxvd3MgeW91IHRvIGludGVyY2VwdCBhbmQgY2hhbmdlIHRoZSBub3JtYWwgZmxvdyBvZiBiaW5kaW5nLlxuXHQgKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgZGlyZWN0bHksIGJ1dCBvdmVycmlkZGVuIHNlcGFyYXRlbHkgYnkgY29uc3VtaW5nIGNvbnRyb2xsZXJzLlxuXHQgKiBUaGUgb3ZlcnJpZGUgZXhlY3V0aW9uIGlzOiB7QGxpbmsgc2FwLnVpLmNvcmUubXZjLk92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyfS5cblx0ICogQHBhcmFtIG9Db250ZXh0IE9iamVjdCBjb250YWluaW5nIHRoZSBjb250ZXh0IHRvIGJlIG5hdmlnYXRlZFxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjkwLjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZXh0ZW5zaWJsZShPdmVycmlkZUV4ZWN1dGlvbi5BZnRlcilcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRvbkFmdGVyQmluZGluZyhvQ29udGV4dDogb2JqZWN0IHwgbnVsbCk6IHZvaWQge1xuXHRcdC8vIHRvIGJlIG92ZXJyaWRlbiBieSB0aGUgYXBwbGljYXRpb25cblx0fVxuXG5cdC8qKlxuXHQgKiBOYXZpZ2F0ZSB0byBhbm90aGVyIHRhcmdldC5cblx0ICogQHBhcmFtIHNUYXJnZXRSb3V0ZU5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IHJvdXRlXG5cdCAqIEBwYXJhbSBvUGFyYW1ldGVycyBQYXJhbWV0ZXJzIHRvIGJlIHVzZWQgd2l0aCByb3V0ZSB0byBjcmVhdGUgdGhlIHRhcmdldCBoYXNoXG5cdCAqIEBwYXJhbSBvUGFyYW1ldGVycy5iSXNTdGlja3lNb2RlIFBSSVZBVEVcblx0ICogQHBhcmFtIG9QYXJhbWV0ZXJzLnByZXNlcnZlSGlzdG9yeSBQUklWQVRFXG5cdCAqIEByZXR1cm5zIFByb21pc2UgdGhhdCBpcyByZXNvbHZlZCB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGZpbmFsaXplZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0YXN5bmMgbmF2aWdhdGVUb1JvdXRlKFxuXHRcdHNUYXJnZXRSb3V0ZU5hbWU6IHN0cmluZyxcblx0XHRvUGFyYW1ldGVycz86IHsgYklzU3RpY2t5TW9kZT86IGJvb2xlYW47IHByZXNlcnZlSGlzdG9yeT86IGJvb2xlYW4gfVxuXHQpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gdGhpcy5iYXNlLmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0Y29uc3QgYklzU3RpY2t5TW9kZSA9IE1vZGVsSGVscGVyLmlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZChvTWV0YU1vZGVsKTtcblx0XHRpZiAoIW9QYXJhbWV0ZXJzKSB7XG5cdFx0XHRvUGFyYW1ldGVycyA9IHt9O1xuXHRcdH1cblx0XHRvUGFyYW1ldGVycy5iSXNTdGlja3lNb2RlID0gYklzU3RpY2t5TW9kZTtcblx0XHRyZXR1cm4gdGhpcy5iYXNlLl9yb3V0aW5nLm5hdmlnYXRlVG9Sb3V0ZShzVGFyZ2V0Um91dGVOYW1lLCBvUGFy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
121
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSb3V0aW5nIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwdWJsaWNFeHRlbnNpb24iLCJfZGVjMyIsImV4dGVuc2libGUiLCJfZGVjNCIsIl9kZWM1IiwiZmluYWxFeHRlbnNpb24iLCJfZGVjNiIsIl9kZWM3IiwiT3ZlcnJpZGVFeGVjdXRpb24iLCJBZnRlciIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0Jhc2VDb250cm9sbGVyRXh0ZW5zIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uQmVmb3JlTmF2aWdhdGlvbiIsIm1OYXZpZ2F0aW9uUGFyYW1ldGVycyIsIlByb21pc2UiLCJyZXNvbHZlIiwibmF2aWdhdGUiLCJvQ29udGV4dCIsInBhcmFtZXRlcnMiLCJpbnRlcm5hbE1vZGVsIiwiYmFzZSIsImdldE1vZGVsIiwic2V0UHJvcGVydHkiLCJfcm91dGluZyIsIm5hdmlnYXRlVG9Db250ZXh0Iiwib25CZWZvcmVCaW5kaW5nIiwib25BZnRlckJpbmRpbmciLCJuYXZpZ2F0ZVRvUm91dGUiLCJzVGFyZ2V0Um91dGVOYW1lIiwib1BhcmFtZXRlcnMiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiYklzU3RpY2t5TW9kZSIsIk1vZGVsSGVscGVyIiwiaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiQmFzZUNvbnRyb2xsZXJFeHRlbnNpb24iLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJSb3V0aW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBleHRlbnNpYmxlLCBmaW5hbEV4dGVuc2lvbiwgcHVibGljRXh0ZW5zaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgQmFzZUNvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0Jhc2VDb250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBPdmVycmlkZUV4ZWN1dGlvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL092ZXJyaWRlRXhlY3V0aW9uXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcblxuLyoqXG4gKiBBIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG9mZmVyaW5nIGhvb2tzIGludG8gdGhlIHJvdXRpbmcgZmxvdyBvZiB0aGUgYXBwbGljYXRpb25cbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjg2LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuUm91dGluZ1wiKVxuY2xhc3MgUm91dGluZyBleHRlbmRzIEJhc2VDb250cm9sbGVyRXh0ZW5zaW9uIHtcblx0cHJpdmF0ZSBiYXNlITogUGFnZUNvbnRyb2xsZXI7XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gaW50ZXJjZXB0IHRoZSByb3V0aW5nIGV2ZW50IGR1cmluZyB0aGUgbm9ybWFsIG5hdmlnYXRpb24gcHJvY2Vzcywgc3VjaCBhcyB3aGVuIGEgdGFibGUgcm93IGlzIGNsaWNrZWQgdG8gbmF2aWdhdGUsIHBhZ2luYXRpb24gYnV0dG9ucyBhcmUgdXNlZCwgdGhlIEFwcGx5IGJ1dHRvbiBpbiBhbiBvYmplY3QgcGFnZSBpcyBjbGlja2VkLCBvciBhIHN1Yi1vYmplY3QgcGFnZSBpbiBhIGZsZXhpYmxlIGNvbHVtbiBsYXlvdXQgaXMgY2xvc2VkLlxuXHQgKlxuXHQgKiBUaGUgZnVuY3Rpb24gaXMgTk9UIGNhbGxlZCBkdXJpbmcgb3RoZXIgbWVhbnMgb2YgZXh0ZXJuYWwgb3V0Ym91bmQgbmF2aWdhdGlvbiAobGlrZSBhIG5hdmlnYXRpb24gY29uZmlndXJlZCB2aWEgYSBsaW5rLCBvciBieSB1c2luZyBuYXZpZ2F0aW9uIGJ1dHRvbnMpLlxuXHQgKlxuXHQgKiBJZiBkZWNsYXJlZCBhcyBhbiBleHRlbnNpb24sIGl0IGFsbG93cyB5b3UgdG8gaW50ZXJjZXB0IGFuZCBjaGFuZ2UgdGhlIG5vcm1hbCBuYXZpZ2F0aW9uIGZsb3cuXG5cdCAqIElmIHlvdSBkZWNpZGUgdG8gZG8geW91ciBvd24gbmF2aWdhdGlvbiBwcm9jZXNzaW5nLCB5b3UgY2FuIHJldHVybiBgdHJ1ZWAgdG8gcHJldmVudCB0aGUgZGVmYXVsdCByb3V0aW5nIGJlaGF2aW9yLlxuXHQgKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIGluZGl2aWR1YWxseSBvdmVycmlkZGVuIGJ5IGNvbnN1bWluZyBjb250cm9sbGVycywgYnV0IG5vdCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuXG5cdCAqIFRoZSBvdmVycmlkZSBleGVjdXRpb24gaXM6IHtAbGluayBzYXAudWkuY29yZS5tdmMuT3ZlcnJpZGVFeGVjdXRpb24uQWZ0ZXJ9LlxuXHQgKiBAcGFyYW0gbU5hdmlnYXRpb25QYXJhbWV0ZXJzIE9iamVjdCBjb250YWluaW5nIHJvdyBjb250ZXh0IGFuZCBwYWdlIGNvbnRleHRcblx0ICogQHBhcmFtIG1OYXZpZ2F0aW9uUGFyYW1ldGVycy5iaW5kaW5nQ29udGV4dCBUaGUgdGFyZ2V0IG5hdmlnYXRpb24gY29udGV4dFxuXHQgKiBAcmV0dXJucyBgdHJ1ZWAgdG8gcHJldmVudCB0aGUgZGVmYXVsdCBleGVjdXRpb24sIGZhbHNlIHRvIGtlZXAgdGhlIHN0YW5kYXJkIGJlaGF2aW9yXG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuODYuMFxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKFwiQWZ0ZXJBc3luY1wiKVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdGFzeW5jIG9uQmVmb3JlTmF2aWdhdGlvbihtTmF2aWdhdGlvblBhcmFtZXRlcnM6IHsgYmluZGluZ0NvbnRleHQ6IENvbnRleHQgfSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRcdC8vIHRvIGJlIG92ZXJyaWRlbiBieSB0aGUgYXBwbGljYXRpb25cblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBbGxvd3MgbmF2aWdhdGlvbiB0byBhIHNwZWNpZmljIGNvbnRleHQuXG5cdCAqIEBwYXJhbSBvQ29udGV4dCBPYmplY3QgY29udGFpbmluZyB0aGUgY29udGV4dCB0byBiZSBuYXZpZ2F0ZWQgdG9cblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBuYXZpZ2F0aW9uXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzLnByZXNlcnZlSGlzdG9yeSAgQnkgZGVmYXVsdCwgdGhlIGludGVybmFsIGFsZ29yaXRobSBkZWNpZGVzIHdoZXRoZXIgdGhlIG5hdmlnYXRpb24gcHJlc2VydmVzIHRoZSBwcmV2aW91cyBlbnRyeS4gVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBvdmVycmlkZSB0aGlzIGJlaGF2aW9yLlxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjkwLjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRuYXZpZ2F0ZShvQ29udGV4dDogQ29udGV4dCwgcGFyYW1ldGVycz86IHsgcHJlc2VydmVIaXN0b3J5OiBib29sZWFuIH0pOiB2b2lkIHtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsID0gdGhpcy5iYXNlLmdldE1vZGVsKFwiaW50ZXJuYWxcIikgYXMgSlNPTk1vZGVsO1xuXHRcdC8vIFdlIGhhdmUgdG8gZGVsZXRlIHRoZSBpbnRlcm5hbCBtb2RlbCB2YWx1ZSBmb3IgXCJwYWdpbmF0b3JDdXJyZW50Q29udGV4dFwiIHRvIGVuc3VyZSBpdCBpcyByZS1ldmFsdWF0ZWQgYnkgdGhlIG5hdmlnYXRlVG9Db250ZXh0IGZ1bmN0aW9uXG5cdFx0Ly8gQkNQOiAyMjcwMTIzODIwXG5cdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShcIi9wYWdpbmF0b3JDdXJyZW50Q29udGV4dFwiLCBudWxsKTtcblx0XHR0aGlzLmJhc2UuX3JvdXRpbmcubmF2aWdhdGVUb0NvbnRleHQob0NvbnRleHQsIHBhcmFtZXRlcnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBpbnRlcmNlcHQgdGhlIHJvdXRpbmcgZXZlbnQgYmVmb3JlIGJpbmRpbmcgYSBwYWdlLlxuXHQgKlxuXHQgKiBJZiBpdCBpcyBkZWNsYXJlZCBhcyBhbiBleHRlbnNpb24sIGl0IGFsbG93cyB5b3UgdG8gaW50ZXJjZXB0IGFuZCBjaGFuZ2UgdGhlIG5vcm1hbCBmbG93IG9mIGJpbmRpbmcuXG5cdCAqXG5cdCAqIFRoaXMgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCBkaXJlY3RseSwgYnV0IG92ZXJyaWRkZW4gc2VwYXJhdGVseSBieSBjb25zdW1pbmcgY29udHJvbGxlcnMuXG5cdCAqIFRoZSBvdmVycmlkZSBleGVjdXRpb24gaXM6IHtAbGluayBzYXAudWkuY29yZS5tdmMuT3ZlcnJpZGVFeGVjdXRpb24uQWZ0ZXJ9LlxuXHQgKiBAcGFyYW0gb0NvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgZm9yIHRoZSBuYXZpZ2F0aW9uXG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuOTAuMFxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKE92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyKVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdG9uQmVmb3JlQmluZGluZyhvQ29udGV4dDogb2JqZWN0IHwgbnVsbCk6IHZvaWQge1xuXHRcdC8vIHRvIGJlIG92ZXJyaWRlbiBieSB0aGUgYXBwbGljYXRpb25cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW50ZXJjZXB0IHRoZSByb3V0aW5nIGV2ZW50IGFmdGVyIGJpbmRpbmcgYSBwYWdlLlxuXHQgKlxuXHQgKiBJZiBpdCBpcyBkZWNsYXJlZCBhcyBhbiBleHRlbnNpb24sIGl0IGFsbG93cyB5b3UgdG8gaW50ZXJjZXB0IGFuZCBjaGFuZ2UgdGhlIG5vcm1hbCBmbG93IG9mIGJpbmRpbmcuXG5cdCAqXG5cdCAqIFRoaXMgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCBkaXJlY3RseSwgYnV0IG92ZXJyaWRkZW4gc2VwYXJhdGVseSBieSBjb25zdW1pbmcgY29udHJvbGxlcnMuXG5cdCAqIFRoZSBvdmVycmlkZSBleGVjdXRpb24gaXM6IHtAbGluayBzYXAudWkuY29yZS5tdmMuT3ZlcnJpZGVFeGVjdXRpb24uQWZ0ZXJ9LlxuXHQgKiBAcGFyYW0gb0NvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgdG8gYmUgbmF2aWdhdGVkXG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuOTAuMFxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKE92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyKVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdG9uQWZ0ZXJCaW5kaW5nKG9Db250ZXh0OiBvYmplY3QgfCBudWxsKTogdm9pZCB7XG5cdFx0Ly8gdG8gYmUgb3ZlcnJpZGVuIGJ5IHRoZSBhcHBsaWNhdGlvblxuXHR9XG5cblx0LyoqXG5cdCAqIE5hdmlnYXRlIHRvIGFub3RoZXIgdGFyZ2V0LlxuXHQgKiBAcGFyYW0gc1RhcmdldFJvdXRlTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgcm91dGVcblx0ICogQHBhcmFtIG9QYXJhbWV0ZXJzIFBhcmFtZXRlcnMgdG8gYmUgdXNlZCB3aXRoIHJvdXRlIHRvIGNyZWF0ZSB0aGUgdGFyZ2V0IGhhc2hcblx0ICogQHBhcmFtIG9QYXJhbWV0ZXJzLmJJc1N0aWNreU1vZGUgUFJJVkFURVxuXHQgKiBAcGFyYW0gb1BhcmFtZXRlcnMucHJlc2VydmVIaXN0b3J5IFBSSVZBVEVcblx0ICogQHJldHVybnMgUHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZmluYWxpemVkXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRhc3luYyBuYXZpZ2F0ZVRvUm91dGUoXG5cdFx0c1RhcmdldFJvdXRlTmFtZTogc3RyaW5nLFxuXHRcdG9QYXJhbWV0ZXJzPzogeyBiSXNTdGlja3lNb2RlPzogYm9vbGVhbjsgcHJlc2VydmVIaXN0b3J5PzogYm9vbGVhbiB9XG5cdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSB0aGlzLmJhc2UuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBiSXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKG9NZXRhTW9kZWwpO1xuXHRcdGlmICghb1BhcmFtZXRlcnMpIHtcblx0XHRcdG9QYXJhbWV0ZXJzID0ge307XG5cdFx0fVxuXHRcdG9QYXJhbWV0ZXJzLmJJc1N0aWNreU1vZGUgPSBiSXNTdGlja3lNb2RlO1xuXHRcdHJldHVybiB0aGlzLmJhc2UuX3JvdXRpbmcubmF2aWdhdGVUb1JvdXRlKHNUYXJnZXRSb3V0ZU5hbWUsIG9QYXJhbWV0ZXJzKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBSb3V0aW5nO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7RUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQSxJQU9NQSxPQUFPLElBQUFDLElBQUEsR0FEWkMsY0FBYyxDQUFDLDBDQUEwQyxDQUFDLEVBQUFDLEtBQUEsR0FvQnpEQyxlQUFlLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBQ2pCQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUFDLEtBQUEsR0FleEJILGVBQWUsQ0FBQyxDQUFDLEVBQUFJLEtBQUEsR0FDakJDLGNBQWMsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FvQmhCTixlQUFlLENBQUMsQ0FBQyxFQUFBTyxLQUFBLEdBQ2pCTCxVQUFVLENBQUNNLGlCQUFpQixDQUFDQyxLQUFLLENBQUMsRUFBQUMsS0FBQSxHQWlCbkNWLGVBQWUsQ0FBQyxDQUFDLEVBQUFXLEtBQUEsR0FDakJULFVBQVUsQ0FBQ00saUJBQWlCLENBQUNDLEtBQUssQ0FBQyxFQUFBRyxNQUFBLEdBZW5DWixlQUFlLENBQUMsQ0FBQyxFQUFBYSxNQUFBLEdBQ2pCUixjQUFjLENBQUMsQ0FBQyxFQUFBUixJQUFBLENBQUFpQixNQUFBLElBQUFDLE9BQUEsMEJBQUFDLHFCQUFBO0lBQUEsU0FBQXBCLFFBQUE7TUFBQSxPQUFBb0IscUJBQUEsQ0FBQUMsS0FBQSxPQUFBQyxTQUFBO0lBQUE7SUFBQUMsY0FBQSxDQUFBdkIsT0FBQSxFQUFBb0IscUJBQUE7SUFBQSxJQUFBSSxNQUFBLEdBQUF4QixPQUFBLENBQUF5QixTQUFBO0lBeEZqQjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJ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
@@ -1,7 +1,7 @@
1
1
  import { defineUI5Class, extensible, finalExtension, publicExtension } from "sap/fe/base/ClassSupport";
2
2
  import type PageController from "sap/fe/core/PageController";
3
+ import BaseControllerExtension from "sap/fe/core/controllerextensions/BaseControllerExtension";
3
4
  import ModelHelper from "sap/fe/core/helpers/ModelHelper";
4
- import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
5
5
  import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
6
6
  import type JSONModel from "sap/ui/model/json/JSONModel";
7
7
  import type Context from "sap/ui/model/odata/v4/Context";
@@ -13,11 +13,11 @@ import type Context from "sap/ui/model/odata/v4/Context";
13
13
  * @since 1.86.0
14
14
  */
15
15
  @defineUI5Class("sap.fe.core.controllerextensions.Routing")
16
- class Routing extends ControllerExtension {
16
+ class Routing extends BaseControllerExtension {
17
17
  private base!: PageController;
18
18
 
19
19
  /**
20
- * This function can be used to intercept the routing event happening during the normal process of navigating from one page to another (like clicking on the table row to navigate, or when pagination buttons are clicked).
20
+ * This function can be used to intercept the routing event during the normal navigation process, such as when a table row is clicked to navigate, pagination buttons are used, the Apply button in an object page is clicked, or a sub-object page in a flexible column layout is closed.
21
21
  *
22
22
  * The function is NOT called during other means of external outbound navigation (like a navigation configured via a link, or by using navigation buttons).
23
23
  *
@@ -27,7 +27,7 @@ class Routing extends ControllerExtension {
27
27
  * This function is meant to be individually overridden by consuming controllers, but not to be called directly.
28
28
  * The override execution is: {@link sap.ui.core.mvc.OverrideExecution.After}.
29
29
  * @param mNavigationParameters Object containing row context and page context
30
- * @param mNavigationParameters.bindingContext The currently selected context
30
+ * @param mNavigationParameters.bindingContext The target navigation context
31
31
  * @returns `true` to prevent the default execution, false to keep the standard behavior
32
32
  * @public
33
33
  * @since 1.86.0
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/fe/core/controllerextensions/InternalRouting"], function (InternalRouting) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/base/util/extend", "sap/fe/base/ClassSupport", "sap/m/library", "sap/ui/core/Component", "sap/ui/core/Element", "sap/ui/core/Fragment", "sap/ui/core/Lib", "sap/ui/core/XMLTemplateProcessor", "sap/ui/core/mvc/ControllerExtension", "sap/ui/core/mvc/OverrideExecution", "sap/ui/core/routing/HashChanger", "sap/ui/core/util/XMLPreprocessor", "sap/ui/model/json/JSONModel"], function (Log, ObjectPath, extend, ClassSupport, library, Component, Element, Fragment, Library, XMLTemplateProcessor, ControllerExtension, OverrideExecution, HashChanger, XMLPreprocessor, JSONModel) {
6
6
  "use strict";