@sapui5/sap.fe.core 1.99.0 → 1.101.1

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 (289) hide show
  1. package/package.json +6 -4
  2. package/src/sap/fe/core/.library +2 -3
  3. package/src/sap/fe/core/AnnotationHelper.js +43 -92
  4. package/src/sap/fe/core/AnnotationHelper.ts +43 -107
  5. package/src/sap/fe/core/AppComponent.js +381 -399
  6. package/src/sap/fe/core/AppComponent.ts +397 -0
  7. package/src/sap/fe/core/AppStateHandler.js +131 -162
  8. package/src/sap/fe/core/AppStateHandler.ts +2 -2
  9. package/src/sap/fe/core/BaseController.js +82 -58
  10. package/src/sap/fe/core/BaseController.ts +67 -0
  11. package/src/sap/fe/core/CommonUtils.js +179 -31
  12. package/src/sap/fe/core/CommonUtils.ts +295 -125
  13. package/src/sap/fe/core/ExtensionAPI.js +279 -274
  14. package/src/sap/fe/core/ExtensionAPI.ts +242 -0
  15. package/src/sap/fe/core/PageController.js +158 -29
  16. package/src/sap/fe/core/PageController.ts +65 -37
  17. package/src/sap/fe/core/RouterProxy.js +700 -750
  18. package/src/sap/fe/core/RouterProxy.ts +47 -31
  19. package/src/sap/fe/core/Synchronization.js +21 -31
  20. package/src/sap/fe/core/TemplateComponent.js +193 -118
  21. package/src/sap/fe/core/TemplateComponent.ts +104 -109
  22. package/src/sap/fe/core/TemplateModel.js +24 -44
  23. package/src/sap/fe/core/TemplateModel.ts +3 -3
  24. package/src/sap/fe/core/TransactionHelper.js +1368 -1369
  25. package/src/sap/fe/core/TransactionHelper.ts +201 -171
  26. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +406 -0
  27. package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +362 -0
  28. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +146 -0
  29. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +129 -0
  30. package/src/sap/fe/core/actions/collaboration/Manage.js +264 -0
  31. package/src/sap/fe/core/actions/collaboration/Manage.ts +246 -0
  32. package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +100 -0
  33. package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
  34. package/src/sap/fe/core/actions/draft.js +324 -220
  35. package/src/sap/fe/core/actions/draft.ts +209 -133
  36. package/src/sap/fe/core/actions/messageHandling.js +79 -48
  37. package/src/sap/fe/core/actions/messageHandling.ts +113 -83
  38. package/src/sap/fe/core/actions/operations.js +37 -18
  39. package/src/sap/fe/core/actions/operations.ts +51 -20
  40. package/src/sap/fe/core/actions/sticky.js +17 -4
  41. package/src/sap/fe/core/actions/sticky.ts +21 -4
  42. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +60 -0
  43. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +37 -0
  44. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +165 -0
  45. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +178 -0
  46. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +707 -0
  47. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +628 -0
  48. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +436 -0
  49. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +431 -0
  50. package/src/sap/fe/core/controllerextensions/EditFlow.js +1854 -1669
  51. package/src/sap/fe/core/controllerextensions/EditFlow.ts +1792 -0
  52. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +79 -54
  53. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +60 -0
  54. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +716 -779
  55. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +785 -0
  56. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +796 -816
  57. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +810 -0
  58. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1056 -1005
  59. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +1001 -0
  60. package/src/sap/fe/core/controllerextensions/KPIManagement.js +498 -532
  61. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +13 -12
  62. package/src/sap/fe/core/controllerextensions/MassEdit.js +141 -169
  63. package/src/sap/fe/core/controllerextensions/MassEdit.ts +155 -0
  64. package/src/sap/fe/core/controllerextensions/MessageHandler.js +221 -244
  65. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +215 -0
  66. package/src/sap/fe/core/controllerextensions/PageReady.js +312 -345
  67. package/src/sap/fe/core/controllerextensions/PageReady.ts +57 -53
  68. package/src/sap/fe/core/controllerextensions/Paginator.js +188 -175
  69. package/src/sap/fe/core/controllerextensions/Paginator.ts +169 -0
  70. package/src/sap/fe/core/controllerextensions/Placeholder.js +157 -149
  71. package/src/sap/fe/core/controllerextensions/Placeholder.ts +149 -0
  72. package/src/sap/fe/core/controllerextensions/Routing.js +144 -125
  73. package/src/sap/fe/core/controllerextensions/Routing.ts +131 -0
  74. package/src/sap/fe/core/controllerextensions/RoutingListener.js +7 -6
  75. package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
  76. package/src/sap/fe/core/controllerextensions/Share.js +230 -268
  77. package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
  78. package/src/sap/fe/core/controllerextensions/SideEffects.js +603 -644
  79. package/src/sap/fe/core/controllerextensions/SideEffects.ts +68 -68
  80. package/src/sap/fe/core/controllerextensions/ViewState.js +774 -806
  81. package/src/sap/fe/core/controllerextensions/ViewState.ts +796 -0
  82. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
  83. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
  84. package/src/sap/fe/core/controls/Any.js +28 -0
  85. package/src/sap/fe/core/controls/Any.ts +30 -0
  86. package/src/sap/fe/core/controls/CommandExecution.js +92 -68
  87. package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
  88. package/src/sap/fe/core/controls/ConditionalWrapper.js +165 -79
  89. package/src/sap/fe/core/controls/ConditionalWrapper.ts +74 -0
  90. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +366 -0
  91. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +278 -0
  92. package/src/sap/fe/core/controls/CustomQuickViewPage.js +167 -125
  93. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +116 -0
  94. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +44 -5
  95. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +163 -122
  96. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +155 -0
  97. package/src/sap/fe/core/controls/FieldWrapper.js +212 -141
  98. package/src/sap/fe/core/controls/FieldWrapper.ts +104 -0
  99. package/src/sap/fe/core/controls/FileWrapper.js +313 -0
  100. package/src/sap/fe/core/controls/FileWrapper.ts +169 -0
  101. package/src/sap/fe/core/controls/FilterBar.js +197 -159
  102. package/src/sap/fe/core/controls/FilterBar.ts +148 -0
  103. package/src/sap/fe/core/controls/FormElementWrapper.js +100 -39
  104. package/src/sap/fe/core/controls/FormElementWrapper.ts +37 -0
  105. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +37 -42
  106. package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
  107. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +147 -115
  108. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +102 -0
  109. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +300 -265
  110. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +252 -0
  111. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +185 -140
  112. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
  113. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +335 -322
  114. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
  115. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +37 -42
  116. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +75 -74
  117. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +71 -0
  118. package/src/sap/fe/core/converters/ConverterContext.js +348 -379
  119. package/src/sap/fe/core/converters/ConverterContext.ts +19 -16
  120. package/src/sap/fe/core/converters/ManifestSettings.js +13 -1
  121. package/src/sap/fe/core/converters/ManifestSettings.ts +17 -2
  122. package/src/sap/fe/core/converters/ManifestWrapper.js +354 -378
  123. package/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
  124. package/src/sap/fe/core/converters/MetaModelConverter.js +6 -4
  125. package/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
  126. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  127. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  128. package/src/sap/fe/core/converters/annotations/DataField.js +26 -13
  129. package/src/sap/fe/core/converters/annotations/DataField.ts +40 -17
  130. package/src/sap/fe/core/converters/controls/Common/Action.js +10 -10
  131. package/src/sap/fe/core/converters/controls/Common/Action.ts +20 -19
  132. package/src/sap/fe/core/converters/controls/Common/Chart.js +8 -8
  133. package/src/sap/fe/core/converters/controls/Common/Chart.ts +12 -11
  134. package/src/sap/fe/core/converters/controls/Common/Form.js +6 -6
  135. package/src/sap/fe/core/converters/controls/Common/Form.ts +7 -3
  136. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  137. package/src/sap/fe/core/converters/controls/Common/KPI.ts +2 -2
  138. package/src/sap/fe/core/converters/controls/Common/Table.js +326 -86
  139. package/src/sap/fe/core/converters/controls/Common/Table.ts +384 -167
  140. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +120 -55
  141. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +158 -98
  142. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +206 -223
  143. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +263 -287
  144. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +6 -6
  145. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +20 -18
  146. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +5 -2
  147. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +4 -1
  148. package/src/sap/fe/core/converters/helpers/Aggregation.js +115 -133
  149. package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
  150. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
  151. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
  152. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
  153. package/src/sap/fe/core/converters/helpers/Key.js +42 -57
  154. package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  155. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  156. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -4
  157. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +51 -27
  158. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +69 -43
  159. package/src/sap/fe/core/converters/templates/ListReportConverter.js +42 -25
  160. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +91 -65
  161. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +11 -9
  162. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +8 -8
  163. package/src/sap/fe/core/designtime/AppComponent.designtime.js +92 -98
  164. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
  165. package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
  166. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
  167. package/src/sap/fe/core/formatters/KPIFormatter.js +3 -12
  168. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -2
  169. package/src/sap/fe/core/formatters/TableFormatter.js +53 -2
  170. package/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
  171. package/src/sap/fe/core/formatters/ValueFormatter.js +4 -4
  172. package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -7
  173. package/src/sap/fe/core/fpm/Component.js +80 -55
  174. package/src/sap/fe/core/fpm/Component.ts +43 -0
  175. package/src/sap/fe/core/helpers/AppStartupHelper.js +323 -309
  176. package/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
  177. package/src/sap/fe/core/helpers/BindingExpression.js +7 -7
  178. package/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
  179. package/src/sap/fe/core/helpers/ClassSupport.js +307 -166
  180. package/src/sap/fe/core/helpers/ClassSupport.ts +348 -155
  181. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +5 -4
  182. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
  183. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  184. package/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
  185. package/src/sap/fe/core/helpers/MassEditHelper.js +735 -684
  186. package/src/sap/fe/core/helpers/MassEditHelper.ts +803 -0
  187. package/src/sap/fe/core/helpers/ModelHelper.js +53 -1
  188. package/src/sap/fe/core/helpers/ModelHelper.ts +46 -0
  189. package/src/sap/fe/core/helpers/PasteHelper.js +4 -4
  190. package/src/sap/fe/core/helpers/PasteHelper.ts +4 -3
  191. package/src/sap/fe/core/helpers/SemanticDateOperators.js +7 -3
  192. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +7 -1
  193. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  194. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  195. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -7
  196. package/src/sap/fe/core/helpers/StableIdHelper.ts +0 -4
  197. package/src/sap/fe/core/jsx-runtime/jsx.js +35 -5
  198. package/src/sap/fe/core/jsx-runtime/jsx.ts +22 -8
  199. package/src/sap/fe/core/library.js +425 -451
  200. package/src/sap/fe/core/library.support.js +22 -33
  201. package/src/sap/fe/core/library.support.ts +23 -0
  202. package/src/sap/fe/core/library.ts +420 -0
  203. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -3
  204. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -4
  205. package/src/sap/fe/core/messagebundle.properties +45 -13
  206. package/src/sap/fe/core/messagebundle_ar.properties +29 -7
  207. package/src/sap/fe/core/messagebundle_bg.properties +29 -7
  208. package/src/sap/fe/core/messagebundle_ca.properties +29 -7
  209. package/src/sap/fe/core/messagebundle_cs.properties +29 -7
  210. package/src/sap/fe/core/messagebundle_cy.properties +29 -7
  211. package/src/sap/fe/core/messagebundle_da.properties +29 -7
  212. package/src/sap/fe/core/messagebundle_de.properties +29 -7
  213. package/src/sap/fe/core/messagebundle_el.properties +29 -7
  214. package/src/sap/fe/core/messagebundle_en.properties +29 -7
  215. package/src/sap/fe/core/messagebundle_en_GB.properties +29 -7
  216. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +29 -7
  217. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +29 -7
  218. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +29 -7
  219. package/src/sap/fe/core/messagebundle_es.properties +29 -7
  220. package/src/sap/fe/core/messagebundle_es_MX.properties +29 -7
  221. package/src/sap/fe/core/messagebundle_et.properties +29 -7
  222. package/src/sap/fe/core/messagebundle_fi.properties +30 -8
  223. package/src/sap/fe/core/messagebundle_fr.properties +31 -9
  224. package/src/sap/fe/core/messagebundle_fr_CA.properties +31 -9
  225. package/src/sap/fe/core/messagebundle_hi.properties +29 -7
  226. package/src/sap/fe/core/messagebundle_hr.properties +29 -7
  227. package/src/sap/fe/core/messagebundle_hu.properties +29 -7
  228. package/src/sap/fe/core/messagebundle_id.properties +29 -7
  229. package/src/sap/fe/core/messagebundle_it.properties +29 -7
  230. package/src/sap/fe/core/messagebundle_iw.properties +29 -7
  231. package/src/sap/fe/core/messagebundle_ja.properties +28 -6
  232. package/src/sap/fe/core/messagebundle_kk.properties +29 -7
  233. package/src/sap/fe/core/messagebundle_ko.properties +29 -7
  234. package/src/sap/fe/core/messagebundle_lt.properties +29 -7
  235. package/src/sap/fe/core/messagebundle_lv.properties +30 -8
  236. package/src/sap/fe/core/messagebundle_ms.properties +29 -7
  237. package/src/sap/fe/core/messagebundle_nl.properties +29 -7
  238. package/src/sap/fe/core/messagebundle_no.properties +29 -7
  239. package/src/sap/fe/core/messagebundle_pl.properties +29 -7
  240. package/src/sap/fe/core/messagebundle_pt.properties +30 -8
  241. package/src/sap/fe/core/messagebundle_pt_PT.properties +29 -7
  242. package/src/sap/fe/core/messagebundle_ro.properties +29 -7
  243. package/src/sap/fe/core/messagebundle_ru.properties +29 -7
  244. package/src/sap/fe/core/messagebundle_sh.properties +29 -7
  245. package/src/sap/fe/core/messagebundle_sk.properties +29 -7
  246. package/src/sap/fe/core/messagebundle_sl.properties +29 -7
  247. package/src/sap/fe/core/messagebundle_sv.properties +30 -8
  248. package/src/sap/fe/core/messagebundle_th.properties +28 -6
  249. package/src/sap/fe/core/messagebundle_tr.properties +32 -10
  250. package/src/sap/fe/core/messagebundle_uk.properties +29 -7
  251. package/src/sap/fe/core/messagebundle_vi.properties +29 -7
  252. package/src/sap/fe/core/messagebundle_zh_CN.properties +29 -7
  253. package/src/sap/fe/core/messagebundle_zh_TW.properties +29 -7
  254. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +47 -73
  255. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +1 -1
  256. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +158 -196
  257. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +5 -6
  258. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +70 -96
  259. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +7 -6
  260. package/src/sap/fe/core/services/NavigationServiceFactory.js +287 -342
  261. package/src/sap/fe/core/services/NavigationServiceFactory.ts +11 -14
  262. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +70 -105
  263. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +6 -3
  264. package/src/sap/fe/core/services/RoutingServiceFactory.js +796 -820
  265. package/src/sap/fe/core/services/RoutingServiceFactory.ts +62 -53
  266. package/src/sap/fe/core/services/ShellServicesFactory.js +694 -741
  267. package/src/sap/fe/core/services/ShellServicesFactory.ts +33 -33
  268. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +570 -595
  269. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +23 -4
  270. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +357 -389
  271. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +25 -29
  272. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +43 -5
  273. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +7 -4
  274. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  275. package/src/sap/fe/core/support/CommonHelper.ts +1 -4
  276. package/src/sap/fe/core/support/Diagnostics.js +36 -48
  277. package/src/sap/fe/core/templating/DataModelPathHelper.js +91 -90
  278. package/src/sap/fe/core/templating/DataModelPathHelper.ts +126 -123
  279. package/src/sap/fe/core/templating/DisplayModeFormatter.js +23 -3
  280. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +26 -5
  281. package/src/sap/fe/core/templating/FilterHelper.js +25 -32
  282. package/src/sap/fe/core/templating/FilterHelper.ts +36 -35
  283. package/src/sap/fe/core/templating/PropertyHelper.js +16 -2
  284. package/src/sap/fe/core/templating/PropertyHelper.ts +31 -24
  285. package/src/sap/fe/core/templating/UIFormatters.js +150 -44
  286. package/src/sap/fe/core/templating/UIFormatters.ts +165 -67
  287. package/src/sap/fe/core/type/Email.js +26 -8
  288. package/src/sap/fe/core/type/Email.ts +8 -7
  289. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +0 -75
@@ -2,25 +2,25 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/helpers/ConfigurableObject", "sap/fe/core/converters/helpers/ID", "sap/fe/core/helpers/BindingExpression", "sap/fe/core/converters/helpers/Key", "../Common/Form", "sap/fe/core/converters/annotations/DataField", "../../../helpers/StableIdHelper"], function (ConfigurableObject, ID, BindingExpression, Key, Form, DataField, StableIdHelper) {
5
+ sap.ui.define(["sap/fe/core/converters/annotations/DataField", "sap/fe/core/converters/helpers/ConfigurableObject", "sap/fe/core/converters/helpers/ID", "sap/fe/core/converters/helpers/Key", "sap/fe/core/helpers/BindingExpression", "../../../helpers/StableIdHelper", "../Common/Form"], function (DataField, ConfigurableObject, ID, Key, BindingExpression, StableIdHelper, Form) {
6
6
  "use strict";
7
7
 
8
8
  var _exports = {};
9
- var generate = StableIdHelper.generate;
10
- var getSemanticObjectPath = DataField.getSemanticObjectPath;
11
9
  var getFormElementsFromManifest = Form.getFormElementsFromManifest;
12
10
  var FormElementType = Form.FormElementType;
13
- var KeyHelper = Key.KeyHelper;
11
+ var generate = StableIdHelper.generate;
14
12
  var not = BindingExpression.not;
15
13
  var equal = BindingExpression.equal;
16
14
  var compileBinding = BindingExpression.compileBinding;
17
15
  var annotationExpression = BindingExpression.annotationExpression;
16
+ var KeyHelper = Key.KeyHelper;
18
17
  var HeaderFacetID = ID.HeaderFacetID;
19
18
  var HeaderFacetFormID = ID.HeaderFacetFormID;
20
19
  var HeaderFacetContainerID = ID.HeaderFacetContainerID;
21
20
  var CustomHeaderFacetID = ID.CustomHeaderFacetID;
22
21
  var Placement = ConfigurableObject.Placement;
23
22
  var insertCustomElements = ConfigurableObject.insertCustomElements;
23
+ var getSemanticObjectPath = DataField.getSemanticObjectPath;
24
24
 
25
25
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
26
26
 
@@ -353,7 +353,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/ConfigurableObject", "sap/fe/core
353
353
  if (!(((_dataField$annotation = dataField.annotations) === null || _dataField$annotation === void 0 ? void 0 : (_dataField$annotation2 = _dataField$annotation.UI) === null || _dataField$annotation2 === void 0 ? void 0 : (_dataField$annotation3 = _dataField$annotation2.Hidden) === null || _dataField$annotation3 === void 0 ? void 0 : _dataField$annotation3.valueOf()) === true)) {
354
354
  var semanticObjectAnnotationPath = getSemanticObjectPath(converterContext, dataField);
355
355
 
356
- if (dataField.$Type === "com.sap.vocabularies.UI.v1.DataField" || dataField.$Type === "com.sap.vocabularies.UI.v1.DataFieldWithUrl" || dataField.$Type === "com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath") {
356
+ if (dataField.$Type === "com.sap.vocabularies.UI.v1.DataField" || dataField.$Type === "com.sap.vocabularies.UI.v1.DataFieldWithUrl" || dataField.$Type === "com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath" || dataField.$Type === "com.sap.vocabularies.UI.v1.DataFieldWithIntentBasedNavigation" || dataField.$Type === "com.sap.vocabularies.UI.v1.DataFieldWithAction") {
357
357
  var _dataField$Value, _dataField$Value$$tar, _dataField$Value$$tar2, _dataField$Value$$tar3, _dataField$Value$$tar4, _annotations$UI2, _annotations$UI2$Hidd, _dataField$Value2, _dataField$Value2$$ta, _dataField$Value2$$ta2, _dataField$Value2$$ta3;
358
358
 
359
359
  var annotations = dataField.annotations;
@@ -492,4 +492,4 @@ sap.ui.define(["sap/fe/core/converters/helpers/ConfigurableObject", "sap/fe/core
492
492
 
493
493
  return _exports;
494
494
  }, false);
495
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkhlYWRlckZhY2V0LnRzIl0sIm5hbWVzIjpbIkhlYWRlckZhY2V0VHlwZSIsIkZhY2V0VHlwZSIsIkZsZXhEZXNpZ25UaW1lVHlwZSIsIkhlYWRlckRhdGFQb2ludFR5cGUiLCJUYXJnZXRBbm5vdGF0aW9uVHlwZSIsImdldEhlYWRlckZhY2V0c0Zyb21Bbm5vdGF0aW9ucyIsImNvbnZlcnRlckNvbnRleHQiLCJoZWFkZXJGYWNldHMiLCJnZXRFbnRpdHlUeXBlIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhlYWRlckZhY2V0cyIsImZvckVhY2giLCJmYWNldCIsImhlYWRlckZhY2V0IiwiY3JlYXRlSGVhZGVyRmFjZXQiLCJwdXNoIiwiZ2V0SGVhZGVyRmFjZXRzRnJvbU1hbmlmZXN0IiwibWFuaWZlc3RDdXN0b21IZWFkZXJGYWNldHMiLCJjdXN0b21IZWFkZXJGYWNldHMiLCJPYmplY3QiLCJrZXlzIiwibWFuaWZlc3RIZWFkZXJGYWNldEtleSIsImN1c3RvbUhlYWRlckZhY2V0IiwiY3JlYXRlQ3VzdG9tSGVhZGVyRmFjZXQiLCJnZXRTdGFzaGVkU2V0dGluZ3NGb3JIZWFkZXJGYWNldCIsImZhY2V0RGVmaW5pdGlvbiIsImNvbGxlY3Rpb25GYWNldERlZmluaXRpb24iLCIkVHlwZSIsImhlYWRlckZhY2V0SUQiLCJnZW5lcmF0ZSIsIkZhY2V0IiwiaGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZyIsImdldE1hbmlmZXN0V3JhcHBlciIsImdldEhlYWRlckZhY2V0cyIsInN0YXNoZWRTZXR0aW5nIiwic3Rhc2hlZCIsImdldERlc2lnblRpbWVNZXRhZGF0YVNldHRpbmdzRm9ySGVhZGVyRmFjZXQiLCJkZXNpZ25UaW1lTWV0YWRhdGEiLCJEZWZhdWx0IiwiTm90QWRhcHRhYmxlVHJlZSIsImRlc2lnblRpbWUiLCJmbGV4U2V0dGluZ3MiLCJkZXNpZ250aW1lIiwiTm90QWRhcHRhYmxlIiwiTm90QWRhcHRhYmxlVmlzaWJpbGl0eSIsImNyZWF0ZVJlZmVyZW5jZUhlYWRlckZhY2V0IiwiSGlkZGVuIiwidmFsdWVPZiIsIkhlYWRlckZhY2V0SUQiLCJnZXRIZWFkZXJGYWNldEtleSIsImZhbGxiYWNrIiwiSUQiLCJ0b1N0cmluZyIsIkxhYmVsIiwidGFyZ2V0QW5ub3RhdGlvblZhbHVlIiwiVGFyZ2V0IiwidmFsdWUiLCJ0YXJnZXRBbm5vdGF0aW9uVHlwZSIsImdldFRhcmdldEFubm90YXRpb25UeXBlIiwiaGVhZGVyRm9ybURhdGEiLCJoZWFkZXJEYXRhUG9pbnREYXRhIiwiRmllbGRHcm91cCIsImdldEZpZWxkR3JvdXBGb3JtRGF0YSIsIkRhdGFQb2ludCIsImdldERhdGFQb2ludERhdGEiLCJ0eXBlIiwiQW5ub3RhdGlvbiIsImZhY2V0VHlwZSIsIlJlZmVyZW5jZSIsImlkIiwiY29udGFpbmVySWQiLCJIZWFkZXJGYWNldENvbnRhaW5lcklEIiwia2V5IiwidmlzaWJsZSIsImNvbXBpbGVCaW5kaW5nIiwibm90IiwiZXF1YWwiLCJhbm5vdGF0aW9uRXhwcmVzc2lvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInVuZGVmaW5lZCIsImNyZWF0ZUNvbGxlY3Rpb25IZWFkZXJGYWNldCIsImZhY2V0cyIsIkZhY2V0cyIsIkNvbGxlY3Rpb24iLCJhbm5vdGF0aW9uVHlwZSIsIk5vbmUiLCJhbm5vdGF0aW9uVHlwZU1hcCIsIkNoYXJ0IiwiSWRlbnRpZmljYXRpb24iLCJDb250YWN0IiwiQWRkcmVzcyIsIiR0YXJnZXQiLCJ0ZXJtIiwiRXJyb3IiLCJmb3JtRWxlbWVudHMiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsImdldEZvcm1FbGVtZW50c0Zyb21Bbm5vdGF0aW9ucyIsImdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdCIsIkhlYWRlckZhY2V0Rm9ybUlEIiwibGFiZWwiLCJhbm5vdGF0aW9uQmFzZWRGb3JtRWxlbWVudHMiLCJEYXRhIiwiZGF0YUZpZWxkIiwic2VtYW50aWNPYmplY3RBbm5vdGF0aW9uUGF0aCIsImdldFNlbWFudGljT2JqZWN0UGF0aCIsImlzVmFsdWVNdWx0aWxpbmVUZXh0IiwiVmFsdWUiLCJNdWx0aUxpbmVUZXh0IiwiRm9ybUVsZW1lbnRUeXBlIiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwiQ29tbW9uIiwiaWRQcmVmaXgiLCJzZW1hbnRpY09iamVjdFBhdGgiLCJDb250ZW50IiwiVmlzdWFsaXphdGlvbiIsIlByb2dyZXNzSW5kaWNhdG9yIiwiUmF0aW5nSW5kaWNhdG9yIiwiZ2VuZXJhdGVCaW5kaW5nIiwicmVxdWVzdEdyb3VwSWQiLCJncm91cElkIiwiaW5kZXhPZiIsImN1c3RvbUhlYWRlckZhY2V0RGVmaW5pdGlvbiIsImhlYWRlckZhY2V0S2V5IiwiY3VzdG9tSGVhZGVyRmFjZXRJRCIsIkN1c3RvbUhlYWRlckZhY2V0SUQiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiZnJhZ21lbnROYW1lIiwidGVtcGxhdGUiLCJuYW1lIiwidGl0bGUiLCJzdWJUaXRsZSIsImJpbmRpbmciLCJ0ZW1wbGF0ZUVkaXQiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQTtBQUNBO0FBQ0E7QUFDQTtNQUVZQSxlOzthQUFBQSxlO0FBQUFBLElBQUFBLGU7QUFBQUEsSUFBQUEsZTtLQUFBQSxlLEtBQUFBLGU7OztNQUtBQyxTOzthQUFBQSxTO0FBQUFBLElBQUFBLFM7QUFBQUEsSUFBQUEsUztLQUFBQSxTLEtBQUFBLFM7OztNQUtBQyxrQjs7YUFBQUEsa0I7QUFBQUEsSUFBQUEsa0I7QUFBQUEsSUFBQUEsa0I7QUFBQUEsSUFBQUEsa0I7QUFBQUEsSUFBQUEsa0I7S0FBQUEsa0IsS0FBQUEsa0I7OztNQWlCUEMsbUI7O2FBQUFBLG1CO0FBQUFBLElBQUFBLG1CO0FBQUFBLElBQUFBLG1CO0FBQUFBLElBQUFBLG1CO0tBQUFBLG1C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QUFFakIsZUFBZSxDQUFDSSwyQkFBMkIsQ0FBQ0gsY0FBN0IsQ0FkbEI7QUFlTmlCLE1BQUFBLFlBQVksRUFBRWQsMkJBQTJCLENBQUNjO0FBZnBDLEtBQVA7QUFpQkEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hbmlmZXN0SGVhZGVyRmFjZXQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQge1xuXHRDb25maWd1cmFibGVPYmplY3QsXG5cdENvbmZpZ3VyYWJsZVJlY29yZCxcblx0Q3VzdG9tRWxlbWVudCxcblx0aW5zZXJ0Q3VzdG9tRWxlbWVudHMsXG5cdFBsYWNlbWVudCxcblx0UG9zaXRpb25cbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7XG5cdERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdERhdGFQb2ludCxcblx0RmFjZXRUeXBlcyxcblx0RmllbGRHcm91cCxcblx0UmVmZXJlbmNlRmFjZXRUeXBlcyxcblx0VUlBbm5vdGF0aW9uVHlwZXNcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBDdXN0b21IZWFkZXJGYWNldElELCBIZWFkZXJGYWNldENvbnRhaW5lcklELCBIZWFkZXJGYWNldEZvcm1JRCwgSGVhZGVyRmFjZXRJRCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IGFubm90YXRpb25FeHByZXNzaW9uLCBCaW5kaW5nRXhwcmVzc2lvbiwgY29tcGlsZUJpbmRpbmcsIGVxdWFsLCBub3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgS2V5SGVscGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9LZXlcIjtcbmltcG9ydCB7IEFubm90YXRpb25Gb3JtRWxlbWVudCwgRm9ybUVsZW1lbnQsIEZvcm1FbGVtZW50VHlwZSwgZ2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0IH0gZnJvbSBcIi4uL0NvbW1vbi9Gb3JtXCI7XG5pbXBvcnQgeyBnZXRTZW1hbnRpY09iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcIi4uLy4uLy4uL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5cbi8vIHJlZ2lvbiBkZWZpbml0aW9uc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZpbml0aW9uczogSGVhZGVyIEZhY2V0IFR5cGVzLCBHZW5lcmljIE9QIEhlYWRlciBGYWNldCwgTWFuaWZlc3QgUHJvcGVydGllcyBmb3IgQ3VzdG9tIEhlYWRlciBGYWNldFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBlbnVtIEhlYWRlckZhY2V0VHlwZSB7XG5cdEFubm90YXRpb24gPSBcIkFubm90YXRpb25cIixcblx0WE1MRnJhZ21lbnQgPSBcIlhNTEZyYWdtZW50XCJcbn1cblxuZXhwb3J0IGVudW0gRmFjZXRUeXBlIHtcblx0UmVmZXJlbmNlID0gXCJSZWZlcmVuY2VcIixcblx0Q29sbGVjdGlvbiA9IFwiQ29sbGVjdGlvblwiXG59XG5cbmV4cG9ydCBlbnVtIEZsZXhEZXNpZ25UaW1lVHlwZSB7XG5cdERlZmF1bHQgPSBcIkRlZmF1bHRcIixcblx0Tm90QWRhcHRhYmxlID0gXCJub3QtYWRhcHRhYmxlXCIsIC8vIGRpc2FibGUgYWxsIGFjdGlvbnMgb24gdGhhdCBpbnN0YW5jZVxuXHROb3RBZGFwdGFibGVUcmVlID0gXCJub3QtYWRhcHRhYmxlLXRyZWVcIiwgLy8gZGlzYWJsZSBhbGwgYWN0aW9ucyBvbiB0aGF0IGluc3RhbmNlIGFuZCBvbiBhbGwgY2hpbGRyZW4gb2YgdGhhdCBpbnN0YW5jZVxuXHROb3RBZGFwdGFibGVWaXNpYmlsaXR5ID0gXCJub3QtYWRhcHRhYmxlLXZpc2liaWxpdHlcIiAvLyBkaXNhYmxlIGFsbCBhY3Rpb25zIHRoYXQgaW5mbHVlbmNlIHRoZSB2aXNpYmlsaXR5LCBuYW1lbHkgcmV2ZWFsIGFuZCByZW1vdmVcbn1cblxuZXhwb3J0IHR5cGUgRmxleFNldHRpbmdzID0ge1xuXHRkZXNpZ250aW1lPzogRmxleERlc2lnblRpbWVUeXBlO1xufTtcblxudHlwZSBIZWFkZXJGb3JtRGF0YSA9IHtcblx0aWQ6IHN0cmluZztcblx0bGFiZWw/OiBzdHJpbmc7XG5cdGZvcm1FbGVtZW50czogRm9ybUVsZW1lbnRbXTtcbn07XG5cbmVudW0gSGVhZGVyRGF0YVBvaW50VHlwZSB7XG5cdFByb2dyZXNzSW5kaWNhdG9yID0gXCJQcm9ncmVzc0luZGljYXRvclwiLFxuXHRSYXRpbmdJbmRpY2F0b3IgPSBcIlJhdGluZ0luZGljYXRvclwiLFxuXHRDb250ZW50ID0gXCJDb250ZW50XCJcbn1cblxudHlwZSBIZWFkZXJEYXRhUG9pbnREYXRhID0ge1xuXHR0eXBlOiBIZWFkZXJEYXRhUG9pbnRUeXBlO1xufTtcblxuZW51bSBUYXJnZXRBbm5vdGF0aW9uVHlwZSB7XG5cdE5vbmUgPSBcIk5vbmVcIixcblx0RGF0YVBvaW50ID0gXCJEYXRhUG9pbnRcIixcblx0Q2hhcnQgPSBcIkNoYXJ0XCIsXG5cdElkZW50aWZpY2F0aW9uID0gXCJJZGVudGlmaWNhdGlvblwiLFxuXHRDb250YWN0ID0gXCJDb250YWN0XCIsXG5cdEFkZHJlc3MgPSBcIkFkZHJlc3NcIixcblx0RmllbGRHcm91cCA9IFwiRmllbGRHcm91cFwiXG59XG5cbnR5cGUgQmFzZUhlYWRlckZhY2V0ID0gQ29uZmlndXJhYmxlT2JqZWN0ICYge1xuXHR0eXBlPzogSGVhZGVyRmFjZXRUeXBlOyAvLyBNYW5pZmVzdCBvciBNZXRhZGF0YVxuXHRpZDogc3RyaW5nO1xuXHRjb250YWluZXJJZDogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aD86IHN0cmluZztcblx0ZmxleFNldHRpbmdzOiBGbGV4U2V0dGluZ3M7XG5cdHN0YXNoZWQ6IGJvb2xlYW47XG5cdHZpc2libGU6IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+O1xuXHR0YXJnZXRBbm5vdGF0aW9uVmFsdWU/OiBzdHJpbmc7XG5cdHRhcmdldEFubm90YXRpb25UeXBlPzogVGFyZ2V0QW5ub3RhdGlvblR5cGU7XG59O1xuXG50eXBlIEJhc2VSZWZlcmVuY2VGYWNldCA9IEJhc2VIZWFkZXJGYWNldCAmIHtcblx0ZmFjZXRUeXBlOiBGYWNldFR5cGUuUmVmZXJlbmNlO1xufTtcblxudHlwZSBGaWVsZEdyb3VwRmFjZXQgPSBCYXNlUmVmZXJlbmNlRmFjZXQgJiB7XG5cdGhlYWRlckZvcm1EYXRhPzogSGVhZGVyRm9ybURhdGE7XG59O1xuXG50eXBlIERhdGFQb2ludEZhY2V0ID0gQmFzZVJlZmVyZW5jZUZhY2V0ICYge1xuXHRoZWFkZXJEYXRhUG9pbnREYXRhPzogSGVhZGVyRGF0YVBvaW50RGF0YTtcbn07XG5cbnR5cGUgUmVmZXJlbmNlRmFjZXQgPSBGaWVsZEdyb3VwRmFjZXQgfCBEYXRhUG9pbnRGYWNldDtcblxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvbkZhY2V0ID0gQmFzZUhlYWRlckZhY2V0ICYge1xuXHRmYWNldFR5cGU6IEZhY2V0VHlwZS5Db2xsZWN0aW9uO1xuXHRmYWNldHM6IFJlZmVyZW5jZUZhY2V0W107XG59O1xuXG5leHBvcnQgdHlwZSBPYmplY3RQYWdlSGVhZGVyRmFjZXQgPSBSZWZlcmVuY2VGYWNldCB8IENvbGxlY3Rpb25GYWNldDtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tT2JqZWN0UGFnZUhlYWRlckZhY2V0ID0gQ3VzdG9tRWxlbWVudDxPYmplY3RQYWdlSGVhZGVyRmFjZXQ+ICYge1xuXHRmcmFnbWVudE5hbWU/OiBzdHJpbmc7XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRzdWJUaXRsZT86IHN0cmluZztcblx0c3Rhc2hlZD86IGJvb2xlYW47XG5cdGJpbmRpbmc/OiBzdHJpbmc7XG5cdHRlbXBsYXRlRWRpdD86IHN0cmluZztcbn07XG5cbi8vIGVuZHJlZ2lvbiBkZWZpbml0aW9uc1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbGxlY3QgQWxsIEhlYWRlciBGYWNldHM6IEN1c3RvbSAodmlhIE1hbmlmZXN0KSBhbmQgQW5ub3RhdGlvbiBCYXNlZCAodmlhIE1ldGFtb2RlbClcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFJldHJpZXZlIGhlYWRlciBmYWNldHMgZnJvbSBhbm5vdGF0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHRcbiAqXG4gKiBAcmV0dXJucyB7T2JqZWN0UGFnZUhlYWRlckZhY2V0fSBIZWFkZXIgZmFjZXRzIGZyb20gYW5ub3RhdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhlYWRlckZhY2V0c0Zyb21Bbm5vdGF0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogT2JqZWN0UGFnZUhlYWRlckZhY2V0W10ge1xuXHRjb25zdCBoZWFkZXJGYWNldHM6IE9iamVjdFBhZ2VIZWFkZXJGYWNldFtdID0gW107XG5cdGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLmFubm90YXRpb25zPy5VST8uSGVhZGVyRmFjZXRzPy5mb3JFYWNoKGZhY2V0ID0+IHtcblx0XHRjb25zdCBoZWFkZXJGYWNldDogT2JqZWN0UGFnZUhlYWRlckZhY2V0IHwgdW5kZWZpbmVkID0gY3JlYXRlSGVhZGVyRmFjZXQoZmFjZXQsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGlmIChoZWFkZXJGYWNldCkge1xuXHRcdFx0aGVhZGVyRmFjZXRzLnB1c2goaGVhZGVyRmFjZXQpO1xuXHRcdH1cblx0fSk7XG5cblx0cmV0dXJuIGhlYWRlckZhY2V0cztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZSBjdXN0b20gaGVhZGVyIGZhY2V0cyBmcm9tIG1hbmlmZXN0LlxuICpcbiAqIEBwYXJhbSB7Q29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+fSBtYW5pZmVzdEN1c3RvbUhlYWRlckZhY2V0c1xuICpcbiAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBDdXN0b21PYmplY3RQYWdlSGVhZGVyRmFjZXQ+fSBIZWFkZXJGYWNldHMgZnJvbSBtYW5pZmVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVhZGVyRmFjZXRzRnJvbU1hbmlmZXN0KFxuXHRtYW5pZmVzdEN1c3RvbUhlYWRlckZhY2V0czogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+XG4pOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21PYmplY3RQYWdlSGVhZGVyRmFjZXQ+IHtcblx0Y29uc3QgY3VzdG9tSGVhZGVyRmFjZXRzOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21PYmplY3RQYWdlSGVhZGVyRmFjZXQ+ID0ge307XG5cblx0T2JqZWN0LmtleXMobWFuaWZlc3RDdXN0b21IZWFkZXJGYWNldHMpLmZvckVhY2gobWFuaWZlc3RIZWFkZXJGYWNldEtleSA9PiB7XG5cdFx0Y29uc3QgY3VzdG9tSGVhZGVyRmFjZXQ6IE1hbmlmZXN0SGVhZGVyRmFjZXQgPSBtYW5pZmVzdEN1c3RvbUhlYWRlckZhY2V0c1ttYW5pZmVzdEhlYWRlckZhY2V0S2V5XTtcblx0XHRjdXN0b21IZWFkZXJGYWNldHNbbWFuaWZlc3RIZWFkZXJGYWNldEtleV0gPSBjcmVhdGVDdXN0b21IZWFkZXJGYWNldChjdXN0b21IZWFkZXJGYWNldCwgbWFuaWZlc3RIZWFkZXJGYWNldEtleSk7XG5cdH0pO1xuXG5cdHJldHVybiBjdXN0b21IZWFkZXJGYWNldHM7XG59XG5cbi8qKlxuICogUmV0cmlldmUgc3Rhc2hlZCBzZXR0aW5ncyBmb3IgaGVhZGVyIGZhY2V0cyBmcm9tIG1hbmlmZXN0LlxuICpcbiAqIEBwYXJhbSB7RmFjZXRUeXBlc30gZmFjZXREZWZpbml0aW9uXG4gKiBAcGFyYW0ge0ZhY2V0VHlwZXN9IGNvbGxlY3Rpb25GYWNldERlZmluaXRpb25cbiAqIEBwYXJhbSB7Q29udmVydGVyQ29udGV4dH0gY29udmVydGVyQ29udGV4dFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBTdGFzaGVkIHNldHRpbmcgZm9yIGhlYWRlciBmYWNldCBvciBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Rhc2hlZFNldHRpbmdzRm9ySGVhZGVyRmFjZXQoXG5cdGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0Y29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogYm9vbGVhbiB7XG5cdC8vIFdoZW4gYSBIZWFkZXJGYWNldCBpcyBuZXN0ZWQgaW5zaWRlIGEgQ29sbGVjdGlvbkZhY2V0LCBzdGFzaGluZyBpcyBub3Qgc3VwcG9ydGVkXG5cdGlmIChcblx0XHRmYWNldERlZmluaXRpb24uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0ICYmXG5cdFx0Y29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbi4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ29sbGVjdGlvbkZhY2V0XG5cdCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHRjb25zdCBoZWFkZXJGYWNldElEID0gZ2VuZXJhdGUoW3sgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9XSk7XG5cdGNvbnN0IGhlYWRlckZhY2V0c0NvbnRyb2xDb25maWcgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldEhlYWRlckZhY2V0cygpO1xuXHRjb25zdCBzdGFzaGVkU2V0dGluZyA9IGhlYWRlckZhY2V0c0NvbnRyb2xDb25maWdbaGVhZGVyRmFjZXRJRF0/LnN0YXNoZWQ7XG5cdHJldHVybiBzdGFzaGVkU2V0dGluZyA9PT0gdHJ1ZTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZSBmbGV4aWJpbGl0eSBkZXNpZ250aW1lIHNldHRpbmdzIGZyb20gbWFuaWZlc3QuXG4gKlxuICogQHBhcmFtIHtGYWNldFR5cGVzfSBmYWNldERlZmluaXRpb25cbiAqIEBwYXJhbSB7RmFjZXRUeXBlc30gY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvblxuICogQHBhcmFtIHtDb252ZXJ0ZXJDb250ZXh0fSBjb252ZXJ0ZXJDb250ZXh0XG4gKlxuICogQHJldHVybnMge0ZsZXhEZXNpZ25UaW1lVHlwZX0gRGVzaWdudGltZSBzZXR0aW5nIG9yIGRlZmF1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2lnblRpbWVNZXRhZGF0YVNldHRpbmdzRm9ySGVhZGVyRmFjZXQoXG5cdGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0Y29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogRmxleERlc2lnblRpbWVUeXBlIHtcblx0bGV0IGRlc2lnblRpbWVNZXRhZGF0YTogRmxleERlc2lnblRpbWVUeXBlID0gRmxleERlc2lnblRpbWVUeXBlLkRlZmF1bHQ7XG5cdGNvbnN0IGhlYWRlckZhY2V0SUQgPSBnZW5lcmF0ZShbeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH1dKTtcblxuXHQvLyBGb3IgSGVhZGVyRmFjZXRzIG5lc3RlZCBpbnNpZGUgQ29sbGVjdGlvbkZhY2V0IFJUQSBzaG91bGQgYmUgZGlzYWJsZWQsIHRoZXJlZm9yZSBzZXQgdG8gXCJub3QtYWRhcHRhYmxlLXRyZWVcIlxuXHRpZiAoXG5cdFx0ZmFjZXREZWZpbml0aW9uLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldCAmJlxuXHRcdGNvbGxlY3Rpb25GYWNldERlZmluaXRpb24uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkNvbGxlY3Rpb25GYWNldFxuXHQpIHtcblx0XHRkZXNpZ25UaW1lTWV0YWRhdGEgPSBGbGV4RGVzaWduVGltZVR5cGUuTm90QWRhcHRhYmxlVHJlZTtcblx0fSBlbHNlIHtcblx0XHRjb25zdCBoZWFkZXJGYWNldHNDb250cm9sQ29uZmlnID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5nZXRIZWFkZXJGYWNldHMoKTtcblx0XHRpZiAoaGVhZGVyRmFjZXRJRCkge1xuXHRcdFx0Y29uc3QgZGVzaWduVGltZSA9IGhlYWRlckZhY2V0c0NvbnRyb2xDb25maWdbaGVhZGVyRmFjZXRJRF0/LmZsZXhTZXR0aW5ncz8uZGVzaWdudGltZTtcblx0XHRcdHN3aXRjaCAoZGVzaWduVGltZSkge1xuXHRcdFx0XHRjYXNlIEZsZXhEZXNpZ25UaW1lVHlwZS5Ob3RBZGFwdGFibGU6XG5cdFx0XHRcdGNhc2UgRmxleERlc2lnblRpbWVUeXBlLk5vdEFkYXB0YWJsZVRyZWU6XG5cdFx0XHRcdGNhc2UgRmxleERlc2lnblRpbWVUeXBlLk5vdEFkYXB0YWJsZVZpc2liaWxpdHk6XG5cdFx0XHRcdFx0ZGVzaWduVGltZU1ldGFkYXRhID0gZGVzaWduVGltZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0cmV0dXJuIGRlc2lnblRpbWVNZXRhZGF0YTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb252ZXJ0ICYgQnVpbGQgQW5ub3RhdGlvbiBCYXNlZCBIZWFkZXIgRmFjZXRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbmZ1bmN0aW9uIGNyZWF0ZVJlZmVyZW5jZUhlYWRlckZhY2V0KFxuXHRmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsXG5cdGNvbGxlY3Rpb25GYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFJlZmVyZW5jZUZhY2V0IHwgdW5kZWZpbmVkIHtcblx0aWYgKGZhY2V0RGVmaW5pdGlvbi4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQgJiYgIShmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkpIHtcblx0XHRjb25zdCBoZWFkZXJGYWNldElEID0gSGVhZGVyRmFjZXRJRCh7IEZhY2V0OiBmYWNldERlZmluaXRpb24gfSksXG5cdFx0XHRnZXRIZWFkZXJGYWNldEtleSA9IChmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsIGZhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRcdFx0XHRyZXR1cm4gZmFjZXREZWZpbml0aW9uLklEPy50b1N0cmluZygpIHx8IGZhY2V0RGVmaW5pdGlvbi5MYWJlbD8udG9TdHJpbmcoKSB8fCBmYWxsYmFjaztcblx0XHRcdH0sXG5cdFx0XHR0YXJnZXRBbm5vdGF0aW9uVmFsdWUgPSBmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlLFxuXHRcdFx0dGFyZ2V0QW5ub3RhdGlvblR5cGUgPSBnZXRUYXJnZXRBbm5vdGF0aW9uVHlwZShmYWNldERlZmluaXRpb24pO1xuXG5cdFx0bGV0IGhlYWRlckZvcm1EYXRhOiBIZWFkZXJGb3JtRGF0YSB8IHVuZGVmaW5lZDtcblx0XHRsZXQgaGVhZGVyRGF0YVBvaW50RGF0YTogSGVhZGVyRGF0YVBvaW50RGF0YSB8IHVuZGVmaW5lZDtcblxuXHRcdHN3aXRjaCAodGFyZ2V0QW5ub3RhdGlvblR5cGUpIHtcblx0XHRcdGNhc2UgVGFyZ2V0QW5ub3RhdGlvblR5cGUuRmllbGRHcm91cDpcblx0XHRcdFx0aGVhZGVyRm9ybURhdGEgPSBnZXRGaWVsZEdyb3VwRm9ybURhdGEoZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgVGFyZ2V0QW5ub3RhdGlvblR5cGUuRGF0YVBvaW50OlxuXHRcdFx0XHRoZWFkZXJEYXRhUG9pbnREYXRhID0gZ2V0RGF0YVBvaW50RGF0YShmYWNldERlZmluaXRpb24pO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdC8vIFRvRG86IEhhbmRsZSBvdGhlciBjYXNlc1xuXHRcdH1cblxuXHRcdGNvbnN0IHsgYW5ub3RhdGlvbnMgfSA9IGZhY2V0RGVmaW5pdGlvbjtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dHlwZTogSGVhZGVyRmFjZXRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRmYWNldFR5cGU6IEZhY2V0VHlwZS5SZWZlcmVuY2UsXG5cdFx0XHRpZDogaGVhZGVyRmFjZXRJRCxcblx0XHRcdGNvbnRhaW5lcklkOiBIZWFkZXJGYWNldENvbnRhaW5lcklEKHsgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9KSxcblx0XHRcdGtleTogZ2V0SGVhZGVyRmFjZXRLZXkoZmFjZXREZWZpbml0aW9uLCBoZWFkZXJGYWNldElEKSxcblx0XHRcdGZsZXhTZXR0aW5nczoge1xuXHRcdFx0XHRkZXNpZ250aW1lOiBnZXREZXNpZ25UaW1lTWV0YWRhdGFTZXR0aW5nc0ZvckhlYWRlckZhY2V0KGZhY2V0RGVmaW5pdGlvbiwgY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dClcblx0XHRcdH0sXG5cdFx0XHRzdGFzaGVkOiBnZXRTdGFzaGVkU2V0dGluZ3NGb3JIZWFkZXJGYWNldChmYWNldERlZmluaXRpb24sIGNvbGxlY3Rpb25GYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdFx0dmlzaWJsZTogY29tcGlsZUJpbmRpbmcobm90KGVxdWFsKGFubm90YXRpb25FeHByZXNzaW9uKGFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkpLCB0cnVlKSkpLFxuXHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiLFxuXHRcdFx0dGFyZ2V0QW5ub3RhdGlvblZhbHVlLFxuXHRcdFx0dGFyZ2V0QW5ub3RhdGlvblR5cGUsXG5cdFx0XHRoZWFkZXJGb3JtRGF0YSxcblx0XHRcdGhlYWRlckRhdGFQb2ludERhdGFcblx0XHR9O1xuXHR9XG5cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29sbGVjdGlvbkhlYWRlckZhY2V0KFxuXHRjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBDb2xsZWN0aW9uRmFjZXQgfCB1bmRlZmluZWQge1xuXHRpZiAoY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbi4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ29sbGVjdGlvbkZhY2V0KSB7XG5cdFx0Y29uc3QgZmFjZXRzOiBSZWZlcmVuY2VGYWNldFtdID0gW10sXG5cdFx0XHRoZWFkZXJGYWNldElEID0gSGVhZGVyRmFjZXRJRCh7IEZhY2V0OiBjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uIH0pLFxuXHRcdFx0Z2V0SGVhZGVyRmFjZXRLZXkgPSAoZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzLCBmYWxsYmFjazogc3RyaW5nKTogc3RyaW5nID0+IHtcblx0XHRcdFx0cmV0dXJuIGZhY2V0RGVmaW5pdGlvbi5JRD8udG9TdHJpbmcoKSB8fCBmYWNldERlZmluaXRpb24uTGFiZWw/LnRvU3RyaW5nKCkgfHwgZmFsbGJhY2s7XG5cdFx0XHR9O1xuXG5cdFx0Y29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbi5GYWNldHMuZm9yRWFjaChmYWNldERlZmluaXRpb24gPT4ge1xuXHRcdFx0Y29uc3QgZmFjZXQ6IFJlZmVyZW5jZUZhY2V0IHwgdW5kZWZpbmVkID0gY3JlYXRlUmVmZXJlbmNlSGVhZGVyRmFjZXQoXG5cdFx0XHRcdGZhY2V0RGVmaW5pdGlvbixcblx0XHRcdFx0Y29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbixcblx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0KTtcblx0XHRcdGlmIChmYWNldCkge1xuXHRcdFx0XHRmYWNldHMucHVzaChmYWNldCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0dHlwZTogSGVhZGVyRmFjZXRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRmYWNldFR5cGU6IEZhY2V0VHlwZS5Db2xsZWN0aW9uLFxuXHRcdFx0aWQ6IGhlYWRlckZhY2V0SUQsXG5cdFx0XHRjb250YWluZXJJZDogSGVhZGVyRmFjZXRDb250YWluZXJJRCh7IEZhY2V0OiBjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uIH0pLFxuXHRcdFx0a2V5OiBnZXRIZWFkZXJGYWNldEtleShjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uLCBoZWFkZXJGYWNldElEKSxcblx0XHRcdGZsZXhTZXR0aW5nczoge1xuXHRcdFx0XHRkZXNpZ250aW1lOiBnZXREZXNpZ25UaW1lTWV0YWRhdGFTZXR0aW5nc0ZvckhlYWRlckZhY2V0KFxuXHRcdFx0XHRcdGNvbGxlY3Rpb25GYWNldERlZmluaXRpb24sXG5cdFx0XHRcdFx0Y29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbixcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdClcblx0XHRcdH0sXG5cdFx0XHRzdGFzaGVkOiBnZXRTdGFzaGVkU2V0dGluZ3NGb3JIZWFkZXJGYWNldChjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uLCBjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdHZpc2libGU6IGNvbXBpbGVCaW5kaW5nKG5vdChlcXVhbChhbm5vdGF0aW9uRXhwcmVzc2lvbihjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkpLCB0cnVlKSkpLFxuXHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSkgKyBcIi9cIixcblx0XHRcdGZhY2V0c1xuXHRcdH07XG5cdH1cblxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXRUYXJnZXRBbm5vdGF0aW9uVHlwZShmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMpOiBUYXJnZXRBbm5vdGF0aW9uVHlwZSB7XG5cdGxldCBhbm5vdGF0aW9uVHlwZSA9IFRhcmdldEFubm90YXRpb25UeXBlLk5vbmU7XG5cdGNvbnN0IGFubm90YXRpb25UeXBlTWFwOiBSZWNvcmQ8c3RyaW5nLCBUYXJnZXRBbm5vdGF0aW9uVHlwZT4gPSB7XG5cdFx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnRcIjogVGFyZ2V0QW5ub3RhdGlvblR5cGUuRGF0YVBvaW50LFxuXHRcdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIjogVGFyZ2V0QW5ub3RhdGlvblR5cGUuQ2hhcnQsXG5cdFx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5JZGVudGlmaWNhdGlvblwiOiBUYXJnZXRBbm5vdGF0aW9uVHlwZS5JZGVudGlmaWNhdGlvbixcblx0XHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuQ29udGFjdFwiOiBUYXJnZXRBbm5vdGF0aW9uVHlwZS5Db250YWN0LFxuXHRcdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbXVuaWNhdGlvbi52MS5BZGRyZXNzXCI6IFRhcmdldEFubm90YXRpb25UeXBlLkFkZHJlc3MsXG5cdFx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GaWVsZEdyb3VwXCI6IFRhcmdldEFubm90YXRpb25UeXBlLkZpZWxkR3JvdXBcblx0fTtcblx0Ly8gUmVmZXJlbmNlVVJMRmFjZXQgYW5kIENvbGxlY3Rpb25GYWNldCBkbyBub3QgaGF2ZSBUYXJnZXQgcHJvcGVydHkuXG5cdGlmIChmYWNldERlZmluaXRpb24uJFR5cGUgIT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZVVSTEZhY2V0ICYmIGZhY2V0RGVmaW5pdGlvbi4kVHlwZSAhPT0gVUlBbm5vdGF0aW9uVHlwZXMuQ29sbGVjdGlvbkZhY2V0KSB7XG5cdFx0YW5ub3RhdGlvblR5cGUgPSBhbm5vdGF0aW9uVHlwZU1hcFtmYWNldERlZmluaXRpb24uVGFyZ2V0Py4kdGFyZ2V0Py50ZXJtXSB8fCBUYXJnZXRBbm5vdGF0aW9uVHlwZS5Ob25lO1xuXHR9XG5cblx0cmV0dXJuIGFubm90YXRpb25UeXBlO1xufVxuXG5mdW5jdGlvbiBnZXRGaWVsZEdyb3VwRm9ybURhdGEoZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogSGVhZGVyRm9ybURhdGEge1xuXHQvLyBzcGxpdCBpbiB0aGlzIGZyb20gYW5ub3RhdGlvbiArIGdldEZpZWxkR3JvdXBGcm9tRGVmYXVsdFxuXHRpZiAoIWZhY2V0RGVmaW5pdGlvbikge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBnZXQgRmllbGRHcm91cCBmb3JtIGRhdGEgd2l0aG91dCBmYWNldCBkZWZpbml0aW9uXCIpO1xuXHR9XG5cblx0Y29uc3QgZm9ybUVsZW1lbnRzID0gaW5zZXJ0Q3VzdG9tRWxlbWVudHMoXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dClcblx0KTtcblxuXHRyZXR1cm4ge1xuXHRcdGlkOiBIZWFkZXJGYWNldEZvcm1JRCh7IEZhY2V0OiBmYWNldERlZmluaXRpb24gfSksXG5cdFx0bGFiZWw6IGZhY2V0RGVmaW5pdGlvbi5MYWJlbD8udG9TdHJpbmcoKSxcblx0XHRmb3JtRWxlbWVudHNcblx0fTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIG1hbmlmZXN0LWJhc2VkIEZvcm1FbGVtZW50cy5cbiAqXG4gKiBAcGFyYW0ge0ZhY2V0VHlwZX0gZmFjZXREZWZpbml0aW9uIFRoZSBkZWZpbml0aW9uIG9mIHRoZSBmYWNldFxuICogQHBhcmFtIHtDb252ZXJ0ZXJDb250ZXh0fSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dCBmb3IgdGhlIGZhY2V0XG4gKlxuICogQHJldHVybnMge0FycmF5fSBBbm5vdGF0aW9uLWJhc2VkIEZvcm1FbGVtZW50c1xuICovXG5mdW5jdGlvbiBnZXRGb3JtRWxlbWVudHNGcm9tQW5ub3RhdGlvbnMoZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQW5ub3RhdGlvbkZvcm1FbGVtZW50W10ge1xuXHRjb25zdCBhbm5vdGF0aW9uQmFzZWRGb3JtRWxlbWVudHM6IEFubm90YXRpb25Gb3JtRWxlbWVudFtdID0gW107XG5cblx0Ly8gUmVmZXJlbmNlVVJMRmFjZXQgYW5kIENvbGxlY3Rpb25GYWNldCBkbyBub3QgaGF2ZSBUYXJnZXQgcHJvcGVydHkuXG5cdGlmIChmYWNldERlZmluaXRpb24uJFR5cGUgIT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZVVSTEZhY2V0ICYmIGZhY2V0RGVmaW5pdGlvbi4kVHlwZSAhPT0gVUlBbm5vdGF0aW9uVHlwZXMuQ29sbGVjdGlvbkZhY2V0KSB7XG5cdFx0KGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQ/LiR0YXJnZXQgYXMgRmllbGRHcm91cCk/LkRhdGEuZm9yRWFjaCgoZGF0YUZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKSA9PiB7XG5cdFx0XHRpZiAoIShkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkpIHtcblx0XHRcdFx0Y29uc3Qgc2VtYW50aWNPYmplY3RBbm5vdGF0aW9uUGF0aCA9IGdldFNlbWFudGljT2JqZWN0UGF0aChjb252ZXJ0ZXJDb250ZXh0LCBkYXRhRmllbGQpO1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0ZGF0YUZpZWxkLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGQgfHxcblx0XHRcdFx0XHRkYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhVcmwgfHxcblx0XHRcdFx0XHRkYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aFxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRjb25zdCB7IGFubm90YXRpb25zIH0gPSBkYXRhRmllbGQ7XG5cdFx0XHRcdFx0YW5ub3RhdGlvbkJhc2VkRm9ybUVsZW1lbnRzLnB1c2goe1xuXHRcdFx0XHRcdFx0aXNWYWx1ZU11bHRpbGluZVRleHQ6IGRhdGFGaWVsZC5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJPy5NdWx0aUxpbmVUZXh0Py52YWx1ZU9mKCkgPT09IHRydWUsXG5cdFx0XHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpLFxuXHRcdFx0XHRcdFx0dmlzaWJsZTogY29tcGlsZUJpbmRpbmcobm90KGVxdWFsKGFubm90YXRpb25FeHByZXNzaW9uKGFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkpLCB0cnVlKSkpLFxuXHRcdFx0XHRcdFx0bGFiZWw6IGRhdGFGaWVsZC5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uTGFiZWwgfHwgZGF0YUZpZWxkLkxhYmVsLFxuXHRcdFx0XHRcdFx0aWRQcmVmaXg6IEhlYWRlckZhY2V0Rm9ybUlEKHsgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9LCBkYXRhRmllbGQpLFxuXHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiLFxuXHRcdFx0XHRcdFx0c2VtYW50aWNPYmplY3RQYXRoOiBzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoZGF0YUZpZWxkLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdFx0Y29uc3QgeyBhbm5vdGF0aW9ucyB9ID0gZGF0YUZpZWxkO1xuXHRcdFx0XHRcdGFubm90YXRpb25CYXNlZEZvcm1FbGVtZW50cy5wdXNoKHtcblx0XHRcdFx0XHRcdC8vIEZJWE1FIHRoaXMgaXMgd3Jvbmdcblx0XHRcdFx0XHRcdGlzVmFsdWVNdWx0aWxpbmVUZXh0OiAoZGF0YUZpZWxkLlRhcmdldD8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJIGFzIGFueSk/Lk11bHRpTGluZVRleHQ/LnZhbHVlT2YoKSA9PT0gdHJ1ZSxcblx0XHRcdFx0XHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZCksXG5cdFx0XHRcdFx0XHR2aXNpYmxlOiBjb21waWxlQmluZGluZyhub3QoZXF1YWwoYW5ub3RhdGlvbkV4cHJlc3Npb24oYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSksIHRydWUpKSksXG5cdFx0XHRcdFx0XHRsYWJlbDogZGF0YUZpZWxkLlRhcmdldD8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uTGFiZWw/LnRvU3RyaW5nKCkgfHwgZGF0YUZpZWxkLkxhYmVsPy50b1N0cmluZygpLFxuXHRcdFx0XHRcdFx0aWRQcmVmaXg6IEhlYWRlckZhY2V0Rm9ybUlEKHsgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9LCBkYXRhRmllbGQpLFxuXHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiLFxuXHRcdFx0XHRcdFx0c2VtYW50aWNPYmplY3RQYXRoOiBzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHJldHVybiBhbm5vdGF0aW9uQmFzZWRGb3JtRWxlbWVudHM7XG59XG5cbmZ1bmN0aW9uIGdldERhdGFQb2ludERhdGEoZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzKTogSGVhZGVyRGF0YVBvaW50RGF0YSB7XG5cdGxldCB0eXBlID0gSGVhZGVyRGF0YVBvaW50VHlwZS5Db250ZW50O1xuXHRpZiAoZmFjZXREZWZpbml0aW9uLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldCkge1xuXHRcdGlmICgoZmFjZXREZWZpbml0aW9uLlRhcmdldD8uJHRhcmdldCBhcyBEYXRhUG9pbnQpPy5WaXN1YWxpemF0aW9uID09PSBcIlVJLlZpc3VhbGl6YXRpb25UeXBlL1Byb2dyZXNzXCIpIHtcblx0XHRcdHR5cGUgPSBIZWFkZXJEYXRhUG9pbnRUeXBlLlByb2dyZXNzSW5kaWNhdG9yO1xuXHRcdH0gZWxzZSBpZiAoKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQ/LiR0YXJnZXQgYXMgRGF0YVBvaW50KT8uVmlzdWFsaXphdGlvbiA9PT0gXCJVSS5WaXN1YWxpemF0aW9uVHlwZS9SYXRpbmdcIikge1xuXHRcdFx0dHlwZSA9IEhlYWRlckRhdGFQb2ludFR5cGUuUmF0aW5nSW5kaWNhdG9yO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7IHR5cGUgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFubm90YXRpb24tYmFzZWQgaGVhZGVyIGZhY2V0LlxuICpcbiAqIEBwYXJhbSB7RmFjZXRUeXBlc30gZmFjZXREZWZpbml0aW9uIFRoZSBkZWZpbml0aW9uIG9mIHRoZSBmYWNldFxuICogQHBhcmFtIHtDb252ZXJ0ZXJDb250ZXh0fSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICpcbiAqIEByZXR1cm5zIHtPYmplY3RQYWdlSGVhZGVyRmFjZXR9IFRoZSBjcmVhdGVkIGFubm90YXRpb24tYmFzZWQgaGVhZGVyIGZhY2V0XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUhlYWRlckZhY2V0KGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcywgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IE9iamVjdFBhZ2VIZWFkZXJGYWNldCB8IHVuZGVmaW5lZCB7XG5cdGxldCBoZWFkZXJGYWNldDogT2JqZWN0UGFnZUhlYWRlckZhY2V0IHwgdW5kZWZpbmVkO1xuXHRzd2l0Y2ggKGZhY2V0RGVmaW5pdGlvbi4kVHlwZSkge1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQ6XG5cdFx0XHRoZWFkZXJGYWNldCA9IGNyZWF0ZVJlZmVyZW5jZUhlYWRlckZhY2V0KGZhY2V0RGVmaW5pdGlvbiwgZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHRcdGJyZWFrO1xuXG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQ6XG5cdFx0XHRoZWFkZXJGYWNldCA9IGNyZWF0ZUNvbGxlY3Rpb25IZWFkZXJGYWNldChmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdFx0YnJlYWs7XG5cdH1cblxuXHRyZXR1cm4gaGVhZGVyRmFjZXQ7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29udmVydCAmIEJ1aWxkIE1hbmlmZXN0IEJhc2VkIEhlYWRlciBGYWNldHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5mdW5jdGlvbiBnZW5lcmF0ZUJpbmRpbmcocmVxdWVzdEdyb3VwSWQ/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRpZiAoIXJlcXVlc3RHcm91cElkKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRjb25zdCBncm91cElkID1cblx0XHRbXCJIZXJvZXNcIiwgXCJEZWNvcmF0aW9uXCIsIFwiV29ya2Vyc1wiLCBcIkxvbmdSdW5uZXJzXCJdLmluZGV4T2YocmVxdWVzdEdyb3VwSWQpICE9PSAtMSA/IFwiJGF1dG8uXCIgKyByZXF1ZXN0R3JvdXBJZCA6IHJlcXVlc3RHcm91cElkO1xuXG5cdHJldHVybiBcInsgcGF0aCA6ICcnLCBwYXJhbWV0ZXJzIDogeyAkJGdyb3VwSWQgOiAnXCIgKyBncm91cElkICsgXCInIH0gfVwiO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIG1hbmlmZXN0IGJhc2VkIGN1c3RvbSBoZWFkZXIgZmFjZXQuXG4gKlxuICogQHBhcmFtIHtNYW5pZmVzdEhlYWRlckZhY2V0fSBjdXN0b21IZWFkZXJGYWNldERlZmluaXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBoZWFkZXJGYWNldEtleVxuICpcbiAqIEByZXR1cm5zIHtDdXN0b21PYmplY3RQYWdlSGVhZGVyRmFjZXR9IFRoZSBtYW5pZmVzdCBiYXNlZCBjdXN0b20gaGVhZGVyIGZhY2V0IGNyZWF0ZWRcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ3VzdG9tSGVhZGVyRmFjZXQoY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uOiBNYW5pZmVzdEhlYWRlckZhY2V0LCBoZWFkZXJGYWNldEtleTogc3RyaW5nKTogQ3VzdG9tT2JqZWN0UGFnZUhlYWRlckZhY2V0IHtcblx0Y29uc3QgY3VzdG9tSGVhZGVyRmFjZXRJRCA9IEN1c3RvbUhlYWRlckZhY2V0SUQoaGVhZGVyRmFjZXRLZXkpO1xuXG5cdGxldCBwb3NpdGlvbjogUG9zaXRpb24gfCB1bmRlZmluZWQgPSBjdXN0b21IZWFkZXJGYWNldERlZmluaXRpb24ucG9zaXRpb247XG5cdGlmICghcG9zaXRpb24pIHtcblx0XHRwb3NpdGlvbiA9IHtcblx0XHRcdHBsYWNlbWVudDogUGxhY2VtZW50LkFmdGVyXG5cdFx0fTtcblx0fVxuXHQvLyBUT0RPIGZvciBhbiBub24gYW5ub3RhdGlvbiBmcmFnbWVudCB0aGUgbmFtZSBpcyBtYW5kYXRvcnkgLT4gTm90IGNoZWNrZWRcblx0cmV0dXJuIHtcblx0XHRmYWNldFR5cGU6IEZhY2V0VHlwZS5SZWZlcmVuY2UsXG5cdFx0ZmFjZXRzOiBbXSxcblx0XHR0eXBlOiBjdXN0b21IZWFkZXJGYWNldERlZmluaXRpb24udHlwZSxcblx0XHRpZDogY3VzdG9tSGVhZGVyRmFjZXRJRCxcblx0XHRjb250YWluZXJJZDogY3VzdG9tSGVhZGVyRmFjZXRJRCxcblx0XHRrZXk6IGhlYWRlckZhY2V0S2V5LFxuXHRcdHBvc2l0aW9uOiBwb3NpdGlvbixcblx0XHR2aXNpYmxlOiBjdXN0b21IZWFkZXJGYWNldERlZmluaXRpb24udmlzaWJsZSxcblx0XHRmcmFnbWVudE5hbWU6IGN1c3RvbUhlYWRlckZhY2V0RGVmaW5pdGlvbi50ZW1wbGF0ZSB8fCBjdXN0b21IZWFkZXJGYWNldERlZmluaXRpb24ubmFtZSxcblx0XHR0aXRsZTogY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uLnRpdGxlLFxuXHRcdHN1YlRpdGxlOiBjdXN0b21IZWFkZXJGYWNldERlZmluaXRpb24uc3ViVGl0bGUsXG5cdFx0c3Rhc2hlZDogY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uLnN0YXNoZWQgfHwgZmFsc2UsXG5cdFx0ZmxleFNldHRpbmdzOiB7IC4uLnsgZGVzaWdudGltZTogRmxleERlc2lnblRpbWVUeXBlLkRlZmF1bHQgfSwgLi4uY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uLmZsZXhTZXR0aW5ncyB9LFxuXHRcdGJpbmRpbmc6IGdlbmVyYXRlQmluZGluZyhjdXN0b21IZWFkZXJGYWNldERlZmluaXRpb24ucmVxdWVzdEdyb3VwSWQpLFxuXHRcdHRlbXBsYXRlRWRpdDogY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uLnRlbXBsYXRlRWRpdFxuXHR9O1xufVxuIl19
495
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkhlYWRlckZhY2V0LnRzIl0sIm5hbWVzIjpbIkhlYWRlckZhY2V0VHlwZSIsIkZhY2V0VHlwZSIsIkZsZXhEZXNpZ25UaW1lVHlwZSIsIkhlYWRlckRhdGFQb2ludFR5cGUiLCJUYXJnZXRBbm5vdGF0aW9uVHlwZSIsImdldEhlYWRlckZhY2V0c0Zyb21Bbm5vdGF0aW9ucyIsImNvbnZlcnRlckNvbnRleHQiLCJoZWFkZXJGYWNldHMiLCJnZXRFbnRpdHlUeXBlIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhlYWRlckZhY2V0cyIsImZvckVhY2giLCJmYWNldCIsImhlYWRlckZhY2V0IiwiY3JlYXRlSGVhZGVyRmFjZXQiLCJwdXNoIiwiZ2V0SGVhZGVyRmFjZXRzRnJvbU1hbmlmZXN0IiwibWFuaWZlc3RDdXN0b21IZWFkZXJGYWNldHMiLCJjdXN0b21IZWFkZXJGYWNldHMiLCJPYmplY3QiLCJrZXlzIiwibWFuaWZlc3RIZWFkZXJGYWNldEtleSIsImN1c3RvbUhlYWRlckZhY2V0IiwiY3JlYXRlQ3VzdG9tSGVhZGVyRmFjZXQiLCJnZXRTdGFzaGVkU2V0dGluZ3NGb3JIZWFkZXJGYWNldCIsImZhY2V0RGVmaW5pdGlvbiIsImNvbGxlY3Rpb25GYWNldERlZmluaXRpb24iLCIkVHlwZSIsImhlYWRlckZhY2V0SUQiLCJnZW5lcmF0ZSIsIkZhY2V0IiwiaGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZyIsImdldE1hbmlmZXN0V3JhcHBlciIsImdldEhlYWRlckZhY2V0cyIsInN0YXNoZWRTZXR0aW5nIiwic3Rhc2hlZCIsImdldERlc2lnblRpbWVNZXRhZGF0YVNldHRpbmdzRm9ySGVhZGVyRmFjZXQiLCJkZXNpZ25UaW1lTWV0YWRhdGEiLCJEZWZhdWx0IiwiTm90QWRhcHRhYmxlVHJlZSIsImRlc2lnblRpbWUiLCJmbGV4U2V0dGluZ3MiLCJkZXNpZ250aW1lIiwiTm90QWRhcHRhYmxlIiwiTm90QWRhcHRhYmxlVmlzaWJpbGl0eSIsImNyZWF0ZVJlZmVyZW5jZUhlYWRlckZhY2V0IiwiSGlkZGVuIiwidmFsdWVPZiIsIkhlYWRlckZhY2V0SUQiLCJnZXRIZWFkZXJGYWNldEtleSIsImZhbGxiYWNrIiwiSUQiLCJ0b1N0cmluZyIsIkxhYmVsIiwidGFyZ2V0QW5ub3RhdGlvblZhbHVlIiwiVGFyZ2V0IiwidmFsdWUiLCJ0YXJnZXRBbm5vdGF0aW9uVHlwZSIsImdldFRhcmdldEFubm90YXRpb25UeXBlIiwiaGVhZGVyRm9ybURhdGEiLCJoZWFkZXJEYXRhUG9pbnREYXRhIiwiRmllbGRHcm91cCIsImdldEZpZWxkR3JvdXBGb3JtRGF0YSIsIkRhdGFQb2ludCIsImdldERhdGFQb2ludERhdGEiLCJ0eXBlIiwiQW5ub3RhdGlvbiIsImZhY2V0VHlwZSIsIlJlZmVyZW5jZSIsImlkIiwiY29udGFpbmVySWQiLCJIZWFkZXJGYWNldENvbnRhaW5lcklEIiwia2V5IiwidmlzaWJsZSIsImNvbXBpbGVCaW5kaW5nIiwibm90IiwiZXF1YWwiLCJhbm5vdGF0aW9uRXhwcmVzc2lvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInVuZGVmaW5lZCIsImNyZWF0ZUNvbGxlY3Rpb25IZWFkZXJGYWNldCIsImZhY2V0cyIsIkZhY2V0cyIsIkNvbGxlY3Rpb24iLCJhbm5vdGF0aW9uVHlwZSIsIk5vbmUiLCJhbm5vdGF0aW9uVHlwZU1hcCIsIkNoYXJ0IiwiSWRlbnRpZmljYXRpb24iLCJDb250YWN0IiwiQWRkcmVzcyIsIiR0YXJnZXQiLCJ0ZXJtIiwiRXJyb3IiLCJmb3JtRWxlbWVudHMiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsImdldEZvcm1FbGVtZW50c0Zyb21Bbm5vdGF0aW9ucyIsImdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdCIsIkhlYWRlckZhY2V0Rm9ybUlEIiwibGFiZWwiLCJhbm5vdGF0aW9uQmFzZWRGb3JtRWxlbWVudHMiLCJEYXRhIiwiZGF0YUZpZWxkIiwic2VtYW50aWNPYmplY3RBbm5vdGF0aW9uUGF0aCIsImdldFNlbWFudGljT2JqZWN0UGF0aCIsImlzVmFsdWVNdWx0aWxpbmVUZXh0IiwiVmFsdWUiLCJNdWx0aUxpbmVUZXh0IiwiRm9ybUVsZW1lbnRUeXBlIiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwiQ29tbW9uIiwiaWRQcmVmaXgiLCJzZW1hbnRpY09iamVjdFBhdGgiLCJDb250ZW50IiwiVmlzdWFsaXphdGlvbiIsIlByb2dyZXNzSW5kaWNhdG9yIiwiUmF0aW5nSW5kaWNhdG9yIiwiZ2VuZXJhdGVCaW5kaW5nIiwicmVxdWVzdEdyb3VwSWQiLCJncm91cElkIiwiaW5kZXhPZiIsImN1c3RvbUhlYWRlckZhY2V0RGVmaW5pdGlvbiIsImhlYWRlckZhY2V0S2V5IiwiY3VzdG9tSGVhZGVyRmFjZXRJRCIsIkN1c3RvbUhlYWRlckZhY2V0SUQiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiZnJhZ21lbnROYW1lIiwidGVtcGxhdGUiLCJuYW1lIiwidGl0bGUiLCJzdWJUaXRsZSIsImJpbmRpbmciLCJ0ZW1wbGF0ZUVkaXQiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQTtBQUNBO0FBQ0E7QUFDQTtNQUVZQSxlOzthQUFBQSxlO0FBQUFBLElBQUFBLGU7QUFBQUEsSUFBQUEsZTtLQUFBQSxlLEtBQUFBLGU7OztNQUtBQyxTOzthQUFBQSxTO0FBQUFBLElBQUFBLFM7QUFBQUEsSUFBQUEsUztLQUFBQSxTLEtBQUFBLFM7OztNQUtBQyxrQjs7YUFBQUEsa0I7QUFBQUEsSUFBQUEsa0I7QUFBQUEsSUFBQUEsa0I7QUFBQUEsSUFBQUEsa0I7QUFBQUEsSUFBQUEsa0I7S0FBQUEsa0IsS0FBQUEsa0I7OztNQWlCUEMsbUI7O2FBQUFBLG1CO0FBQUFBLElBQUFBLG1CO0FBQUFBLElBQUFBLG1CO0FBQUFBLElBQUFBLG1CO0tBQUFBLG1C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QWpDLE9BQVAsR0FBc0RzRiwyQkFBMkIsQ0FBQ25GLFlBQWxGLENBYk47QUFjTmdHLE1BQUFBLE9BQU8sRUFBRWpCLGVBQWUsQ0FBQ0ksMkJBQTJCLENBQUNILGNBQTdCLENBZGxCO0FBZU5pQixNQUFBQSxZQUFZLEVBQUVkLDJCQUEyQixDQUFDYztBQWZwQyxLQUFQO0FBaUJBIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREYXRhRmllbGRBYnN0cmFjdFR5cGVzLFxuXHREYXRhUG9pbnQsXG5cdEZhY2V0VHlwZXMsXG5cdEZpZWxkR3JvdXAsXG5cdFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdFVJQW5ub3RhdGlvblR5cGVzXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgZ2V0U2VtYW50aWNPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvYW5ub3RhdGlvbnMvRGF0YUZpZWxkXCI7XG5pbXBvcnQge1xuXHRDb25maWd1cmFibGVPYmplY3QsXG5cdENvbmZpZ3VyYWJsZVJlY29yZCxcblx0Q3VzdG9tRWxlbWVudCxcblx0aW5zZXJ0Q3VzdG9tRWxlbWVudHMsXG5cdFBsYWNlbWVudCxcblx0UG9zaXRpb25cbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEN1c3RvbUhlYWRlckZhY2V0SUQsIEhlYWRlckZhY2V0Q29udGFpbmVySUQsIEhlYWRlckZhY2V0Rm9ybUlELCBIZWFkZXJGYWNldElEIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9JRFwiO1xuaW1wb3J0IHsgS2V5SGVscGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9LZXlcIjtcbmltcG9ydCB7IE1hbmlmZXN0SGVhZGVyRmFjZXQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBhbm5vdGF0aW9uRXhwcmVzc2lvbiwgQmluZGluZ0V4cHJlc3Npb24sIGNvbXBpbGVCaW5kaW5nLCBlcXVhbCwgbm90IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcIi4uLy4uLy4uL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBBbm5vdGF0aW9uRm9ybUVsZW1lbnQsIEZvcm1FbGVtZW50LCBGb3JtRWxlbWVudFR5cGUsIGdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdCB9IGZyb20gXCIuLi9Db21tb24vRm9ybVwiO1xuXG4vLyByZWdpb24gZGVmaW5pdGlvbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmaW5pdGlvbnM6IEhlYWRlciBGYWNldCBUeXBlcywgR2VuZXJpYyBPUCBIZWFkZXIgRmFjZXQsIE1hbmlmZXN0IFByb3BlcnRpZXMgZm9yIEN1c3RvbSBIZWFkZXIgRmFjZXRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZW51bSBIZWFkZXJGYWNldFR5cGUge1xuXHRBbm5vdGF0aW9uID0gXCJBbm5vdGF0aW9uXCIsXG5cdFhNTEZyYWdtZW50ID0gXCJYTUxGcmFnbWVudFwiXG59XG5cbmV4cG9ydCBlbnVtIEZhY2V0VHlwZSB7XG5cdFJlZmVyZW5jZSA9IFwiUmVmZXJlbmNlXCIsXG5cdENvbGxlY3Rpb24gPSBcIkNvbGxlY3Rpb25cIlxufVxuXG5leHBvcnQgZW51bSBGbGV4RGVzaWduVGltZVR5cGUge1xuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdE5vdEFkYXB0YWJsZSA9IFwibm90LWFkYXB0YWJsZVwiLCAvLyBkaXNhYmxlIGFsbCBhY3Rpb25zIG9uIHRoYXQgaW5zdGFuY2Vcblx0Tm90QWRhcHRhYmxlVHJlZSA9IFwibm90LWFkYXB0YWJsZS10cmVlXCIsIC8vIGRpc2FibGUgYWxsIGFjdGlvbnMgb24gdGhhdCBpbnN0YW5jZSBhbmQgb24gYWxsIGNoaWxkcmVuIG9mIHRoYXQgaW5zdGFuY2Vcblx0Tm90QWRhcHRhYmxlVmlzaWJpbGl0eSA9IFwibm90LWFkYXB0YWJsZS12aXNpYmlsaXR5XCIgLy8gZGlzYWJsZSBhbGwgYWN0aW9ucyB0aGF0IGluZmx1ZW5jZSB0aGUgdmlzaWJpbGl0eSwgbmFtZWx5IHJldmVhbCBhbmQgcmVtb3ZlXG59XG5cbmV4cG9ydCB0eXBlIEZsZXhTZXR0aW5ncyA9IHtcblx0ZGVzaWdudGltZT86IEZsZXhEZXNpZ25UaW1lVHlwZTtcbn07XG5cbnR5cGUgSGVhZGVyRm9ybURhdGEgPSB7XG5cdGlkOiBzdHJpbmc7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHRmb3JtRWxlbWVudHM6IEZvcm1FbGVtZW50W107XG59O1xuXG5lbnVtIEhlYWRlckRhdGFQb2ludFR5cGUge1xuXHRQcm9ncmVzc0luZGljYXRvciA9IFwiUHJvZ3Jlc3NJbmRpY2F0b3JcIixcblx0UmF0aW5nSW5kaWNhdG9yID0gXCJSYXRpbmdJbmRpY2F0b3JcIixcblx0Q29udGVudCA9IFwiQ29udGVudFwiXG59XG5cbnR5cGUgSGVhZGVyRGF0YVBvaW50RGF0YSA9IHtcblx0dHlwZTogSGVhZGVyRGF0YVBvaW50VHlwZTtcbn07XG5cbmVudW0gVGFyZ2V0QW5ub3RhdGlvblR5cGUge1xuXHROb25lID0gXCJOb25lXCIsXG5cdERhdGFQb2ludCA9IFwiRGF0YVBvaW50XCIsXG5cdENoYXJ0ID0gXCJDaGFydFwiLFxuXHRJZGVudGlmaWNhdGlvbiA9IFwiSWRlbnRpZmljYXRpb25cIixcblx0Q29udGFjdCA9IFwiQ29udGFjdFwiLFxuXHRBZGRyZXNzID0gXCJBZGRyZXNzXCIsXG5cdEZpZWxkR3JvdXAgPSBcIkZpZWxkR3JvdXBcIlxufVxuXG50eXBlIEJhc2VIZWFkZXJGYWNldCA9IENvbmZpZ3VyYWJsZU9iamVjdCAmIHtcblx0dHlwZT86IEhlYWRlckZhY2V0VHlwZTsgLy8gTWFuaWZlc3Qgb3IgTWV0YWRhdGFcblx0aWQ6IHN0cmluZztcblx0Y29udGFpbmVySWQ6IHN0cmluZztcblx0YW5ub3RhdGlvblBhdGg/OiBzdHJpbmc7XG5cdGZsZXhTZXR0aW5nczogRmxleFNldHRpbmdzO1xuXHRzdGFzaGVkOiBib29sZWFuO1xuXHR2aXNpYmxlOiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPjtcblx0dGFyZ2V0QW5ub3RhdGlvblZhbHVlPzogc3RyaW5nO1xuXHR0YXJnZXRBbm5vdGF0aW9uVHlwZT86IFRhcmdldEFubm90YXRpb25UeXBlO1xufTtcblxudHlwZSBCYXNlUmVmZXJlbmNlRmFjZXQgPSBCYXNlSGVhZGVyRmFjZXQgJiB7XG5cdGZhY2V0VHlwZTogRmFjZXRUeXBlLlJlZmVyZW5jZTtcbn07XG5cbmV4cG9ydCB0eXBlIEZpZWxkR3JvdXBGYWNldCA9IEJhc2VSZWZlcmVuY2VGYWNldCAmIHtcblx0aGVhZGVyRm9ybURhdGE6IEhlYWRlckZvcm1EYXRhO1xufTtcblxudHlwZSBEYXRhUG9pbnRGYWNldCA9IEJhc2VSZWZlcmVuY2VGYWNldCAmIHtcblx0aGVhZGVyRGF0YVBvaW50RGF0YT86IEhlYWRlckRhdGFQb2ludERhdGE7XG59O1xuXG50eXBlIFJlZmVyZW5jZUZhY2V0ID0gRmllbGRHcm91cEZhY2V0IHwgRGF0YVBvaW50RmFjZXQ7XG5cbmV4cG9ydCB0eXBlIENvbGxlY3Rpb25GYWNldCA9IEJhc2VIZWFkZXJGYWNldCAmIHtcblx0ZmFjZXRUeXBlOiBGYWNldFR5cGUuQ29sbGVjdGlvbjtcblx0ZmFjZXRzOiBSZWZlcmVuY2VGYWNldFtdO1xufTtcblxuZXhwb3J0IHR5cGUgT2JqZWN0UGFnZUhlYWRlckZhY2V0ID0gUmVmZXJlbmNlRmFjZXQgfCBDb2xsZWN0aW9uRmFjZXQ7XG5cbmV4cG9ydCB0eXBlIEN1c3RvbU9iamVjdFBhZ2VIZWFkZXJGYWNldCA9IEN1c3RvbUVsZW1lbnQ8T2JqZWN0UGFnZUhlYWRlckZhY2V0PiAmIHtcblx0ZnJhZ21lbnROYW1lPzogc3RyaW5nO1xuXHR0aXRsZT86IHN0cmluZztcblx0c3ViVGl0bGU/OiBzdHJpbmc7XG5cdHN0YXNoZWQ/OiBib29sZWFuO1xuXHRiaW5kaW5nPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZUVkaXQ/OiBzdHJpbmc7XG59O1xuXG4vLyBlbmRyZWdpb24gZGVmaW5pdGlvbnNcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xsZWN0IEFsbCBIZWFkZXIgRmFjZXRzOiBDdXN0b20gKHZpYSBNYW5pZmVzdCkgYW5kIEFubm90YXRpb24gQmFzZWQgKHZpYSBNZXRhbW9kZWwpXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBSZXRyaWV2ZSBoZWFkZXIgZmFjZXRzIGZyb20gYW5ub3RhdGlvbnMuXG4gKlxuICogQHBhcmFtIHtDb252ZXJ0ZXJDb250ZXh0fSBjb252ZXJ0ZXJDb250ZXh0XG4gKlxuICogQHJldHVybnMge09iamVjdFBhZ2VIZWFkZXJGYWNldH0gSGVhZGVyIGZhY2V0cyBmcm9tIGFubm90YXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWFkZXJGYWNldHNGcm9tQW5ub3RhdGlvbnMoY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IE9iamVjdFBhZ2VIZWFkZXJGYWNldFtdIHtcblx0Y29uc3QgaGVhZGVyRmFjZXRzOiBPYmplY3RQYWdlSGVhZGVyRmFjZXRbXSA9IFtdO1xuXHRjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKS5hbm5vdGF0aW9ucz8uVUk/LkhlYWRlckZhY2V0cz8uZm9yRWFjaCgoZmFjZXQpID0+IHtcblx0XHRjb25zdCBoZWFkZXJGYWNldDogT2JqZWN0UGFnZUhlYWRlckZhY2V0IHwgdW5kZWZpbmVkID0gY3JlYXRlSGVhZGVyRmFjZXQoZmFjZXQsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGlmIChoZWFkZXJGYWNldCkge1xuXHRcdFx0aGVhZGVyRmFjZXRzLnB1c2goaGVhZGVyRmFjZXQpO1xuXHRcdH1cblx0fSk7XG5cblx0cmV0dXJuIGhlYWRlckZhY2V0cztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZSBjdXN0b20gaGVhZGVyIGZhY2V0cyBmcm9tIG1hbmlmZXN0LlxuICpcbiAqIEBwYXJhbSB7Q29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+fSBtYW5pZmVzdEN1c3RvbUhlYWRlckZhY2V0c1xuICpcbiAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBDdXN0b21PYmplY3RQYWdlSGVhZGVyRmFjZXQ+fSBIZWFkZXJGYWNldHMgZnJvbSBtYW5pZmVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVhZGVyRmFjZXRzRnJvbU1hbmlmZXN0KFxuXHRtYW5pZmVzdEN1c3RvbUhlYWRlckZhY2V0czogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+XG4pOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21PYmplY3RQYWdlSGVhZGVyRmFjZXQ+IHtcblx0Y29uc3QgY3VzdG9tSGVhZGVyRmFjZXRzOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21PYmplY3RQYWdlSGVhZGVyRmFjZXQ+ID0ge307XG5cblx0T2JqZWN0LmtleXMobWFuaWZlc3RDdXN0b21IZWFkZXJGYWNldHMpLmZvckVhY2goKG1hbmlmZXN0SGVhZGVyRmFjZXRLZXkpID0+IHtcblx0XHRjb25zdCBjdXN0b21IZWFkZXJGYWNldDogTWFuaWZlc3RIZWFkZXJGYWNldCA9IG1hbmlmZXN0Q3VzdG9tSGVhZGVyRmFjZXRzW21hbmlmZXN0SGVhZGVyRmFjZXRLZXldO1xuXHRcdGN1c3RvbUhlYWRlckZhY2V0c1ttYW5pZmVzdEhlYWRlckZhY2V0S2V5XSA9IGNyZWF0ZUN1c3RvbUhlYWRlckZhY2V0KGN1c3RvbUhlYWRlckZhY2V0LCBtYW5pZmVzdEhlYWRlckZhY2V0S2V5KTtcblx0fSk7XG5cblx0cmV0dXJuIGN1c3RvbUhlYWRlckZhY2V0cztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZSBzdGFzaGVkIHNldHRpbmdzIGZvciBoZWFkZXIgZmFjZXRzIGZyb20gbWFuaWZlc3QuXG4gKlxuICogQHBhcmFtIHtGYWNldFR5cGVzfSBmYWNldERlZmluaXRpb25cbiAqIEBwYXJhbSB7RmFjZXRUeXBlc30gY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvblxuICogQHBhcmFtIHtDb252ZXJ0ZXJDb250ZXh0fSBjb252ZXJ0ZXJDb250ZXh0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFN0YXNoZWQgc2V0dGluZyBmb3IgaGVhZGVyIGZhY2V0IG9yIGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFzaGVkU2V0dGluZ3NGb3JIZWFkZXJGYWNldChcblx0ZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzLFxuXHRjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBib29sZWFuIHtcblx0Ly8gV2hlbiBhIEhlYWRlckZhY2V0IGlzIG5lc3RlZCBpbnNpZGUgYSBDb2xsZWN0aW9uRmFjZXQsIHN0YXNoaW5nIGlzIG5vdCBzdXBwb3J0ZWRcblx0aWYgKFxuXHRcdGZhY2V0RGVmaW5pdGlvbi4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQgJiZcblx0XHRjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXRcblx0KSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdGNvbnN0IGhlYWRlckZhY2V0SUQgPSBnZW5lcmF0ZShbeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH1dKTtcblx0Y29uc3QgaGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZyA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0SGVhZGVyRmFjZXRzKCk7XG5cdGNvbnN0IHN0YXNoZWRTZXR0aW5nID0gaGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ1toZWFkZXJGYWNldElEXT8uc3Rhc2hlZDtcblx0cmV0dXJuIHN0YXNoZWRTZXR0aW5nID09PSB0cnVlO1xufVxuXG4vKipcbiAqIFJldHJpZXZlIGZsZXhpYmlsaXR5IGRlc2lnbnRpbWUgc2V0dGluZ3MgZnJvbSBtYW5pZmVzdC5cbiAqXG4gKiBAcGFyYW0ge0ZhY2V0VHlwZXN9IGZhY2V0RGVmaW5pdGlvblxuICogQHBhcmFtIHtGYWNldFR5cGVzfSBjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHRcbiAqXG4gKiBAcmV0dXJucyB7RmxleERlc2lnblRpbWVUeXBlfSBEZXNpZ250aW1lIHNldHRpbmcgb3IgZGVmYXVsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzaWduVGltZU1ldGFkYXRhU2V0dGluZ3NGb3JIZWFkZXJGYWNldChcblx0ZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzLFxuXHRjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBGbGV4RGVzaWduVGltZVR5cGUge1xuXHRsZXQgZGVzaWduVGltZU1ldGFkYXRhOiBGbGV4RGVzaWduVGltZVR5cGUgPSBGbGV4RGVzaWduVGltZVR5cGUuRGVmYXVsdDtcblx0Y29uc3QgaGVhZGVyRmFjZXRJRCA9IGdlbmVyYXRlKFt7IEZhY2V0OiBmYWNldERlZmluaXRpb24gfV0pO1xuXG5cdC8vIEZvciBIZWFkZXJGYWNldHMgbmVzdGVkIGluc2lkZSBDb2xsZWN0aW9uRmFjZXQgUlRBIHNob3VsZCBiZSBkaXNhYmxlZCwgdGhlcmVmb3JlIHNldCB0byBcIm5vdC1hZGFwdGFibGUtdHJlZVwiXG5cdGlmIChcblx0XHRmYWNldERlZmluaXRpb24uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0ICYmXG5cdFx0Y29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbi4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ29sbGVjdGlvbkZhY2V0XG5cdCkge1xuXHRcdGRlc2lnblRpbWVNZXRhZGF0YSA9IEZsZXhEZXNpZ25UaW1lVHlwZS5Ob3RBZGFwdGFibGVUcmVlO1xuXHR9IGVsc2Uge1xuXHRcdGNvbnN0IGhlYWRlckZhY2V0c0NvbnRyb2xDb25maWcgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldEhlYWRlckZhY2V0cygpO1xuXHRcdGlmIChoZWFkZXJGYWNldElEKSB7XG5cdFx0XHRjb25zdCBkZXNpZ25UaW1lID0gaGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ1toZWFkZXJGYWNldElEXT8uZmxleFNldHRpbmdzPy5kZXNpZ250aW1lO1xuXHRcdFx0c3dpdGNoIChkZXNpZ25UaW1lKSB7XG5cdFx0XHRcdGNhc2UgRmxleERlc2lnblRpbWVUeXBlLk5vdEFkYXB0YWJsZTpcblx0XHRcdFx0Y2FzZSBGbGV4RGVzaWduVGltZVR5cGUuTm90QWRhcHRhYmxlVHJlZTpcblx0XHRcdFx0Y2FzZSBGbGV4RGVzaWduVGltZVR5cGUuTm90QWRhcHRhYmxlVmlzaWJpbGl0eTpcblx0XHRcdFx0XHRkZXNpZ25UaW1lTWV0YWRhdGEgPSBkZXNpZ25UaW1lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gZGVzaWduVGltZU1ldGFkYXRhO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbnZlcnQgJiBCdWlsZCBBbm5vdGF0aW9uIEJhc2VkIEhlYWRlciBGYWNldHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuZnVuY3Rpb24gY3JlYXRlUmVmZXJlbmNlSGVhZGVyRmFjZXQoXG5cdGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0Y29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogUmVmZXJlbmNlRmFjZXQgfCB1bmRlZmluZWQge1xuXHRpZiAoZmFjZXREZWZpbml0aW9uLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldCAmJiAhKGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSkge1xuXHRcdGNvbnN0IGhlYWRlckZhY2V0SUQgPSBIZWFkZXJGYWNldElEKHsgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9KSxcblx0XHRcdGdldEhlYWRlckZhY2V0S2V5ID0gKGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcywgZmFsbGJhY2s6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdFx0XHRcdHJldHVybiBmYWNldERlZmluaXRpb24uSUQ/LnRvU3RyaW5nKCkgfHwgZmFjZXREZWZpbml0aW9uLkxhYmVsPy50b1N0cmluZygpIHx8IGZhbGxiYWNrO1xuXHRcdFx0fSxcblx0XHRcdHRhcmdldEFubm90YXRpb25WYWx1ZSA9IGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUsXG5cdFx0XHR0YXJnZXRBbm5vdGF0aW9uVHlwZSA9IGdldFRhcmdldEFubm90YXRpb25UeXBlKGZhY2V0RGVmaW5pdGlvbik7XG5cblx0XHRsZXQgaGVhZGVyRm9ybURhdGE6IEhlYWRlckZvcm1EYXRhIHwgdW5kZWZpbmVkO1xuXHRcdGxldCBoZWFkZXJEYXRhUG9pbnREYXRhOiBIZWFkZXJEYXRhUG9pbnREYXRhIHwgdW5kZWZpbmVkO1xuXG5cdFx0c3dpdGNoICh0YXJnZXRBbm5vdGF0aW9uVHlwZSkge1xuXHRcdFx0Y2FzZSBUYXJnZXRBbm5vdGF0aW9uVHlwZS5GaWVsZEdyb3VwOlxuXHRcdFx0XHRoZWFkZXJGb3JtRGF0YSA9IGdldEZpZWxkR3JvdXBGb3JtRGF0YShmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Y2FzZSBUYXJnZXRBbm5vdGF0aW9uVHlwZS5EYXRhUG9pbnQ6XG5cdFx0XHRcdGhlYWRlckRhdGFQb2ludERhdGEgPSBnZXREYXRhUG9pbnREYXRhKGZhY2V0RGVmaW5pdGlvbik7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Ly8gVG9EbzogSGFuZGxlIG90aGVyIGNhc2VzXG5cdFx0fVxuXG5cdFx0Y29uc3QgeyBhbm5vdGF0aW9ucyB9ID0gZmFjZXREZWZpbml0aW9uO1xuXHRcdHJldHVybiB7XG5cdFx0XHR0eXBlOiBIZWFkZXJGYWNldFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdGZhY2V0VHlwZTogRmFjZXRUeXBlLlJlZmVyZW5jZSxcblx0XHRcdGlkOiBoZWFkZXJGYWNldElELFxuXHRcdFx0Y29udGFpbmVySWQ6IEhlYWRlckZhY2V0Q29udGFpbmVySUQoeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH0pLFxuXHRcdFx0a2V5OiBnZXRIZWFkZXJGYWNldEtleShmYWNldERlZmluaXRpb24sIGhlYWRlckZhY2V0SUQpLFxuXHRcdFx0ZmxleFNldHRpbmdzOiB7XG5cdFx0XHRcdGRlc2lnbnRpbWU6IGdldERlc2lnblRpbWVNZXRhZGF0YVNldHRpbmdzRm9ySGVhZGVyRmFjZXQoZmFjZXREZWZpbml0aW9uLCBjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KVxuXHRcdFx0fSxcblx0XHRcdHN0YXNoZWQ6IGdldFN0YXNoZWRTZXR0aW5nc0ZvckhlYWRlckZhY2V0KGZhY2V0RGVmaW5pdGlvbiwgY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0XHR2aXNpYmxlOiBjb21waWxlQmluZGluZyhub3QoZXF1YWwoYW5ub3RhdGlvbkV4cHJlc3Npb24oYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSksIHRydWUpKSksXG5cdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGZhY2V0RGVmaW5pdGlvbi5mdWxseVF1YWxpZmllZE5hbWUpICsgXCIvXCIsXG5cdFx0XHR0YXJnZXRBbm5vdGF0aW9uVmFsdWUsXG5cdFx0XHR0YXJnZXRBbm5vdGF0aW9uVHlwZSxcblx0XHRcdGhlYWRlckZvcm1EYXRhLFxuXHRcdFx0aGVhZGVyRGF0YVBvaW50RGF0YVxuXHRcdH07XG5cdH1cblxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDb2xsZWN0aW9uSGVhZGVyRmFjZXQoXG5cdGNvbGxlY3Rpb25GYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IENvbGxlY3Rpb25GYWNldCB8IHVuZGVmaW5lZCB7XG5cdGlmIChjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQpIHtcblx0XHRjb25zdCBmYWNldHM6IFJlZmVyZW5jZUZhY2V0W10gPSBbXSxcblx0XHRcdGhlYWRlckZhY2V0SUQgPSBIZWFkZXJGYWNldElEKHsgRmFjZXQ6IGNvbGxlY3Rpb25GYWNldERlZmluaXRpb24gfSksXG5cdFx0XHRnZXRIZWFkZXJGYWNldEtleSA9IChmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsIGZhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRcdFx0XHRyZXR1cm4gZmFjZXREZWZpbml0aW9uLklEPy50b1N0cmluZygpIHx8IGZhY2V0RGVmaW5pdGlvbi5MYWJlbD8udG9TdHJpbmcoKSB8fCBmYWxsYmFjaztcblx0XHRcdH07XG5cblx0XHRjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uLkZhY2V0cy5mb3JFYWNoKChmYWNldERlZmluaXRpb24pID0+IHtcblx0XHRcdGNvbnN0IGZhY2V0OiBSZWZlcmVuY2VGYWNldCB8IHVuZGVmaW5lZCA9IGNyZWF0ZVJlZmVyZW5jZUhlYWRlckZhY2V0KFxuXHRcdFx0XHRmYWNldERlZmluaXRpb24sXG5cdFx0XHRcdGNvbGxlY3Rpb25GYWNldERlZmluaXRpb24sXG5cdFx0XHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdCk7XG5cdFx0XHRpZiAoZmFjZXQpIHtcblx0XHRcdFx0ZmFjZXRzLnB1c2goZmFjZXQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHR5cGU6IEhlYWRlckZhY2V0VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0ZmFjZXRUeXBlOiBGYWNldFR5cGUuQ29sbGVjdGlvbixcblx0XHRcdGlkOiBoZWFkZXJGYWNldElELFxuXHRcdFx0Y29udGFpbmVySWQ6IEhlYWRlckZhY2V0Q29udGFpbmVySUQoeyBGYWNldDogY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbiB9KSxcblx0XHRcdGtleTogZ2V0SGVhZGVyRmFjZXRLZXkoY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbiwgaGVhZGVyRmFjZXRJRCksXG5cdFx0XHRmbGV4U2V0dGluZ3M6IHtcblx0XHRcdFx0ZGVzaWdudGltZTogZ2V0RGVzaWduVGltZU1ldGFkYXRhU2V0dGluZ3NGb3JIZWFkZXJGYWNldChcblx0XHRcdFx0XHRjb2xsZWN0aW9uRmFjZXREZWZpbml0aW9uLFxuXHRcdFx0XHRcdGNvbGxlY3Rpb25GYWNldERlZmluaXRpb24sXG5cdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHQpXG5cdFx0XHR9LFxuXHRcdFx0c3Rhc2hlZDogZ2V0U3Rhc2hlZFNldHRpbmdzRm9ySGVhZGVyRmFjZXQoY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbiwgY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0XHR2aXNpYmxlOiBjb21waWxlQmluZGluZyhub3QoZXF1YWwoYW5ub3RhdGlvbkV4cHJlc3Npb24oY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpKSwgdHJ1ZSkpKSxcblx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoY29sbGVjdGlvbkZhY2V0RGVmaW5pdGlvbi5mdWxseVF1YWxpZmllZE5hbWUpICsgXCIvXCIsXG5cdFx0XHRmYWNldHNcblx0XHR9O1xuXHR9XG5cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0QW5ub3RhdGlvblR5cGUoZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzKTogVGFyZ2V0QW5ub3RhdGlvblR5cGUge1xuXHRsZXQgYW5ub3RhdGlvblR5cGUgPSBUYXJnZXRBbm5vdGF0aW9uVHlwZS5Ob25lO1xuXHRjb25zdCBhbm5vdGF0aW9uVHlwZU1hcDogUmVjb3JkPHN0cmluZywgVGFyZ2V0QW5ub3RhdGlvblR5cGU+ID0ge1xuXHRcdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50XCI6IFRhcmdldEFubm90YXRpb25UeXBlLkRhdGFQb2ludCxcblx0XHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0XCI6IFRhcmdldEFubm90YXRpb25UeXBlLkNoYXJ0LFxuXHRcdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSWRlbnRpZmljYXRpb25cIjogVGFyZ2V0QW5ub3RhdGlvblR5cGUuSWRlbnRpZmljYXRpb24sXG5cdFx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tdW5pY2F0aW9uLnYxLkNvbnRhY3RcIjogVGFyZ2V0QW5ub3RhdGlvblR5cGUuQ29udGFjdCxcblx0XHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuQWRkcmVzc1wiOiBUYXJnZXRBbm5vdGF0aW9uVHlwZS5BZGRyZXNzLFxuXHRcdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRmllbGRHcm91cFwiOiBUYXJnZXRBbm5vdGF0aW9uVHlwZS5GaWVsZEdyb3VwXG5cdH07XG5cdC8vIFJlZmVyZW5jZVVSTEZhY2V0IGFuZCBDb2xsZWN0aW9uRmFjZXQgZG8gbm90IGhhdmUgVGFyZ2V0IHByb3BlcnR5LlxuXHRpZiAoZmFjZXREZWZpbml0aW9uLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VVUkxGYWNldCAmJiBmYWNldERlZmluaXRpb24uJFR5cGUgIT09IFVJQW5ub3RhdGlvblR5cGVzLkNvbGxlY3Rpb25GYWNldCkge1xuXHRcdGFubm90YXRpb25UeXBlID0gYW5ub3RhdGlvblR5cGVNYXBbZmFjZXREZWZpbml0aW9uLlRhcmdldD8uJHRhcmdldD8udGVybV0gfHwgVGFyZ2V0QW5ub3RhdGlvblR5cGUuTm9uZTtcblx0fVxuXG5cdHJldHVybiBhbm5vdGF0aW9uVHlwZTtcbn1cblxuZnVuY3Rpb24gZ2V0RmllbGRHcm91cEZvcm1EYXRhKGZhY2V0RGVmaW5pdGlvbjogUmVmZXJlbmNlRmFjZXRUeXBlcywgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEhlYWRlckZvcm1EYXRhIHtcblx0Ly8gc3BsaXQgaW4gdGhpcyBmcm9tIGFubm90YXRpb24gKyBnZXRGaWVsZEdyb3VwRnJvbURlZmF1bHRcblx0aWYgKCFmYWNldERlZmluaXRpb24pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgZ2V0IEZpZWxkR3JvdXAgZm9ybSBkYXRhIHdpdGhvdXQgZmFjZXQgZGVmaW5pdGlvblwiKTtcblx0fVxuXG5cdGNvbnN0IGZvcm1FbGVtZW50cyA9IGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdGdldEZvcm1FbGVtZW50c0Zyb21Bbm5vdGF0aW9ucyhmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdGdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdChmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQpXG5cdCk7XG5cblx0cmV0dXJuIHtcblx0XHRpZDogSGVhZGVyRmFjZXRGb3JtSUQoeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH0pLFxuXHRcdGxhYmVsOiBmYWNldERlZmluaXRpb24uTGFiZWw/LnRvU3RyaW5nKCksXG5cdFx0Zm9ybUVsZW1lbnRzXG5cdH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiBtYW5pZmVzdC1iYXNlZCBGb3JtRWxlbWVudHMuXG4gKlxuICogQHBhcmFtIHtGYWNldFR5cGV9IGZhY2V0RGVmaW5pdGlvbiBUaGUgZGVmaW5pdGlvbiBvZiB0aGUgZmFjZXRcbiAqIEBwYXJhbSB7Q29udmVydGVyQ29udGV4dH0gY29udmVydGVyQ29udGV4dCBUaGUgY29udmVydGVyIGNvbnRleHQgZm9yIHRoZSBmYWNldFxuICpcbiAqIEByZXR1cm5zIHtBcnJheX0gQW5ub3RhdGlvbi1iYXNlZCBGb3JtRWxlbWVudHNcbiAqL1xuZnVuY3Rpb24gZ2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zKGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcywgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEFubm90YXRpb25Gb3JtRWxlbWVudFtdIHtcblx0Y29uc3QgYW5ub3RhdGlvbkJhc2VkRm9ybUVsZW1lbnRzOiBBbm5vdGF0aW9uRm9ybUVsZW1lbnRbXSA9IFtdO1xuXG5cdC8vIFJlZmVyZW5jZVVSTEZhY2V0IGFuZCBDb2xsZWN0aW9uRmFjZXQgZG8gbm90IGhhdmUgVGFyZ2V0IHByb3BlcnR5LlxuXHRpZiAoZmFjZXREZWZpbml0aW9uLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VVUkxGYWNldCAmJiBmYWNldERlZmluaXRpb24uJFR5cGUgIT09IFVJQW5ub3RhdGlvblR5cGVzLkNvbGxlY3Rpb25GYWNldCkge1xuXHRcdChmYWNldERlZmluaXRpb24uVGFyZ2V0Py4kdGFyZ2V0IGFzIEZpZWxkR3JvdXApPy5EYXRhLmZvckVhY2goKGRhdGFGaWVsZDogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcykgPT4ge1xuXHRcdFx0aWYgKCEoZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpKSB7XG5cdFx0XHRcdGNvbnN0IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGggPSBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgZGF0YUZpZWxkKTtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdGRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkIHx8XG5cdFx0XHRcdFx0ZGF0YUZpZWxkLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoVXJsIHx8XG5cdFx0XHRcdFx0ZGF0YUZpZWxkLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoTmF2aWdhdGlvblBhdGggfHxcblx0XHRcdFx0XHRkYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhJbnRlbnRCYXNlZE5hdmlnYXRpb24gfHxcblx0XHRcdFx0XHRkYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhBY3Rpb25cblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0Y29uc3QgeyBhbm5vdGF0aW9ucyB9ID0gZGF0YUZpZWxkO1xuXHRcdFx0XHRcdGFubm90YXRpb25CYXNlZEZvcm1FbGVtZW50cy5wdXNoKHtcblx0XHRcdFx0XHRcdGlzVmFsdWVNdWx0aWxpbmVUZXh0OiBkYXRhRmllbGQuVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VST8uTXVsdGlMaW5lVGV4dD8udmFsdWVPZigpID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHRcdFx0XHRcdHZpc2libGU6IGNvbXBpbGVCaW5kaW5nKG5vdChlcXVhbChhbm5vdGF0aW9uRXhwcmVzc2lvbihhbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpKSwgdHJ1ZSkpKSxcblx0XHRcdFx0XHRcdGxhYmVsOiBkYXRhRmllbGQuVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkxhYmVsIHx8IGRhdGFGaWVsZC5MYWJlbCxcblx0XHRcdFx0XHRcdGlkUHJlZml4OiBIZWFkZXJGYWNldEZvcm1JRCh7IEZhY2V0OiBmYWNldERlZmluaXRpb24gfSwgZGF0YUZpZWxkKSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZGF0YUZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSkgKyBcIi9cIixcblx0XHRcdFx0XHRcdHNlbWFudGljT2JqZWN0UGF0aDogc2VtYW50aWNPYmplY3RBbm5vdGF0aW9uUGF0aFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQW5ub3RhdGlvbikge1xuXHRcdFx0XHRcdGNvbnN0IHsgYW5ub3RhdGlvbnMgfSA9IGRhdGFGaWVsZDtcblx0XHRcdFx0XHRhbm5vdGF0aW9uQmFzZWRGb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdFx0XHQvLyBGSVhNRSB0aGlzIGlzIHdyb25nXG5cdFx0XHRcdFx0XHRpc1ZhbHVlTXVsdGlsaW5lVGV4dDogKGRhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VSSBhcyBhbnkpPy5NdWx0aUxpbmVUZXh0Py52YWx1ZU9mKCkgPT09IHRydWUsXG5cdFx0XHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpLFxuXHRcdFx0XHRcdFx0dmlzaWJsZTogY29tcGlsZUJpbmRpbmcobm90KGVxdWFsKGFubm90YXRpb25FeHByZXNzaW9uKGFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkpLCB0cnVlKSkpLFxuXHRcdFx0XHRcdFx0bGFiZWw6IGRhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkxhYmVsPy50b1N0cmluZygpIHx8IGRhdGFGaWVsZC5MYWJlbD8udG9TdHJpbmcoKSxcblx0XHRcdFx0XHRcdGlkUHJlZml4OiBIZWFkZXJGYWNldEZvcm1JRCh7IEZhY2V0OiBmYWNldERlZmluaXRpb24gfSwgZGF0YUZpZWxkKSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZGF0YUZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSkgKyBcIi9cIixcblx0XHRcdFx0XHRcdHNlbWFudGljT2JqZWN0UGF0aDogc2VtYW50aWNPYmplY3RBbm5vdGF0aW9uUGF0aFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRyZXR1cm4gYW5ub3RhdGlvbkJhc2VkRm9ybUVsZW1lbnRzO1xufVxuXG5mdW5jdGlvbiBnZXREYXRhUG9pbnREYXRhKGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyk6IEhlYWRlckRhdGFQb2ludERhdGEge1xuXHRsZXQgdHlwZSA9IEhlYWRlckRhdGFQb2ludFR5cGUuQ29udGVudDtcblx0aWYgKGZhY2V0RGVmaW5pdGlvbi4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQpIHtcblx0XHRpZiAoKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQ/LiR0YXJnZXQgYXMgRGF0YVBvaW50KT8uVmlzdWFsaXphdGlvbiA9PT0gXCJVSS5WaXN1YWxpemF0aW9uVHlwZS9Qcm9ncmVzc1wiKSB7XG5cdFx0XHR0eXBlID0gSGVhZGVyRGF0YVBvaW50VHlwZS5Qcm9ncmVzc0luZGljYXRvcjtcblx0XHR9IGVsc2UgaWYgKChmYWNldERlZmluaXRpb24uVGFyZ2V0Py4kdGFyZ2V0IGFzIERhdGFQb2ludCk/LlZpc3VhbGl6YXRpb24gPT09IFwiVUkuVmlzdWFsaXphdGlvblR5cGUvUmF0aW5nXCIpIHtcblx0XHRcdHR5cGUgPSBIZWFkZXJEYXRhUG9pbnRUeXBlLlJhdGluZ0luZGljYXRvcjtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4geyB0eXBlIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhbm5vdGF0aW9uLWJhc2VkIGhlYWRlciBmYWNldC5cbiAqXG4gKiBAcGFyYW0ge0ZhY2V0VHlwZXN9IGZhY2V0RGVmaW5pdGlvbiBUaGUgZGVmaW5pdGlvbiBvZiB0aGUgZmFjZXRcbiAqIEBwYXJhbSB7Q29udmVydGVyQ29udGV4dH0gY29udmVydGVyQ29udGV4dCBUaGUgY29udmVydGVyIGNvbnRleHRcbiAqXG4gKiBAcmV0dXJucyB7T2JqZWN0UGFnZUhlYWRlckZhY2V0fSBUaGUgY3JlYXRlZCBhbm5vdGF0aW9uLWJhc2VkIGhlYWRlciBmYWNldFxuICovXG5mdW5jdGlvbiBjcmVhdGVIZWFkZXJGYWNldChmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBPYmplY3RQYWdlSGVhZGVyRmFjZXQgfCB1bmRlZmluZWQge1xuXHRsZXQgaGVhZGVyRmFjZXQ6IE9iamVjdFBhZ2VIZWFkZXJGYWNldCB8IHVuZGVmaW5lZDtcblx0c3dpdGNoIChmYWNldERlZmluaXRpb24uJFR5cGUpIHtcblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0OlxuXHRcdFx0aGVhZGVyRmFjZXQgPSBjcmVhdGVSZWZlcmVuY2VIZWFkZXJGYWNldChmYWNldERlZmluaXRpb24sIGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCk7XG5cdFx0XHRicmVhaztcblxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuQ29sbGVjdGlvbkZhY2V0OlxuXHRcdFx0aGVhZGVyRmFjZXQgPSBjcmVhdGVDb2xsZWN0aW9uSGVhZGVyRmFjZXQoZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHRcdGJyZWFrO1xuXHR9XG5cblx0cmV0dXJuIGhlYWRlckZhY2V0O1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbnZlcnQgJiBCdWlsZCBNYW5pZmVzdCBCYXNlZCBIZWFkZXIgRmFjZXRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZnVuY3Rpb24gZ2VuZXJhdGVCaW5kaW5nKHJlcXVlc3RHcm91cElkPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0aWYgKCFyZXF1ZXN0R3JvdXBJZCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0Y29uc3QgZ3JvdXBJZCA9XG5cdFx0W1wiSGVyb2VzXCIsIFwiRGVjb3JhdGlvblwiLCBcIldvcmtlcnNcIiwgXCJMb25nUnVubmVyc1wiXS5pbmRleE9mKHJlcXVlc3RHcm91cElkKSAhPT0gLTEgPyBcIiRhdXRvLlwiICsgcmVxdWVzdEdyb3VwSWQgOiByZXF1ZXN0R3JvdXBJZDtcblxuXHRyZXR1cm4gXCJ7IHBhdGggOiAnJywgcGFyYW1ldGVycyA6IHsgJCRncm91cElkIDogJ1wiICsgZ3JvdXBJZCArIFwiJyB9IH1cIjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtYW5pZmVzdCBiYXNlZCBjdXN0b20gaGVhZGVyIGZhY2V0LlxuICpcbiAqIEBwYXJhbSB7TWFuaWZlc3RIZWFkZXJGYWNldH0gY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gaGVhZGVyRmFjZXRLZXlcbiAqXG4gKiBAcmV0dXJucyB7Q3VzdG9tT2JqZWN0UGFnZUhlYWRlckZhY2V0fSBUaGUgbWFuaWZlc3QgYmFzZWQgY3VzdG9tIGhlYWRlciBmYWNldCBjcmVhdGVkXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUN1c3RvbUhlYWRlckZhY2V0KGN1c3RvbUhlYWRlckZhY2V0RGVmaW5pdGlvbjogTWFuaWZlc3RIZWFkZXJGYWNldCwgaGVhZGVyRmFjZXRLZXk6IHN0cmluZyk6IEN1c3RvbU9iamVjdFBhZ2VIZWFkZXJGYWNldCB7XG5cdGNvbnN0IGN1c3RvbUhlYWRlckZhY2V0SUQgPSBDdXN0b21IZWFkZXJGYWNldElEKGhlYWRlckZhY2V0S2V5KTtcblxuXHRsZXQgcG9zaXRpb246IFBvc2l0aW9uIHwgdW5kZWZpbmVkID0gY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uLnBvc2l0aW9uO1xuXHRpZiAoIXBvc2l0aW9uKSB7XG5cdFx0cG9zaXRpb24gPSB7XG5cdFx0XHRwbGFjZW1lbnQ6IFBsYWNlbWVudC5BZnRlclxuXHRcdH07XG5cdH1cblx0Ly8gVE9ETyBmb3IgYW4gbm9uIGFubm90YXRpb24gZnJhZ21lbnQgdGhlIG5hbWUgaXMgbWFuZGF0b3J5IC0+IE5vdCBjaGVja2VkXG5cdHJldHVybiB7XG5cdFx0ZmFjZXRUeXBlOiBGYWNldFR5cGUuUmVmZXJlbmNlLFxuXHRcdGZhY2V0czogW10sXG5cdFx0dHlwZTogY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uLnR5cGUsXG5cdFx0aWQ6IGN1c3RvbUhlYWRlckZhY2V0SUQsXG5cdFx0Y29udGFpbmVySWQ6IGN1c3RvbUhlYWRlckZhY2V0SUQsXG5cdFx0a2V5OiBoZWFkZXJGYWNldEtleSxcblx0XHRwb3NpdGlvbjogcG9zaXRpb24sXG5cdFx0dmlzaWJsZTogY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uLnZpc2libGUsXG5cdFx0ZnJhZ21lbnROYW1lOiBjdXN0b21IZWFkZXJGYWNldERlZmluaXRpb24udGVtcGxhdGUgfHwgY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uLm5hbWUsXG5cdFx0dGl0bGU6IGN1c3RvbUhlYWRlckZhY2V0RGVmaW5pdGlvbi50aXRsZSxcblx0XHRzdWJUaXRsZTogY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uLnN1YlRpdGxlLFxuXHRcdHN0YXNoZWQ6IGN1c3RvbUhlYWRlckZhY2V0RGVmaW5pdGlvbi5zdGFzaGVkIHx8IGZhbHNlLFxuXHRcdGZsZXhTZXR0aW5nczogeyAuLi57IGRlc2lnbnRpbWU6IEZsZXhEZXNpZ25UaW1lVHlwZS5EZWZhdWx0IH0sIC4uLmN1c3RvbUhlYWRlckZhY2V0RGVmaW5pdGlvbi5mbGV4U2V0dGluZ3MgfSxcblx0XHRiaW5kaW5nOiBnZW5lcmF0ZUJpbmRpbmcoY3VzdG9tSGVhZGVyRmFjZXREZWZpbml0aW9uLnJlcXVlc3RHcm91cElkKSxcblx0XHR0ZW1wbGF0ZUVkaXQ6IGN1c3RvbUhlYWRlckZhY2V0RGVmaW5pdGlvbi50ZW1wbGF0ZUVkaXRcblx0fTtcbn1cbiJdfQ==
@@ -1,12 +1,3 @@
1
- import { ManifestHeaderFacet } from "sap/fe/core/converters/ManifestSettings";
2
- import {
3
- ConfigurableObject,
4
- ConfigurableRecord,
5
- CustomElement,
6
- insertCustomElements,
7
- Placement,
8
- Position
9
- } from "sap/fe/core/converters/helpers/ConfigurableObject";
10
1
  import {
11
2
  DataFieldAbstractTypes,
12
3
  DataPoint,
@@ -15,13 +6,22 @@ import {
15
6
  ReferenceFacetTypes,
16
7
  UIAnnotationTypes
17
8
  } from "@sap-ux/vocabularies-types";
9
+ import { getSemanticObjectPath } from "sap/fe/core/converters/annotations/DataField";
10
+ import {
11
+ ConfigurableObject,
12
+ ConfigurableRecord,
13
+ CustomElement,
14
+ insertCustomElements,
15
+ Placement,
16
+ Position
17
+ } from "sap/fe/core/converters/helpers/ConfigurableObject";
18
18
  import { CustomHeaderFacetID, HeaderFacetContainerID, HeaderFacetFormID, HeaderFacetID } from "sap/fe/core/converters/helpers/ID";
19
- import { annotationExpression, BindingExpression, compileBinding, equal, not } from "sap/fe/core/helpers/BindingExpression";
20
19
  import { KeyHelper } from "sap/fe/core/converters/helpers/Key";
21
- import { AnnotationFormElement, FormElement, FormElementType, getFormElementsFromManifest } from "../Common/Form";
22
- import { getSemanticObjectPath } from "sap/fe/core/converters/annotations/DataField";
20
+ import { ManifestHeaderFacet } from "sap/fe/core/converters/ManifestSettings";
21
+ import { annotationExpression, BindingExpression, compileBinding, equal, not } from "sap/fe/core/helpers/BindingExpression";
23
22
  import { generate } from "../../../helpers/StableIdHelper";
24
23
  import ConverterContext from "../../ConverterContext";
24
+ import { AnnotationFormElement, FormElement, FormElementType, getFormElementsFromManifest } from "../Common/Form";
25
25
 
26
26
  // region definitions
27
27
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -91,8 +91,8 @@ type BaseReferenceFacet = BaseHeaderFacet & {
91
91
  facetType: FacetType.Reference;
92
92
  };
93
93
 
94
- type FieldGroupFacet = BaseReferenceFacet & {
95
- headerFormData?: HeaderFormData;
94
+ export type FieldGroupFacet = BaseReferenceFacet & {
95
+ headerFormData: HeaderFormData;
96
96
  };
97
97
 
98
98
  type DataPointFacet = BaseReferenceFacet & {
@@ -132,7 +132,7 @@ export type CustomObjectPageHeaderFacet = CustomElement<ObjectPageHeaderFacet> &
132
132
  */
133
133
  export function getHeaderFacetsFromAnnotations(converterContext: ConverterContext): ObjectPageHeaderFacet[] {
134
134
  const headerFacets: ObjectPageHeaderFacet[] = [];
135
- converterContext.getEntityType().annotations?.UI?.HeaderFacets?.forEach(facet => {
135
+ converterContext.getEntityType().annotations?.UI?.HeaderFacets?.forEach((facet) => {
136
136
  const headerFacet: ObjectPageHeaderFacet | undefined = createHeaderFacet(facet, converterContext);
137
137
  if (headerFacet) {
138
138
  headerFacets.push(headerFacet);
@@ -154,7 +154,7 @@ export function getHeaderFacetsFromManifest(
154
154
  ): Record<string, CustomObjectPageHeaderFacet> {
155
155
  const customHeaderFacets: Record<string, CustomObjectPageHeaderFacet> = {};
156
156
 
157
- Object.keys(manifestCustomHeaderFacets).forEach(manifestHeaderFacetKey => {
157
+ Object.keys(manifestCustomHeaderFacets).forEach((manifestHeaderFacetKey) => {
158
158
  const customHeaderFacet: ManifestHeaderFacet = manifestCustomHeaderFacets[manifestHeaderFacetKey];
159
159
  customHeaderFacets[manifestHeaderFacetKey] = createCustomHeaderFacet(customHeaderFacet, manifestHeaderFacetKey);
160
160
  });
@@ -291,7 +291,7 @@ function createCollectionHeaderFacet(
291
291
  return facetDefinition.ID?.toString() || facetDefinition.Label?.toString() || fallback;
292
292
  };
293
293
 
294
- collectionFacetDefinition.Facets.forEach(facetDefinition => {
294
+ collectionFacetDefinition.Facets.forEach((facetDefinition) => {
295
295
  const facet: ReferenceFacet | undefined = createReferenceHeaderFacet(
296
296
  facetDefinition,
297
297
  collectionFacetDefinition,
@@ -380,7 +380,9 @@ function getFormElementsFromAnnotations(facetDefinition: FacetTypes, converterCo
380
380
  if (
381
381
  dataField.$Type === UIAnnotationTypes.DataField ||
382
382
  dataField.$Type === UIAnnotationTypes.DataFieldWithUrl ||
383
- dataField.$Type === UIAnnotationTypes.DataFieldWithNavigationPath
383
+ dataField.$Type === UIAnnotationTypes.DataFieldWithNavigationPath ||
384
+ dataField.$Type === UIAnnotationTypes.DataFieldWithIntentBasedNavigation ||
385
+ dataField.$Type === UIAnnotationTypes.DataFieldWithAction
384
386
  ) {
385
387
  const { annotations } = dataField;
386
388
  annotationBasedFormElements.push({