@sapui5/sap.fe.core 1.127.2 → 1.129.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 (393) 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 +3 -9
  4. package/src/sap/fe/core/ActionRuntime.ts +3 -7
  5. package/src/sap/fe/core/AppComponent.js +9 -19
  6. package/src/sap/fe/core/AppComponent.ts +2 -12
  7. package/src/sap/fe/core/AppStateHandler.js +3 -11
  8. package/src/sap/fe/core/AppStateHandler.ts +0 -7
  9. package/src/sap/fe/core/BaseController.js +4 -8
  10. package/src/sap/fe/core/BaseController.ts +0 -5
  11. package/src/sap/fe/core/CommonUtils.js +1 -9
  12. package/src/sap/fe/core/CommonUtils.ts +4 -8
  13. package/src/sap/fe/core/ExtensionAPI.js +10 -25
  14. package/src/sap/fe/core/ExtensionAPI.ts +4 -19
  15. package/src/sap/fe/core/InsightsFormattersExtension.js +5 -3
  16. package/src/sap/fe/core/PageController.js +7 -10
  17. package/src/sap/fe/core/PageController.ts +0 -3
  18. package/src/sap/fe/core/ResourceModel.js +3 -5
  19. package/src/sap/fe/core/ResourceModel.ts +0 -2
  20. package/src/sap/fe/core/ReuseComponent.js +8 -14
  21. package/src/sap/fe/core/ReuseComponent.ts +0 -6
  22. package/src/sap/fe/core/TemplateComponent.js +37 -9
  23. package/src/sap/fe/core/TemplateComponent.ts +3 -2
  24. package/src/sap/fe/core/TemplateModel.js +5 -5
  25. package/src/sap/fe/core/TemplateModel.ts +0 -1
  26. package/src/sap/fe/core/UIProvider.js +1 -1
  27. package/src/sap/fe/core/UIProvider.ts +44 -1
  28. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +7 -12
  29. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +0 -5
  30. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +61 -65
  31. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +60 -63
  32. package/src/sap/fe/core/buildingBlocks/templating/AttributeModel.js +3 -3
  33. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockFormatter.js +1 -1
  34. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +21 -5
  35. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +0 -4
  36. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +6 -18
  37. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +3 -20
  38. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +5 -11
  39. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +0 -6
  40. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlock.js +3 -3
  41. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +11 -10
  42. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +0 -1
  43. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +5 -7
  44. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +0 -1
  45. package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
  46. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +3 -10
  47. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +0 -7
  48. package/src/sap/fe/core/controllerextensions/ContextSharing.js +5 -8
  49. package/src/sap/fe/core/controllerextensions/ContextSharing.ts +0 -2
  50. package/src/sap/fe/core/controllerextensions/EditFlow.js +225 -155
  51. package/src/sap/fe/core/controllerextensions/EditFlow.ts +248 -164
  52. package/src/sap/fe/core/controllerextensions/Feedback.js +1 -3
  53. package/src/sap/fe/core/controllerextensions/Feedback.ts +0 -2
  54. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +4 -7
  55. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +0 -3
  56. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -25
  57. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +2 -21
  58. package/src/sap/fe/core/controllerextensions/InternalRouting.js +22 -34
  59. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +25 -31
  60. package/src/sap/fe/core/controllerextensions/KPIManagement.js +8 -21
  61. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +4 -15
  62. package/src/sap/fe/core/controllerextensions/MessageHandler.js +68 -31
  63. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +78 -32
  64. package/src/sap/fe/core/controllerextensions/PageReady.js +4 -4
  65. package/src/sap/fe/core/controllerextensions/Paginator.js +4 -8
  66. package/src/sap/fe/core/controllerextensions/Paginator.ts +0 -4
  67. package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -4
  68. package/src/sap/fe/core/controllerextensions/Recommendations.js +15 -24
  69. package/src/sap/fe/core/controllerextensions/Recommendations.ts +13 -20
  70. package/src/sap/fe/core/controllerextensions/Routing.js +4 -10
  71. package/src/sap/fe/core/controllerextensions/Routing.ts +0 -6
  72. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  73. package/src/sap/fe/core/controllerextensions/Share.js +17 -11
  74. package/src/sap/fe/core/controllerextensions/Share.ts +10 -5
  75. package/src/sap/fe/core/controllerextensions/SideEffects.js +49 -45
  76. package/src/sap/fe/core/controllerextensions/SideEffects.ts +54 -41
  77. package/src/sap/fe/core/controllerextensions/Telemetry.js +4 -4
  78. package/src/sap/fe/core/controllerextensions/ViewState.js +10 -34
  79. package/src/sap/fe/core/controllerextensions/ViewState.ts +3 -49
  80. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +6 -8
  81. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +0 -1
  82. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -2
  83. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +0 -1
  84. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +4 -3
  85. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +1 -1
  86. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +16 -12
  87. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +4 -1
  88. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
  89. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +126 -74
  90. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +158 -91
  91. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -22
  92. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +0 -20
  93. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +10 -20
  94. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +11 -17
  95. package/src/sap/fe/core/controllerextensions/editFlow/editFlowConstants.js +1 -1
  96. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +191 -767
  97. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +277 -1024
  98. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  99. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -6
  100. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +0 -5
  101. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +381 -250
  102. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +467 -301
  103. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +2 -6
  104. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +0 -5
  105. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +2 -6
  106. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.ts +4 -6
  107. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +1 -6
  108. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.ts +0 -4
  109. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +1 -1
  110. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +4 -41
  111. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +1 -37
  112. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +1 -1
  113. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +0 -1
  114. package/src/sap/fe/core/controls/Any.js +1 -2
  115. package/src/sap/fe/core/controls/Any.ts +0 -1
  116. package/src/sap/fe/core/controls/AnyElement.js +1 -2
  117. package/src/sap/fe/core/controls/AnyElement.ts +0 -1
  118. package/src/sap/fe/core/controls/CommandExecution.js +3 -3
  119. package/src/sap/fe/core/controls/ComponentLoader.js +23 -10
  120. package/src/sap/fe/core/controls/ComponentLoader.ts +0 -1
  121. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +10 -13
  122. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +0 -6
  123. package/src/sap/fe/core/controls/EventDelegateHook.js +8 -9
  124. package/src/sap/fe/core/controls/FormElementWrapper.js +7 -7
  125. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -1
  126. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +140 -24
  127. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +141 -10
  128. package/src/sap/fe/core/converters/ConverterContext.js +8 -30
  129. package/src/sap/fe/core/converters/ConverterContext.ts +7 -29
  130. package/src/sap/fe/core/converters/ManifestSettings.js +37 -1
  131. package/src/sap/fe/core/converters/ManifestSettings.ts +12 -3
  132. package/src/sap/fe/core/converters/ManifestWrapper.js +12 -40
  133. package/src/sap/fe/core/converters/ManifestWrapper.ts +13 -46
  134. package/src/sap/fe/core/converters/MetaModelConverter.js +44 -48
  135. package/src/sap/fe/core/converters/MetaModelConverter.ts +50 -48
  136. package/src/sap/fe/core/converters/TemplateConverter.js +3 -2
  137. package/src/sap/fe/core/converters/TemplateConverter.ts +0 -1
  138. package/src/sap/fe/core/converters/annotations/DataField.js +1 -28
  139. package/src/sap/fe/core/converters/annotations/DataField.ts +0 -26
  140. package/src/sap/fe/core/converters/common/AnnotationConverter.js +24 -19
  141. package/src/sap/fe/core/converters/controls/Common/Action.js +13 -26
  142. package/src/sap/fe/core/converters/controls/Common/Action.ts +13 -31
  143. package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -6
  144. package/src/sap/fe/core/converters/controls/Common/Chart.ts +0 -5
  145. package/src/sap/fe/core/converters/controls/Common/Criticality.js +2 -4
  146. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +1 -2
  147. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -5
  148. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +0 -4
  149. package/src/sap/fe/core/converters/controls/Common/Form.js +3 -2
  150. package/src/sap/fe/core/converters/controls/Common/Form.ts +2 -1
  151. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -7
  152. package/src/sap/fe/core/converters/controls/Common/KPI.ts +11 -6
  153. package/src/sap/fe/core/converters/controls/Common/Table.js +159 -141
  154. package/src/sap/fe/core/converters/controls/Common/Table.ts +166 -122
  155. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +5 -30
  156. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +3 -29
  157. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +43 -55
  158. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +43 -47
  159. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -4
  160. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +0 -3
  161. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
  162. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -8
  163. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +2 -7
  164. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -11
  165. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +0 -9
  166. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -10
  167. package/src/sap/fe/core/converters/helpers/Aggregation.ts +0 -9
  168. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -7
  169. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +0 -6
  170. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -9
  171. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +0 -8
  172. package/src/sap/fe/core/converters/helpers/ID.js +1 -2
  173. package/src/sap/fe/core/converters/helpers/ID.ts +0 -1
  174. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +1 -2
  175. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +0 -1
  176. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  177. package/src/sap/fe/core/converters/helpers/Key.js +1 -5
  178. package/src/sap/fe/core/converters/helpers/Key.ts +0 -4
  179. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -2
  180. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +0 -1
  181. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  182. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -7
  183. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +0 -6
  184. package/src/sap/fe/core/converters/templates/ListReportConverter.js +6 -27
  185. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +9 -26
  186. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -16
  187. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +0 -15
  188. package/src/sap/fe/core/definition/FEDefinition.js +2550 -0
  189. package/src/sap/fe/core/designtime/AppComponent.designtime.js +11 -12
  190. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +9 -10
  191. package/src/sap/fe/core/formatters/CollaborationFormatter.js +8 -2
  192. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +0 -2
  193. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  194. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -2
  195. package/src/sap/fe/core/formatters/FPMFormatter.ts +0 -1
  196. package/src/sap/fe/core/formatters/FiscalFormat.js +9 -14
  197. package/src/sap/fe/core/formatters/FiscalFormat.ts +0 -11
  198. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -4
  199. package/src/sap/fe/core/formatters/KPIFormatter.ts +0 -3
  200. package/src/sap/fe/core/formatters/StandardFormatter.js +6 -3
  201. package/src/sap/fe/core/formatters/StandardFormatter.ts +6 -2
  202. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -4
  203. package/src/sap/fe/core/formatters/ValueFormatter.ts +0 -3
  204. package/src/sap/fe/core/fpm/Component.js +14 -17
  205. package/src/sap/fe/core/fpm/Component.ts +7 -10
  206. package/src/sap/fe/core/fpm/manifest.json +1 -1
  207. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +3 -10
  208. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.ts +0 -9
  209. package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -13
  210. package/src/sap/fe/core/helpers/AppStartupHelper.ts +0 -11
  211. package/src/sap/fe/core/helpers/BindingHelper.js +1 -4
  212. package/src/sap/fe/core/helpers/BindingHelper.ts +0 -3
  213. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +1 -2
  214. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +0 -1
  215. package/src/sap/fe/core/helpers/DeleteHelper.js +61 -32
  216. package/src/sap/fe/core/helpers/DeleteHelper.ts +79 -33
  217. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -2
  218. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +0 -1
  219. package/src/sap/fe/core/helpers/EditState.js +1 -1
  220. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -2
  221. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +0 -1
  222. package/src/sap/fe/core/helpers/FPMHelper.js +1 -2
  223. package/src/sap/fe/core/helpers/FPMHelper.ts +0 -1
  224. package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -8
  225. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +0 -7
  226. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +7 -1
  227. package/src/sap/fe/core/helpers/LoaderUtils.js +1 -1
  228. package/src/sap/fe/core/helpers/ManifestHelper.js +1 -3
  229. package/src/sap/fe/core/helpers/ManifestHelper.ts +0 -2
  230. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  231. package/src/sap/fe/core/helpers/MetaModelFunction.js +3 -8
  232. package/src/sap/fe/core/helpers/MetaModelFunction.ts +0 -5
  233. package/src/sap/fe/core/helpers/MetaPath.js +1 -7
  234. package/src/sap/fe/core/helpers/MetaPath.ts +0 -6
  235. package/src/sap/fe/core/helpers/ModelHelper.js +55 -35
  236. package/src/sap/fe/core/helpers/ModelHelper.ts +64 -38
  237. package/src/sap/fe/core/helpers/PasteHelper.js +77 -24
  238. package/src/sap/fe/core/helpers/PasteHelper.ts +105 -23
  239. package/src/sap/fe/core/helpers/PromiseKeeper.js +1 -3
  240. package/src/sap/fe/core/helpers/PromiseKeeper.ts +0 -2
  241. package/src/sap/fe/core/helpers/RecommendationHelper.js +1 -4
  242. package/src/sap/fe/core/helpers/RecommendationHelper.ts +0 -3
  243. package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -3
  244. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +3 -4
  245. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -2
  246. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +0 -1
  247. package/src/sap/fe/core/helpers/SizeHelper.js +1 -2
  248. package/src/sap/fe/core/helpers/SizeHelper.ts +0 -1
  249. package/src/sap/fe/core/helpers/StableIdHelper.js +7 -17
  250. package/src/sap/fe/core/helpers/StableIdHelper.ts +7 -17
  251. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +1 -12
  252. package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +0 -11
  253. package/src/sap/fe/core/helpers/Synchronization.js +1 -1
  254. package/src/sap/fe/core/helpers/TitleHelper.js +1 -10
  255. package/src/sap/fe/core/helpers/TitleHelper.ts +0 -9
  256. package/src/sap/fe/core/helpers/ToES6Promise.js +1 -2
  257. package/src/sap/fe/core/helpers/ToES6Promise.ts +0 -1
  258. package/src/sap/fe/core/helpers/TypeGuards.js +1 -15
  259. package/src/sap/fe/core/helpers/TypeGuards.ts +0 -14
  260. package/src/sap/fe/core/helpers/WebSocket.js +1 -1
  261. package/src/sap/fe/core/library.js +10 -44
  262. package/src/sap/fe/core/library.support.js +1 -1
  263. package/src/sap/fe/core/library.ts +8 -45
  264. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -6
  265. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -5
  266. package/src/sap/fe/core/messagebundle.properties +12 -1
  267. package/src/sap/fe/core/messagebundle_ar.properties +8 -0
  268. package/src/sap/fe/core/messagebundle_bg.properties +8 -0
  269. package/src/sap/fe/core/messagebundle_ca.properties +8 -0
  270. package/src/sap/fe/core/messagebundle_cnr.properties +8 -0
  271. package/src/sap/fe/core/messagebundle_cs.properties +9 -1
  272. package/src/sap/fe/core/messagebundle_cy.properties +8 -0
  273. package/src/sap/fe/core/messagebundle_da.properties +8 -0
  274. package/src/sap/fe/core/messagebundle_de.properties +8 -0
  275. package/src/sap/fe/core/messagebundle_el.properties +8 -0
  276. package/src/sap/fe/core/messagebundle_en.properties +8 -0
  277. package/src/sap/fe/core/messagebundle_en_GB.properties +8 -0
  278. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +144 -65
  279. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +8 -0
  280. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +273 -194
  281. package/src/sap/fe/core/messagebundle_es.properties +9 -1
  282. package/src/sap/fe/core/messagebundle_es_MX.properties +8 -0
  283. package/src/sap/fe/core/messagebundle_et.properties +8 -0
  284. package/src/sap/fe/core/messagebundle_fi.properties +8 -0
  285. package/src/sap/fe/core/messagebundle_fr.properties +8 -0
  286. package/src/sap/fe/core/messagebundle_fr_CA.properties +8 -0
  287. package/src/sap/fe/core/messagebundle_hi.properties +9 -1
  288. package/src/sap/fe/core/messagebundle_hr.properties +8 -0
  289. package/src/sap/fe/core/messagebundle_hu.properties +8 -0
  290. package/src/sap/fe/core/messagebundle_id.properties +12 -4
  291. package/src/sap/fe/core/messagebundle_it.properties +8 -0
  292. package/src/sap/fe/core/messagebundle_iw.properties +8 -0
  293. package/src/sap/fe/core/messagebundle_ja.properties +8 -0
  294. package/src/sap/fe/core/messagebundle_kk.properties +8 -0
  295. package/src/sap/fe/core/messagebundle_ko.properties +8 -0
  296. package/src/sap/fe/core/messagebundle_lt.properties +8 -0
  297. package/src/sap/fe/core/messagebundle_lv.properties +8 -0
  298. package/src/sap/fe/core/messagebundle_mk.properties +8 -0
  299. package/src/sap/fe/core/messagebundle_ms.properties +8 -0
  300. package/src/sap/fe/core/messagebundle_nl.properties +16 -8
  301. package/src/sap/fe/core/messagebundle_no.properties +8 -0
  302. package/src/sap/fe/core/messagebundle_pl.properties +8 -0
  303. package/src/sap/fe/core/messagebundle_pt.properties +8 -0
  304. package/src/sap/fe/core/messagebundle_pt_PT.properties +8 -0
  305. package/src/sap/fe/core/messagebundle_ro.properties +8 -0
  306. package/src/sap/fe/core/messagebundle_ru.properties +8 -0
  307. package/src/sap/fe/core/messagebundle_sh.properties +8 -0
  308. package/src/sap/fe/core/messagebundle_sk.properties +8 -0
  309. package/src/sap/fe/core/messagebundle_sl.properties +8 -0
  310. package/src/sap/fe/core/messagebundle_sr.properties +8 -0
  311. package/src/sap/fe/core/messagebundle_sv.properties +8 -0
  312. package/src/sap/fe/core/messagebundle_th.properties +12 -4
  313. package/src/sap/fe/core/messagebundle_tr.properties +8 -0
  314. package/src/sap/fe/core/messagebundle_uk.properties +10 -2
  315. package/src/sap/fe/core/messagebundle_vi.properties +8 -0
  316. package/src/sap/fe/core/messagebundle_zh_CN.properties +8 -0
  317. package/src/sap/fe/core/messagebundle_zh_TW.properties +8 -0
  318. package/src/sap/fe/core/operationsHelper.js +22 -7
  319. package/src/sap/fe/core/operationsHelper.ts +24 -5
  320. package/src/sap/fe/core/rootView/Fcl.controller.js +7 -27
  321. package/src/sap/fe/core/rootView/Fcl.controller.ts +0 -18
  322. package/src/sap/fe/core/rootView/NavContainer.controller.js +7 -12
  323. package/src/sap/fe/core/rootView/NavContainer.controller.ts +0 -5
  324. package/src/sap/fe/core/rootView/RootViewBaseController.js +10 -24
  325. package/src/sap/fe/core/rootView/RootViewBaseController.ts +3 -16
  326. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -3
  327. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +3 -3
  328. package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +4 -4
  329. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +3 -3
  330. package/src/sap/fe/core/services/ContextSharingServiceFactory.js +3 -4
  331. package/src/sap/fe/core/services/ContextSharingServiceFactory.ts +0 -1
  332. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +13 -20
  333. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +11 -17
  334. package/src/sap/fe/core/services/NavigationServiceFactory.js +11 -21
  335. package/src/sap/fe/core/services/NavigationServiceFactory.ts +4 -17
  336. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -3
  337. package/src/sap/fe/core/services/RoutingServiceFactory.js +7 -19
  338. package/src/sap/fe/core/services/RoutingServiceFactory.ts +0 -12
  339. package/src/sap/fe/core/services/ShellServicesFactory.js +8 -44
  340. package/src/sap/fe/core/services/ShellServicesFactory.ts +1 -41
  341. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +19 -60
  342. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +14 -57
  343. package/src/sap/fe/core/services/TelemetryServiceFactory.js +6 -14
  344. package/src/sap/fe/core/services/TelemetryServiceFactory.ts +2 -10
  345. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +17 -7
  346. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +17 -3
  347. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +11 -24
  348. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +0 -19
  349. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +3 -31
  350. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +0 -27
  351. package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.js +1 -4
  352. package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.ts +0 -3
  353. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +7 -7
  354. package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
  355. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
  356. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
  357. package/src/sap/fe/core/support/CommonHelper.js +4 -1
  358. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  359. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
  360. package/src/sap/fe/core/templating/ActionHelper.js +1 -2
  361. package/src/sap/fe/core/templating/ActionHelper.ts +0 -1
  362. package/src/sap/fe/core/templating/CommonFormatters.js +1 -2
  363. package/src/sap/fe/core/templating/CommonFormatters.ts +0 -1
  364. package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -6
  365. package/src/sap/fe/core/templating/CriticalityFormatters.ts +0 -5
  366. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -2
  367. package/src/sap/fe/core/templating/DataFieldFormatters.ts +0 -1
  368. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -18
  369. package/src/sap/fe/core/templating/DataModelPathHelper.ts +0 -17
  370. package/src/sap/fe/core/templating/DisplayModeFormatter.js +6 -1
  371. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -4
  372. package/src/sap/fe/core/templating/EntitySetHelper.ts +0 -3
  373. package/src/sap/fe/core/templating/EntityTypeHelper.js +4 -5
  374. package/src/sap/fe/core/templating/EntityTypeHelper.ts +3 -4
  375. package/src/sap/fe/core/templating/FieldControlHelper.js +4 -9
  376. package/src/sap/fe/core/templating/FieldControlHelper.ts +3 -9
  377. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  378. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  379. package/src/sap/fe/core/templating/PropertyHelper.js +1 -31
  380. package/src/sap/fe/core/templating/PropertyHelper.ts +0 -30
  381. package/src/sap/fe/core/templating/SemanticObjectHelper.js +1 -7
  382. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +0 -6
  383. package/src/sap/fe/core/templating/UIFormatters.js +18 -14
  384. package/src/sap/fe/core/templating/UIFormatters.ts +30 -18
  385. package/src/sap/fe/core/type/Date.js +3 -6
  386. package/src/sap/fe/core/type/Date.ts +0 -3
  387. package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -3
  388. package/src/sap/fe/core/type/EDM.js +1 -1
  389. package/src/sap/fe/core/type/Email.js +3 -3
  390. package/src/sap/fe/core/type/FiscalDate.js +3 -9
  391. package/src/sap/fe/core/type/FiscalDate.ts +0 -6
  392. package/src/sap/fe/core/type/InputMask.js +3 -7
  393. package/src/sap/fe/core/type/InputMask.ts +0 -4
@@ -24,7 +24,6 @@ import type AppComponent from "../AppComponent";
24
24
  /**
25
25
  * Defines a control that will not exist in the DOM.
26
26
  * Instead, only its child will be there and this control will forward all DOM related instruction to it.
27
- *
28
27
  * @experimental
29
28
  * @since 1.121.0
30
29
  * @public
@@ -145,7 +144,6 @@ class _BuildingBlockBase<T extends UI5Element> extends Control {
145
144
 
146
145
  /**
147
146
  * Retrieves the context path from the owner component.
148
- *
149
147
  * @returns The context path
150
148
  */
151
149
  getOwnerContextPath(): string | undefined {
@@ -157,7 +155,6 @@ class _BuildingBlockBase<T extends UI5Element> extends Control {
157
155
  * Get the data model object for the given metapath and optional contextPath.
158
156
  * @param metapath
159
157
  * @param contextPath
160
- *
161
158
  * @returns The data model object path
162
159
  */
163
160
  getDataModelObjectForMetaPath<ExpectedDataModelType>(
@@ -260,7 +257,6 @@ class _BuildingBlockBase<T extends UI5Element> extends Control {
260
257
 
261
258
  /**
262
259
  * This function (if available on the concrete control) provides the current accessibility state of the control.
263
- *
264
260
  * @returns The accessibility information for the control.
265
261
  */
266
262
  getAccessibilityInfo(): Object {
@@ -275,7 +271,6 @@ class _BuildingBlockBase<T extends UI5Element> extends Control {
275
271
  * Returns the DOMNode ID to be used for the "labelFor" attribute.
276
272
  *
277
273
  * We forward the call of this method to the content control.
278
- *
279
274
  * @returns ID to be used for the <code>labelFor</code>
280
275
  */
281
276
  getIdForLabel(): string {
@@ -240,7 +240,6 @@ sap.ui.define(["sap/base/Log", "sap/ui/base/ManagedObject", "sap/ui/core/util/XM
240
240
 
241
241
  /**
242
242
  * Adds information about the processing of one macro to the collection.
243
- *
244
243
  * @param sName Macro class name
245
244
  * @param oMetadata Definition from macro
246
245
  * @param mContexts Available named contexts
@@ -277,7 +276,6 @@ sap.ui.define(["sap/base/Log", "sap/ui/base/ManagedObject", "sap/ui/core/util/XM
277
276
  path: oContext.getPath()
278
277
  //data: JSON.stringify(oContext.getObject(),null,2)
279
278
  };
280
-
281
279
  if (oMetaDataContext) {
282
280
  oTraceMetadataContext.metaDataContexts.push(oMetaDataContext);
283
281
  }
@@ -319,67 +317,66 @@ sap.ui.define(["sap/base/Log", "sap/ui/base/ManagedObject", "sap/ui/core/util/XM
319
317
  * Returns all trace information if no id is specified
320
318
  *
321
319
  *
322
- <pre>Structure for a macro
323
- {
324
- macro: '', //name of macro
325
- metaDataContexts: [ //Properties of type sap.ui.model.Context
326
- {
327
- name: '', //context property name / key
328
- path: '', //from oContext.getPath()
329
- }
330
- ],
331
- properties: { // Other properties which become part of {this>}
332
- property1: value,
333
- property2: value
334
- }
335
- viewInfo: {
336
- viewInfo: {} // As specified in view or fragment creation
337
- },
338
- traceID: this.index, //ID for this trace information,
339
- macroInfo: {
340
- macroID: index, // traceID of this macro (redundant for macros)
341
- parentMacroID, index // traceID of the parent macro (if it has a parent)
342
- }
343
- }
344
- Structure for a control
345
- {
346
- control: '', //control class
347
- properties: { // Other properties which become part of {this>}
348
- property1: {
349
- originalValue: '', //Value before templating
350
- resolvedValue: '' //Value after templating
351
- }
352
- }
353
- contexts: { //Models and Contexts used during templating
354
- // Model or context name used for this control
355
- modelName1: { // For ODataMetaModel
356
- path1: {
357
- path: '', //absolut path within metamodel
358
- data: '', //data of path unless type Object
359
- }
360
- modelName2: {
361
- // for other model types
362
- {
363
- property1: value,
364
- property2: value
365
- }
366
- // In case binding cannot be resolved -> mark as runtime binding
367
- // This is not always true, e.g. in case the path is metamodelpath
368
- {
369
- "bindingFor": "Runtime"
370
- }
371
- }
372
- },
373
- viewInfo: {
374
- viewInfo: {} // As specified in view or fragment creation
375
- },
376
- macroInfo: {
377
- macroID: index, // traceID of the macro that created this control
378
- parentMacroID, index // traceID of the macro's parent macro
379
- },
380
- traceID: this.index //ID for this trace information
381
- }</pre>.
382
- *
320
+ * <pre>Structure for a macro
321
+ * {
322
+ * macro: '', //name of macro
323
+ * metaDataContexts: [ //Properties of type sap.ui.model.Context
324
+ * {
325
+ * name: '', //context property name / key
326
+ * path: '', //from oContext.getPath()
327
+ * }
328
+ * ],
329
+ * properties: { // Other properties which become part of {this>}
330
+ * property1: value,
331
+ * property2: value
332
+ * }
333
+ * viewInfo: {
334
+ * viewInfo: {} // As specified in view or fragment creation
335
+ * },
336
+ * traceID: this.index, //ID for this trace information,
337
+ * macroInfo: {
338
+ * macroID: index, // traceID of this macro (redundant for macros)
339
+ * parentMacroID, index // traceID of the parent macro (if it has a parent)
340
+ * }
341
+ * }
342
+ * Structure for a control
343
+ * {
344
+ * control: '', //control class
345
+ * properties: { // Other properties which become part of {this>}
346
+ * property1: {
347
+ * originalValue: '', //Value before templating
348
+ * resolvedValue: '' //Value after templating
349
+ * }
350
+ * }
351
+ * contexts: { //Models and Contexts used during templating
352
+ * // Model or context name used for this control
353
+ * modelName1: { // For ODataMetaModel
354
+ * path1: {
355
+ * path: '', //absolut path within metamodel
356
+ * data: '', //data of path unless type Object
357
+ * }
358
+ * modelName2: {
359
+ * // for other model types
360
+ * {
361
+ * property1: value,
362
+ * property2: value
363
+ * }
364
+ * // In case binding cannot be resolved -> mark as runtime binding
365
+ * // This is not always true, e.g. in case the path is metamodelpath
366
+ * {
367
+ * "bindingFor": "Runtime"
368
+ * }
369
+ * }
370
+ * },
371
+ * viewInfo: {
372
+ * viewInfo: {} // As specified in view or fragment creation
373
+ * },
374
+ * macroInfo: {
375
+ * macroID: index, // traceID of the macro that created this control
376
+ * parentMacroID, index // traceID of the macro's parent macro
377
+ * },
378
+ * traceID: this.index //ID for this trace information
379
+ * }</pre>.
383
380
  * @param id TraceInfo id
384
381
  * @returns Object / Array for TraceInfo
385
382
  */
@@ -394,7 +391,6 @@ sap.ui.define(["sap/base/Log", "sap/ui/base/ManagedObject", "sap/ui/core/util/XM
394
391
  }
395
392
  /**
396
393
  * Returns true if TraceInfo is active.
397
- *
398
394
  * @returns `true` when active
399
395
  */
400
396
  function isTraceInfoActive() {
@@ -418,4 +414,4 @@ sap.ui.define(["sap/base/Log", "sap/ui/base/ManagedObject", "sap/ui/core/util/XM
418
414
  getTraceInfo: getTraceInfo
419
415
  };
420
416
  }, true);
421
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhVHJhY2VJbmZvIiwidHJhY2VOYW1lc3BhY2UiLCJ4bWxucyIsInRyYWNlSXNPbiIsImxvY2F0aW9uIiwic2VhcmNoIiwiaW5jbHVkZXMiLCJhTmFtZXNwYWNlcyIsIm9DYWxsYmFja3MiLCJmbkNsb25lIiwib09iamVjdCIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImNvbGxlY3RDb250ZXh0SW5mbyIsInNWYWx1ZSIsIm9Db250ZXh0cyIsIm9WaXNpdG9yIiwib05vZGUiLCJhQ29udGV4dHMiLCJhUHJvbWlzZXMiLCJiaW5kaW5nUGFyc2VyIiwidW5kZWZpbmVkIiwiZSIsIkFycmF5IiwiaXNBcnJheSIsImZpbHRlciIsIm9Db250ZXh0IiwicGF0aCIsInBhcnRzIiwiZm9yRWFjaCIsImFQYXJ0cyIsIm9QYXJ0Q29udGV4dCIsIm9Nb2RlbCIsIm1vZGVsIiwic1NpbXBsZVBhdGgiLCJvUmVhbENvbnRleHQiLCJhSW5uZXJQYXJ0cyIsInNwbGl0IiwiZ2V0Q29udGV4dCIsInZpc2l0b3JSZXN1bHQiLCJnZXRSZXN1bHQiLCJwdXNoIiwidGhlbiIsIm9SZXN1bHQiLCJnZXRNb2RlbCIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsImdldFBhdGgiLCJkYXRhIiwiY2F0Y2giLCJiaW5kaW5nRm9yIiwiZXhjIiwiUHJvbWlzZSIsImFsbCIsImZpbGxBdHRyaWJ1dGVzIiwib1Jlc3VsdHMiLCJvQXR0cmlidXRlcyIsInNOYW1lIiwicmVzdWx0Iiwib3JpZ2luYWxWYWx1ZSIsInJlc29sdmVkVmFsdWUiLCJlcnJvciIsInN0YWNrIiwidG9TdHJpbmciLCJjb2xsZWN0SW5mbyIsImkiLCJhdHRyaWJ1dGVzIiwibGVuZ3RoIiwib0F0dHJpYnV0ZSIsIm5vZGVOYW1lIiwiZ2V0QXR0cmlidXRlIiwicHJvcGVydGllcyIsImNvbnRleHRzIiwicmVzb2x2ZSIsInNDb250cm9sTmFtZSIsImJJc0NvbnRyb2wiLCJ0ZXN0Iiwib1RyYWNlTWV0YWRhdGFDb250ZXh0IiwiaXNFcnJvciIsImNvbnRyb2wiLCJuYW1lc3BhY2VVUkkiLCJtZXRhRGF0YUNvbnRleHRzIiwiZmlyc3RDaGlsZCIsIm93bmVyRG9jdW1lbnQiLCJjaGlsZHJlbiIsImZpbmQiLCJub2RlIiwic3RhcnRzV2l0aCIsInNldEF0dHJpYnV0ZU5TIiwiYlJlbGV2YW50IiwiT2JqZWN0Iiwia2V5cyIsImFzc2lnbiIsInZpZXdJbmZvIiwiZ2V0Vmlld0luZm8iLCJtYWNyb0luZm8iLCJnZXRTZXR0aW5ncyIsInRyYWNlSUQiLCJ2aXNpdEF0dHJpYnV0ZXMiLCJ2aXNpdENoaWxkTm9kZXMiLCJleGNlcHRpb24iLCJYTUxTZXJpYWxpemVyIiwic2VyaWFsaXplVG9TdHJpbmciLCJMb2ciLCJtZXNzYWdlIiwibmFtZXNwYWNlIiwiWE1MUHJlcHJvY2Vzc29yIiwicGx1Z0luIiwiYmluZCIsInRyYWNlTWFjcm9DYWxscyIsIm9NZXRhZGF0YSIsIm1Db250ZXh0cyIsImFNZXRhZGF0YUNvbnRleHRLZXlzIiwibWV0YWRhdGFDb250ZXh0cyIsImFQcm9wZXJ0aWVzIiwibWFjcm8iLCJuYW1lIiwic0tleSIsIm9NZXRhRGF0YUNvbnRleHQiLCJvUHJvcGVydHkiLCJ0aGlzIiwiZ2V0T2JqZWN0IiwicGFyZW50TWFjcm9JRCIsIm1hY3JvSUQiLCJjb250ZXh0UGF0aCIsImdldFRyYWNlSW5mbyIsImlkIiwiYUVycm9ycyIsInRyYWNlSW5mbyIsImlzVHJhY2VJbmZvQWN0aXZlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUcmFjZUluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7XG5cdElWaXNpdG9yQ2FsbGJhY2ssXG5cdFRyYW5zZm9ybWVkQnVpbGRpbmdCbG9ja01ldGFkYXRhXG59IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IHsgYmluZGluZ1BhcnNlciB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgWE1MUHJlcHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS91dGlsL1hNTFByZXByb2Nlc3NvclwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbi8vVHJhY2UgaW5mb3JtYXRpb25cbmNvbnN0IGFUcmFjZUluZm86IFRyYWNlTWV0YWRhdGFDb250ZXh0W10gPSBbXG5cdC8qIFN0cnVjdHVyZSBmb3IgYSBtYWNyb1xuXHRcdFx0e1xuXHRcdFx0XHRtYWNybzogJycsIC8vbmFtZSBvZiBtYWNyb1xuXHRcdFx0XHRtZXRhRGF0YUNvbnRleHRzOiBbIC8vUHJvcGVydGllcyBvZiB0eXBlIHNhcC51aS5tb2RlbC5Db250ZXh0XG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bmFtZTogJycsIC8vY29udGV4dCBwcm9wZXJ0eSBuYW1lIC8ga2V5XG5cdFx0XHRcdFx0XHRwYXRoOiAnJywgLy9mcm9tIG9Db250ZXh0LmdldFBhdGgoKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XSxcblx0XHRcdFx0cHJvcGVydGllczogeyAvLyBPdGhlciBwcm9wZXJ0aWVzIHdoaWNoIGJlY29tZSBwYXJ0IG9mIHt0aGlzPn1cblx0XHRcdFx0XHRwcm9wZXJ0eTE6IHZhbHVlLFxuXHRcdFx0XHRcdHByb3BlcnR5MjogdmFsdWVcblx0XHRcdFx0fVxuXHRcdFx0XHR2aWV3SW5mbzoge1xuXHRcdFx0XHRcdHZpZXdJbmZvOiB7fSAvLyBBcyBzcGVjaWZpZWQgaW4gdmlldyBvciBmcmFnbWVudCBjcmVhdGlvblxuXHRcdFx0XHR9LFxuXHRcdFx0XHR0cmFjZUlEOiB0aGlzLmluZGV4LCAvL0lEIGZvciB0aGlzIHRyYWNlIGluZm9ybWF0aW9uLFxuXHRcdFx0XHRtYWNyb0luZm86IHtcblx0XHRcdFx0XHRtYWNyb0lEOiBpbmRleCwgLy8gdHJhY2VJRCBvZiB0aGlzIG1hY3JvIChyZWR1bmRhbnQgZm9yIG1hY3Jvcylcblx0XHRcdFx0XHRwYXJlbnRNYWNyb0lELCBpbmRleCAvLyB0cmFjZUlEIG9mIHRoZSBwYXJlbnQgbWFjcm8gKGlmIGl0IGhhcyBhIHBhcmVudClcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gU3RydWN0dXJlIGZvciBhIGNvbnRyb2xcblx0XHRcdHtcblx0XHRcdFx0Y29udHJvbDogJycsIC8vY29udHJvbCBjbGFzc1xuXHRcdFx0XHRwcm9wZXJ0aWVzOiB7IC8vIE90aGVyIHByb3BlcnRpZXMgd2hpY2ggYmVjb21lIHBhcnQgb2Yge3RoaXM+fVxuXHRcdFx0XHRcdHByb3BlcnR5MToge1xuXHRcdFx0XHRcdFx0b3JpZ2luYWxWYWx1ZTogJycsIC8vVmFsdWUgYmVmb3JlIHRlbXBsYXRpbmdcblx0XHRcdFx0XHRcdHJlc29sdmVkVmFsdWU6ICcnIC8vVmFsdWUgYWZ0ZXIgdGVtcGxhdGluZ1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRjb250ZXh0czogeyAvL01vZGVscyBhbmQgQ29udGV4dHMgdXNlZCBkdXJpbmcgdGVtcGxhdGluZ1xuXHRcdFx0XHRcdC8vIE1vZGVsIG9yIGNvbnRleHQgbmFtZSB1c2VkIGZvciB0aGlzIGNvbnRyb2xcblx0XHRcdFx0XHRtb2RlbE5hbWUxOiB7IC8vIEZvciBPRGF0YU1ldGFNb2RlbFxuXHRcdFx0XHRcdFx0cGF0aDE6IHtcblx0XHRcdFx0XHRcdFx0cGF0aDogJycsIC8vYWJzb2x1dCBwYXRoIHdpdGhpbiBtZXRhbW9kZWxcblx0XHRcdFx0XHRcdFx0ZGF0YTogJycsIC8vZGF0YSBvZiBwYXRoIHVubGVzcyB0eXBlIE9iamVjdFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdG1vZGVsTmFtZTI6IHtcblx0XHRcdFx0XHRcdC8vIGZvciBvdGhlciBtb2RlbCB0eXBlc1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRwcm9wZXJ0eTE6IHZhbHVlLFxuXHRcdFx0XHRcdFx0XHRwcm9wZXJ0eTI6IHZhbHVlXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvLyBJbiBjYXNlIGJpbmRpbmcgY2Fubm90IGJlIHJlc29sdmVkIC0+IG1hcmsgYXMgcnVudGltZSBiaW5kaW5nXG5cdFx0XHRcdFx0XHQvLyBUaGlzIGlzIG5vdCBhbHdheXMgdHJ1ZSwgZS5nLiBpbiBjYXNlIHRoZSBwYXRoIGlzIG1ldGFtb2RlbHBhdGhcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJiaW5kaW5nRm9yXCI6IFwiUnVudGltZVwiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR2aWV3SW5mbzoge1xuXHRcdFx0XHRcdHZpZXdJbmZvOiB7fSAvLyBBcyBzcGVjaWZpZWQgaW4gdmlldyBvciBmcmFnbWVudCBjcmVhdGlvblxuXHRcdFx0XHR9LFxuXHRcdFx0XHRtYWNyb0luZm86IHtcblx0XHRcdFx0XHRtYWNyb0lEOiBpbmRleCwgLy8gdHJhY2VJRCBvZiB0aGUgbWFjcm8gdGhhdCBjcmVhdGVkIHRoaXMgY29udHJvbFxuXHRcdFx0XHRcdHBhcmVudE1hY3JvSUQsIGluZGV4IC8vIHRyYWNlSUQgb2YgdGhlIG1hY3JvJ3MgcGFyZW50IG1hY3JvXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRyYWNlSUQ6IHRoaXMuaW5kZXggLy9JRCBmb3IgdGhpcyB0cmFjZSBpbmZvcm1hdGlvblxuXHRcdFx0fVxuXHRcdFx0Ki9cbl07XG5jb25zdCB0cmFjZU5hbWVzcGFjZSA9IFwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC5mZS5pbmZvLzFcIixcblx0eG1sbnMgPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCIsXG5cdC8qKlxuXHQgKiBTd2l0Y2ggaXMgY3VycmVudGx5IGJhc2VkIG9uIHVybCBwYXJhbWV0ZXJcblx0ICovXG5cdHRyYWNlSXNPbiA9IGxvY2F0aW9uLnNlYXJjaC5pbmNsdWRlcyhcInNhcC11aS14eC1mZVRyYWNlSW5mbz10cnVlXCIpLFxuXHQvKipcblx0ICogU3BlY2lmeSBhbGwgbmFtZXNwYWNlcyB0aGF0IHNoYWxsIGJlIHRyYWNlZCBkdXJpbmcgdGVtcGxhdGluZ1xuXHQgKi9cblx0YU5hbWVzcGFjZXMgPSBbXG5cdFx0XCJzYXAubVwiLFxuXHRcdFwic2FwLnV4YXBcIixcblx0XHRcInNhcC51aS51bmlmaWVkXCIsXG5cdFx0XCJzYXAuZlwiLFxuXHRcdFwic2FwLnVpLnRhYmxlXCIsXG5cdFx0XCJzYXAuc3VpdGUudWkubWljcm9jaGFydFwiLFxuXHRcdFwic2FwLnVpLmxheW91dC5mb3JtXCIsXG5cdFx0XCJzYXAudWkubWRjXCIsXG5cdFx0XCJzYXAudWkubWRjLmxpbmtcIixcblx0XHRcInNhcC51aS5tZGMuZmllbGRcIixcblx0XHRcInNhcC5mZS5mcG1cIlxuXHRdLFxuXHRvQ2FsbGJhY2tzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG5mdW5jdGlvbiBmbkNsb25lKG9PYmplY3Q6IG9iamVjdCk6IHVua25vd24ge1xuXHRyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvT2JqZWN0KSk7XG59XG50eXBlIFRyYWNlQ29udGV4dCA9IHtcblx0cGF0aDogc3RyaW5nO1xuXHRtb2RlbDogc3RyaW5nO1xuXHRwYXJ0czogVHJhY2VDb250ZXh0W107XG59O1xuYXN5bmMgZnVuY3Rpb24gY29sbGVjdENvbnRleHRJbmZvKFxuXHRzVmFsdWU6IHN0cmluZyB8IG51bGwsXG5cdG9Db250ZXh0czogUmVjb3JkPHN0cmluZywgVHJhY2VDb250ZXh0Pixcblx0b1Zpc2l0b3I6IElWaXNpdG9yQ2FsbGJhY2ssXG5cdG9Ob2RlOiBFbGVtZW50XG4pOiBQcm9taXNlPHVua25vd25bXT4ge1xuXHRsZXQgYUNvbnRleHRzOiBUcmFjZUNvbnRleHRbXTtcblx0Y29uc3QgYVByb21pc2VzOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcblx0dHJ5IHtcblx0XHRhQ29udGV4dHMgPSBiaW5kaW5nUGFyc2VyKHNWYWx1ZSwgdW5kZWZpbmVkLCBmYWxzZSwgdHJ1ZSkgfHwgW107XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRhQ29udGV4dHMgPSBbXTtcblx0fVxuXHRhQ29udGV4dHMgPSBBcnJheS5pc0FycmF5KGFDb250ZXh0cykgPyBhQ29udGV4dHMgOiBbYUNvbnRleHRzXTtcblx0YUNvbnRleHRzXG5cdFx0LmZpbHRlcihmdW5jdGlvbiAob0NvbnRleHQpIHtcblx0XHRcdHJldHVybiBvQ29udGV4dC5wYXRoIHx8IG9Db250ZXh0LnBhcnRzO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goZnVuY3Rpb24gKG9Db250ZXh0OiBUcmFjZUNvbnRleHQpIHtcblx0XHRcdGNvbnN0IGFQYXJ0cyA9IG9Db250ZXh0LnBhcnRzIHx8IFtvQ29udGV4dF07XG5cdFx0XHRhUGFydHNcblx0XHRcdFx0LmZpbHRlcihmdW5jdGlvbiAob1BhcnRDb250ZXh0OiBUcmFjZUNvbnRleHQpIHtcblx0XHRcdFx0XHRyZXR1cm4gb1BhcnRDb250ZXh0LnBhdGg7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5mb3JFYWNoKGZ1bmN0aW9uIChvUGFydENvbnRleHQ6IFRyYWNlQ29udGV4dCkge1xuXHRcdFx0XHRcdGNvbnN0IG9Nb2RlbDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSAob0NvbnRleHRzW29QYXJ0Q29udGV4dC5tb2RlbF0gPSBvQ29udGV4dHNbb1BhcnRDb250ZXh0Lm1vZGVsXSB8fCB7fSk7XG5cdFx0XHRcdFx0Y29uc3Qgc1NpbXBsZVBhdGggPSAhb1BhcnRDb250ZXh0LnBhdGguaW5jbHVkZXMoXCI+XCIpXG5cdFx0XHRcdFx0XHQ/IChvUGFydENvbnRleHQubW9kZWwgJiYgYCR7b1BhcnRDb250ZXh0Lm1vZGVsfT5gKSArIG9QYXJ0Q29udGV4dC5wYXRoXG5cdFx0XHRcdFx0XHQ6IG9QYXJ0Q29udGV4dC5wYXRoO1xuXHRcdFx0XHRcdGxldCBvUmVhbENvbnRleHQ6IENvbnRleHQgfCB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0bGV0IGFJbm5lclBhcnRzO1xuXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBvUGFydENvbnRleHQubW9kZWwgPT09IFwidW5kZWZpbmVkXCIgJiYgc1NpbXBsZVBhdGguaW5jbHVkZXMoXCI+XCIpKSB7XG5cdFx0XHRcdFx0XHRhSW5uZXJQYXJ0cyA9IHNTaW1wbGVQYXRoLnNwbGl0KFwiPlwiKTtcblx0XHRcdFx0XHRcdG9QYXJ0Q29udGV4dC5tb2RlbCA9IGFJbm5lclBhcnRzWzBdO1xuXHRcdFx0XHRcdFx0b1BhcnRDb250ZXh0LnBhdGggPSBhSW5uZXJQYXJ0c1sxXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdG9SZWFsQ29udGV4dCA9IG9WaXNpdG9yLmdldENvbnRleHQoc1NpbXBsZVBhdGgpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCB2aXNpdG9yUmVzdWx0ID0gb1Zpc2l0b3IuZ2V0UmVzdWx0KGB7JHtzU2ltcGxlUGF0aH19YCwgb05vZGUpITtcblx0XHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKFxuXHRcdFx0XHRcdFx0XHR2aXNpdG9yUmVzdWx0XG5cdFx0XHRcdFx0XHRcdFx0LnRoZW4oZnVuY3Rpb24gKG9SZXN1bHQ6IENvbnRleHQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChvUmVhbENvbnRleHQ/LmdldE1vZGVsKCkuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkgPT09IFwic2FwLnVpLm1vZGVsLmpzb24uSlNPTk1vZGVsXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCFvUmVzdWx0LmdldE1vZGVsKCkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvTW9kZWxbb1BhcnRDb250ZXh0LnBhdGhdID0gb1Jlc3VsdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvTW9kZWxbb1BhcnRDb250ZXh0LnBhdGhdID0gYENvbnRleHQgZnJvbSAke29SZXN1bHQuZ2V0UGF0aCgpfWA7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG9Nb2RlbFtvUGFydENvbnRleHQucGF0aF0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGF0aDogb1JlYWxDb250ZXh0IS5nZXRQYXRoKCksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YTogdHlwZW9mIG9SZXN1bHQgPT09IFwib2JqZWN0XCIgPyBcIltjdHJsL2NtZC1jbGlja10gb24gcGF0aCB0byBzZWUgZGF0YVwiIDogb1Jlc3VsdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdG9Nb2RlbFtvUGFydENvbnRleHQucGF0aF0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJpbmRpbmdGb3I6IFwiUnVudGltZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH0gY2F0Y2ggKGV4Yykge1xuXHRcdFx0XHRcdFx0b01vZGVsW29QYXJ0Q29udGV4dC5wYXRoXSA9IHtcblx0XHRcdFx0XHRcdFx0YmluZGluZ0ZvcjogXCJSdW50aW1lXCJcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHR9KTtcblx0cmV0dXJuIFByb21pc2UuYWxsKGFQcm9taXNlcyk7XG59XG5hc3luYyBmdW5jdGlvbiBmaWxsQXR0cmlidXRlcyhcblx0b1Jlc3VsdHM6IFByb21pc2U8dW5rbm93bj4sXG5cdG9BdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcblx0c05hbWU6IHN0cmluZyxcblx0c1ZhbHVlOiB1bmtub3duXG4pOiBQcm9taXNlPHZvaWQ+IHtcblx0cmV0dXJuIG9SZXN1bHRzXG5cdFx0LnRoZW4oZnVuY3Rpb24gKHJlc3VsdDogdW5rbm93bikge1xuXHRcdFx0b0F0dHJpYnV0ZXNbc05hbWVdID1cblx0XHRcdFx0c1ZhbHVlICE9PSByZXN1bHRcblx0XHRcdFx0XHQ/IHtcblx0XHRcdFx0XHRcdFx0b3JpZ2luYWxWYWx1ZTogc1ZhbHVlLFxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlZFZhbHVlOiByZXN1bHRcblx0XHRcdFx0XHQgIH1cblx0XHRcdFx0XHQ6IHNWYWx1ZTtcblx0XHRcdHJldHVybjtcblx0XHR9KVxuXHRcdC5jYXRjaChmdW5jdGlvbiAoZTogdW5rbm93bikge1xuXHRcdFx0Y29uc3QgZXJyb3IgPSBlIGFzIEVycm9yO1xuXHRcdFx0b0F0dHJpYnV0ZXNbc05hbWVdID0ge1xuXHRcdFx0XHRvcmlnaW5hbFZhbHVlOiBzVmFsdWUsXG5cdFx0XHRcdGVycm9yOiAoZXJyb3Iuc3RhY2sgJiYgZXJyb3Iuc3RhY2sudG9TdHJpbmcoKSkgfHwgZVxuXHRcdFx0fTtcblx0XHR9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RJbmZvKG9Ob2RlOiBFbGVtZW50LCBvVmlzaXRvcjogSVZpc2l0b3JDYWxsYmFjayk6IFByb21pc2U8eyBwcm9wZXJ0aWVzOiB7fTsgY29udGV4dHM6IHt9IH0+IHtcblx0Y29uc3Qgb0F0dHJpYnV0ZXMgPSB7fTtcblx0Y29uc3QgYVByb21pc2VzID0gW107XG5cdGNvbnN0IG9Db250ZXh0cyA9IHt9O1xuXHRsZXQgb1Jlc3VsdHM7XG5cdGZvciAobGV0IGkgPSBvTm9kZS5hdHRyaWJ1dGVzLmxlbmd0aCA+Pj4gMDsgaS0tOyApIHtcblx0XHRjb25zdCBvQXR0cmlidXRlID0gb05vZGUuYXR0cmlidXRlc1tpXSxcblx0XHRcdHNOYW1lID0gb0F0dHJpYnV0ZS5ub2RlTmFtZSxcblx0XHRcdHNWYWx1ZSA9IG9Ob2RlLmdldEF0dHJpYnV0ZShzTmFtZSkhO1xuXHRcdGlmICghW1wiY29yZTpyZXF1aXJlXCJdLmluY2x1ZGVzKHNOYW1lKSkge1xuXHRcdFx0YVByb21pc2VzLnB1c2goY29sbGVjdENvbnRleHRJbmZvKHNWYWx1ZSwgb0NvbnRleHRzLCBvVmlzaXRvciwgb05vZGUpKTtcblx0XHRcdG9SZXN1bHRzID0gb1Zpc2l0b3IuZ2V0UmVzdWx0KHNWYWx1ZSwgb05vZGUpO1xuXHRcdFx0aWYgKG9SZXN1bHRzKSB7XG5cdFx0XHRcdGFQcm9taXNlcy5wdXNoKGZpbGxBdHRyaWJ1dGVzKG9SZXN1bHRzLCBvQXR0cmlidXRlcywgc05hbWUsIHNWYWx1ZSkpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly9XaGF0XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHJldHVybiBQcm9taXNlLmFsbChhUHJvbWlzZXMpLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiB7IHByb3BlcnRpZXM6IG9BdHRyaWJ1dGVzLCBjb250ZXh0czogb0NvbnRleHRzIH07XG5cdH0pO1xufVxuZXhwb3J0IHR5cGUgVHJhY2VNZXRhZGF0YUNvbnRleHQgPSB7XG5cdGlzRXJyb3I6IGJvb2xlYW47XG5cdG1hY3JvPzogc3RyaW5nO1xuXHRjb250cm9sPzogc3RyaW5nO1xuXHRuYW1lPzogc3RyaW5nO1xuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblx0dmlld0luZm8/OiB1bmtub3duO1xuXHRtYWNyb0luZm8/OiBNYWNyb0luZm87XG5cdHRyYWNlSUQ/OiBudW1iZXI7XG5cdGVycm9yPzoge1xuXHRcdGV4Y2VwdGlvbjogRXJyb3I7XG5cdFx0bm9kZTogc3RyaW5nO1xuXHR9O1xuXHRtZXRhRGF0YUNvbnRleHRzOiB7IG5hbWU6IHN0cmluZzsgcGF0aDogc3RyaW5nIH1bXTtcblx0cHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZShvTm9kZTogRWxlbWVudCwgb1Zpc2l0b3I6IElWaXNpdG9yQ2FsbGJhY2spOiBQcm9taXNlPHZvaWQ+IHtcblx0dHJ5IHtcblx0XHRjb25zdCBzQ29udHJvbE5hbWUgPSBvTm9kZS5ub2RlTmFtZS5zcGxpdChcIjpcIilbMV0gfHwgb05vZGUubm9kZU5hbWUsXG5cdFx0XHRiSXNDb250cm9sID0gL15bQS1aXS8udGVzdChzQ29udHJvbE5hbWUpLFxuXHRcdFx0b1RyYWNlTWV0YWRhdGFDb250ZXh0OiBUcmFjZU1ldGFkYXRhQ29udGV4dCA9IHtcblx0XHRcdFx0aXNFcnJvcjogZmFsc2UsXG5cdFx0XHRcdGNvbnRyb2w6IGAke29Ob2RlLm5hbWVzcGFjZVVSSX0uJHtvTm9kZS5ub2RlTmFtZS5zcGxpdChcIjpcIilbMV0gfHwgb05vZGUubm9kZU5hbWV9YCxcblx0XHRcdFx0bWV0YURhdGFDb250ZXh0czogW10sXG5cdFx0XHRcdHByb3BlcnRpZXM6IHt9XG5cdFx0XHR9O1xuXG5cdFx0aWYgKGJJc0NvbnRyb2wpIHtcblx0XHRcdGNvbnN0IGZpcnN0Q2hpbGQgPSBbLi4uKG9Ob2RlLm93bmVyRG9jdW1lbnQuY2hpbGRyZW4gYXMgdW5rbm93biBhcyBFbGVtZW50W10pXS5maW5kKChub2RlKSA9PiAhbm9kZS5ub2RlTmFtZS5zdGFydHNXaXRoKFwiI1wiKSk7XG5cdFx0XHRpZiAoZmlyc3RDaGlsZCAmJiAhZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoXCJ4bWxuczp0cmFjZVwiKSkge1xuXHRcdFx0XHRmaXJzdENoaWxkLnNldEF0dHJpYnV0ZU5TKHhtbG5zLCBcInhtbG5zOnRyYWNlXCIsIHRyYWNlTmFtZXNwYWNlKTtcblx0XHRcdFx0Zmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGVOUyh0cmFjZU5hbWVzcGFjZSwgXCJ0cmFjZTppc1wiLCBcIm9uXCIpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGF3YWl0IGNvbGxlY3RJbmZvKG9Ob2RlLCBvVmlzaXRvcilcblx0XHRcdFx0LnRoZW4oYXN5bmMgZnVuY3Rpb24gKHJlc3VsdDogeyBwcm9wZXJ0aWVzOiB7fTsgY29udGV4dHM6IHt9IH0pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRcdFx0XHRjb25zdCBiUmVsZXZhbnQgPSBPYmplY3Qua2V5cyhyZXN1bHQuY29udGV4dHMpLmxlbmd0aCA+IDA7IC8vSWYgbm8gY29udGV4dCB3YXMgdXNlZCBpdCBpcyBub3QgcmVsZXZhbnQgc28gd2UgaWdub3JlIE9iamVjdC5rZXlzKHJlc3VsdC5wcm9wZXJ0aWVzKS5sZW5ndGhcblx0XHRcdFx0XHRpZiAoYlJlbGV2YW50KSB7XG5cdFx0XHRcdFx0XHRPYmplY3QuYXNzaWduKG9UcmFjZU1ldGFkYXRhQ29udGV4dCwgcmVzdWx0KTtcblx0XHRcdFx0XHRcdG9UcmFjZU1ldGFkYXRhQ29udGV4dC52aWV3SW5mbyA9IG9WaXNpdG9yLmdldFZpZXdJbmZvKCk7XG5cdFx0XHRcdFx0XHRvVHJhY2VNZXRhZGF0YUNvbnRleHQubWFjcm9JbmZvID0gb1Zpc2l0b3IuZ2V0U2V0dGluZ3MoKVtcIl9tYWNyb0luZm9cIl07XG5cdFx0XHRcdFx0XHRvVHJhY2VNZXRhZGF0YUNvbnRleHQudHJhY2VJRCA9IGFUcmFjZUluZm8ubGVuZ3RoO1xuXHRcdFx0XHRcdFx0b05vZGUuc2V0QXR0cmlidXRlTlModHJhY2VOYW1lc3BhY2UsIFwidHJhY2U6dHJhY2VJRFwiLCBvVHJhY2VNZXRhZGF0YUNvbnRleHQudHJhY2VJRC50b1N0cmluZygpKTtcblx0XHRcdFx0XHRcdGFUcmFjZUluZm8ucHVzaChvVHJhY2VNZXRhZGF0YUNvbnRleHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gb1Zpc2l0b3IudmlzaXRBdHRyaWJ1dGVzKG9Ob2RlKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4oYXN5bmMgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHJldHVybiBvVmlzaXRvci52aXNpdENoaWxkTm9kZXMob05vZGUpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGV4YzogdW5rbm93bikge1xuXHRcdFx0XHRcdG9UcmFjZU1ldGFkYXRhQ29udGV4dC5lcnJvciA9IHtcblx0XHRcdFx0XHRcdGV4Y2VwdGlvbjogZXhjIGFzIEVycm9yLFxuXHRcdFx0XHRcdFx0bm9kZTogbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhvTm9kZSlcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YXdhaXQgb1Zpc2l0b3IudmlzaXRBdHRyaWJ1dGVzKG9Ob2RlKTtcblx0XHRcdGF3YWl0IG9WaXNpdG9yLnZpc2l0Q2hpbGROb2RlcyhvTm9kZSk7XG5cdFx0fVxuXHR9IGNhdGNoIChleGM6IHVua25vd24pIHtcblx0XHRMb2cuZXJyb3IoYEVycm9yIHdoaWxlIHRyYWNpbmcgJyR7b05vZGU/Lm5vZGVOYW1lfSc6ICR7KGV4YyBhcyBFcnJvcikubWVzc2FnZX1gLCBcIlRyYWNlSW5mb1wiKTtcblx0XHRyZXR1cm4gb1Zpc2l0b3IudmlzaXRBdHRyaWJ1dGVzKG9Ob2RlKS50aGVuKGFzeW5jIGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBvVmlzaXRvci52aXNpdENoaWxkTm9kZXMob05vZGUpO1xuXHRcdH0pO1xuXHR9XG59XG4vKipcbiAqIFJlZ2lzdGVyIHBhdGgtdGhyb3VnaCBYTUxQcmVwcm9jZXNzb3IgcGx1Z2luIGZvciBhbGwgbmFtZXNwYWNlc1xuICogZ2l2ZW4gYWJvdmUgaW4gYU5hbWVzcGFjZXNcbiAqL1xuaWYgKHRyYWNlSXNPbikge1xuXHRhTmFtZXNwYWNlcy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lc3BhY2U6IHN0cmluZykge1xuXHRcdG9DYWxsYmFja3NbbmFtZXNwYWNlXSA9IFhNTFByZXByb2Nlc3Nvci5wbHVnSW4ocmVzb2x2ZS5iaW5kKG5hbWVzcGFjZSksIG5hbWVzcGFjZSk7XG5cdH0pO1xufVxuXG4vKipcbiAqIEFkZHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2Nlc3Npbmcgb2Ygb25lIG1hY3JvIHRvIHRoZSBjb2xsZWN0aW9uLlxuICpcbiAqIEBwYXJhbSBzTmFtZSBNYWNybyBjbGFzcyBuYW1lXG4gKiBAcGFyYW0gb01ldGFkYXRhIERlZmluaXRpb24gZnJvbSBtYWNyb1xuICogQHBhcmFtIG1Db250ZXh0cyBBdmFpbGFibGUgbmFtZWQgY29udGV4dHNcbiAqIEBwYXJhbSBvTm9kZVxuICogQHBhcmFtIG9WaXNpdG9yXG4gKiBAcmV0dXJucyBUaGUgdHJhY2VkIG1ldGFkYXRhIGNvbnRleHRcbiAqL1xuZXhwb3J0IHR5cGUgTWFjcm9JbmZvID0ge1xuXHRwYXJlbnRNYWNyb0lEOiBzdHJpbmc7XG5cdG1hY3JvSUQ6IHN0cmluZztcbn07XG5mdW5jdGlvbiB0cmFjZU1hY3JvQ2FsbHMoXG5cdHNOYW1lOiBzdHJpbmcsXG5cdG9NZXRhZGF0YTogVHJhbnNmb3JtZWRCdWlsZGluZ0Jsb2NrTWV0YWRhdGEsXG5cdG1Db250ZXh0czogUmVjb3JkPHN0cmluZywgQ29udGV4dD4sXG5cdG9Ob2RlOiBFbGVtZW50LFxuXHRvVmlzaXRvcjogSVZpc2l0b3JDYWxsYmFja1xuKTogVHJhY2VNZXRhZGF0YUNvbnRleHQge1xuXHR0cnkge1xuXHRcdGxldCBhTWV0YWRhdGFDb250ZXh0S2V5cyA9IChvTWV0YWRhdGEubWV0YWRhdGFDb250ZXh0cyAmJiBPYmplY3Qua2V5cyhvTWV0YWRhdGEubWV0YWRhdGFDb250ZXh0cykpIHx8IFtdO1xuXHRcdGNvbnN0IGFQcm9wZXJ0aWVzID0gKG9NZXRhZGF0YS5wcm9wZXJ0aWVzICYmIE9iamVjdC5rZXlzKG9NZXRhZGF0YS5wcm9wZXJ0aWVzKSkgfHwgW107XG5cdFx0Y29uc3QgbWFjcm9JbmZvOiBNYWNyb0luZm8gPSBmbkNsb25lKG9WaXNpdG9yLmdldFNldHRpbmdzKClbXCJfbWFjcm9JbmZvXCJdIHx8IHt9KSBhcyBNYWNyb0luZm87XG5cdFx0Y29uc3Qgb1RyYWNlTWV0YWRhdGFDb250ZXh0OiBUcmFjZU1ldGFkYXRhQ29udGV4dCA9IHtcblx0XHRcdGlzRXJyb3I6IGZhbHNlLFxuXHRcdFx0bWFjcm86IHNOYW1lLFxuXHRcdFx0bWV0YURhdGFDb250ZXh0czogW10sXG5cdFx0XHRwcm9wZXJ0aWVzOiB7fVxuXHRcdH07XG5cblx0XHRpZiAoYU1ldGFkYXRhQ29udGV4dEtleXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHQvL0luIGNhc2UgdGhlIG1hY3JvIGhhcyBubyBtZXRhZGF0YS5qcyB3ZSB0YWtlIGFsbCBtZXRhZGF0YUNvbnRleHRzIGV4Y2VwdCB0aGlzXG5cdFx0XHRhTWV0YWRhdGFDb250ZXh0S2V5cyA9IE9iamVjdC5rZXlzKG1Db250ZXh0cykuZmlsdGVyKGZ1bmN0aW9uIChuYW1lOiBzdHJpbmcpIHtcblx0XHRcdFx0cmV0dXJuIG5hbWUgIT09IFwidGhpc1wiO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKCFvTm9kZS5nZXRBdHRyaWJ1dGUoXCJ4bWxuczp0cmFjZVwiKSkge1xuXHRcdFx0b05vZGUuc2V0QXR0cmlidXRlTlMoeG1sbnMsIFwieG1sbnM6dHJhY2VcIiwgdHJhY2VOYW1lc3BhY2UpO1xuXHRcdH1cblxuXHRcdGlmIChhTWV0YWRhdGFDb250ZXh0S2V5cy5sZW5ndGggPiAwKSB7XG5cdFx0XHRhTWV0YWRhdGFDb250ZXh0S2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChzS2V5OiBzdHJpbmcpIHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRleHQgPSBtQ29udGV4dHNbc0tleV0sXG5cdFx0XHRcdFx0b01ldGFEYXRhQ29udGV4dCA9IG9Db250ZXh0ICYmIHtcblx0XHRcdFx0XHRcdG5hbWU6IHNLZXksXG5cdFx0XHRcdFx0XHRwYXRoOiBvQ29udGV4dC5nZXRQYXRoKClcblx0XHRcdFx0XHRcdC8vZGF0YTogSlNPTi5zdHJpbmdpZnkob0NvbnRleHQuZ2V0T2JqZWN0KCksbnVsbCwyKVxuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0aWYgKG9NZXRhRGF0YUNvbnRleHQpIHtcblx0XHRcdFx0XHRvVHJhY2VNZXRhZGF0YUNvbnRleHQubWV0YURhdGFDb250ZXh0cy5wdXNoKG9NZXRhRGF0YUNvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0YVByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAoc0tleTogc3RyaW5nKSB7XG5cdFx0XHRcdGNvbnN0IG9Qcm9wZXJ0eSA9IG1Db250ZXh0cy50aGlzLmdldE9iamVjdChzS2V5KTtcblxuXHRcdFx0XHRpZiAob1Byb3BlcnR5KSB7XG5cdFx0XHRcdFx0b1RyYWNlTWV0YWRhdGFDb250ZXh0LnByb3BlcnRpZXNbc0tleV0gPSBvUHJvcGVydHk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0b1RyYWNlTWV0YWRhdGFDb250ZXh0LnZpZXdJbmZvID0gb1Zpc2l0b3IuZ2V0Vmlld0luZm8oKTtcblx0XHRcdG9UcmFjZU1ldGFkYXRhQ29udGV4dC50cmFjZUlEID0gYVRyYWNlSW5mby5sZW5ndGg7XG5cdFx0XHRtYWNyb0luZm8ucGFyZW50TWFjcm9JRCA9IG1hY3JvSW5mby5tYWNyb0lEO1xuXHRcdFx0bWFjcm9JbmZvLm1hY3JvSUQgPSBvVHJhY2VNZXRhZGF0YUNvbnRleHQudHJhY2VJRC50b1N0cmluZygpO1xuXHRcdFx0b1RyYWNlTWV0YWRhdGFDb250ZXh0Lm1hY3JvSW5mbyA9IG1hY3JvSW5mbztcblx0XHRcdG9Ob2RlLnNldEF0dHJpYnV0ZU5TKHRyYWNlTmFtZXNwYWNlLCBcInRyYWNlOm1hY3JvSURcIiwgb1RyYWNlTWV0YWRhdGFDb250ZXh0LnRyYWNlSUQudG9TdHJpbmcoKSk7XG5cdFx0XHRhVHJhY2VJbmZvLnB1c2gob1RyYWNlTWV0YWRhdGFDb250ZXh0KTtcblx0XHR9XG5cdFx0cmV0dXJuIG9UcmFjZU1ldGFkYXRhQ29udGV4dDtcblx0fSBjYXRjaCAoZXhjKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGlzRXJyb3I6IHRydWUsXG5cdFx0XHRlcnJvcjoge1xuXHRcdFx0XHRleGNlcHRpb246IGV4YyBhcyBFcnJvcixcblx0XHRcdFx0bm9kZTogbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhvTm9kZSlcblx0XHRcdH0sXG5cdFx0XHRuYW1lOiBzTmFtZSxcblx0XHRcdGNvbnRleHRQYXRoOiBvVmlzaXRvcj8uZ2V0Q29udGV4dCgpPy5nZXRQYXRoKCksXG5cdFx0XHRtZXRhRGF0YUNvbnRleHRzOiBbXSxcblx0XHRcdHByb3BlcnRpZXM6IHt9XG5cdFx0fTtcblx0fVxufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBnbG9iYWxseSBzdG9yZWQgdHJhY2UgaW5mb3JtYXRpb24gZm9yIHRoZSBtYWNybyBvclxuICogY29udHJvbCBtYXJrZWQgd2l0aCB0aGUgZ2l2ZW4gaWQuXG4gKlxuICogUmV0dXJucyBhbGwgdHJhY2UgaW5mb3JtYXRpb24gaWYgbm8gaWQgaXMgc3BlY2lmaWVkXG4gKlxuICpcbjxwcmU+U3RydWN0dXJlIGZvciBhIG1hY3JvXG57XG5cdG1hY3JvOiAnJywgLy9uYW1lIG9mIG1hY3JvXG5cdG1ldGFEYXRhQ29udGV4dHM6IFsgLy9Qcm9wZXJ0aWVzIG9mIHR5cGUgc2FwLnVpLm1vZGVsLkNvbnRleHRcblx0XHR7XG5cdFx0XHRuYW1lOiAnJywgLy9jb250ZXh0IHByb3BlcnR5IG5hbWUgLyBrZXlcblx0XHRcdHBhdGg6ICcnLCAvL2Zyb20gb0NvbnRleHQuZ2V0UGF0aCgpXG5cdFx0fVxuXHRdLFxuXHRwcm9wZXJ0aWVzOiB7IC8vIE90aGVyIHByb3BlcnRpZXMgd2hpY2ggYmVjb21lIHBhcnQgb2Yge3RoaXM+fVxuXHRcdHByb3BlcnR5MTogdmFsdWUsXG5cdFx0cHJvcGVydHkyOiB2YWx1ZVxuXHR9XG5cdHZpZXdJbmZvOiB7XG5cdFx0dmlld0luZm86IHt9IC8vIEFzIHNwZWNpZmllZCBpbiB2aWV3IG9yIGZyYWdtZW50IGNyZWF0aW9uXG5cdH0sXG5cdHRyYWNlSUQ6IHRoaXMuaW5kZXgsIC8vSUQgZm9yIHRoaXMgdHJhY2UgaW5mb3JtYXRpb24sXG5cdG1hY3JvSW5mbzoge1xuXHRcdG1hY3JvSUQ6IGluZGV4LCAvLyB0cmFjZUlEIG9mIHRoaXMgbWFjcm8gKHJlZHVuZGFudCBmb3IgbWFjcm9zKVxuXHRcdHBhcmVudE1hY3JvSUQsIGluZGV4IC8vIHRyYWNlSUQgb2YgdGhlIHBhcmVudCBtYWNybyAoaWYgaXQgaGFzIGEgcGFyZW50KVxuXHR9XG59XG5TdHJ1Y3R1cmUgZm9yIGEgY29udHJvbFxue1xuXHRjb250cm9sOiAnJywgLy9jb250cm9sIGNsYXNzXG5cdHByb3BlcnRpZXM6IHsgLy8gT3RoZXIgcHJvcGVydGllcyB3aGljaCBiZWNvbWUgcGFydCBvZiB7dGhpcz59XG5cdFx0cHJvcGVydHkxOiB7XG5cdFx0XHRvcmlnaW5hbFZhbHVlOiAnJywgLy9WYWx1ZSBiZWZvcmUgdGVtcGxhdGluZ1xuXHRcdFx0cmVzb2x2ZWRWYWx1ZTogJycgLy9WYWx1ZSBhZnRlciB0ZW1wbGF0aW5nXG5cdFx0fVxuXHR9XG5cdGNvbnRleHRzOiB7IC8vTW9kZWxzIGFuZCBDb250ZXh0cyB1c2VkIGR1cmluZyB0ZW1wbGF0aW5nXG5cdFx0Ly8gTW9kZWwgb3IgY29udGV4dCBuYW1lIHVzZWQgZm9yIHRoaXMgY29udHJvbFxuXHRcdG1vZGVsTmFtZTE6IHsgLy8gRm9yIE9EYXRhTWV0YU1vZGVsXG5cdFx0XHRwYXRoMToge1xuXHRcdFx0XHRwYXRoOiAnJywgLy9hYnNvbHV0IHBhdGggd2l0aGluIG1ldGFtb2RlbFxuXHRcdFx0XHRkYXRhOiAnJywgLy9kYXRhIG9mIHBhdGggdW5sZXNzIHR5cGUgT2JqZWN0XG5cdFx0XHR9XG5cdFx0bW9kZWxOYW1lMjoge1xuXHRcdFx0Ly8gZm9yIG90aGVyIG1vZGVsIHR5cGVzXG5cdFx0XHR7XG5cdFx0XHRcdHByb3BlcnR5MTogdmFsdWUsXG5cdFx0XHRcdHByb3BlcnR5MjogdmFsdWVcblx0XHRcdH1cblx0XHRcdC8vIEluIGNhc2UgYmluZGluZyBjYW5ub3QgYmUgcmVzb2x2ZWQgLT4gbWFyayBhcyBydW50aW1lIGJpbmRpbmdcblx0XHRcdC8vIFRoaXMgaXMgbm90IGFsd2F5cyB0cnVlLCBlLmcuIGluIGNhc2UgdGhlIHBhdGggaXMgbWV0YW1vZGVscGF0aFxuXHRcdFx0e1xuXHRcdFx0XHRcImJpbmRpbmdGb3JcIjogXCJSdW50aW1lXCJcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHZpZXdJbmZvOiB7XG5cdFx0dmlld0luZm86IHt9IC8vIEFzIHNwZWNpZmllZCBpbiB2aWV3IG9yIGZyYWdtZW50IGNyZWF0aW9uXG5cdH0sXG5cdG1hY3JvSW5mbzoge1xuXHRcdG1hY3JvSUQ6IGluZGV4LCAvLyB0cmFjZUlEIG9mIHRoZSBtYWNybyB0aGF0IGNyZWF0ZWQgdGhpcyBjb250cm9sXG5cdFx0cGFyZW50TWFjcm9JRCwgaW5kZXggLy8gdHJhY2VJRCBvZiB0aGUgbWFjcm8ncyBwYXJlbnQgbWFjcm9cblx0fSxcblx0dHJhY2VJRDogdGhpcy5pbmRleCAvL0lEIGZvciB0aGlzIHRyYWNlIGluZm9ybWF0aW9uXG59PC9wcmU+LlxuICpcbiAqIEBwYXJhbSBpZCBUcmFjZUluZm8gaWRcbiAqIEByZXR1cm5zIE9iamVjdCAvIEFycmF5IGZvciBUcmFjZUluZm9cbiAqL1xuZnVuY3Rpb24gZ2V0VHJhY2VJbmZvKGlkOiBudW1iZXIpOiBUcmFjZU1ldGFkYXRhQ29udGV4dCB8IFRyYWNlTWV0YWRhdGFDb250ZXh0W10ge1xuXHRpZiAoaWQpIHtcblx0XHRyZXR1cm4gYVRyYWNlSW5mb1tpZF07XG5cdH1cblx0Y29uc3QgYUVycm9ycyA9IGFUcmFjZUluZm8uZmlsdGVyKGZ1bmN0aW9uICh0cmFjZUluZm86IFRyYWNlTWV0YWRhdGFDb250ZXh0KSB7XG5cdFx0cmV0dXJuIHRyYWNlSW5mby5lcnJvcjtcblx0fSk7XG5cdHJldHVybiAoYUVycm9ycy5sZW5ndGggPiAwICYmIGFFcnJvcnMpIHx8IGFUcmFjZUluZm87XG59XG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiBUcmFjZUluZm8gaXMgYWN0aXZlLlxuICpcbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIGFjdGl2ZVxuICovXG5mdW5jdGlvbiBpc1RyYWNlSW5mb0FjdGl2ZSgpOiBib29sZWFuIHtcblx0cmV0dXJuIHRyYWNlSXNPbjtcbn1cbi8qKlxuICogQHR5cGVkZWYgc2FwLmZlLm1hY3Jvcy5UcmFjZUluZm9cbiAqIFRyYWNlSW5mbyBmb3IgU0FQIEZpb3JpIGVsZW1lbnRzXG4gKlxuICogT25jZSB0cmFjZXMgaXMgc3dpdGNoZWQsIGluZm9ybWF0aW9uIGFib3V0IG1hY3JvcyBhbmQgY29udHJvbHNcbiAqIHRoYXQgYXJlIHByb2Nlc3NlZCBkdXJpbmcgeG1sIHByZXByb2Nlc3NpbmcgKCBAc2VlIHtAbGluayBzYXAudWkuY29yZS51dGlsLlhNTFByZXByb2Nlc3Nvcn0pXG4gKiB3aWxsIGJlIGNvbGxlY3RlZCB3aXRoaW4gdGhpcyBzaW5nbGV0b25cbiAqIEBuYW1lc3BhY2VcbiAqIEBnbG9iYWxcbiAqIEBleHBlcmltZW50YWwgVGhpcyBtb2R1bGUgaXMgb25seSBmb3IgZXhwZXJpbWVudGFsIHVzZSEgPGJyLz48Yj5UaGlzIGlzIG9ubHkgYSBQT0MgYW5kIG1heWJlIGRlbGV0ZWQ8L2I+XG4gKiBAc2luY2UgMS43NC4wXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHtcblx0aXNUcmFjZUluZm9BY3RpdmU6IGlzVHJhY2VJbmZvQWN0aXZlLFxuXHR0cmFjZU1hY3JvQ2FsbHM6IHRyYWNlTWFjcm9DYWxscyxcblx0Z2V0VHJhY2VJbmZvOiBnZXRUcmFjZUluZm9cbn07XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7O0VBUUE7RUFDQSxNQUFNQSxVQUFrQyxHQUFHO0lBQzFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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
417
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhVHJhY2VJbmZvIiwidHJhY2VOYW1lc3BhY2UiLCJ4bWxucyIsInRyYWNlSXNPbiIsImxvY2F0aW9uIiwic2VhcmNoIiwiaW5jbHVkZXMiLCJhTmFtZXNwYWNlcyIsIm9DYWxsYmFja3MiLCJmbkNsb25lIiwib09iamVjdCIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImNvbGxlY3RDb250ZXh0SW5mbyIsInNWYWx1ZSIsIm9Db250ZXh0cyIsIm9WaXNpdG9yIiwib05vZGUiLCJhQ29udGV4dHMiLCJhUHJvbWlzZXMiLCJiaW5kaW5nUGFyc2VyIiwidW5kZWZpbmVkIiwiZSIsIkFycmF5IiwiaXNBcnJheSIsImZpbHRlciIsIm9Db250ZXh0IiwicGF0aCIsInBhcnRzIiwiZm9yRWFjaCIsImFQYXJ0cyIsIm9QYXJ0Q29udGV4dCIsIm9Nb2RlbCIsIm1vZGVsIiwic1NpbXBsZVBhdGgiLCJvUmVhbENvbnRleHQiLCJhSW5uZXJQYXJ0cyIsInNwbGl0IiwiZ2V0Q29udGV4dCIsInZpc2l0b3JSZXN1bHQiLCJnZXRSZXN1bHQiLCJwdXNoIiwidGhlbiIsIm9SZXN1bHQiLCJfb1JlYWxDb250ZXh0IiwiZ2V0TW9kZWwiLCJnZXRNZXRhZGF0YSIsImdldE5hbWUiLCJnZXRQYXRoIiwiZGF0YSIsImNhdGNoIiwiYmluZGluZ0ZvciIsImV4YyIsIlByb21pc2UiLCJhbGwiLCJmaWxsQXR0cmlidXRlcyIsIm9SZXN1bHRzIiwib0F0dHJpYnV0ZXMiLCJzTmFtZSIsInJlc3VsdCIsIm9yaWdpbmFsVmFsdWUiLCJyZXNvbHZlZFZhbHVlIiwiZXJyb3IiLCJzdGFjayIsInRvU3RyaW5nIiwiY29sbGVjdEluZm8iLCJpIiwiYXR0cmlidXRlcyIsImxlbmd0aCIsIm9BdHRyaWJ1dGUiLCJub2RlTmFtZSIsImdldEF0dHJpYnV0ZSIsInByb3BlcnRpZXMiLCJjb250ZXh0cyIsInJlc29sdmUiLCJzQ29udHJvbE5hbWUiLCJiSXNDb250cm9sIiwidGVzdCIsIm9UcmFjZU1ldGFkYXRhQ29udGV4dCIsImlzRXJyb3IiLCJjb250cm9sIiwibmFtZXNwYWNlVVJJIiwibWV0YURhdGFDb250ZXh0cyIsImZpcnN0Q2hpbGQiLCJvd25lckRvY3VtZW50IiwiY2hpbGRyZW4iLCJmaW5kIiwibm9kZSIsInN0YXJ0c1dpdGgiLCJzZXRBdHRyaWJ1dGVOUyIsImJSZWxldmFudCIsIk9iamVjdCIsImtleXMiLCJhc3NpZ24iLCJ2aWV3SW5mbyIsImdldFZpZXdJbmZvIiwibWFjcm9JbmZvIiwiZ2V0U2V0dGluZ3MiLCJ0cmFjZUlEIiwidmlzaXRBdHRyaWJ1dGVzIiwidmlzaXRDaGlsZE5vZGVzIiwiZXhjZXB0aW9uIiwiWE1MU2VyaWFsaXplciIsInNlcmlhbGl6ZVRvU3RyaW5nIiwiTG9nIiwibWVzc2FnZSIsIm5hbWVzcGFjZSIsIlhNTFByZXByb2Nlc3NvciIsInBsdWdJbiIsImJpbmQiLCJ0cmFjZU1hY3JvQ2FsbHMiLCJvTWV0YWRhdGEiLCJtQ29udGV4dHMiLCJhTWV0YWRhdGFDb250ZXh0S2V5cyIsIm1ldGFkYXRhQ29udGV4dHMiLCJhUHJvcGVydGllcyIsIm1hY3JvIiwibmFtZSIsInNLZXkiLCJvTWV0YURhdGFDb250ZXh0Iiwib1Byb3BlcnR5IiwidGhpcyIsImdldE9iamVjdCIsInBhcmVudE1hY3JvSUQiLCJtYWNyb0lEIiwiX29WaXNpdG9yJGdldENvbnRleHQiLCJjb250ZXh0UGF0aCIsImdldFRyYWNlSW5mbyIsImlkIiwiYUVycm9ycyIsInRyYWNlSW5mbyIsImlzVHJhY2VJbmZvQWN0aXZlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUcmFjZUluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7XG5cdElWaXNpdG9yQ2FsbGJhY2ssXG5cdFRyYW5zZm9ybWVkQnVpbGRpbmdCbG9ja01ldGFkYXRhXG59IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IHsgYmluZGluZ1BhcnNlciB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgWE1MUHJlcHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS91dGlsL1hNTFByZXByb2Nlc3NvclwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbi8vVHJhY2UgaW5mb3JtYXRpb25cbmNvbnN0IGFUcmFjZUluZm86IFRyYWNlTWV0YWRhdGFDb250ZXh0W10gPSBbXG5cdC8qIFN0cnVjdHVyZSBmb3IgYSBtYWNyb1xuXHRcdFx0e1xuXHRcdFx0XHRtYWNybzogJycsIC8vbmFtZSBvZiBtYWNyb1xuXHRcdFx0XHRtZXRhRGF0YUNvbnRleHRzOiBbIC8vUHJvcGVydGllcyBvZiB0eXBlIHNhcC51aS5tb2RlbC5Db250ZXh0XG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bmFtZTogJycsIC8vY29udGV4dCBwcm9wZXJ0eSBuYW1lIC8ga2V5XG5cdFx0XHRcdFx0XHRwYXRoOiAnJywgLy9mcm9tIG9Db250ZXh0LmdldFBhdGgoKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XSxcblx0XHRcdFx0cHJvcGVydGllczogeyAvLyBPdGhlciBwcm9wZXJ0aWVzIHdoaWNoIGJlY29tZSBwYXJ0IG9mIHt0aGlzPn1cblx0XHRcdFx0XHRwcm9wZXJ0eTE6IHZhbHVlLFxuXHRcdFx0XHRcdHByb3BlcnR5MjogdmFsdWVcblx0XHRcdFx0fVxuXHRcdFx0XHR2aWV3SW5mbzoge1xuXHRcdFx0XHRcdHZpZXdJbmZvOiB7fSAvLyBBcyBzcGVjaWZpZWQgaW4gdmlldyBvciBmcmFnbWVudCBjcmVhdGlvblxuXHRcdFx0XHR9LFxuXHRcdFx0XHR0cmFjZUlEOiB0aGlzLmluZGV4LCAvL0lEIGZvciB0aGlzIHRyYWNlIGluZm9ybWF0aW9uLFxuXHRcdFx0XHRtYWNyb0luZm86IHtcblx0XHRcdFx0XHRtYWNyb0lEOiBpbmRleCwgLy8gdHJhY2VJRCBvZiB0aGlzIG1hY3JvIChyZWR1bmRhbnQgZm9yIG1hY3Jvcylcblx0XHRcdFx0XHRwYXJlbnRNYWNyb0lELCBpbmRleCAvLyB0cmFjZUlEIG9mIHRoZSBwYXJlbnQgbWFjcm8gKGlmIGl0IGhhcyBhIHBhcmVudClcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gU3RydWN0dXJlIGZvciBhIGNvbnRyb2xcblx0XHRcdHtcblx0XHRcdFx0Y29udHJvbDogJycsIC8vY29udHJvbCBjbGFzc1xuXHRcdFx0XHRwcm9wZXJ0aWVzOiB7IC8vIE90aGVyIHByb3BlcnRpZXMgd2hpY2ggYmVjb21lIHBhcnQgb2Yge3RoaXM+fVxuXHRcdFx0XHRcdHByb3BlcnR5MToge1xuXHRcdFx0XHRcdFx0b3JpZ2luYWxWYWx1ZTogJycsIC8vVmFsdWUgYmVmb3JlIHRlbXBsYXRpbmdcblx0XHRcdFx0XHRcdHJlc29sdmVkVmFsdWU6ICcnIC8vVmFsdWUgYWZ0ZXIgdGVtcGxhdGluZ1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRjb250ZXh0czogeyAvL01vZGVscyBhbmQgQ29udGV4dHMgdXNlZCBkdXJpbmcgdGVtcGxhdGluZ1xuXHRcdFx0XHRcdC8vIE1vZGVsIG9yIGNvbnRleHQgbmFtZSB1c2VkIGZvciB0aGlzIGNvbnRyb2xcblx0XHRcdFx0XHRtb2RlbE5hbWUxOiB7IC8vIEZvciBPRGF0YU1ldGFNb2RlbFxuXHRcdFx0XHRcdFx0cGF0aDE6IHtcblx0XHRcdFx0XHRcdFx0cGF0aDogJycsIC8vYWJzb2x1dCBwYXRoIHdpdGhpbiBtZXRhbW9kZWxcblx0XHRcdFx0XHRcdFx0ZGF0YTogJycsIC8vZGF0YSBvZiBwYXRoIHVubGVzcyB0eXBlIE9iamVjdFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdG1vZGVsTmFtZTI6IHtcblx0XHRcdFx0XHRcdC8vIGZvciBvdGhlciBtb2RlbCB0eXBlc1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRwcm9wZXJ0eTE6IHZhbHVlLFxuXHRcdFx0XHRcdFx0XHRwcm9wZXJ0eTI6IHZhbHVlXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvLyBJbiBjYXNlIGJpbmRpbmcgY2Fubm90IGJlIHJlc29sdmVkIC0+IG1hcmsgYXMgcnVudGltZSBiaW5kaW5nXG5cdFx0XHRcdFx0XHQvLyBUaGlzIGlzIG5vdCBhbHdheXMgdHJ1ZSwgZS5nLiBpbiBjYXNlIHRoZSBwYXRoIGlzIG1ldGFtb2RlbHBhdGhcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJiaW5kaW5nRm9yXCI6IFwiUnVudGltZVwiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR2aWV3SW5mbzoge1xuXHRcdFx0XHRcdHZpZXdJbmZvOiB7fSAvLyBBcyBzcGVjaWZpZWQgaW4gdmlldyBvciBmcmFnbWVudCBjcmVhdGlvblxuXHRcdFx0XHR9LFxuXHRcdFx0XHRtYWNyb0luZm86IHtcblx0XHRcdFx0XHRtYWNyb0lEOiBpbmRleCwgLy8gdHJhY2VJRCBvZiB0aGUgbWFjcm8gdGhhdCBjcmVhdGVkIHRoaXMgY29udHJvbFxuXHRcdFx0XHRcdHBhcmVudE1hY3JvSUQsIGluZGV4IC8vIHRyYWNlSUQgb2YgdGhlIG1hY3JvJ3MgcGFyZW50IG1hY3JvXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRyYWNlSUQ6IHRoaXMuaW5kZXggLy9JRCBmb3IgdGhpcyB0cmFjZSBpbmZvcm1hdGlvblxuXHRcdFx0fVxuXHRcdFx0Ki9cbl07XG5jb25zdCB0cmFjZU5hbWVzcGFjZSA9IFwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC5mZS5pbmZvLzFcIixcblx0eG1sbnMgPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCIsXG5cdC8qKlxuXHQgKiBTd2l0Y2ggaXMgY3VycmVudGx5IGJhc2VkIG9uIHVybCBwYXJhbWV0ZXJcblx0ICovXG5cdHRyYWNlSXNPbiA9IGxvY2F0aW9uLnNlYXJjaC5pbmNsdWRlcyhcInNhcC11aS14eC1mZVRyYWNlSW5mbz10cnVlXCIpLFxuXHQvKipcblx0ICogU3BlY2lmeSBhbGwgbmFtZXNwYWNlcyB0aGF0IHNoYWxsIGJlIHRyYWNlZCBkdXJpbmcgdGVtcGxhdGluZ1xuXHQgKi9cblx0YU5hbWVzcGFjZXMgPSBbXG5cdFx0XCJzYXAubVwiLFxuXHRcdFwic2FwLnV4YXBcIixcblx0XHRcInNhcC51aS51bmlmaWVkXCIsXG5cdFx0XCJzYXAuZlwiLFxuXHRcdFwic2FwLnVpLnRhYmxlXCIsXG5cdFx0XCJzYXAuc3VpdGUudWkubWljcm9jaGFydFwiLFxuXHRcdFwic2FwLnVpLmxheW91dC5mb3JtXCIsXG5cdFx0XCJzYXAudWkubWRjXCIsXG5cdFx0XCJzYXAudWkubWRjLmxpbmtcIixcblx0XHRcInNhcC51aS5tZGMuZmllbGRcIixcblx0XHRcInNhcC5mZS5mcG1cIlxuXHRdLFxuXHRvQ2FsbGJhY2tzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG5mdW5jdGlvbiBmbkNsb25lKG9PYmplY3Q6IG9iamVjdCk6IHVua25vd24ge1xuXHRyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvT2JqZWN0KSk7XG59XG50eXBlIFRyYWNlQ29udGV4dCA9IHtcblx0cGF0aDogc3RyaW5nO1xuXHRtb2RlbDogc3RyaW5nO1xuXHRwYXJ0czogVHJhY2VDb250ZXh0W107XG59O1xuYXN5bmMgZnVuY3Rpb24gY29sbGVjdENvbnRleHRJbmZvKFxuXHRzVmFsdWU6IHN0cmluZyB8IG51bGwsXG5cdG9Db250ZXh0czogUmVjb3JkPHN0cmluZywgVHJhY2VDb250ZXh0Pixcblx0b1Zpc2l0b3I6IElWaXNpdG9yQ2FsbGJhY2ssXG5cdG9Ob2RlOiBFbGVtZW50XG4pOiBQcm9taXNlPHVua25vd25bXT4ge1xuXHRsZXQgYUNvbnRleHRzOiBUcmFjZUNvbnRleHRbXTtcblx0Y29uc3QgYVByb21pc2VzOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcblx0dHJ5IHtcblx0XHRhQ29udGV4dHMgPSBiaW5kaW5nUGFyc2VyKHNWYWx1ZSwgdW5kZWZpbmVkLCBmYWxzZSwgdHJ1ZSkgfHwgW107XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRhQ29udGV4dHMgPSBbXTtcblx0fVxuXHRhQ29udGV4dHMgPSBBcnJheS5pc0FycmF5KGFDb250ZXh0cykgPyBhQ29udGV4dHMgOiBbYUNvbnRleHRzXTtcblx0YUNvbnRleHRzXG5cdFx0LmZpbHRlcihmdW5jdGlvbiAob0NvbnRleHQpIHtcblx0XHRcdHJldHVybiBvQ29udGV4dC5wYXRoIHx8IG9Db250ZXh0LnBhcnRzO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goZnVuY3Rpb24gKG9Db250ZXh0OiBUcmFjZUNvbnRleHQpIHtcblx0XHRcdGNvbnN0IGFQYXJ0cyA9IG9Db250ZXh0LnBhcnRzIHx8IFtvQ29udGV4dF07XG5cdFx0XHRhUGFydHNcblx0XHRcdFx0LmZpbHRlcihmdW5jdGlvbiAob1BhcnRDb250ZXh0OiBUcmFjZUNvbnRleHQpIHtcblx0XHRcdFx0XHRyZXR1cm4gb1BhcnRDb250ZXh0LnBhdGg7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5mb3JFYWNoKGZ1bmN0aW9uIChvUGFydENvbnRleHQ6IFRyYWNlQ29udGV4dCkge1xuXHRcdFx0XHRcdGNvbnN0IG9Nb2RlbDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSAob0NvbnRleHRzW29QYXJ0Q29udGV4dC5tb2RlbF0gPSBvQ29udGV4dHNbb1BhcnRDb250ZXh0Lm1vZGVsXSB8fCB7fSk7XG5cdFx0XHRcdFx0Y29uc3Qgc1NpbXBsZVBhdGggPSAhb1BhcnRDb250ZXh0LnBhdGguaW5jbHVkZXMoXCI+XCIpXG5cdFx0XHRcdFx0XHQ/IChvUGFydENvbnRleHQubW9kZWwgJiYgYCR7b1BhcnRDb250ZXh0Lm1vZGVsfT5gKSArIG9QYXJ0Q29udGV4dC5wYXRoXG5cdFx0XHRcdFx0XHQ6IG9QYXJ0Q29udGV4dC5wYXRoO1xuXHRcdFx0XHRcdGxldCBvUmVhbENvbnRleHQ6IENvbnRleHQgfCB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0bGV0IGFJbm5lclBhcnRzO1xuXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBvUGFydENvbnRleHQubW9kZWwgPT09IFwidW5kZWZpbmVkXCIgJiYgc1NpbXBsZVBhdGguaW5jbHVkZXMoXCI+XCIpKSB7XG5cdFx0XHRcdFx0XHRhSW5uZXJQYXJ0cyA9IHNTaW1wbGVQYXRoLnNwbGl0KFwiPlwiKTtcblx0XHRcdFx0XHRcdG9QYXJ0Q29udGV4dC5tb2RlbCA9IGFJbm5lclBhcnRzWzBdO1xuXHRcdFx0XHRcdFx0b1BhcnRDb250ZXh0LnBhdGggPSBhSW5uZXJQYXJ0c1sxXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdG9SZWFsQ29udGV4dCA9IG9WaXNpdG9yLmdldENvbnRleHQoc1NpbXBsZVBhdGgpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCB2aXNpdG9yUmVzdWx0ID0gb1Zpc2l0b3IuZ2V0UmVzdWx0KGB7JHtzU2ltcGxlUGF0aH19YCwgb05vZGUpITtcblx0XHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKFxuXHRcdFx0XHRcdFx0XHR2aXNpdG9yUmVzdWx0XG5cdFx0XHRcdFx0XHRcdFx0LnRoZW4oZnVuY3Rpb24gKG9SZXN1bHQ6IENvbnRleHQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChvUmVhbENvbnRleHQ/LmdldE1vZGVsKCkuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkgPT09IFwic2FwLnVpLm1vZGVsLmpzb24uSlNPTk1vZGVsXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCFvUmVzdWx0LmdldE1vZGVsKCkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvTW9kZWxbb1BhcnRDb250ZXh0LnBhdGhdID0gb1Jlc3VsdDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvTW9kZWxbb1BhcnRDb250ZXh0LnBhdGhdID0gYENvbnRleHQgZnJvbSAke29SZXN1bHQuZ2V0UGF0aCgpfWA7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG9Nb2RlbFtvUGFydENvbnRleHQucGF0aF0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGF0aDogb1JlYWxDb250ZXh0IS5nZXRQYXRoKCksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YTogdHlwZW9mIG9SZXN1bHQgPT09IFwib2JqZWN0XCIgPyBcIltjdHJsL2NtZC1jbGlja10gb24gcGF0aCB0byBzZWUgZGF0YVwiIDogb1Jlc3VsdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdG9Nb2RlbFtvUGFydENvbnRleHQucGF0aF0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJpbmRpbmdGb3I6IFwiUnVudGltZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH0gY2F0Y2ggKGV4Yykge1xuXHRcdFx0XHRcdFx0b01vZGVsW29QYXJ0Q29udGV4dC5wYXRoXSA9IHtcblx0XHRcdFx0XHRcdFx0YmluZGluZ0ZvcjogXCJSdW50aW1lXCJcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHR9KTtcblx0cmV0dXJuIFByb21pc2UuYWxsKGFQcm9taXNlcyk7XG59XG5hc3luYyBmdW5jdGlvbiBmaWxsQXR0cmlidXRlcyhcblx0b1Jlc3VsdHM6IFByb21pc2U8dW5rbm93bj4sXG5cdG9BdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcblx0c05hbWU6IHN0cmluZyxcblx0c1ZhbHVlOiB1bmtub3duXG4pOiBQcm9taXNlPHZvaWQ+IHtcblx0cmV0dXJuIG9SZXN1bHRzXG5cdFx0LnRoZW4oZnVuY3Rpb24gKHJlc3VsdDogdW5rbm93bikge1xuXHRcdFx0b0F0dHJpYnV0ZXNbc05hbWVdID1cblx0XHRcdFx0c1ZhbHVlICE9PSByZXN1bHRcblx0XHRcdFx0XHQ/IHtcblx0XHRcdFx0XHRcdFx0b3JpZ2luYWxWYWx1ZTogc1ZhbHVlLFxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlZFZhbHVlOiByZXN1bHRcblx0XHRcdFx0XHQgIH1cblx0XHRcdFx0XHQ6IHNWYWx1ZTtcblx0XHRcdHJldHVybjtcblx0XHR9KVxuXHRcdC5jYXRjaChmdW5jdGlvbiAoZTogdW5rbm93bikge1xuXHRcdFx0Y29uc3QgZXJyb3IgPSBlIGFzIEVycm9yO1xuXHRcdFx0b0F0dHJpYnV0ZXNbc05hbWVdID0ge1xuXHRcdFx0XHRvcmlnaW5hbFZhbHVlOiBzVmFsdWUsXG5cdFx0XHRcdGVycm9yOiAoZXJyb3Iuc3RhY2sgJiYgZXJyb3Iuc3RhY2sudG9TdHJpbmcoKSkgfHwgZVxuXHRcdFx0fTtcblx0XHR9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RJbmZvKG9Ob2RlOiBFbGVtZW50LCBvVmlzaXRvcjogSVZpc2l0b3JDYWxsYmFjayk6IFByb21pc2U8eyBwcm9wZXJ0aWVzOiB7fTsgY29udGV4dHM6IHt9IH0+IHtcblx0Y29uc3Qgb0F0dHJpYnV0ZXMgPSB7fTtcblx0Y29uc3QgYVByb21pc2VzID0gW107XG5cdGNvbnN0IG9Db250ZXh0cyA9IHt9O1xuXHRsZXQgb1Jlc3VsdHM7XG5cdGZvciAobGV0IGkgPSBvTm9kZS5hdHRyaWJ1dGVzLmxlbmd0aCA+Pj4gMDsgaS0tOyApIHtcblx0XHRjb25zdCBvQXR0cmlidXRlID0gb05vZGUuYXR0cmlidXRlc1tpXSxcblx0XHRcdHNOYW1lID0gb0F0dHJpYnV0ZS5ub2RlTmFtZSxcblx0XHRcdHNWYWx1ZSA9IG9Ob2RlLmdldEF0dHJpYnV0ZShzTmFtZSkhO1xuXHRcdGlmICghW1wiY29yZTpyZXF1aXJlXCJdLmluY2x1ZGVzKHNOYW1lKSkge1xuXHRcdFx0YVByb21pc2VzLnB1c2goY29sbGVjdENvbnRleHRJbmZvKHNWYWx1ZSwgb0NvbnRleHRzLCBvVmlzaXRvciwgb05vZGUpKTtcblx0XHRcdG9SZXN1bHRzID0gb1Zpc2l0b3IuZ2V0UmVzdWx0KHNWYWx1ZSwgb05vZGUpO1xuXHRcdFx0aWYgKG9SZXN1bHRzKSB7XG5cdFx0XHRcdGFQcm9taXNlcy5wdXNoKGZpbGxBdHRyaWJ1dGVzKG9SZXN1bHRzLCBvQXR0cmlidXRlcywgc05hbWUsIHNWYWx1ZSkpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly9XaGF0XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHJldHVybiBQcm9taXNlLmFsbChhUHJvbWlzZXMpLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiB7IHByb3BlcnRpZXM6IG9BdHRyaWJ1dGVzLCBjb250ZXh0czogb0NvbnRleHRzIH07XG5cdH0pO1xufVxuZXhwb3J0IHR5cGUgVHJhY2VNZXRhZGF0YUNvbnRleHQgPSB7XG5cdGlzRXJyb3I6IGJvb2xlYW47XG5cdG1hY3JvPzogc3RyaW5nO1xuXHRjb250cm9sPzogc3RyaW5nO1xuXHRuYW1lPzogc3RyaW5nO1xuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblx0dmlld0luZm8/OiB1bmtub3duO1xuXHRtYWNyb0luZm8/OiBNYWNyb0luZm87XG5cdHRyYWNlSUQ/OiBudW1iZXI7XG5cdGVycm9yPzoge1xuXHRcdGV4Y2VwdGlvbjogRXJyb3I7XG5cdFx0bm9kZTogc3RyaW5nO1xuXHR9O1xuXHRtZXRhRGF0YUNvbnRleHRzOiB7IG5hbWU6IHN0cmluZzsgcGF0aDogc3RyaW5nIH1bXTtcblx0cHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZShvTm9kZTogRWxlbWVudCwgb1Zpc2l0b3I6IElWaXNpdG9yQ2FsbGJhY2spOiBQcm9taXNlPHZvaWQ+IHtcblx0dHJ5IHtcblx0XHRjb25zdCBzQ29udHJvbE5hbWUgPSBvTm9kZS5ub2RlTmFtZS5zcGxpdChcIjpcIilbMV0gfHwgb05vZGUubm9kZU5hbWUsXG5cdFx0XHRiSXNDb250cm9sID0gL15bQS1aXS8udGVzdChzQ29udHJvbE5hbWUpLFxuXHRcdFx0b1RyYWNlTWV0YWRhdGFDb250ZXh0OiBUcmFjZU1ldGFkYXRhQ29udGV4dCA9IHtcblx0XHRcdFx0aXNFcnJvcjogZmFsc2UsXG5cdFx0XHRcdGNvbnRyb2w6IGAke29Ob2RlLm5hbWVzcGFjZVVSSX0uJHtvTm9kZS5ub2RlTmFtZS5zcGxpdChcIjpcIilbMV0gfHwgb05vZGUubm9kZU5hbWV9YCxcblx0XHRcdFx0bWV0YURhdGFDb250ZXh0czogW10sXG5cdFx0XHRcdHByb3BlcnRpZXM6IHt9XG5cdFx0XHR9O1xuXG5cdFx0aWYgKGJJc0NvbnRyb2wpIHtcblx0XHRcdGNvbnN0IGZpcnN0Q2hpbGQgPSBbLi4uKG9Ob2RlLm93bmVyRG9jdW1lbnQuY2hpbGRyZW4gYXMgdW5rbm93biBhcyBFbGVtZW50W10pXS5maW5kKChub2RlKSA9PiAhbm9kZS5ub2RlTmFtZS5zdGFydHNXaXRoKFwiI1wiKSk7XG5cdFx0XHRpZiAoZmlyc3RDaGlsZCAmJiAhZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoXCJ4bWxuczp0cmFjZVwiKSkge1xuXHRcdFx0XHRmaXJzdENoaWxkLnNldEF0dHJpYnV0ZU5TKHhtbG5zLCBcInhtbG5zOnRyYWNlXCIsIHRyYWNlTmFtZXNwYWNlKTtcblx0XHRcdFx0Zmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGVOUyh0cmFjZU5hbWVzcGFjZSwgXCJ0cmFjZTppc1wiLCBcIm9uXCIpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGF3YWl0IGNvbGxlY3RJbmZvKG9Ob2RlLCBvVmlzaXRvcilcblx0XHRcdFx0LnRoZW4oYXN5bmMgZnVuY3Rpb24gKHJlc3VsdDogeyBwcm9wZXJ0aWVzOiB7fTsgY29udGV4dHM6IHt9IH0pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRcdFx0XHRjb25zdCBiUmVsZXZhbnQgPSBPYmplY3Qua2V5cyhyZXN1bHQuY29udGV4dHMpLmxlbmd0aCA+IDA7IC8vSWYgbm8gY29udGV4dCB3YXMgdXNlZCBpdCBpcyBub3QgcmVsZXZhbnQgc28gd2UgaWdub3JlIE9iamVjdC5rZXlzKHJlc3VsdC5wcm9wZXJ0aWVzKS5sZW5ndGhcblx0XHRcdFx0XHRpZiAoYlJlbGV2YW50KSB7XG5cdFx0XHRcdFx0XHRPYmplY3QuYXNzaWduKG9UcmFjZU1ldGFkYXRhQ29udGV4dCwgcmVzdWx0KTtcblx0XHRcdFx0XHRcdG9UcmFjZU1ldGFkYXRhQ29udGV4dC52aWV3SW5mbyA9IG9WaXNpdG9yLmdldFZpZXdJbmZvKCk7XG5cdFx0XHRcdFx0XHRvVHJhY2VNZXRhZGF0YUNvbnRleHQubWFjcm9JbmZvID0gb1Zpc2l0b3IuZ2V0U2V0dGluZ3MoKVtcIl9tYWNyb0luZm9cIl07XG5cdFx0XHRcdFx0XHRvVHJhY2VNZXRhZGF0YUNvbnRleHQudHJhY2VJRCA9IGFUcmFjZUluZm8ubGVuZ3RoO1xuXHRcdFx0XHRcdFx0b05vZGUuc2V0QXR0cmlidXRlTlModHJhY2VOYW1lc3BhY2UsIFwidHJhY2U6dHJhY2VJRFwiLCBvVHJhY2VNZXRhZGF0YUNvbnRleHQudHJhY2VJRC50b1N0cmluZygpKTtcblx0XHRcdFx0XHRcdGFUcmFjZUluZm8ucHVzaChvVHJhY2VNZXRhZGF0YUNvbnRleHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gb1Zpc2l0b3IudmlzaXRBdHRyaWJ1dGVzKG9Ob2RlKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4oYXN5bmMgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHJldHVybiBvVmlzaXRvci52aXNpdENoaWxkTm9kZXMob05vZGUpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGV4YzogdW5rbm93bikge1xuXHRcdFx0XHRcdG9UcmFjZU1ldGFkYXRhQ29udGV4dC5lcnJvciA9IHtcblx0XHRcdFx0XHRcdGV4Y2VwdGlvbjogZXhjIGFzIEVycm9yLFxuXHRcdFx0XHRcdFx0bm9kZTogbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhvTm9kZSlcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YXdhaXQgb1Zpc2l0b3IudmlzaXRBdHRyaWJ1dGVzKG9Ob2RlKTtcblx0XHRcdGF3YWl0IG9WaXNpdG9yLnZpc2l0Q2hpbGROb2RlcyhvTm9kZSk7XG5cdFx0fVxuXHR9IGNhdGNoIChleGM6IHVua25vd24pIHtcblx0XHRMb2cuZXJyb3IoYEVycm9yIHdoaWxlIHRyYWNpbmcgJyR7b05vZGU/Lm5vZGVOYW1lfSc6ICR7KGV4YyBhcyBFcnJvcikubWVzc2FnZX1gLCBcIlRyYWNlSW5mb1wiKTtcblx0XHRyZXR1cm4gb1Zpc2l0b3IudmlzaXRBdHRyaWJ1dGVzKG9Ob2RlKS50aGVuKGFzeW5jIGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBvVmlzaXRvci52aXNpdENoaWxkTm9kZXMob05vZGUpO1xuXHRcdH0pO1xuXHR9XG59XG4vKipcbiAqIFJlZ2lzdGVyIHBhdGgtdGhyb3VnaCBYTUxQcmVwcm9jZXNzb3IgcGx1Z2luIGZvciBhbGwgbmFtZXNwYWNlc1xuICogZ2l2ZW4gYWJvdmUgaW4gYU5hbWVzcGFjZXNcbiAqL1xuaWYgKHRyYWNlSXNPbikge1xuXHRhTmFtZXNwYWNlcy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lc3BhY2U6IHN0cmluZykge1xuXHRcdG9DYWxsYmFja3NbbmFtZXNwYWNlXSA9IFhNTFByZXByb2Nlc3Nvci5wbHVnSW4ocmVzb2x2ZS5iaW5kKG5hbWVzcGFjZSksIG5hbWVzcGFjZSk7XG5cdH0pO1xufVxuXG4vKipcbiAqIEFkZHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2Nlc3Npbmcgb2Ygb25lIG1hY3JvIHRvIHRoZSBjb2xsZWN0aW9uLlxuICogQHBhcmFtIHNOYW1lIE1hY3JvIGNsYXNzIG5hbWVcbiAqIEBwYXJhbSBvTWV0YWRhdGEgRGVmaW5pdGlvbiBmcm9tIG1hY3JvXG4gKiBAcGFyYW0gbUNvbnRleHRzIEF2YWlsYWJsZSBuYW1lZCBjb250ZXh0c1xuICogQHBhcmFtIG9Ob2RlXG4gKiBAcGFyYW0gb1Zpc2l0b3JcbiAqIEByZXR1cm5zIFRoZSB0cmFjZWQgbWV0YWRhdGEgY29udGV4dFxuICovXG5leHBvcnQgdHlwZSBNYWNyb0luZm8gPSB7XG5cdHBhcmVudE1hY3JvSUQ6IHN0cmluZztcblx0bWFjcm9JRDogc3RyaW5nO1xufTtcbmZ1bmN0aW9uIHRyYWNlTWFjcm9DYWxscyhcblx0c05hbWU6IHN0cmluZyxcblx0b01ldGFkYXRhOiBUcmFuc2Zvcm1lZEJ1aWxkaW5nQmxvY2tNZXRhZGF0YSxcblx0bUNvbnRleHRzOiBSZWNvcmQ8c3RyaW5nLCBDb250ZXh0Pixcblx0b05vZGU6IEVsZW1lbnQsXG5cdG9WaXNpdG9yOiBJVmlzaXRvckNhbGxiYWNrXG4pOiBUcmFjZU1ldGFkYXRhQ29udGV4dCB7XG5cdHRyeSB7XG5cdFx0bGV0IGFNZXRhZGF0YUNvbnRleHRLZXlzID0gKG9NZXRhZGF0YS5tZXRhZGF0YUNvbnRleHRzICYmIE9iamVjdC5rZXlzKG9NZXRhZGF0YS5tZXRhZGF0YUNvbnRleHRzKSkgfHwgW107XG5cdFx0Y29uc3QgYVByb3BlcnRpZXMgPSAob01ldGFkYXRhLnByb3BlcnRpZXMgJiYgT2JqZWN0LmtleXMob01ldGFkYXRhLnByb3BlcnRpZXMpKSB8fCBbXTtcblx0XHRjb25zdCBtYWNyb0luZm86IE1hY3JvSW5mbyA9IGZuQ2xvbmUob1Zpc2l0b3IuZ2V0U2V0dGluZ3MoKVtcIl9tYWNyb0luZm9cIl0gfHwge30pIGFzIE1hY3JvSW5mbztcblx0XHRjb25zdCBvVHJhY2VNZXRhZGF0YUNvbnRleHQ6IFRyYWNlTWV0YWRhdGFDb250ZXh0ID0ge1xuXHRcdFx0aXNFcnJvcjogZmFsc2UsXG5cdFx0XHRtYWNybzogc05hbWUsXG5cdFx0XHRtZXRhRGF0YUNvbnRleHRzOiBbXSxcblx0XHRcdHByb3BlcnRpZXM6IHt9XG5cdFx0fTtcblxuXHRcdGlmIChhTWV0YWRhdGFDb250ZXh0S2V5cy5sZW5ndGggPT09IDApIHtcblx0XHRcdC8vSW4gY2FzZSB0aGUgbWFjcm8gaGFzIG5vIG1ldGFkYXRhLmpzIHdlIHRha2UgYWxsIG1ldGFkYXRhQ29udGV4dHMgZXhjZXB0IHRoaXNcblx0XHRcdGFNZXRhZGF0YUNvbnRleHRLZXlzID0gT2JqZWN0LmtleXMobUNvbnRleHRzKS5maWx0ZXIoZnVuY3Rpb24gKG5hbWU6IHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gbmFtZSAhPT0gXCJ0aGlzXCI7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpZiAoIW9Ob2RlLmdldEF0dHJpYnV0ZShcInhtbG5zOnRyYWNlXCIpKSB7XG5cdFx0XHRvTm9kZS5zZXRBdHRyaWJ1dGVOUyh4bWxucywgXCJ4bWxuczp0cmFjZVwiLCB0cmFjZU5hbWVzcGFjZSk7XG5cdFx0fVxuXG5cdFx0aWYgKGFNZXRhZGF0YUNvbnRleHRLZXlzLmxlbmd0aCA+IDApIHtcblx0XHRcdGFNZXRhZGF0YUNvbnRleHRLZXlzLmZvckVhY2goZnVuY3Rpb24gKHNLZXk6IHN0cmluZykge1xuXHRcdFx0XHRjb25zdCBvQ29udGV4dCA9IG1Db250ZXh0c1tzS2V5XSxcblx0XHRcdFx0XHRvTWV0YURhdGFDb250ZXh0ID0gb0NvbnRleHQgJiYge1xuXHRcdFx0XHRcdFx0bmFtZTogc0tleSxcblx0XHRcdFx0XHRcdHBhdGg6IG9Db250ZXh0LmdldFBhdGgoKVxuXHRcdFx0XHRcdFx0Ly9kYXRhOiBKU09OLnN0cmluZ2lmeShvQ29udGV4dC5nZXRPYmplY3QoKSxudWxsLDIpXG5cdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRpZiAob01ldGFEYXRhQ29udGV4dCkge1xuXHRcdFx0XHRcdG9UcmFjZU1ldGFkYXRhQ29udGV4dC5tZXRhRGF0YUNvbnRleHRzLnB1c2gob01ldGFEYXRhQ29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHRhUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChzS2V5OiBzdHJpbmcpIHtcblx0XHRcdFx0Y29uc3Qgb1Byb3BlcnR5ID0gbUNvbnRleHRzLnRoaXMuZ2V0T2JqZWN0KHNLZXkpO1xuXG5cdFx0XHRcdGlmIChvUHJvcGVydHkpIHtcblx0XHRcdFx0XHRvVHJhY2VNZXRhZGF0YUNvbnRleHQucHJvcGVydGllc1tzS2V5XSA9IG9Qcm9wZXJ0eTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRvVHJhY2VNZXRhZGF0YUNvbnRleHQudmlld0luZm8gPSBvVmlzaXRvci5nZXRWaWV3SW5mbygpO1xuXHRcdFx0b1RyYWNlTWV0YWRhdGFDb250ZXh0LnRyYWNlSUQgPSBhVHJhY2VJbmZvLmxlbmd0aDtcblx0XHRcdG1hY3JvSW5mby5wYXJlbnRNYWNyb0lEID0gbWFjcm9JbmZvLm1hY3JvSUQ7XG5cdFx0XHRtYWNyb0luZm8ubWFjcm9JRCA9IG9UcmFjZU1ldGFkYXRhQ29udGV4dC50cmFjZUlELnRvU3RyaW5nKCk7XG5cdFx0XHRvVHJhY2VNZXRhZGF0YUNvbnRleHQubWFjcm9JbmZvID0gbWFjcm9JbmZvO1xuXHRcdFx0b05vZGUuc2V0QXR0cmlidXRlTlModHJhY2VOYW1lc3BhY2UsIFwidHJhY2U6bWFjcm9JRFwiLCBvVHJhY2VNZXRhZGF0YUNvbnRleHQudHJhY2VJRC50b1N0cmluZygpKTtcblx0XHRcdGFUcmFjZUluZm8ucHVzaChvVHJhY2VNZXRhZGF0YUNvbnRleHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gb1RyYWNlTWV0YWRhdGFDb250ZXh0O1xuXHR9IGNhdGNoIChleGMpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0aXNFcnJvcjogdHJ1ZSxcblx0XHRcdGVycm9yOiB7XG5cdFx0XHRcdGV4Y2VwdGlvbjogZXhjIGFzIEVycm9yLFxuXHRcdFx0XHRub2RlOiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKG9Ob2RlKVxuXHRcdFx0fSxcblx0XHRcdG5hbWU6IHNOYW1lLFxuXHRcdFx0Y29udGV4dFBhdGg6IG9WaXNpdG9yPy5nZXRDb250ZXh0KCk/LmdldFBhdGgoKSxcblx0XHRcdG1ldGFEYXRhQ29udGV4dHM6IFtdLFxuXHRcdFx0cHJvcGVydGllczoge31cblx0XHR9O1xuXHR9XG59XG4vKipcbiAqIFJldHVybnMgdGhlIGdsb2JhbGx5IHN0b3JlZCB0cmFjZSBpbmZvcm1hdGlvbiBmb3IgdGhlIG1hY3JvIG9yXG4gKiBjb250cm9sIG1hcmtlZCB3aXRoIHRoZSBnaXZlbiBpZC5cbiAqXG4gKiBSZXR1cm5zIGFsbCB0cmFjZSBpbmZvcm1hdGlvbiBpZiBubyBpZCBpcyBzcGVjaWZpZWRcbiAqXG4gKlxuICogPHByZT5TdHJ1Y3R1cmUgZm9yIGEgbWFjcm9cbiAqIHtcbiAqIG1hY3JvOiAnJywgLy9uYW1lIG9mIG1hY3JvXG4gKiBtZXRhRGF0YUNvbnRleHRzOiBbIC8vUHJvcGVydGllcyBvZiB0eXBlIHNhcC51aS5tb2RlbC5Db250ZXh0XG4gKiB7XG4gKiBuYW1lOiAnJywgLy9jb250ZXh0IHByb3BlcnR5IG5hbWUgLyBrZXlcbiAqIHBhdGg6ICcnLCAvL2Zyb20gb0NvbnRleHQuZ2V0UGF0aCgpXG4gKiB9XG4gKiBdLFxuICogcHJvcGVydGllczogeyAvLyBPdGhlciBwcm9wZXJ0aWVzIHdoaWNoIGJlY29tZSBwYXJ0IG9mIHt0aGlzPn1cbiAqIHByb3BlcnR5MTogdmFsdWUsXG4gKiBwcm9wZXJ0eTI6IHZhbHVlXG4gKiB9XG4gKiB2aWV3SW5mbzoge1xuICogdmlld0luZm86IHt9IC8vIEFzIHNwZWNpZmllZCBpbiB2aWV3IG9yIGZyYWdtZW50IGNyZWF0aW9uXG4gKiB9LFxuICogdHJhY2VJRDogdGhpcy5pbmRleCwgLy9JRCBmb3IgdGhpcyB0cmFjZSBpbmZvcm1hdGlvbixcbiAqIG1hY3JvSW5mbzoge1xuICogbWFjcm9JRDogaW5kZXgsIC8vIHRyYWNlSUQgb2YgdGhpcyBtYWNybyAocmVkdW5kYW50IGZvciBtYWNyb3MpXG4gKiBwYXJlbnRNYWNyb0lELCBpbmRleCAvLyB0cmFjZUlEIG9mIHRoZSBwYXJlbnQgbWFjcm8gKGlmIGl0IGhhcyBhIHBhcmVudClcbiAqIH1cbiAqIH1cbiAqIFN0cnVjdHVyZSBmb3IgYSBjb250cm9sXG4gKiB7XG4gKiBjb250cm9sOiAnJywgLy9jb250cm9sIGNsYXNzXG4gKiBwcm9wZXJ0aWVzOiB7IC8vIE90aGVyIHByb3BlcnRpZXMgd2hpY2ggYmVjb21lIHBhcnQgb2Yge3RoaXM+fVxuICogcHJvcGVydHkxOiB7XG4gKiBvcmlnaW5hbFZhbHVlOiAnJywgLy9WYWx1ZSBiZWZvcmUgdGVtcGxhdGluZ1xuICogcmVzb2x2ZWRWYWx1ZTogJycgLy9WYWx1ZSBhZnRlciB0ZW1wbGF0aW5nXG4gKiB9XG4gKiB9XG4gKiBjb250ZXh0czogeyAvL01vZGVscyBhbmQgQ29udGV4dHMgdXNlZCBkdXJpbmcgdGVtcGxhdGluZ1xuICogLy8gTW9kZWwgb3IgY29udGV4dCBuYW1lIHVzZWQgZm9yIHRoaXMgY29udHJvbFxuICogbW9kZWxOYW1lMTogeyAvLyBGb3IgT0RhdGFNZXRhTW9kZWxcbiAqIHBhdGgxOiB7XG4gKiBwYXRoOiAnJywgLy9hYnNvbHV0IHBhdGggd2l0aGluIG1ldGFtb2RlbFxuICogZGF0YTogJycsIC8vZGF0YSBvZiBwYXRoIHVubGVzcyB0eXBlIE9iamVjdFxuICogfVxuICogbW9kZWxOYW1lMjoge1xuICogLy8gZm9yIG90aGVyIG1vZGVsIHR5cGVzXG4gKiB7XG4gKiBwcm9wZXJ0eTE6IHZhbHVlLFxuICogcHJvcGVydHkyOiB2YWx1ZVxuICogfVxuICogLy8gSW4gY2FzZSBiaW5kaW5nIGNhbm5vdCBiZSByZXNvbHZlZCAtPiBtYXJrIGFzIHJ1bnRpbWUgYmluZGluZ1xuICogLy8gVGhpcyBpcyBub3QgYWx3YXlzIHRydWUsIGUuZy4gaW4gY2FzZSB0aGUgcGF0aCBpcyBtZXRhbW9kZWxwYXRoXG4gKiB7XG4gKiBcImJpbmRpbmdGb3JcIjogXCJSdW50aW1lXCJcbiAqIH1cbiAqIH1cbiAqIH0sXG4gKiB2aWV3SW5mbzoge1xuICogdmlld0luZm86IHt9IC8vIEFzIHNwZWNpZmllZCBpbiB2aWV3IG9yIGZyYWdtZW50IGNyZWF0aW9uXG4gKiB9LFxuICogbWFjcm9JbmZvOiB7XG4gKiBtYWNyb0lEOiBpbmRleCwgLy8gdHJhY2VJRCBvZiB0aGUgbWFjcm8gdGhhdCBjcmVhdGVkIHRoaXMgY29udHJvbFxuICogcGFyZW50TWFjcm9JRCwgaW5kZXggLy8gdHJhY2VJRCBvZiB0aGUgbWFjcm8ncyBwYXJlbnQgbWFjcm9cbiAqIH0sXG4gKiB0cmFjZUlEOiB0aGlzLmluZGV4IC8vSUQgZm9yIHRoaXMgdHJhY2UgaW5mb3JtYXRpb25cbiAqIH08L3ByZT4uXG4gKiBAcGFyYW0gaWQgVHJhY2VJbmZvIGlkXG4gKiBAcmV0dXJucyBPYmplY3QgLyBBcnJheSBmb3IgVHJhY2VJbmZvXG4gKi9cbmZ1bmN0aW9uIGdldFRyYWNlSW5mbyhpZDogbnVtYmVyKTogVHJhY2VNZXRhZGF0YUNvbnRleHQgfCBUcmFjZU1ldGFkYXRhQ29udGV4dFtdIHtcblx0aWYgKGlkKSB7XG5cdFx0cmV0dXJuIGFUcmFjZUluZm9baWRdO1xuXHR9XG5cdGNvbnN0IGFFcnJvcnMgPSBhVHJhY2VJbmZvLmZpbHRlcihmdW5jdGlvbiAodHJhY2VJbmZvOiBUcmFjZU1ldGFkYXRhQ29udGV4dCkge1xuXHRcdHJldHVybiB0cmFjZUluZm8uZXJyb3I7XG5cdH0pO1xuXHRyZXR1cm4gKGFFcnJvcnMubGVuZ3RoID4gMCAmJiBhRXJyb3JzKSB8fCBhVHJhY2VJbmZvO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgVHJhY2VJbmZvIGlzIGFjdGl2ZS5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIGFjdGl2ZVxuICovXG5mdW5jdGlvbiBpc1RyYWNlSW5mb0FjdGl2ZSgpOiBib29sZWFuIHtcblx0cmV0dXJuIHRyYWNlSXNPbjtcbn1cbi8qKlxuICogQHR5cGVkZWYgc2FwLmZlLm1hY3Jvcy5UcmFjZUluZm9cbiAqIFRyYWNlSW5mbyBmb3IgU0FQIEZpb3JpIGVsZW1lbnRzXG4gKlxuICogT25jZSB0cmFjZXMgaXMgc3dpdGNoZWQsIGluZm9ybWF0aW9uIGFib3V0IG1hY3JvcyBhbmQgY29udHJvbHNcbiAqIHRoYXQgYXJlIHByb2Nlc3NlZCBkdXJpbmcgeG1sIHByZXByb2Nlc3NpbmcgKCBAc2VlIHtAbGluayBzYXAudWkuY29yZS51dGlsLlhNTFByZXByb2Nlc3Nvcn0pXG4gKiB3aWxsIGJlIGNvbGxlY3RlZCB3aXRoaW4gdGhpcyBzaW5nbGV0b25cbiAqIEBuYW1lc3BhY2VcbiAqIEBnbG9iYWxcbiAqIEBleHBlcmltZW50YWwgVGhpcyBtb2R1bGUgaXMgb25seSBmb3IgZXhwZXJpbWVudGFsIHVzZSEgPGJyLz48Yj5UaGlzIGlzIG9ubHkgYSBQT0MgYW5kIG1heWJlIGRlbGV0ZWQ8L2I+XG4gKiBAc2luY2UgMS43NC4wXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHtcblx0aXNUcmFjZUluZm9BY3RpdmU6IGlzVHJhY2VJbmZvQWN0aXZlLFxuXHR0cmFjZU1hY3JvQ2FsbHM6IHRyYWNlTWFjcm9DYWxscyxcblx0Z2V0VHJhY2VJbmZvOiBnZXRUcmFjZUluZm9cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0VBUUE7RUFDQSxNQUFNQSxVQUFrQyxHQUFHO0lBQzFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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
@@ -301,7 +301,6 @@ if (traceIsOn) {
301
301
 
302
302
  /**
303
303
  * Adds information about the processing of one macro to the collection.
304
- *
305
304
  * @param sName Macro class name
306
305
  * @param oMetadata Definition from macro
307
306
  * @param mContexts Available named contexts
@@ -393,67 +392,66 @@ function traceMacroCalls(
393
392
  * Returns all trace information if no id is specified
394
393
  *
395
394
  *
396
- <pre>Structure for a macro
397
- {
398
- macro: '', //name of macro
399
- metaDataContexts: [ //Properties of type sap.ui.model.Context
400
- {
401
- name: '', //context property name / key
402
- path: '', //from oContext.getPath()
403
- }
404
- ],
405
- properties: { // Other properties which become part of {this>}
406
- property1: value,
407
- property2: value
408
- }
409
- viewInfo: {
410
- viewInfo: {} // As specified in view or fragment creation
411
- },
412
- traceID: this.index, //ID for this trace information,
413
- macroInfo: {
414
- macroID: index, // traceID of this macro (redundant for macros)
415
- parentMacroID, index // traceID of the parent macro (if it has a parent)
416
- }
417
- }
418
- Structure for a control
419
- {
420
- control: '', //control class
421
- properties: { // Other properties which become part of {this>}
422
- property1: {
423
- originalValue: '', //Value before templating
424
- resolvedValue: '' //Value after templating
425
- }
426
- }
427
- contexts: { //Models and Contexts used during templating
428
- // Model or context name used for this control
429
- modelName1: { // For ODataMetaModel
430
- path1: {
431
- path: '', //absolut path within metamodel
432
- data: '', //data of path unless type Object
433
- }
434
- modelName2: {
435
- // for other model types
436
- {
437
- property1: value,
438
- property2: value
439
- }
440
- // In case binding cannot be resolved -> mark as runtime binding
441
- // This is not always true, e.g. in case the path is metamodelpath
442
- {
443
- "bindingFor": "Runtime"
444
- }
445
- }
446
- },
447
- viewInfo: {
448
- viewInfo: {} // As specified in view or fragment creation
449
- },
450
- macroInfo: {
451
- macroID: index, // traceID of the macro that created this control
452
- parentMacroID, index // traceID of the macro's parent macro
453
- },
454
- traceID: this.index //ID for this trace information
455
- }</pre>.
456
- *
395
+ * <pre>Structure for a macro
396
+ * {
397
+ * macro: '', //name of macro
398
+ * metaDataContexts: [ //Properties of type sap.ui.model.Context
399
+ * {
400
+ * name: '', //context property name / key
401
+ * path: '', //from oContext.getPath()
402
+ * }
403
+ * ],
404
+ * properties: { // Other properties which become part of {this>}
405
+ * property1: value,
406
+ * property2: value
407
+ * }
408
+ * viewInfo: {
409
+ * viewInfo: {} // As specified in view or fragment creation
410
+ * },
411
+ * traceID: this.index, //ID for this trace information,
412
+ * macroInfo: {
413
+ * macroID: index, // traceID of this macro (redundant for macros)
414
+ * parentMacroID, index // traceID of the parent macro (if it has a parent)
415
+ * }
416
+ * }
417
+ * Structure for a control
418
+ * {
419
+ * control: '', //control class
420
+ * properties: { // Other properties which become part of {this>}
421
+ * property1: {
422
+ * originalValue: '', //Value before templating
423
+ * resolvedValue: '' //Value after templating
424
+ * }
425
+ * }
426
+ * contexts: { //Models and Contexts used during templating
427
+ * // Model or context name used for this control
428
+ * modelName1: { // For ODataMetaModel
429
+ * path1: {
430
+ * path: '', //absolut path within metamodel
431
+ * data: '', //data of path unless type Object
432
+ * }
433
+ * modelName2: {
434
+ * // for other model types
435
+ * {
436
+ * property1: value,
437
+ * property2: value
438
+ * }
439
+ * // In case binding cannot be resolved -> mark as runtime binding
440
+ * // This is not always true, e.g. in case the path is metamodelpath
441
+ * {
442
+ * "bindingFor": "Runtime"
443
+ * }
444
+ * }
445
+ * },
446
+ * viewInfo: {
447
+ * viewInfo: {} // As specified in view or fragment creation
448
+ * },
449
+ * macroInfo: {
450
+ * macroID: index, // traceID of the macro that created this control
451
+ * parentMacroID, index // traceID of the macro's parent macro
452
+ * },
453
+ * traceID: this.index //ID for this trace information
454
+ * }</pre>.
457
455
  * @param id TraceInfo id
458
456
  * @returns Object / Array for TraceInfo
459
457
  */
@@ -468,7 +466,6 @@ function getTraceInfo(id: number): TraceMetadataContext | TraceMetadataContext[]
468
466
  }
469
467
  /**
470
468
  * Returns true if TraceInfo is active.
471
- *
472
469
  * @returns `true` when active
473
470
  */
474
471
  function isTraceInfoActive(): boolean {
@@ -5,8 +5,8 @@
5
5
  sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/ui/model/json/JSONModel"], function (Log, ObjectPath, JSONModel) {
6
6
  "use strict";
7
7
 
8
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
9
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
8
+ function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
9
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
10
10
  /**
11
11
  * Special JSONModel that is used to store the attribute model for the building block.
12
12
  * It has specific handling for undefinedValue mapping
@@ -52,4 +52,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/ui/model/json/JS
52
52
  }(JSONModel);
53
53
  return AttributeModel;
54
54
  }, false);
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBdHRyaWJ1dGVNb2RlbCIsIm9Ob2RlIiwib1Byb3BzIiwiQnVpbGRpbmdCbG9ja0NsYXNzIiwiJCR2YWx1ZUFzUHJvbWlzZSIsIl9nZXRPYmplY3QiLCJzUGF0aCIsIm9Db250ZXh0IiwidW5kZWZpbmVkIiwiZ2V0UGF0aCIsIm9WYWx1ZSIsIk9iamVjdFBhdGgiLCJnZXQiLCJyZXBsYWNlIiwiaGFzT3duUHJvcGVydHkiLCJpbmNsdWRlcyIsIkxvZyIsImVycm9yIiwibmFtZSIsImdldEF0dHJpYnV0ZSIsIkpTT05Nb2RlbCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQXR0cmlidXRlTW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgT2JqZWN0UGF0aCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9PYmplY3RQYXRoXCI7XG5pbXBvcnQgdHlwZSBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5cbi8qKlxuICogU3BlY2lhbCBKU09OTW9kZWwgdGhhdCBpcyB1c2VkIHRvIHN0b3JlIHRoZSBhdHRyaWJ1dGUgbW9kZWwgZm9yIHRoZSBidWlsZGluZyBibG9jay5cbiAqIEl0IGhhcyBzcGVjaWZpYyBoYW5kbGluZyBmb3IgdW5kZWZpbmVkVmFsdWUgbWFwcGluZ1xuICovXG5jbGFzcyBBdHRyaWJ1dGVNb2RlbCBleHRlbmRzIEpTT05Nb2RlbCB7XG5cdHB1YmxpYyAkJHZhbHVlQXNQcm9taXNlOiBib29sZWFuO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgb05vZGU6IEVsZW1lbnQsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBvUHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgQnVpbGRpbmdCbG9ja0NsYXNzOiB0eXBlb2YgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlXG5cdCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy4kJHZhbHVlQXNQcm9taXNlID0gdHJ1ZTtcblx0fVxuXG5cdF9nZXRPYmplY3Qoc1BhdGg6IHN0cmluZywgb0NvbnRleHQ/OiBDb250ZXh0KTogdW5rbm93biB7XG5cdFx0aWYgKHNQYXRoID09PSB1bmRlZmluZWQgfHwgc1BhdGggPT09IFwiXCIpIHtcblx0XHRcdGlmIChvQ29udGV4dCAhPT0gdW5kZWZpbmVkICYmIG9Db250ZXh0LmdldFBhdGgoKSAhPT0gXCIvXCIpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuX2dldE9iamVjdChvQ29udGV4dC5nZXRQYXRoKHNQYXRoKSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGhpcy5vUHJvcHM7XG5cdFx0fVxuXHRcdGlmIChzUGF0aCA9PT0gXCIvdW5kZWZpbmVkVmFsdWVcIiB8fCBzUGF0aCA9PT0gXCJ1bmRlZmluZWRWYWx1ZVwiKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHQvLyBqdXN0IHJldHVybiB0aGUgYXR0cmlidXRlIC0gd2UgY2FuJ3QgdmFsaWRhdGUgdGhlbSwgYW5kIHdlIGRvbid0IHN1cHBvcnQgYWdncmVnYXRpb25zIGZvciBub3dcblx0XHRjb25zdCBvVmFsdWUgPSBPYmplY3RQYXRoLmdldChzUGF0aC5yZXBsYWNlKC9cXC8vZywgXCIuXCIpLCB0aGlzLm9Qcm9wcyk7XG5cdFx0aWYgKG9WYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gb1ZhbHVlO1xuXHRcdH1cblx0XHQvLyBEZWFsIHdpdGggdW5kZWZpbmVkIHByb3BlcnRpZXNcblx0XHRpZiAodGhpcy5vUHJvcHMuaGFzT3duUHJvcGVydHkoc1BhdGgpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5vUHJvcHNbc1BhdGhdO1xuXHRcdH1cblx0XHRpZiAoIXNQYXRoLmluY2x1ZGVzKFwiOlwiKSAmJiAhc1BhdGguaW5jbHVkZXMoXCIvXCIpKSB7XG5cdFx0XHQvLyBHbG92ZXMgYXJlIG9mZiwgaWYgeW91IGhhdmUgdGhpcyBlcnJvciB5b3UgZm9yZ290IHRvIGRlY29yYXRlIHlvdXIgcHJvcGVydHkgd2l0aCBAYmxvY2tBdHRyaWJ1dGUgYnV0IGFyZSBzdGlsbCB1c2luZyBpdCBpbiB1bmRlcmx5aW5nIHRlbXBsYXRpbmdcblx0XHRcdExvZy5lcnJvcihgTWlzc2luZyBwcm9wZXJ0eSAke3NQYXRofSBvbiBidWlsZGluZyBibG9jayBtZXRhZGF0YSAke3RoaXMuQnVpbGRpbmdCbG9ja0NsYXNzLm5hbWV9YCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLm9Ob2RlLmdldEF0dHJpYnV0ZShzUGF0aCk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXR0cmlidXRlTW9kZWw7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7OztFQU1BO0FBQ0E7QUFDQTtBQUNBO0VBSEEsSUFJTUEsY0FBYztJQUFBO0lBR25CLHdCQUNrQkMsS0FBYyxFQUNkQyxNQUErQixFQUMvQkMsa0JBQXNELEVBQ3RFO01BQUE7TUFDRCw2QkFBTztNQUFDLE1BSlNGLEtBQWMsR0FBZEEsS0FBYztNQUFBLE1BQ2RDLE1BQStCLEdBQS9CQSxNQUErQjtNQUFBLE1BQy9CQyxrQkFBc0QsR0FBdERBLGtCQUFzRDtNQUd2RSxNQUFLQyxnQkFBZ0IsR0FBRyxJQUFJO01BQUM7SUFDOUI7SUFBQztJQUFBLE9BRURDLFVBQVUsR0FBVixvQkFBV0MsS0FBYSxFQUFFQyxRQUFrQixFQUFXO01BQ3RELElBQUlELEtBQUssS0FBS0UsU0FBUyxJQUFJRixLQUFLLEtBQUssRUFBRSxFQUFFO1FBQ3hDLElBQUlDLFFBQVEsS0FBS0MsU0FBUyxJQUFJRCxRQUFRLENBQUNFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRTtVQUN6RCxPQUFPLElBQUksQ0FBQ0osVUFBVSxDQUFDRSxRQUFRLENBQUNFLE9BQU8sQ0FBQ0gsS0FBSyxDQUFDLENBQUM7UUFDaEQ7UUFDQSxPQUFPLElBQUksQ0FBQ0osTUFBTTtNQUNuQjtNQUNBLElBQUlJLEtBQUssS0FBSyxpQkFBaUIsSUFBSUEsS0FBSyxLQUFLLGdCQUFnQixFQUFFO1FBQzlELE9BQU9FLFNBQVM7TUFDakI7TUFDQTtNQUNBLE1BQU1FLE1BQU0sR0FBR0MsVUFBVSxDQUFDQyxHQUFHLENBQUNOLEtBQUssQ0FBQ08sT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUNYLE1BQU0sQ0FBQztNQUNyRSxJQUFJUSxNQUFNLEtBQUtGLFNBQVMsRUFBRTtRQUN6QixPQUFPRSxNQUFNO01BQ2Q7TUFDQTtNQUNBLElBQUksSUFBSSxDQUFDUixNQUFNLENBQUNZLGNBQWMsQ0FBQ1IsS0FBSyxDQUFDLEVBQUU7UUFDdEMsT0FBTyxJQUFJLENBQUNKLE1BQU0sQ0FBQ0ksS0FBSyxDQUFDO01BQzFCO01BQ0EsSUFBSSxDQUFDQSxLQUFLLENBQUNTLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDVCxLQUFLLENBQUNTLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNqRDtRQUNBQyxHQUFHLENBQUNDLEtBQUssQ0FBRSxvQkFBbUJYLEtBQU0sK0JBQThCLElBQUksQ0FBQ0gsa0JBQWtCLENBQUNlLElBQUssRUFBQyxDQUFDO01BQ2xHO01BQ0EsT0FBTyxJQUFJLENBQUNqQixLQUFLLENBQUNrQixZQUFZLENBQUNiLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBQUE7RUFBQSxFQXBDMkJjLFNBQVM7RUFBQSxPQXVDdkJwQixjQUFjO0FBQUEifQ==
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBdHRyaWJ1dGVNb2RlbCIsIl9KU09OTW9kZWwiLCJfaW5oZXJpdHNMb29zZSIsIm9Ob2RlIiwib1Byb3BzIiwiQnVpbGRpbmdCbG9ja0NsYXNzIiwiX3RoaXMiLCJjYWxsIiwiJCR2YWx1ZUFzUHJvbWlzZSIsIl9wcm90byIsInByb3RvdHlwZSIsIl9nZXRPYmplY3QiLCJzUGF0aCIsIm9Db250ZXh0IiwidW5kZWZpbmVkIiwiZ2V0UGF0aCIsIm9WYWx1ZSIsIk9iamVjdFBhdGgiLCJnZXQiLCJyZXBsYWNlIiwiaGFzT3duUHJvcGVydHkiLCJpbmNsdWRlcyIsIkxvZyIsImVycm9yIiwibmFtZSIsImdldEF0dHJpYnV0ZSIsIkpTT05Nb2RlbCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQXR0cmlidXRlTW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgT2JqZWN0UGF0aCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9PYmplY3RQYXRoXCI7XG5pbXBvcnQgdHlwZSBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5cbi8qKlxuICogU3BlY2lhbCBKU09OTW9kZWwgdGhhdCBpcyB1c2VkIHRvIHN0b3JlIHRoZSBhdHRyaWJ1dGUgbW9kZWwgZm9yIHRoZSBidWlsZGluZyBibG9jay5cbiAqIEl0IGhhcyBzcGVjaWZpYyBoYW5kbGluZyBmb3IgdW5kZWZpbmVkVmFsdWUgbWFwcGluZ1xuICovXG5jbGFzcyBBdHRyaWJ1dGVNb2RlbCBleHRlbmRzIEpTT05Nb2RlbCB7XG5cdHB1YmxpYyAkJHZhbHVlQXNQcm9taXNlOiBib29sZWFuO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgb05vZGU6IEVsZW1lbnQsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBvUHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgQnVpbGRpbmdCbG9ja0NsYXNzOiB0eXBlb2YgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlXG5cdCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy4kJHZhbHVlQXNQcm9taXNlID0gdHJ1ZTtcblx0fVxuXG5cdF9nZXRPYmplY3Qoc1BhdGg6IHN0cmluZywgb0NvbnRleHQ/OiBDb250ZXh0KTogdW5rbm93biB7XG5cdFx0aWYgKHNQYXRoID09PSB1bmRlZmluZWQgfHwgc1BhdGggPT09IFwiXCIpIHtcblx0XHRcdGlmIChvQ29udGV4dCAhPT0gdW5kZWZpbmVkICYmIG9Db250ZXh0LmdldFBhdGgoKSAhPT0gXCIvXCIpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuX2dldE9iamVjdChvQ29udGV4dC5nZXRQYXRoKHNQYXRoKSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGhpcy5vUHJvcHM7XG5cdFx0fVxuXHRcdGlmIChzUGF0aCA9PT0gXCIvdW5kZWZpbmVkVmFsdWVcIiB8fCBzUGF0aCA9PT0gXCJ1bmRlZmluZWRWYWx1ZVwiKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHQvLyBqdXN0IHJldHVybiB0aGUgYXR0cmlidXRlIC0gd2UgY2FuJ3QgdmFsaWRhdGUgdGhlbSwgYW5kIHdlIGRvbid0IHN1cHBvcnQgYWdncmVnYXRpb25zIGZvciBub3dcblx0XHRjb25zdCBvVmFsdWUgPSBPYmplY3RQYXRoLmdldChzUGF0aC5yZXBsYWNlKC9cXC8vZywgXCIuXCIpLCB0aGlzLm9Qcm9wcyk7XG5cdFx0aWYgKG9WYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gb1ZhbHVlO1xuXHRcdH1cblx0XHQvLyBEZWFsIHdpdGggdW5kZWZpbmVkIHByb3BlcnRpZXNcblx0XHRpZiAodGhpcy5vUHJvcHMuaGFzT3duUHJvcGVydHkoc1BhdGgpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5vUHJvcHNbc1BhdGhdO1xuXHRcdH1cblx0XHRpZiAoIXNQYXRoLmluY2x1ZGVzKFwiOlwiKSAmJiAhc1BhdGguaW5jbHVkZXMoXCIvXCIpKSB7XG5cdFx0XHQvLyBHbG92ZXMgYXJlIG9mZiwgaWYgeW91IGhhdmUgdGhpcyBlcnJvciB5b3UgZm9yZ290IHRvIGRlY29yYXRlIHlvdXIgcHJvcGVydHkgd2l0aCBAYmxvY2tBdHRyaWJ1dGUgYnV0IGFyZSBzdGlsbCB1c2luZyBpdCBpbiB1bmRlcmx5aW5nIHRlbXBsYXRpbmdcblx0XHRcdExvZy5lcnJvcihgTWlzc2luZyBwcm9wZXJ0eSAke3NQYXRofSBvbiBidWlsZGluZyBibG9jayBtZXRhZGF0YSAke3RoaXMuQnVpbGRpbmdCbG9ja0NsYXNzLm5hbWV9YCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLm9Ob2RlLmdldEF0dHJpYnV0ZShzUGF0aCk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXR0cmlidXRlTW9kZWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztFQU1BO0FBQ0E7QUFDQTtBQUNBO0VBSEEsSUFJTUEsY0FBYywwQkFBQUMsVUFBQTtJQUFBQyxjQUFBLENBQUFGLGNBQUEsRUFBQUMsVUFBQTtJQUduQixTQUFBRCxlQUNrQkcsS0FBYyxFQUNkQyxNQUErQixFQUMvQkMsa0JBQXNELEVBQ3RFO01BQUEsSUFBQUMsS0FBQTtNQUNEQSxLQUFBLEdBQUFMLFVBQUEsQ0FBQU0sSUFBQSxLQUFNLENBQUM7TUFBQ0QsS0FBQSxDQUpTSCxLQUFjLEdBQWRBLEtBQWM7TUFBQUcsS0FBQSxDQUNkRixNQUErQixHQUEvQkEsTUFBK0I7TUFBQUUsS0FBQSxDQUMvQkQsa0JBQXNELEdBQXREQSxrQkFBc0Q7TUFHdkVDLEtBQUEsQ0FBS0UsZ0JBQWdCLEdBQUcsSUFBSTtNQUFDLE9BQUFGLEtBQUE7SUFDOUI7SUFBQyxJQUFBRyxNQUFBLEdBQUFULGNBQUEsQ0FBQVUsU0FBQTtJQUFBRCxNQUFBLENBRURFLFVBQVUsR0FBVixTQUFBQSxXQUFXQyxLQUFhLEVBQUVDLFFBQWtCLEVBQVc7TUFDdEQsSUFBSUQsS0FBSyxLQUFLRSxTQUFTLElBQUlGLEtBQUssS0FBSyxFQUFFLEVBQUU7UUFDeEMsSUFBSUMsUUFBUSxLQUFLQyxTQUFTLElBQUlELFFBQVEsQ0FBQ0UsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7VUFDekQsT0FBTyxJQUFJLENBQUNKLFVBQVUsQ0FBQ0UsUUFBUSxDQUFDRSxPQUFPLENBQUNILEtBQUssQ0FBQyxDQUFDO1FBQ2hEO1FBQ0EsT0FBTyxJQUFJLENBQUNSLE1BQU07TUFDbkI7TUFDQSxJQUFJUSxLQUFLLEtBQUssaUJBQWlCLElBQUlBLEtBQUssS0FBSyxnQkFBZ0IsRUFBRTtRQUM5RCxPQUFPRSxTQUFTO01BQ2pCO01BQ0E7TUFDQSxNQUFNRSxNQUFNLEdBQUdDLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDTixLQUFLLENBQUNPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDZixNQUFNLENBQUM7TUFDckUsSUFBSVksTUFBTSxLQUFLRixTQUFTLEVBQUU7UUFDekIsT0FBT0UsTUFBTTtNQUNkO01BQ0E7TUFDQSxJQUFJLElBQUksQ0FBQ1osTUFBTSxDQUFDZ0IsY0FBYyxDQUFDUixLQUFLLENBQUMsRUFBRTtRQUN0QyxPQUFPLElBQUksQ0FBQ1IsTUFBTSxDQUFDUSxLQUFLLENBQUM7TUFDMUI7TUFDQSxJQUFJLENBQUNBLEtBQUssQ0FBQ1MsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUNULEtBQUssQ0FBQ1MsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2pEO1FBQ0FDLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLG9CQUFvQlgsS0FBSywrQkFBK0IsSUFBSSxDQUFDUCxrQkFBa0IsQ0FBQ21CLElBQUksRUFBRSxDQUFDO01BQ2xHO01BQ0EsT0FBTyxJQUFJLENBQUNyQixLQUFLLENBQUNzQixZQUFZLENBQUNiLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBQUEsT0FBQVosY0FBQTtFQUFBLEVBcEMyQjBCLFNBQVM7RUFBQSxPQXVDdkIxQixjQUFjO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -11,4 +11,4 @@ sap.ui.define([], function () {
11
11
  }
12
12
  };
13
13
  }, false);
14
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJiYXNlNjREZWNvZGUiLCJiYXNlNjQiLCJhdG9iIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCdWlsZGluZ0Jsb2NrRm9ybWF0dGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcblx0YmFzZTY0RGVjb2RlOiAoYmFzZTY0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRcdHJldHVybiBhdG9iKGJhc2U2NCk7XG5cdH1cbn07XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7U0FBZTtJQUNkQSxZQUFZLEVBQUdDLE1BQWMsSUFBYTtNQUN6QyxPQUFPQyxJQUFJLENBQUNELE1BQU0sQ0FBQztJQUNwQjtFQUNELENBQUM7QUFBQSJ9
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJiYXNlNjREZWNvZGUiLCJiYXNlNjQiLCJhdG9iIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCdWlsZGluZ0Jsb2NrRm9ybWF0dGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcblx0YmFzZTY0RGVjb2RlOiAoYmFzZTY0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRcdHJldHVybiBhdG9iKGJhc2U2NCk7XG5cdH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7U0FBZTtJQUNkQSxZQUFZLEVBQUdDLE1BQWMsSUFBYTtNQUN6QyxPQUFPQyxJQUFJLENBQUNELE1BQU0sQ0FBQztJQUNwQjtFQUNELENBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==