@sapui5/sap.fe.core 1.112.0 → 1.114.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime-dbg.js +70 -6
  4. package/src/sap/fe/core/ActionRuntime.js +1 -1
  5. package/src/sap/fe/core/ActionRuntime.js.map +1 -1
  6. package/src/sap/fe/core/ActionRuntime.ts +118 -3
  7. package/src/sap/fe/core/AppComponent-dbg.js +16 -6
  8. package/src/sap/fe/core/AppComponent.js +1 -1
  9. package/src/sap/fe/core/AppComponent.js.map +1 -1
  10. package/src/sap/fe/core/AppComponent.ts +21 -7
  11. package/src/sap/fe/core/AppStateHandler-dbg.js +11 -10
  12. package/src/sap/fe/core/AppStateHandler.js +1 -1
  13. package/src/sap/fe/core/AppStateHandler.js.map +1 -1
  14. package/src/sap/fe/core/AppStateHandler.ts +14 -11
  15. package/src/sap/fe/core/CommonUtils-dbg.js +102 -175
  16. package/src/sap/fe/core/CommonUtils.js +1 -1
  17. package/src/sap/fe/core/CommonUtils.js.map +1 -1
  18. package/src/sap/fe/core/CommonUtils.ts +114 -211
  19. package/src/sap/fe/core/ExtensionAPI-dbg.js +3 -1
  20. package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
  21. package/src/sap/fe/core/ExtensionAPI.ts +2 -0
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +2 -1
  23. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +1 -1
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -1
  25. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +1 -0
  26. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +2 -2
  27. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +1 -1
  28. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -1
  29. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +13 -18
  30. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +32 -24
  31. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +4 -4
  32. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -1
  33. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.ts +41 -29
  34. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +2 -2
  35. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +1 -1
  36. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -1
  37. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +1 -1
  38. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +2 -2
  39. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +1 -1
  40. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -1
  41. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +3 -1
  42. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +124 -57
  43. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  44. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  45. package/src/sap/fe/core/controllerextensions/EditFlow.ts +146 -73
  46. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +35 -74
  47. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  48. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  49. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +35 -78
  50. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +217 -127
  51. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  52. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  53. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +227 -129
  54. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +3 -5
  55. package/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  56. package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -1
  57. package/src/sap/fe/core/controllerextensions/PageReady.ts +2 -4
  58. package/src/sap/fe/core/controllerextensions/Share-dbg.js +3 -2
  59. package/src/sap/fe/core/controllerextensions/Share.js +1 -1
  60. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  61. package/src/sap/fe/core/controllerextensions/Share.ts +2 -1
  62. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +19 -14
  63. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  64. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  65. package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -14
  66. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +41 -24
  67. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  68. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  69. package/src/sap/fe/core/controllerextensions/ViewState.ts +64 -31
  70. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +8 -8
  71. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  72. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  73. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +7 -9
  74. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +7 -45
  75. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  76. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  77. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +5 -48
  78. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +4 -4
  79. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +1 -1
  80. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
  81. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -2
  82. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +3 -3
  83. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating-dbg.js +52 -0
  84. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.js +6 -0
  85. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.js.map +1 -0
  86. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.ts +46 -0
  87. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +103 -0
  88. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +6 -0
  89. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -0
  90. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +124 -0
  91. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +106 -205
  92. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  93. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  94. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +121 -216
  95. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +31 -4
  96. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  97. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  98. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +38 -3
  99. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +13 -10
  100. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +1 -1
  101. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  102. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +7 -20
  103. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +9 -4
  104. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +1 -1
  105. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -1
  106. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +12 -3
  107. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +10 -6
  108. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +1 -1
  109. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -1
  110. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +20 -11
  111. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +1 -8
  112. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  113. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  114. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +0 -9
  115. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +19 -15
  116. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  117. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  118. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +19 -22
  119. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +67 -1
  120. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  121. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
  122. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +68 -0
  123. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -0
  124. package/src/sap/fe/core/controls/CommandExecution-dbg.js +4 -9
  125. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  126. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  127. package/src/sap/fe/core/controls/CommandExecution.ts +0 -8
  128. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block-dbg.js +335 -0
  129. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +6 -0
  130. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js.map +1 -0
  131. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +336 -0
  132. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
  133. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +3 -28
  134. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
  135. package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -1
  136. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +8 -29
  137. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +30 -1
  138. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  139. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  140. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +38 -0
  141. package/src/sap/fe/core/converters/ConverterContext-dbg.js +3 -5
  142. package/src/sap/fe/core/converters/ConverterContext.js +1 -1
  143. package/src/sap/fe/core/converters/ConverterContext.js.map +1 -1
  144. package/src/sap/fe/core/converters/ConverterContext.ts +2 -5
  145. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
  146. package/src/sap/fe/core/converters/ManifestSettings.ts +7 -6
  147. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +5 -3
  148. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  149. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
  150. package/src/sap/fe/core/converters/ManifestWrapper.ts +7 -1
  151. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +49 -28
  152. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  153. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  154. package/src/sap/fe/core/converters/MetaModelConverter.ts +62 -30
  155. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -3
  156. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  157. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  158. package/src/sap/fe/core/converters/TemplateConverter.ts +1 -6
  159. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +22 -7
  160. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  161. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  162. package/src/sap/fe/core/converters/annotations/DataField.ts +20 -7
  163. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +701 -681
  164. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  165. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  166. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -12
  167. package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  168. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
  169. package/src/sap/fe/core/converters/controls/Common/Action.ts +9 -14
  170. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +32 -20
  171. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  172. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  173. package/src/sap/fe/core/converters/controls/Common/Chart.ts +30 -18
  174. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +4 -5
  175. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  176. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  177. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +6 -37
  178. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +7 -6
  179. package/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  180. package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -1
  181. package/src/sap/fe/core/converters/controls/Common/Form.ts +5 -11
  182. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +5 -5
  183. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  184. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
  185. package/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -4
  186. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +135 -85
  187. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  188. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  189. package/src/sap/fe/core/converters/controls/Common/Table.ts +189 -119
  190. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +56 -22
  191. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  192. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  193. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +67 -31
  194. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +137 -49
  195. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  196. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  197. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +166 -43
  198. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +33 -14
  199. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  200. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  201. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +31 -12
  202. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +27 -18
  203. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  204. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
  205. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +36 -23
  206. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +37 -15
  207. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  208. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  209. package/src/sap/fe/core/converters/helpers/Aggregation.ts +36 -20
  210. package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +8 -6
  211. package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
  212. package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -1
  213. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +8 -6
  214. package/src/sap/fe/core/converters/helpers/InsightsHelpers-dbg.js +39 -0
  215. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +6 -0
  216. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js.map +1 -0
  217. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +45 -0
  218. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +3 -2
  219. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  220. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
  221. package/src/sap/fe/core/converters/helpers/IssueManager.ts +2 -1
  222. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +17 -16
  223. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  224. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
  225. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +11 -11
  226. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +20 -17
  227. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  228. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  229. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +25 -56
  230. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +13 -13
  231. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  232. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  233. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +18 -13
  234. package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +17 -33
  235. package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
  236. package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -1
  237. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +27 -22
  238. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -6
  239. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  240. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
  241. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -5
  242. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +13 -5
  243. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  244. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  245. package/src/sap/fe/core/formatters/ValueFormatter.ts +19 -9
  246. package/src/sap/fe/core/fpm/manifest.json +1 -1
  247. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +2 -1
  248. package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
  249. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  250. package/src/sap/fe/core/helpers/BindingToolkit.ts +1 -1
  251. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +58 -35
  252. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  253. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  254. package/src/sap/fe/core/helpers/DeleteHelper.ts +76 -54
  255. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +8 -4
  256. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  257. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  258. package/src/sap/fe/core/helpers/MassEditHelper.ts +7 -5
  259. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +6 -5
  260. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  261. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  262. package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
  263. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +167 -4
  264. package/src/sap/fe/core/helpers/MetaModelFunction.js +1 -1
  265. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -1
  266. package/src/sap/fe/core/helpers/MetaModelFunction.ts +205 -3
  267. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +37 -73
  268. package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  269. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
  270. package/src/sap/fe/core/helpers/ModelHelper.ts +41 -68
  271. package/src/sap/fe/core/helpers/RecommendationHelper-dbg.js +71 -0
  272. package/src/sap/fe/core/helpers/RecommendationHelper.js +6 -0
  273. package/src/sap/fe/core/helpers/RecommendationHelper.js.map +1 -0
  274. package/src/sap/fe/core/helpers/RecommendationHelper.ts +94 -0
  275. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +19 -3
  276. package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
  277. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -1
  278. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +21 -0
  279. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +40 -6
  280. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  281. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
  282. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +39 -5
  283. package/src/sap/fe/core/helpers/SizeHelper-dbg.js +53 -0
  284. package/src/sap/fe/core/helpers/SizeHelper.js +6 -0
  285. package/src/sap/fe/core/helpers/SizeHelper.js.map +1 -0
  286. package/src/sap/fe/core/helpers/SizeHelper.ts +51 -0
  287. package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +52 -26
  288. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  289. package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
  290. package/src/sap/fe/core/helpers/StableIdHelper.ts +49 -25
  291. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +147 -1
  292. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  293. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
  294. package/src/sap/fe/core/helpers/TypeGuards.ts +151 -1
  295. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +25 -2
  296. package/src/sap/fe/core/jsx-runtime/jsx-control.js +1 -1
  297. package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -1
  298. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +24 -0
  299. package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
  300. package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -0
  301. package/src/sap/fe/core/library-dbg.js +1 -1
  302. package/src/sap/fe/core/library-preload.js +123 -95
  303. package/src/sap/fe/core/library-preload.js.map +1 -1
  304. package/src/sap/fe/core/library.js +1 -1
  305. package/src/sap/fe/core/manifest.json +1 -1
  306. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +67 -15
  307. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  308. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
  309. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -14
  310. package/src/sap/fe/core/messagebundle.properties +6 -6
  311. package/src/sap/fe/core/messagebundle_ar.properties +5 -6
  312. package/src/sap/fe/core/messagebundle_bg.properties +11 -12
  313. package/src/sap/fe/core/messagebundle_ca.properties +3 -4
  314. package/src/sap/fe/core/messagebundle_cs.properties +3 -4
  315. package/src/sap/fe/core/messagebundle_cy.properties +3 -4
  316. package/src/sap/fe/core/messagebundle_da.properties +3 -4
  317. package/src/sap/fe/core/messagebundle_de.properties +11 -12
  318. package/src/sap/fe/core/messagebundle_el.properties +5 -6
  319. package/src/sap/fe/core/messagebundle_en.properties +3 -4
  320. package/src/sap/fe/core/messagebundle_en_GB.properties +4 -5
  321. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +3 -4
  322. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +3 -4
  323. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +3 -2
  324. package/src/sap/fe/core/messagebundle_es.properties +3 -4
  325. package/src/sap/fe/core/messagebundle_es_MX.properties +3 -4
  326. package/src/sap/fe/core/messagebundle_et.properties +3 -4
  327. package/src/sap/fe/core/messagebundle_fi.properties +3 -4
  328. package/src/sap/fe/core/messagebundle_fr.properties +3 -4
  329. package/src/sap/fe/core/messagebundle_fr_CA.properties +11 -12
  330. package/src/sap/fe/core/messagebundle_hi.properties +11 -12
  331. package/src/sap/fe/core/messagebundle_hr.properties +3 -4
  332. package/src/sap/fe/core/messagebundle_hu.properties +3 -4
  333. package/src/sap/fe/core/messagebundle_id.properties +11 -12
  334. package/src/sap/fe/core/messagebundle_it.properties +3 -4
  335. package/src/sap/fe/core/messagebundle_iw.properties +3 -4
  336. package/src/sap/fe/core/messagebundle_ja.properties +4 -5
  337. package/src/sap/fe/core/messagebundle_kk.properties +3 -4
  338. package/src/sap/fe/core/messagebundle_ko.properties +11 -12
  339. package/src/sap/fe/core/messagebundle_lt.properties +3 -4
  340. package/src/sap/fe/core/messagebundle_lv.properties +11 -12
  341. package/src/sap/fe/core/messagebundle_ms.properties +3 -4
  342. package/src/sap/fe/core/messagebundle_nl.properties +3 -4
  343. package/src/sap/fe/core/messagebundle_no.properties +3 -4
  344. package/src/sap/fe/core/messagebundle_pl.properties +11 -12
  345. package/src/sap/fe/core/messagebundle_pt.properties +3 -4
  346. package/src/sap/fe/core/messagebundle_pt_PT.properties +3 -4
  347. package/src/sap/fe/core/messagebundle_ro.properties +14 -15
  348. package/src/sap/fe/core/messagebundle_ru.properties +11 -12
  349. package/src/sap/fe/core/messagebundle_sh.properties +3 -4
  350. package/src/sap/fe/core/messagebundle_sk.properties +3 -4
  351. package/src/sap/fe/core/messagebundle_sl.properties +3 -4
  352. package/src/sap/fe/core/messagebundle_sv.properties +11 -12
  353. package/src/sap/fe/core/messagebundle_th.properties +3 -4
  354. package/src/sap/fe/core/messagebundle_tr.properties +3 -4
  355. package/src/sap/fe/core/messagebundle_uk.properties +3 -4
  356. package/src/sap/fe/core/messagebundle_vi.properties +3 -4
  357. package/src/sap/fe/core/messagebundle_zh_CN.properties +11 -12
  358. package/src/sap/fe/core/messagebundle_zh_TW.properties +11 -12
  359. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +22 -8
  360. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  361. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  362. package/src/sap/fe/core/rootView/RootViewBaseController.ts +17 -7
  363. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +36 -3
  364. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  365. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  366. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +37 -1
  367. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +13 -1
  368. package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
  369. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  370. package/src/sap/fe/core/services/NavigationServiceFactory.ts +13 -0
  371. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +7 -1
  372. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  373. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  374. package/src/sap/fe/core/services/RoutingServiceFactory.ts +20 -2
  375. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +7 -1
  376. package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  377. package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -1
  378. package/src/sap/fe/core/services/ShellServicesFactory.ts +10 -0
  379. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +10 -7
  380. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  381. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  382. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +12 -13
  383. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +9 -3
  384. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  385. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  386. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +11 -15
  387. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +4 -3
  388. package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
  389. package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
  390. package/src/sap/fe/core/templating/CommonFormatters.ts +2 -2
  391. package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +1 -1
  392. package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
  393. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +19 -18
  394. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  395. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  396. package/src/sap/fe/core/templating/DataModelPathHelper.ts +24 -18
  397. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +5 -5
  398. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  399. package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -1
  400. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -2
  401. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +19 -28
  402. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  403. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
  404. package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -24
  405. package/src/sap/fe/core/templating/EntityTypeHelper-dbg.js +48 -0
  406. package/src/sap/fe/core/templating/EntityTypeHelper.js +6 -0
  407. package/src/sap/fe/core/templating/EntityTypeHelper.js.map +1 -0
  408. package/src/sap/fe/core/templating/EntityTypeHelper.ts +37 -0
  409. package/src/sap/fe/core/templating/FilterHelper-dbg.js +12 -1
  410. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  411. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  412. package/src/sap/fe/core/templating/FilterHelper.ts +12 -0
  413. package/src/sap/fe/core/templating/FilterTemplating-dbg.js +7 -8
  414. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  415. package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -1
  416. package/src/sap/fe/core/templating/FilterTemplating.ts +5 -8
  417. package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +1 -6
  418. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  419. package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -1
  420. package/src/sap/fe/core/templating/PropertyFormatters.ts +0 -5
  421. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +13 -46
  422. package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
  423. package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -1
  424. package/src/sap/fe/core/templating/PropertyHelper.ts +14 -43
  425. package/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
  426. package/src/sap/fe/core/templating/UIFormatters.js +1 -1
  427. package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
  428. package/src/sap/fe/core/templating/UIFormatters.ts +45 -34
  429. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +0 -91
  430. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +0 -59
  431. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +0 -171
  432. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +0 -6
  433. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +0 -1
  434. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +0 -184
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/converters/helpers/ConfigurableObject", "sap/fe/core/converters/helpers/Key", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/templating/DataModelPathHelper", "sap/ui/core/Core", "../helpers/BindingHelper", "../ManifestSettings"], function (Action, ConfigurableObject, Key, BindingToolkit, ModelHelper, DataModelPathHelper, Core, BindingHelper, ManifestSettings) {
5
+ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/converters/helpers/ConfigurableObject", "sap/fe/core/converters/helpers/Key", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/helpers/TypeGuards", "sap/fe/core/templating/DataModelPathHelper", "sap/ui/core/Core", "../helpers/BindingHelper", "../ManifestSettings"], function (Action, ConfigurableObject, Key, BindingToolkit, ModelHelper, TypeGuards, DataModelPathHelper, Core, BindingHelper, ManifestSettings) {
6
6
  "use strict";
7
7
 
8
8
  var _exports = {};
@@ -11,6 +11,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
11
11
  var singletonPathVisitor = BindingHelper.singletonPathVisitor;
12
12
  var Draft = BindingHelper.Draft;
13
13
  var isPathDeletable = DataModelPathHelper.isPathDeletable;
14
+ var isEntitySet = TypeGuards.isEntitySet;
14
15
  var pathInModel = BindingToolkit.pathInModel;
15
16
  var not = BindingToolkit.not;
16
17
  var ifElse = BindingToolkit.ifElse;
@@ -104,7 +105,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
104
105
  function getDeleteButtonEnabled(isDeletable, isParentDeletable, converterContext) {
105
106
  const entitySet = converterContext.getEntitySet(),
106
107
  isDraftRoot = ModelHelper.isDraftRoot(entitySet);
107
- let ret = ifElse(isParentDeletable !== undefined, isParentDeletable, ifElse(isDeletable !== undefined, equal(isDeletable, true), constant(true)));
108
+ let ret = ifElse(isParentDeletable !== undefined, isParentDeletable, ifElse(isDeletable !== undefined, equal(getExpressionFromAnnotation(isDeletable), true), constant(true)));
108
109
 
109
110
  // delete should be disabled for Locked objects
110
111
  ret = isDraftRoot ? and(ret, not(pathInModel("DraftAdministrativeData/InProcessByUser"))) : ret;
@@ -167,12 +168,12 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
167
168
  isDraftRoot = ModelHelper.isDraftRoot(entitySet),
168
169
  isSticky = ModelHelper.isSticky(entitySet);
169
170
  let editActionName;
170
- if (isDraftRoot && !ModelHelper.isSingleton(entitySet)) {
171
- var _annotations$Common, _annotations$Common$D;
172
- editActionName = entitySet === null || entitySet === void 0 ? void 0 : (_annotations$Common = entitySet.annotations.Common) === null || _annotations$Common === void 0 ? void 0 : (_annotations$Common$D = _annotations$Common.DraftRoot) === null || _annotations$Common$D === void 0 ? void 0 : _annotations$Common$D.EditAction;
173
- } else if (isSticky && !ModelHelper.isSingleton(entitySet)) {
174
- var _annotations$Session, _annotations$Session$;
175
- editActionName = entitySet === null || entitySet === void 0 ? void 0 : (_annotations$Session = entitySet.annotations.Session) === null || _annotations$Session === void 0 ? void 0 : (_annotations$Session$ = _annotations$Session.StickySessionSupported) === null || _annotations$Session$ === void 0 ? void 0 : _annotations$Session$.EditAction;
171
+ if (isDraftRoot && isEntitySet(entitySet)) {
172
+ var _entitySet$annotation, _entitySet$annotation2;
173
+ editActionName = (_entitySet$annotation = entitySet.annotations.Common) === null || _entitySet$annotation === void 0 ? void 0 : (_entitySet$annotation2 = _entitySet$annotation.DraftRoot) === null || _entitySet$annotation2 === void 0 ? void 0 : _entitySet$annotation2.EditAction;
174
+ } else if (isSticky && isEntitySet(entitySet)) {
175
+ var _entitySet$annotation3, _entitySet$annotation4;
176
+ editActionName = (_entitySet$annotation3 = entitySet.annotations.Session) === null || _entitySet$annotation3 === void 0 ? void 0 : (_entitySet$annotation4 = _entitySet$annotation3.StickySessionSupported) === null || _entitySet$annotation4 === void 0 ? void 0 : _entitySet$annotation4.EditAction;
176
177
  }
177
178
  if (editActionName) {
178
179
  var _editAction$annotatio, _editAction$annotatio2;
@@ -196,7 +197,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
196
197
  }
197
198
  _exports.getEditButtonEnabled = getEditButtonEnabled;
198
199
  function getHeaderDefaultActions(converterContext) {
199
- var _entitySet$annotation, _entitySet$annotation2, _entitySet$annotation3, _entitySet$annotation4, _entityDeleteRestrict;
200
+ var _entitySet$annotation5, _entitySet$annotation6, _entitySet$annotation7, _entitySet$annotation8, _entityDeleteRestrict;
200
201
  const sContextPath = converterContext.getContextPath();
201
202
  const rootEntitySetPath = ModelHelper.getRootEntitySetPath(sContextPath);
202
203
  const rootConverterContext = converterContext.getConverterContextFor("/" + rootEntitySetPath);
@@ -209,9 +210,9 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
209
210
  draftRoot = ModelHelper.getDraftRoot(rootEntitySet),
210
211
  //entitySet && entitySet.annotations.Common?.DraftRoot,
211
212
  draftNode = ModelHelper.getDraftNode(rootEntitySet),
212
- entityDeleteRestrictions = entitySet && ((_entitySet$annotation = entitySet.annotations) === null || _entitySet$annotation === void 0 ? void 0 : (_entitySet$annotation2 = _entitySet$annotation.Capabilities) === null || _entitySet$annotation2 === void 0 ? void 0 : _entitySet$annotation2.DeleteRestrictions),
213
+ entityDeleteRestrictions = entitySet && ((_entitySet$annotation5 = entitySet.annotations) === null || _entitySet$annotation5 === void 0 ? void 0 : (_entitySet$annotation6 = _entitySet$annotation5.Capabilities) === null || _entitySet$annotation6 === void 0 ? void 0 : _entitySet$annotation6.DeleteRestrictions),
213
214
  rootUpdateHidden = ModelHelper.isUpdateHidden(rootEntitySet, rootEntityType),
214
- updateHidden = rootEntitySet && !ModelHelper.isSingleton(rootEntitySet) && (rootUpdateHidden === null || rootUpdateHidden === void 0 ? void 0 : rootUpdateHidden.valueOf()),
215
+ updateHidden = rootEntitySet && isEntitySet(rootEntitySet) && (rootUpdateHidden === null || rootUpdateHidden === void 0 ? void 0 : rootUpdateHidden.valueOf()),
215
216
  dataModelObjectPath = converterContext.getDataModelObjectPath(),
216
217
  isParentDeletable = isPathDeletable(dataModelObjectPath, {
217
218
  pathVisitor: (path, navigationPaths) => singletonPathVisitor(path, converterContext.getConvertedTypes(), navigationPaths)
@@ -231,14 +232,14 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
231
232
  // the button for switching between draft and active document versions but also the controls for
232
233
  // the collaborative draft fragment.
233
234
  const headerActions = [];
234
- if (!ModelHelper.isSingleton(entitySet) && draftRoot !== null && draftRoot !== void 0 && draftRoot.EditAction && updateHidden !== true) {
235
+ if (isEntitySet(entitySet) && draftRoot !== null && draftRoot !== void 0 && draftRoot.EditAction && updateHidden !== true) {
235
236
  headerActions.push({
236
237
  type: ActionType.DraftActions,
237
238
  key: "DraftActions"
238
239
  });
239
240
  }
240
241
  const viewLevel = converterContext.getManifestWrapper().getViewLevel();
241
- const updatablePropertyPath = viewLevel > 1 ? entitySet === null || entitySet === void 0 ? void 0 : (_entitySet$annotation3 = entitySet.annotations.Capabilities) === null || _entitySet$annotation3 === void 0 ? void 0 : (_entitySet$annotation4 = _entitySet$annotation3.UpdateRestrictions) === null || _entitySet$annotation4 === void 0 ? void 0 : _entitySet$annotation4.Updatable : undefined;
242
+ const updatablePropertyPath = viewLevel > 1 ? entitySet === null || entitySet === void 0 ? void 0 : (_entitySet$annotation7 = entitySet.annotations.Capabilities) === null || _entitySet$annotation7 === void 0 ? void 0 : (_entitySet$annotation8 = _entitySet$annotation7.UpdateRestrictions) === null || _entitySet$annotation8 === void 0 ? void 0 : _entitySet$annotation8.Updatable : undefined;
242
243
  if (draftRoot || draftNode) {
243
244
  headerActions.push({
244
245
  type: ActionType.CollaborationAvatars,
@@ -335,12 +336,12 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
335
336
  }
336
337
  _exports.getHiddenHeaderActions = getHiddenHeaderActions;
337
338
  function getFooterDefaultActions(viewLevel, converterContext) {
338
- var _entitySet$annotation5, _entitySet$annotation6, _entitySet$annotation7, _entitySet$annotation8, _entitySet$annotation9;
339
+ var _entitySet$annotation9, _entitySet$annotation10, _entitySet$annotation11, _entitySet$annotation12;
339
340
  const entitySet = converterContext.getEntitySet();
340
341
  const entityType = converterContext.getEntityType();
341
342
  const stickySessionSupported = ModelHelper.getStickySession(entitySet),
342
343
  //for sticky app
343
- entitySetDraftRoot = !ModelHelper.isSingleton(entitySet) && entitySet && (((_entitySet$annotation5 = entitySet.annotations.Common) === null || _entitySet$annotation5 === void 0 ? void 0 : (_entitySet$annotation6 = _entitySet$annotation5.DraftRoot) === null || _entitySet$annotation6 === void 0 ? void 0 : _entitySet$annotation6.term) || ((_entitySet$annotation7 = entitySet.annotations) === null || _entitySet$annotation7 === void 0 ? void 0 : (_entitySet$annotation8 = _entitySet$annotation7.Session) === null || _entitySet$annotation8 === void 0 ? void 0 : (_entitySet$annotation9 = _entitySet$annotation8.StickySessionSupported) === null || _entitySet$annotation9 === void 0 ? void 0 : _entitySet$annotation9.term)),
344
+ entitySetDraftRoot = isEntitySet(entitySet) && (((_entitySet$annotation9 = entitySet.annotations.Common) === null || _entitySet$annotation9 === void 0 ? void 0 : (_entitySet$annotation10 = _entitySet$annotation9.DraftRoot) === null || _entitySet$annotation10 === void 0 ? void 0 : _entitySet$annotation10.term) ?? ((_entitySet$annotation11 = entitySet.annotations.Session) === null || _entitySet$annotation11 === void 0 ? void 0 : (_entitySet$annotation12 = _entitySet$annotation11.StickySessionSupported) === null || _entitySet$annotation12 === void 0 ? void 0 : _entitySet$annotation12.term)),
344
345
  conditionSave = Boolean(entitySetDraftRoot === "com.sap.vocabularies.Common.v1.DraftRoot" || stickySessionSupported && (stickySessionSupported === null || stickySessionSupported === void 0 ? void 0 : stickySessionSupported.SaveAction)),
345
346
  conditionApply = viewLevel > 1,
346
347
  conditionCancel = Boolean(entitySetDraftRoot === "com.sap.vocabularies.Common.v1.DraftRoot" || stickySessionSupported && (stickySessionSupported === null || stickySessionSupported === void 0 ? void 0 : stickySessionSupported.DiscardAction));
@@ -404,4 +405,4 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
404
405
  }
405
406
  return _exports;
406
407
  }, false);
407
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMiLCJlbnRpdHlUeXBlIiwiaXNEZXRlcm1pbmluZ0FjdGlvbiIsImFubm90YXRpb25zIiwiVUkiLCJJZGVudGlmaWNhdGlvbiIsImZpbHRlciIsImlkZW50aWZpY2F0aW9uRGF0YUZpZWxkIiwiSGlkZGVuIiwidmFsdWVPZiIsIiRUeXBlIiwiQm9vbGVhbiIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsIkNvcmUiLCJPcGVyYXRpb25BdmFpbGFibGUiLCJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJJTVBPUlRBTlRfQ1JJVElDQUxJVElFUyIsImdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkiLCJjb252ZXJ0ZXJDb250ZXh0IiwiZGVsZXRlSGlkZGVuIiwiZGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJ2aXNpdGVkTmF2aWdhdGlvblBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJtYXAiLCJuYXZQcm9wIiwibmFtZSIsImRlbGV0ZUhpZGRlbkV4cHJlc3Npb24iLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJ1bmRlZmluZWQiLCJwYXRoIiwic2luZ2xldG9uUGF0aFZpc2l0b3IiLCJnZXRDb252ZXJ0ZWRUeXBlcyIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsInZpZXdMZXZlbCIsImdldFZpZXdMZXZlbCIsImVkaXRhYmxlRXhwcmVzc2lvbiIsIklzRWRpdGFibGUiLCJub3QiLCJpZkVsc2UiLCJhbmQiLCJlcXVhbCIsImdldERlbGV0ZUJ1dHRvbkVuYWJsZWQiLCJpc0RlbGV0YWJsZSIsImlzUGFyZW50RGVsZXRhYmxlIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiaXNEcmFmdFJvb3QiLCJNb2RlbEhlbHBlciIsInJldCIsImNvbnN0YW50IiwicGF0aEluTW9kZWwiLCJnZXRFZGl0QnV0dG9uVmlzaWJpbGl0eSIsInJvb3RVcGRhdGVIaWRkZW4iLCJyb290Q29udmVydGVyQ29udGV4dCIsInVwZGF0ZUhpZGRlbiIsInJvb3RFbnRpdHlTZXQiLCJpc0ZDTEVuYWJsZWQiLCJpc0ZjbEVuYWJsZWQiLCJpc0RyYWZ0RW5hYmxlZCIsInJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uIiwiZ2V0SGlkZGVuRXhwcmVzc2lvbiIsImlzRHJhZnROb2RlIiwidXBkYXRlSGlkZGVuRXhwcmVzc2lvbiIsIm5vdEVkaXRhYmxlRXhwcmVzc2lvbiIsInJlc3VsdGFudEV4cHJlc3Npb24iLCJEcmFmdCIsIkhhc05vRHJhZnRGb3JDdXJyZW50VXNlciIsImdldEVkaXRCdXR0b25FbmFibGVkIiwidXBkYXRlUmVzdHJpY3Rpb25zIiwiaXNTdGlja3kiLCJlZGl0QWN0aW9uTmFtZSIsImlzU2luZ2xldG9uIiwiQ29tbW9uIiwiRHJhZnRSb290IiwiRWRpdEFjdGlvbiIsIlNlc3Npb24iLCJTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZWRpdEFjdGlvbkFubm90YXRpb25QYXRoIiwiZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aCIsImVkaXRBY3Rpb24iLCJyZXNvbHZlQWJzb2x1dGVQYXRoIiwidGFyZ2V0IiwiY29tcGlsZUV4cHJlc3Npb24iLCJnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbiIsImdldEhlYWRlckRlZmF1bHRBY3Rpb25zIiwic0NvbnRleHRQYXRoIiwiZ2V0Q29udGV4dFBhdGgiLCJyb290RW50aXR5U2V0UGF0aCIsImdldFJvb3RFbnRpdHlTZXRQYXRoIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImdldEVudGl0eVR5cGUiLCJyb290RW50aXR5VHlwZSIsInN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRTdGlja3lTZXNzaW9uIiwiZHJhZnRSb290IiwiZ2V0RHJhZnRSb290IiwiZHJhZnROb2RlIiwiZ2V0RHJhZnROb2RlIiwiZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zIiwiQ2FwYWJpbGl0aWVzIiwiRGVsZXRlUmVzdHJpY3Rpb25zIiwiaXNVcGRhdGVIaWRkZW4iLCJpc1BhdGhEZWxldGFibGUiLCJwYXRoVmlzaXRvciIsIm5hdmlnYXRpb25QYXRocyIsInBhcmVudEVudGl0eVNldERlbGV0YWJsZSIsImlkZW50aWZpY2F0aW9uRmllbGRGb3JBY3Rpb25zIiwiY29weURhdGFGaWVsZCIsImdldENvcHlBY3Rpb24iLCJkYXRhRmllbGQiLCJkYXRhRmllbGRJc0NvcHlBY3Rpb24iLCJoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zIiwiaGVhZGVyQWN0aW9ucyIsInB1c2giLCJ0eXBlIiwiQWN0aW9uVHlwZSIsIkRyYWZ0QWN0aW9ucyIsImtleSIsInVwZGF0YWJsZVByb3BlcnR5UGF0aCIsIlVwZGF0ZVJlc3RyaWN0aW9ucyIsIlVwZGF0YWJsZSIsIkNvbGxhYm9yYXRpb25BdmF0YXJzIiwiaW5kZXhPZiIsIkNyaXRpY2FsaXR5IiwiZm9yRWFjaCIsImdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24iLCJQcmltYXJ5IiwidmlzaWJsZSIsImVuYWJsZWQiLCJEZWxldGFibGUiLCJnZXREZWxldGVIaWRkZW4iLCJTZWNvbmRhcnkiLCJwYXJlbnRFbnRpdHlEZWxldGVFbmFibGVkIiwiQ29weSIsInRleHQiLCJMYWJlbCIsInRvU3RyaW5nIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiZ2V0VGV4dCIsImhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJSZXF1aXJlc0NvbnRleHQiLCJFcnJvciIsIklubGluZSIsIm9OYXZpZ2F0aW9uUGFyYW1zIiwic2VtYW50aWNPYmplY3RNYXBwaW5nIiwiZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nIiwiTWFwcGluZyIsIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImJ1dHRvblR5cGUiLCJCdXR0b25UeXBlIiwiR2hvc3QiLCJOYXZpZ2F0aW9uQXZhaWxhYmxlIiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwiaXNOYXZpZ2FibGUiLCJwcmVzcyIsImZuIiwiU2VtYW50aWNPYmplY3QiLCJBY3Rpb24iLCJjdXN0b21EYXRhIiwic2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJnZXRIaWRkZW5IZWFkZXJBY3Rpb25zIiwiaGlkZGVuQWN0aW9ucyIsIkRlZmF1bHQiLCJnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyIsImVudGl0eVNldERyYWZ0Um9vdCIsInRlcm0iLCJjb25kaXRpb25TYXZlIiwiU2F2ZUFjdGlvbiIsImNvbmRpdGlvbkFwcGx5IiwiY29uZGl0aW9uQ2FuY2VsIiwiRGlzY2FyZEFjdGlvbiIsImZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnMiLCJmb290ZXJBY3Rpb25zIiwiZW50aXR5VHlwZU5hbWUiLCJEZWZhdWx0QXBwbHkiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkVuZCIsIkRhdGFGaWVsZEZvckFjdGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSGVhZGVyQW5kRm9vdGVyQWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uLCBFbnRpdHlTZXQsIEVudGl0eVR5cGUsIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBDb21tb25Bbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHR5cGUgeyBEYXRhRmllbGRGb3JBY3Rpb25UeXBlcywgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQW5ub3RhdGlvbkFjdGlvbiwgQmFzZUFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7XG5cdEJ1dHRvblR5cGUsXG5cdGRhdGFGaWVsZElzQ29weUFjdGlvbixcblx0Z2V0Q29weUFjdGlvbixcblx0Z2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24sXG5cdGdldFNlbWFudGljT2JqZWN0TWFwcGluZ1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgS2V5SGVscGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9LZXlcIjtcbmltcG9ydCB7XG5cdGFuZCxcblx0QmluZGluZ1Rvb2xraXRFeHByZXNzaW9uLFxuXHRDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Y29tcGlsZUV4cHJlc3Npb24sXG5cdGNvbnN0YW50LFxuXHRlcXVhbCxcblx0Zm4sXG5cdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbixcblx0aWZFbHNlLFxuXHRub3QsXG5cdHBhdGhJbk1vZGVsXG59IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB7IGlzUGF0aERlbGV0YWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBEcmFmdCwgc2luZ2xldG9uUGF0aFZpc2l0b3IsIFVJIH0gZnJvbSBcIi4uL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gXCIuLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbi8qKlxuICogUmV0cmlldmVzIGFsbCB0aGUgZGF0YSBmaWVsZCBmb3IgYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb25cbiAqIFRoZXkgbXVzdCBiZVxuICogLSBOb3Qgc3RhdGljYWxseSBoaWRkZW5cbiAqIC0gRWl0aGVyIGxpbmtlZCB0byBhbiBVbmJvdW5kIGFjdGlvbiBvciB0byBhbiBhY3Rpb24gd2hpY2ggaGFzIGFuIE9wZXJhdGlvbkF2YWlsYWJsZSB0aGF0IGlzIG5vdCBzZXQgdG8gZmFsc2Ugc3RhdGljYWxseS5cbiAqXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgY3VycmVudCBlbnRpdHkgdHlwZVxuICogQHBhcmFtIGlzRGV0ZXJtaW5pbmdBY3Rpb24gVGhlIGZsYWcgd2hpY2ggZGVub3RlcyB3aGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIGlzIGEgZGV0ZXJtaW5pbmcgYWN0aW9uXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBEYXRhRmllbGQgZm9yIGFjdGlvbiByZXNwZWN0aW5nIHRoZSBpbnB1dCBwYXJhbWV0ZXIgJ2lzRGV0ZXJtaW5pbmdBY3Rpb24nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgaXNEZXRlcm1pbmluZ0FjdGlvbjogYm9vbGVhbik6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzW10ge1xuXHRyZXR1cm4gKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbj8uZmlsdGVyKChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZCkgPT4ge1xuXHRcdHJldHVybiBpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpICE9PSB0cnVlICYmXG5cdFx0XHRpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uICYmXG5cdFx0XHRCb29sZWFuKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkLkRldGVybWluaW5nPy52YWx1ZU9mKCkpID09PSBpc0RldGVybWluaW5nQWN0aW9uICYmXG5cdFx0XHQoaWRlbnRpZmljYXRpb25EYXRhRmllbGQuQWN0aW9uVGFyZ2V0Py5pc0JvdW5kPy52YWx1ZU9mKCkgIT09IHRydWUgfHxcblx0XHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQ/LkFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnM/LkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZT8udmFsdWVPZigpICE9PSBmYWxzZSlcblx0XHRcdD8gdHJ1ZVxuXHRcdFx0OiBmYWxzZTtcblx0fSkgfHwgW10pIGFzIERhdGFGaWVsZEZvckFjdGlvblR5cGVzW107XG59XG5cbi8qKlxuICogUmV0cmlldmUgYWxsIHRoZSBJQk4gYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb24uXG4gKiBUaGV5IG11c3QgYmVcbiAqIC0gTm90IHN0YXRpY2FsbHkgaGlkZGVuLlxuICpcbiAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBjdXJyZW50IGVudGl0eXR5cGVcbiAqIEBwYXJhbSBpc0RldGVybWluaW5nQWN0aW9uIFdoZXRoZXIgb3Igbm90IHRoZSBhY3Rpb24gc2hvdWxkIGJlIGRldGVybWluaW5nXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkYXRhIGZpZWxkIGZvciBhY3Rpb24gcmVzcGVjdGluZyB0aGUgaXNEZXRlcm1pbmluZ0FjdGlvbiBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRpc0RldGVybWluaW5nQWN0aW9uOiBib29sZWFuXG4pOiBEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25UeXBlc1tdIHtcblx0cmV0dXJuIChlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSWRlbnRpZmljYXRpb24/LmZpbHRlcigoaWRlbnRpZmljYXRpb25EYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gaWRlbnRpZmljYXRpb25EYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSAhPT0gdHJ1ZSAmJlxuXHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiAmJlxuXHRcdFx0Qm9vbGVhbihpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5EZXRlcm1pbmluZz8udmFsdWVPZigpKSA9PT0gaXNEZXRlcm1pbmluZ0FjdGlvblxuXHRcdFx0PyB0cnVlXG5cdFx0XHQ6IGZhbHNlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXNbXTtcbn1cblxuZXhwb3J0IGNvbnN0IElNUE9SVEFOVF9DUklUSUNBTElUSUVTID0gW1xuXHRcIlVJLkNyaXRpY2FsaXR5VHlwZS9WZXJ5UG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvVmVyeU5lZ2F0aXZlXCJcbl07XG5cbi8qKlxuICogTWV0aG9kIHRvIGRldGVybWluZSB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IGJpbmRpbmcgZm9yIHRoZSBEZWxldGUgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSBkZWxldGVIaWRkZW4gVGhlIHZhbHVlIG9mIHRoZSBVSS5EZWxldGVIaWRkZW4gYW5ub3RhdGlvbiBvbiB0aGUgZW50aXR5IHNldCAvIHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBEZWxldGUgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVsZXRlQnV0dG9uVmlzaWJpbGl0eShcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0ZGVsZXRlSGlkZGVuOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPiB8IHVuZGVmaW5lZFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLm1hcCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lKSxcblx0XHQvLyBTZXQgYWJzb2x1dGUgYmluZGluZyBwYXRoIGZvciBTaW5nbGV0b24gcmVmZXJlbmNlcywgb3RoZXJ3aXNlIHRoZSBjb25maWd1cmVkIGFubm90YXRpb24gcGF0aCBpdHNlbGYuXG5cdFx0Ly8gRm9yIGUuZy4gL2NvbS5zYXAubmFtZXNwYWNlLkVudGl0eUNvbnRhaW5lci9TaW5nbGV0b24vUHJvcGVydHkgdG8gL1NpbmdsZXRvbi9Qcm9wZXJ0eVxuXHRcdGRlbGV0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihcblx0XHRcdGRlbGV0ZUhpZGRlbixcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHQocGF0aDogc3RyaW5nKSA9PiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIFtdKVxuXHRcdCksXG5cdFx0bWFuaWZlc3RXcmFwcGVyID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKSxcblx0XHR2aWV3TGV2ZWwgPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Vmlld0xldmVsKCksXG5cdFx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlXG5cdFx0Ly8gSW4gT1AgXHRcdC0tPiAgd2hlbiBub3QgaW4gZWRpdCBtb2RlXG5cdFx0Ly8gSW4gc3ViLU9QIFx0LS0+ICB3aGVuIGluIGVkaXQgbW9kZVxuXHRcdGVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gdmlld0xldmVsID4gMSA/IFVJLklzRWRpdGFibGUgOiBub3QoVUkuSXNFZGl0YWJsZSk7XG5cblx0Ly8gSWYgVUkuRGVsZXRlSGlkZGVuIGFubm90YXRpb24gb24gZW50aXR5IHNldCBvciB0eXBlIGlzIGVpdGhlciBub3QgZGVmaW5lZCBvciBleHBsaWNpdGx5IHNldCB0byBmYWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGVkaXRhYmxlRXhwcmVzc2lvbi5cblx0Ly8gZWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGJvdGggYW5ub3RhdGlvbiBwYXRoIGFuZCBlZGl0YWJsZUV4cHJlc3Npb24uXG5cdHJldHVybiBpZkVsc2UoXG5cdFx0ZGVsZXRlSGlkZGVuID09PSB1bmRlZmluZWQgfHwgZGVsZXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0ZWRpdGFibGVFeHByZXNzaW9uLFxuXHRcdGFuZChlZGl0YWJsZUV4cHJlc3Npb24sIGVxdWFsKGRlbGV0ZUhpZGRlbkV4cHJlc3Npb24sIGZhbHNlKSlcblx0KTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIERlbGV0ZSBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGlzRGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZFxuICogQHBhcmFtIGlzUGFyZW50RGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZCBvbiB0aGUgcGFyZW50IGVudGl0eVxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIERlbGV0ZSBidXR0b25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZUJ1dHRvbkVuYWJsZWQoXG5cdGlzRGVsZXRhYmxlOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxCb29sZWFuPiB8IHVuZGVmaW5lZCxcblx0aXNQYXJlbnREZWxldGFibGU6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0RyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KGVudGl0eVNldCk7XG5cblx0bGV0IHJldCA9IGlmRWxzZShcblx0XHRpc1BhcmVudERlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLFxuXHRcdGlzUGFyZW50RGVsZXRhYmxlLFxuXHRcdGlmRWxzZShpc0RlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLCBlcXVhbChpc0RlbGV0YWJsZSwgdHJ1ZSksIGNvbnN0YW50KHRydWUpKVxuXHQpO1xuXG5cdC8vIGRlbGV0ZSBzaG91bGQgYmUgZGlzYWJsZWQgZm9yIExvY2tlZCBvYmplY3RzXG5cdHJldCA9IGlzRHJhZnRSb290ID8gYW5kKHJldCwgbm90KHBhdGhJbk1vZGVsKFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvSW5Qcm9jZXNzQnlVc2VyXCIpKSkgOiByZXQ7XG5cblx0cmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAndmlzaWJsZScgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIEVkaXQgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSByb290VXBkYXRlSGlkZGVuIFRoZSB2YWx1ZSBvZiB0aGUgVUkuVXBkYXRlSGlkZGVuIGFubm90YXRpb24gb24gdGhlIGVudGl0eSBzZXQgLyB0eXBlLlxuICogQHBhcmFtIHJvb3RDb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gdXBkYXRlSGlkZGVuXG4gKiBAcGFyYW0gdmlld0xldmVsXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBFZGl0IGJ1dHRvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVkaXRCdXR0b25WaXNpYmlsaXR5KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRyb290VXBkYXRlSGlkZGVuOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPiB8IHVuZGVmaW5lZCxcblx0cm9vdENvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHVwZGF0ZUhpZGRlbj86IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxuXHR2aWV3TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWRcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IHJvb3RFbnRpdHlTZXQgPSByb290Q29udmVydGVyQ29udGV4dD8uZ2V0RW50aXR5U2V0KCksXG5cdFx0ZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0ZDTEVuYWJsZWQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmlzRmNsRW5hYmxlZCgpO1xuXHRsZXQgaXNEcmFmdEVuYWJsZWQ7XG5cdGNvbnN0IHJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBnZXRIaWRkZW5FeHByZXNzaW9uKFxuXHRcdHJvb3RDb252ZXJ0ZXJDb250ZXh0LFxuXHRcdHJvb3RVcGRhdGVIaWRkZW5cblx0KTtcblx0aWYgKHZpZXdMZXZlbCAmJiB2aWV3TGV2ZWwgPiAxKSB7XG5cdFx0Ly8gaWYgdmlld2xldmVsID4gMSBjaGVjayBpZiBub2RlIGlzIGRyYWZ0IGVuYWJsZWRcblx0XHRpc0RyYWZ0RW5hYmxlZCA9IE1vZGVsSGVscGVyLmlzRHJhZnROb2RlKGVudGl0eVNldCk7XG5cdH0gZWxzZSB7XG5cdFx0aXNEcmFmdEVuYWJsZWQgPSBNb2RlbEhlbHBlci5pc0RyYWZ0Um9vdChyb290RW50aXR5U2V0KTtcblx0fVxuXHRjb25zdCB1cGRhdGVIaWRkZW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBnZXRIaWRkZW5FeHByZXNzaW9uKHJvb3RDb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGVIaWRkZW4pO1xuXG5cdGNvbnN0IG5vdEVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gbm90KFVJLklzRWRpdGFibGUpO1xuXG5cdC8vIElmIFVJLlVwZGF0ZUhpZGRlbiBhbm5vdGF0aW9uIG9uIGVudGl0eSBzZXQgb3IgdHlwZSBpcyBlaXRoZXIgbm90IGRlZmluZWQgb3IgZXhwbGljaXRseSBzZXQgdG8gZmFsc2UsXG5cdC8vIEVkaXQgYnV0dG9uIGlzIHZpc2libGUgaW4gZGlzcGxheSBtb2RlLlxuXHQvLyBlbHNlLFxuXHQvLyBFZGl0IGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGJvdGggYW5ub3RhdGlvbiBwYXRoIGFuZCBpbiBkaXNwbGF5IG1vZGUuXG5cdGNvbnN0IHJlc3VsdGFudEV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiA9IGlmRWxzZShcblx0XHQodmlld0xldmVsIGFzIG51bWJlcikgPiAxLFxuXHRcdGlmRWxzZShcblx0XHRcdHVwZGF0ZUhpZGRlbiA9PT0gdW5kZWZpbmVkIHx8IHVwZGF0ZUhpZGRlbi52YWx1ZU9mKCkgPT09IGZhbHNlLFxuXHRcdFx0YW5kKFxuXHRcdFx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0XHRcdGVxdWFsKHBhdGhJbk1vZGVsKFwicm9vdEVkaXRWaXNpYmxlXCIsIFwiaW50ZXJuYWxcIiksIHRydWUpLFxuXHRcdFx0XHRpZkVsc2UoaXNGQ0xFbmFibGVkLCBlcXVhbChwYXRoSW5Nb2RlbChcIi9zaG93RWRpdEJ1dHRvblwiLCBcImZjbGhlbHBlclwiKSwgdHJ1ZSksIHRydWUpXG5cdFx0XHQpLFxuXHRcdFx0YW5kKFxuXHRcdFx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0XHRcdGVxdWFsKHVwZGF0ZUhpZGRlbkV4cHJlc3Npb24sIGZhbHNlKSxcblx0XHRcdFx0ZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdFZpc2libGVcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSksXG5cdFx0XHRcdGlmRWxzZShpc0ZDTEVuYWJsZWQsIGVxdWFsKHBhdGhJbk1vZGVsKFwiL3Nob3dFZGl0QnV0dG9uXCIsIFwiZmNsaGVscGVyXCIpLCB0cnVlKSwgdHJ1ZSlcblx0XHRcdClcblx0XHQpLFxuXHRcdGlmRWxzZShcblx0XHRcdHJvb3RVcGRhdGVIaWRkZW4gPT09IHVuZGVmaW5lZCB8fCByb290VXBkYXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0XHRhbmQobm90RWRpdGFibGVFeHByZXNzaW9uLCBlcXVhbChyb290VXBkYXRlSGlkZGVuRXhwcmVzc2lvbiwgZmFsc2UpKVxuXHRcdClcblx0KTtcblx0cmV0dXJuIGlmRWxzZShpc0RyYWZ0RW5hYmxlZCwgYW5kKHJlc3VsdGFudEV4cHJlc3Npb24sIERyYWZ0Lkhhc05vRHJhZnRGb3JDdXJyZW50VXNlciksIHJlc3VsdGFudEV4cHJlc3Npb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlkZGVuRXhwcmVzc2lvbihjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGVIaWRkZW46IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkKSB7XG5cdGNvbnN0IGRhdGFNb2RlbE9iamVjdFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHR2aXNpdGVkTmF2aWdhdGlvblBhdGhzID0gZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5tYXAoKG5hdlByb3ApID0+IG5hdlByb3AubmFtZSksXG5cdFx0Ly8gU2V0IGFic29sdXRlIGJpbmRpbmcgcGF0aCBmb3IgU2luZ2xldG9uIHJlZmVyZW5jZXMsIG90aGVyd2lzZSB0aGUgY29uZmlndXJlZCBhbm5vdGF0aW9uIHBhdGggaXRzZWxmLlxuXHRcdC8vIEZvciBlLmcuIC9jb20uc2FwLm5hbWVzcGFjZS5FbnRpdHlDb250YWluZXIvU2luZ2xldG9uL1Byb3BlcnR5IHRvIC9TaW5nbGV0b24vUHJvcGVydHlcblx0XHR1cGRhdGVIaWRkZW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oXG5cdFx0XHR1cGRhdGVIaWRkZW4sXG5cdFx0XHR2aXNpdGVkTmF2aWdhdGlvblBhdGhzLFxuXHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0KHBhdGg6IHN0cmluZykgPT4gc2luZ2xldG9uUGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZWRUeXBlcygpLCB2aXNpdGVkTmF2aWdhdGlvblBhdGhzKVxuXHRcdCk7XG5cdHJldHVybiB1cGRhdGVIaWRkZW5FeHByZXNzaW9uO1xufVxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIEVkaXQgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSB1cGRhdGVSZXN0cmljdGlvbnNcbiAqIEBwYXJhbSB2aWV3TGV2ZWxcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIEVkaXQgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRpdEJ1dHRvbkVuYWJsZWQoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHVwZGF0ZVJlc3RyaWN0aW9ucz86IGFueSxcblx0dmlld0xldmVsPzogbnVtYmVyIHwgdW5kZWZpbmVkXG4pOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCksXG5cdFx0aXNEcmFmdFJvb3QgPSBNb2RlbEhlbHBlci5pc0RyYWZ0Um9vdChlbnRpdHlTZXQpLFxuXHRcdGlzU3RpY2t5ID0gTW9kZWxIZWxwZXIuaXNTdGlja3koZW50aXR5U2V0KTtcblx0bGV0IGVkaXRBY3Rpb25OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGlmIChpc0RyYWZ0Um9vdCAmJiAhTW9kZWxIZWxwZXIuaXNTaW5nbGV0b24oZW50aXR5U2V0KSkge1xuXHRcdGVkaXRBY3Rpb25OYW1lID0gKGVudGl0eVNldCBhcyBFbnRpdHlTZXQpPy5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH0gZWxzZSBpZiAoaXNTdGlja3kgJiYgIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGVudGl0eVNldCkpIHtcblx0XHRlZGl0QWN0aW9uTmFtZSA9IChlbnRpdHlTZXQgYXMgRW50aXR5U2V0KT8uYW5ub3RhdGlvbnMuU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH1cblx0aWYgKGVkaXRBY3Rpb25OYW1lKSB7XG5cdFx0Y29uc3QgZWRpdEFjdGlvbkFubm90YXRpb25QYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKGVkaXRBY3Rpb25OYW1lKTtcblx0XHRjb25zdCBlZGl0QWN0aW9uID0gY29udmVydGVyQ29udGV4dC5yZXNvbHZlQWJzb2x1dGVQYXRoKGVkaXRBY3Rpb25Bbm5vdGF0aW9uUGF0aCkudGFyZ2V0IGFzIEFjdGlvbiB8IG51bGw7XG5cdFx0aWYgKGVkaXRBY3Rpb24/LmFubm90YXRpb25zPy5Db3JlPy5PcGVyYXRpb25BdmFpbGFibGUgPT09IG51bGwpIHtcblx0XHRcdC8vIFdlIGRpc2FibGVkIGFjdGlvbiBhZHZlcnRpc2VtZW50IGJ1dCBrZXB0IGl0IGluIHRoZSBjb2RlIGZvciB0aGUgdGltZSBiZWluZ1xuXHRcdFx0Ly9yZXR1cm4gXCJ7PSAkeyNcIiArIGVkaXRBY3Rpb25OYW1lICsgXCJ9ID8gdHJ1ZSA6IGZhbHNlIH1cIjtcblx0XHR9IGVsc2UgaWYgKCh2aWV3TGV2ZWwgYXMgbnVtYmVyKSA+IDEpIHtcblx0XHRcdC8vIEVkaXQgYnV0dG9uIGlzIGVuYWJsZWQgYmFzZWQgb24gdGhlIHVwZGF0ZSByZXN0cmljdGlvbnMgb2YgdGhlIHN1Yi1PUFxuXHRcdFx0aWYgKHVwZGF0ZVJlc3RyaWN0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRhbmQoXG5cdFx0XHRcdFx0XHRlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24odXBkYXRlUmVzdHJpY3Rpb25zKSwgdHJ1ZSksXG5cdFx0XHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcInJvb3RFZGl0RW5hYmxlZFwiLCBcImludGVybmFsXCIpLCB0cnVlKVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihlcXVhbChwYXRoSW5Nb2RlbChcInJvb3RFZGl0RW5hYmxlZFwiLCBcImludGVybmFsXCIpLCB0cnVlKSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbihjb252ZXJ0ZXJDb250ZXh0LCBlZGl0QWN0aW9uID8/IHVuZGVmaW5lZCk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBcInRydWVcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhlYWRlckRlZmF1bHRBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBzQ29udGV4dFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKCk7XG5cdGNvbnN0IHJvb3RFbnRpdHlTZXRQYXRoID0gTW9kZWxIZWxwZXIuZ2V0Um9vdEVudGl0eVNldFBhdGgoc0NvbnRleHRQYXRoKTtcblx0Y29uc3Qgcm9vdENvbnZlcnRlckNvbnRleHQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlckNvbnRleHRGb3IoXCIvXCIgKyByb290RW50aXR5U2V0UGF0aCk7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCksXG5cdFx0ZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLFxuXHRcdHJvb3RFbnRpdHlTZXQgPSByb290Q29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRyb290RW50aXR5VHlwZSA9IHJvb3RDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSxcblx0XHRzdGlja3lTZXNzaW9uU3VwcG9ydGVkID0gTW9kZWxIZWxwZXIuZ2V0U3RpY2t5U2Vzc2lvbihyb290RW50aXR5U2V0KSwgLy9mb3Igc3RpY2t5IGFwcFxuXHRcdGRyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmdldERyYWZ0Um9vdChyb290RW50aXR5U2V0KSwgLy9lbnRpdHlTZXQgJiYgZW50aXR5U2V0LmFubm90YXRpb25zLkNvbW1vbj8uRHJhZnRSb290LFxuXHRcdGRyYWZ0Tm9kZSA9IE1vZGVsSGVscGVyLmdldERyYWZ0Tm9kZShyb290RW50aXR5U2V0KSxcblx0XHRlbnRpdHlEZWxldGVSZXN0cmljdGlvbnMgPSBlbnRpdHlTZXQgJiYgZW50aXR5U2V0LmFubm90YXRpb25zPy5DYXBhYmlsaXRpZXM/LkRlbGV0ZVJlc3RyaWN0aW9ucyxcblx0XHRyb290VXBkYXRlSGlkZGVuID0gTW9kZWxIZWxwZXIuaXNVcGRhdGVIaWRkZW4ocm9vdEVudGl0eVNldCwgcm9vdEVudGl0eVR5cGUpLFxuXHRcdHVwZGF0ZUhpZGRlbiA9IHJvb3RFbnRpdHlTZXQgJiYgIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKHJvb3RFbnRpdHlTZXQpICYmIHJvb3RVcGRhdGVIaWRkZW4/LnZhbHVlT2YoKSxcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksXG5cdFx0aXNQYXJlbnREZWxldGFibGUgPSBpc1BhdGhEZWxldGFibGUoZGF0YU1vZGVsT2JqZWN0UGF0aCwge1xuXHRcdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcsIG5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pID0+XG5cdFx0XHRcdHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgbmF2aWdhdGlvblBhdGhzKVxuXHRcdH0pLFxuXHRcdHBhcmVudEVudGl0eVNldERlbGV0YWJsZSA9IGlzUGFyZW50RGVsZXRhYmxlID8gY29tcGlsZUV4cHJlc3Npb24oaXNQYXJlbnREZWxldGFibGUpIDogaXNQYXJlbnREZWxldGFibGUsXG5cdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMgPSBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGZhbHNlKTtcblxuXHRjb25zdCBjb3B5RGF0YUZpZWxkID1cblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldFZpZXdMZXZlbCgpID09PSAxXG5cdFx0XHQ/IGdldENvcHlBY3Rpb24oXG5cdFx0XHRcdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBkYXRhRmllbGRJc0NvcHlBY3Rpb24oZGF0YUZpZWxkKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0ICApXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblxuXHRjb25zdCBoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zID0gaWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gIWRhdGFGaWVsZElzQ29weUFjdGlvbihkYXRhRmllbGQpO1xuXHR9KTtcblxuXHQvLyBJbml0aWFsaXplIGFjdGlvbnMgYW5kIHN0YXJ0IHdpdGggZHJhZnQgYWN0aW9ucyBpZiBhdmFpbGFibGUgc2luY2UgdGhleSBzaG91bGQgYXBwZWFyIGluIHRoZSBmaXJzdFxuXHQvLyBsZWZ0bW9zdCBwb3NpdGlvbiBpbiB0aGUgYWN0aW9ucyBhcmVhIG9mIHRoZSBPUCBoZWFkZXJcblx0Ly8gVGhpcyBpcyBtb3JlIGxpa2UgYSBwbGFjZWhvbGRlciB0aGFuIGEgc2luZ2xlIGFjdGlvbiwgc2luY2UgdGhpcyBjb250cm9scyBub3Qgb25seSB0aGUgdGVtcGxhdGluZyBvZlxuXHQvLyB0aGUgYnV0dG9uIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBkcmFmdCBhbmQgYWN0aXZlIGRvY3VtZW50IHZlcnNpb25zIGJ1dCBhbHNvIHRoZSBjb250cm9scyBmb3Jcblx0Ly8gdGhlIGNvbGxhYm9yYXRpdmUgZHJhZnQgZnJhZ21lbnQuXG5cdGNvbnN0IGhlYWRlckFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGVudGl0eVNldCkgJiYgZHJhZnRSb290Py5FZGl0QWN0aW9uICYmIHVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuRHJhZnRBY3Rpb25zLCBrZXk6IFwiRHJhZnRBY3Rpb25zXCIgfSk7XG5cdH1cblxuXHRjb25zdCB2aWV3TGV2ZWwgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldFZpZXdMZXZlbCgpO1xuXHRjb25zdCB1cGRhdGFibGVQcm9wZXJ0eVBhdGggPSB2aWV3TGV2ZWwgPiAxID8gZW50aXR5U2V0Py5hbm5vdGF0aW9ucy5DYXBhYmlsaXRpZXM/LlVwZGF0ZVJlc3RyaWN0aW9ucz8uVXBkYXRhYmxlIDogdW5kZWZpbmVkO1xuXHRpZiAoZHJhZnRSb290IHx8IGRyYWZ0Tm9kZSkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuQ29sbGFib3JhdGlvbkF2YXRhcnMsIGtleTogXCJDb2xsYWJvcmF0aW9uQXZhdGFyc1wiIH0pO1xuXHR9XG5cdC8vIFRoZW4gYWRkIHRoZSBcIkNyaXRpY2FsXCIgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPiAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGhlYWRlckFjdGlvbnMucHVzaChnZXREYXRhRmllbGRBbm5vdGF0aW9uQWN0aW9uKGRhdGFGaWVsZCwgY29udmVydGVyQ29udGV4dCkpO1xuXHRcdH0pO1xuXG5cdC8vIFRoZW4gdGhlIGVkaXQgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoKGRyYWZ0Um9vdD8uRWRpdEFjdGlvbiB8fCBzdGlja3lTZXNzaW9uU3VwcG9ydGVkPy5FZGl0QWN0aW9uKSAmJiB1cGRhdGVIaWRkZW4gIT09IHRydWUpIHtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5QcmltYXJ5LFxuXHRcdFx0a2V5OiBcIkVkaXRBY3Rpb25cIixcblx0XHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0XHRnZXRFZGl0QnV0dG9uVmlzaWJpbGl0eShcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdHJvb3RVcGRhdGVIaWRkZW4sXG5cdFx0XHRcdFx0cm9vdENvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0TW9kZWxIZWxwZXIuaXNVcGRhdGVIaWRkZW4oZW50aXR5U2V0LCBlbnRpdHlUeXBlKSxcblx0XHRcdFx0XHR2aWV3TGV2ZWxcblx0XHRcdFx0KVxuXHRcdFx0KSxcblx0XHRcdGVuYWJsZWQ6IGdldEVkaXRCdXR0b25FbmFibGVkKHJvb3RDb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGFibGVQcm9wZXJ0eVBhdGgsIHZpZXdMZXZlbClcblx0XHR9KTtcblx0fVxuXHQvLyBUaGVuIHRoZSBkZWxldGUgYWN0aW9uIGlmIHdlJ3JlIG5vdCBzdGF0aWNhbGx5IG5vdCBkZWxldGFibGVcblx0aWYgKFxuXHRcdChwYXJlbnRFbnRpdHlTZXREZWxldGFibGUgJiYgcGFyZW50RW50aXR5U2V0RGVsZXRhYmxlICE9PSBcImZhbHNlXCIpIHx8XG5cdFx0KGVudGl0eURlbGV0ZVJlc3RyaWN0aW9ucz8uRGVsZXRhYmxlPy52YWx1ZU9mKCkgIT09IGZhbHNlICYmIHBhcmVudEVudGl0eVNldERlbGV0YWJsZSAhPT0gXCJmYWxzZVwiKVxuXHQpIHtcblx0XHRjb25zdCBkZWxldGVIaWRkZW4gPSBNb2RlbEhlbHBlci5nZXREZWxldGVIaWRkZW4oZW50aXR5U2V0LCBlbnRpdHlUeXBlKSBhcyBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPjtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5TZWNvbmRhcnksXG5cdFx0XHRrZXk6IFwiRGVsZXRlQWN0aW9uXCIsXG5cdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihnZXREZWxldGVCdXR0b25WaXNpYmlsaXR5KGNvbnZlcnRlckNvbnRleHQsIGRlbGV0ZUhpZGRlbikpLFxuXHRcdFx0ZW5hYmxlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0RGVsZXRlQnV0dG9uRW5hYmxlZChlbnRpdHlEZWxldGVSZXN0cmljdGlvbnM/LkRlbGV0YWJsZSwgaXNQYXJlbnREZWxldGFibGUsIGNvbnZlcnRlckNvbnRleHQpKSxcblx0XHRcdHBhcmVudEVudGl0eURlbGV0ZUVuYWJsZWQ6IHBhcmVudEVudGl0eVNldERlbGV0YWJsZVxuXHRcdH0pO1xuXHR9XG5cblx0aWYgKGNvcHlEYXRhRmllbGQpIHtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0Li4uZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihjb3B5RGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuQ29weSxcblx0XHRcdHRleHQ6IGNvcHlEYXRhRmllbGQuTGFiZWw/LnRvU3RyaW5nKCkgPz8gQ29yZS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUuY29yZVwiKS5nZXRUZXh0KFwiQ19DT01NT05fQ09QWVwiKVxuXHRcdH0pO1xuXHR9XG5cblx0Y29uc3QgaGVhZGVyRGF0YUZpZWxkRm9ySUJOQWN0aW9ucyA9IGdldElkZW50aWZpY2F0aW9uRGF0YUZpZWxkRm9ySUJOQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgZmFsc2UpO1xuXG5cdGhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA9PT0gLTE7XG5cdFx0fSlcblx0XHQuZm9yRWFjaCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRpZiAoZGF0YUZpZWxkLlJlcXVpcmVzQ29udGV4dD8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihgUmVxdWlyZXNDb250ZXh0IHByb3BlcnR5IHNob3VsZCBub3QgYmUgdHJ1ZSBmb3IgaGVhZGVyIElCTiBhY3Rpb24gOiAke2RhdGFGaWVsZC5MYWJlbH1gKTtcblx0XHRcdH1cblx0XHRcdGlmIChkYXRhRmllbGQuSW5saW5lPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbmxpbmUgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSB0cnVlIGZvciBoZWFkZXIgSUJOIGFjdGlvbiA6ICR7ZGF0YUZpZWxkLkxhYmVsfWApO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgb05hdmlnYXRpb25QYXJhbXMgPSB7XG5cdFx0XHRcdHNlbWFudGljT2JqZWN0TWFwcGluZzogZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nKGRhdGFGaWVsZC5NYXBwaW5nKVxuXHRcdFx0fTtcblxuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24sXG5cdFx0XHRcdHRleHQ6IGRhdGFGaWVsZC5MYWJlbD8udG9TdHJpbmcoKSxcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0YnV0dG9uVHlwZTogQnV0dG9uVHlwZS5HaG9zdCxcblx0XHRcdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0YW5kKFxuXHRcdFx0XHRcdFx0bm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSksXG5cdFx0XHRcdFx0XHRub3QoZXF1YWwocGF0aEluTW9kZWwoXCJzaGVsbE5hdmlnYXRpb25Ob3RBdmFpbGFibGVcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSkpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRlbmFibGVkOlxuXHRcdFx0XHRcdGRhdGFGaWVsZC5OYXZpZ2F0aW9uQXZhaWxhYmxlICE9PSB1bmRlZmluZWRcblx0XHRcdFx0XHRcdD8gY29tcGlsZUV4cHJlc3Npb24oZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5OYXZpZ2F0aW9uQXZhaWxhYmxlPy52YWx1ZU9mKCkpLCB0cnVlKSlcblx0XHRcdFx0XHRcdDogdHJ1ZSxcblx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZCksXG5cdFx0XHRcdGlzTmF2aWdhYmxlOiB0cnVlLFxuXHRcdFx0XHRwcmVzczogY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0Zm4oXCIuX2ludGVudEJhc2VkTmF2aWdhdGlvbi5uYXZpZ2F0ZVwiLCBbXG5cdFx0XHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLlNlbWFudGljT2JqZWN0KSxcblx0XHRcdFx0XHRcdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuQWN0aW9uKSxcblx0XHRcdFx0XHRcdG9OYXZpZ2F0aW9uUGFyYW1zXG5cdFx0XHRcdFx0XSlcblx0XHRcdFx0KSxcblx0XHRcdFx0Y3VzdG9tRGF0YTogY29tcGlsZUV4cHJlc3Npb24oe1xuXHRcdFx0XHRcdHNlbWFudGljT2JqZWN0OiBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLlNlbWFudGljT2JqZWN0KSxcblx0XHRcdFx0XHRhY3Rpb246IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuQWN0aW9uKVxuXHRcdFx0XHR9KVxuXHRcdFx0fSBhcyBBbm5vdGF0aW9uQWN0aW9uKTtcblx0XHR9KTtcblx0Ly8gRmluYWxseSB0aGUgbm9uIGNyaXRpY2FsIERhdGFGaWVsZEZvckFjdGlvbnNcblx0aGVhZGVyRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRcdC5maWx0ZXIoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIElNUE9SVEFOVF9DUklUSUNBTElUSUVTLmluZGV4T2YoZGF0YUZpZWxkPy5Dcml0aWNhbGl0eSBhcyBzdHJpbmcpID09PSAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGhlYWRlckFjdGlvbnMucHVzaChnZXREYXRhRmllbGRBbm5vdGF0aW9uQWN0aW9uKGRhdGFGaWVsZCwgY29udmVydGVyQ29udGV4dCkpO1xuXHRcdH0pO1xuXG5cdHJldHVybiBoZWFkZXJBY3Rpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlkZGVuSGVhZGVyQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRjb25zdCBoaWRkZW5BY3Rpb25zID0gKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbj8uZmlsdGVyKChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZCkgPT4ge1xuXHRcdHJldHVybiBpZGVudGlmaWNhdGlvbkRhdGFGaWVsZD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZTtcblx0fSkgfHwgW10pIGFzIERhdGFGaWVsZEZvckFjdGlvblR5cGVzW107XG5cdHJldHVybiBoaWRkZW5BY3Rpb25zLm1hcCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdCxcblx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpXG5cdFx0fTtcblx0fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyh2aWV3TGV2ZWw6IG51bWJlciwgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEJhc2VBY3Rpb25bXSB7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk7XG5cdGNvbnN0IGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0Y29uc3Qgc3RpY2t5U2Vzc2lvblN1cHBvcnRlZCA9IE1vZGVsSGVscGVyLmdldFN0aWNreVNlc3Npb24oZW50aXR5U2V0KSwgLy9mb3Igc3RpY2t5IGFwcFxuXHRcdGVudGl0eVNldERyYWZ0Um9vdCA9XG5cdFx0XHQhTW9kZWxIZWxwZXIuaXNTaW5nbGV0b24oZW50aXR5U2V0KSAmJlxuXHRcdFx0ZW50aXR5U2V0ICYmXG5cdFx0XHQoZW50aXR5U2V0LmFubm90YXRpb25zLkNvbW1vbj8uRHJhZnRSb290Py50ZXJtIHx8IGVudGl0eVNldC5hbm5vdGF0aW9ucz8uU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8udGVybSksXG5cdFx0Y29uZGl0aW9uU2F2ZSA9IEJvb2xlYW4oXG5cdFx0XHRlbnRpdHlTZXREcmFmdFJvb3QgPT09IENvbW1vbkFubm90YXRpb25UZXJtcy5EcmFmdFJvb3QgfHwgKHN0aWNreVNlc3Npb25TdXBwb3J0ZWQgJiYgc3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8uU2F2ZUFjdGlvbilcblx0XHQpLFxuXHRcdGNvbmRpdGlvbkFwcGx5ID0gdmlld0xldmVsID4gMSxcblx0XHRjb25kaXRpb25DYW5jZWwgPSBCb29sZWFuKFxuXHRcdFx0ZW50aXR5U2V0RHJhZnRSb290ID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuRHJhZnRSb290IHx8IChzdGlja3lTZXNzaW9uU3VwcG9ydGVkICYmIHN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkRpc2NhcmRBY3Rpb24pXG5cdFx0KTtcblxuXHQvLyBSZXRyaWV2ZSBhbGwgZGV0ZXJtaW5pbmcgYWN0aW9uc1xuXHRjb25zdCBmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zID0gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCB0cnVlKTtcblxuXHQvLyBGaXJzdCBhZGQgdGhlIFwiQ3JpdGljYWxcIiBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGNvbnN0IGZvb3RlckFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IGZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA+IC0xO1xuXHRcdH0pXG5cdFx0Lm1hcCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihkYXRhRmllbGQsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdH0pO1xuXG5cdC8vIFRoZW4gdGhlIHNhdmUgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoZW50aXR5U2V0Py5lbnRpdHlUeXBlTmFtZSA9PT0gZW50aXR5VHlwZT8uZnVsbHlRdWFsaWZpZWROYW1lICYmIGNvbmRpdGlvblNhdmUpIHtcblx0XHRmb290ZXJBY3Rpb25zLnB1c2goeyB0eXBlOiBBY3Rpb25UeXBlLlByaW1hcnksIGtleTogXCJTYXZlQWN0aW9uXCIgfSk7XG5cdH1cblxuXHQvLyBUaGVuIHRoZSBhcHBseSBhY3Rpb24gaWYgaXQgZXhpc3RzXG5cdGlmIChjb25kaXRpb25BcHBseSkge1xuXHRcdGZvb3RlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdEFwcGx5LCBrZXk6IFwiQXBwbHlBY3Rpb25cIiB9KTtcblx0fVxuXG5cdC8vIFRoZW4gdGhlIG5vbiBjcml0aWNhbCBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA9PT0gLTE7XG5cdFx0fSlcblx0XHQuZm9yRWFjaCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRmb290ZXJBY3Rpb25zLnB1c2goZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihkYXRhRmllbGQsIGNvbnZlcnRlckNvbnRleHQpKTtcblx0XHR9KTtcblxuXHQvLyBUaGVuIHRoZSBjYW5jZWwgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoY29uZGl0aW9uQ2FuY2VsKSB7XG5cdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuU2Vjb25kYXJ5LFxuXHRcdFx0a2V5OiBcIkNhbmNlbEFjdGlvblwiLFxuXHRcdFx0cG9zaXRpb246IHsgcGxhY2VtZW50OiBQbGFjZW1lbnQuRW5kIH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9vdGVyQWN0aW9ucztcbn1cblxuZnVuY3Rpb24gZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihkYXRhRmllbGQ6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQW5ub3RhdGlvbkFjdGlvbiB7XG5cdHJldHVybiB7XG5cdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb24sXG5cdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihub3QoZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiksIHRydWUpKSksXG5cdFx0ZW5hYmxlZDogZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24oY29udmVydGVyQ29udGV4dCwgZGF0YUZpZWxkLkFjdGlvblRhcmdldCksXG5cdFx0aXNOYXZpZ2FibGU6IHRydWVcblx0fSBhcyBBbm5vdGF0aW9uQWN0aW9uO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNPLFNBQVNBLG9DQUFvQyxDQUFDQyxVQUFzQixFQUFFQyxtQkFBNEIsRUFBNkI7SUFBQTtJQUNySSxPQUFRLDBCQUFBRCxVQUFVLENBQUNFLFdBQVcsb0ZBQXRCLHNCQUF3QkMsRUFBRSxxRkFBMUIsdUJBQTRCQyxjQUFjLDJEQUExQyx1QkFBNENDLE1BQU0sQ0FBRUMsdUJBQXVCLElBQUs7TUFBQTtNQUN2RixPQUFPLDBCQUFBQSx1QkFBdUIsQ0FBQ0osV0FBVyxvRkFBbkMsc0JBQXFDQyxFQUFFLHFGQUF2Qyx1QkFBeUNJLE1BQU0sMkRBQS9DLHVCQUFpREMsT0FBTyxFQUFFLE1BQUssSUFBSSxJQUN6RUYsdUJBQXVCLENBQUNHLEtBQUssb0RBQXlDLElBQ3RFQyxPQUFPLDJCQUFDSix1QkFBdUIsQ0FBQ0ssV0FBVywyREFBbkMsdUJBQXFDSCxPQUFPLEVBQUUsQ0FBQyxLQUFLUCxtQkFBbUIsS0FDOUUsMkJBQUFLLHVCQUF1QixDQUFDTSxZQUFZLHFGQUFwQyx1QkFBc0NDLE9BQU8sMkRBQTdDLHVCQUErQ0wsT0FBTyxFQUFFLE1BQUssSUFBSSxJQUNqRSxDQUFBRix1QkFBdUIsYUFBdkJBLHVCQUF1QixpREFBdkJBLHVCQUF1QixDQUFFTSxZQUFZLHFGQUFyQyx1QkFBdUNWLFdBQVcscUZBQWxELHVCQUFvRFksSUFBSSxzRkFBeEQsdUJBQTBEQyxrQkFBa0IsNERBQTVFLHdCQUE4RVAsT0FBTyxFQUFFLE1BQUssS0FBSyxDQUFDLEdB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
408
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMiLCJlbnRpdHlUeXBlIiwiaXNEZXRlcm1pbmluZ0FjdGlvbiIsImFubm90YXRpb25zIiwiVUkiLCJJZGVudGlmaWNhdGlvbiIsImZpbHRlciIsImlkZW50aWZpY2F0aW9uRGF0YUZpZWxkIiwiSGlkZGVuIiwidmFsdWVPZiIsIiRUeXBlIiwiQm9vbGVhbiIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsIkNvcmUiLCJPcGVyYXRpb25BdmFpbGFibGUiLCJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJJTVBPUlRBTlRfQ1JJVElDQUxJVElFUyIsImdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkiLCJjb252ZXJ0ZXJDb250ZXh0IiwiZGVsZXRlSGlkZGVuIiwiZGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJ2aXNpdGVkTmF2aWdhdGlvblBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJtYXAiLCJuYXZQcm9wIiwibmFtZSIsImRlbGV0ZUhpZGRlbkV4cHJlc3Npb24iLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJ1bmRlZmluZWQiLCJwYXRoIiwic2luZ2xldG9uUGF0aFZpc2l0b3IiLCJnZXRDb252ZXJ0ZWRUeXBlcyIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsInZpZXdMZXZlbCIsImdldFZpZXdMZXZlbCIsImVkaXRhYmxlRXhwcmVzc2lvbiIsIklzRWRpdGFibGUiLCJub3QiLCJpZkVsc2UiLCJhbmQiLCJlcXVhbCIsImdldERlbGV0ZUJ1dHRvbkVuYWJsZWQiLCJpc0RlbGV0YWJsZSIsImlzUGFyZW50RGVsZXRhYmxlIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiaXNEcmFmdFJvb3QiLCJNb2RlbEhlbHBlciIsInJldCIsImNvbnN0YW50IiwicGF0aEluTW9kZWwiLCJnZXRFZGl0QnV0dG9uVmlzaWJpbGl0eSIsInJvb3RVcGRhdGVIaWRkZW4iLCJyb290Q29udmVydGVyQ29udGV4dCIsInVwZGF0ZUhpZGRlbiIsInJvb3RFbnRpdHlTZXQiLCJpc0ZDTEVuYWJsZWQiLCJpc0ZjbEVuYWJsZWQiLCJpc0RyYWZ0RW5hYmxlZCIsInJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uIiwiZ2V0SGlkZGVuRXhwcmVzc2lvbiIsImlzRHJhZnROb2RlIiwidXBkYXRlSGlkZGVuRXhwcmVzc2lvbiIsIm5vdEVkaXRhYmxlRXhwcmVzc2lvbiIsInJlc3VsdGFudEV4cHJlc3Npb24iLCJEcmFmdCIsIkhhc05vRHJhZnRGb3JDdXJyZW50VXNlciIsImdldEVkaXRCdXR0b25FbmFibGVkIiwidXBkYXRlUmVzdHJpY3Rpb25zIiwiaXNTdGlja3kiLCJlZGl0QWN0aW9uTmFtZSIsImlzRW50aXR5U2V0IiwiQ29tbW9uIiwiRHJhZnRSb290IiwiRWRpdEFjdGlvbiIsIlNlc3Npb24iLCJTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZWRpdEFjdGlvbkFubm90YXRpb25QYXRoIiwiZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aCIsImVkaXRBY3Rpb24iLCJyZXNvbHZlQWJzb2x1dGVQYXRoIiwidGFyZ2V0IiwiY29tcGlsZUV4cHJlc3Npb24iLCJnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbiIsImdldEhlYWRlckRlZmF1bHRBY3Rpb25zIiwic0NvbnRleHRQYXRoIiwiZ2V0Q29udGV4dFBhdGgiLCJyb290RW50aXR5U2V0UGF0aCIsImdldFJvb3RFbnRpdHlTZXRQYXRoIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImdldEVudGl0eVR5cGUiLCJyb290RW50aXR5VHlwZSIsInN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRTdGlja3lTZXNzaW9uIiwiZHJhZnRSb290IiwiZ2V0RHJhZnRSb290IiwiZHJhZnROb2RlIiwiZ2V0RHJhZnROb2RlIiwiZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zIiwiQ2FwYWJpbGl0aWVzIiwiRGVsZXRlUmVzdHJpY3Rpb25zIiwiaXNVcGRhdGVIaWRkZW4iLCJpc1BhdGhEZWxldGFibGUiLCJwYXRoVmlzaXRvciIsIm5hdmlnYXRpb25QYXRocyIsInBhcmVudEVudGl0eVNldERlbGV0YWJsZSIsImlkZW50aWZpY2F0aW9uRmllbGRGb3JBY3Rpb25zIiwiY29weURhdGFGaWVsZCIsImdldENvcHlBY3Rpb24iLCJkYXRhRmllbGQiLCJkYXRhRmllbGRJc0NvcHlBY3Rpb24iLCJoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zIiwiaGVhZGVyQWN0aW9ucyIsInB1c2giLCJ0eXBlIiwiQWN0aW9uVHlwZSIsIkRyYWZ0QWN0aW9ucyIsImtleSIsInVwZGF0YWJsZVByb3BlcnR5UGF0aCIsIlVwZGF0ZVJlc3RyaWN0aW9ucyIsIlVwZGF0YWJsZSIsIkNvbGxhYm9yYXRpb25BdmF0YXJzIiwiaW5kZXhPZiIsIkNyaXRpY2FsaXR5IiwiZm9yRWFjaCIsImdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24iLCJQcmltYXJ5IiwidmlzaWJsZSIsImVuYWJsZWQiLCJEZWxldGFibGUiLCJnZXREZWxldGVIaWRkZW4iLCJTZWNvbmRhcnkiLCJwYXJlbnRFbnRpdHlEZWxldGVFbmFibGVkIiwiQ29weSIsInRleHQiLCJMYWJlbCIsInRvU3RyaW5nIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiZ2V0VGV4dCIsImhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJSZXF1aXJlc0NvbnRleHQiLCJFcnJvciIsIklubGluZSIsIm9OYXZpZ2F0aW9uUGFyYW1zIiwic2VtYW50aWNPYmplY3RNYXBwaW5nIiwiZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nIiwiTWFwcGluZyIsIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImJ1dHRvblR5cGUiLCJCdXR0b25UeXBlIiwiR2hvc3QiLCJOYXZpZ2F0aW9uQXZhaWxhYmxlIiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwiaXNOYXZpZ2FibGUiLCJwcmVzcyIsImZuIiwiU2VtYW50aWNPYmplY3QiLCJBY3Rpb24iLCJjdXN0b21EYXRhIiwic2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJnZXRIaWRkZW5IZWFkZXJBY3Rpb25zIiwiaGlkZGVuQWN0aW9ucyIsIkRlZmF1bHQiLCJnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyIsImVudGl0eVNldERyYWZ0Um9vdCIsInRlcm0iLCJjb25kaXRpb25TYXZlIiwiU2F2ZUFjdGlvbiIsImNvbmRpdGlvbkFwcGx5IiwiY29uZGl0aW9uQ2FuY2VsIiwiRGlzY2FyZEFjdGlvbiIsImZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnMiLCJmb290ZXJBY3Rpb25zIiwiZW50aXR5VHlwZU5hbWUiLCJEZWZhdWx0QXBwbHkiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkVuZCIsIkRhdGFGaWVsZEZvckFjdGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSGVhZGVyQW5kRm9vdGVyQWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uLCBFbnRpdHlUeXBlLCBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgQ29tbW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXMsIERhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSB7IEFubm90YXRpb25BY3Rpb24sIEJhc2VBY3Rpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQge1xuXHRCdXR0b25UeXBlLFxuXHRkYXRhRmllbGRJc0NvcHlBY3Rpb24sXG5cdGdldENvcHlBY3Rpb24sXG5cdGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uLFxuXHRnZXRTZW1hbnRpY09iamVjdE1hcHBpbmdcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvS2V5XCI7XG5pbXBvcnQge1xuXHRhbmQsXG5cdEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Q29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sXG5cdGNvbXBpbGVFeHByZXNzaW9uLFxuXHRjb25zdGFudCxcblx0ZXF1YWwsXG5cdGZuLFxuXHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sXG5cdGlmRWxzZSxcblx0bm90LFxuXHRwYXRoSW5Nb2RlbFxufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBpc0VudGl0eVNldCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB7IGlzUGF0aERlbGV0YWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBEcmFmdCwgc2luZ2xldG9uUGF0aFZpc2l0b3IsIFVJIH0gZnJvbSBcIi4uL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gXCIuLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbi8qKlxuICogUmV0cmlldmVzIGFsbCB0aGUgZGF0YSBmaWVsZCBmb3IgYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb25cbiAqIFRoZXkgbXVzdCBiZVxuICogLSBOb3Qgc3RhdGljYWxseSBoaWRkZW5cbiAqIC0gRWl0aGVyIGxpbmtlZCB0byBhbiBVbmJvdW5kIGFjdGlvbiBvciB0byBhbiBhY3Rpb24gd2hpY2ggaGFzIGFuIE9wZXJhdGlvbkF2YWlsYWJsZSB0aGF0IGlzIG5vdCBzZXQgdG8gZmFsc2Ugc3RhdGljYWxseS5cbiAqXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgY3VycmVudCBlbnRpdHkgdHlwZVxuICogQHBhcmFtIGlzRGV0ZXJtaW5pbmdBY3Rpb24gVGhlIGZsYWcgd2hpY2ggZGVub3RlcyB3aGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIGlzIGEgZGV0ZXJtaW5pbmcgYWN0aW9uXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBEYXRhRmllbGQgZm9yIGFjdGlvbiByZXNwZWN0aW5nIHRoZSBpbnB1dCBwYXJhbWV0ZXIgJ2lzRGV0ZXJtaW5pbmdBY3Rpb24nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgaXNEZXRlcm1pbmluZ0FjdGlvbjogYm9vbGVhbik6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzW10ge1xuXHRyZXR1cm4gKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbj8uZmlsdGVyKChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZCkgPT4ge1xuXHRcdHJldHVybiBpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpICE9PSB0cnVlICYmXG5cdFx0XHRpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uICYmXG5cdFx0XHRCb29sZWFuKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkLkRldGVybWluaW5nPy52YWx1ZU9mKCkpID09PSBpc0RldGVybWluaW5nQWN0aW9uICYmXG5cdFx0XHQoaWRlbnRpZmljYXRpb25EYXRhRmllbGQuQWN0aW9uVGFyZ2V0Py5pc0JvdW5kPy52YWx1ZU9mKCkgIT09IHRydWUgfHxcblx0XHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQ/LkFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnM/LkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZT8udmFsdWVPZigpICE9PSBmYWxzZSlcblx0XHRcdD8gdHJ1ZVxuXHRcdFx0OiBmYWxzZTtcblx0fSkgfHwgW10pIGFzIERhdGFGaWVsZEZvckFjdGlvblR5cGVzW107XG59XG5cbi8qKlxuICogUmV0cmlldmUgYWxsIHRoZSBJQk4gYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb24uXG4gKiBUaGV5IG11c3QgYmVcbiAqIC0gTm90IHN0YXRpY2FsbHkgaGlkZGVuLlxuICpcbiAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBjdXJyZW50IGVudGl0eXR5cGVcbiAqIEBwYXJhbSBpc0RldGVybWluaW5nQWN0aW9uIFdoZXRoZXIgb3Igbm90IHRoZSBhY3Rpb24gc2hvdWxkIGJlIGRldGVybWluaW5nXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkYXRhIGZpZWxkIGZvciBhY3Rpb24gcmVzcGVjdGluZyB0aGUgaXNEZXRlcm1pbmluZ0FjdGlvbiBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRpc0RldGVybWluaW5nQWN0aW9uOiBib29sZWFuXG4pOiBEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25UeXBlc1tdIHtcblx0cmV0dXJuIChlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSWRlbnRpZmljYXRpb24/LmZpbHRlcigoaWRlbnRpZmljYXRpb25EYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gaWRlbnRpZmljYXRpb25EYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSAhPT0gdHJ1ZSAmJlxuXHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiAmJlxuXHRcdFx0Qm9vbGVhbihpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5EZXRlcm1pbmluZz8udmFsdWVPZigpKSA9PT0gaXNEZXRlcm1pbmluZ0FjdGlvblxuXHRcdFx0PyB0cnVlXG5cdFx0XHQ6IGZhbHNlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXNbXTtcbn1cblxuZXhwb3J0IGNvbnN0IElNUE9SVEFOVF9DUklUSUNBTElUSUVTID0gW1xuXHRcIlVJLkNyaXRpY2FsaXR5VHlwZS9WZXJ5UG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvVmVyeU5lZ2F0aXZlXCJcbl07XG5cbi8qKlxuICogTWV0aG9kIHRvIGRldGVybWluZSB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IGJpbmRpbmcgZm9yIHRoZSBEZWxldGUgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSBkZWxldGVIaWRkZW4gVGhlIHZhbHVlIG9mIHRoZSBVSS5EZWxldGVIaWRkZW4gYW5ub3RhdGlvbiBvbiB0aGUgZW50aXR5IHNldCAvIHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBEZWxldGUgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVsZXRlQnV0dG9uVmlzaWJpbGl0eShcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0ZGVsZXRlSGlkZGVuOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPiB8IHVuZGVmaW5lZFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLm1hcCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lKSxcblx0XHQvLyBTZXQgYWJzb2x1dGUgYmluZGluZyBwYXRoIGZvciBTaW5nbGV0b24gcmVmZXJlbmNlcywgb3RoZXJ3aXNlIHRoZSBjb25maWd1cmVkIGFubm90YXRpb24gcGF0aCBpdHNlbGYuXG5cdFx0Ly8gRm9yIGUuZy4gL2NvbS5zYXAubmFtZXNwYWNlLkVudGl0eUNvbnRhaW5lci9TaW5nbGV0b24vUHJvcGVydHkgdG8gL1NpbmdsZXRvbi9Qcm9wZXJ0eVxuXHRcdGRlbGV0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihcblx0XHRcdGRlbGV0ZUhpZGRlbixcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHQocGF0aDogc3RyaW5nKSA9PiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIFtdKVxuXHRcdCksXG5cdFx0bWFuaWZlc3RXcmFwcGVyID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKSxcblx0XHR2aWV3TGV2ZWwgPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Vmlld0xldmVsKCksXG5cdFx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlXG5cdFx0Ly8gSW4gT1AgXHRcdC0tPiAgd2hlbiBub3QgaW4gZWRpdCBtb2RlXG5cdFx0Ly8gSW4gc3ViLU9QIFx0LS0+ICB3aGVuIGluIGVkaXQgbW9kZVxuXHRcdGVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gdmlld0xldmVsID4gMSA/IFVJLklzRWRpdGFibGUgOiBub3QoVUkuSXNFZGl0YWJsZSk7XG5cblx0Ly8gSWYgVUkuRGVsZXRlSGlkZGVuIGFubm90YXRpb24gb24gZW50aXR5IHNldCBvciB0eXBlIGlzIGVpdGhlciBub3QgZGVmaW5lZCBvciBleHBsaWNpdGx5IHNldCB0byBmYWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGVkaXRhYmxlRXhwcmVzc2lvbi5cblx0Ly8gZWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGJvdGggYW5ub3RhdGlvbiBwYXRoIGFuZCBlZGl0YWJsZUV4cHJlc3Npb24uXG5cdHJldHVybiBpZkVsc2UoXG5cdFx0ZGVsZXRlSGlkZGVuID09PSB1bmRlZmluZWQgfHwgZGVsZXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0ZWRpdGFibGVFeHByZXNzaW9uLFxuXHRcdGFuZChlZGl0YWJsZUV4cHJlc3Npb24sIGVxdWFsKGRlbGV0ZUhpZGRlbkV4cHJlc3Npb24sIGZhbHNlKSlcblx0KTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIERlbGV0ZSBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGlzRGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZFxuICogQHBhcmFtIGlzUGFyZW50RGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZCBvbiB0aGUgcGFyZW50IGVudGl0eVxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIERlbGV0ZSBidXR0b25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZUJ1dHRvbkVuYWJsZWQoXG5cdGlzRGVsZXRhYmxlOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxCb29sZWFuPiB8IHVuZGVmaW5lZCxcblx0aXNQYXJlbnREZWxldGFibGU6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0RyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KGVudGl0eVNldCk7XG5cblx0bGV0IHJldCA9IGlmRWxzZShcblx0XHRpc1BhcmVudERlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLFxuXHRcdGlzUGFyZW50RGVsZXRhYmxlLFxuXHRcdGlmRWxzZShpc0RlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLCBlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oaXNEZWxldGFibGUpLCB0cnVlKSwgY29uc3RhbnQodHJ1ZSkpXG5cdCk7XG5cblx0Ly8gZGVsZXRlIHNob3VsZCBiZSBkaXNhYmxlZCBmb3IgTG9ja2VkIG9iamVjdHNcblx0cmV0ID0gaXNEcmFmdFJvb3QgPyBhbmQocmV0LCBub3QocGF0aEluTW9kZWwoXCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9JblByb2Nlc3NCeVVzZXJcIikpKSA6IHJldDtcblxuXHRyZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIE1ldGhvZCB0byBkZXRlcm1pbmUgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBiaW5kaW5nIGZvciB0aGUgRWRpdCBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgSW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICogQHBhcmFtIHJvb3RVcGRhdGVIaWRkZW4gVGhlIHZhbHVlIG9mIHRoZSBVSS5VcGRhdGVIaWRkZW4gYW5ub3RhdGlvbiBvbiB0aGUgZW50aXR5IHNldCAvIHR5cGUuXG4gKiBAcGFyYW0gcm9vdENvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSB1cGRhdGVIaWRkZW5cbiAqIEBwYXJhbSB2aWV3TGV2ZWxcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIEVkaXQgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRpdEJ1dHRvblZpc2liaWxpdHkoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHJvb3RVcGRhdGVIaWRkZW46IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxuXHRyb290Q29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dXBkYXRlSGlkZGVuPzogUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj4gfCB1bmRlZmluZWQsXG5cdHZpZXdMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3Qgcm9vdEVudGl0eVNldCA9IHJvb3RDb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlTZXQoKSxcblx0XHRlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpLFxuXHRcdGlzRkNMRW5hYmxlZCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaXNGY2xFbmFibGVkKCk7XG5cdGxldCBpc0RyYWZ0RW5hYmxlZDtcblx0Y29uc3Qgcm9vdFVwZGF0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEhpZGRlbkV4cHJlc3Npb24oXG5cdFx0cm9vdENvbnZlcnRlckNvbnRleHQsXG5cdFx0cm9vdFVwZGF0ZUhpZGRlblxuXHQpO1xuXHRpZiAodmlld0xldmVsICYmIHZpZXdMZXZlbCA+IDEpIHtcblx0XHQvLyBpZiB2aWV3bGV2ZWwgPiAxIGNoZWNrIGlmIG5vZGUgaXMgZHJhZnQgZW5hYmxlZFxuXHRcdGlzRHJhZnRFbmFibGVkID0gTW9kZWxIZWxwZXIuaXNEcmFmdE5vZGUoZW50aXR5U2V0KTtcblx0fSBlbHNlIHtcblx0XHRpc0RyYWZ0RW5hYmxlZCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KHJvb3RFbnRpdHlTZXQpO1xuXHR9XG5cdGNvbnN0IHVwZGF0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEhpZGRlbkV4cHJlc3Npb24ocm9vdENvbnZlcnRlckNvbnRleHQsIHVwZGF0ZUhpZGRlbik7XG5cblx0Y29uc3Qgbm90RWRpdGFibGVFeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4gPSBub3QoVUkuSXNFZGl0YWJsZSk7XG5cblx0Ly8gSWYgVUkuVXBkYXRlSGlkZGVuIGFubm90YXRpb24gb24gZW50aXR5IHNldCBvciB0eXBlIGlzIGVpdGhlciBub3QgZGVmaW5lZCBvciBleHBsaWNpdGx5IHNldCB0byBmYWxzZSxcblx0Ly8gRWRpdCBidXR0b24gaXMgdmlzaWJsZSBpbiBkaXNwbGF5IG1vZGUuXG5cdC8vIGVsc2UsXG5cdC8vIEVkaXQgYnV0dG9uIGlzIHZpc2libGUgYmFzZWQgb24gYm90aCBhbm5vdGF0aW9uIHBhdGggYW5kIGluIGRpc3BsYXkgbW9kZS5cblx0Y29uc3QgcmVzdWx0YW50RXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gaWZFbHNlKFxuXHRcdCh2aWV3TGV2ZWwgYXMgbnVtYmVyKSA+IDEsXG5cdFx0aWZFbHNlKFxuXHRcdFx0dXBkYXRlSGlkZGVuID09PSB1bmRlZmluZWQgfHwgdXBkYXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRhbmQoXG5cdFx0XHRcdG5vdEVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRcdFx0ZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdFZpc2libGVcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSksXG5cdFx0XHRcdGlmRWxzZShpc0ZDTEVuYWJsZWQsIGVxdWFsKHBhdGhJbk1vZGVsKFwiL3Nob3dFZGl0QnV0dG9uXCIsIFwiZmNsaGVscGVyXCIpLCB0cnVlKSwgdHJ1ZSlcblx0XHRcdCksXG5cdFx0XHRhbmQoXG5cdFx0XHRcdG5vdEVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRcdFx0ZXF1YWwodXBkYXRlSGlkZGVuRXhwcmVzc2lvbiwgZmFsc2UpLFxuXHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcInJvb3RFZGl0VmlzaWJsZVwiLCBcImludGVybmFsXCIpLCB0cnVlKSxcblx0XHRcdFx0aWZFbHNlKGlzRkNMRW5hYmxlZCwgZXF1YWwocGF0aEluTW9kZWwoXCIvc2hvd0VkaXRCdXR0b25cIiwgXCJmY2xoZWxwZXJcIiksIHRydWUpLCB0cnVlKVxuXHRcdFx0KVxuXHRcdCksXG5cdFx0aWZFbHNlKFxuXHRcdFx0cm9vdFVwZGF0ZUhpZGRlbiA9PT0gdW5kZWZpbmVkIHx8IHJvb3RVcGRhdGVIaWRkZW4udmFsdWVPZigpID09PSBmYWxzZSxcblx0XHRcdG5vdEVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRcdGFuZChub3RFZGl0YWJsZUV4cHJlc3Npb24sIGVxdWFsKHJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uLCBmYWxzZSkpXG5cdFx0KVxuXHQpO1xuXHRyZXR1cm4gaWZFbHNlKGlzRHJhZnRFbmFibGVkLCBhbmQocmVzdWx0YW50RXhwcmVzc2lvbiwgRHJhZnQuSGFzTm9EcmFmdEZvckN1cnJlbnRVc2VyKSwgcmVzdWx0YW50RXhwcmVzc2lvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWRkZW5FeHByZXNzaW9uKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIHVwZGF0ZUhpZGRlbjogUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj4gfCB1bmRlZmluZWQpIHtcblx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLm1hcCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lKSxcblx0XHQvLyBTZXQgYWJzb2x1dGUgYmluZGluZyBwYXRoIGZvciBTaW5nbGV0b24gcmVmZXJlbmNlcywgb3RoZXJ3aXNlIHRoZSBjb25maWd1cmVkIGFubm90YXRpb24gcGF0aCBpdHNlbGYuXG5cdFx0Ly8gRm9yIGUuZy4gL2NvbS5zYXAubmFtZXNwYWNlLkVudGl0eUNvbnRhaW5lci9TaW5nbGV0b24vUHJvcGVydHkgdG8gL1NpbmdsZXRvbi9Qcm9wZXJ0eVxuXHRcdHVwZGF0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihcblx0XHRcdHVwZGF0ZUhpZGRlbixcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHQocGF0aDogc3RyaW5nKSA9PiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMpXG5cdFx0KTtcblx0cmV0dXJuIHVwZGF0ZUhpZGRlbkV4cHJlc3Npb247XG59XG4vKipcbiAqIE1ldGhvZCB0byBkZXRlcm1pbmUgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBiaW5kaW5nIGZvciB0aGUgRWRpdCBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgSW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICogQHBhcmFtIHVwZGF0ZVJlc3RyaWN0aW9uc1xuICogQHBhcmFtIHZpZXdMZXZlbFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiB0aGUgRWRpdCBidXR0b24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFZGl0QnV0dG9uRW5hYmxlZChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dXBkYXRlUmVzdHJpY3Rpb25zPzogYW55LFxuXHR2aWV3TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWRcbik6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0RyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KGVudGl0eVNldCksXG5cdFx0aXNTdGlja3kgPSBNb2RlbEhlbHBlci5pc1N0aWNreShlbnRpdHlTZXQpO1xuXHRsZXQgZWRpdEFjdGlvbk5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0aWYgKGlzRHJhZnRSb290ICYmIGlzRW50aXR5U2V0KGVudGl0eVNldCkpIHtcblx0XHRlZGl0QWN0aW9uTmFtZSA9IGVudGl0eVNldC5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH0gZWxzZSBpZiAoaXNTdGlja3kgJiYgaXNFbnRpdHlTZXQoZW50aXR5U2V0KSkge1xuXHRcdGVkaXRBY3Rpb25OYW1lID0gZW50aXR5U2V0LmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkVkaXRBY3Rpb24gYXMgc3RyaW5nO1xuXHR9XG5cdGlmIChlZGl0QWN0aW9uTmFtZSkge1xuXHRcdGNvbnN0IGVkaXRBY3Rpb25Bbm5vdGF0aW9uUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aChlZGl0QWN0aW9uTmFtZSk7XG5cdFx0Y29uc3QgZWRpdEFjdGlvbiA9IGNvbnZlcnRlckNvbnRleHQucmVzb2x2ZUFic29sdXRlUGF0aChlZGl0QWN0aW9uQW5ub3RhdGlvblBhdGgpLnRhcmdldCBhcyBBY3Rpb24gfCBudWxsO1xuXHRcdGlmIChlZGl0QWN0aW9uPy5hbm5vdGF0aW9ucz8uQ29yZT8uT3BlcmF0aW9uQXZhaWxhYmxlID09PSBudWxsKSB7XG5cdFx0XHQvLyBXZSBkaXNhYmxlZCBhY3Rpb24gYWR2ZXJ0aXNlbWVudCBidXQga2VwdCBpdCBpbiB0aGUgY29kZSBmb3IgdGhlIHRpbWUgYmVpbmdcblx0XHRcdC8vcmV0dXJuIFwiez0gJHsjXCIgKyBlZGl0QWN0aW9uTmFtZSArIFwifSA/IHRydWUgOiBmYWxzZSB9XCI7XG5cdFx0fSBlbHNlIGlmICgodmlld0xldmVsIGFzIG51bWJlcikgPiAxKSB7XG5cdFx0XHQvLyBFZGl0IGJ1dHRvbiBpcyBlbmFibGVkIGJhc2VkIG9uIHRoZSB1cGRhdGUgcmVzdHJpY3Rpb25zIG9mIHRoZSBzdWItT1Bcblx0XHRcdGlmICh1cGRhdGVSZXN0cmljdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0YW5kKFxuXHRcdFx0XHRcdFx0ZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKHVwZGF0ZVJlc3RyaWN0aW9ucyksIHRydWUpLFxuXHRcdFx0XHRcdFx0ZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdEVuYWJsZWRcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdEVuYWJsZWRcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSkpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24oY29udmVydGVyQ29udGV4dCwgZWRpdEFjdGlvbiA/PyB1bmRlZmluZWQpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gXCJ0cnVlXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWFkZXJEZWZhdWx0QWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3Qgc0NvbnRleHRQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRDb250ZXh0UGF0aCgpO1xuXHRjb25zdCByb290RW50aXR5U2V0UGF0aCA9IE1vZGVsSGVscGVyLmdldFJvb3RFbnRpdHlTZXRQYXRoKHNDb250ZXh0UGF0aCk7XG5cdGNvbnN0IHJvb3RDb252ZXJ0ZXJDb250ZXh0ID0gY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKFwiL1wiICsgcm9vdEVudGl0eVNldFBhdGgpO1xuXHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpLFxuXHRcdGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSxcblx0XHRyb290RW50aXR5U2V0ID0gcm9vdENvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCksXG5cdFx0cm9vdEVudGl0eVR5cGUgPSByb290Q29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksXG5cdFx0c3RpY2t5U2Vzc2lvblN1cHBvcnRlZCA9IE1vZGVsSGVscGVyLmdldFN0aWNreVNlc3Npb24ocm9vdEVudGl0eVNldCksIC8vZm9yIHN0aWNreSBhcHBcblx0XHRkcmFmdFJvb3QgPSBNb2RlbEhlbHBlci5nZXREcmFmdFJvb3Qocm9vdEVudGl0eVNldCksIC8vZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdCxcblx0XHRkcmFmdE5vZGUgPSBNb2RlbEhlbHBlci5nZXREcmFmdE5vZGUocm9vdEVudGl0eVNldCksXG5cdFx0ZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zID0gZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucz8uQ2FwYWJpbGl0aWVzPy5EZWxldGVSZXN0cmljdGlvbnMsXG5cdFx0cm9vdFVwZGF0ZUhpZGRlbiA9IE1vZGVsSGVscGVyLmlzVXBkYXRlSGlkZGVuKHJvb3RFbnRpdHlTZXQsIHJvb3RFbnRpdHlUeXBlKSxcblx0XHR1cGRhdGVIaWRkZW4gPSByb290RW50aXR5U2V0ICYmIGlzRW50aXR5U2V0KHJvb3RFbnRpdHlTZXQpICYmIHJvb3RVcGRhdGVIaWRkZW4/LnZhbHVlT2YoKSxcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksXG5cdFx0aXNQYXJlbnREZWxldGFibGUgPSBpc1BhdGhEZWxldGFibGUoZGF0YU1vZGVsT2JqZWN0UGF0aCwge1xuXHRcdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcsIG5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pID0+XG5cdFx0XHRcdHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgbmF2aWdhdGlvblBhdGhzKVxuXHRcdH0pLFxuXHRcdHBhcmVudEVudGl0eVNldERlbGV0YWJsZSA9IGlzUGFyZW50RGVsZXRhYmxlID8gY29tcGlsZUV4cHJlc3Npb24oaXNQYXJlbnREZWxldGFibGUpIDogaXNQYXJlbnREZWxldGFibGUsXG5cdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMgPSBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGZhbHNlKTtcblxuXHRjb25zdCBjb3B5RGF0YUZpZWxkID1cblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldFZpZXdMZXZlbCgpID09PSAxXG5cdFx0XHQ/IGdldENvcHlBY3Rpb24oXG5cdFx0XHRcdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBkYXRhRmllbGRJc0NvcHlBY3Rpb24oZGF0YUZpZWxkKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0ICApXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblxuXHRjb25zdCBoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zID0gaWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gIWRhdGFGaWVsZElzQ29weUFjdGlvbihkYXRhRmllbGQpO1xuXHR9KTtcblxuXHQvLyBJbml0aWFsaXplIGFjdGlvbnMgYW5kIHN0YXJ0IHdpdGggZHJhZnQgYWN0aW9ucyBpZiBhdmFpbGFibGUgc2luY2UgdGhleSBzaG91bGQgYXBwZWFyIGluIHRoZSBmaXJzdFxuXHQvLyBsZWZ0bW9zdCBwb3NpdGlvbiBpbiB0aGUgYWN0aW9ucyBhcmVhIG9mIHRoZSBPUCBoZWFkZXJcblx0Ly8gVGhpcyBpcyBtb3JlIGxpa2UgYSBwbGFjZWhvbGRlciB0aGFuIGEgc2luZ2xlIGFjdGlvbiwgc2luY2UgdGhpcyBjb250cm9scyBub3Qgb25seSB0aGUgdGVtcGxhdGluZyBvZlxuXHQvLyB0aGUgYnV0dG9uIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBkcmFmdCBhbmQgYWN0aXZlIGRvY3VtZW50IHZlcnNpb25zIGJ1dCBhbHNvIHRoZSBjb250cm9scyBmb3Jcblx0Ly8gdGhlIGNvbGxhYm9yYXRpdmUgZHJhZnQgZnJhZ21lbnQuXG5cdGNvbnN0IGhlYWRlckFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoaXNFbnRpdHlTZXQoZW50aXR5U2V0KSAmJiBkcmFmdFJvb3Q/LkVkaXRBY3Rpb24gJiYgdXBkYXRlSGlkZGVuICE9PSB0cnVlKSB7XG5cdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHsgdHlwZTogQWN0aW9uVHlwZS5EcmFmdEFjdGlvbnMsIGtleTogXCJEcmFmdEFjdGlvbnNcIiB9KTtcblx0fVxuXG5cdGNvbnN0IHZpZXdMZXZlbCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0Vmlld0xldmVsKCk7XG5cdGNvbnN0IHVwZGF0YWJsZVByb3BlcnR5UGF0aCA9IHZpZXdMZXZlbCA+IDEgPyBlbnRpdHlTZXQ/LmFubm90YXRpb25zLkNhcGFiaWxpdGllcz8uVXBkYXRlUmVzdHJpY3Rpb25zPy5VcGRhdGFibGUgOiB1bmRlZmluZWQ7XG5cdGlmIChkcmFmdFJvb3QgfHwgZHJhZnROb2RlKSB7XG5cdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHsgdHlwZTogQWN0aW9uVHlwZS5Db2xsYWJvcmF0aW9uQXZhdGFycywga2V5OiBcIkNvbGxhYm9yYXRpb25BdmF0YXJzXCIgfSk7XG5cdH1cblx0Ly8gVGhlbiBhZGQgdGhlIFwiQ3JpdGljYWxcIiBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGhlYWRlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA+IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG5cdFx0fSk7XG5cblx0Ly8gVGhlbiB0aGUgZWRpdCBhY3Rpb24gaWYgaXQgZXhpc3RzXG5cdGlmICgoZHJhZnRSb290Py5FZGl0QWN0aW9uIHx8IHN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkVkaXRBY3Rpb24pICYmIHVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlByaW1hcnksXG5cdFx0XHRrZXk6IFwiRWRpdEFjdGlvblwiLFxuXHRcdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdGdldEVkaXRCdXR0b25WaXNpYmlsaXR5KFxuXHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0cm9vdFVwZGF0ZUhpZGRlbixcblx0XHRcdFx0XHRyb290Q29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRNb2RlbEhlbHBlci5pc1VwZGF0ZUhpZGRlbihlbnRpdHlTZXQsIGVudGl0eVR5cGUpLFxuXHRcdFx0XHRcdHZpZXdMZXZlbFxuXHRcdFx0XHQpXG5cdFx0XHQpLFxuXHRcdFx0ZW5hYmxlZDogZ2V0RWRpdEJ1dHRvbkVuYWJsZWQocm9vdENvbnZlcnRlckNvbnRleHQsIHVwZGF0YWJsZVByb3BlcnR5UGF0aCwgdmlld0xldmVsKVxuXHRcdH0pO1xuXHR9XG5cdC8vIFRoZW4gdGhlIGRlbGV0ZSBhY3Rpb24gaWYgd2UncmUgbm90IHN0YXRpY2FsbHkgbm90IGRlbGV0YWJsZVxuXHRpZiAoXG5cdFx0KHBhcmVudEVudGl0eVNldERlbGV0YWJsZSAmJiBwYXJlbnRFbnRpdHlTZXREZWxldGFibGUgIT09IFwiZmFsc2VcIikgfHxcblx0XHQoZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zPy5EZWxldGFibGU/LnZhbHVlT2YoKSAhPT0gZmFsc2UgJiYgcGFyZW50RW50aXR5U2V0RGVsZXRhYmxlICE9PSBcImZhbHNlXCIpXG5cdCkge1xuXHRcdGNvbnN0IGRlbGV0ZUhpZGRlbiA9IE1vZGVsSGVscGVyLmdldERlbGV0ZUhpZGRlbihlbnRpdHlTZXQsIGVudGl0eVR5cGUpIGFzIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+O1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlNlY29uZGFyeSxcblx0XHRcdGtleTogXCJEZWxldGVBY3Rpb25cIixcblx0XHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKGdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkoY29udmVydGVyQ29udGV4dCwgZGVsZXRlSGlkZGVuKSksXG5cdFx0XHRlbmFibGVkOiBjb21waWxlRXhwcmVzc2lvbihnZXREZWxldGVCdXR0b25FbmFibGVkKGVudGl0eURlbGV0ZVJlc3RyaWN0aW9ucz8uRGVsZXRhYmxlLCBpc1BhcmVudERlbGV0YWJsZSwgY29udmVydGVyQ29udGV4dCkpLFxuXHRcdFx0cGFyZW50RW50aXR5RGVsZXRlRW5hYmxlZDogcGFyZW50RW50aXR5U2V0RGVsZXRhYmxlXG5cdFx0fSk7XG5cdH1cblxuXHRpZiAoY29weURhdGFGaWVsZCkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHQuLi5nZXREYXRhRmllbGRBbm5vdGF0aW9uQWN0aW9uKGNvcHlEYXRhRmllbGQsIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5Db3B5LFxuXHRcdFx0dGV4dDogY29weURhdGFGaWVsZC5MYWJlbD8udG9TdHJpbmcoKSA/PyBDb3JlLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5jb3JlXCIpLmdldFRleHQoXCJDX0NPTU1PTl9DT1BZXCIpXG5cdFx0fSk7XG5cdH1cblxuXHRjb25zdCBoZWFkZXJEYXRhRmllbGRGb3JJQk5BY3Rpb25zID0gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCBmYWxzZSk7XG5cblx0aGVhZGVyRGF0YUZpZWxkRm9ySUJOQWN0aW9uc1xuXHRcdC5maWx0ZXIoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIElNUE9SVEFOVF9DUklUSUNBTElUSUVTLmluZGV4T2YoZGF0YUZpZWxkPy5Dcml0aWNhbGl0eSBhcyBzdHJpbmcpID09PSAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGlmIChkYXRhRmllbGQuUmVxdWlyZXNDb250ZXh0Py52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBSZXF1aXJlc0NvbnRleHQgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSB0cnVlIGZvciBoZWFkZXIgSUJOIGFjdGlvbiA6ICR7ZGF0YUZpZWxkLkxhYmVsfWApO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGRhdGFGaWVsZC5JbmxpbmU/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYElubGluZSBwcm9wZXJ0eSBzaG91bGQgbm90IGJlIHRydWUgZm9yIGhlYWRlciBJQk4gYWN0aW9uIDogJHtkYXRhRmllbGQuTGFiZWx9YCk7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBvTmF2aWdhdGlvblBhcmFtcyA9IHtcblx0XHRcdFx0c2VtYW50aWNPYmplY3RNYXBwaW5nOiBnZXRTZW1hbnRpY09iamVjdE1hcHBpbmcoZGF0YUZpZWxkLk1hcHBpbmcpXG5cdFx0XHR9O1xuXG5cdFx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbixcblx0XHRcdFx0dGV4dDogZGF0YUZpZWxkLkxhYmVsPy50b1N0cmluZygpLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGRhdGFGaWVsZC5mdWxseVF1YWxpZmllZE5hbWUpLFxuXHRcdFx0XHRidXR0b25UeXBlOiBCdXR0b25UeXBlLkdob3N0LFxuXHRcdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRhbmQoXG5cdFx0XHRcdFx0XHRub3QoZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiksIHRydWUpKSxcblx0XHRcdFx0XHRcdG5vdChlcXVhbChwYXRoSW5Nb2RlbChcInNoZWxsTmF2aWdhdGlvbk5vdEF2YWlsYWJsZVwiLCBcImludGVybmFsXCIpLCB0cnVlKSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCksXG5cdFx0XHRcdGVuYWJsZWQ6XG5cdFx0XHRcdFx0ZGF0YUZpZWxkLk5hdmlnYXRpb25BdmFpbGFibGUgIT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0PyBjb21waWxlRXhwcmVzc2lvbihlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLk5hdmlnYXRpb25BdmFpbGFibGU/LnZhbHVlT2YoKSksIHRydWUpKVxuXHRcdFx0XHRcdFx0OiB0cnVlLFxuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHRcdFx0aXNOYXZpZ2FibGU6IHRydWUsXG5cdFx0XHRcdHByZXNzOiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRmbihcIi5faW50ZW50QmFzZWROYXZpZ2F0aW9uLm5hdmlnYXRlXCIsIFtcblx0XHRcdFx0XHRcdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuU2VtYW50aWNPYmplY3QpLFxuXHRcdFx0XHRcdFx0Z2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5BY3Rpb24pLFxuXHRcdFx0XHRcdFx0b05hdmlnYXRpb25QYXJhbXNcblx0XHRcdFx0XHRdKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRjdXN0b21EYXRhOiBjb21waWxlRXhwcmVzc2lvbih7XG5cdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuU2VtYW50aWNPYmplY3QpLFxuXHRcdFx0XHRcdGFjdGlvbjogZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5BY3Rpb24pXG5cdFx0XHRcdH0pXG5cdFx0XHR9IGFzIEFubm90YXRpb25BY3Rpb24pO1xuXHRcdH0pO1xuXHQvLyBGaW5hbGx5IHRoZSBub24gY3JpdGljYWwgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPT09IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG5cdFx0fSk7XG5cblx0cmV0dXJuIGhlYWRlckFjdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWRkZW5IZWFkZXJBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdGNvbnN0IGhpZGRlbkFjdGlvbnMgPSAoZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LklkZW50aWZpY2F0aW9uPy5maWx0ZXIoKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkKSA9PiB7XG5cdFx0cmV0dXJuIGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkPy5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXNbXTtcblx0cmV0dXJuIGhpZGRlbkFjdGlvbnMubWFwKChkYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EZWZhdWx0LFxuXHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZClcblx0XHR9O1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvb3RlckRlZmF1bHRBY3Rpb25zKHZpZXdMZXZlbDogbnVtYmVyLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKTtcblx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRjb25zdCBzdGlja3lTZXNzaW9uU3VwcG9ydGVkID0gTW9kZWxIZWxwZXIuZ2V0U3RpY2t5U2Vzc2lvbihlbnRpdHlTZXQpLCAvL2ZvciBzdGlja3kgYXBwXG5cdFx0ZW50aXR5U2V0RHJhZnRSb290ID1cblx0XHRcdGlzRW50aXR5U2V0KGVudGl0eVNldCkgJiZcblx0XHRcdChlbnRpdHlTZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5EcmFmdFJvb3Q/LnRlcm0gPz8gZW50aXR5U2V0LmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LnRlcm0pLFxuXHRcdGNvbmRpdGlvblNhdmUgPSBCb29sZWFuKFxuXHRcdFx0ZW50aXR5U2V0RHJhZnRSb290ID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuRHJhZnRSb290IHx8IChzdGlja3lTZXNzaW9uU3VwcG9ydGVkICYmIHN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LlNhdmVBY3Rpb24pXG5cdFx0KSxcblx0XHRjb25kaXRpb25BcHBseSA9IHZpZXdMZXZlbCA+IDEsXG5cdFx0Y29uZGl0aW9uQ2FuY2VsID0gQm9vbGVhbihcblx0XHRcdGVudGl0eVNldERyYWZ0Um9vdCA9PT0gQ29tbW9uQW5ub3RhdGlvblRlcm1zLkRyYWZ0Um9vdCB8fCAoc3RpY2t5U2Vzc2lvblN1cHBvcnRlZCAmJiBzdGlja3lTZXNzaW9uU3VwcG9ydGVkPy5EaXNjYXJkQWN0aW9uKVxuXHRcdCk7XG5cblx0Ly8gUmV0cmlldmUgYWxsIGRldGVybWluaW5nIGFjdGlvbnNcblx0Y29uc3QgZm9vdGVyRGF0YUZpZWxkRm9yQWN0aW9ucyA9IGdldElkZW50aWZpY2F0aW9uRGF0YUZpZWxkRm9yQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgdHJ1ZSk7XG5cblx0Ly8gRmlyc3QgYWRkIHRoZSBcIkNyaXRpY2FsXCIgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRjb25zdCBmb290ZXJBY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPiAtMTtcblx0XHR9KVxuXHRcdC5tYXAoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHR9KTtcblxuXHQvLyBUaGVuIHRoZSBzYXZlIGFjdGlvbiBpZiBpdCBleGlzdHNcblx0aWYgKGVudGl0eVNldD8uZW50aXR5VHlwZU5hbWUgPT09IGVudGl0eVR5cGU/LmZ1bGx5UXVhbGlmaWVkTmFtZSAmJiBjb25kaXRpb25TYXZlKSB7XG5cdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKHsgdHlwZTogQWN0aW9uVHlwZS5QcmltYXJ5LCBrZXk6IFwiU2F2ZUFjdGlvblwiIH0pO1xuXHR9XG5cblx0Ly8gVGhlbiB0aGUgYXBwbHkgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoY29uZGl0aW9uQXBwbHkpIHtcblx0XHRmb290ZXJBY3Rpb25zLnB1c2goeyB0eXBlOiBBY3Rpb25UeXBlLkRlZmF1bHRBcHBseSwga2V5OiBcIkFwcGx5QWN0aW9uXCIgfSk7XG5cdH1cblxuXHQvLyBUaGVuIHRoZSBub24gY3JpdGljYWwgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPT09IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG5cdFx0fSk7XG5cblx0Ly8gVGhlbiB0aGUgY2FuY2VsIGFjdGlvbiBpZiBpdCBleGlzdHNcblx0aWYgKGNvbmRpdGlvbkNhbmNlbCkge1xuXHRcdGZvb3RlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlNlY29uZGFyeSxcblx0XHRcdGtleTogXCJDYW5jZWxBY3Rpb25cIixcblx0XHRcdHBvc2l0aW9uOiB7IHBsYWNlbWVudDogUGxhY2VtZW50LkVuZCB9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGZvb3RlckFjdGlvbnM7XG59XG5cbmZ1bmN0aW9uIGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkOiBEYXRhRmllbGRGb3JBY3Rpb25UeXBlcywgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEFubm90YXRpb25BY3Rpb24ge1xuXHRyZXR1cm4ge1xuXHRcdHR5cGU6IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9yQWN0aW9uLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZGF0YUZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZCksXG5cdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSkpLFxuXHRcdGVuYWJsZWQ6IGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uKGNvbnZlcnRlckNvbnRleHQsIGRhdGFGaWVsZC5BY3Rpb25UYXJnZXQpLFxuXHRcdGlzTmF2aWdhYmxlOiB0cnVlXG5cdH0gYXMgQW5ub3RhdGlvbkFjdGlvbjtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sU0FBU0Esb0NBQW9DLENBQUNDLFVBQXNCLEVBQUVDLG1CQUE0QixFQUE2QjtJQUFBO0lBQ3JJLE9BQVEsMEJBQUFELFVBQVUsQ0FBQ0UsV0FBVyxvRkFBdEIsc0JBQXdCQyxFQUFFLHFGQUExQix1QkFBNEJDLGNBQWMsMkRBQTFDLHVCQUE0Q0MsTUFBTSxDQUFFQyx1QkFBdUIsSUFBSztNQUFBO01BQ3ZGLE9BQU8sMEJBQUFBLHVCQUF1QixDQUFDSixXQUFXLG9GQUFuQyxzQkFBcUNDLEVBQUUscUZBQXZDLHVCQUF5Q0ksTUFBTSwyREFBL0MsdUJBQWlEQyxPQUFPLEVBQUUsTUFBSyxJQUFJLElBQ3pFRix1QkFBdUIsQ0FBQ0csS0FBSyxvREFBeUMsSUFDdEVDLE9BQU8sMkJBQUNKLHVCQUF1QixDQUFDSyxXQUFXLDJEQUFuQyx1QkFBcUNILE9BQU8sRUFBRSxDQUFDLEtBQUtQLG1CQUFtQixLQUM5RSwyQkFBQUssdUJBQXVCLENBQUNNLFlBQVkscUZBQXBDLHVCQUFzQ0MsT0FBTywyREFBN0MsdUJBQStDTCxPQUFPLEVBQUUsTUFBSyxJQUFJLElBQ2pFLENBQUFGLHVCQUF1QixhQUF2QkEsdUJBQXVCLGlEQUF2QkEsdUJBQXVCLENBQUVNLFlBQVkscUZBQXJDLHVCQUF1Q1YsV0FBVyxxRkFBbEQsdUJBQW9EWSxJQUFJLHNGQUF4RCx1QkFBMERDLGtCQUFrQiw0REFBNUUsd0JBQThFUCxPQUFPLEVBQUUsTUFBSyxLQUFLLENBQUMsR0FDakcsSUFBSSxHQUNKLEtBQUs7SUFDVCxDQUFDLENBQUMs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
@@ -2,5 +2,5 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/converters/helpers/Key","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/templating/DataModelPathHelper","sap/ui/core/Core","../helpers/BindingHelper","../ManifestSettings"],function(e,t,i,n,o,a,l,r,d){"use strict";var v={};var s=d.ActionType;var u=r.UI;var c=r.singletonPathVisitor;var f=r.Draft;var p=a.isPathDeletable;var y=n.pathInModel;var g=n.not;var b=n.ifElse;var E=n.getExpressionFromAnnotation;var h=n.fn;var A=n.equal;var m=n.constant;var D=n.compileExpression;var C=n.and;var S=i.KeyHelper;var I=t.Placement;var O=e.getSemanticObjectMapping;var T=e.getEnabledForAnnotationAction;var P=e.getCopyAction;var B=e.dataFieldIsCopyAction;var F=e.ButtonType;function N(e,t){var i,n,o;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Identification)===null||o===void 0?void 0:o.filter(e=>{var i,n,o,a,l,r,d,v,s,u;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Hidden)===null||o===void 0?void 0:o.valueOf())!==true&&e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForAction"&&Boolean((a=e.Determining)===null||a===void 0?void 0:a.valueOf())===t&&(((l=e.ActionTarget)===null||l===void 0?void 0:(r=l.isBound)===null||r===void 0?void 0:r.valueOf())!==true||(e===null||e===void 0?void 0:(d=e.ActionTarget)===null||d===void 0?void 0:(v=d.annotations)===null||v===void 0?void 0:(s=v.Core)===null||s===void 0?void 0:(u=s.OperationAvailable)===null||u===void 0?void 0:u.valueOf())!==false)?true:false}))||[]}v.getIdentificationDataFieldForActions=N;function U(e,t){var i,n,o;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Identification)===null||o===void 0?void 0:o.filter(e=>{var i,n,o,a;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Hidden)===null||o===void 0?void 0:o.valueOf())!==true&&e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation"&&Boolean((a=e.Determining)===null||a===void 0?void 0:a.valueOf())===t?true:false}))||[]}const H=["UI.CriticalityType/VeryPositive","UI.CriticalityType/Positive","UI.CriticalityType/Negative","UI.CriticalityType/VeryNegative"];v.IMPORTANT_CRITICALITIES=H;function M(e,t){const i=e.getDataModelObjectPath(),n=i.navigationProperties.map(e=>e.name),o=E(t,n,undefined,t=>c(t,e.getConvertedTypes(),[])),a=e.getManifestWrapper(),l=a.getViewLevel(),r=l>1?u.IsEditable:g(u.IsEditable);return b(t===undefined||t.valueOf()===false,r,C(r,A(o,false)))}v.getDeleteButtonVisibility=M;function k(e,t,i){const n=i.getEntitySet(),a=o.isDraftRoot(n);let l=b(t!==undefined,t,b(e!==undefined,A(e,true),m(true)));l=a?C(l,g(y("DraftAdministrativeData/InProcessByUser"))):l;return l}v.getDeleteButtonEnabled=k;function R(e,t,i,n,a){const l=i===null||i===void 0?void 0:i.getEntitySet(),r=e.getEntitySet(),d=e.getManifestWrapper().isFclEnabled();let v;const s=x(i,t);if(a&&a>1){v=o.isDraftNode(r)}else{v=o.isDraftRoot(l)}const c=x(i,n);const p=g(u.IsEditable);const E=b(a>1,b(n===undefined||n.valueOf()===false,C(p,A(y("rootEditVisible","internal"),true),b(d,A(y("/showEditButton","fclhelper"),true),true)),C(p,A(c,false),A(y("rootEditVisible","internal"),true),b(d,A(y("/showEditButton","fclhelper"),true),true))),b(t===undefined||t.valueOf()===false,p,C(p,A(s,false))));return b(v,C(E,f.HasNoDraftForCurrentUser),E)}v.getEditButtonVisibility=R;function x(e,t){const i=e.getDataModelObjectPath(),n=i.navigationProperties.map(e=>e.name),o=E(t,n,undefined,t=>c(t,e.getConvertedTypes(),n));return o}v.getHiddenExpression=x;function V(e,t,i){const n=e.getEntitySet(),a=o.isDraftRoot(n),l=o.isSticky(n);let r;if(a&&!o.isSingleton(n)){var d,v;r=n===null||n===void 0?void 0:(d=n.annotations.Common)===null||d===void 0?void 0:(v=d.DraftRoot)===null||v===void 0?void 0:v.EditAction}else if(l&&!o.isSingleton(n)){var s,u;r=n===null||n===void 0?void 0:(s=n.annotations.Session)===null||s===void 0?void 0:(u=s.StickySessionSupported)===null||u===void 0?void 0:u.EditAction}if(r){var c,f;const n=e.getAbsoluteAnnotationPath(r);const o=e.resolveAbsolutePath(n).target;if((o===null||o===void 0?void 0:(c=o.annotations)===null||c===void 0?void 0:(f=c.Core)===null||f===void 0?void 0:f.OperationAvailable)===null){}else if(i>1){if(t!==undefined){return D(C(A(E(t),true),A(y("rootEditEnabled","internal"),true)))}else{return D(A(y("rootEditEnabled","internal"),true))}}else{return T(e,o??undefined)}}return"true"}v.getEditButtonEnabled=V;function j(e){var t,i,n,a,r;const d=e.getContextPath();const v=o.getRootEntitySetPath(d);const u=e.getConverterContextFor("/"+v);const f=e.getEntitySet(),b=e.getEntityType(),m=u.getEntitySet(),I=u.getEntityType(),T=o.getStickySession(m),x=o.getDraftRoot(m),j=o.getDraftNode(m),w=f&&((t=f.annotations)===null||t===void 0?void 0:(i=t.Capabilities)===null||i===void 0?void 0:i.DeleteRestrictions),L=o.isUpdateHidden(m,I),W=m&&!o.isSingleton(m)&&(L===null||L===void 0?void 0:L.valueOf()),$=e.getDataModelObjectPath(),_=p($,{pathVisitor:(t,i)=>c(t,e.getConvertedTypes(),i)}),q=_?D(_):_,Q=N(e.getEntityType(),false);const G=e.getManifestWrapper().getViewLevel()===1?P(Q.filter(e=>B(e))):undefined;const Y=Q.filter(e=>!B(e));const z=[];if(!o.isSingleton(f)&&x!==null&&x!==void 0&&x.EditAction&&W!==true){z.push({type:s.DraftActions,key:"DraftActions"})}const J=e.getManifestWrapper().getViewLevel();const X=J>1?f===null||f===void 0?void 0:(n=f.annotations.Capabilities)===null||n===void 0?void 0:(a=n.UpdateRestrictions)===null||a===void 0?void 0:a.Updatable:undefined;if(x||j){z.push({type:s.CollaborationAvatars,key:"CollaborationAvatars"})}Y.filter(e=>H.indexOf(e===null||e===void 0?void 0:e.Criticality)>-1).forEach(t=>{z.push(K(t,e))});if((x!==null&&x!==void 0&&x.EditAction||T!==null&&T!==void 0&&T.EditAction)&&W!==true){z.push({type:s.Primary,key:"EditAction",visible:D(R(e,L,u,o.isUpdateHidden(f,b),J)),enabled:V(u,X,J)})}if(q&&q!=="false"||(w===null||w===void 0?void 0:(r=w.Deletable)===null||r===void 0?void 0:r.valueOf())!==false&&q!=="false"){const t=o.getDeleteHidden(f,b);z.push({type:s.Secondary,key:"DeleteAction",visible:D(M(e,t)),enabled:D(k(w===null||w===void 0?void 0:w.Deletable,_,e)),parentEntityDeleteEnabled:q})}if(G){var Z;z.push({...K(G,e),type:s.Copy,text:((Z=G.Label)===null||Z===void 0?void 0:Z.toString())??l.getLibraryResourceBundle("sap.fe.core").getText("C_COMMON_COPY")})}const ee=U(e.getEntityType(),false);ee.filter(e=>H.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(t=>{var i,n,o,a,l,r;if(((i=t.RequiresContext)===null||i===void 0?void 0:i.valueOf())===true){throw new Error(`RequiresContext property should not be true for header IBN action : ${t.Label}`)}if(((n=t.Inline)===null||n===void 0?void 0:n.valueOf())===true){throw new Error(`Inline property should not be true for header IBN action : ${t.Label}`)}const d={semanticObjectMapping:O(t.Mapping)};z.push({type:s.DataFieldForIntentBasedNavigation,text:(o=t.Label)===null||o===void 0?void 0:o.toString(),annotationPath:e.getEntitySetBasedAnnotationPath(t.fullyQualifiedName),buttonType:F.Ghost,visible:D(C(g(A(E((a=t.annotations)===null||a===void 0?void 0:(l=a.UI)===null||l===void 0?void 0:l.Hidden),true)),g(A(y("shellNavigationNotAvailable","internal"),true)))),enabled:t.NavigationAvailable!==undefined?D(A(E((r=t.NavigationAvailable)===null||r===void 0?void 0:r.valueOf()),true)):true,key:S.generateKeyFromDataField(t),isNavigable:true,press:D(h("._intentBasedNavigation.navigate",[E(t.SemanticObject),E(t.Action),d])),customData:D({semanticObject:E(t.SemanticObject),action:E(t.Action)})})});Y.filter(e=>H.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(t=>{z.push(K(t,e))});return z}v.getHeaderDefaultActions=j;function w(e){var t,i,n;const o=e.getEntityType();const a=((t=o.annotations)===null||t===void 0?void 0:(i=t.UI)===null||i===void 0?void 0:(n=i.Identification)===null||n===void 0?void 0:n.filter(e=>{var t,i,n;return(e===null||e===void 0?void 0:(t=e.annotations)===null||t===void 0?void 0:(i=t.UI)===null||i===void 0?void 0:(n=i.Hidden)===null||n===void 0?void 0:n.valueOf())===true}))||[];return a.map(e=>({type:s.Default,key:S.generateKeyFromDataField(e)}))}v.getHiddenHeaderActions=w;function L(e,t){var i,n,a,l,r;const d=t.getEntitySet();const v=t.getEntityType();const u=o.getStickySession(d),c=!o.isSingleton(d)&&d&&(((i=d.annotations.Common)===null||i===void 0?void 0:(n=i.DraftRoot)===null||n===void 0?void 0:n.term)||((a=d.annotations)===null||a===void 0?void 0:(l=a.Session)===null||l===void 0?void 0:(r=l.StickySessionSupported)===null||r===void 0?void 0:r.term)),f=Boolean(c==="com.sap.vocabularies.Common.v1.DraftRoot"||u&&(u===null||u===void 0?void 0:u.SaveAction)),p=e>1,y=Boolean(c==="com.sap.vocabularies.Common.v1.DraftRoot"||u&&(u===null||u===void 0?void 0:u.DiscardAction));const g=N(t.getEntityType(),true);const b=g.filter(e=>H.indexOf(e===null||e===void 0?void 0:e.Criticality)>-1).map(e=>K(e,t));if((d===null||d===void 0?void 0:d.entityTypeName)===(v===null||v===void 0?void 0:v.fullyQualifiedName)&&f){b.push({type:s.Primary,key:"SaveAction"})}if(p){b.push({type:s.DefaultApply,key:"ApplyAction"})}g.filter(e=>H.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(e=>{b.push(K(e,t))});if(y){b.push({type:s.Secondary,key:"CancelAction",position:{placement:I.End}})}return b}v.getFooterDefaultActions=L;function K(e,t){var i,n;return{type:s.DataFieldForAction,annotationPath:t.getEntitySetBasedAnnotationPath(e.fullyQualifiedName),key:S.generateKeyFromDataField(e),visible:D(g(A(E((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:n.Hidden),true))),enabled:T(t,e.ActionTarget),isNavigable:true}}return v},false);
5
+ sap.ui.define(["sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/converters/helpers/Key","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/helpers/TypeGuards","sap/fe/core/templating/DataModelPathHelper","sap/ui/core/Core","../helpers/BindingHelper","../ManifestSettings"],function(e,t,i,n,o,a,l,r,d,v){"use strict";var s={};var u=v.ActionType;var c=d.UI;var f=d.singletonPathVisitor;var p=d.Draft;var y=l.isPathDeletable;var g=a.isEntitySet;var b=n.pathInModel;var E=n.not;var h=n.ifElse;var A=n.getExpressionFromAnnotation;var m=n.fn;var D=n.equal;var C=n.constant;var I=n.compileExpression;var O=n.and;var S=i.KeyHelper;var T=t.Placement;var P=e.getSemanticObjectMapping;var B=e.getEnabledForAnnotationAction;var F=e.getCopyAction;var N=e.dataFieldIsCopyAction;var U=e.ButtonType;function H(e,t){var i,n,o;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Identification)===null||o===void 0?void 0:o.filter(e=>{var i,n,o,a,l,r,d,v,s,u;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Hidden)===null||o===void 0?void 0:o.valueOf())!==true&&e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForAction"&&Boolean((a=e.Determining)===null||a===void 0?void 0:a.valueOf())===t&&(((l=e.ActionTarget)===null||l===void 0?void 0:(r=l.isBound)===null||r===void 0?void 0:r.valueOf())!==true||(e===null||e===void 0?void 0:(d=e.ActionTarget)===null||d===void 0?void 0:(v=d.annotations)===null||v===void 0?void 0:(s=v.Core)===null||s===void 0?void 0:(u=s.OperationAvailable)===null||u===void 0?void 0:u.valueOf())!==false)?true:false}))||[]}s.getIdentificationDataFieldForActions=H;function M(e,t){var i,n,o;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Identification)===null||o===void 0?void 0:o.filter(e=>{var i,n,o,a;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Hidden)===null||o===void 0?void 0:o.valueOf())!==true&&e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation"&&Boolean((a=e.Determining)===null||a===void 0?void 0:a.valueOf())===t?true:false}))||[]}const k=["UI.CriticalityType/VeryPositive","UI.CriticalityType/Positive","UI.CriticalityType/Negative","UI.CriticalityType/VeryNegative"];s.IMPORTANT_CRITICALITIES=k;function R(e,t){const i=e.getDataModelObjectPath(),n=i.navigationProperties.map(e=>e.name),o=A(t,n,undefined,t=>f(t,e.getConvertedTypes(),[])),a=e.getManifestWrapper(),l=a.getViewLevel(),r=l>1?c.IsEditable:E(c.IsEditable);return h(t===undefined||t.valueOf()===false,r,O(r,D(o,false)))}s.getDeleteButtonVisibility=R;function x(e,t,i){const n=i.getEntitySet(),a=o.isDraftRoot(n);let l=h(t!==undefined,t,h(e!==undefined,D(A(e),true),C(true)));l=a?O(l,E(b("DraftAdministrativeData/InProcessByUser"))):l;return l}s.getDeleteButtonEnabled=x;function V(e,t,i,n,a){const l=i===null||i===void 0?void 0:i.getEntitySet(),r=e.getEntitySet(),d=e.getManifestWrapper().isFclEnabled();let v;const s=j(i,t);if(a&&a>1){v=o.isDraftNode(r)}else{v=o.isDraftRoot(l)}const u=j(i,n);const f=E(c.IsEditable);const y=h(a>1,h(n===undefined||n.valueOf()===false,O(f,D(b("rootEditVisible","internal"),true),h(d,D(b("/showEditButton","fclhelper"),true),true)),O(f,D(u,false),D(b("rootEditVisible","internal"),true),h(d,D(b("/showEditButton","fclhelper"),true),true))),h(t===undefined||t.valueOf()===false,f,O(f,D(s,false))));return h(v,O(y,p.HasNoDraftForCurrentUser),y)}s.getEditButtonVisibility=V;function j(e,t){const i=e.getDataModelObjectPath(),n=i.navigationProperties.map(e=>e.name),o=A(t,n,undefined,t=>f(t,e.getConvertedTypes(),n));return o}s.getHiddenExpression=j;function w(e,t,i){const n=e.getEntitySet(),a=o.isDraftRoot(n),l=o.isSticky(n);let r;if(a&&g(n)){var d,v;r=(d=n.annotations.Common)===null||d===void 0?void 0:(v=d.DraftRoot)===null||v===void 0?void 0:v.EditAction}else if(l&&g(n)){var s,u;r=(s=n.annotations.Session)===null||s===void 0?void 0:(u=s.StickySessionSupported)===null||u===void 0?void 0:u.EditAction}if(r){var c,f;const n=e.getAbsoluteAnnotationPath(r);const o=e.resolveAbsolutePath(n).target;if((o===null||o===void 0?void 0:(c=o.annotations)===null||c===void 0?void 0:(f=c.Core)===null||f===void 0?void 0:f.OperationAvailable)===null){}else if(i>1){if(t!==undefined){return I(O(D(A(t),true),D(b("rootEditEnabled","internal"),true)))}else{return I(D(b("rootEditEnabled","internal"),true))}}else{return B(e,o??undefined)}}return"true"}s.getEditButtonEnabled=w;function L(e){var t,i,n,a,l;const d=e.getContextPath();const v=o.getRootEntitySetPath(d);const s=e.getConverterContextFor("/"+v);const c=e.getEntitySet(),p=e.getEntityType(),h=s.getEntitySet(),C=s.getEntityType(),T=o.getStickySession(h),B=o.getDraftRoot(h),j=o.getDraftNode(h),L=c&&((t=c.annotations)===null||t===void 0?void 0:(i=t.Capabilities)===null||i===void 0?void 0:i.DeleteRestrictions),K=o.isUpdateHidden(h,C),W=h&&g(h)&&(K===null||K===void 0?void 0:K.valueOf()),_=e.getDataModelObjectPath(),q=y(_,{pathVisitor:(t,i)=>f(t,e.getConvertedTypes(),i)}),Q=q?I(q):q,G=H(e.getEntityType(),false);const Y=e.getManifestWrapper().getViewLevel()===1?F(G.filter(e=>N(e))):undefined;const z=G.filter(e=>!N(e));const J=[];if(g(c)&&B!==null&&B!==void 0&&B.EditAction&&W!==true){J.push({type:u.DraftActions,key:"DraftActions"})}const X=e.getManifestWrapper().getViewLevel();const Z=X>1?c===null||c===void 0?void 0:(n=c.annotations.Capabilities)===null||n===void 0?void 0:(a=n.UpdateRestrictions)===null||a===void 0?void 0:a.Updatable:undefined;if(B||j){J.push({type:u.CollaborationAvatars,key:"CollaborationAvatars"})}z.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)>-1).forEach(t=>{J.push($(t,e))});if((B!==null&&B!==void 0&&B.EditAction||T!==null&&T!==void 0&&T.EditAction)&&W!==true){J.push({type:u.Primary,key:"EditAction",visible:I(V(e,K,s,o.isUpdateHidden(c,p),X)),enabled:w(s,Z,X)})}if(Q&&Q!=="false"||(L===null||L===void 0?void 0:(l=L.Deletable)===null||l===void 0?void 0:l.valueOf())!==false&&Q!=="false"){const t=o.getDeleteHidden(c,p);J.push({type:u.Secondary,key:"DeleteAction",visible:I(R(e,t)),enabled:I(x(L===null||L===void 0?void 0:L.Deletable,q,e)),parentEntityDeleteEnabled:Q})}if(Y){var ee;J.push({...$(Y,e),type:u.Copy,text:((ee=Y.Label)===null||ee===void 0?void 0:ee.toString())??r.getLibraryResourceBundle("sap.fe.core").getText("C_COMMON_COPY")})}const te=M(e.getEntityType(),false);te.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(t=>{var i,n,o,a,l,r;if(((i=t.RequiresContext)===null||i===void 0?void 0:i.valueOf())===true){throw new Error(`RequiresContext property should not be true for header IBN action : ${t.Label}`)}if(((n=t.Inline)===null||n===void 0?void 0:n.valueOf())===true){throw new Error(`Inline property should not be true for header IBN action : ${t.Label}`)}const d={semanticObjectMapping:P(t.Mapping)};J.push({type:u.DataFieldForIntentBasedNavigation,text:(o=t.Label)===null||o===void 0?void 0:o.toString(),annotationPath:e.getEntitySetBasedAnnotationPath(t.fullyQualifiedName),buttonType:U.Ghost,visible:I(O(E(D(A((a=t.annotations)===null||a===void 0?void 0:(l=a.UI)===null||l===void 0?void 0:l.Hidden),true)),E(D(b("shellNavigationNotAvailable","internal"),true)))),enabled:t.NavigationAvailable!==undefined?I(D(A((r=t.NavigationAvailable)===null||r===void 0?void 0:r.valueOf()),true)):true,key:S.generateKeyFromDataField(t),isNavigable:true,press:I(m("._intentBasedNavigation.navigate",[A(t.SemanticObject),A(t.Action),d])),customData:I({semanticObject:A(t.SemanticObject),action:A(t.Action)})})});z.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(t=>{J.push($(t,e))});return J}s.getHeaderDefaultActions=L;function K(e){var t,i,n;const o=e.getEntityType();const a=((t=o.annotations)===null||t===void 0?void 0:(i=t.UI)===null||i===void 0?void 0:(n=i.Identification)===null||n===void 0?void 0:n.filter(e=>{var t,i,n;return(e===null||e===void 0?void 0:(t=e.annotations)===null||t===void 0?void 0:(i=t.UI)===null||i===void 0?void 0:(n=i.Hidden)===null||n===void 0?void 0:n.valueOf())===true}))||[];return a.map(e=>({type:u.Default,key:S.generateKeyFromDataField(e)}))}s.getHiddenHeaderActions=K;function W(e,t){var i,n,a,l;const r=t.getEntitySet();const d=t.getEntityType();const v=o.getStickySession(r),s=g(r)&&(((i=r.annotations.Common)===null||i===void 0?void 0:(n=i.DraftRoot)===null||n===void 0?void 0:n.term)??((a=r.annotations.Session)===null||a===void 0?void 0:(l=a.StickySessionSupported)===null||l===void 0?void 0:l.term)),c=Boolean(s==="com.sap.vocabularies.Common.v1.DraftRoot"||v&&(v===null||v===void 0?void 0:v.SaveAction)),f=e>1,p=Boolean(s==="com.sap.vocabularies.Common.v1.DraftRoot"||v&&(v===null||v===void 0?void 0:v.DiscardAction));const y=H(t.getEntityType(),true);const b=y.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)>-1).map(e=>$(e,t));if((r===null||r===void 0?void 0:r.entityTypeName)===(d===null||d===void 0?void 0:d.fullyQualifiedName)&&c){b.push({type:u.Primary,key:"SaveAction"})}if(f){b.push({type:u.DefaultApply,key:"ApplyAction"})}y.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(e=>{b.push($(e,t))});if(p){b.push({type:u.Secondary,key:"CancelAction",position:{placement:T.End}})}return b}s.getFooterDefaultActions=W;function $(e,t){var i,n;return{type:u.DataFieldForAction,annotationPath:t.getEntitySetBasedAnnotationPath(e.fullyQualifiedName),key:S.generateKeyFromDataField(e),visible:I(E(D(A((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:n.Hidden),true))),enabled:B(t,e.ActionTarget),isNavigable:true}}return s},false);
6
6
  //# sourceMappingURL=HeaderAndFooterAction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderAndFooterAction.js","names":["sap","ui","define","Action","ConfigurableObject","Key","BindingToolkit","ModelHelper","DataModelPathHelper","Core","BindingHelper","ManifestSettings","_exports","ActionType","UI","singletonPathVisitor","Draft","isPathDeletable","pathInModel","not","ifElse","getExpressionFromAnnotation","fn","equal","constant","compileExpression","and","KeyHelper","Placement","getSemanticObjectMapping","getEnabledForAnnotationAction","getCopyAction","dataFieldIsCopyAction","ButtonType","getIdentificationDataFieldForActions","entityType","isDeterminingAction","_entityType$annotatio","_entityType$annotatio2","_entityType$annotatio3","annotations","Identification","filter","identificationDataField","_identificationDataFi","_identificationDataFi2","_identificationDataFi3","_identificationDataFi4","_identificationDataFi5","_identificationDataFi6","_identificationDataFi7","_identificationDataFi8","_identificationDataFi9","_identificationDataFi10","Hidden","valueOf","$Type","Boolean","Determining","ActionTarget","isBound","OperationAvailable","getIdentificationDataFieldForIBNActions","_entityType$annotatio4","_entityType$annotatio5","_entityType$annotatio6","_identificationDataFi11","_identificationDataFi12","_identificationDataFi13","_identificationDataFi14","IMPORTANT_CRITICALITIES","getDeleteButtonVisibility","converterContext","deleteHidden","dataModelObjectPath","getDataModelObjectPath","visitedNavigationPaths","navigationProperties","map","navProp","name","deleteHiddenExpression","undefined","path","getConvertedTypes","manifestWrapper","getManifestWrapper","viewLevel","getViewLevel","editableExpression","IsEditable","getDeleteButtonEnabled","isDeletable","isParentDeletable","entitySet","getEntitySet","isDraftRoot","ret","getEditButtonVisibility","rootUpdateHidden","rootConverterContext","updateHidden","rootEntitySet","isFCLEnabled","isFclEnabled","isDraftEnabled","rootUpdateHiddenExpression","getHiddenExpression","isDraftNode","updateHiddenExpression","notEditableExpression","resultantExpression","HasNoDraftForCurrentUser","getEditButtonEnabled","updateRestrictions","isSticky","editActionName","isSingleton","_annotations$Common","_annotations$Common$D","Common","DraftRoot","EditAction","_annotations$Session","_annotations$Session$","Session","StickySessionSupported","_editAction$annotatio","_editAction$annotatio2","editActionAnnotationPath","getAbsoluteAnnotationPath","editAction","resolveAbsolutePath","target","getHeaderDefaultActions","_entitySet$annotation","_entitySet$annotation2","_entitySet$annotation3","_entitySet$annotation4","_entityDeleteRestrict","sContextPath","getContextPath","rootEntitySetPath","getRootEntitySetPath","getConverterContextFor","getEntityType","rootEntityType","stickySessionSupported","getStickySession","draftRoot","getDraftRoot","draftNode","getDraftNode","entityDeleteRestrictions","Capabilities","DeleteRestrictions","isUpdateHidden","pathVisitor","navigationPaths","parentEntitySetDeletable","identificationFieldForActions","copyDataField","dataField","headerDataFieldForActions","headerActions","push","type","DraftActions","key","updatablePropertyPath","UpdateRestrictions","Updatable","CollaborationAvatars","indexOf","Criticality","forEach","getDataFieldAnnotationAction","Primary","visible","enabled","Deletable","getDeleteHidden","Secondary","parentEntityDeleteEnabled","_copyDataField$Label","Copy","text","Label","toString","getLibraryResourceBundle","getText","headerDataFieldForIBNActions","_dataField$RequiresCo","_dataField$Inline","_dataField$Label","_dataField$annotation","_dataField$annotation2","_dataField$Navigation","RequiresContext","Error","Inline","oNavigationParams","semanticObjectMapping","Mapping","DataFieldForIntentBasedNavigation","annotationPath","getEntitySetBasedAnnotationPath","fullyQualifiedName","buttonType","Ghost","NavigationAvailable","generateKeyFromDataField","isNavigable","press","SemanticObject","customData","semanticObject","action","getHiddenHeaderActions","_entityType$annotatio7","_entityType$annotatio8","_entityType$annotatio9","hiddenActions","_identificationDataFi15","_identificationDataFi16","_identificationDataFi17","Default","getFooterDefaultActions","_entitySet$annotation5","_entitySet$annotation6","_entitySet$annotation7","_entitySet$annotation8","_entitySet$annotation9","entitySetDraftRoot","term","conditionSave","SaveAction","conditionApply","conditionCancel","DiscardAction","footerDataFieldForActions","footerActions","entityTypeName","DefaultApply","position","placement","End","_dataField$annotation3","_dataField$annotation4","DataFieldForAction"],"sources":["HeaderAndFooterAction-dbg.js"],"mappings":"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"}
1
+ {"version":3,"file":"HeaderAndFooterAction.js","names":["sap","ui","define","Action","ConfigurableObject","Key","BindingToolkit","ModelHelper","TypeGuards","DataModelPathHelper","Core","BindingHelper","ManifestSettings","_exports","ActionType","UI","singletonPathVisitor","Draft","isPathDeletable","isEntitySet","pathInModel","not","ifElse","getExpressionFromAnnotation","fn","equal","constant","compileExpression","and","KeyHelper","Placement","getSemanticObjectMapping","getEnabledForAnnotationAction","getCopyAction","dataFieldIsCopyAction","ButtonType","getIdentificationDataFieldForActions","entityType","isDeterminingAction","_entityType$annotatio","_entityType$annotatio2","_entityType$annotatio3","annotations","Identification","filter","identificationDataField","_identificationDataFi","_identificationDataFi2","_identificationDataFi3","_identificationDataFi4","_identificationDataFi5","_identificationDataFi6","_identificationDataFi7","_identificationDataFi8","_identificationDataFi9","_identificationDataFi10","Hidden","valueOf","$Type","Boolean","Determining","ActionTarget","isBound","OperationAvailable","getIdentificationDataFieldForIBNActions","_entityType$annotatio4","_entityType$annotatio5","_entityType$annotatio6","_identificationDataFi11","_identificationDataFi12","_identificationDataFi13","_identificationDataFi14","IMPORTANT_CRITICALITIES","getDeleteButtonVisibility","converterContext","deleteHidden","dataModelObjectPath","getDataModelObjectPath","visitedNavigationPaths","navigationProperties","map","navProp","name","deleteHiddenExpression","undefined","path","getConvertedTypes","manifestWrapper","getManifestWrapper","viewLevel","getViewLevel","editableExpression","IsEditable","getDeleteButtonEnabled","isDeletable","isParentDeletable","entitySet","getEntitySet","isDraftRoot","ret","getEditButtonVisibility","rootUpdateHidden","rootConverterContext","updateHidden","rootEntitySet","isFCLEnabled","isFclEnabled","isDraftEnabled","rootUpdateHiddenExpression","getHiddenExpression","isDraftNode","updateHiddenExpression","notEditableExpression","resultantExpression","HasNoDraftForCurrentUser","getEditButtonEnabled","updateRestrictions","isSticky","editActionName","_entitySet$annotation","_entitySet$annotation2","Common","DraftRoot","EditAction","_entitySet$annotation3","_entitySet$annotation4","Session","StickySessionSupported","_editAction$annotatio","_editAction$annotatio2","editActionAnnotationPath","getAbsoluteAnnotationPath","editAction","resolveAbsolutePath","target","getHeaderDefaultActions","_entitySet$annotation5","_entitySet$annotation6","_entitySet$annotation7","_entitySet$annotation8","_entityDeleteRestrict","sContextPath","getContextPath","rootEntitySetPath","getRootEntitySetPath","getConverterContextFor","getEntityType","rootEntityType","stickySessionSupported","getStickySession","draftRoot","getDraftRoot","draftNode","getDraftNode","entityDeleteRestrictions","Capabilities","DeleteRestrictions","isUpdateHidden","pathVisitor","navigationPaths","parentEntitySetDeletable","identificationFieldForActions","copyDataField","dataField","headerDataFieldForActions","headerActions","push","type","DraftActions","key","updatablePropertyPath","UpdateRestrictions","Updatable","CollaborationAvatars","indexOf","Criticality","forEach","getDataFieldAnnotationAction","Primary","visible","enabled","Deletable","getDeleteHidden","Secondary","parentEntityDeleteEnabled","_copyDataField$Label","Copy","text","Label","toString","getLibraryResourceBundle","getText","headerDataFieldForIBNActions","_dataField$RequiresCo","_dataField$Inline","_dataField$Label","_dataField$annotation","_dataField$annotation2","_dataField$Navigation","RequiresContext","Error","Inline","oNavigationParams","semanticObjectMapping","Mapping","DataFieldForIntentBasedNavigation","annotationPath","getEntitySetBasedAnnotationPath","fullyQualifiedName","buttonType","Ghost","NavigationAvailable","generateKeyFromDataField","isNavigable","press","SemanticObject","customData","semanticObject","action","getHiddenHeaderActions","_entityType$annotatio7","_entityType$annotatio8","_entityType$annotatio9","hiddenActions","_identificationDataFi15","_identificationDataFi16","_identificationDataFi17","Default","getFooterDefaultActions","_entitySet$annotation9","_entitySet$annotation10","_entitySet$annotation11","_entitySet$annotation12","entitySetDraftRoot","term","conditionSave","SaveAction","conditionApply","conditionCancel","DiscardAction","footerDataFieldForActions","footerActions","entityTypeName","DefaultApply","position","placement","End","_dataField$annotation3","_dataField$annotation4","DataFieldForAction"],"sources":["HeaderAndFooterAction-dbg.js"],"mappings":";;;;AAIAA,IAAIC,GAAGC,OAAO,CAAC,gDAAiD,oDAAqD,qCAAsC,qCAAsC,kCAAmC,iCAAkC,6CAA8C,mBAAoB,2BAA4B,uBAAwB,SAAUC,EAAQC,EAAoBC,EAAKC,EAAgBC,EAAaC,EAAYC,EAAqBC,EAAMC,EAAeC,GACxf,aAEA,IAAIC,EAAW,CAAC,EAChB,IAAIC,EAAaF,EAAiBE,WAClC,IAAIC,EAAKJ,EAAcI,GACvB,IAAIC,EAAuBL,EAAcK,qBACzC,IAAIC,EAAQN,EAAcM,MAC1B,IAAIC,EAAkBT,EAAoBS,gBAC1C,IAAIC,EAAcX,EAAWW,YAC7B,IAAIC,EAAcd,EAAec,YACjC,IAAIC,EAAMf,EAAee,IACzB,IAAIC,EAAShB,EAAegB,OAC5B,IAAIC,EAA8BjB,EAAeiB,4BACjD,IAAIC,EAAKlB,EAAekB,GACxB,IAAIC,EAAQnB,EAAemB,MAC3B,IAAIC,EAAWpB,EAAeoB,SAC9B,IAAIC,EAAoBrB,EAAeqB,kBACvC,IAAIC,EAAMtB,EAAesB,IACzB,IAAIC,EAAYxB,EAAIwB,UACpB,IAAIC,EAAY1B,EAAmB0B,UACnC,IAAIC,EAA2B5B,EAAO4B,yBACtC,IAAIC,EAAgC7B,EAAO6B,8BAC3C,IAAIC,EAAgB9B,EAAO8B,cAC3B,IAAIC,EAAwB/B,EAAO+B,sBACnC,IAAIC,EAAahC,EAAOgC,WAWxB,SAASC,EAAqCC,EAAYC,GACxD,IAAIC,EAAuBC,EAAwBC,EACnD,QAASF,EAAwBF,EAAWK,eAAiB,MAAQH,SAA+B,OAAS,GAAKC,EAAyBD,EAAsBxB,MAAQ,MAAQyB,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBG,kBAAoB,MAAQF,SAAgC,OAAS,EAAIA,EAAuBG,OAAOC,IACpX,IAAIC,EAAuBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAC3N,QAAST,EAAwBD,EAAwBH,eAAiB,MAAQI,SAA+B,OAAS,GAAKC,EAAyBD,EAAsB/B,MAAQ,MAAQgC,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBS,UAAY,MAAQR,SAAgC,OAAS,EAAIA,EAAuBS,aAAe,MAAQZ,EAAwBa,QAAU,iDAAmDC,SAASV,EAAyBJ,EAAwBe,eAAiB,MAAQX,SAAgC,OAAS,EAAIA,EAAuBQ,aAAenB,MAA0BY,EAAyBL,EAAwBgB,gBAAkB,MAAQX,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBY,WAAa,MAAQX,SAAgC,OAAS,EAAIA,EAAuBM,aAAe,OAASZ,IAA4B,MAAQA,SAAiC,OAAS,GAAKO,EAAyBP,EAAwBgB,gBAAkB,MAAQT,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBV,eAAiB,MAAQW,SAAgC,OAAS,GAAKC,EAAyBD,EAAuB3C,QAAU,MAAQ4C,SAAgC,OAAS,GAAKC,EAA0BD,EAAuBS,sBAAwB,MAAQR,SAAiC,OAAS,EAAIA,EAAwBE,aAAe,OAAS,KAAO,KAAK,KACniD,EACT,CAWA5C,EAASuB,qCAAuCA,EAChD,SAAS4B,EAAwC3B,EAAYC,GAC3D,IAAI2B,EAAwBC,EAAwBC,EACpD,QAASF,EAAyB5B,EAAWK,eAAiB,MAAQuB,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBlD,MAAQ,MAAQmD,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBvB,kBAAoB,MAAQwB,SAAgC,OAAS,EAAIA,EAAuBvB,OAAOC,IACvX,IAAIuB,EAAyBC,EAAyBC,EAAyBC,EAC/E,QAASH,EAA0BvB,EAAwBH,eAAiB,MAAQ0B,SAAiC,OAAS,GAAKC,EAA0BD,EAAwBrD,MAAQ,MAAQsD,SAAiC,OAAS,GAAKC,EAA0BD,EAAwBb,UAAY,MAAQc,SAAiC,OAAS,EAAIA,EAAwBb,aAAe,MAAQZ,EAAwBa,QAAU,gEAAkEC,SAASY,EAA0B1B,EAAwBe,eAAiB,MAAQW,SAAiC,OAAS,EAAIA,EAAwBd,aAAenB,EAAsB,KAAO,KAAK,KACjsB,EACT,CACA,MAAMkC,EAA0B,CAAC,kCAAmC,8BAA+B,8BAA+B,mCASlI3D,EAAS2D,wBAA0BA,EACnC,SAASC,EAA0BC,EAAkBC,GACnD,MAAMC,EAAsBF,EAAiBG,yBAC3CC,EAAyBF,EAAoBG,qBAAqBC,IAAIC,GAAWA,EAAQC,MAGzFC,EAAyB5D,EAA4BoD,EAAcG,EAAwBM,UAAWC,GAAQrE,EAAqBqE,EAAMX,EAAiBY,oBAAqB,KAC/KC,EAAkBb,EAAiBc,qBACnCC,EAAYF,EAAgBG,eAI5BC,EAAqBF,EAAY,EAAI1E,EAAG6E,WAAavE,EAAIN,EAAG6E,YAM9D,OAAOtE,EAAOqD,IAAiBS,WAAaT,EAAalB,YAAc,MAAOkC,EAAoB/D,EAAI+D,EAAoBlE,EAAM0D,EAAwB,QAC1J,CAUAtE,EAAS4D,0BAA4BA,EACrC,SAASoB,EAAuBC,EAAaC,EAAmBrB,GAC9D,MAAMsB,EAAYtB,EAAiBuB,eACjCC,EAAc3F,EAAY2F,YAAYF,GACxC,IAAIG,EAAM7E,EAAOyE,IAAsBX,UAAWW,EAAmBzE,EAAOwE,IAAgBV,UAAW3D,EAAMF,EAA4BuE,GAAc,MAAOpE,EAAS,QAGvKyE,EAAMD,EAActE,EAAIuE,EAAK9E,EAAID,EAAY,6CAA+C+E,EAC5F,OAAOA,CACT,CAYAtF,EAASgF,uBAAyBA,EAClC,SAASO,EAAwB1B,EAAkB2B,EAAkBC,EAAsBC,EAAcd,GACvG,MAAMe,EAAgBF,IAAyB,MAAQA,SAA8B,OAAS,EAAIA,EAAqBL,eACrHD,EAAYtB,EAAiBuB,eAC7BQ,EAAe/B,EAAiBc,qBAAqBkB,eACvD,IAAIC,EACJ,MAAMC,EAA6BC,EAAoBP,EAAsBD,GAC7E,GAAIZ,GAAaA,EAAY,EAAG,CAE9BkB,EAAiBpG,EAAYuG,YAAYd,EAC3C,KAAO,CACLW,EAAiBpG,EAAY2F,YAAYM,EAC3C,CACA,MAAMO,EAAyBF,EAAoBP,EAAsBC,GACzE,MAAMS,EAAwB3F,EAAIN,EAAG6E,YAMrC,MAAMqB,EAAsB3F,EAAOmE,EAAY,EAAGnE,EAAOiF,IAAiBnB,WAAamB,EAAa9C,YAAc,MAAO7B,EAAIoF,EAAuBvF,EAAML,EAAY,kBAAmB,YAAa,MAAOE,EAAOmF,EAAchF,EAAML,EAAY,kBAAmB,aAAc,MAAO,OAAQQ,EAAIoF,EAAuBvF,EAAMsF,EAAwB,OAAQtF,EAAML,EAAY,kBAAmB,YAAa,MAAOE,EAAOmF,EAAchF,EAAML,EAAY,kBAAmB,aAAc,MAAO,QAASE,EAAO+E,IAAqBjB,WAAaiB,EAAiB5C,YAAc,MAAOuD,EAAuBpF,EAAIoF,EAAuBvF,EAAMmF,EAA4B,UACzpB,OAAOtF,EAAOqF,EAAgB/E,EAAIqF,EAAqBhG,EAAMiG,0BAA2BD,EAC1F,CACApG,EAASuF,wBAA0BA,EACnC,SAASS,EAAoBnC,EAAkB6B,GAC7C,MAAM3B,EAAsBF,EAAiBG,yBAC3CC,EAAyBF,EAAoBG,qBAAqBC,IAAIC,GAAWA,EAAQC,MAGzF6B,EAAyBxF,EAA4BgF,EAAczB,EAAwBM,UAAWC,GAAQrE,EAAqBqE,EAAMX,EAAiBY,oBAAqBR,IACjL,OAAOiC,CACT,CASAlG,EAASgG,oBAAsBA,EAC/B,SAASM,EAAqBzC,EAAkB0C,EAAoB3B,GAClE,MAAMO,EAAYtB,EAAiBuB,eACjCC,EAAc3F,EAAY2F,YAAYF,GACtCqB,EAAW9G,EAAY8G,SAASrB,GAClC,IAAIsB,EACJ,GAAIpB,GAAe/E,EAAY6E,GAAY,CACzC,IAAIuB,EAAuBC,EAC3BF,GAAkBC,EAAwBvB,EAAUtD,YAAY+E,UAAY,MAAQF,SAA+B,OAAS,GAAKC,EAAyBD,EAAsBG,aAAe,MAAQF,SAAgC,OAAS,EAAIA,EAAuBG,UAC7Q,MAAO,GAAIN,GAAYlG,EAAY6E,GAAY,CAC7C,IAAI4B,EAAwBC,EAC5BP,GAAkBM,EAAyB5B,EAAUtD,YAAYoF,WAAa,MAAQF,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBG,0BAA4B,MAAQF,SAAgC,OAAS,EAAIA,EAAuBF,UAC9R,CACA,GAAIL,EAAgB,CAClB,IAAIU,EAAuBC,EAC3B,MAAMC,EAA2BxD,EAAiByD,0BAA0Bb,GAC5E,MAAMc,EAAa1D,EAAiB2D,oBAAoBH,GAA0BI,OAClF,IAAKF,IAAe,MAAQA,SAAoB,OAAS,GAAKJ,EAAwBI,EAAW1F,eAAiB,MAAQsF,SAA+B,OAAS,GAAKC,EAAyBD,EAAsBtH,QAAU,MAAQuH,SAAgC,OAAS,EAAIA,EAAuBlE,sBAAwB,KAAM,CAG1U,MAAO,GAAI0B,EAAY,EAAG,CAExB,GAAI2B,IAAuBhC,UAAW,CACpC,OAAOzD,EAAkBC,EAAIH,EAAMF,EAA4B6F,GAAqB,MAAO3F,EAAML,EAAY,kBAAmB,YAAa,OAC/I,KAAO,CACL,OAAOO,EAAkBF,EAAML,EAAY,kBAAmB,YAAa,MAC7E,CACF,KAAO,CACL,OAAOY,EAA8B0C,EAAkB0D,GAAchD,UACvE,CACF,CACA,MAAO,MACT,CACAvE,EAASsG,qBAAuBA,EAChC,SAASoB,EAAwB7D,GAC/B,IAAI8D,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EACpG,MAAMC,EAAenE,EAAiBoE,iBACtC,MAAMC,EAAoBxI,EAAYyI,qBAAqBH,GAC3D,MAAMvC,EAAuB5B,EAAiBuE,uBAAuB,IAAMF,GAC3E,MAAM/C,EAAYtB,EAAiBuB,eACjC5D,EAAaqC,EAAiBwE,gBAC9B1C,EAAgBF,EAAqBL,eACrCkD,EAAiB7C,EAAqB4C,gBACtCE,EAAyB7I,EAAY8I,iBAAiB7C,GAEtD8C,EAAY/I,EAAYgJ,aAAa/C,GAErCgD,EAAYjJ,EAAYkJ,aAAajD,GACrCkD,EAA2B1D,KAAewC,EAAyBxC,EAAUtD,eAAiB,MAAQ8F,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBmB,gBAAkB,MAAQlB,SAAgC,OAAS,EAAIA,EAAuBmB,oBAClSvD,EAAmB9F,EAAYsJ,eAAerD,EAAe2C,GAC7D5C,EAAeC,GAAiBrF,EAAYqF,KAAmBH,IAAqB,MAAQA,SAA0B,OAAS,EAAIA,EAAiB5C,WACpJmB,EAAsBF,EAAiBG,yBACvCkB,EAAoB7E,EAAgB0D,EAAqB,CACvDkF,YAAa,CAACzE,EAAM0E,IAAoB/I,EAAqBqE,EAAMX,EAAiBY,oBAAqByE,KAE3GC,EAA2BjE,EAAoBpE,EAAkBoE,GAAqBA,EACtFkE,EAAgC7H,EAAqCsC,EAAiBwE,gBAAiB,OACzG,MAAMgB,EAAgBxF,EAAiBc,qBAAqBE,iBAAmB,EAAIzD,EAAcgI,EAA8BrH,OAAOuH,GAC7HjI,EAAsBiI,KACzB/E,UACN,MAAMgF,EAA4BH,EAA8BrH,OAAOuH,IAC7DjI,EAAsBiI,IAQhC,MAAME,EAAgB,GACtB,GAAIlJ,EAAY6E,IAAcsD,IAAc,MAAQA,SAAmB,GAAKA,EAAU3B,YAAcpB,IAAiB,KAAM,CACzH8D,EAAcC,KAAK,CACjBC,KAAMzJ,EAAW0J,aACjBC,IAAK,gBAET,CACA,MAAMhF,EAAYf,EAAiBc,qBAAqBE,eACxD,MAAMgF,EAAwBjF,EAAY,EAAIO,IAAc,MAAQA,SAAmB,OAAS,GAAK0C,EAAyB1C,EAAUtD,YAAYiH,gBAAkB,MAAQjB,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBiC,sBAAwB,MAAQhC,SAAgC,OAAS,EAAIA,EAAuBiC,UAAYxF,UAC5X,GAAIkE,GAAaE,EAAW,CAC1Ba,EAAcC,KAAK,CACjBC,KAAMzJ,EAAW+J,qBACjBJ,IAAK,wBAET,CAEAL,EAA0BxH,OAAOuH,GACxB3F,EAAwBsG,QAAQX,IAAc,MAAQA,SAAmB,OAAS,EAAIA,EAAUY,cAAgB,GACtHC,QAAQb,IACTE,EAAcC,KAAKW,EAA6Bd,EAAWzF,GAAkB,GAI/E,IAAK4E,IAAc,MAAQA,SAAmB,GAAKA,EAAU3B,YAAcyB,IAA2B,MAAQA,SAAgC,GAAKA,EAAuBzB,aAAepB,IAAiB,KAAM,CAC9M8D,EAAcC,KAAK,CACjBC,KAAMzJ,EAAWoK,QACjBT,IAAK,aACLU,QAASxJ,EAAkByE,EAAwB1B,EAAkB2B,EAAkBC,EAAsB/F,EAAYsJ,eAAe7D,EAAW3D,GAAaoD,IAChK2F,QAASjE,EAAqBb,EAAsBoE,EAAuBjF,IAE/E,CAEA,GAAIuE,GAA4BA,IAA6B,UAAYN,IAA6B,MAAQA,SAAkC,OAAS,GAAKd,EAAwBc,EAAyB2B,aAAe,MAAQzC,SAA+B,OAAS,EAAIA,EAAsBnF,aAAe,OAASuG,IAA6B,QAAS,CACpW,MAAMrF,EAAepE,EAAY+K,gBAAgBtF,EAAW3D,GAC5DgI,EAAcC,KAAK,CACjBC,KAAMzJ,EAAWyK,UACjBd,IAAK,eACLU,QAASxJ,EAAkB8C,EAA0BC,EAAkBC,IACvEyG,QAASzJ,EAAkBkE,EAAuB6D,IAA6B,MAAQA,SAAkC,OAAS,EAAIA,EAAyB2B,UAAWtF,EAAmBrB,IAC7L8G,0BAA2BxB,GAE/B,CACA,GAAIE,EAAe,CACjB,IAAIuB,GACJpB,EAAcC,KAAK,IACdW,EAA6Bf,EAAexF,GAC/C6F,KAAMzJ,EAAW4K,KACjBC,OAAQF,GAAuBvB,EAAc0B,SAAW,MAAQH,UAA8B,OAAS,EAAIA,GAAqBI,aAAenL,EAAKoL,yBAAyB,eAAeC,QAAQ,kBAExM,CACA,MAAMC,GAA+BhI,EAAwCU,EAAiBwE,gBAAiB,OAC/G8C,GAA6BpJ,OAAOuH,GAC3B3F,EAAwBsG,QAAQX,IAAc,MAAQA,SAAmB,OAAS,EAAIA,EAAUY,gBAAkB,GACxHC,QAAQb,IACT,IAAI8B,EAAuBC,EAAmBC,EAAkBC,EAAuBC,EAAwBC,EAC/G,KAAML,EAAwB9B,EAAUoC,mBAAqB,MAAQN,SAA+B,OAAS,EAAIA,EAAsBxI,aAAe,KAAM,CAC1J,MAAM,IAAI+I,MAAM,uEAAuErC,EAAUyB,QACnG,CACA,KAAMM,EAAoB/B,EAAUsC,UAAY,MAAQP,SAA2B,OAAS,EAAIA,EAAkBzI,aAAe,KAAM,CACrI,MAAM,IAAI+I,MAAM,8DAA8DrC,EAAUyB,QAC1F,CACA,MAAMc,EAAoB,CACxBC,sBAAuB5K,EAAyBoI,EAAUyC,UAE5DvC,EAAcC,KAAK,CACjBC,KAAMzJ,EAAW+L,kCACjBlB,MAAOQ,EAAmBhC,EAAUyB,SAAW,MAAQO,SAA0B,OAAS,EAAIA,EAAiBN,WAC/GiB,eAAgBpI,EAAiBqI,gCAAgC5C,EAAU6C,oBAC3EC,WAAY9K,EAAW+K,MACvB/B,QAASxJ,EAAkBC,EAAIP,EAAII,EAAMF,GAA6B6K,EAAwBjC,EAAUzH,eAAiB,MAAQ0J,SAA+B,OAAS,GAAKC,EAAyBD,EAAsBrL,MAAQ,MAAQsL,SAAgC,OAAS,EAAIA,EAAuB7I,QAAS,OAAQnC,EAAII,EAAML,EAAY,8BAA+B,YAAa,SACpYgK,QAASjB,EAAUgD,sBAAwB/H,UAAYzD,EAAkBF,EAAMF,GAA6B+K,EAAwBnC,EAAUgD,uBAAyB,MAAQb,SAA+B,OAAS,EAAIA,EAAsB7I,WAAY,OAAS,KACtQgH,IAAK5I,EAAUuL,yBAAyBjD,GACxCkD,YAAa,KACbC,MAAO3L,EAAkBH,EAAG,mCAAoC,CAACD,EAA4B4I,EAAUoD,gBAAiBhM,EAA4B4I,EAAUhK,QAASuM,KACvKc,WAAY7L,EAAkB,CAC5B8L,eAAgBlM,EAA4B4I,EAAUoD,gBACtDG,OAAQnM,EAA4B4I,EAAUhK,WAEhD,GAGJiK,EAA0BxH,OAAOuH,GACxB3F,EAAwBsG,QAAQX,IAAc,MAAQA,SAAmB,OAAS,EAAIA,EAAUY,gBAAkB,GACxHC,QAAQb,IACTE,EAAcC,KAAKW,EAA6Bd,EAAWzF,GAAkB,GAE/E,OAAO2F,CACT,CACAxJ,EAAS0H,wBAA0BA,EACnC,SAASoF,EAAuBjJ,GAC9B,IAAIkJ,EAAwBC,EAAwBC,EACpD,MAAMzL,EAAaqC,EAAiBwE,gBACpC,MAAM6E,IAAkBH,EAAyBvL,EAAWK,eAAiB,MAAQkL,SAAgC,OAAS,GAAKC,EAAyBD,EAAuB7M,MAAQ,MAAQ8M,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBlL,kBAAoB,MAAQmL,SAAgC,OAAS,EAAIA,EAAuBlL,OAAOC,IACtY,IAAImL,EAAyBC,EAAyBC,EACtD,OAAQrL,IAA4B,MAAQA,SAAiC,OAAS,GAAKmL,EAA0BnL,EAAwBH,eAAiB,MAAQsL,SAAiC,OAAS,GAAKC,EAA0BD,EAAwBjN,MAAQ,MAAQkN,SAAiC,OAAS,GAAKC,EAA0BD,EAAwBzK,UAAY,MAAQ0K,SAAiC,OAAS,EAAIA,EAAwBzK,aAAe,IAAI,KAChe,GACP,OAAOsK,EAAc/I,IAAImF,IAChB,CACLI,KAAMzJ,EAAWqN,QACjB1D,IAAK5I,EAAUuL,yBAAyBjD,KAG9C,CACAtJ,EAAS8M,uBAAyBA,EAClC,SAASS,EAAwB3I,EAAWf,GAC1C,IAAI2J,EAAwBC,EAAyBC,EAAyBC,EAC9E,MAAMxI,EAAYtB,EAAiBuB,eACnC,MAAM5D,EAAaqC,EAAiBwE,gBACpC,MAAME,EAAyB7I,EAAY8I,iBAAiBrD,GAE1DyI,EAAqBtN,EAAY6E,OAAiBqI,EAAyBrI,EAAUtD,YAAY+E,UAAY,MAAQ4G,SAAgC,OAAS,GAAKC,EAA0BD,EAAuB3G,aAAe,MAAQ4G,SAAiC,OAAS,EAAIA,EAAwBI,SAAWH,EAA0BvI,EAAUtD,YAAYoF,WAAa,MAAQyG,SAAiC,OAAS,GAAKC,EAA0BD,EAAwBxG,0BAA4B,MAAQyG,SAAiC,OAAS,EAAIA,EAAwBE,OAC5kBC,EAAgBhL,QAAQ8K,IAAuB,4CAA8CrF,IAA2BA,IAA2B,MAAQA,SAAgC,OAAS,EAAIA,EAAuBwF,aAC/NC,EAAiBpJ,EAAY,EAC7BqJ,EAAkBnL,QAAQ8K,IAAuB,4CAA8CrF,IAA2BA,IAA2B,MAAQA,SAAgC,OAAS,EAAIA,EAAuB2F,gBAGnO,MAAMC,EAA4B5M,EAAqCsC,EAAiBwE,gBAAiB,MAGzG,MAAM+F,EAAgBD,EAA0BpM,OAAOuH,GAC9C3F,EAAwBsG,QAAQX,IAAc,MAAQA,SAAmB,OAAS,EAAIA,EAAUY,cAAgB,GACtH/F,IAAImF,GACEc,EAA6Bd,EAAWzF,IAIjD,IAAKsB,IAAc,MAAQA,SAAmB,OAAS,EAAIA,EAAUkJ,mBAAqB7M,IAAe,MAAQA,SAAoB,OAAS,EAAIA,EAAW2K,qBAAuB2B,EAAe,CACjMM,EAAc3E,KAAK,CACjBC,KAAMzJ,EAAWoK,QACjBT,IAAK,cAET,CAGA,GAAIoE,EAAgB,CAClBI,EAAc3E,KAAK,CACjBC,KAAMzJ,EAAWqO,aACjB1E,IAAK,eAET,CAGAuE,EAA0BpM,OAAOuH,GACxB3F,EAAwBsG,QAAQX,IAAc,MAAQA,SAAmB,OAAS,EAAIA,EAAUY,gBAAkB,GACxHC,QAAQb,IACT8E,EAAc3E,KAAKW,EAA6Bd,EAAWzF,GAAkB,GAI/E,GAAIoK,EAAiB,CACnBG,EAAc3E,KAAK,CACjBC,KAAMzJ,EAAWyK,UACjBd,IAAK,eACL2E,SAAU,CACRC,UAAWvN,EAAUwN,MAG3B,CACA,OAAOL,CACT,CACApO,EAASuN,wBAA0BA,EACnC,SAASnD,EAA6Bd,EAAWzF,GAC/C,IAAI6K,EAAwBC,EAC5B,MAAO,CACLjF,KAAMzJ,EAAW2O,mBACjB3C,eAAgBpI,EAAiBqI,gCAAgC5C,EAAU6C,oBAC3EvC,IAAK5I,EAAUuL,yBAAyBjD,GACxCgB,QAASxJ,EAAkBN,EAAII,EAAMF,GAA6BgO,EAAyBpF,EAAUzH,eAAiB,MAAQ6M,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBxO,MAAQ,MAAQyO,SAAgC,OAAS,EAAIA,EAAuBhM,QAAS,QACzT4H,QAASpJ,EAA8B0C,EAAkByF,EAAUtG,cACnEwJ,YAAa,KAEjB,CACA,OAAOxM,CACT,EAAG"}
@@ -1,4 +1,4 @@
1
- import type { Action, EntitySet, EntityType, PropertyAnnotationValue } from "@sap-ux/vocabularies-types";
1
+ import type { Action, EntityType, PropertyAnnotationValue } from "@sap-ux/vocabularies-types";
2
2
  import { CommonAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Common";
3
3
  import type { DataFieldForActionTypes, DataFieldForIntentBasedNavigationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
4
4
  import { UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
@@ -26,6 +26,7 @@ import {
26
26
  pathInModel
27
27
  } from "sap/fe/core/helpers/BindingToolkit";
28
28
  import ModelHelper from "sap/fe/core/helpers/ModelHelper";
29
+ import { isEntitySet } from "sap/fe/core/helpers/TypeGuards";
29
30
  import { isPathDeletable } from "sap/fe/core/templating/DataModelPathHelper";
30
31
  import Core from "sap/ui/core/Core";
31
32
  import type ConverterContext from "../ConverterContext";
@@ -141,7 +142,7 @@ export function getDeleteButtonEnabled(
141
142
  let ret = ifElse(
142
143
  isParentDeletable !== undefined,
143
144
  isParentDeletable,
144
- ifElse(isDeletable !== undefined, equal(isDeletable, true), constant(true))
145
+ ifElse(isDeletable !== undefined, equal(getExpressionFromAnnotation(isDeletable), true), constant(true))
145
146
  );
146
147
 
147
148
  // delete should be disabled for Locked objects
@@ -244,10 +245,10 @@ export function getEditButtonEnabled(
244
245
  isDraftRoot = ModelHelper.isDraftRoot(entitySet),
245
246
  isSticky = ModelHelper.isSticky(entitySet);
246
247
  let editActionName: string | undefined;
247
- if (isDraftRoot && !ModelHelper.isSingleton(entitySet)) {
248
- editActionName = (entitySet as EntitySet)?.annotations.Common?.DraftRoot?.EditAction as string;
249
- } else if (isSticky && !ModelHelper.isSingleton(entitySet)) {
250
- editActionName = (entitySet as EntitySet)?.annotations.Session?.StickySessionSupported?.EditAction as string;
248
+ if (isDraftRoot && isEntitySet(entitySet)) {
249
+ editActionName = entitySet.annotations.Common?.DraftRoot?.EditAction as string;
250
+ } else if (isSticky && isEntitySet(entitySet)) {
251
+ editActionName = entitySet.annotations.Session?.StickySessionSupported?.EditAction as string;
251
252
  }
252
253
  if (editActionName) {
253
254
  const editActionAnnotationPath = converterContext.getAbsoluteAnnotationPath(editActionName);
@@ -287,7 +288,7 @@ export function getHeaderDefaultActions(converterContext: ConverterContext): Bas
287
288
  draftNode = ModelHelper.getDraftNode(rootEntitySet),
288
289
  entityDeleteRestrictions = entitySet && entitySet.annotations?.Capabilities?.DeleteRestrictions,
289
290
  rootUpdateHidden = ModelHelper.isUpdateHidden(rootEntitySet, rootEntityType),
290
- updateHidden = rootEntitySet && !ModelHelper.isSingleton(rootEntitySet) && rootUpdateHidden?.valueOf(),
291
+ updateHidden = rootEntitySet && isEntitySet(rootEntitySet) && rootUpdateHidden?.valueOf(),
291
292
  dataModelObjectPath = converterContext.getDataModelObjectPath(),
292
293
  isParentDeletable = isPathDeletable(dataModelObjectPath, {
293
294
  pathVisitor: (path: string, navigationPaths: string[]) =>
@@ -315,7 +316,7 @@ export function getHeaderDefaultActions(converterContext: ConverterContext): Bas
315
316
  // the button for switching between draft and active document versions but also the controls for
316
317
  // the collaborative draft fragment.
317
318
  const headerActions: BaseAction[] = [];
318
- if (!ModelHelper.isSingleton(entitySet) && draftRoot?.EditAction && updateHidden !== true) {
319
+ if (isEntitySet(entitySet) && draftRoot?.EditAction && updateHidden !== true) {
319
320
  headerActions.push({ type: ActionType.DraftActions, key: "DraftActions" });
320
321
  }
321
322
 
@@ -450,9 +451,8 @@ export function getFooterDefaultActions(viewLevel: number, converterContext: Con
450
451
  const entityType = converterContext.getEntityType();
451
452
  const stickySessionSupported = ModelHelper.getStickySession(entitySet), //for sticky app
452
453
  entitySetDraftRoot =
453
- !ModelHelper.isSingleton(entitySet) &&
454
- entitySet &&
455
- (entitySet.annotations.Common?.DraftRoot?.term || entitySet.annotations?.Session?.StickySessionSupported?.term),
454
+ isEntitySet(entitySet) &&
455
+ (entitySet.annotations.Common?.DraftRoot?.term ?? entitySet.annotations.Session?.StickySessionSupported?.term),
456
456
  conditionSave = Boolean(
457
457
  entitySetDraftRoot === CommonAnnotationTerms.DraftRoot || (stickySessionSupported && stickySessionSupported?.SaveAction)
458
458
  ),