@sap/open.fe 1.94.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1783) hide show
  1. package/LICENSE.txt +23 -0
  2. package/README.md +10 -0
  3. package/package.json +21 -0
  4. package/packages/sap.fe.common/src/sap/fe/common/.library +36 -0
  5. package/packages/sap.fe.common/src/sap/fe/common/.theming +6 -0
  6. package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +1378 -0
  7. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +6 -0
  8. package/packages/sap.fe.common/src/sap/fe/common/MessageFilter-dbg.js +36 -0
  9. package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.js +6 -0
  10. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover-dbg.js +56 -0
  11. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.js +6 -0
  12. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +41 -0
  13. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +18 -0
  14. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js.map +9 -0
  15. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +68 -0
  16. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +9 -0
  17. package/packages/sap.fe.common/src/sap/fe/common/library.js +6 -0
  18. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +40 -0
  19. package/packages/sap.fe.common/src/sap/fe/common/resources.json +186 -0
  20. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -0
  21. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -0
  22. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.jsmeta.json +1 -0
  23. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.jstemplates.json +1 -0
  24. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -0
  25. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmltemplates.json +1 -0
  26. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.91.json +23 -0
  27. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.94.json +23 -0
  28. package/packages/sap.fe.core/src/sap/fe/core/.library +60 -0
  29. package/packages/sap.fe.core/src/sap/fe/core/.supportrc +4 -0
  30. package/packages/sap.fe.core/src/sap/fe/core/.theming +6 -0
  31. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +409 -0
  32. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +6 -0
  33. package/packages/sap.fe.core/src/sap/fe/core/AppComponent-dbg.js +433 -0
  34. package/packages/sap.fe.core/src/sap/fe/core/AppComponent.js +6 -0
  35. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +184 -0
  36. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +6 -0
  37. package/packages/sap.fe.core/src/sap/fe/core/BaseController-dbg.js +65 -0
  38. package/packages/sap.fe.core/src/sap/fe/core/BaseController.js +6 -0
  39. package/packages/sap.fe.core/src/sap/fe/core/BusyLocker-dbg.js +112 -0
  40. package/packages/sap.fe.core/src/sap/fe/core/BusyLocker.js +6 -0
  41. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +2246 -0
  42. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +6 -0
  43. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI-dbg.js +269 -0
  44. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.js +6 -0
  45. package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +120 -0
  46. package/packages/sap.fe.core/src/sap/fe/core/PageController.js +6 -0
  47. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +822 -0
  48. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +6 -0
  49. package/packages/sap.fe.core/src/sap/fe/core/Synchronization-dbg.js +38 -0
  50. package/packages/sap.fe.core/src/sap/fe/core/Synchronization.js +6 -0
  51. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +152 -0
  52. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +6 -0
  53. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel-dbg.js +57 -0
  54. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.js +6 -0
  55. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +1584 -0
  56. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +6 -0
  57. package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +584 -0
  58. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +6 -0
  59. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +439 -0
  60. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +6 -0
  61. package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft-dbg.js +23 -0
  62. package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft.js +6 -0
  63. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +1174 -0
  64. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +6 -0
  65. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky-dbg.js +121 -0
  66. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.js +6 -0
  67. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata-dbg.js +75 -0
  68. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +6 -0
  69. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1667 -0
  70. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +6 -0
  71. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +57 -0
  72. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +6 -0
  73. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +501 -0
  74. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +6 -0
  75. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +707 -0
  76. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +6 -0
  77. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +989 -0
  78. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +6 -0
  79. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +417 -0
  80. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +5 -0
  81. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +399 -0
  82. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +116 -0
  83. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +6 -0
  84. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +403 -0
  85. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +5 -0
  86. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.ts +350 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator-dbg.js +135 -0
  88. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.js +6 -0
  89. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +287 -0
  90. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.js +6 -0
  91. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +109 -0
  92. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +6 -0
  93. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +9 -0
  94. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.js +6 -0
  95. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share-dbg.js +258 -0
  96. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.js +6 -0
  97. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +711 -0
  98. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +5 -0
  99. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +692 -0
  100. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +615 -0
  101. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +6 -0
  102. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +76 -0
  103. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionPartial.fragment.xml +91 -0
  104. package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution-dbg.js +71 -0
  105. package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.js +6 -0
  106. package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +82 -0
  107. package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.js +6 -0
  108. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +127 -0
  109. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +6 -0
  110. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +12 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +122 -0
  112. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +6 -0
  113. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +150 -0
  114. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +6 -0
  115. package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar-dbg.js +162 -0
  116. package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.js +6 -0
  117. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper-dbg.js +47 -0
  118. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.js +6 -0
  119. package/packages/sap.fe.core/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +61 -0
  120. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +122 -0
  121. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.js +6 -0
  122. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +209 -0
  123. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.js +6 -0
  124. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +148 -0
  125. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +6 -0
  126. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +319 -0
  127. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +6 -0
  128. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +500 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +5 -0
  130. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +460 -0
  131. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +90 -0
  132. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +5 -0
  133. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +431 -0
  134. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +404 -0
  135. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +5 -0
  136. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +322 -0
  137. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +1294 -0
  138. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +5 -0
  139. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +1172 -0
  140. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter-dbg.js +100 -0
  141. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.js +5 -0
  142. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.ts +126 -0
  143. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +335 -0
  144. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +5 -0
  145. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +306 -0
  146. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1692 -0
  147. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +5 -0
  148. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +349 -0
  149. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +5 -0
  150. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +353 -0
  151. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +206 -0
  152. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.js +5 -0
  153. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.ts +202 -0
  154. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Criticality-dbg.js +50 -0
  155. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Criticality.js +5 -0
  156. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Criticality.ts +33 -0
  157. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +276 -0
  158. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.js +5 -0
  159. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +296 -0
  160. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +222 -0
  161. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +5 -0
  162. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +241 -0
  163. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +181 -0
  164. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.js +5 -0
  165. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.ts +220 -0
  166. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +2100 -0
  167. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +5 -0
  168. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +2446 -0
  169. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +499 -0
  170. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +5 -0
  171. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +545 -0
  172. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +335 -0
  173. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +5 -0
  174. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +316 -0
  175. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +495 -0
  176. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +5 -0
  177. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +502 -0
  178. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +674 -0
  179. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +5 -0
  180. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +711 -0
  181. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +204 -0
  182. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +5 -0
  183. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.ts +176 -0
  184. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +96 -0
  185. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.js +5 -0
  186. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.ts +76 -0
  187. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +217 -0
  188. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject.js +5 -0
  189. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +211 -0
  190. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID-dbg.js +90 -0
  191. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.js +5 -0
  192. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.ts +45 -0
  193. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +61 -0
  194. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.js +5 -0
  195. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.ts +41 -0
  196. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key-dbg.js +86 -0
  197. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.js +5 -0
  198. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.ts +49 -0
  199. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/SelectionVariantHelper-dbg.js +93 -0
  200. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +5 -0
  201. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +92 -0
  202. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/FormMenuActions-dbg.js +164 -0
  203. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/FormMenuActions.js +5 -0
  204. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +160 -0
  205. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +427 -0
  206. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +5 -0
  207. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +414 -0
  208. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +552 -0
  209. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +5 -0
  210. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +601 -0
  211. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +320 -0
  212. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.js +5 -0
  213. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +314 -0
  214. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +93 -0
  215. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +6 -0
  216. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +8 -0
  217. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +9 -0
  218. package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter-dbg.js +77 -0
  219. package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter.js +5 -0
  220. package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter.ts +58 -0
  221. package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter-dbg.js +51 -0
  222. package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter.js +5 -0
  223. package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter.ts +41 -0
  224. package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter-dbg.js +103 -0
  225. package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter.js +5 -0
  226. package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter.ts +88 -0
  227. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +100 -0
  228. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +5 -0
  229. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +80 -0
  230. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatterTypes-dbg.js +23 -0
  231. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatterTypes.js +5 -0
  232. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatterTypes.ts +7 -0
  233. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter-dbg.js +162 -0
  234. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.js +5 -0
  235. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.ts +130 -0
  236. package/packages/sap.fe.core/src/sap/fe/core/fpm/Component-dbg.js +58 -0
  237. package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.js +6 -0
  238. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +64 -0
  239. package/packages/sap.fe.core/src/sap/fe/core/fpm/resources.json +18 -0
  240. package/packages/sap.fe.core/src/sap/fe/core/helpers/AnnotationEnum-dbg.js +49 -0
  241. package/packages/sap.fe.core/src/sap/fe/core/helpers/AnnotationEnum.js +5 -0
  242. package/packages/sap.fe.core/src/sap/fe/core/helpers/AnnotationEnum.ts +18 -0
  243. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +1667 -0
  244. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +5 -0
  245. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +1765 -0
  246. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport-dbg.js +314 -0
  247. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.js +5 -0
  248. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.ts +232 -0
  249. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +62 -0
  250. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +6 -0
  251. package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState-dbg.js +92 -0
  252. package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState.js +6 -0
  253. package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +53 -0
  254. package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper.js +6 -0
  255. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper-dbg.js +64 -0
  256. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.js +6 -0
  257. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +150 -0
  258. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +6 -0
  259. package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper-dbg.js +130 -0
  260. package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper.js +6 -0
  261. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +327 -0
  262. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.js +6 -0
  263. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +78 -0
  264. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper.js +6 -0
  265. package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper-dbg.js +267 -0
  266. package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.js +9 -0
  267. package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.ts +228 -0
  268. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx-dbg.js +75 -0
  269. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx.js +5 -0
  270. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx.ts +83 -0
  271. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsxs-dbg.js +10 -0
  272. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsxs.js +5 -0
  273. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsxs.ts +3 -0
  274. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +429 -0
  275. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +123 -0
  276. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +9 -0
  277. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +1201 -0
  278. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +9 -0
  279. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +148 -0
  280. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +9 -0
  281. package/packages/sap.fe.core/src/sap/fe/core/library.js +6 -0
  282. package/packages/sap.fe.core/src/sap/fe/core/library.support.js +32 -0
  283. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +121 -0
  284. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +417 -0
  285. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +273 -0
  286. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +273 -0
  287. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +273 -0
  288. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +273 -0
  289. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +273 -0
  290. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +273 -0
  291. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +273 -0
  292. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +273 -0
  293. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +273 -0
  294. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +273 -0
  295. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +273 -0
  296. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +275 -0
  297. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +273 -0
  298. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +273 -0
  299. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +273 -0
  300. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +273 -0
  301. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +273 -0
  302. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +273 -0
  303. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +273 -0
  304. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +273 -0
  305. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +273 -0
  306. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +273 -0
  307. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +273 -0
  308. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +273 -0
  309. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +273 -0
  310. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +273 -0
  311. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +273 -0
  312. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +273 -0
  313. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +273 -0
  314. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +273 -0
  315. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +273 -0
  316. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +273 -0
  317. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +273 -0
  318. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +273 -0
  319. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +273 -0
  320. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +273 -0
  321. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +273 -0
  322. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +273 -0
  323. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +273 -0
  324. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +273 -0
  325. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +273 -0
  326. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +273 -0
  327. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +273 -0
  328. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +273 -0
  329. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +273 -0
  330. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +273 -0
  331. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +273 -0
  332. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +273 -0
  333. package/packages/sap.fe.core/src/sap/fe/core/resources.json +4087 -0
  334. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +106 -0
  335. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.js +5 -0
  336. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +58 -0
  337. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +205 -0
  338. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.js +6 -0
  339. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +128 -0
  340. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.js +5 -0
  341. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +71 -0
  342. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +303 -0
  343. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.js +6 -0
  344. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +84 -0
  345. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.js +6 -0
  346. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +1099 -0
  347. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +6 -0
  348. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +819 -0
  349. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.js +5 -0
  350. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +720 -0
  351. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +731 -0
  352. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +5 -0
  353. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +668 -0
  354. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +471 -0
  355. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +6 -0
  356. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +12 -0
  357. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +6 -0
  358. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +8 -0
  359. package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.js +38 -0
  360. package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.ts +20 -0
  361. package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetMissingID.support.js +38 -0
  362. package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetMissingID.support.ts +18 -0
  363. package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +38 -0
  364. package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +18 -0
  365. package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper-dbg.js +71 -0
  366. package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper.js +5 -0
  367. package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper.ts +67 -0
  368. package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics-dbg.js +73 -0
  369. package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics.js +5 -0
  370. package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics.ts +66 -0
  371. package/packages/sap.fe.core/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +156 -0
  372. package/packages/sap.fe.core/src/sap/fe/core/templating/CriticalityFormatters.js +5 -0
  373. package/packages/sap.fe.core/src/sap/fe/core/templating/CriticalityFormatters.ts +226 -0
  374. package/packages/sap.fe.core/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +77 -0
  375. package/packages/sap.fe.core/src/sap/fe/core/templating/DataFieldFormatters.js +5 -0
  376. package/packages/sap.fe.core/src/sap/fe/core/templating/DataFieldFormatters.ts +54 -0
  377. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +444 -0
  378. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.js +5 -0
  379. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.ts +428 -0
  380. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper-dbg.js +33 -0
  381. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.js +5 -0
  382. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.ts +13 -0
  383. package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper-dbg.js +89 -0
  384. package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.js +5 -0
  385. package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.ts +53 -0
  386. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +331 -0
  387. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +5 -0
  388. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +310 -0
  389. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterTemplating-dbg.js +66 -0
  390. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterTemplating.js +5 -0
  391. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterTemplating.ts +39 -0
  392. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyFormatters-dbg.js +126 -0
  393. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyFormatters.js +5 -0
  394. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyFormatters.ts +86 -0
  395. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper-dbg.js +303 -0
  396. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.js +5 -0
  397. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.ts +209 -0
  398. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +525 -0
  399. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +5 -0
  400. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +489 -0
  401. package/packages/sap.fe.core/src/sap/fe/core/type/Email-dbg.js +20 -0
  402. package/packages/sap.fe.core/src/sap/fe/core/type/Email.js +5 -0
  403. package/packages/sap.fe.core/src/sap/fe/core/type/Email.ts +18 -0
  404. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -0
  405. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -0
  406. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -0
  407. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -0
  408. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -0
  409. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmltemplates.json +1 -0
  410. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/Component.js +56 -0
  411. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/App.controller.js +252 -0
  412. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/BaseController.js +46 -0
  413. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/ControllerExtensions.controller.js +380 -0
  414. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/CustomElements.controller.js +380 -0
  415. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/MacrosPage.controller.js +382 -0
  416. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/Overview.controller.js +99 -0
  417. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/Topic.controller.js +71 -0
  418. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controls/FileEditor.js +401 -0
  419. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/FileEditor.css +8 -0
  420. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/codesample.css +172 -0
  421. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/markdown-styles.css +3 -0
  422. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/style.css +48 -0
  423. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/topic.css +176 -0
  424. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/index.html +62 -0
  425. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/manifest.json +132 -0
  426. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/ControllerExtensionNavigationModel.js +174 -0
  427. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/CustomElementNavigationModel.js +327 -0
  428. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/ExploreSettingsModel.js +12 -0
  429. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +709 -0
  430. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/OverviewNavigationModel.js +15 -0
  431. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/scripts/boot.js +68 -0
  432. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/service-worker.js +100 -0
  433. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/.gitignore.tmpl +0 -0
  434. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/.npmrc.tmpl +0 -0
  435. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/README.md +43 -0
  436. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/package.json +31 -0
  437. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/ui5-local.yaml +25 -0
  438. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/ui5.yaml +25 -0
  439. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/Component.js +9 -0
  440. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/i18n/i18n.properties +9 -0
  441. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/index.html +28 -0
  442. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/manifest.json +165 -0
  443. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/Component.js +31 -0
  444. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/localService/Incidents.json +56 -0
  445. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/localService/service.cds +32 -0
  446. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/manifest.json +109 -0
  447. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/myViewTest.controller.js +6 -0
  448. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/myViewTest.view.xml +30 -0
  449. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FclNavigationButtons.html +37 -0
  450. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.html +24 -0
  451. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +23 -0
  452. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.controller.js +5 -0
  453. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +21 -0
  454. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/Component.js +36 -0
  455. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/ChildEntity.json +686 -0
  456. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/CreditLimitDetails.json +154 -0
  457. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/RootEntity.json +252 -0
  458. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/service.cds +122 -0
  459. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/manifest.json +69 -0
  460. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/ChartQualifier.controller.js +5 -0
  461. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/ChartQualifier.view.xml +20 -0
  462. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/Component.js +36 -0
  463. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/ChildEntity.json +686 -0
  464. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/CreditLimitDetails.json +154 -0
  465. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/RootEntity.json +252 -0
  466. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/service.cds +122 -0
  467. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/manifest.json +69 -0
  468. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/ChartSelectionMode.controller.js +5 -0
  469. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/ChartSelectionMode.view.xml +36 -0
  470. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/Component.js +36 -0
  471. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/ChildEntity.json +686 -0
  472. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/CreditLimitDetails.json +154 -0
  473. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/RootEntity.json +277 -0
  474. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/service.cds +122 -0
  475. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/manifest.json +69 -0
  476. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartDefault.html +37 -0
  477. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartQualifier.html +37 -0
  478. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartSelectionMode.html +37 -0
  479. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/Component.js +34 -0
  480. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/FieldDisplay.view.xml +64 -0
  481. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/ChildEntity.json +14 -0
  482. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/FieldDisplay.cds +94 -0
  483. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/RootEntity.json +23 -0
  484. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/ValueHelpEntity.js +11 -0
  485. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/manifest.json +68 -0
  486. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/Component.js +33 -0
  487. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/FieldEdit.controller.js +10 -0
  488. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/FieldEdit.view.xml +101 -0
  489. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/ChildEntity.json +14 -0
  490. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/FieldControlValueHelpEntity.json +14 -0
  491. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/FieldEdit.cds +77 -0
  492. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/RootEntity.json +14 -0
  493. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/localAnnotations.xml +38 -0
  494. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/manifest.json +75 -0
  495. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/Component.js +33 -0
  496. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/FieldEvents.controller.js +23 -0
  497. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/FieldEvents.view.xml +20 -0
  498. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/localService/Entities.json +6 -0
  499. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/localService/service.cds +6 -0
  500. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/manifest.json +68 -0
  501. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/Component.js +33 -0
  502. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.controller.js +10 -0
  503. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.view.xml +132 -0
  504. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Currencies.json +29 -0
  505. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Currencies_texts.json +38 -0
  506. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/FieldFormatOptions.cds +58 -0
  507. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Languages.json +17 -0
  508. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Languages_texts.json +38 -0
  509. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/RootEntity.json +13 -0
  510. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/UnitOfMeasure.json +12 -0
  511. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/manifest.json +68 -0
  512. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/Component.js +33 -0
  513. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/FieldNavProp.controller.js +10 -0
  514. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/FieldNavProp.view.xml +114 -0
  515. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/FieldNavProp.cds +161 -0
  516. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/NavProp1.json +25 -0
  517. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/NavProp2.json +7 -0
  518. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/RootEntity.json +14 -0
  519. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/ValueHelpEntity.json +14 -0
  520. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/manifest.json +68 -0
  521. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldDisplay.html +37 -0
  522. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldEdit.html +37 -0
  523. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldEvents.html +37 -0
  524. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldFormatOptions.html +37 -0
  525. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldNavProp.html +37 -0
  526. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/Component.js +36 -0
  527. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.controller.js +35 -0
  528. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.view.xml +58 -0
  529. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/ChildEntity.json +686 -0
  530. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/CreditLimitDetails.json +154 -0
  531. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/RootEntity.json +102 -0
  532. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/ValueHelpEntity.js +11 -0
  533. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/service.cds +96 -0
  534. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/manifest.json +68 -0
  535. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarDefault.html +37 -0
  536. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/Component.js +33 -0
  537. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/FormElementCustomField.view.xml +49 -0
  538. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/localService/FormElementCustomField.cds +19 -0
  539. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/localService/RootEntity.json +13 -0
  540. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/manifest.json +68 -0
  541. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/Component.js +33 -0
  542. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/FormElementLabel.view.xml +32 -0
  543. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/localService/FormElementLabel.cds +19 -0
  544. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/localService/RootEntity.json +13 -0
  545. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/manifest.json +68 -0
  546. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElementCustomField.html +37 -0
  547. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElementLabel.html +37 -0
  548. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/i18n/i18n.properties +19 -0
  549. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartDefault.html +37 -0
  550. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartDynamicSize.html +37 -0
  551. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartHideOnNoData.html +37 -0
  552. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartShowOnlyChart.html +37 -0
  553. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/Component.js +36 -0
  554. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/MicroChartDefault.controller.js +5 -0
  555. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/MicroChartDefault.view.xml +83 -0
  556. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/ChildEntity.json +686 -0
  557. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/CreditLimitDetails.json +154 -0
  558. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/RootEntity.json +34 -0
  559. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/service.cds +308 -0
  560. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/manifest.json +69 -0
  561. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/Component.js +36 -0
  562. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/MicroChartDynamicSize.controller.js +5 -0
  563. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/MicroChartDynamicSize.view.xml +93 -0
  564. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/ChildEntity.json +686 -0
  565. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/CreditLimitDetails.json +154 -0
  566. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/RootEntity.json +34 -0
  567. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/service.cds +308 -0
  568. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/manifest.json +69 -0
  569. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/Component.js +36 -0
  570. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/MicroChartHideOnNoData.controller.js +5 -0
  571. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/MicroChartHideOnNoData.view.xml +91 -0
  572. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/ChildEntity.json +686 -0
  573. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/CreditLimitDetails.json +154 -0
  574. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/RootEntity.json +34 -0
  575. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/service.cds +308 -0
  576. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/manifest.json +69 -0
  577. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/Component.js +36 -0
  578. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/MicroChartShowOnlyChart.controller.js +5 -0
  579. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/MicroChartShowOnlyChart.view.xml +93 -0
  580. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/ChildEntity.json +686 -0
  581. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/CreditLimitDetails.json +154 -0
  582. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/RootEntity.json +34 -0
  583. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/service.cds +308 -0
  584. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/manifest.json +69 -0
  585. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/Component.js +36 -0
  586. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/PaginatorDefault.controller.js +27 -0
  587. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/PaginatorDefault.view.xml +45 -0
  588. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/localService/RootEntity.json +102 -0
  589. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/localService/ValueHelpEntity.js +11 -0
  590. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/localService/service.cds +90 -0
  591. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/manifest.json +79 -0
  592. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginatorDefault.html +37 -0
  593. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/Component.js +34 -0
  594. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/Share.controller.js +5 -0
  595. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/Share.view.xml +23 -0
  596. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/localService/RootEntity.json +5 -0
  597. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/localService/Share.cds +11 -0
  598. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/manifest.json +68 -0
  599. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/shareDefault.html +37 -0
  600. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Component.js +40 -0
  601. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +32 -0
  602. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +32 -0
  603. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.json +82 -0
  604. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/service.cds +82 -0
  605. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/manifest.json +78 -0
  606. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/Component.js +36 -0
  607. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/TableDefault.controller.js +5 -0
  608. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/TableDefault.view.xml +10 -0
  609. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/localService/RootEntity.json +102 -0
  610. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/localService/ValueHelpEntity.js +11 -0
  611. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/localService/service.cds +90 -0
  612. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/manifest.json +79 -0
  613. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/Component.js +35 -0
  614. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.controller.js +19 -0
  615. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.view.xml +31 -0
  616. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/RootEntity.json +78 -0
  617. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/ValueHelpCurrencyEntity.json +5 -0
  618. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/ValueHelpEntity.js +11 -0
  619. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/service.cds +119 -0
  620. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/manifest.json +82 -0
  621. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableCustoms.html +37 -0
  622. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableDefault.html +37 -0
  623. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableEdit.html +37 -0
  624. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/Component.js +35 -0
  625. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/OPExtend.controller.js +41 -0
  626. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/RootEntity.json +12 -0
  627. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/service.cds +52 -0
  628. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/manifest.json +76 -0
  629. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility.html +37 -0
  630. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/controllerExtensionsOverview.html +24 -0
  631. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/controllerExtensionsOverview.md +18 -0
  632. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/Component.js +35 -0
  633. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/IntentBasedNavigation.controller.js +21 -0
  634. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/IntentBasedNavigation.view.xml +23 -0
  635. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/localService/RootEntity.json +12 -0
  636. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/localService/service.cds +40 -0
  637. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/manifest.json +76 -0
  638. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation.html +70 -0
  639. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/Component.js +35 -0
  640. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/extendLR.controller.js +63 -0
  641. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/extendOP.controller.js +13 -0
  642. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/localService/RootEntity.json +18 -0
  643. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/localService/service.cds +64 -0
  644. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/manifest.json +103 -0
  645. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility.html +70 -0
  646. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/Component.js +35 -0
  647. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/Share.controller.js +11 -0
  648. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/Share.view.xml +21 -0
  649. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/ShareExtend.js +15 -0
  650. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/localService/RootEntity.json +5 -0
  651. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/localService/service.cds +11 -0
  652. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/manifest.json +68 -0
  653. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/shareExtensibility.html +37 -0
  654. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/Component.js +35 -0
  655. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/CustomSection.fragment.xml +15 -0
  656. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/OPExtend.controller.js +57 -0
  657. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/localService/RootEntity.json +12 -0
  658. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/localService/service.cds +40 -0
  659. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/manifest.json +86 -0
  660. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState.html +70 -0
  661. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/Component.js +35 -0
  662. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/CustomAction.js +41 -0
  663. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/extendOP.controller.js +9 -0
  664. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/localService/ChildEntity.json +22 -0
  665. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/localService/RootEntity.json +10 -0
  666. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/localService/service.cds +73 -0
  667. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/manifest.json +133 -0
  668. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customActionContent.html +36 -0
  669. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/Component.js +35 -0
  670. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumn.js +25 -0
  671. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +11 -0
  672. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +5 -0
  673. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/ChildEntity.json +26 -0
  674. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/RootEntity.json +9 -0
  675. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +55 -0
  676. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +98 -0
  677. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumnContent.html +36 -0
  678. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customElementsOverview.html +24 -0
  679. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customElementsOverview.md +21 -0
  680. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/Component.js +35 -0
  681. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/CustomFilter.js +28 -0
  682. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/CustomRatingFilter.fragment.xml +8 -0
  683. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/CustomRatingFilterOperator.fragment.xml +17 -0
  684. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/localService/RootEntity.json +37 -0
  685. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/localService/service.cds +75 -0
  686. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/manifest.json +87 -0
  687. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilterContent.html +36 -0
  688. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/Component.js +35 -0
  689. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetColumnChart.fragment.xml +19 -0
  690. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetDataPoint.fragment.xml +11 -0
  691. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetMicroChartAndFormElement.fragment.xml +42 -0
  692. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/RootEntity.json +12 -0
  693. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/service.cds +54 -0
  694. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/manifest.json +127 -0
  695. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacetContent.html +36 -0
  696. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/Component.js +35 -0
  697. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomDetailPage.controller.js +12 -0
  698. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomDetailPage.view.xml +64 -0
  699. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomPage.controller.js +10 -0
  700. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomPage.view.xml +39 -0
  701. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/ChildEntity.json +23 -0
  702. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/RootEntity.json +41 -0
  703. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/ValueHelpCurrencyEntity.json +5 -0
  704. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/ValueHelpEntity.js +11 -0
  705. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/resources/275081.jpg +0 -0
  706. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/resources/275472.jpg +0 -0
  707. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/service.cds +144 -0
  708. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/manifest.json +119 -0
  709. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPageContent.html +70 -0
  710. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/Component.js +36 -0
  711. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSection.fragment.xml +13 -0
  712. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionFormElementAndTable.fragment.xml +36 -0
  713. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionNavigation.fragment.xml +44 -0
  714. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionNavigation.js +11 -0
  715. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/extendOP.controller.js +13 -0
  716. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/ChildEntity.json +82 -0
  717. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/RootEntity.json +9 -0
  718. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/ValueHelpCurrencyEntity.json +5 -0
  719. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/ValueHelpEntity.js +11 -0
  720. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/service.cds +177 -0
  721. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/manifest.json +129 -0
  722. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSectionContent.html +36 -0
  723. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/Component.js +35 -0
  724. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/CustomButton.js +12 -0
  725. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/CustomViewWithButton.fragment.xml +12 -0
  726. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/CustomViewWithTable.fragment.xml +46 -0
  727. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/LRExtend.controller.js +31 -0
  728. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/localService/RootEntity.json +37 -0
  729. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/localService/service.cds +70 -0
  730. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/manifest.json +100 -0
  731. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLRContent.html +36 -0
  732. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/i18n/i18n.properties +61 -0
  733. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/overview/introduction.html +24 -0
  734. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/overview/introduction.md +6 -0
  735. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/util/FileUtils.js +124 -0
  736. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/App.view.xml +60 -0
  737. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/ControllerExtensions.view.xml +97 -0
  738. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/CustomElements.view.xml +97 -0
  739. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/MacrosPage.view.xml +97 -0
  740. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/Overview.view.xml +13 -0
  741. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.js +140 -0
  742. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.ts +142 -0
  743. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.js +504 -0
  744. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.ts +751 -0
  745. package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.js +74 -0
  746. package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.ts +75 -0
  747. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/BindingExpression-AnnotationExpression.spec.ts.snap +7 -0
  748. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +17450 -0
  749. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +582 -0
  750. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.ts +515 -0
  751. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +636 -0
  752. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +547 -0
  753. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +60 -0
  754. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +57 -0
  755. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.js +436 -0
  756. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.ts +469 -0
  757. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPITag.spec.js +346 -0
  758. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPITag.spec.ts +357 -0
  759. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +255 -0
  760. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +254 -0
  761. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +67 -0
  762. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +43 -0
  763. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.js +577 -0
  764. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.ts +593 -0
  765. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +1206 -0
  766. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +1361 -0
  767. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Table.spec.ts.snap +21 -0
  768. package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService.cds +16 -0
  769. package/packages/sap.fe.core/test/sap/fe/core/jest/data/BindingExpression-AnnotationExpression.xml +248 -0
  770. package/packages/sap.fe.core/test/sap/fe/core/jest/data/ConverterContext.cds +34 -0
  771. package/packages/sap.fe.core/test/sap/fe/core/jest/data/HeaderFacets.cds +199 -0
  772. package/packages/sap.fe.core/test/sap/fe/core/jest/data/KPI.cds +320 -0
  773. package/packages/sap.fe.core/test/sap/fe/core/jest/data/KPINone.cds +78 -0
  774. package/packages/sap.fe.core/test/sap/fe/core/jest/data/ListReportConverter.cds +164 -0
  775. package/packages/sap.fe.core/test/sap/fe/core/jest/data/MetaModelConverter.cds +43 -0
  776. package/packages/sap.fe.core/test/sap/fe/core/jest/data/MetaModelConverterBoundAction.cds +31 -0
  777. package/packages/sap.fe.core/test/sap/fe/core/jest/data/ObjectPageConverter.cds +161 -0
  778. package/packages/sap.fe.core/test/sap/fe/core/jest/data/PropertyHelper.cds +14 -0
  779. package/packages/sap.fe.core/test/sap/fe/core/jest/data/SideEffects.cds +285 -0
  780. package/packages/sap.fe.core/test/sap/fe/core/jest/data/Table.cds +98 -0
  781. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableGetSelectionMode.cds +242 -0
  782. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionNoOperationAvailable.cds +22 -0
  783. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionOperationAvailableFalse.cds +25 -0
  784. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionOperationAvailableTrue.cds +24 -0
  785. package/packages/sap.fe.core/test/sap/fe/core/jest/data/salesOrderMetadata.xml +4824 -0
  786. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.js +54 -0
  787. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.ts +70 -0
  788. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +607 -0
  789. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +540 -0
  790. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.js +62 -0
  791. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.ts +45 -0
  792. package/packages/sap.fe.core/test/sap/fe/core/jest/type/Email.spec.js +34 -0
  793. package/packages/sap.fe.core/test/sap/fe/core/jest/type/Email.spec.ts +21 -0
  794. package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +1328 -0
  795. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.js +18 -0
  796. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +233 -0
  797. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/index.js +33 -0
  798. package/packages/sap.fe.core/test/sap/fe/core/qunit/common/testHelper.js +81 -0
  799. package/packages/sap.fe.core/test/sap/fe/core/qunit/common/utility.js +28 -0
  800. package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/ExcelFormatHelper.qunit.js +19 -0
  801. package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/SemanticDateOperators.qunit.js +253 -0
  802. package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/SemanticKeyHelper.qunit.js +211 -0
  803. package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/StableIdHelper.qunit.js +301 -0
  804. package/packages/sap.fe.core/test/sap/fe/core/qunit/services/CacheHandlerTest.qunit.js +924 -0
  805. package/packages/sap.fe.core/test/sap/fe/core/qunit/test/iteloMetadata.js +2752 -0
  806. package/packages/sap.fe.core/test/sap/fe/core/qunit/test/musicDraftMetadata.js +2301 -0
  807. package/packages/sap.fe.core/test/sap/fe/core/qunit/test/simpleMetadata.js +1186 -0
  808. package/packages/sap.fe.core/test/sap/fe/core/qunit/test/techServiceMetadata.js +3993 -0
  809. package/packages/sap.fe.core/test/sap/fe/core/qunit/testsuite.qunit.html +14 -0
  810. package/packages/sap.fe.core/test/sap/fe/core/qunit/testsuite.qunit.js +33 -0
  811. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.91.json +96 -0
  812. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.94.json +40 -0
  813. package/packages/sap.fe.macros/src/sap/fe/macros/.library +54 -0
  814. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +6 -0
  815. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.fragment.xml +171 -0
  816. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +200 -0
  817. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +6 -0
  818. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +530 -0
  819. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +6 -0
  820. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +1256 -0
  821. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +6 -0
  822. package/packages/sap.fe.macros/src/sap/fe/macros/Contact-dbg.designtime.js +93 -0
  823. package/packages/sap.fe.macros/src/sap/fe/macros/Contact.designtime.js +6 -0
  824. package/packages/sap.fe.macros/src/sap/fe/macros/Contact.fragment.xml +38 -0
  825. package/packages/sap.fe.macros/src/sap/fe/macros/Contact.metadata-dbg.js +91 -0
  826. package/packages/sap.fe.macros/src/sap/fe/macros/Contact.metadata.js +6 -0
  827. package/packages/sap.fe.macros/src/sap/fe/macros/ContactHelper-dbg.js +96 -0
  828. package/packages/sap.fe.macros/src/sap/fe/macros/ContactHelper.js +6 -0
  829. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil-dbg.js +286 -0
  830. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil.js +6 -0
  831. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.fragment.xml +37 -0
  832. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.metadata-dbg.js +91 -0
  833. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.metadata.js +6 -0
  834. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicatorRuntime-dbg.js +138 -0
  835. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicatorRuntime.js +6 -0
  836. package/packages/sap.fe.macros/src/sap/fe/macros/Field.fragment.xml +37 -0
  837. package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata-dbg.js +144 -0
  838. package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.js +5 -0
  839. package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.ts +136 -0
  840. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +234 -0
  841. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +5 -0
  842. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +177 -0
  843. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate-dbg.js +55 -0
  844. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate.js +6 -0
  845. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar-dbg.designtime.js +83 -0
  846. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.designtime.js +6 -0
  847. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +109 -0
  848. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +243 -0
  849. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +6 -0
  850. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +130 -0
  851. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.js +5 -0
  852. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +62 -0
  853. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +568 -0
  854. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +6 -0
  855. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper-dbg.js +48 -0
  856. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper.js +6 -0
  857. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField-dbg.designtime.js +339 -0
  858. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.designtime.js +6 -0
  859. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.fragment.xml +57 -0
  860. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.metadata-dbg.js +130 -0
  861. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.metadata.js +6 -0
  862. package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.fragment.xml +24 -0
  863. package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.metadata-dbg.js +68 -0
  864. package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.metadata.js +6 -0
  865. package/packages/sap.fe.macros/src/sap/fe/macros/Form-dbg.designtime.js +188 -0
  866. package/packages/sap.fe.macros/src/sap/fe/macros/Form.designtime.js +6 -0
  867. package/packages/sap.fe.macros/src/sap/fe/macros/Form.fragment.xml +94 -0
  868. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +209 -0
  869. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +6 -0
  870. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer-dbg.designtime.js +42 -0
  871. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.designtime.js +6 -0
  872. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +196 -0
  873. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata-dbg.js +132 -0
  874. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata.js +6 -0
  875. package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.fragment.xml +25 -0
  876. package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.metadata-dbg.js +123 -0
  877. package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.metadata.js +5 -0
  878. package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.metadata.ts +113 -0
  879. package/packages/sap.fe.macros/src/sap/fe/macros/FormWrapper.fragment.xml +26 -0
  880. package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.fragment.xml +33 -0
  881. package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.metadata-dbg.js +103 -0
  882. package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.metadata.js +5 -0
  883. package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.metadata.ts +106 -0
  884. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +197 -0
  885. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +5 -0
  886. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.ts +120 -0
  887. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata-dbg.js +92 -0
  888. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata.js +6 -0
  889. package/packages/sap.fe.macros/src/sap/fe/macros/MacroRuntime-dbg.js +33 -0
  890. package/packages/sap.fe.macros/src/sap/fe/macros/MacroRuntime.js +5 -0
  891. package/packages/sap.fe.macros/src/sap/fe/macros/MacroRuntime.ts +12 -0
  892. package/packages/sap.fe.macros/src/sap/fe/macros/MacroTemplating-dbg.js +22 -0
  893. package/packages/sap.fe.macros/src/sap/fe/macros/MacroTemplating.js +5 -0
  894. package/packages/sap.fe.macros/src/sap/fe/macros/MacroTemplating.ts +9 -0
  895. package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart-dbg.designtime.js +361 -0
  896. package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.designtime.js +6 -0
  897. package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.fragment.xml +36 -0
  898. package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.metadata-dbg.js +149 -0
  899. package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.metadata.js +6 -0
  900. package/packages/sap.fe.macros/src/sap/fe/macros/ODataMetaModelUtil-dbg.js +600 -0
  901. package/packages/sap.fe.macros/src/sap/fe/macros/ODataMetaModelUtil.js +6 -0
  902. package/packages/sap.fe.macros/src/sap/fe/macros/Paginator.fragment.xml +32 -0
  903. package/packages/sap.fe.macros/src/sap/fe/macros/Paginator.metadata-dbg.js +61 -0
  904. package/packages/sap.fe.macros/src/sap/fe/macros/Paginator.metadata.js +6 -0
  905. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +615 -0
  906. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +6 -0
  907. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm-dbg.designtime.js +215 -0
  908. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.designtime.js +6 -0
  909. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.fragment.xml +66 -0
  910. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata-dbg.js +84 -0
  911. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata.js +6 -0
  912. package/packages/sap.fe.macros/src/sap/fe/macros/ResourceModel-dbg.js +56 -0
  913. package/packages/sap.fe.macros/src/sap/fe/macros/ResourceModel.js +6 -0
  914. package/packages/sap.fe.macros/src/sap/fe/macros/Share.fragment.xml +21 -0
  915. package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata-dbg.js +90 -0
  916. package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata.js +6 -0
  917. package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper-dbg.js +41 -0
  918. package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper.js +6 -0
  919. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +236 -0
  920. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +489 -0
  921. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +6 -0
  922. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +469 -0
  923. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +5 -0
  924. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +487 -0
  925. package/packages/sap.fe.macros/src/sap/fe/macros/TraceInfo-dbg.js +462 -0
  926. package/packages/sap.fe.macros/src/sap/fe/macros/TraceInfo.js +6 -0
  927. package/packages/sap.fe.macros/src/sap/fe/macros/ValueHelp.metadata-dbg.js +135 -0
  928. package/packages/sap.fe.macros/src/sap/fe/macros/ValueHelp.metadata.js +6 -0
  929. package/packages/sap.fe.macros/src/sap/fe/macros/VisualFilter.fragment.xml +87 -0
  930. package/packages/sap.fe.macros/src/sap/fe/macros/VisualFilter.metadata-dbg.js +217 -0
  931. package/packages/sap.fe.macros/src/sap/fe/macros/VisualFilter.metadata.js +6 -0
  932. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +468 -0
  933. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +6 -0
  934. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartRuntime-dbg.js +118 -0
  935. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartRuntime.js +6 -0
  936. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils-dbg.js +221 -0
  937. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils.js +6 -0
  938. package/packages/sap.fe.macros/src/sap/fe/macros/designtime/library-preload.designtime.js +17 -0
  939. package/packages/sap.fe.macros/src/sap/fe/macros/designtime/library-preload.designtime.js.map +9 -0
  940. package/packages/sap.fe.macros/src/sap/fe/macros/field/DraftPopOverAdminData.fragment.xml +53 -0
  941. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +1670 -0
  942. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +6 -0
  943. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +400 -0
  944. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +6 -0
  945. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +538 -0
  946. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +5 -0
  947. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +541 -0
  948. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +95 -0
  949. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +1136 -0
  950. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +6 -0
  951. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForContact.fragment.xml +26 -0
  952. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForDataField.fragment.xml +95 -0
  953. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForEntity.fragment.xml +76 -0
  954. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkWithFacets.fragment.xml +40 -0
  955. package/packages/sap.fe.macros/src/sap/fe/macros/filter/CustomFilter.fragment.xml +38 -0
  956. package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState-dbg.js +179 -0
  957. package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState.fragment.xml +36 -0
  958. package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState.js +6 -0
  959. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper-dbg.js +149 -0
  960. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -0
  961. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldTemplating-dbg.js +23 -0
  962. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldTemplating.js +5 -0
  963. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldTemplating.ts +11 -0
  964. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +363 -0
  965. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +6 -0
  966. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue-dbg.js +53 -0
  967. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.js +6 -0
  968. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range-dbg.js +38 -0
  969. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.js +6 -0
  970. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value-dbg.js +219 -0
  971. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.js +6 -0
  972. package/packages/sap.fe.macros/src/sap/fe/macros/flexibility/FormDelegate-dbg.js +152 -0
  973. package/packages/sap.fe.macros/src/sap/fe/macros/flexibility/FormDelegate.js +6 -0
  974. package/packages/sap.fe.macros/src/sap/fe/macros/flexibility/ValueHelpWrapper.fragment.xml +3 -0
  975. package/packages/sap.fe.macros/src/sap/fe/macros/form/AddressSection.fragment.xml +35 -0
  976. package/packages/sap.fe.macros/src/sap/fe/macros/form/DataFieldCollection.fragment.xml +44 -0
  977. package/packages/sap.fe.macros/src/sap/fe/macros/form/FormElement.fragment.xml +42 -0
  978. package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper-dbg.js +118 -0
  979. package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper.js +6 -0
  980. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFormElement.fragment.xml +10 -0
  981. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFragment.fragment.xml +13 -0
  982. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFragment.metadata-dbg.js +73 -0
  983. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFragment.metadata.js +6 -0
  984. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomHeaderFieldElement.fragment.xml +17 -0
  985. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomSection.fragment.xml +13 -0
  986. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomSection.metadata-dbg.js +82 -0
  987. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomSection.metadata.js +6 -0
  988. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/fpm-dbg.js +15 -0
  989. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/fpm.js +6 -0
  990. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.fragment.xml +33 -0
  991. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +167 -0
  992. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +5 -0
  993. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +179 -0
  994. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +123 -0
  995. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +162 -0
  996. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +6 -0
  997. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field-dbg.designtime.js +811 -0
  998. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.designtime.js +6 -0
  999. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +20 -0
  1000. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +534 -0
  1001. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +6 -0
  1002. package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate-dbg.js +76 -0
  1003. package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate.js +6 -0
  1004. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/ConnectedDataField.fragment.xml +39 -0
  1005. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldContent.fragment.xml +94 -0
  1006. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +55 -0
  1007. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/AmountWithCurrency.fragment.xml +41 -0
  1008. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Avatar.fragment.xml +57 -0
  1009. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Button.fragment.xml +56 -0
  1010. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Contact.fragment.xml +38 -0
  1011. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/DataPoint.fragment.xml +45 -0
  1012. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ExpandableText.fragment.xml +18 -0
  1013. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/File.fragment.xml +31 -0
  1014. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LabelSemanticKey.fragment.xml +65 -0
  1015. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Link.fragment.xml +30 -0
  1016. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +45 -0
  1017. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +56 -0
  1018. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +37 -0
  1019. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectStatus.fragment.xml +16 -0
  1020. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/SemanticKeyWithDraftIndicator.fragment.xml +35 -0
  1021. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Text.fragment.xml +33 -0
  1022. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/CheckBox.fragment.xml +28 -0
  1023. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +32 -0
  1024. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +33 -0
  1025. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +55 -0
  1026. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +33 -0
  1027. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +77 -0
  1028. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +73 -0
  1029. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/RatingIndicator.fragment.xml +23 -0
  1030. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TextArea.fragment.xml +34 -0
  1031. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +33 -0
  1032. package/packages/sap.fe.macros/src/sap/fe/macros/internal/form/FormTemplating-dbg.js +65 -0
  1033. package/packages/sap.fe.macros/src/sap/fe/macros/internal/form/FormTemplating.js +5 -0
  1034. package/packages/sap.fe.macros/src/sap/fe/macros/internal/form/FormTemplating.ts +40 -0
  1035. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +244 -0
  1036. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +5 -0
  1037. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +229 -0
  1038. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +215 -0
  1039. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +6 -0
  1040. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp-dbg.designtime.js +466 -0
  1041. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp.designtime.js +6 -0
  1042. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp.fragment.xml +23 -0
  1043. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpContent.fragment.xml +62 -0
  1044. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating-dbg.js +155 -0
  1045. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.js +5 -0
  1046. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.ts +133 -0
  1047. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +57 -0
  1048. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListFilterBar.fragment.xml +20 -0
  1049. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +1286 -0
  1050. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +6 -0
  1051. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +67 -0
  1052. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListTableColumnHeader.fragment.xml +25 -0
  1053. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +144 -0
  1054. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +190 -0
  1055. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +9 -0
  1056. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +696 -0
  1057. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +9 -0
  1058. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +6 -0
  1059. package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary-dbg.js +126 -0
  1060. package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary.js +6 -0
  1061. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +115 -0
  1062. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditDialog.fragment.xml +106 -0
  1063. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler-dbg.js +708 -0
  1064. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler.js +6 -0
  1065. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js +115 -0
  1066. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js +6 -0
  1067. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +215 -0
  1068. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +140 -0
  1069. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +140 -0
  1070. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +140 -0
  1071. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +140 -0
  1072. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +140 -0
  1073. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +140 -0
  1074. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +140 -0
  1075. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +140 -0
  1076. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +140 -0
  1077. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +140 -0
  1078. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +129 -0
  1079. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +129 -0
  1080. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +129 -0
  1081. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +140 -0
  1082. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +140 -0
  1083. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +140 -0
  1084. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +140 -0
  1085. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +140 -0
  1086. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +140 -0
  1087. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +140 -0
  1088. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +140 -0
  1089. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +140 -0
  1090. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +140 -0
  1091. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +140 -0
  1092. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +140 -0
  1093. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +140 -0
  1094. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +140 -0
  1095. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +140 -0
  1096. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +140 -0
  1097. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +140 -0
  1098. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +140 -0
  1099. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +140 -0
  1100. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +140 -0
  1101. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +140 -0
  1102. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +140 -0
  1103. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +140 -0
  1104. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +140 -0
  1105. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +140 -0
  1106. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +140 -0
  1107. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +140 -0
  1108. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +140 -0
  1109. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +140 -0
  1110. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +140 -0
  1111. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +140 -0
  1112. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +140 -0
  1113. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +140 -0
  1114. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +140 -0
  1115. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +140 -0
  1116. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartContainer-dbg.js +620 -0
  1117. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartContainer.js +6 -0
  1118. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper-dbg.js +491 -0
  1119. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper.js +6 -0
  1120. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/AreaMicroChart.fragment.xml +180 -0
  1121. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/BulletMicroChart.fragment.xml +111 -0
  1122. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/ColumnMicroChart.fragment.xml +99 -0
  1123. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/ComparisonMicroChart.fragment.xml +64 -0
  1124. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/HarveyBallMicroChart.fragment.xml +64 -0
  1125. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/LineMicroChart.fragment.xml +67 -0
  1126. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartContent.fragment.xml +41 -0
  1127. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartTitle.fragment.xml +52 -0
  1128. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/RadialMicroChart.fragment.xml +58 -0
  1129. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/StackedBarMicroChart.fragment.xml +54 -0
  1130. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +4885 -0
  1131. package/packages/sap.fe.macros/src/sap/fe/macros/share/ShareSheet.fragment.xml +26 -0
  1132. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +215 -0
  1133. package/packages/sap.fe.macros/src/sap/fe/macros/table/BasicSearch-dbg.js +73 -0
  1134. package/packages/sap.fe.macros/src/sap/fe/macros/table/BasicSearch.js +6 -0
  1135. package/packages/sap.fe.macros/src/sap/fe/macros/table/Column.fragment.xml +27 -0
  1136. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +133 -0
  1137. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnProperty.fragment.xml +43 -0
  1138. package/packages/sap.fe.macros/src/sap/fe/macros/table/Columns.fragment.xml +37 -0
  1139. package/packages/sap.fe.macros/src/sap/fe/macros/table/CreationRow.fragment.xml +33 -0
  1140. package/packages/sap.fe.macros/src/sap/fe/macros/table/CustomColumn.fragment.xml +16 -0
  1141. package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer-dbg.js +298 -0
  1142. package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer.js +6 -0
  1143. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableFullScreenUtil-dbg.js +194 -0
  1144. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableFullScreenUtil.js +6 -0
  1145. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +1399 -0
  1146. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +6 -0
  1147. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime-dbg.js +231 -0
  1148. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime.js +6 -0
  1149. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +468 -0
  1150. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +6 -0
  1151. package/packages/sap.fe.macros/src/sap/fe/macros/table/ValueHelp.fragment.xml +34 -0
  1152. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegate-dbg.js +32 -0
  1153. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +6 -0
  1154. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin-dbg.js +100 -0
  1155. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin.js +6 -0
  1156. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalALPTableDelegate-dbg.js +36 -0
  1157. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalALPTableDelegate.js +6 -0
  1158. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalTableDelegate-dbg.js +147 -0
  1159. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalTableDelegate.js +6 -0
  1160. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +818 -0
  1161. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +6 -0
  1162. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar-dbg.designtime.js +83 -0
  1163. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.designtime.js +6 -0
  1164. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.fragment.xml +115 -0
  1165. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata-dbg.js +204 -0
  1166. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata.js +6 -0
  1167. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper-dbg.js +476 -0
  1168. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +6 -0
  1169. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime-dbg.js +286 -0
  1170. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -0
  1171. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/fragments/InteractiveBarChart.fragment.xml +70 -0
  1172. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +69 -0
  1173. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/fragments/InteractiveLineChart.fragment.xml +70 -0
  1174. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +1001 -0
  1175. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -0
  1176. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -0
  1177. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jstemplates.json +1 -0
  1178. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -0
  1179. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmltemplates.json +1 -0
  1180. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.js +64 -0
  1181. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.ts +67 -0
  1182. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +326 -0
  1183. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +349 -0
  1184. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +127 -0
  1185. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +127 -0
  1186. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.js +184 -0
  1187. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.ts +263 -0
  1188. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithValueHelp.spec.js +63 -0
  1189. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithValueHelp.spec.ts +72 -0
  1190. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.js +32 -0
  1191. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.ts +28 -0
  1192. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.js +39 -0
  1193. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.ts +26 -0
  1194. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.js +53 -0
  1195. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.ts +54 -0
  1196. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.js +142 -0
  1197. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.ts +178 -0
  1198. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.js +401 -0
  1199. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.ts +662 -0
  1200. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +571 -0
  1201. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +778 -0
  1202. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.js +712 -0
  1203. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.ts +800 -0
  1204. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.js +192 -0
  1205. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.ts +194 -0
  1206. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +37 -0
  1207. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/MacroComponent.spec.ts.snap +7 -0
  1208. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/PhantomUtil.spec.ts.snap +184 -0
  1209. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +820 -0
  1210. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ValueHelpMacro.spec.ts.snap +279 -0
  1211. package/packages/sap.fe.macros/test/sap/fe/macros/jest/addTemplatingTest.md +51 -0
  1212. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/AdminDataPopOver.cds +8 -0
  1213. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/CollectionField.cds +48 -0
  1214. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +295 -0
  1215. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroWithSemanticKey.cds +62 -0
  1216. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroWithValueHelp.cds +131 -0
  1217. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterFieldMacro.cds +124 -0
  1218. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/MicroChart.cds +47 -0
  1219. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/PhantomUtil.cds +20 -0
  1220. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/QuickViewForm.cds +248 -0
  1221. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +113 -0
  1222. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/ValueHelpMacro.cds +163 -0
  1223. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/simpleFieldMacro.cds +129 -0
  1224. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.cds +115 -0
  1225. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +180 -0
  1226. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +215 -0
  1227. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/__snapshots__/FieldTemplating.spec.ts.snap +160 -0
  1228. package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestFragment.xml +15 -0
  1229. package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestFragmentRepeat.xml +27 -0
  1230. package/packages/sap.fe.macros/test/sap/fe/macros/jest/tsx/TestTSX.spec.tsx +49 -0
  1231. package/packages/sap.fe.macros/test/sap/fe/macros/jest/tsx/__snapshots__/TestTSX.spec.tsx.snap +33 -0
  1232. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/common/testHelper.js +24 -0
  1233. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +154 -0
  1234. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/AnalyticalTableDelegate.qunit.js +158 -0
  1235. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ChartDelegate.qunit.js +275 -0
  1236. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ChartHelper.qunit.js +601 -0
  1237. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ChartHelperTemplate.qunit.js +67 -0
  1238. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/CommonHelper.qunit.js +1607 -0
  1239. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +2478 -0
  1240. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +383 -0
  1241. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterBarDelegate.qunit.js +89 -0
  1242. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterBarHelper.qunit.js +223 -0
  1243. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterFieldHelper.qunit.js +712 -0
  1244. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormContainerTemplating.qunit.js +245 -0
  1245. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +83 -0
  1246. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormHelper.qunit.js +209 -0
  1247. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplating.qunit.js +577 -0
  1248. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +271 -0
  1249. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/InteractiveChartHelper.qunit.js +1227 -0
  1250. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MacroMetadata.qunit.js +123 -0
  1251. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartContainer.qunit.js +1637 -0
  1252. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartHelper.qunit.js +619 -0
  1253. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartHelperForTemplate.qunit.js +360 -0
  1254. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/PhantomUtil.qunit.js +307 -0
  1255. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/QuickViewLinkDelegate.qunit.js +81 -0
  1256. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableDelegate.qunit.js +734 -0
  1257. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +2630 -0
  1258. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelperTemplate.qunit.js +201 -0
  1259. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableRuntime.qunit.js +861 -0
  1260. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueHelpTemplating.qunit.js +176 -0
  1261. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +1133 -0
  1262. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/chartMetadata/metadata.xml +461 -0
  1263. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/flexibility/FormDelegate.qunit.js +408 -0
  1264. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacro.fragment.xml +9 -0
  1265. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacroMissingID.fragment.xml +9 -0
  1266. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/TableMacro.fragment.xml +22 -0
  1267. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/metadata/simpleMetadata.js +1415 -0
  1268. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/teststarter.qunit.html +13 -0
  1269. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/testsuite.qunit.html +14 -0
  1270. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/testsuite.qunit.js +41 -0
  1271. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.91.json +76 -0
  1272. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.94.json +29 -0
  1273. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +36 -0
  1274. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +6 -0
  1275. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavError-dbg.js +49 -0
  1276. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavError.js +6 -0
  1277. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler-dbg.js +2215 -0
  1278. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler.js +6 -0
  1279. package/packages/sap.fe.navigation/src/sap/fe/navigation/PresentationVariant-dbg.js +347 -0
  1280. package/packages/sap.fe.navigation/src/sap/fe/navigation/PresentationVariant.js +6 -0
  1281. package/packages/sap.fe.navigation/src/sap/fe/navigation/SelectionVariant-dbg.js +774 -0
  1282. package/packages/sap.fe.navigation/src/sap/fe/navigation/SelectionVariant.js +6 -0
  1283. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +170 -0
  1284. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +19 -0
  1285. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js.map +9 -0
  1286. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +129 -0
  1287. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +9 -0
  1288. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +6 -0
  1289. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +44 -0
  1290. package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +215 -0
  1291. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -0
  1292. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -0
  1293. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.jsmeta.json +1 -0
  1294. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.jstemplates.json +1 -0
  1295. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -0
  1296. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmltemplates.json +1 -0
  1297. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/index.json +17 -0
  1298. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/CrossAppNavigationServiceMock.js +110 -0
  1299. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/NavigationHandlerTest.qunit.js +8625 -0
  1300. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/PresentationVariantTest.qunit.js +179 -0
  1301. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/SelectionVariantTest.qunit.js +1366 -0
  1302. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/teststarter.qunit.html +13 -0
  1303. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/testsuite.qunit.html +14 -0
  1304. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/testsuite.qunit.js +41 -0
  1305. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +35 -0
  1306. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +5 -0
  1307. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/controller/Placeholder-dbg.controller.js +60 -0
  1308. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/controller/Placeholder.controller.js +6 -0
  1309. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +41 -0
  1310. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +20 -0
  1311. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js.map +9 -0
  1312. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +21 -0
  1313. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +9 -0
  1314. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +6 -0
  1315. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +49 -0
  1316. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +725 -0
  1317. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/.theming +5 -0
  1318. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/Placeholder.less +504 -0
  1319. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.css +3 -0
  1320. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.less +4 -0
  1321. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.source.less +1439 -0
  1322. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library-RTL.css +3 -0
  1323. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library-parameters.json +1 -0
  1324. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library.css +3 -0
  1325. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library.less +511 -0
  1326. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library.source.less +3 -0
  1327. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library_skeleton-RTL.css +1 -0
  1328. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library_skeleton.css +1 -0
  1329. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/resources.json +70 -0
  1330. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/.theming +27 -0
  1331. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.css +4 -0
  1332. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.less +1497 -0
  1333. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.source.less +1487 -0
  1334. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library-RTL.css +4 -0
  1335. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library-parameters.json +1 -0
  1336. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library.css +4 -0
  1337. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library.less +6 -0
  1338. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library.source.less +3 -0
  1339. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library_skeleton-RTL.css +1 -0
  1340. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library_skeleton.css +1 -0
  1341. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/resources.json +64 -0
  1342. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/.theming +6 -0
  1343. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.css +3 -0
  1344. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.less +1463 -0
  1345. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.source.less +1453 -0
  1346. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library-RTL.css +3 -0
  1347. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library-parameters.json +1 -0
  1348. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library.css +3 -0
  1349. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library.less +6 -0
  1350. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library.source.less +3 -0
  1351. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library_skeleton-RTL.css +1 -0
  1352. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library_skeleton.css +1 -0
  1353. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/resources.json +64 -0
  1354. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/.theming +6 -0
  1355. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.css +3 -0
  1356. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.less +1463 -0
  1357. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.source.less +1453 -0
  1358. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library-RTL.css +3 -0
  1359. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library-parameters.json +1 -0
  1360. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library.css +3 -0
  1361. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library.less +6 -0
  1362. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library.source.less +3 -0
  1363. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library_skeleton-RTL.css +1 -0
  1364. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library_skeleton.css +1 -0
  1365. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/resources.json +64 -0
  1366. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/.theming +26 -0
  1367. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.css +4 -0
  1368. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.less +1497 -0
  1369. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.source.less +1487 -0
  1370. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library-RTL.css +4 -0
  1371. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library-parameters.json +1 -0
  1372. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library.css +4 -0
  1373. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library.less +6 -0
  1374. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library.source.less +3 -0
  1375. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library_skeleton-RTL.css +1 -0
  1376. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library_skeleton.css +1 -0
  1377. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/resources.json +64 -0
  1378. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/.theming +6 -0
  1379. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.css +3 -0
  1380. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.less +1468 -0
  1381. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.source.less +1458 -0
  1382. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library-RTL.css +3 -0
  1383. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library-parameters.json +1 -0
  1384. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library.css +3 -0
  1385. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library.less +6 -0
  1386. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library.source.less +3 -0
  1387. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library_skeleton-RTL.css +1 -0
  1388. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library_skeleton.css +1 -0
  1389. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/resources.json +64 -0
  1390. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/.theming +6 -0
  1391. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.css +3 -0
  1392. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.less +1468 -0
  1393. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.source.less +1458 -0
  1394. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library-RTL.css +3 -0
  1395. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library-parameters.json +1 -0
  1396. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library.css +3 -0
  1397. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library.less +6 -0
  1398. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library.source.less +3 -0
  1399. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library_skeleton-RTL.css +1 -0
  1400. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library_skeleton.css +1 -0
  1401. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/resources.json +64 -0
  1402. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/.theming +6 -0
  1403. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.css +3 -0
  1404. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.less +1464 -0
  1405. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.source.less +1454 -0
  1406. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library-RTL.css +3 -0
  1407. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library-parameters.json +1 -0
  1408. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library.css +3 -0
  1409. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library.less +6 -0
  1410. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library.source.less +3 -0
  1411. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library_skeleton-RTL.css +1 -0
  1412. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library_skeleton.css +1 -0
  1413. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/resources.json +64 -0
  1414. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/.theming +6 -0
  1415. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.css +3 -0
  1416. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.less +1464 -0
  1417. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.source.less +1454 -0
  1418. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library-RTL.css +3 -0
  1419. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library-parameters.json +1 -0
  1420. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library.css +3 -0
  1421. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library.less +6 -0
  1422. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library.source.less +3 -0
  1423. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library_skeleton-RTL.css +1 -0
  1424. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library_skeleton.css +1 -0
  1425. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/resources.json +64 -0
  1426. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.fragment.html +10 -0
  1427. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.view.xml +11 -0
  1428. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderLR.fragment.html +8 -0
  1429. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderLR.view.xml +11 -0
  1430. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOP.fragment.html +8 -0
  1431. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOP.view.xml +11 -0
  1432. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.fragment.html +8 -0
  1433. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.view.xml +11 -0
  1434. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -0
  1435. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -0
  1436. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.jsmeta.json +1 -0
  1437. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.jstemplates.json +1 -0
  1438. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.xmlmeta.json +1 -0
  1439. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.xmltemplates.json +1 -0
  1440. package/packages/sap.fe.templates/src/sap/fe/templates/.library +74 -0
  1441. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +6 -0
  1442. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/Component-dbg.js +15 -0
  1443. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/Component.js +6 -0
  1444. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate-dbg.js +37 -0
  1445. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +6 -0
  1446. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +27 -0
  1447. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/resources.json +27 -0
  1448. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +121 -0
  1449. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +6 -0
  1450. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component-dbg.js +42 -0
  1451. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component.js +6 -0
  1452. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +95 -0
  1453. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI.js +6 -0
  1454. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +199 -0
  1455. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +954 -0
  1456. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +6 -0
  1457. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +28 -0
  1458. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation-dbg.js +52 -0
  1459. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +6 -0
  1460. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share-dbg.js +124 -0
  1461. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share.js +6 -0
  1462. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +264 -0
  1463. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +6 -0
  1464. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +79 -0
  1465. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +32 -0
  1466. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/CustomView.fragment.xml +10 -0
  1467. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.xml +49 -0
  1468. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +457 -0
  1469. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +6 -0
  1470. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +139 -0
  1471. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +6 -0
  1472. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +130 -0
  1473. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +6 -0
  1474. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +184 -0
  1475. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +1460 -0
  1476. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +6 -0
  1477. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +90 -0
  1478. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +6 -0
  1479. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableVBox-dbg.js +27 -0
  1480. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +6 -0
  1481. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock-dbg.js +57 -0
  1482. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +6 -0
  1483. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox-dbg.designtime.js +19 -0
  1484. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +6 -0
  1485. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableHBox-dbg.designtime.js +51 -0
  1486. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +6 -0
  1487. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableVBox-dbg.designtime.js +38 -0
  1488. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +6 -0
  1489. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility-dbg.js +19 -0
  1490. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +6 -0
  1491. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility-dbg.js +15 -0
  1492. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +6 -0
  1493. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +122 -0
  1494. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation-dbg.js +55 -0
  1495. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +6 -0
  1496. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/InternalRouting-dbg.js +20 -0
  1497. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +6 -0
  1498. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/MessageHandler-dbg.js +20 -0
  1499. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +6 -0
  1500. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Routing-dbg.js +21 -0
  1501. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Routing.js +6 -0
  1502. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share-dbg.js +303 -0
  1503. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share.js +6 -0
  1504. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +45 -0
  1505. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +6 -0
  1506. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +282 -0
  1507. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +117 -0
  1508. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +5 -0
  1509. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +124 -0
  1510. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +183 -0
  1511. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +160 -0
  1512. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +117 -0
  1513. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +79 -0
  1514. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FormActions.fragment.xml +24 -0
  1515. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderContent.fragment.xml +54 -0
  1516. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +26 -0
  1517. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +69 -0
  1518. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +90 -0
  1519. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +41 -0
  1520. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderImage.fragment.xml +24 -0
  1521. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +20 -0
  1522. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +72 -0
  1523. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/RelatedApps.fragment.xml +22 -0
  1524. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +71 -0
  1525. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +175 -0
  1526. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionCustomSection.fragment.xml +18 -0
  1527. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +18 -0
  1528. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +18 -0
  1529. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionPresentationVisualization.fragment.xml +17 -0
  1530. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SideContentCustomContainer.fragment.xml +19 -0
  1531. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/TitleAndSubtitle.fragment.xml +24 -0
  1532. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +816 -0
  1533. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +6 -0
  1534. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +176 -0
  1535. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +6 -0
  1536. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +441 -0
  1537. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +6 -0
  1538. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/overrides/EditFlow-dbg.js +18 -0
  1539. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +6 -0
  1540. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +15 -0
  1541. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +9 -0
  1542. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/PlaceholderLR.view.xml +617 -0
  1543. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/PlaceholderOP.view.xml +588 -0
  1544. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Chart.fragment.xml +20 -0
  1545. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover-dbg.js +26 -0
  1546. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +6 -0
  1547. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Paginator-dbg.js +174 -0
  1548. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Paginator.control.xml +24 -0
  1549. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Paginator.js +6 -0
  1550. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +23 -0
  1551. package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js +10 -0
  1552. package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js.map +9 -0
  1553. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +72 -0
  1554. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +77 -0
  1555. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +9 -0
  1556. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +154 -0
  1557. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +9 -0
  1558. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +6 -0
  1559. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +136 -0
  1560. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle.properties +210 -0
  1561. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ar.properties +135 -0
  1562. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_bg.properties +135 -0
  1563. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ca.properties +135 -0
  1564. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cs.properties +135 -0
  1565. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cy.properties +135 -0
  1566. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_da.properties +135 -0
  1567. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_de.properties +135 -0
  1568. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_el.properties +135 -0
  1569. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en.properties +135 -0
  1570. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_GB.properties +135 -0
  1571. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +135 -0
  1572. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +135 -0
  1573. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +135 -0
  1574. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +135 -0
  1575. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es_MX.properties +135 -0
  1576. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_et.properties +135 -0
  1577. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fi.properties +135 -0
  1578. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +135 -0
  1579. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr_CA.properties +135 -0
  1580. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hi.properties +135 -0
  1581. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hr.properties +135 -0
  1582. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hu.properties +135 -0
  1583. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_id.properties +135 -0
  1584. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_it.properties +135 -0
  1585. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_iw.properties +135 -0
  1586. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +135 -0
  1587. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_kk.properties +135 -0
  1588. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ko.properties +135 -0
  1589. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lt.properties +135 -0
  1590. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lv.properties +135 -0
  1591. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ms.properties +135 -0
  1592. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_nl.properties +135 -0
  1593. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_no.properties +135 -0
  1594. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pl.properties +135 -0
  1595. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt.properties +135 -0
  1596. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt_PT.properties +135 -0
  1597. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ro.properties +135 -0
  1598. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ru.properties +135 -0
  1599. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sh.properties +135 -0
  1600. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sk.properties +135 -0
  1601. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sl.properties +135 -0
  1602. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sv.properties +135 -0
  1603. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_th.properties +135 -0
  1604. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +135 -0
  1605. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_uk.properties +135 -0
  1606. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_vi.properties +135 -0
  1607. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_CN.properties +135 -0
  1608. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_TW.properties +135 -0
  1609. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +2103 -0
  1610. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/Component.js +9 -0
  1611. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/WEB-INF/web.xml +120 -0
  1612. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/annotations/annotations.xml +43 -0
  1613. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/i18n/i18n.properties +13 -0
  1614. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +176 -0
  1615. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/test/manifestCreateDialogWithFCL.json +87 -0
  1616. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/test/testFLP.html +71 -0
  1617. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/test/testFLPService.html +82 -0
  1618. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/flpSandbox.html +24 -0
  1619. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/flpSandbox.js +225 -0
  1620. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/mockServer.js +780 -0
  1621. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/mockServerHelper.js +195 -0
  1622. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -0
  1623. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -0
  1624. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jsmeta.json +1 -0
  1625. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jstemplates.json +1 -0
  1626. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -0
  1627. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmltemplates.json +1 -0
  1628. package/packages/sap.fe.templates/test/sap/fe/templates/qunit/common/testHelper.js +80 -0
  1629. package/packages/sap.fe.templates/test/sap/fe/templates/qunit/common/utility.js +28 -0
  1630. package/packages/sap.fe.templates/test/sap/fe/templates/qunit/testsuite.qunit.html +14 -0
  1631. package/packages/sap.fe.templates/test/sap/fe/templates/qunit/testsuite.qunit.js +33 -0
  1632. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.91.json +134 -0
  1633. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.94.json +34 -0
  1634. package/packages/sap.fe.test/src/sap/fe/test/.library +30 -0
  1635. package/packages/sap.fe.test/src/sap/fe/test/.theming +6 -0
  1636. package/packages/sap.fe.test/src/sap/fe/test/BaseActions-dbg.js +107 -0
  1637. package/packages/sap.fe.test/src/sap/fe/test/BaseActions.js +6 -0
  1638. package/packages/sap.fe.test/src/sap/fe/test/BaseArrangements-dbg.js +199 -0
  1639. package/packages/sap.fe.test/src/sap/fe/test/BaseArrangements.js +6 -0
  1640. package/packages/sap.fe.test/src/sap/fe/test/BaseAssertions-dbg.js +56 -0
  1641. package/packages/sap.fe.test/src/sap/fe/test/BaseAssertions.js +6 -0
  1642. package/packages/sap.fe.test/src/sap/fe/test/ConfirmDialog-dbg.js +72 -0
  1643. package/packages/sap.fe.test/src/sap/fe/test/ConfirmDialog.js +6 -0
  1644. package/packages/sap.fe.test/src/sap/fe/test/FCLView-dbg.js +86 -0
  1645. package/packages/sap.fe.test/src/sap/fe/test/FCLView.js +6 -0
  1646. package/packages/sap.fe.test/src/sap/fe/test/Flexibility-dbg.js +743 -0
  1647. package/packages/sap.fe.test/src/sap/fe/test/Flexibility.js +6 -0
  1648. package/packages/sap.fe.test/src/sap/fe/test/FlexibleColumnLayout-dbg.js +149 -0
  1649. package/packages/sap.fe.test/src/sap/fe/test/FlexibleColumnLayout.js +6 -0
  1650. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +284 -0
  1651. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +5 -0
  1652. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +242 -0
  1653. package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner-dbg.js +314 -0
  1654. package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner.js +6 -0
  1655. package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +525 -0
  1656. package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +6 -0
  1657. package/packages/sap.fe.test/src/sap/fe/test/LocationUtil-dbg.js +54 -0
  1658. package/packages/sap.fe.test/src/sap/fe/test/LocationUtil.js +6 -0
  1659. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +857 -0
  1660. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +6 -0
  1661. package/packages/sap.fe.test/src/sap/fe/test/Shell-dbg.js +226 -0
  1662. package/packages/sap.fe.test/src/sap/fe/test/Shell.js +6 -0
  1663. package/packages/sap.fe.test/src/sap/fe/test/Stubs-dbg.js +97 -0
  1664. package/packages/sap.fe.test/src/sap/fe/test/Stubs.js +6 -0
  1665. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage-dbg.js +447 -0
  1666. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage.js +6 -0
  1667. package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils-dbg.js +243 -0
  1668. package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils.js +6 -0
  1669. package/packages/sap.fe.test/src/sap/fe/test/Utils-dbg.js +301 -0
  1670. package/packages/sap.fe.test/src/sap/fe/test/Utils.js +6 -0
  1671. package/packages/sap.fe.test/src/sap/fe/test/api/APIHelper-dbg.js +117 -0
  1672. package/packages/sap.fe.test/src/sap/fe/test/api/APIHelper.js +6 -0
  1673. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +285 -0
  1674. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI.js +6 -0
  1675. package/packages/sap.fe.test/src/sap/fe/test/api/ChartActions-dbg.js +131 -0
  1676. package/packages/sap.fe.test/src/sap/fe/test/api/ChartActions.js +6 -0
  1677. package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions-dbg.js +114 -0
  1678. package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions.js +6 -0
  1679. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +93 -0
  1680. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +6 -0
  1681. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions-dbg.js +101 -0
  1682. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions.js +6 -0
  1683. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions-dbg.js +123 -0
  1684. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions.js +6 -0
  1685. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions-dbg.js +44 -0
  1686. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions.js +6 -0
  1687. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions-dbg.js +55 -0
  1688. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions.js +6 -0
  1689. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions-dbg.js +59 -0
  1690. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions.js +6 -0
  1691. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions-dbg.js +87 -0
  1692. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions.js +6 -0
  1693. package/packages/sap.fe.test/src/sap/fe/test/api/DialogType-dbg.js +76 -0
  1694. package/packages/sap.fe.test/src/sap/fe/test/api/DialogType.js +6 -0
  1695. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions-dbg.js +317 -0
  1696. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions.js +6 -0
  1697. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions-dbg.js +263 -0
  1698. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions.js +6 -0
  1699. package/packages/sap.fe.test/src/sap/fe/test/api/EditState-dbg.js +67 -0
  1700. package/packages/sap.fe.test/src/sap/fe/test/api/EditState.js +6 -0
  1701. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI-dbg.js +197 -0
  1702. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI.js +6 -0
  1703. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions-dbg.js +310 -0
  1704. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions.js +6 -0
  1705. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAssertions-dbg.js +413 -0
  1706. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAssertions.js +6 -0
  1707. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAPI-dbg.js +37 -0
  1708. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAPI.js +6 -0
  1709. package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsBase-dbg.js +47 -0
  1710. package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsBase.js +6 -0
  1711. package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsOP-dbg.js +83 -0
  1712. package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsOP.js +6 -0
  1713. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsBase-dbg.js +66 -0
  1714. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsBase.js +6 -0
  1715. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsOP-dbg.js +98 -0
  1716. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsOP.js +6 -0
  1717. package/packages/sap.fe.test/src/sap/fe/test/api/FormAPI-dbg.js +82 -0
  1718. package/packages/sap.fe.test/src/sap/fe/test/api/FormAPI.js +6 -0
  1719. package/packages/sap.fe.test/src/sap/fe/test/api/FormActions-dbg.js +180 -0
  1720. package/packages/sap.fe.test/src/sap/fe/test/api/FormActions.js +6 -0
  1721. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions-dbg.js +182 -0
  1722. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions.js +6 -0
  1723. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAPI-dbg.js +152 -0
  1724. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAPI.js +6 -0
  1725. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActions-dbg.js +232 -0
  1726. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActions.js +6 -0
  1727. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActionsLR-dbg.js +94 -0
  1728. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActionsLR.js +6 -0
  1729. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertions-dbg.js +495 -0
  1730. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertions.js +6 -0
  1731. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertionsLR-dbg.js +110 -0
  1732. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertionsLR.js +6 -0
  1733. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderLR-dbg.js +74 -0
  1734. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderLR.js +6 -0
  1735. package/packages/sap.fe.test/src/sap/fe/test/api/TableAPI-dbg.js +452 -0
  1736. package/packages/sap.fe.test/src/sap/fe/test/api/TableAPI.js +6 -0
  1737. package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +958 -0
  1738. package/packages/sap.fe.test/src/sap/fe/test/api/TableActions.js +6 -0
  1739. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions-dbg.js +697 -0
  1740. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions.js +6 -0
  1741. package/packages/sap.fe.test/src/sap/fe/test/builder/DialogBuilder-dbg.js +118 -0
  1742. package/packages/sap.fe.test/src/sap/fe/test/builder/DialogBuilder.js +6 -0
  1743. package/packages/sap.fe.test/src/sap/fe/test/builder/FEBuilder-dbg.js +428 -0
  1744. package/packages/sap.fe.test/src/sap/fe/test/builder/FEBuilder.js +6 -0
  1745. package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder-dbg.js +56 -0
  1746. package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder.js +6 -0
  1747. package/packages/sap.fe.test/src/sap/fe/test/builder/MacroFieldBuilder-dbg.js +174 -0
  1748. package/packages/sap.fe.test/src/sap/fe/test/builder/MacroFieldBuilder.js +6 -0
  1749. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFieldBuilder-dbg.js +254 -0
  1750. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFieldBuilder.js +6 -0
  1751. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterBarBuilder-dbg.js +112 -0
  1752. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterBarBuilder.js +6 -0
  1753. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterFieldBuilder-dbg.js +54 -0
  1754. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterFieldBuilder.js +6 -0
  1755. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder-dbg.js +1069 -0
  1756. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder.js +6 -0
  1757. package/packages/sap.fe.test/src/sap/fe/test/builder/OverflowToolbarBuilder-dbg.js +89 -0
  1758. package/packages/sap.fe.test/src/sap/fe/test/builder/OverflowToolbarBuilder.js +6 -0
  1759. package/packages/sap.fe.test/src/sap/fe/test/builder/VMBuilder-dbg.js +268 -0
  1760. package/packages/sap.fe.test/src/sap/fe/test/builder/VMBuilder.js +6 -0
  1761. package/packages/sap.fe.test/src/sap/fe/test/internal/FEArrangements-dbg.js +66 -0
  1762. package/packages/sap.fe.test/src/sap/fe/test/internal/FEArrangements.js +6 -0
  1763. package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner-dbg.js +55 -0
  1764. package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner.js +6 -0
  1765. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +37 -0
  1766. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +78 -0
  1767. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +9 -0
  1768. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +587 -0
  1769. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +9 -0
  1770. package/packages/sap.fe.test/src/sap/fe/test/library.js +6 -0
  1771. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +39 -0
  1772. package/packages/sap.fe.test/src/sap/fe/test/massEdit-dbg.js +99 -0
  1773. package/packages/sap.fe.test/src/sap/fe/test/massEdit.js +6 -0
  1774. package/packages/sap.fe.test/src/sap/fe/test/resources.json +1972 -0
  1775. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -0
  1776. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -0
  1777. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -0
  1778. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jstemplates.json +1 -0
  1779. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -0
  1780. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmltemplates.json +1 -0
  1781. package/packages/sap.fe.test/test/sap/fe/test/mockserver/MockServer.js +134870 -0
  1782. package/src/LICENSE.txt +23 -0
  1783. package/ui5.yaml +66 -0
@@ -0,0 +1,1294 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/core/converters/common/AnnotationConverter"], function (AnnotationConverter) {
6
+ "use strict";
7
+
8
+ var _exports = {};
9
+
10
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function () {}; return { s: F, n: function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (e) { throw e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function () { it = it.call(o); }, n: function () { var step = it.next(); normalCompletion = step.done; return step; }, e: function (e) { didErr = true; err = e; }, f: function () { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
11
+
12
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+
14
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
+
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21
+
22
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
23
+
24
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
+
26
+ var VOCABULARY_ALIAS = {
27
+ "Org.OData.Capabilities.V1": "Capabilities",
28
+ "Org.OData.Core.V1": "Core",
29
+ "Org.OData.Measures.V1": "Measures",
30
+ "com.sap.vocabularies.Common.v1": "Common",
31
+ "com.sap.vocabularies.UI.v1": "UI",
32
+ "com.sap.vocabularies.Session.v1": "Session",
33
+ "com.sap.vocabularies.Analytics.v1": "Analytics",
34
+ "com.sap.vocabularies.PersonalData.v1": "PersonalData",
35
+ "com.sap.vocabularies.Communication.v1": "Communication"
36
+ };
37
+ var DefaultEnvironmentCapabilities = {
38
+ Chart: true,
39
+ MicroChart: true,
40
+ UShell: true,
41
+ IntentBasedNavigation: true
42
+ };
43
+ _exports.DefaultEnvironmentCapabilities = DefaultEnvironmentCapabilities;
44
+ var MetaModelConverter = {
45
+ parsePropertyValue: function (annotationObject, propertyKey, currentTarget, annotationsLists, oCapabilities) {
46
+ var _this = this;
47
+
48
+ var value;
49
+ var currentPropertyTarget = currentTarget + "/" + propertyKey;
50
+
51
+ if (annotationObject === null) {
52
+ value = {
53
+ type: "Null",
54
+ Null: null
55
+ };
56
+ } else if (typeof annotationObject === "string") {
57
+ value = {
58
+ type: "String",
59
+ String: annotationObject
60
+ };
61
+ } else if (typeof annotationObject === "boolean") {
62
+ value = {
63
+ type: "Bool",
64
+ Bool: annotationObject
65
+ };
66
+ } else if (typeof annotationObject === "number") {
67
+ value = {
68
+ type: "Int",
69
+ Int: annotationObject
70
+ };
71
+ } else if (Array.isArray(annotationObject)) {
72
+ value = {
73
+ type: "Collection",
74
+ Collection: annotationObject.map(function (subAnnotationObject, subAnnotationObjectIndex) {
75
+ return _this.parseAnnotationObject(subAnnotationObject, currentPropertyTarget + "/" + subAnnotationObjectIndex, annotationsLists, oCapabilities);
76
+ })
77
+ };
78
+
79
+ if (annotationObject.length > 0) {
80
+ if (annotationObject[0].hasOwnProperty("$PropertyPath")) {
81
+ value.Collection.type = "PropertyPath";
82
+ } else if (annotationObject[0].hasOwnProperty("$Path")) {
83
+ value.Collection.type = "Path";
84
+ } else if (annotationObject[0].hasOwnProperty("$NavigationPropertyPath")) {
85
+ value.Collection.type = "NavigationPropertyPath";
86
+ } else if (annotationObject[0].hasOwnProperty("$AnnotationPath")) {
87
+ value.Collection.type = "AnnotationPath";
88
+ } else if (annotationObject[0].hasOwnProperty("$Type")) {
89
+ value.Collection.type = "Record";
90
+ } else if (annotationObject[0].hasOwnProperty("$If")) {
91
+ value.Collection.type = "If";
92
+ } else if (annotationObject[0].hasOwnProperty("$Or")) {
93
+ value.Collection.type = "Or";
94
+ } else if (annotationObject[0].hasOwnProperty("$And")) {
95
+ value.Collection.type = "And";
96
+ } else if (annotationObject[0].hasOwnProperty("$Eq")) {
97
+ value.Collection.type = "Eq";
98
+ } else if (annotationObject[0].hasOwnProperty("$Ne")) {
99
+ value.Collection.type = "Ne";
100
+ } else if (annotationObject[0].hasOwnProperty("$Not")) {
101
+ value.Collection.type = "Not";
102
+ } else if (annotationObject[0].hasOwnProperty("$Gt")) {
103
+ value.Collection.type = "Gt";
104
+ } else if (annotationObject[0].hasOwnProperty("$Ge")) {
105
+ value.Collection.type = "Ge";
106
+ } else if (annotationObject[0].hasOwnProperty("$Lt")) {
107
+ value.Collection.type = "Lt";
108
+ } else if (annotationObject[0].hasOwnProperty("$Le")) {
109
+ value.Collection.type = "Le";
110
+ } else if (annotationObject[0].hasOwnProperty("$Apply")) {
111
+ value.Collection.type = "Apply";
112
+ } else if (typeof annotationObject[0] === "object") {
113
+ // $Type is optional...
114
+ value.Collection.type = "Record";
115
+ } else {
116
+ value.Collection.type = "String";
117
+ }
118
+ }
119
+ } else if (annotationObject.$Path !== undefined) {
120
+ value = {
121
+ type: "Path",
122
+ Path: annotationObject.$Path
123
+ };
124
+ } else if (annotationObject.$Decimal !== undefined) {
125
+ value = {
126
+ type: "Decimal",
127
+ Decimal: parseFloat(annotationObject.$Decimal)
128
+ };
129
+ } else if (annotationObject.$PropertyPath !== undefined) {
130
+ value = {
131
+ type: "PropertyPath",
132
+ PropertyPath: annotationObject.$PropertyPath
133
+ };
134
+ } else if (annotationObject.$NavigationPropertyPath !== undefined) {
135
+ value = {
136
+ type: "NavigationPropertyPath",
137
+ NavigationPropertyPath: annotationObject.$NavigationPropertyPath
138
+ };
139
+ } else if (annotationObject.$If !== undefined) {
140
+ value = {
141
+ type: "If",
142
+ If: annotationObject.$If
143
+ };
144
+ } else if (annotationObject.$And !== undefined) {
145
+ value = {
146
+ type: "And",
147
+ And: annotationObject.$And
148
+ };
149
+ } else if (annotationObject.$Or !== undefined) {
150
+ value = {
151
+ type: "Or",
152
+ Or: annotationObject.$Or
153
+ };
154
+ } else if (annotationObject.$Not !== undefined) {
155
+ value = {
156
+ type: "Not",
157
+ Not: annotationObject.$Not
158
+ };
159
+ } else if (annotationObject.$Eq !== undefined) {
160
+ value = {
161
+ type: "Eq",
162
+ Eq: annotationObject.$Eq
163
+ };
164
+ } else if (annotationObject.$Ne !== undefined) {
165
+ value = {
166
+ type: "Ne",
167
+ Ne: annotationObject.$Ne
168
+ };
169
+ } else if (annotationObject.$Gt !== undefined) {
170
+ value = {
171
+ type: "Gt",
172
+ Gt: annotationObject.$Gt
173
+ };
174
+ } else if (annotationObject.$Ge !== undefined) {
175
+ value = {
176
+ type: "Ge",
177
+ Ge: annotationObject.$Ge
178
+ };
179
+ } else if (annotationObject.$Lt !== undefined) {
180
+ value = {
181
+ type: "Lt",
182
+ Lt: annotationObject.$Lt
183
+ };
184
+ } else if (annotationObject.$Le !== undefined) {
185
+ value = {
186
+ type: "Le",
187
+ Le: annotationObject.$Le
188
+ };
189
+ } else if (annotationObject.$Apply !== undefined) {
190
+ value = {
191
+ type: "Apply",
192
+ Apply: annotationObject.$Apply,
193
+ Function: annotationObject.$Function
194
+ };
195
+ } else if (annotationObject.$AnnotationPath !== undefined) {
196
+ value = {
197
+ type: "AnnotationPath",
198
+ AnnotationPath: annotationObject.$AnnotationPath
199
+ };
200
+ } else if (annotationObject.$EnumMember !== undefined) {
201
+ value = {
202
+ type: "EnumMember",
203
+ EnumMember: this.mapNameToAlias(annotationObject.$EnumMember.split("/")[0]) + "/" + annotationObject.$EnumMember.split("/")[1]
204
+ };
205
+ } else if (annotationObject.$Type) {
206
+ value = {
207
+ type: "Record",
208
+ Record: this.parseAnnotationObject(annotationObject, currentTarget, annotationsLists, oCapabilities)
209
+ };
210
+ } else {
211
+ value = {
212
+ type: "Record",
213
+ Record: this.parseAnnotationObject(annotationObject, currentTarget, annotationsLists, oCapabilities)
214
+ };
215
+ }
216
+
217
+ return {
218
+ name: propertyKey,
219
+ value: value
220
+ };
221
+ },
222
+ mapNameToAlias: function (annotationName) {
223
+ var _annotationName$split = annotationName.split("@"),
224
+ _annotationName$split2 = _slicedToArray(_annotationName$split, 2),
225
+ pathPart = _annotationName$split2[0],
226
+ annoPart = _annotationName$split2[1];
227
+
228
+ if (!annoPart) {
229
+ annoPart = pathPart;
230
+ pathPart = "";
231
+ } else {
232
+ pathPart += "@";
233
+ }
234
+
235
+ var lastDot = annoPart.lastIndexOf(".");
236
+ return pathPart + VOCABULARY_ALIAS[annoPart.substr(0, lastDot)] + "." + annoPart.substr(lastDot + 1);
237
+ },
238
+ parseAnnotationObject: function (annotationObject, currentObjectTarget, annotationsLists, oCapabilities) {
239
+ var _this2 = this;
240
+
241
+ var parsedAnnotationObject = {};
242
+
243
+ if (annotationObject === null) {
244
+ parsedAnnotationObject = {
245
+ type: "Null",
246
+ Null: null
247
+ };
248
+ } else if (typeof annotationObject === "string") {
249
+ parsedAnnotationObject = {
250
+ type: "String",
251
+ String: annotationObject
252
+ };
253
+ } else if (typeof annotationObject === "boolean") {
254
+ parsedAnnotationObject = {
255
+ type: "Bool",
256
+ Bool: annotationObject
257
+ };
258
+ } else if (typeof annotationObject === "number") {
259
+ parsedAnnotationObject = {
260
+ type: "Int",
261
+ Int: annotationObject
262
+ };
263
+ } else if (annotationObject.$AnnotationPath !== undefined) {
264
+ parsedAnnotationObject = {
265
+ type: "AnnotationPath",
266
+ AnnotationPath: annotationObject.$AnnotationPath
267
+ };
268
+ } else if (annotationObject.$Path !== undefined) {
269
+ parsedAnnotationObject = {
270
+ type: "Path",
271
+ Path: annotationObject.$Path
272
+ };
273
+ } else if (annotationObject.$Decimal !== undefined) {
274
+ parsedAnnotationObject = {
275
+ type: "Decimal",
276
+ Decimal: parseFloat(annotationObject.$Decimal)
277
+ };
278
+ } else if (annotationObject.$PropertyPath !== undefined) {
279
+ parsedAnnotationObject = {
280
+ type: "PropertyPath",
281
+ PropertyPath: annotationObject.$PropertyPath
282
+ };
283
+ } else if (annotationObject.$If !== undefined) {
284
+ parsedAnnotationObject = {
285
+ type: "If",
286
+ If: annotationObject.$If
287
+ };
288
+ } else if (annotationObject.$And !== undefined) {
289
+ parsedAnnotationObject = {
290
+ type: "And",
291
+ And: annotationObject.$And
292
+ };
293
+ } else if (annotationObject.$Or !== undefined) {
294
+ parsedAnnotationObject = {
295
+ type: "Or",
296
+ Or: annotationObject.$Or
297
+ };
298
+ } else if (annotationObject.$Not !== undefined) {
299
+ parsedAnnotationObject = {
300
+ type: "Not",
301
+ Not: annotationObject.$Not
302
+ };
303
+ } else if (annotationObject.$Eq !== undefined) {
304
+ parsedAnnotationObject = {
305
+ type: "Eq",
306
+ Eq: annotationObject.$Eq
307
+ };
308
+ } else if (annotationObject.$Ne !== undefined) {
309
+ parsedAnnotationObject = {
310
+ type: "Ne",
311
+ Ne: annotationObject.$Ne
312
+ };
313
+ } else if (annotationObject.$Gt !== undefined) {
314
+ parsedAnnotationObject = {
315
+ type: "Gt",
316
+ Gt: annotationObject.$Gt
317
+ };
318
+ } else if (annotationObject.$Ge !== undefined) {
319
+ parsedAnnotationObject = {
320
+ type: "Ge",
321
+ Ge: annotationObject.$Ge
322
+ };
323
+ } else if (annotationObject.$Lt !== undefined) {
324
+ parsedAnnotationObject = {
325
+ type: "Lt",
326
+ Lt: annotationObject.$Lt
327
+ };
328
+ } else if (annotationObject.$Le !== undefined) {
329
+ parsedAnnotationObject = {
330
+ type: "Le",
331
+ Le: annotationObject.$Le
332
+ };
333
+ } else if (annotationObject.$Apply !== undefined) {
334
+ parsedAnnotationObject = {
335
+ type: "Apply",
336
+ Apply: annotationObject.$Apply,
337
+ Function: annotationObject.$Function
338
+ };
339
+ } else if (annotationObject.$NavigationPropertyPath !== undefined) {
340
+ parsedAnnotationObject = {
341
+ type: "NavigationPropertyPath",
342
+ NavigationPropertyPath: annotationObject.$NavigationPropertyPath
343
+ };
344
+ } else if (annotationObject.$EnumMember !== undefined) {
345
+ parsedAnnotationObject = {
346
+ type: "EnumMember",
347
+ EnumMember: this.mapNameToAlias(annotationObject.$EnumMember.split("/")[0]) + "/" + annotationObject.$EnumMember.split("/")[1]
348
+ };
349
+ } else if (Array.isArray(annotationObject)) {
350
+ var parsedAnnotationCollection = parsedAnnotationObject;
351
+ parsedAnnotationCollection.collection = annotationObject.map(function (subAnnotationObject, subAnnotationIndex) {
352
+ return _this2.parseAnnotationObject(subAnnotationObject, currentObjectTarget + "/" + subAnnotationIndex, annotationsLists, oCapabilities);
353
+ });
354
+
355
+ if (annotationObject.length > 0) {
356
+ if (annotationObject[0].hasOwnProperty("$PropertyPath")) {
357
+ parsedAnnotationCollection.collection.type = "PropertyPath";
358
+ } else if (annotationObject[0].hasOwnProperty("$Path")) {
359
+ parsedAnnotationCollection.collection.type = "Path";
360
+ } else if (annotationObject[0].hasOwnProperty("$NavigationPropertyPath")) {
361
+ parsedAnnotationCollection.collection.type = "NavigationPropertyPath";
362
+ } else if (annotationObject[0].hasOwnProperty("$AnnotationPath")) {
363
+ parsedAnnotationCollection.collection.type = "AnnotationPath";
364
+ } else if (annotationObject[0].hasOwnProperty("$Type")) {
365
+ parsedAnnotationCollection.collection.type = "Record";
366
+ } else if (annotationObject[0].hasOwnProperty("$If")) {
367
+ parsedAnnotationCollection.collection.type = "If";
368
+ } else if (annotationObject[0].hasOwnProperty("$And")) {
369
+ parsedAnnotationCollection.collection.type = "And";
370
+ } else if (annotationObject[0].hasOwnProperty("$Or")) {
371
+ parsedAnnotationCollection.collection.type = "Or";
372
+ } else if (annotationObject[0].hasOwnProperty("$Eq")) {
373
+ parsedAnnotationCollection.collection.type = "Eq";
374
+ } else if (annotationObject[0].hasOwnProperty("$Ne")) {
375
+ parsedAnnotationCollection.collection.type = "Ne";
376
+ } else if (annotationObject[0].hasOwnProperty("$Not")) {
377
+ parsedAnnotationCollection.collection.type = "Not";
378
+ } else if (annotationObject[0].hasOwnProperty("$Gt")) {
379
+ parsedAnnotationCollection.collection.type = "Gt";
380
+ } else if (annotationObject[0].hasOwnProperty("$Ge")) {
381
+ parsedAnnotationCollection.collection.type = "Ge";
382
+ } else if (annotationObject[0].hasOwnProperty("$Lt")) {
383
+ parsedAnnotationCollection.collection.type = "Lt";
384
+ } else if (annotationObject[0].hasOwnProperty("$Le")) {
385
+ parsedAnnotationCollection.collection.type = "Le";
386
+ } else if (annotationObject[0].hasOwnProperty("$Apply")) {
387
+ parsedAnnotationCollection.collection.type = "Apply";
388
+ } else if (typeof annotationObject[0] === "object") {
389
+ parsedAnnotationCollection.collection.type = "Record";
390
+ } else {
391
+ parsedAnnotationCollection.collection.type = "String";
392
+ }
393
+ }
394
+ } else {
395
+ if (annotationObject.$Type) {
396
+ var typeValue = annotationObject.$Type;
397
+ parsedAnnotationObject.type = typeValue; //`${typeAlias}.${typeTerm}`;
398
+ }
399
+
400
+ var propertyValues = [];
401
+ Object.keys(annotationObject).forEach(function (propertyKey) {
402
+ if (propertyKey !== "$Type" && propertyKey !== "$If" && propertyKey !== "$Apply" && propertyKey !== "$And" && propertyKey !== "$Or" && propertyKey !== "$Ne" && propertyKey !== "$Gt" && propertyKey !== "$Ge" && propertyKey !== "$Lt" && propertyKey !== "$Le" && propertyKey !== "$Not" && propertyKey !== "$Eq" && !propertyKey.startsWith("@")) {
403
+ propertyValues.push(_this2.parsePropertyValue(annotationObject[propertyKey], propertyKey, currentObjectTarget, annotationsLists, oCapabilities));
404
+ } else if (propertyKey.startsWith("@")) {
405
+ // Annotation of annotation
406
+ _this2.createAnnotationLists(_defineProperty({}, propertyKey, annotationObject[propertyKey]), currentObjectTarget, annotationsLists, oCapabilities);
407
+ }
408
+ });
409
+ parsedAnnotationObject.propertyValues = propertyValues;
410
+ }
411
+
412
+ return parsedAnnotationObject;
413
+ },
414
+ getOrCreateAnnotationList: function (target, annotationsLists) {
415
+ var potentialTarget = annotationsLists.find(function (annotationList) {
416
+ return annotationList.target === target;
417
+ });
418
+
419
+ if (!potentialTarget) {
420
+ potentialTarget = {
421
+ target: target,
422
+ annotations: []
423
+ };
424
+ annotationsLists.push(potentialTarget);
425
+ }
426
+
427
+ return potentialTarget;
428
+ },
429
+ createAnnotationLists: function (annotationObjects, annotationTarget, annotationLists, oCapabilities) {
430
+ var _this3 = this;
431
+
432
+ var outAnnotationObject = this.getOrCreateAnnotationList(annotationTarget, annotationLists);
433
+
434
+ if (!oCapabilities.MicroChart) {
435
+ delete annotationObjects["@com.sap.vocabularies.UI.v1.Chart"];
436
+ }
437
+
438
+ function removeChartAnnotations(annotationObject) {
439
+ return annotationObject.filter(function (oRecord) {
440
+ if (oRecord.Target && oRecord.Target.$AnnotationPath) {
441
+ return oRecord.Target.$AnnotationPath.indexOf("@com.sap.vocabularies.UI.v1.Chart") === -1;
442
+ } else {
443
+ return true;
444
+ }
445
+ });
446
+ }
447
+
448
+ function removeIBNAnnotations(annotationObject) {
449
+ return annotationObject.filter(function (oRecord) {
450
+ return oRecord.$Type !== "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation";
451
+ });
452
+ }
453
+
454
+ function handlePresentationVariant(annotationObject) {
455
+ return annotationObject.filter(function (oRecord) {
456
+ return oRecord.$AnnotationPath !== "@com.sap.vocabularies.UI.v1.Chart";
457
+ });
458
+ }
459
+
460
+ Object.keys(annotationObjects).forEach(function (annotationKey) {
461
+ var annotationObject = annotationObjects[annotationKey];
462
+
463
+ switch (annotationKey) {
464
+ case "@com.sap.vocabularies.UI.v1.HeaderFacets":
465
+ if (!oCapabilities.MicroChart) {
466
+ annotationObject = removeChartAnnotations(annotationObject);
467
+ }
468
+
469
+ break;
470
+
471
+ case "@com.sap.vocabularies.UI.v1.Identification":
472
+ if (!oCapabilities.IntentBasedNavigation) {
473
+ annotationObject = removeIBNAnnotations(annotationObject);
474
+ }
475
+
476
+ break;
477
+
478
+ case "@com.sap.vocabularies.UI.v1.LineItem":
479
+ if (!oCapabilities.IntentBasedNavigation) {
480
+ annotationObject = removeIBNAnnotations(annotationObject);
481
+ }
482
+
483
+ if (!oCapabilities.MicroChart) {
484
+ annotationObject = removeChartAnnotations(annotationObject);
485
+ }
486
+
487
+ break;
488
+
489
+ case "@com.sap.vocabularies.UI.v1.FieldGroup":
490
+ if (!oCapabilities.IntentBasedNavigation) {
491
+ annotationObject.Data = removeIBNAnnotations(annotationObject.Data);
492
+ }
493
+
494
+ if (!oCapabilities.MicroChart) {
495
+ annotationObject.Data = removeChartAnnotations(annotationObject.Data);
496
+ }
497
+
498
+ break;
499
+
500
+ case "@com.sap.vocabularies.UI.v1.PresentationVariant":
501
+ if (!oCapabilities.Chart && annotationObject.Visualizations) {
502
+ annotationObject.Visualizations = handlePresentationVariant(annotationObject.Visualizations);
503
+ }
504
+
505
+ break;
506
+
507
+ default:
508
+ break;
509
+ }
510
+
511
+ annotationObjects[annotationKey] = annotationObject;
512
+ var currentOutAnnotationObject = outAnnotationObject; // Check for annotation of annotation
513
+
514
+ var annotationOfAnnotationSplit = annotationKey.split("@");
515
+
516
+ if (annotationOfAnnotationSplit.length > 2) {
517
+ currentOutAnnotationObject = _this3.getOrCreateAnnotationList(annotationTarget + "@" + annotationOfAnnotationSplit[1], annotationLists);
518
+ annotationKey = annotationOfAnnotationSplit[2];
519
+ } else {
520
+ annotationKey = annotationOfAnnotationSplit[1];
521
+ }
522
+
523
+ var annotationQualifierSplit = annotationKey.split("#");
524
+ var qualifier = annotationQualifierSplit[1];
525
+ annotationKey = annotationQualifierSplit[0];
526
+ var parsedAnnotationObject = {
527
+ term: "".concat(annotationKey),
528
+ qualifier: qualifier
529
+ };
530
+ var currentAnnotationTarget = annotationTarget + "@" + parsedAnnotationObject.term;
531
+
532
+ if (qualifier) {
533
+ currentAnnotationTarget += "#" + qualifier;
534
+ }
535
+
536
+ var isCollection = false;
537
+
538
+ if (annotationObject === null) {
539
+ parsedAnnotationObject.value = {
540
+ type: "Bool",
541
+ Bool: annotationObject
542
+ };
543
+ } else if (typeof annotationObject === "string") {
544
+ parsedAnnotationObject.value = {
545
+ type: "String",
546
+ String: annotationObject
547
+ };
548
+ } else if (typeof annotationObject === "boolean") {
549
+ parsedAnnotationObject.value = {
550
+ type: "Bool",
551
+ Bool: annotationObject
552
+ };
553
+ } else if (typeof annotationObject === "number") {
554
+ parsedAnnotationObject.value = {
555
+ type: "Int",
556
+ Int: annotationObject
557
+ };
558
+ } else if (annotationObject.$If !== undefined) {
559
+ parsedAnnotationObject.value = {
560
+ type: "If",
561
+ If: annotationObject.$If
562
+ };
563
+ } else if (annotationObject.$And !== undefined) {
564
+ parsedAnnotationObject.value = {
565
+ type: "And",
566
+ And: annotationObject.$And
567
+ };
568
+ } else if (annotationObject.$Or !== undefined) {
569
+ parsedAnnotationObject.value = {
570
+ type: "Or",
571
+ Or: annotationObject.$Or
572
+ };
573
+ } else if (annotationObject.$Not !== undefined) {
574
+ parsedAnnotationObject.value = {
575
+ type: "Not",
576
+ Not: annotationObject.$Not
577
+ };
578
+ } else if (annotationObject.$Eq !== undefined) {
579
+ parsedAnnotationObject.value = {
580
+ type: "Eq",
581
+ Eq: annotationObject.$Eq
582
+ };
583
+ } else if (annotationObject.$Ne !== undefined) {
584
+ parsedAnnotationObject.value = {
585
+ type: "Ne",
586
+ Ne: annotationObject.$Ne
587
+ };
588
+ } else if (annotationObject.$Gt !== undefined) {
589
+ parsedAnnotationObject.value = {
590
+ type: "Gt",
591
+ Gt: annotationObject.$Gt
592
+ };
593
+ } else if (annotationObject.$Ge !== undefined) {
594
+ parsedAnnotationObject.value = {
595
+ type: "Ge",
596
+ Ge: annotationObject.$Ge
597
+ };
598
+ } else if (annotationObject.$Lt !== undefined) {
599
+ parsedAnnotationObject.value = {
600
+ type: "Lt",
601
+ Lt: annotationObject.$Lt
602
+ };
603
+ } else if (annotationObject.$Le !== undefined) {
604
+ parsedAnnotationObject.value = {
605
+ type: "Le",
606
+ Le: annotationObject.$Le
607
+ };
608
+ } else if (annotationObject.$Apply !== undefined) {
609
+ parsedAnnotationObject.value = {
610
+ type: "Apply",
611
+ Apply: annotationObject.$Apply,
612
+ Function: annotationObject.$Function
613
+ };
614
+ } else if (annotationObject.$Path !== undefined) {
615
+ parsedAnnotationObject.value = {
616
+ type: "Path",
617
+ Path: annotationObject.$Path
618
+ };
619
+ } else if (annotationObject.$AnnotationPath !== undefined) {
620
+ parsedAnnotationObject.value = {
621
+ type: "AnnotationPath",
622
+ AnnotationPath: annotationObject.$AnnotationPath
623
+ };
624
+ } else if (annotationObject.$Decimal !== undefined) {
625
+ parsedAnnotationObject.value = {
626
+ type: "Decimal",
627
+ Decimal: parseFloat(annotationObject.$Decimal)
628
+ };
629
+ } else if (annotationObject.$EnumMember !== undefined) {
630
+ parsedAnnotationObject.value = {
631
+ type: "EnumMember",
632
+ EnumMember: _this3.mapNameToAlias(annotationObject.$EnumMember.split("/")[0]) + "/" + annotationObject.$EnumMember.split("/")[1]
633
+ };
634
+ } else if (Array.isArray(annotationObject)) {
635
+ isCollection = true;
636
+ parsedAnnotationObject.collection = annotationObject.map(function (subAnnotationObject, subAnnotationIndex) {
637
+ return _this3.parseAnnotationObject(subAnnotationObject, currentAnnotationTarget + "/" + subAnnotationIndex, annotationLists, oCapabilities);
638
+ });
639
+
640
+ if (annotationObject.length > 0) {
641
+ if (annotationObject[0].hasOwnProperty("$PropertyPath")) {
642
+ parsedAnnotationObject.collection.type = "PropertyPath";
643
+ } else if (annotationObject[0].hasOwnProperty("$Path")) {
644
+ parsedAnnotationObject.collection.type = "Path";
645
+ } else if (annotationObject[0].hasOwnProperty("$NavigationPropertyPath")) {
646
+ parsedAnnotationObject.collection.type = "NavigationPropertyPath";
647
+ } else if (annotationObject[0].hasOwnProperty("$AnnotationPath")) {
648
+ parsedAnnotationObject.collection.type = "AnnotationPath";
649
+ } else if (annotationObject[0].hasOwnProperty("$Type")) {
650
+ parsedAnnotationObject.collection.type = "Record";
651
+ } else if (annotationObject[0].hasOwnProperty("$If")) {
652
+ parsedAnnotationObject.collection.type = "If";
653
+ } else if (annotationObject[0].hasOwnProperty("$Or")) {
654
+ parsedAnnotationObject.collection.type = "Or";
655
+ } else if (annotationObject[0].hasOwnProperty("$Eq")) {
656
+ parsedAnnotationObject.collection.type = "Eq";
657
+ } else if (annotationObject[0].hasOwnProperty("$Ne")) {
658
+ parsedAnnotationObject.collection.type = "Ne";
659
+ } else if (annotationObject[0].hasOwnProperty("$Not")) {
660
+ parsedAnnotationObject.collection.type = "Not";
661
+ } else if (annotationObject[0].hasOwnProperty("$Gt")) {
662
+ parsedAnnotationObject.collection.type = "Gt";
663
+ } else if (annotationObject[0].hasOwnProperty("$Ge")) {
664
+ parsedAnnotationObject.collection.type = "Ge";
665
+ } else if (annotationObject[0].hasOwnProperty("$Lt")) {
666
+ parsedAnnotationObject.collection.type = "Lt";
667
+ } else if (annotationObject[0].hasOwnProperty("$Le")) {
668
+ parsedAnnotationObject.collection.type = "Le";
669
+ } else if (annotationObject[0].hasOwnProperty("$And")) {
670
+ parsedAnnotationObject.collection.type = "And";
671
+ } else if (annotationObject[0].hasOwnProperty("$Apply")) {
672
+ parsedAnnotationObject.collection.type = "Apply";
673
+ } else if (typeof annotationObject[0] === "object") {
674
+ parsedAnnotationObject.collection.type = "Record";
675
+ } else {
676
+ parsedAnnotationObject.collection.type = "String";
677
+ }
678
+ }
679
+ } else {
680
+ var record = {
681
+ propertyValues: []
682
+ };
683
+
684
+ if (annotationObject.$Type) {
685
+ var typeValue = annotationObject.$Type;
686
+ record.type = "".concat(typeValue);
687
+ }
688
+
689
+ var propertyValues = [];
690
+ Object.keys(annotationObject).forEach(function (propertyKey) {
691
+ if (propertyKey !== "$Type" && !propertyKey.startsWith("@")) {
692
+ propertyValues.push(_this3.parsePropertyValue(annotationObject[propertyKey], propertyKey, currentAnnotationTarget, annotationLists, oCapabilities));
693
+ } else if (propertyKey.startsWith("@")) {
694
+ // Annotation of record
695
+ _this3.createAnnotationLists(_defineProperty({}, propertyKey, annotationObject[propertyKey]), currentAnnotationTarget, annotationLists, oCapabilities);
696
+ }
697
+ });
698
+ record.propertyValues = propertyValues;
699
+ parsedAnnotationObject.record = record;
700
+ }
701
+
702
+ parsedAnnotationObject.isCollection = isCollection;
703
+ currentOutAnnotationObject.annotations.push(parsedAnnotationObject);
704
+ });
705
+ },
706
+ parseProperty: function (oMetaModel, entityTypeObject, propertyName, annotationLists, oCapabilities) {
707
+ var propertyAnnotation = oMetaModel.getObject("/".concat(entityTypeObject.fullyQualifiedName, "/").concat(propertyName, "@"));
708
+ var propertyDefinition = oMetaModel.getObject("/".concat(entityTypeObject.fullyQualifiedName, "/").concat(propertyName));
709
+ var propertyObject = {
710
+ _type: "Property",
711
+ name: propertyName,
712
+ fullyQualifiedName: "".concat(entityTypeObject.fullyQualifiedName, "/").concat(propertyName),
713
+ type: propertyDefinition.$Type,
714
+ maxLength: propertyDefinition.$MaxLength,
715
+ precision: propertyDefinition.$Precision,
716
+ scale: propertyDefinition.$Scale,
717
+ nullable: propertyDefinition.$Nullable
718
+ };
719
+ this.createAnnotationLists(propertyAnnotation, propertyObject.fullyQualifiedName, annotationLists, oCapabilities);
720
+ return propertyObject;
721
+ },
722
+ parseNavigationProperty: function (oMetaModel, entityTypeObject, navPropertyName, annotationLists, oCapabilities) {
723
+ var navPropertyAnnotation = oMetaModel.getObject("/".concat(entityTypeObject.fullyQualifiedName, "/").concat(navPropertyName, "@"));
724
+ var navPropertyDefinition = oMetaModel.getObject("/".concat(entityTypeObject.fullyQualifiedName, "/").concat(navPropertyName));
725
+ var referentialConstraint = [];
726
+
727
+ if (navPropertyDefinition.$ReferentialConstraint) {
728
+ referentialConstraint = Object.keys(navPropertyDefinition.$ReferentialConstraint).map(function (sourcePropertyName) {
729
+ return {
730
+ sourceTypeName: entityTypeObject.name,
731
+ sourceProperty: sourcePropertyName,
732
+ targetTypeName: navPropertyDefinition.$Type,
733
+ targetProperty: navPropertyDefinition.$ReferentialConstraint[sourcePropertyName]
734
+ };
735
+ });
736
+ }
737
+
738
+ var navigationProperty = {
739
+ _type: "NavigationProperty",
740
+ name: navPropertyName,
741
+ fullyQualifiedName: "".concat(entityTypeObject.fullyQualifiedName, "/").concat(navPropertyName),
742
+ partner: navPropertyDefinition.$Partner,
743
+ isCollection: navPropertyDefinition.$isCollection ? navPropertyDefinition.$isCollection : false,
744
+ containsTarget: navPropertyDefinition.$ContainsTarget,
745
+ targetTypeName: navPropertyDefinition.$Type,
746
+ referentialConstraint: referentialConstraint
747
+ };
748
+ this.createAnnotationLists(navPropertyAnnotation, navigationProperty.fullyQualifiedName, annotationLists, oCapabilities);
749
+ return navigationProperty;
750
+ },
751
+ parseEntitySet: function (oMetaModel, entitySetName, annotationLists, entityContainerName, oCapabilities) {
752
+ var entitySetDefinition = oMetaModel.getObject("/".concat(entitySetName));
753
+ var entitySetAnnotation = oMetaModel.getObject("/".concat(entitySetName, "@"));
754
+ var entitySetObject = {
755
+ _type: "EntitySet",
756
+ name: entitySetName,
757
+ navigationPropertyBinding: {},
758
+ entityTypeName: entitySetDefinition.$Type,
759
+ fullyQualifiedName: "".concat(entityContainerName, "/").concat(entitySetName)
760
+ };
761
+ this.createAnnotationLists(entitySetAnnotation, entitySetObject.fullyQualifiedName, annotationLists, oCapabilities);
762
+ return entitySetObject;
763
+ },
764
+ parseSingleton: function (oMetaModel, singletonName, annotationLists, entityContainerName, oCapabilities) {
765
+ var singletonDefinition = oMetaModel.getObject("/".concat(singletonName));
766
+ var singletonAnnotation = oMetaModel.getObject("/".concat(singletonName, "@"));
767
+ var singletonObject = {
768
+ _type: "Singleton",
769
+ name: singletonName,
770
+ navigationPropertyBinding: {},
771
+ typeName: singletonDefinition.$Type,
772
+ fullyQualifiedName: "".concat(entityContainerName, "/").concat(singletonName),
773
+ nullable: true
774
+ };
775
+ this.createAnnotationLists(singletonAnnotation, singletonObject.fullyQualifiedName, annotationLists, oCapabilities);
776
+ return singletonObject;
777
+ },
778
+ parseEntityType: function (oMetaModel, entityTypeName, annotationLists, namespace, oCapabilities) {
779
+ var _this4 = this;
780
+
781
+ var entityTypeAnnotation = oMetaModel.getObject("/".concat(entityTypeName, "@"));
782
+ var entityTypeDefinition = oMetaModel.getObject("/".concat(entityTypeName));
783
+ var entityKeys = getEntityKeys(entityTypeDefinition);
784
+
785
+ function getEntityKeys(entityTypeDefinition) {
786
+ if (!entityTypeDefinition.$Key && entityTypeDefinition.$BaseType) {
787
+ return getEntityKeys(oMetaModel.getObject("/".concat(entityTypeDefinition.$BaseType)));
788
+ }
789
+
790
+ return entityTypeDefinition.$Key || []; //handling of entity types without key as well as basetype
791
+ }
792
+
793
+ var entityTypeObject = {
794
+ _type: "EntityType",
795
+ name: entityTypeName.replace(namespace + ".", ""),
796
+ fullyQualifiedName: entityTypeName,
797
+ keys: [],
798
+ entityProperties: [],
799
+ navigationProperties: []
800
+ };
801
+ this.createAnnotationLists(entityTypeAnnotation, entityTypeObject.fullyQualifiedName, annotationLists, oCapabilities);
802
+ var entityProperties = Object.keys(entityTypeDefinition).filter(function (propertyNameOrNot) {
803
+ if (propertyNameOrNot != "$Key" && propertyNameOrNot != "$kind") {
804
+ return entityTypeDefinition[propertyNameOrNot].$kind === "Property";
805
+ }
806
+ }).map(function (propertyName) {
807
+ return _this4.parseProperty(oMetaModel, entityTypeObject, propertyName, annotationLists, oCapabilities);
808
+ });
809
+ var navigationProperties = Object.keys(entityTypeDefinition).filter(function (propertyNameOrNot) {
810
+ if (propertyNameOrNot != "$Key" && propertyNameOrNot != "$kind") {
811
+ return entityTypeDefinition[propertyNameOrNot].$kind === "NavigationProperty";
812
+ }
813
+ }).map(function (navPropertyName) {
814
+ return _this4.parseNavigationProperty(oMetaModel, entityTypeObject, navPropertyName, annotationLists, oCapabilities);
815
+ });
816
+ entityTypeObject.keys = entityKeys.map(function (entityKey) {
817
+ return entityProperties.find(function (property) {
818
+ return property.name === entityKey;
819
+ });
820
+ }).filter(function (property) {
821
+ return property !== undefined;
822
+ });
823
+ entityTypeObject.entityProperties = entityProperties;
824
+ entityTypeObject.navigationProperties = navigationProperties;
825
+ return entityTypeObject;
826
+ },
827
+ parseComplexType: function (oMetaModel, complexTypeName, annotationLists, namespace, oCapabilities) {
828
+ var _this5 = this;
829
+
830
+ var complexTypeAnnotation = oMetaModel.getObject("/".concat(complexTypeName, "@"));
831
+ var complexTypeDefinition = oMetaModel.getObject("/".concat(complexTypeName));
832
+ var complexTypeObject = {
833
+ _type: "ComplexType",
834
+ name: complexTypeName.replace(namespace + ".", ""),
835
+ fullyQualifiedName: complexTypeName,
836
+ properties: [],
837
+ navigationProperties: []
838
+ };
839
+ this.createAnnotationLists(complexTypeAnnotation, complexTypeObject.fullyQualifiedName, annotationLists, oCapabilities);
840
+ var complexTypeProperties = Object.keys(complexTypeDefinition).filter(function (propertyNameOrNot) {
841
+ if (propertyNameOrNot != "$Key" && propertyNameOrNot != "$kind") {
842
+ return complexTypeDefinition[propertyNameOrNot].$kind === "Property";
843
+ }
844
+ }).map(function (propertyName) {
845
+ return _this5.parseProperty(oMetaModel, complexTypeObject, propertyName, annotationLists, oCapabilities);
846
+ });
847
+ complexTypeObject.properties = complexTypeProperties;
848
+ var complexTypeNavigationProperties = Object.keys(complexTypeDefinition).filter(function (propertyNameOrNot) {
849
+ if (propertyNameOrNot != "$Key" && propertyNameOrNot != "$kind") {
850
+ return complexTypeDefinition[propertyNameOrNot].$kind === "NavigationProperty";
851
+ }
852
+ }).map(function (navPropertyName) {
853
+ return _this5.parseNavigationProperty(oMetaModel, complexTypeObject, navPropertyName, annotationLists, oCapabilities);
854
+ });
855
+ complexTypeObject.navigationProperties = complexTypeNavigationProperties;
856
+ return complexTypeObject;
857
+ },
858
+ parseAction: function (actionName, actionRawData, namespace, entityContainerName) {
859
+ var actionEntityType = "";
860
+ var actionFQN = "".concat(actionName);
861
+ var actionShortName = actionName.substr(namespace.length + 1);
862
+
863
+ if (actionRawData.$IsBound) {
864
+ var bindingParameter = actionRawData.$Parameter[0];
865
+ actionEntityType = bindingParameter.$Type;
866
+
867
+ if (bindingParameter.$isCollection === true) {
868
+ actionFQN = "".concat(actionName, "(Collection(").concat(actionEntityType, "))");
869
+ } else {
870
+ actionFQN = "".concat(actionName, "(").concat(actionEntityType, ")");
871
+ }
872
+ } else {
873
+ actionFQN = "".concat(entityContainerName, "/").concat(actionShortName);
874
+ }
875
+
876
+ var parameters = actionRawData.$Parameter || [];
877
+ return {
878
+ _type: "Action",
879
+ name: actionShortName,
880
+ fullyQualifiedName: actionFQN,
881
+ isBound: actionRawData.$IsBound,
882
+ sourceType: actionEntityType,
883
+ returnType: actionRawData.$ReturnType ? actionRawData.$ReturnType.$Type : "",
884
+ parameters: parameters.map(function (param) {
885
+ return {
886
+ _type: "ActionParameter",
887
+ isEntitySet: param.$Type === actionRawData.$EntitySetPath,
888
+ fullyQualifiedName: "".concat(actionFQN, "/").concat(param.$Name),
889
+ type: param.$Type // TODO missing properties ?
890
+
891
+ };
892
+ })
893
+ };
894
+ },
895
+ parseEntityTypes: function (oMetaModel, oInCapabilities) {
896
+ var _this6 = this;
897
+
898
+ var oCapabilities;
899
+
900
+ if (!oInCapabilities) {
901
+ oCapabilities = DefaultEnvironmentCapabilities;
902
+ } else {
903
+ oCapabilities = oInCapabilities;
904
+ }
905
+
906
+ var oMetaModelData = oMetaModel.getObject("/$");
907
+ var oEntitySets = oMetaModel.getObject("/");
908
+ var annotationLists = [];
909
+ var entityTypes = [];
910
+ var entitySets = [];
911
+ var singletons = [];
912
+ var complexTypes = [];
913
+ var entityContainerName = oMetaModelData.$EntityContainer;
914
+ var namespace = "";
915
+ var schemaKeys = Object.keys(oMetaModelData).filter(function (metamodelKey) {
916
+ return oMetaModelData[metamodelKey].$kind === "Schema";
917
+ });
918
+
919
+ if (schemaKeys && schemaKeys.length > 0) {
920
+ namespace = schemaKeys[0].substr(0, schemaKeys[0].length - 1);
921
+ } else if (entityTypes && entityTypes.length) {
922
+ namespace = entityTypes[0].fullyQualifiedName.replace(entityTypes[0].name, "");
923
+ namespace = namespace.substr(0, namespace.length - 1);
924
+ }
925
+
926
+ Object.keys(oMetaModelData).filter(function (entityTypeName) {
927
+ return entityTypeName !== "$kind" && oMetaModelData[entityTypeName].$kind === "EntityType";
928
+ }).forEach(function (entityTypeName) {
929
+ var entityType = _this6.parseEntityType(oMetaModel, entityTypeName, annotationLists, namespace, oCapabilities);
930
+
931
+ entityType.entityProperties.forEach(function (entityProperty) {
932
+ if (!oMetaModelData.$Annotations[entityProperty.fullyQualifiedName]) {
933
+ oMetaModelData.$Annotations[entityProperty.fullyQualifiedName] = {};
934
+ }
935
+
936
+ if (!oMetaModelData.$Annotations[entityProperty.fullyQualifiedName]["@com.sap.vocabularies.UI.v1.DataFieldDefault"]) {
937
+ oMetaModelData.$Annotations[entityProperty.fullyQualifiedName]["@com.sap.vocabularies.UI.v1.DataFieldDefault"] = {
938
+ $Type: "com.sap.vocabularies.UI.v1.DataField",
939
+ Value: {
940
+ $Path: entityProperty.name
941
+ }
942
+ };
943
+
944
+ _this6.createAnnotationLists({
945
+ "@com.sap.vocabularies.UI.v1.DataFieldDefault": oMetaModelData.$Annotations[entityProperty.fullyQualifiedName]["@com.sap.vocabularies.UI.v1.DataFieldDefault"]
946
+ }, entityProperty.fullyQualifiedName, annotationLists, oCapabilities);
947
+ }
948
+ });
949
+ entityTypes.push(entityType);
950
+ });
951
+ Object.keys(oEntitySets).filter(function (entitySetName) {
952
+ return entitySetName !== "$kind" && oEntitySets[entitySetName].$kind === "EntitySet";
953
+ }).forEach(function (entitySetName) {
954
+ var entitySet = _this6.parseEntitySet(oMetaModel, entitySetName, annotationLists, entityContainerName, oCapabilities);
955
+
956
+ entitySets.push(entitySet);
957
+ });
958
+ Object.keys(oEntitySets).filter(function (singletonName) {
959
+ return singletonName !== "$kind" && oEntitySets[singletonName].$kind === "Singleton";
960
+ }).forEach(function (singletonName) {
961
+ var singleton = _this6.parseSingleton(oMetaModel, singletonName, annotationLists, entityContainerName, oCapabilities);
962
+
963
+ singletons.push(singleton);
964
+ });
965
+ Object.keys(oMetaModelData).filter(function (complexTypeName) {
966
+ return complexTypeName !== "$kind" && oMetaModelData[complexTypeName].$kind === "ComplexType";
967
+ }).forEach(function (complexTypeName) {
968
+ var complexType = _this6.parseComplexType(oMetaModel, complexTypeName, annotationLists, namespace, oCapabilities);
969
+
970
+ complexTypes.push(complexType);
971
+ });
972
+ var oEntityContainerName = Object.keys(oMetaModelData).find(function (entityContainerName) {
973
+ return entityContainerName !== "$kind" && oMetaModelData[entityContainerName].$kind === "EntityContainer";
974
+ });
975
+ var entityContainer = {};
976
+
977
+ if (oEntityContainerName) {
978
+ entityContainer = {
979
+ name: oEntityContainerName.replace(namespace + ".", ""),
980
+ fullyQualifiedName: oEntityContainerName
981
+ };
982
+ }
983
+
984
+ entitySets.forEach(function (entitySet) {
985
+ var navPropertyBindings = oMetaModelData[entityContainerName][entitySet.name].$NavigationPropertyBinding;
986
+
987
+ if (navPropertyBindings) {
988
+ Object.keys(navPropertyBindings).forEach(function (navPropName) {
989
+ var targetEntitySet = entitySets.find(function (entitySetName) {
990
+ return entitySetName.name === navPropertyBindings[navPropName];
991
+ });
992
+
993
+ if (targetEntitySet) {
994
+ entitySet.navigationPropertyBinding[navPropName] = targetEntitySet;
995
+ }
996
+ });
997
+ }
998
+ });
999
+ var actions = Object.keys(oMetaModelData).filter(function (key) {
1000
+ return Array.isArray(oMetaModelData[key]) && oMetaModelData[key].length > 0 && oMetaModelData[key][0].$kind === "Action";
1001
+ }).reduce(function (outActions, actionName) {
1002
+ var actions = oMetaModelData[actionName];
1003
+ actions.forEach(function (action) {
1004
+ outActions.push(_this6.parseAction(actionName, action, namespace, entityContainerName));
1005
+ });
1006
+ return outActions;
1007
+ }, []); // FIXME Crappy code to deal with annotations for functions
1008
+
1009
+ var annotations = oMetaModelData.$Annotations;
1010
+ var actionAnnotations = Object.keys(annotations).filter(function (target) {
1011
+ return target.indexOf("(") !== -1;
1012
+ });
1013
+ actionAnnotations.forEach(function (target) {
1014
+ _this6.createAnnotationLists(oMetaModelData.$Annotations[target], target, annotationLists, oCapabilities);
1015
+ });
1016
+ var actionsNameWithoutOverload = actions.map(function (action) {
1017
+ return action.fullyQualifiedName.split("(")[0];
1018
+ });
1019
+ actionsNameWithoutOverload.forEach(function (actionName) {
1020
+ if (annotations.hasOwnProperty(actionName)) {
1021
+ _this6.createAnnotationLists(oMetaModelData.$Annotations[actionName], actionName, annotationLists, oCapabilities);
1022
+ }
1023
+ });
1024
+ var entityContainerAnnotations = annotations[entityContainerName]; // Retrieve Entity Container annotations
1025
+
1026
+ if (entityContainerAnnotations) {
1027
+ this.createAnnotationLists(entityContainerAnnotations, entityContainerName, annotationLists, oCapabilities);
1028
+ } // Sort by target length
1029
+
1030
+
1031
+ annotationLists = annotationLists.sort(function (a, b) {
1032
+ return a.target.length >= b.target.length ? 1 : -1;
1033
+ });
1034
+ var references = [];
1035
+ return {
1036
+ identification: "metamodelResult",
1037
+ version: "4.0",
1038
+ schema: {
1039
+ entityContainer: entityContainer,
1040
+ entitySets: entitySets,
1041
+ entityTypes: entityTypes,
1042
+ complexTypes: complexTypes,
1043
+ singletons: singletons,
1044
+ associations: [],
1045
+ actions: actions,
1046
+ namespace: namespace,
1047
+ annotations: {
1048
+ "metamodelResult": annotationLists
1049
+ }
1050
+ },
1051
+ references: references
1052
+ };
1053
+ }
1054
+ };
1055
+ var mMetaModelMap = {};
1056
+ /**
1057
+ * Convert the ODataMetaModel into another format that allow for easy manipulation of the annotations.
1058
+ *
1059
+ * @param {ODataMetaModel} oMetaModel The current oDataMetaModel
1060
+ * @param oCapabilities The current capabilities
1061
+ * @returns {ConverterOutput} An object containing object like annotation
1062
+ */
1063
+
1064
+ function convertTypes(oMetaModel, oCapabilities) {
1065
+ var sMetaModelId = oMetaModel.id;
1066
+
1067
+ if (!mMetaModelMap.hasOwnProperty(sMetaModelId)) {
1068
+ var parsedOutput = MetaModelConverter.parseEntityTypes(oMetaModel, oCapabilities);
1069
+ mMetaModelMap[sMetaModelId] = AnnotationConverter.convertTypes(parsedOutput);
1070
+ }
1071
+
1072
+ return mMetaModelMap[sMetaModelId];
1073
+ }
1074
+
1075
+ _exports.convertTypes = convertTypes;
1076
+
1077
+ function deleteModelCacheData(oMetaModel) {
1078
+ delete mMetaModelMap[oMetaModel.id];
1079
+ }
1080
+
1081
+ _exports.deleteModelCacheData = deleteModelCacheData;
1082
+
1083
+ function convertMetaModelContext(oMetaModelContext) {
1084
+ var bIncludeVisitedObjects = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1085
+ var oConverterOutput = convertTypes(oMetaModelContext.getModel());
1086
+ var sPath = oMetaModelContext.getPath();
1087
+ var aPathSplit = sPath.split("/");
1088
+ var targetEntitySet = oConverterOutput.entitySets.find(function (entitySet) {
1089
+ return entitySet.name === aPathSplit[1];
1090
+ });
1091
+ var relativePath = aPathSplit.slice(2).join("/");
1092
+ var localObjects = [targetEntitySet];
1093
+
1094
+ while (relativePath && relativePath.length > 0 && relativePath.startsWith("$NavigationPropertyBinding")) {
1095
+ var _sNavPropToCheck;
1096
+
1097
+ var relativeSplit = relativePath.split("/");
1098
+ var idx = 0;
1099
+ var currentEntitySet = void 0,
1100
+ sNavPropToCheck = void 0;
1101
+ relativeSplit = relativeSplit.slice(1); // Removing "$NavigationPropertyBinding"
1102
+
1103
+ while (!currentEntitySet && relativeSplit.length > idx && relativeSplit[idx] !== "$NavigationPropertyBinding") {
1104
+ // Finding the correct entitySet for the navigaiton property binding example: "Set/_SalesOrder"
1105
+ sNavPropToCheck = relativeSplit.slice(0, idx + 1).join("/");
1106
+ currentEntitySet = targetEntitySet && targetEntitySet.navigationPropertyBinding[sNavPropToCheck];
1107
+ idx++;
1108
+ }
1109
+
1110
+ if (!currentEntitySet) {
1111
+ // Fall back to Single nav prop if entitySet is not found.
1112
+ sNavPropToCheck = relativeSplit[0];
1113
+ }
1114
+
1115
+ var aNavProps = ((_sNavPropToCheck = sNavPropToCheck) === null || _sNavPropToCheck === void 0 ? void 0 : _sNavPropToCheck.split("/")) || [];
1116
+ var targetEntityType = targetEntitySet && targetEntitySet.entityType;
1117
+
1118
+ var _iterator = _createForOfIteratorHelper(aNavProps),
1119
+ _step;
1120
+
1121
+ try {
1122
+ var _loop = function () {
1123
+ var sNavProp = _step.value;
1124
+ // Pushing all nav props to the visited objects. example: "Set", "_SalesOrder" for "Set/_SalesOrder"(in NavigationPropertyBinding)
1125
+ var targetNavProp = targetEntityType && targetEntityType.navigationProperties.find(function (navProp) {
1126
+ return navProp.name === sNavProp;
1127
+ });
1128
+
1129
+ if (targetNavProp) {
1130
+ localObjects.push(targetNavProp);
1131
+ targetEntityType = targetNavProp.targetType;
1132
+ } else {
1133
+ return "break";
1134
+ }
1135
+ };
1136
+
1137
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1138
+ var _ret = _loop();
1139
+
1140
+ if (_ret === "break") break;
1141
+ }
1142
+ } catch (err) {
1143
+ _iterator.e(err);
1144
+ } finally {
1145
+ _iterator.f();
1146
+ }
1147
+
1148
+ targetEntitySet = targetEntitySet && currentEntitySet || targetEntitySet && targetEntitySet.navigationPropertyBinding[relativeSplit[0]];
1149
+
1150
+ if (targetEntitySet) {
1151
+ // Pushing the target entitySet to visited objects
1152
+ localObjects.push(targetEntitySet);
1153
+ } // Re-calculating the relative path
1154
+
1155
+
1156
+ relativePath = relativeSplit.slice(aNavProps.length || 1).join("/");
1157
+ }
1158
+
1159
+ if (relativePath.startsWith("$Type")) {
1160
+ // We're anyway going to look on the entityType...
1161
+ relativePath = aPathSplit.slice(3).join("/");
1162
+ }
1163
+
1164
+ if (targetEntitySet && relativePath.length) {
1165
+ var oTarget = targetEntitySet.entityType.resolvePath(relativePath, bIncludeVisitedObjects);
1166
+
1167
+ if (oTarget) {
1168
+ if (bIncludeVisitedObjects) {
1169
+ oTarget.visitedObjects = localObjects.concat(oTarget.visitedObjects);
1170
+ }
1171
+ } else if (targetEntitySet.entityType && targetEntitySet.entityType.actions) {
1172
+ // if target is an action or an action parameter
1173
+ var actions = targetEntitySet.entityType && targetEntitySet.entityType.actions;
1174
+
1175
+ var _relativeSplit = relativePath.split("/");
1176
+
1177
+ if (actions[_relativeSplit[0]]) {
1178
+ var action = actions[_relativeSplit[0]];
1179
+
1180
+ if (_relativeSplit[1] && action.parameters) {
1181
+ var parameterName = _relativeSplit[1];
1182
+ var targetParameter = action.parameters.find(function (parameter) {
1183
+ return parameter.fullyQualifiedName.endsWith("/" + parameterName);
1184
+ });
1185
+ return targetParameter;
1186
+ } else if (relativePath.length === 1) {
1187
+ return action;
1188
+ }
1189
+ }
1190
+ }
1191
+
1192
+ return oTarget;
1193
+ } else {
1194
+ if (bIncludeVisitedObjects) {
1195
+ return {
1196
+ target: targetEntitySet,
1197
+ visitedObjects: localObjects
1198
+ };
1199
+ }
1200
+
1201
+ return targetEntitySet;
1202
+ }
1203
+ }
1204
+
1205
+ _exports.convertMetaModelContext = convertMetaModelContext;
1206
+
1207
+ function getInvolvedDataModelObjects(oMetaModelContext, oEntitySetMetaModelContext) {
1208
+ var metaModelContext = convertMetaModelContext(oMetaModelContext, true);
1209
+ var targetEntitySetLocation;
1210
+
1211
+ if (oEntitySetMetaModelContext && oEntitySetMetaModelContext.getPath() !== "/") {
1212
+ targetEntitySetLocation = getInvolvedDataModelObjects(oEntitySetMetaModelContext);
1213
+ }
1214
+
1215
+ return getInvolvedDataModelObjectFromPath(metaModelContext, targetEntitySetLocation);
1216
+ }
1217
+
1218
+ _exports.getInvolvedDataModelObjects = getInvolvedDataModelObjects;
1219
+
1220
+ function getInvolvedDataModelObjectFromPath(metaModelContext, targetEntitySetLocation) {
1221
+ var dataModelObjects = metaModelContext.visitedObjects.filter(function (visitedObject) {
1222
+ return visitedObject && visitedObject.hasOwnProperty("_type") && visitedObject._type !== "EntityType";
1223
+ });
1224
+
1225
+ if (metaModelContext.target && metaModelContext.target.hasOwnProperty("_type") && metaModelContext.target._type !== "EntityType") {
1226
+ dataModelObjects.push(metaModelContext.target);
1227
+ }
1228
+
1229
+ var navigationProperties = [];
1230
+ var rootEntitySet = dataModelObjects[0]; // currentEntitySet can be undefined.
1231
+
1232
+ var currentEntitySet = rootEntitySet;
1233
+ var currentEntityType = rootEntitySet.entityType;
1234
+ var i = 1;
1235
+ var currentObject;
1236
+ var navigatedPaths = [];
1237
+
1238
+ while (i < dataModelObjects.length) {
1239
+ currentObject = dataModelObjects[i++];
1240
+
1241
+ if (currentObject._type === "NavigationProperty") {
1242
+ navigatedPaths.push(currentObject.name);
1243
+ navigationProperties.push(currentObject);
1244
+ currentEntityType = currentObject.targetType;
1245
+
1246
+ if (currentEntitySet && currentEntitySet.navigationPropertyBinding.hasOwnProperty(navigatedPaths.join("/"))) {
1247
+ currentEntitySet = currentEntitySet.navigationPropertyBinding[currentObject.name];
1248
+ navigatedPaths = [];
1249
+ } else {
1250
+ currentEntitySet = undefined;
1251
+ }
1252
+ }
1253
+
1254
+ if (currentObject._type === "EntitySet") {
1255
+ currentEntitySet = currentObject;
1256
+ currentEntityType = currentEntitySet.entityType;
1257
+ }
1258
+ }
1259
+
1260
+ if (targetEntitySetLocation && targetEntitySetLocation.startingEntitySet !== rootEntitySet) {
1261
+ // In case the entityset is not starting from the same location it may mean that we are doing too much work earlier for some reason
1262
+ // As such we need to redefine the context source for the targetEntitySetLocation
1263
+ var startingIndex = dataModelObjects.indexOf(targetEntitySetLocation.startingEntitySet);
1264
+
1265
+ if (startingIndex !== -1) {
1266
+ // If it's not found I don't know what we can do (probably nothing)
1267
+ var requiredDataModelObjects = dataModelObjects.slice(0, startingIndex);
1268
+ targetEntitySetLocation.startingEntitySet = rootEntitySet;
1269
+ targetEntitySetLocation.navigationProperties = requiredDataModelObjects.filter(function (object) {
1270
+ return object._type === "NavigationProperty";
1271
+ }).concat(targetEntitySetLocation.navigationProperties);
1272
+ }
1273
+ }
1274
+
1275
+ var outDataModelPath = {
1276
+ startingEntitySet: rootEntitySet,
1277
+ targetEntitySet: currentEntitySet,
1278
+ targetEntityType: currentEntityType,
1279
+ targetObject: metaModelContext.target,
1280
+ navigationProperties: navigationProperties,
1281
+ contextLocation: targetEntitySetLocation
1282
+ };
1283
+
1284
+ if (!outDataModelPath.contextLocation) {
1285
+ outDataModelPath.contextLocation = outDataModelPath;
1286
+ }
1287
+
1288
+ return outDataModelPath;
1289
+ }
1290
+
1291
+ _exports.getInvolvedDataModelObjectFromPath = getInvolvedDataModelObjectFromPath;
1292
+ return _exports;
1293
+ }, false);
1294
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1ldGFNb2RlbENvbnZlcnRlci50cyJdLCJuYW1lcyI6WyJWT0NBQlVMQVJZX0FMSUFTIiwiRGVmYXVsdEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiQ2hhcnQiLCJNaWNyb0NoYXJ0IiwiVVNoZWxsIiwiSW50ZW50QmFzZWROYXZpZ2F0aW9uIiwiTWV0YU1vZGVsQ29udmVydGVyIiwicGFyc2VQcm9wZXJ0eVZhbHVlIiwiYW5ub3RhdGlvbk9iamVjdCIsInByb3BlcnR5S2V5IiwiY3VycmVudFRhcmdldCIsImFubm90YXRpb25zTGlzdHMiLCJvQ2FwYWJpbGl0aWVzIiwidmFsdWUiLCJjdXJyZW50UHJvcGVydHlUYXJnZXQiLCJ0eXBlIiwiTnVsbCIsIlN0cmluZyIsIkJvb2wiLCJJbnQiLCJBcnJheSIsImlzQXJyYXkiLCJDb2xsZWN0aW9uIiwibWFwIiwic3ViQW5ub3RhdGlvbk9iamVjdCIsInN1YkFubm90YXRpb25PYmplY3RJbmRleCIsInBhcnNlQW5ub3RhdGlvbk9iamVjdCIsImxlbmd0aCIsImhhc093blByb3BlcnR5IiwiJFBhdGgiLCJ1bmRlZmluZWQiLCJQYXRoIiwiJERlY2ltYWwiLCJEZWNpbWFsIiwicGFyc2VGbG9hdCIsIiRQcm9wZXJ0eVBhdGgiLCJQcm9wZXJ0eVBhdGgiLCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aCIsIk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgiLCIkSWYiLCJJZiIsIiRBbmQiLCJBbmQiLCIkT3IiLCJPciIsIiROb3QiLCJOb3QiLCIkRXEiLCJFcSIsIiROZSIsIk5lIiwiJEd0IiwiR3QiLCIkR2UiLCJHZSIsIiRMdCIsIkx0IiwiJExlIiwiTGUiLCIkQXBwbHkiLCJBcHBseSIsIkZ1bmN0aW9uIiwiJEZ1bmN0aW9uIiwiJEFubm90YXRpb25QYXRoIiwiQW5ub3RhdGlvblBhdGgiLCIkRW51bU1lbWJlciIsIkVudW1NZW1iZXIiLCJtYXBOYW1lVG9BbGlhcyIsInNwbGl0IiwiJFR5cGUiLCJSZWNvcmQiLCJuYW1lIiwiYW5ub3RhdGlvbk5hbWUiLCJwYXRoUGFydCIsImFubm9QYXJ0IiwibGFzdERvdCIsImxhc3RJbmRleE9mIiwic3Vic3RyIiwiY3VycmVudE9iamVjdFRhcmdldCIsInBhcnNlZEFubm90YXRpb25PYmplY3QiLCJwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbiIsImNvbGxlY3Rpb24iLCJzdWJBbm5vdGF0aW9uSW5kZXgiLCJ0eXBlVmFsdWUiLCJwcm9wZXJ0eVZhbHVlcyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwic3RhcnRzV2l0aCIsInB1c2giLCJjcmVhdGVBbm5vdGF0aW9uTGlzdHMiLCJnZXRPckNyZWF0ZUFubm90YXRpb25MaXN0IiwidGFyZ2V0IiwicG90ZW50aWFsVGFyZ2V0IiwiZmluZCIsImFubm90YXRpb25MaXN0IiwiYW5ub3RhdGlvbnMiLCJhbm5vdGF0aW9uT2JqZWN0cyIsImFubm90YXRpb25UYXJnZXQiLCJhbm5vdGF0aW9uTGlzdHMiLCJvdXRBbm5vdGF0aW9uT2JqZWN0IiwicmVtb3ZlQ2hhcnRBbm5vdGF0aW9ucyIsImZpbHRlciIsIm9SZWNvcmQiLCJUYXJnZXQiLCJpbmRleE9mIiwicmVtb3ZlSUJOQW5ub3RhdGlvbnMiLCJoYW5kbGVQcmVzZW50YXRpb25WYXJpYW50IiwiYW5ub3RhdGlvbktleSIsIkRhdGEiLCJWaXN1YWxpemF0aW9ucyIsImN1cnJlbnRPdXRBbm5vdGF0aW9uT2JqZWN0IiwiYW5ub3RhdGlvbk9mQW5ub3RhdGlvblNwbGl0IiwiYW5ub3RhdGlvblF1YWxpZmllclNwbGl0IiwicXVhbGlmaWVyIiwidGVybSIsImN1cnJlbnRBbm5vdGF0aW9uVGFyZ2V0IiwiaXNDb2xsZWN0aW9uIiwicmVjb3JkIiwicGFyc2VQcm9wZXJ0eSIsIm9NZXRhTW9kZWwiLCJlbnRpdHlUeXBlT2JqZWN0IiwicHJvcGVydHlOYW1lIiwicHJvcGVydHlBbm5vdGF0aW9uIiwiZ2V0T2JqZWN0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwicHJvcGVydHlEZWZpbml0aW9uIiwicHJvcGVydHlPYmplY3QiLCJfdHlwZSIsIm1heExlbmd0aCIsIiRNYXhMZW5ndGgiLCJwcmVjaXNpb24iLCIkUHJlY2lzaW9uIiwic2NhbGUiLCIkU2NhbGUiLCJudWxsYWJsZSIsIiROdWxsYWJsZSIsInBhcnNlTmF2aWdhdGlvblByb3BlcnR5IiwibmF2UHJvcGVydHlOYW1lIiwibmF2UHJvcGVydHlBbm5vdGF0aW9uIiwibmF2UHJvcGVydHlEZWZpbml0aW9uIiwicmVmZXJlbnRpYWxDb25zdHJhaW50IiwiJFJlZmVyZW50aWFsQ29uc3RyYWludCIsInNvdXJjZVByb3BlcnR5TmFtZSIsInNvdXJjZVR5cGVOYW1lIiwic291cmNlUHJvcGVydHkiLCJ0YXJnZXRUeXBlTmFtZSIsInRhcmdldFByb3BlcnR5IiwibmF2aWdhdGlvblByb3BlcnR5IiwicGFydG5lciIsIiRQYXJ0bmVyIiwiJGlzQ29sbGVjdGlvbiIsImNvbnRhaW5zVGFyZ2V0IiwiJENvbnRhaW5zVGFyZ2V0IiwicGFyc2VFbnRpdHlTZXQiLCJlbnRpdHlTZXROYW1lIiwiZW50aXR5Q29udGFpbmVyTmFtZSIsImVudGl0eVNldERlZmluaXRpb24iLCJlbnRpdHlTZXRBbm5vdGF0aW9uIiwiZW50aXR5U2V0T2JqZWN0IiwibmF2aWdhdGlvblByb3BlcnR5QmluZGluZyIsImVudGl0eVR5cGVOYW1lIiwicGFyc2VTaW5nbGV0b24iLCJzaW5nbGV0b25OYW1lIiwic2luZ2xldG9uRGVmaW5pdGlvbiIsInNpbmdsZXRvbkFubm90YXRpb24iLCJzaW5nbGV0b25PYmplY3QiLCJ0eXBlTmFtZSIsInBhcnNlRW50aXR5VHlwZSIsIm5hbWVzcGFjZSIsImVudGl0eVR5cGVBbm5vdGF0aW9uIiwiZW50aXR5VHlwZURlZmluaXRpb24iLCJlbnRpdHlLZXlzIiwiZ2V0RW50aXR5S2V5cyIsIiRLZXkiLCIkQmFzZVR5cGUiLCJyZXBsYWNlIiwiZW50aXR5UHJvcGVydGllcyIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwicHJvcGVydHlOYW1lT3JOb3QiLCIka2luZCIsImVudGl0eUtleSIsInByb3BlcnR5IiwicGFyc2VDb21wbGV4VHlwZSIsImNvbXBsZXhUeXBlTmFtZSIsImNvbXBsZXhUeXBlQW5ub3RhdGlvbiIsImNvbXBsZXhUeXBlRGVmaW5pdGlvbiIsImNvbXBsZXhUeXBlT2JqZWN0IiwicHJvcGVydGllcyIsImNvbXBsZXhUeXBlUHJvcGVydGllcyIsImNvbXBsZXhUeXBlTmF2aWdhdGlvblByb3BlcnRpZXMiLCJwYXJzZUFjdGlvbiIsImFjdGlvbk5hbWUiLCJhY3Rpb25SYXdEYXRhIiwiYWN0aW9uRW50aXR5VHlwZSIsImFjdGlvbkZRTiIsImFjdGlvblNob3J0TmFtZSIsIiRJc0JvdW5kIiwiYmluZGluZ1BhcmFtZXRlciIsIiRQYXJhbWV0ZXIiLCJwYXJhbWV0ZXJzIiwiaXNCb3VuZCIsInNvdXJjZVR5cGUiLCJyZXR1cm5UeXBlIiwiJFJldHVyblR5cGUiLCJwYXJhbSIsImlzRW50aXR5U2V0IiwiJEVudGl0eVNldFBhdGgiLCIkTmFtZSIsInBhcnNlRW50aXR5VHlwZXMiLCJvSW5DYXBhYmlsaXRpZXMiLCJvTWV0YU1vZGVsRGF0YSIsIm9FbnRpdHlTZXRzIiwiZW50aXR5VHlwZXMiLCJlbnRpdHlTZXRzIiwic2luZ2xldG9ucyIsImNvbXBsZXhUeXBlcyIsIiRFbnRpdHlDb250YWluZXIiLCJzY2hlbWFLZXlzIiwibWV0YW1vZGVsS2V5IiwiZW50aXR5VHlwZSIsImVudGl0eVByb3BlcnR5IiwiJEFubm90YXRpb25zIiwiVmFsdWUiLCJlbnRpdHlTZXQiLCJzaW5nbGV0b24iLCJjb21wbGV4VHlwZSIsIm9FbnRpdHlDb250YWluZXJOYW1lIiwiZW50aXR5Q29udGFpbmVyIiwibmF2UHJvcGVydHlCaW5kaW5ncyIsIiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nIiwibmF2UHJvcE5hbWUiLCJ0YXJnZXRFbnRpdHlTZXQiLCJhY3Rpb25zIiwia2V5IiwicmVkdWNlIiwib3V0QWN0aW9ucyIsImFjdGlvbiIsImFjdGlvbkFubm90YXRpb25zIiwiYWN0aW9uc05hbWVXaXRob3V0T3ZlcmxvYWQiLCJlbnRpdHlDb250YWluZXJBbm5vdGF0aW9ucyIsInNvcnQiLCJhIiwiYiIsInJlZmVyZW5jZXMiLCJpZGVudGlmaWNhdGlvbiIsInZlcnNpb24iLCJzY2hlbWEiLCJhc3NvY2lhdGlvbnMiLCJtTWV0YU1vZGVsTWFwIiwiY29udmVydFR5cGVzIiwic01ldGFNb2RlbElkIiwiaWQiLCJwYXJzZWRPdXRwdXQiLCJBbm5vdGF0aW9uQ29udmVydGVyIiwiZGVsZXRlTW9kZWxDYWNoZURhdGEiLCJjb252ZXJ0TWV0YU1vZGVsQ29udGV4dCIsIm9NZXRhTW9kZWxDb250ZXh0IiwiYkluY2x1ZGVWaXNpdGVkT2JqZWN0cyIsIm9Db252ZXJ0ZXJPdXRwdXQiLCJnZXRNb2RlbCIsInNQYXRoIiwiZ2V0UGF0aCIsImFQYXRoU3BsaXQiLCJyZWxhdGl2ZVBhdGgiLCJzbGljZSIsImpvaW4iLCJsb2NhbE9iamVjdHMiLCJyZWxhdGl2ZVNwbGl0IiwiaWR4IiwiY3VycmVudEVudGl0eVNldCIsInNOYXZQcm9wVG9DaGVjayIsImFOYXZQcm9wcyIsInRhcmdldEVudGl0eVR5cGUiLCJzTmF2UHJvcCIsInRhcmdldE5hdlByb3AiLCJuYXZQcm9wIiwidGFyZ2V0VHlwZSIsIm9UYXJnZXQiLCJyZXNvbHZlUGF0aCIsInZpc2l0ZWRPYmplY3RzIiwiY29uY2F0IiwicGFyYW1ldGVyTmFtZSIsInRhcmdldFBhcmFtZXRlciIsInBhcmFtZXRlciIsImVuZHNXaXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwib0VudGl0eVNldE1ldGFNb2RlbENvbnRleHQiLCJtZXRhTW9kZWxDb250ZXh0IiwidGFyZ2V0RW50aXR5U2V0TG9jYXRpb24iLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdEZyb21QYXRoIiwiZGF0YU1vZGVsT2JqZWN0cyIsInZpc2l0ZWRPYmplY3QiLCJyb290RW50aXR5U2V0IiwiY3VycmVudEVudGl0eVR5cGUiLCJpIiwiY3VycmVudE9iamVjdCIsIm5hdmlnYXRlZFBhdGhzIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJzdGFydGluZ0luZGV4IiwicmVxdWlyZWREYXRhTW9kZWxPYmplY3RzIiwib2JqZWN0Iiwib3V0RGF0YU1vZGVsUGF0aCIsInRhcmdldE9iamVjdCIsImNvbnRleHRMb2NhdGlvbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQSxNQUFNQSxnQkFBcUIsR0FBRztBQUM3QixpQ0FBNkIsY0FEQTtBQUU3Qix5QkFBcUIsTUFGUTtBQUc3Qiw2QkFBeUIsVUFISTtBQUk3QixzQ0FBa0MsUUFKTDtBQUs3QixrQ0FBOEIsSUFMRDtBQU03Qix1Q0FBbUMsU0FOTjtBQU83Qix5Q0FBcUMsV0FQUjtBQVE3Qiw0Q0FBd0MsY0FSWDtBQVM3Qiw2Q0FBeUM7QUFUWixHQUE5QjtBQW1CTyxNQUFNQyw4QkFBOEIsR0FBRztBQUM3Q0MsSUFBQUEsS0FBSyxFQUFFLElBRHNDO0FBRTdDQyxJQUFBQSxVQUFVLEVBQUUsSUFGaUM7QUFHN0NDLElBQUFBLE1BQU0sRUFBRSxJQUhxQztBQUk3Q0MsSUFBQUEscUJBQXFCLEVBQUU7QUFKc0IsR0FBdkM7O0FBeUJQLE1BQU1DLGtCQUFrQixHQUFHO0FBQzFCQyxJQUFBQSxrQkFEMEIsWUFFekJDLGdCQUZ5QixFQUd6QkMsV0FIeUIsRUFJekJDLGFBSnlCLEVBS3pCQyxnQkFMeUIsRUFNekJDLGFBTnlCLEVBT25CO0FBQUE7O0FBQ04sVUFBSUMsS0FBSjtBQUNBLFVBQU1DLHFCQUE2QixHQUFHSixhQUFhLEdBQUcsR0FBaEIsR0FBc0JELFdBQTVEOztBQUNBLFVBQUlELGdCQUFnQixLQUFLLElBQXpCLEVBQStCO0FBQzlCSyxRQUFBQSxLQUFLLEdBQUc7QUFBRUUsVUFBQUEsSUFBSSxFQUFFLE1BQVI7QUFBZ0JDLFVBQUFBLElBQUksRUFBRTtBQUF0QixTQUFSO0FBQ0EsT0FGRCxNQUVPLElBQUksT0FBT1IsZ0JBQVAsS0FBNEIsUUFBaEMs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QUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxJQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxJQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsTUFBbkMsQ0FBSixFQUFnRDtBQUNyRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxLQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxJQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxJQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxJQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFB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LCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFubm90YXRpb24sIEFubm90YXRpb25MaXN0LCBBbm5vdGF0aW9uUmVjb3JkLCBFeHByZXNzaW9uLCBQYXJzZXJPdXRwdXQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbi8vIFRoaXMgZmlsZSBpcyByZXRyaWV2ZWQgZnJvbSBAc2FwLXV4L2Fubm90YXRpb24tY29udmVydGVyLCBzaGFyZWQgY29kZSB3aXRoIHRvb2wgc3VpdGVcbmltcG9ydCB7IEFubm90YXRpb25Db252ZXJ0ZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb21tb25cIjtcbmltcG9ydCB7IE9EYXRhTWV0YU1vZGVsIH0gZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NFwiO1xuaW1wb3J0IHtcblx0Q29udmVydGVyT3V0cHV0LFxuXHRFbnRpdHlTZXQgYXMgX0VudGl0eVNldCxcblx0RW50aXR5VHlwZSBhcyBfRW50aXR5VHlwZSxcblx0TmF2aWdhdGlvblByb3BlcnR5IGFzIF9OYXZpZ2F0aW9uUHJvcGVydHlcbn0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7XG5cdEVudGl0eVR5cGUsXG5cdEVudGl0eVNldCxcblx0UHJvcGVydHksXG5cdENvbXBsZXhUeXBlLFxuXHRSZWZlcmVudGlhbENvbnN0cmFpbnQsXG5cdFY0TmF2aWdhdGlvblByb3BlcnR5LFxuXHRBY3Rpb24sXG5cdFJlZmVyZW5jZSxcblx0RW50aXR5Q29udGFpbmVyLFxuXHRTaW5nbGV0b25cbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL2Rpc3QvUGFyc2VyXCI7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcInNhcC91aS9tb2RlbFwiO1xuaW1wb3J0IHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcblxuY29uc3QgVk9DQUJVTEFSWV9BTElBUzogYW55ID0ge1xuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjFcIjogXCJDYXBhYmlsaXRpZXNcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMVwiOiBcIkNvcmVcIixcblx0XCJPcmcuT0RhdGEuTWVhc3VyZXMuVjFcIjogXCJNZWFzdXJlc1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MVwiOiBcIkNvbW1vblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxXCI6IFwiVUlcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxXCI6IFwiU2Vzc2lvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkFuYWx5dGljcy52MVwiOiBcIkFuYWx5dGljc1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlBlcnNvbmFsRGF0YS52MVwiOiBcIlBlcnNvbmFsRGF0YVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjFcIjogXCJDb21tdW5pY2F0aW9uXCJcbn07XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50Q2FwYWJpbGl0aWVzID0ge1xuXHRDaGFydDogYm9vbGVhbjtcblx0TWljcm9DaGFydDogYm9vbGVhbjtcblx0VVNoZWxsOiBib29sZWFuO1xuXHRJbnRlbnRCYXNlZE5hdmlnYXRpb246IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEVudmlyb25tZW50Q2FwYWJpbGl0aWVzID0ge1xuXHRDaGFydDogdHJ1ZSxcblx0TWljcm9DaGFydDogdHJ1ZSxcblx0VVNoZWxsOiB0cnVlLFxuXHRJbnRlbnRCYXNlZE5hdmlnYXRpb246IHRydWVcbn07XG5cbnR5cGUgTWV0YU1vZGVsQWN0aW9uID0ge1xuXHQka2luZDogXCJBY3Rpb25cIjtcblx0JElzQm91bmQ6IGJvb2xlYW47XG5cdCRFbnRpdHlTZXRQYXRoOiBzdHJpbmc7XG5cdCRQYXJhbWV0ZXI6IHtcblx0XHQkVHlwZTogc3RyaW5nO1xuXHRcdCROYW1lOiBzdHJpbmc7XG5cdFx0JE51bGxhYmxlPzogYm9vbGVhbjtcblx0XHQkTWF4TGVuZ3RoPzogbnVtYmVyO1xuXHRcdCRQcmVjaXNpb24/OiBudW1iZXI7XG5cdFx0JFNjYWxlPzogbnVtYmVyO1xuXHRcdCRpc0NvbGxlY3Rpb24/OiBib29sZWFuO1xuXHR9W107XG5cdCRSZXR1cm5UeXBlOiB7XG5cdFx0JFR5cGU6IHN0cmluZztcblx0fTtcbn07XG5cbmNvbnN0IE1ldGFNb2RlbENvbnZlcnRlciA9IHtcblx0cGFyc2VQcm9wZXJ0eVZhbHVlKFxuXHRcdGFubm90YXRpb25PYmplY3Q6IGFueSxcblx0XHRwcm9wZXJ0eUtleTogc3RyaW5nLFxuXHRcdGN1cnJlbnRUYXJnZXQ6IHN0cmluZyxcblx0XHRhbm5vdGF0aW9uc0xpc3RzOiBhbnlbXSxcblx0XHRvQ2FwYWJpbGl0aWVzOiBFbnZpcm9ubWVudENhcGFiaWxpdGllc1xuXHQpOiBhbnkge1xuXHRcdGxldCB2YWx1ZTtcblx0XHRjb25zdCBjdXJyZW50UHJvcGVydHlUYXJnZXQ6IHN0cmluZyA9IGN1cnJlbnRUYXJnZXQgKyBcIi9cIiArIHByb3BlcnR5S2V5O1xuXHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0ID09PSBudWxsKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJOdWxsXCIsIE51bGw6IG51bGwgfTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBhbm5vdGF0aW9uT2JqZWN0ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJTdHJpbmdcIiwgU3RyaW5nOiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgYW5ub3RhdGlvbk9iamVjdCA9PT0gXCJib29sZWFuXCIpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkJvb2xcIiwgQm9vbDogYW5ub3RhdGlvbk9iamVjdCB9O1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIGFubm90YXRpb25PYmplY3QgPT09IFwibnVtYmVyXCIpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkludFwiLCBJbnQ6IGFubm90YXRpb25PYmplY3QgfTtcblx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYW5ub3RhdGlvbk9iamVjdCkpIHtcblx0XHRcdHZhbHVlID0ge1xuXHRcdFx0XHR0eXBlOiBcIkNvbGxlY3Rpb25cIixcblx0XHRcdFx0Q29sbGVjdGlvbjogYW5ub3RhdGlvbk9iamVjdC5tYXAoKHN1YkFubm90YXRpb25PYmplY3QsIHN1YkFubm90YXRpb25PYmplY3RJbmRleCkgPT5cblx0XHRcdFx0XHR0aGlzLnBhcnNlQW5ub3RhdGlvbk9iamVjdChcblx0XHRcdFx0XHRcdHN1YkFubm90YXRpb25PYmplY3QsXG5cdFx0XHRcdFx0XHRjdXJyZW50UHJvcGVydHlUYXJnZXQgKyBcIi9cIiArIHN1YkFubm90YXRpb25PYmplY3RJbmRleCxcblx0XHRcdFx0XHRcdGFubm90YXRpb25zTGlzdHMsXG5cdFx0XHRcdFx0XHRvQ2FwYWJpbGl0aWVzXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHR9O1xuXHRcdFx0aWYgKGFubm90YXRpb25PYmplY3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRQcm9wZXJ0eVBhdGhcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkUGF0aFwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiUGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkQW5ub3RhdGlvblBhdGhcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkFubm90YXRpb25QYXRoXCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRUeXBlXCIpKSB7XG5cdFx0XHRcdFx0KHZhbHVlLkNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJSZWNvcmRcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJElmXCIpKSB7XG5cdFx0XHRcdFx0KHZhbHVlLkNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJJZlwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkT3JcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIk9yXCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRBbmRcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkFuZFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkRXFcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkVxXCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiROZVwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTmVcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJE5vdFwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTm90XCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRHdFwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiR3RcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEdlXCIpKSB7XG5cdFx0XHRcdFx0KHZhbHVlLkNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJHZVwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTHRcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkx0XCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRMZVwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTGVcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEFwcGx5XCIpKSB7XG5cdFx0XHRcdFx0KHZhbHVlLkNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJBcHBseVwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBhbm5vdGF0aW9uT2JqZWN0WzBdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRcdFx0Ly8gJFR5cGUgaXMgb3B0aW9uYWwuLi5cblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlJlY29yZFwiO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiU3RyaW5nXCI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJFBhdGggIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dmFsdWUgPSB7IHR5cGU6IFwiUGF0aFwiLCBQYXRoOiBhbm5vdGF0aW9uT2JqZWN0LiRQYXRoIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiREZWNpbWFsICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkRlY2ltYWxcIiwgRGVjaW1hbDogcGFyc2VGbG9hdChhbm5vdGF0aW9uT2JqZWN0LiREZWNpbWFsKSB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kUHJvcGVydHlQYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIlByb3BlcnR5UGF0aFwiLCBQcm9wZXJ0eVBhdGg6IGFubm90YXRpb25PYmplY3QuJFByb3BlcnR5UGF0aCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTmF2aWdhdGlvblByb3BlcnR5UGF0aCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHtcblx0XHRcdFx0dHlwZTogXCJOYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCIsXG5cdFx0XHRcdE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGg6IGFubm90YXRpb25PYmplY3QuJE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcblx0XHRcdH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRJZiAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJJZlwiLCBJZjogYW5ub3RhdGlvbk9iamVjdC4kSWYgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEFuZCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJBbmRcIiwgQW5kOiBhbm5vdGF0aW9uT2JqZWN0LiRBbmQgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJE9yICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIk9yXCIsIE9yOiBhbm5vdGF0aW9uT2JqZWN0LiRPciB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTm90ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIk5vdFwiLCBOb3Q6IGFubm90YXRpb25PYmplY3QuJE5vdCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kRXEgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dmFsdWUgPSB7IHR5cGU6IFwiRXFcIiwgRXE6IGFubm90YXRpb25PYmplY3QuJEVxIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiROZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJOZVwiLCBOZTogYW5ub3RhdGlvbk9iamVjdC4kTmUgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEd0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkd0XCIsIEd0OiBhbm5vdGF0aW9uT2JqZWN0LiRHdCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kR2UgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dmFsdWUgPSB7IHR5cGU6IFwiR2VcIiwgR2U6IGFubm90YXRpb25PYmplY3QuJEdlIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRMdCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJMdFwiLCBMdDogYW5ub3RhdGlvbk9iamVjdC4kTHQgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJExlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkxlXCIsIExlOiBhbm5vdGF0aW9uT2JqZWN0LiRMZSB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kQXBwbHkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dmFsdWUgPSB7IHR5cGU6IFwiQXBwbHlcIiwgQXBwbHk6IGFubm90YXRpb25PYmplY3QuJEFwcGx5LCBGdW5jdGlvbjogYW5ub3RhdGlvbk9iamVjdC4kRnVuY3Rpb24gfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEFubm90YXRpb25QYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkFubm90YXRpb25QYXRoXCIsIEFubm90YXRpb25QYXRoOiBhbm5vdGF0aW9uT2JqZWN0LiRBbm5vdGF0aW9uUGF0aCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kRW51bU1lbWJlciAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHtcblx0XHRcdFx0dHlwZTogXCJFbnVtTWVtYmVyXCIsXG5cdFx0XHRcdEVudW1NZW1iZXI6XG5cdFx0XHRcdFx0dGhpcy5tYXBOYW1lVG9BbGlhcyhhbm5vdGF0aW9uT2JqZWN0LiRFbnVtTWVtYmVyLnNwbGl0KFwiL1wiKVswXSkgKyBcIi9cIiArIGFubm90YXRpb25PYmplY3QuJEVudW1NZW1iZXIuc3BsaXQoXCIvXCIpWzFdXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kVHlwZSkge1xuXHRcdFx0dmFsdWUgPSB7XG5cdFx0XHRcdHR5cGU6IFwiUmVjb3JkXCIsXG5cdFx0XHRcdFJlY29yZDogdGhpcy5wYXJzZUFubm90YXRpb25PYmplY3QoYW5ub3RhdGlvbk9iamVjdCwgY3VycmVudFRhcmdldCwgYW5ub3RhdGlvbnNMaXN0cywgb0NhcGFiaWxpdGllcylcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZhbHVlID0ge1xuXHRcdFx0XHR0eXBlOiBcIlJlY29yZFwiLFxuXHRcdFx0XHRSZWNvcmQ6IHRoaXMucGFyc2VBbm5vdGF0aW9uT2JqZWN0KGFubm90YXRpb25PYmplY3QsIGN1cnJlbnRUYXJnZXQsIGFubm90YXRpb25zTGlzdHMsIG9DYXBhYmlsaXRpZXMpXG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdHJldHVybiB7XG5cdFx0XHRuYW1lOiBwcm9wZXJ0eUtleSxcblx0XHRcdHZhbHVlXG5cdFx0fTtcblx0fSxcblx0bWFwTmFtZVRvQWxpYXMoYW5ub3RhdGlvbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0bGV0IFtwYXRoUGFydCwgYW5ub1BhcnRdID0gYW5ub3RhdGlvbk5hbWUuc3BsaXQoXCJAXCIpO1xuXHRcdGlmICghYW5ub1BhcnQpIHtcblx0XHRcdGFubm9QYXJ0ID0gcGF0aFBhcnQ7XG5cdFx0XHRwYXRoUGFydCA9IFwiXCI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHBhdGhQYXJ0ICs9IFwiQFwiO1xuXHRcdH1cblx0XHRjb25zdCBsYXN0RG90ID0gYW5ub1BhcnQubGFzdEluZGV4T2YoXCIuXCIpO1xuXHRcdHJldHVybiBwYXRoUGFydCArIFZPQ0FCVUxBUllfQUxJQVNbYW5ub1BhcnQuc3Vic3RyKDAsIGxhc3REb3QpXSArIFwiLlwiICsgYW5ub1BhcnQuc3Vic3RyKGxhc3REb3QgKyAxKTtcblx0fSxcblx0cGFyc2VBbm5vdGF0aW9uT2JqZWN0KFxuXHRcdGFubm90YXRpb25PYmplY3Q6IGFueSxcblx0XHRjdXJyZW50T2JqZWN0VGFyZ2V0OiBzdHJpbmcsXG5cdFx0YW5ub3RhdGlvbnNMaXN0czogYW55W10sXG5cdFx0b0NhcGFiaWxpdGllczogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNcblx0KTogRXhwcmVzc2lvbiB8IEFubm90YXRpb25SZWNvcmQgfCBBbm5vdGF0aW9uIHtcblx0XHRsZXQgcGFyc2VkQW5ub3RhdGlvbk9iamVjdDogYW55ID0ge307XG5cdFx0aWYgKGFubm90YXRpb25PYmplY3QgPT09IG51bGwpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiTnVsbFwiLCBOdWxsOiBudWxsIH07XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgYW5ub3RhdGlvbk9iamVjdCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdCA9IHsgdHlwZTogXCJTdHJpbmdcIiwgU3RyaW5nOiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgYW5ub3RhdGlvbk9iamVjdCA9PT0gXCJib29sZWFuXCIpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiQm9vbFwiLCBCb29sOiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgYW5ub3RhdGlvbk9iamVjdCA9PT0gXCJudW1iZXJcIikge1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdCA9IHsgdHlwZTogXCJJbnRcIiwgSW50OiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRBbm5vdGF0aW9uUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIkFubm90YXRpb25QYXRoXCIsIEFubm90YXRpb25QYXRoOiBhbm5vdGF0aW9uT2JqZWN0LiRBbm5vdGF0aW9uUGF0aCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIlBhdGhcIiwgUGF0aDogYW5ub3RhdGlvbk9iamVjdC4kUGF0aCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kRGVjaW1hbCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIkRlY2ltYWxcIiwgRGVjaW1hbDogcGFyc2VGbG9hdChhbm5vdGF0aW9uT2JqZWN0LiREZWNpbWFsKSB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kUHJvcGVydHlQYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiUHJvcGVydHlQYXRoXCIsIFByb3BlcnR5UGF0aDogYW5ub3RhdGlvbk9iamVjdC4kUHJvcGVydHlQYXRoIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRJZiAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIklmXCIsIElmOiBhbm5vdGF0aW9uT2JqZWN0LiRJZiB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kQW5kICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiQW5kXCIsIEFuZDogYW5ub3RhdGlvbk9iamVjdC4kQW5kIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRPciAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIk9yXCIsIE9yOiBhbm5vdGF0aW9uT2JqZWN0LiRPciB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTm90ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiTm90XCIsIE5vdDogYW5ub3RhdGlvbk9iamVjdC4kTm90IH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRFcSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIkVxXCIsIEVxOiBhbm5vdGF0aW9uT2JqZWN0LiRFcSB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTmUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdCA9IHsgdHlwZTogXCJOZVwiLCBOZTogYW5ub3RhdGlvbk9iamVjdC4kTmUgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEd0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiR3RcIiwgR3Q6IGFubm90YXRpb25PYmplY3QuJEd0IH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRHZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIkdlXCIsIEdlOiBhbm5vdGF0aW9uT2JqZWN0LiRHZSB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdCA9IHsgdHlwZTogXCJMdFwiLCBMdDogYW5ub3RhdGlvbk9iamVjdC4kTHQgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJExlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiTGVcIiwgTGU6IGFubm90YXRpb25PYmplY3QuJExlIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRBcHBseSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIkFwcGx5XCIsIEFwcGx5OiBhbm5vdGF0aW9uT2JqZWN0LiRBcHBseSwgRnVuY3Rpb246IGFubm90YXRpb25PYmplY3QuJEZ1bmN0aW9uIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7XG5cdFx0XHRcdHR5cGU6IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiLFxuXHRcdFx0XHROYXZpZ2F0aW9uUHJvcGVydHlQYXRoOiBhbm5vdGF0aW9uT2JqZWN0LiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kRW51bU1lbWJlciAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0ge1xuXHRcdFx0XHR0eXBlOiBcIkVudW1NZW1iZXJcIixcblx0XHRcdFx0RW51bU1lbWJlcjpcblx0XHRcdFx0XHR0aGlzLm1hcE5hbWVUb0FsaWFzKGFubm90YXRpb25PYmplY3QuJEVudW1NZW1iZXIuc3BsaXQoXCIvXCIpWzBdKSArIFwiL1wiICsgYW5ub3RhdGlvbk9iamVjdC4kRW51bU1lbWJlci5zcGxpdChcIi9cIilbMV1cblx0XHRcdH07XG5cdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGFubm90YXRpb25PYmplY3QpKSB7XG5cdFx0XHRjb25zdCBwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbiA9IHBhcnNlZEFubm90YXRpb25PYmplY3QgYXMgYW55O1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiA9IGFubm90YXRpb25PYmplY3QubWFwKChzdWJBbm5vdGF0aW9uT2JqZWN0LCBzdWJBbm5vdGF0aW9uSW5kZXgpID0+XG5cdFx0XHRcdHRoaXMucGFyc2VBbm5vdGF0aW9uT2JqZWN0KFxuXHRcdFx0XHRcdHN1YkFubm90YXRpb25PYmplY3QsXG5cdFx0XHRcdFx0Y3VycmVudE9iamVjdFRhcmdldCArIFwiL1wiICsgc3ViQW5ub3RhdGlvbkluZGV4LFxuXHRcdFx0XHRcdGFubm90YXRpb25zTGlzdHMsXG5cdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHRcdFx0aWYgKGFubm90YXRpb25PYmplY3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRQcm9wZXJ0eVBhdGhcIikpIHtcblx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkUGF0aFwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiUGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkQW5ub3RhdGlvblBhdGhcIikpIHtcblx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkFubm90YXRpb25QYXRoXCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRUeXBlXCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJSZWNvcmRcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJElmXCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJJZlwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkQW5kXCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJBbmRcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJE9yXCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJPclwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkRXFcIikpIHtcblx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkVxXCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiROZVwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTmVcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJE5vdFwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTm90XCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRHdFwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiR3RcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEdlXCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJHZVwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTHRcIikpIHtcblx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkx0XCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRMZVwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTGVcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEFwcGx5XCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJBcHBseVwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBhbm5vdGF0aW9uT2JqZWN0WzBdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJSZWNvcmRcIjtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlN0cmluZ1wiO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0LiRUeXBlKSB7XG5cdFx0XHRcdGNvbnN0IHR5cGVWYWx1ZSA9IGFubm90YXRpb25PYmplY3QuJFR5cGU7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudHlwZSA9IHR5cGVWYWx1ZTsgLy9gJHt0eXBlQWxpYXN9LiR7dHlwZVRlcm19YDtcblx0XHRcdH1cblx0XHRcdGNvbnN0IHByb3BlcnR5VmFsdWVzOiBhbnkgPSBbXTtcblx0XHRcdE9iamVjdC5rZXlzKGFubm90YXRpb25PYmplY3QpLmZvckVhY2gocHJvcGVydHlLZXkgPT4ge1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0cHJvcGVydHlLZXkgIT09IFwiJFR5cGVcIiAmJlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5ICE9PSBcIiRJZlwiICYmXG5cdFx0XHRcdFx0cHJvcGVydHlLZXkgIT09IFwiJEFwcGx5XCIgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUtleSAhPT0gXCIkQW5kXCIgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUtleSAhPT0gXCIkT3JcIiAmJlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5ICE9PSBcIiROZVwiICYmXG5cdFx0XHRcdFx0cHJvcGVydHlLZXkgIT09IFwiJEd0XCIgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUtleSAhPT0gXCIkR2VcIiAmJlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5ICE9PSBcIiRMdFwiICYmXG5cdFx0XHRcdFx0cHJvcGVydHlLZXkgIT09IFwiJExlXCIgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUtleSAhPT0gXCIkTm90XCIgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUtleSAhPT0gXCIkRXFcIiAmJlxuXHRcdFx0XHRcdCFwcm9wZXJ0eUtleS5zdGFydHNXaXRoKFwiQFwiKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRwcm9wZXJ0eVZhbHVlcy5wdXNoKFxuXHRcdFx0XHRcdFx0dGhpcy5wYXJzZVByb3BlcnR5VmFsdWUoXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25PYmplY3RbcHJvcGVydHlLZXldLFxuXHRcdFx0XHRcdFx0XHRwcm9wZXJ0eUtleSxcblx0XHRcdFx0XHRcdFx0Y3VycmVudE9iamVjdFRhcmdldCxcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvbnNMaXN0cyxcblx0XHRcdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAocHJvcGVydHlLZXkuc3RhcnRzV2l0aChcIkBcIikpIHtcblx0XHRcdFx0XHQvLyBBbm5vdGF0aW9uIG9mIGFubm90YXRpb25cblx0XHRcdFx0XHR0aGlzLmNyZWF0ZUFubm90YXRpb25MaXN0cyhcblx0XHRcdFx0XHRcdHsgW3Byb3BlcnR5S2V5XTogYW5ub3RhdGlvbk9iamVjdFtwcm9wZXJ0eUtleV0gfSxcblx0XHRcdFx0XHRcdGN1cnJlbnRPYmplY3RUYXJnZXQsXG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uc0xpc3RzLFxuXHRcdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC5wcm9wZXJ0eVZhbHVlcyA9IHByb3BlcnR5VmFsdWVzO1xuXHRcdH1cblx0XHRyZXR1cm4gcGFyc2VkQW5ub3RhdGlvbk9iamVjdDtcblx0fSxcblx0Z2V0T3JDcmVhdGVBbm5vdGF0aW9uTGlzdCh0YXJnZXQ6IHN0cmluZywgYW5ub3RhdGlvbnNMaXN0czogQW5ub3RhdGlvbkxpc3RbXSk6IEFubm90YXRpb25MaXN0IHtcblx0XHRsZXQgcG90ZW50aWFsVGFyZ2V0ID0gYW5ub3RhdGlvbnNMaXN0cy5maW5kKGFubm90YXRpb25MaXN0ID0+IGFubm90YXRpb25MaXN0LnRhcmdldCA9PT0gdGFyZ2V0KTtcblx0XHRpZiAoIXBvdGVudGlhbFRhcmdldCkge1xuXHRcdFx0cG90ZW50aWFsVGFyZ2V0ID0ge1xuXHRcdFx0XHR0YXJnZXQ6IHRhcmdldCxcblx0XHRcdFx0YW5ub3RhdGlvbnM6IFtdXG5cdFx0XHR9O1xuXHRcdFx0YW5ub3RhdGlvbnNMaXN0cy5wdXNoKHBvdGVudGlhbFRhcmdldCk7XG5cdFx0fVxuXHRcdHJldHVybiBwb3RlbnRpYWxUYXJnZXQ7XG5cdH0sXG5cblx0Y3JlYXRlQW5ub3RhdGlvbkxpc3RzKFxuXHRcdGFubm90YXRpb25PYmplY3RzOiBhbnksXG5cdFx0YW5ub3RhdGlvblRhcmdldDogc3RyaW5nLFxuXHRcdGFubm90YXRpb25MaXN0czogYW55W10sXG5cdFx0b0NhcGFiaWxpdGllczogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNcblx0KSB7XG5cdFx0Y29uc3Qgb3V0QW5ub3RhdGlvbk9iamVjdCA9IHRoaXMuZ2V0T3JDcmVhdGVBbm5vdGF0aW9uTGlzdChhbm5vdGF0aW9uVGFyZ2V0LCBhbm5vdGF0aW9uTGlzdHMpO1xuXHRcdGlmICghb0NhcGFiaWxpdGllcy5NaWNyb0NoYXJ0KSB7XG5cdFx0XHRkZWxldGUgYW5ub3RhdGlvbk9iamVjdHNbXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIl07XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gcmVtb3ZlQ2hhcnRBbm5vdGF0aW9ucyhhbm5vdGF0aW9uT2JqZWN0OiBhbnkpIHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0LmZpbHRlcigob1JlY29yZDogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChvUmVjb3JkLlRhcmdldCAmJiBvUmVjb3JkLlRhcmdldC4kQW5ub3RhdGlvblBhdGgpIHtcblx0XHRcdFx0XHRyZXR1cm4gb1JlY29yZC5UYXJnZXQuJEFubm90YXRpb25QYXRoLmluZGV4T2YoXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIikgPT09IC0xO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiByZW1vdmVJQk5Bbm5vdGF0aW9ucyhhbm5vdGF0aW9uT2JqZWN0OiBhbnkpIHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0LmZpbHRlcigob1JlY29yZDogYW55KSA9PiB7XG5cdFx0XHRcdHJldHVybiBvUmVjb3JkLiRUeXBlICE9PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblwiO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gaGFuZGxlUHJlc2VudGF0aW9uVmFyaWFudChhbm5vdGF0aW9uT2JqZWN0OiBhbnkpIHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0LmZpbHRlcigob1JlY29yZDogYW55KSA9PiB7XG5cdFx0XHRcdHJldHVybiBvUmVjb3JkLiRBbm5vdGF0aW9uUGF0aCAhPT0gXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIjtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdE9iamVjdC5rZXlzKGFubm90YXRpb25PYmplY3RzKS5mb3JFYWNoKGFubm90YXRpb25LZXkgPT4ge1xuXHRcdFx0bGV0IGFubm90YXRpb25PYmplY3QgPSBhbm5vdGF0aW9uT2JqZWN0c1thbm5vdGF0aW9uS2V5XTtcblx0XHRcdHN3aXRjaCAoYW5ub3RhdGlvbktleSkge1xuXHRcdFx0XHRjYXNlIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0c1wiOlxuXHRcdFx0XHRcdGlmICghb0NhcGFiaWxpdGllcy5NaWNyb0NoYXJ0KSB7XG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uT2JqZWN0ID0gcmVtb3ZlQ2hhcnRBbm5vdGF0aW9ucyhhbm5vdGF0aW9uT2JqZWN0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSWRlbnRpZmljYXRpb25cIjpcblx0XHRcdFx0XHRpZiAoIW9DYXBhYmlsaXRpZXMuSW50ZW50QmFzZWROYXZpZ2F0aW9uKSB7XG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uT2JqZWN0ID0gcmVtb3ZlSUJOQW5ub3RhdGlvbnMoYW5ub3RhdGlvbk9iamVjdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtXCI6XG5cdFx0XHRcdFx0aWYgKCFvQ2FwYWJpbGl0aWVzLkludGVudEJhc2VkTmF2aWdhdGlvbikge1xuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbk9iamVjdCA9IHJlbW92ZUlCTkFubm90YXRpb25zKGFubm90YXRpb25PYmplY3QpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIW9DYXBhYmlsaXRpZXMuTWljcm9DaGFydCkge1xuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbk9iamVjdCA9IHJlbW92ZUNoYXJ0QW5ub3RhdGlvbnMoYW5ub3RhdGlvbk9iamVjdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZpZWxkR3JvdXBcIjpcblx0XHRcdFx0XHRpZiAoIW9DYXBhYmlsaXRpZXMuSW50ZW50QmFzZWROYXZpZ2F0aW9uKSB7XG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uT2JqZWN0LkRhdGEgPSByZW1vdmVJQk5Bbm5vdGF0aW9ucyhhbm5vdGF0aW9uT2JqZWN0LkRhdGEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIW9DYXBhYmlsaXRpZXMuTWljcm9DaGFydCkge1xuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbk9iamVjdC5EYXRhID0gcmVtb3ZlQ2hhcnRBbm5vdGF0aW9ucyhhbm5vdGF0aW9uT2JqZWN0LkRhdGEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5QcmVzZW50YXRpb25WYXJpYW50XCI6XG5cdFx0XHRcdFx0aWYgKCFvQ2FwYWJpbGl0aWVzLkNoYXJ0ICYmIGFubm90YXRpb25PYmplY3QuVmlzdWFsaXphdGlvbnMpIHtcblx0XHRcdFx0XHRcdGFubm90YXRpb25PYmplY3QuVmlzdWFsaXphdGlvbnMgPSBoYW5kbGVQcmVzZW50YXRpb25WYXJpYW50KGFubm90YXRpb25PYmplY3QuVmlzdWFsaXphdGlvbnMpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGFubm90YXRpb25PYmplY3RzW2Fubm90YXRpb25LZXldID0gYW5ub3RhdGlvbk9iamVjdDtcblx0XHRcdGxldCBjdXJyZW50T3V0QW5ub3RhdGlvbk9iamVjdCA9IG91dEFubm90YXRpb25PYmplY3Q7XG5cblx0XHRcdC8vIENoZWNrIGZvciBhbm5vdGF0aW9uIG9mIGFubm90YXRpb25cblx0XHRcdGNvbnN0IGFubm90YXRpb25PZkFubm90YXRpb25TcGxpdCA9IGFubm90YXRpb25LZXkuc3BsaXQoXCJAXCIpO1xuXHRcdFx0aWYgKGFubm90YXRpb25PZkFubm90YXRpb25TcGxpdC5sZW5ndGggPiAyKSB7XG5cdFx0XHRcdGN1cnJlbnRPdXRBbm5vdGF0aW9uT2JqZWN0ID0gdGhpcy5nZXRPckNyZWF0ZUFubm90YXRpb25MaXN0KFxuXHRcdFx0XHRcdGFubm90YXRpb25UYXJnZXQgKyBcIkBcIiArIGFubm90YXRpb25PZkFubm90YXRpb25TcGxpdFsxXSxcblx0XHRcdFx0XHRhbm5vdGF0aW9uTGlzdHNcblx0XHRcdFx0KTtcblx0XHRcdFx0YW5ub3RhdGlvbktleSA9IGFubm90YXRpb25PZkFubm90YXRpb25TcGxpdFsyXTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFubm90YXRpb25LZXkgPSBhbm5vdGF0aW9uT2ZBbm5vdGF0aW9uU3BsaXRbMV07XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGFubm90YXRpb25RdWFsaWZpZXJTcGxpdCA9IGFubm90YXRpb25LZXkuc3BsaXQoXCIjXCIpO1xuXHRcdFx0Y29uc3QgcXVhbGlmaWVyID0gYW5ub3RhdGlvblF1YWxpZmllclNwbGl0WzFdO1xuXHRcdFx0YW5ub3RhdGlvbktleSA9IGFubm90YXRpb25RdWFsaWZpZXJTcGxpdFswXTtcblxuXHRcdFx0Y29uc3QgcGFyc2VkQW5ub3RhdGlvbk9iamVjdDogYW55ID0ge1xuXHRcdFx0XHR0ZXJtOiBgJHthbm5vdGF0aW9uS2V5fWAsXG5cdFx0XHRcdHF1YWxpZmllcjogcXVhbGlmaWVyXG5cdFx0XHR9O1xuXHRcdFx0bGV0IGN1cnJlbnRBbm5vdGF0aW9uVGFyZ2V0ID0gYW5ub3RhdGlvblRhcmdldCArIFwiQFwiICsgcGFyc2VkQW5ub3RhdGlvbk9iamVjdC50ZXJtO1xuXHRcdFx0aWYgKHF1YWxpZmllcikge1xuXHRcdFx0XHRjdXJyZW50QW5ub3RhdGlvblRhcmdldCArPSBcIiNcIiArIHF1YWxpZmllcjtcblx0XHRcdH1cblx0XHRcdGxldCBpc0NvbGxlY3Rpb24gPSBmYWxzZTtcblx0XHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0ID09PSBudWxsKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiQm9vbFwiLCBCb29sOiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBhbm5vdGF0aW9uT2JqZWN0ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiU3RyaW5nXCIsIFN0cmluZzogYW5ub3RhdGlvbk9iamVjdCB9O1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgYW5ub3RhdGlvbk9iamVjdCA9PT0gXCJib29sZWFuXCIpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJCb29sXCIsIEJvb2w6IGFubm90YXRpb25PYmplY3QgfTtcblx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGFubm90YXRpb25PYmplY3QgPT09IFwibnVtYmVyXCIpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJJbnRcIiwgSW50OiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJElmICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJJZlwiLCBJZjogYW5ub3RhdGlvbk9iamVjdC4kSWYgfTtcblx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kQW5kICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJBbmRcIiwgQW5kOiBhbm5vdGF0aW9uT2JqZWN0LiRBbmQgfTtcblx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kT3IgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnZhbHVlID0geyB0eXBlOiBcIk9yXCIsIE9yOiBhbm5vdGF0aW9uT2JqZWN0LiRPciB9O1xuXHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiROb3QgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnZhbHVlID0geyB0eXBlOiBcIk5vdFwiLCBOb3Q6IGFubm90YXRpb25PYmplY3QuJE5vdCB9O1xuXHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRFcSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiRXFcIiwgRXE6IGFubm90YXRpb25PYmplY3QuJEVxIH07XG5cdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJE5lICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJOZVwiLCBOZTogYW5ub3RhdGlvbk9iamVjdC4kTmUgfTtcblx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kR3QgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnZhbHVlID0geyB0eXBlOiBcIkd0XCIsIEd0OiBhbm5vdGF0aW9uT2JqZWN0LiRHdCB9O1xuXHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRHZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiR2VcIiwgR2U6IGFubm90YXRpb25PYmplY3QuJEdlIH07XG5cdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEx0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJMdFwiLCBMdDogYW5ub3RhdGlvbk9iamVjdC4kTHQgfTtcblx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnZhbHVlID0geyB0eXBlOiBcIkxlXCIsIExlOiBhbm5vdGF0aW9uT2JqZWN0LiRMZSB9O1xuXHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRBcHBseSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiQXBwbHlcIiwgQXBwbHk6IGFubm90YXRpb25PYmplY3QuJEFwcGx5LCBGdW5jdGlvbjogYW5ub3RhdGlvbk9iamVjdC4kRnVuY3Rpb24gfTtcblx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiUGF0aFwiLCBQYXRoOiBhbm5vdGF0aW9uT2JqZWN0LiRQYXRoIH07XG5cdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEFubm90YXRpb25QYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHtcblx0XHRcdFx0XHR0eXBlOiBcIkFubm90YXRpb25QYXRoXCIsXG5cdFx0XHRcdFx0QW5ub3RhdGlvblBhdGg6IGFubm90YXRpb25PYmplY3QuJEFubm90YXRpb25QYXRoXG5cdFx0XHRcdH07XG5cdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJERlY2ltYWwgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnZhbHVlID0geyB0eXBlOiBcIkRlY2ltYWxcIiwgRGVjaW1hbDogcGFyc2VGbG9hdChhbm5vdGF0aW9uT2JqZWN0LiREZWNpbWFsKSB9O1xuXHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRFbnVtTWVtYmVyICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHtcblx0XHRcdFx0XHR0eXBlOiBcIkVudW1NZW1iZXJcIixcblx0XHRcdFx0XHRFbnVtTWVtYmVyOlxuXHRcdFx0XHRcdFx0dGhpcy5tYXBOYW1lVG9BbGlhcyhhbm5vdGF0aW9uT2JqZWN0LiRFbnVtTWVtYmVyLnNwbGl0KFwiL1wiKVswXSkgKyBcIi9cIiArIGFubm90YXRpb25PYmplY3QuJEVudW1NZW1iZXIuc3BsaXQoXCIvXCIpWzFdXG5cdFx0XHRcdH07XG5cdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYW5ub3RhdGlvbk9iamVjdCkpIHtcblx0XHRcdFx0aXNDb2xsZWN0aW9uID0gdHJ1ZTtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC5jb2xsZWN0aW9uID0gYW5ub3RhdGlvbk9iamVjdC5tYXAoKHN1YkFubm90YXRpb25PYmplY3QsIHN1YkFubm90YXRpb25JbmRleCkgPT5cblx0XHRcdFx0XHR0aGlzLnBhcnNlQW5ub3RhdGlvbk9iamVjdChcblx0XHRcdFx0XHRcdHN1YkFubm90YXRpb25PYmplY3QsXG5cdFx0XHRcdFx0XHRjdXJyZW50QW5ub3RhdGlvblRhcmdldCArIFwiL1wiICsgc3ViQW5ub3RhdGlvbkluZGV4LFxuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbkxpc3RzLFxuXHRcdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdFx0aWYgKGFubm90YXRpb25PYmplY3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJFByb3BlcnR5UGF0aFwiKSkge1xuXHRcdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25PYmplY3QuY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRQYXRoXCIpKSB7XG5cdFx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbk9iamVjdC5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiUGF0aFwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCIpKSB7XG5cdFx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbk9iamVjdC5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRBbm5vdGF0aW9uUGF0aFwiKSkge1xuXHRcdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25PYmplY3QuY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkFubm90YXRpb25QYXRoXCI7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJFR5cGVcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJSZWNvcmRcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkSWZcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJJZlwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRPclwiKSkge1xuXHRcdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25PYmplY3QuY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIk9yXCI7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEVxXCIpKSB7XG5cdFx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbk9iamVjdC5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiRXFcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTmVcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJOZVwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiROb3RcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJOb3RcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkR3RcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJHdFwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRHZVwiKSkge1xuXHRcdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25PYmplY3QuY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkdlXCI7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEx0XCIpKSB7XG5cdFx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbk9iamVjdC5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTHRcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTGVcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJMZVwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRBbmRcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJBbmRcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkQXBwbHlcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJBcHBseVwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGFubm90YXRpb25PYmplY3RbMF0gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJSZWNvcmRcIjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25PYmplY3QuY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlN0cmluZ1wiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgcmVjb3JkOiBBbm5vdGF0aW9uUmVjb3JkID0ge1xuXHRcdFx0XHRcdHByb3BlcnR5VmFsdWVzOiBbXVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvbk9iamVjdC4kVHlwZSkge1xuXHRcdFx0XHRcdGNvbnN0IHR5cGVWYWx1ZSA9IGFubm90YXRpb25PYmplY3QuJFR5cGU7XG5cdFx0XHRcdFx0cmVjb3JkLnR5cGUgPSBgJHt0eXBlVmFsdWV9YDtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBwcm9wZXJ0eVZhbHVlczogYW55W10gPSBbXTtcblx0XHRcdFx0T2JqZWN0LmtleXMoYW5ub3RhdGlvbk9iamVjdCkuZm9yRWFjaChwcm9wZXJ0eUtleSA9PiB7XG5cdFx0XHRcdFx0aWYgKHByb3BlcnR5S2V5ICE9PSBcIiRUeXBlXCIgJiYgIXByb3BlcnR5S2V5LnN0YXJ0c1dpdGgoXCJAXCIpKSB7XG5cdFx0XHRcdFx0XHRwcm9wZXJ0eVZhbHVlcy5wdXNoKFxuXHRcdFx0XHRcdFx0XHR0aGlzLnBhcnNlUHJvcGVydHlWYWx1ZShcblx0XHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uT2JqZWN0W3Byb3BlcnR5S2V5XSxcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eUtleSxcblx0XHRcdFx0XHRcdFx0XHRjdXJyZW50QW5ub3RhdGlvblRhcmdldCxcblx0XHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uTGlzdHMsXG5cdFx0XHRcdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAocHJvcGVydHlLZXkuc3RhcnRzV2l0aChcIkBcIikpIHtcblx0XHRcdFx0XHRcdC8vIEFubm90YXRpb24gb2YgcmVjb3JkXG5cdFx0XHRcdFx0XHR0aGlzLmNyZWF0ZUFubm90YXRpb25MaXN0cyhcblx0XHRcdFx0XHRcdFx0eyBbcHJvcGVydHlLZXldOiBhbm5vdGF0aW9uT2JqZWN0W3Byb3BlcnR5S2V5XSB9LFxuXHRcdFx0XHRcdFx0XHRjdXJyZW50QW5ub3RhdGlvblRhcmdldCxcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvbkxpc3RzLFxuXHRcdFx0XHRcdFx0XHRvQ2FwYWJpbGl0aWVzXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJlY29yZC5wcm9wZXJ0eVZhbHVlcyA9IHByb3BlcnR5VmFsdWVzO1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnJlY29yZCA9IHJlY29yZDtcblx0XHRcdH1cblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QuaXNDb2xsZWN0aW9uID0gaXNDb2xsZWN0aW9uO1xuXHRcdFx0Y3VycmVudE91dEFubm90YXRpb25PYmplY3QuYW5ub3RhdGlvbnMucHVzaChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0KTtcblx0XHR9KTtcblx0fSxcblx0cGFyc2VQcm9wZXJ0eShcblx0XHRvTWV0YU1vZGVsOiBhbnksXG5cdFx0ZW50aXR5VHlwZU9iamVjdDogRW50aXR5VHlwZSB8IENvbXBsZXhUeXBlLFxuXHRcdHByb3BlcnR5TmFtZTogc3RyaW5nLFxuXHRcdGFubm90YXRpb25MaXN0czogQW5ub3RhdGlvbkxpc3RbXSxcblx0XHRvQ2FwYWJpbGl0aWVzOiBFbnZpcm9ubWVudENhcGFiaWxpdGllc1xuXHQpOiBQcm9wZXJ0eSB7XG5cdFx0Y29uc3QgcHJvcGVydHlBbm5vdGF0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke3Byb3BlcnR5TmFtZX1AYCk7XG5cdFx0Y29uc3QgcHJvcGVydHlEZWZpbml0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke3Byb3BlcnR5TmFtZX1gKTtcblxuXHRcdGNvbnN0IHByb3BlcnR5T2JqZWN0OiBQcm9wZXJ0eSA9IHtcblx0XHRcdF90eXBlOiBcIlByb3BlcnR5XCIsXG5cdFx0XHRuYW1lOiBwcm9wZXJ0eU5hbWUsXG5cdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IGAke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke3Byb3BlcnR5TmFtZX1gLFxuXHRcdFx0dHlwZTogcHJvcGVydHlEZWZpbml0aW9uLiRUeXBlLFxuXHRcdFx0bWF4TGVuZ3RoOiBwcm9wZXJ0eURlZmluaXRpb24uJE1heExlbmd0aCxcblx0XHRcdHByZWNpc2lvbjogcHJvcGVydHlEZWZpbml0aW9uLiRQcmVjaXNpb24sXG5cdFx0XHRzY2FsZTogcHJvcGVydHlEZWZpbml0aW9uLiRTY2FsZSxcblx0XHRcdG51bGxhYmxlOiBwcm9wZXJ0eURlZmluaXRpb24uJE51bGxhYmxlXG5cdFx0fTtcblxuXHRcdHRoaXMuY3JlYXRlQW5ub3RhdGlvbkxpc3RzKHByb3BlcnR5QW5ub3RhdGlvbiwgcHJvcGVydHlPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lLCBhbm5vdGF0aW9uTGlzdHMsIG9DYXBhYmlsaXRpZXMpO1xuXG5cdFx0cmV0dXJuIHByb3BlcnR5T2JqZWN0O1xuXHR9LFxuXHRwYXJzZU5hdmlnYXRpb25Qcm9wZXJ0eShcblx0XHRvTWV0YU1vZGVsOiBhbnksXG5cdFx0ZW50aXR5VHlwZU9iamVjdDogRW50aXR5VHlwZSB8IENvbXBsZXhUeXBlLFxuXHRcdG5hdlByb3BlcnR5TmFtZTogc3RyaW5nLFxuXHRcdGFubm90YXRpb25MaXN0czogQW5ub3RhdGlvbkxpc3RbXSxcblx0XHRvQ2FwYWJpbGl0aWVzOiBFbnZpcm9ubWVudENhcGFiaWxpdGllc1xuXHQpOiBWNE5hdmlnYXRpb25Qcm9wZXJ0eSB7XG5cdFx0Y29uc3QgbmF2UHJvcGVydHlBbm5vdGF0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke25hdlByb3BlcnR5TmFtZX1AYCk7XG5cdFx0Y29uc3QgbmF2UHJvcGVydHlEZWZpbml0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke25hdlByb3BlcnR5TmFtZX1gKTtcblxuXHRcdGxldCByZWZlcmVudGlhbENvbnN0cmFpbnQ6IFJlZmVyZW50aWFsQ29uc3RyYWludFtdID0gW107XG5cdFx0aWYgKG5hdlByb3BlcnR5RGVmaW5pdGlvbi4kUmVmZXJlbnRpYWxDb25zdHJhaW50KSB7XG5cdFx0XHRyZWZlcmVudGlhbENvbnN0cmFpbnQgPSBPYmplY3Qua2V5cyhuYXZQcm9wZXJ0eURlZmluaXRpb24uJFJlZmVyZW50aWFsQ29uc3RyYWludCkubWFwKHNvdXJjZVByb3BlcnR5TmFtZSA9PiB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0c291cmNlVHlwZU5hbWU6IGVudGl0eVR5cGVPYmplY3QubmFtZSxcblx0XHRcdFx0XHRzb3VyY2VQcm9wZXJ0eTogc291cmNlUHJvcGVydHlOYW1lLFxuXHRcdFx0XHRcdHRhcmdldFR5cGVOYW1lOiBuYXZQcm9wZXJ0eURlZmluaXRpb24uJFR5cGUsXG5cdFx0XHRcdFx0dGFyZ2V0UHJvcGVydHk6IG5hdlByb3BlcnR5RGVmaW5pdGlvbi4kUmVmZXJlbnRpYWxDb25zdHJhaW50W3NvdXJjZVByb3BlcnR5TmFtZV1cblx0XHRcdFx0fTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRjb25zdCBuYXZpZ2F0aW9uUHJvcGVydHk6IFY0TmF2aWdhdGlvblByb3BlcnR5ID0ge1xuXHRcdFx0X3R5cGU6IFwiTmF2aWdhdGlvblByb3BlcnR5XCIsXG5cdFx0XHRuYW1lOiBuYXZQcm9wZXJ0eU5hbWUsXG5cdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IGAke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke25hdlByb3BlcnR5TmFtZX1gLFxuXHRcdFx0cGFydG5lcjogbmF2UHJvcGVydHlEZWZpbml0aW9uLiRQYXJ0bmVyLFxuXHRcdFx0aXNDb2xsZWN0aW9uOiBuYXZQcm9wZXJ0eURlZmluaXRpb24uJGlzQ29sbGVjdGlvbiA/IG5hdlByb3BlcnR5RGVmaW5pdGlvbi4kaXNDb2xsZWN0aW9uIDogZmFsc2UsXG5cdFx0XHRjb250YWluc1RhcmdldDogbmF2UHJvcGVydHlEZWZpbml0aW9uLiRDb250YWluc1RhcmdldCxcblx0XHRcdHRhcmdldFR5cGVOYW1lOiBuYXZQcm9wZXJ0eURlZmluaXRpb24uJFR5cGUsXG5cdFx0XHRyZWZlcmVudGlhbENvbnN0cmFpbnRcblx0XHR9O1xuXG5cdFx0dGhpcy5jcmVhdGVBbm5vdGF0aW9uTGlzdHMobmF2UHJvcGVydHlBbm5vdGF0aW9uLCBuYXZpZ2F0aW9uUHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lLCBhbm5vdGF0aW9uTGlzdHMsIG9DYXBhYmlsaXRpZXMpO1xuXG5cdFx0cmV0dXJuIG5hdmlnYXRpb25Qcm9wZXJ0eTtcblx0fSxcblx0cGFyc2VFbnRpdHlTZXQoXG5cdFx0b01ldGFNb2RlbDogYW55LFxuXHRcdGVudGl0eVNldE5hbWU6IHN0cmluZyxcblx0XHRhbm5vdGF0aW9uTGlzdHM6IEFubm90YXRpb25MaXN0W10sXG5cdFx0ZW50aXR5Q29udGFpbmVyTmFtZTogc3RyaW5nLFxuXHRcdG9DYXBhYmlsaXRpZXM6IEVudmlyb25tZW50Q2FwYWJpbGl0aWVzXG5cdCk6IEVudGl0eVNldCB7XG5cdFx0Y29uc3QgZW50aXR5U2V0RGVmaW5pdGlvbiA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAvJHtlbnRpdHlTZXROYW1lfWApO1xuXHRcdGNvbnN0IGVudGl0eVNldEFubm90YXRpb24gPSBvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7ZW50aXR5U2V0TmFtZX1AYCk7XG5cdFx0Y29uc3QgZW50aXR5U2V0T2JqZWN0OiBFbnRpdHlTZXQgPSB7XG5cdFx0XHRfdHlwZTogXCJFbnRpdHlTZXRcIixcblx0XHRcdG5hbWU6IGVudGl0eVNldE5hbWUsXG5cdFx0XHRuYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nOiB7fSxcblx0XHRcdGVudGl0eVR5cGVOYW1lOiBlbnRpdHlTZXREZWZpbml0aW9uLiRUeXBlLFxuXHRcdFx0ZnVsbHlRdWFsaWZpZWROYW1lOiBgJHtlbnRpdHlDb250YWluZXJOYW1lfS8ke2VudGl0eVNldE5hbWV9YFxuXHRcdH07XG5cdFx0dGhpcy5jcmVhdGVBbm5vdGF0aW9uTGlzdHMoZW50aXR5U2V0QW5ub3RhdGlvbiwgZW50aXR5U2V0T2JqZWN0LmZ1bGx5UXVhbGlmaWVkTmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHRyZXR1cm4gZW50aXR5U2V0T2JqZWN0O1xuXHR9LFxuXG5cdHBhcnNlU2luZ2xldG9uKFxuXHRcdG9NZXRhTW9kZWw6IGFueSxcblx0XHRzaW5nbGV0b25OYW1lOiBzdHJpbmcsXG5cdFx0YW5ub3RhdGlvbkxpc3RzOiBBbm5vdGF0aW9uTGlzdFtdLFxuXHRcdGVudGl0eUNvbnRhaW5lck5hbWU6IHN0cmluZyxcblx0XHRvQ2FwYWJpbGl0aWVzOiBFbnZpcm9ubWVudENhcGFiaWxpdGllc1xuXHQpOiBTaW5nbGV0b24ge1xuXHRcdGNvbnN0IHNpbmdsZXRvbkRlZmluaXRpb24gPSBvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7c2luZ2xldG9uTmFtZX1gKTtcblx0XHRjb25zdCBzaW5nbGV0b25Bbm5vdGF0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke3NpbmdsZXRvbk5hbWV9QGApO1xuXHRcdGNvbnN0IHNpbmdsZXRvbk9iamVjdDogU2luZ2xldG9uID0ge1xuXHRcdFx0X3R5cGU6IFwiU2luZ2xldG9uXCIsXG5cdFx0XHRuYW1lOiBzaW5nbGV0b25OYW1lLFxuXHRcdFx0bmF2aWdhdGlvblByb3BlcnR5QmluZGluZzoge30sXG5cdFx0XHR0eXBlTmFtZTogc2luZ2xldG9uRGVmaW5pdGlvbi4kVHlwZSxcblx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogYCR7ZW50aXR5Q29udGFpbmVyTmFtZX0vJHtzaW5nbGV0b25OYW1lfWAsXG5cdFx0XHRudWxsYWJsZTogdHJ1ZVxuXHRcdH07XG5cdFx0dGhpcy5jcmVhdGVBbm5vdGF0aW9uTGlzdHMoc2luZ2xldG9uQW5ub3RhdGlvbiwgc2luZ2xldG9uT2JqZWN0LmZ1bGx5UXVhbGlmaWVkTmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHRyZXR1cm4gc2luZ2xldG9uT2JqZWN0O1xuXHR9LFxuXG5cdHBhcnNlRW50aXR5VHlwZShcblx0XHRvTWV0YU1vZGVsOiBhbnksXG5cdFx0ZW50aXR5VHlwZU5hbWU6IHN0cmluZyxcblx0XHRhbm5vdGF0aW9uTGlzdHM6IEFubm90YXRpb25MaXN0W10sXG5cdFx0bmFtZXNwYWNlOiBzdHJpbmcsXG5cdFx0b0NhcGFiaWxpdGllczogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNcblx0KTogRW50aXR5VHlwZSB7XG5cdFx0Y29uc3QgZW50aXR5VHlwZUFubm90YXRpb24gPSBvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7ZW50aXR5VHlwZU5hbWV9QGApO1xuXHRcdGNvbnN0IGVudGl0eVR5cGVEZWZpbml0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2VudGl0eVR5cGVOYW1lfWApO1xuXG5cdFx0Y29uc3QgZW50aXR5S2V5czogYW55ID0gZ2V0RW50aXR5S2V5cyhlbnRpdHlUeXBlRGVmaW5pdGlvbik7XG5cblx0XHRmdW5jdGlvbiBnZXRFbnRpdHlLZXlzKGVudGl0eVR5cGVEZWZpbml0aW9uOiBhbnkpOiBhbnkge1xuXHRcdFx0aWYgKCFlbnRpdHlUeXBlRGVmaW5pdGlvbi4kS2V5ICYmIGVudGl0eVR5cGVEZWZpbml0aW9uLiRCYXNlVHlwZSkge1xuXHRcdFx0XHRyZXR1cm4gZ2V0RW50aXR5S2V5cyhvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7ZW50aXR5VHlwZURlZmluaXRpb24uJEJhc2VUeXBlfWApKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBlbnRpdHlUeXBlRGVmaW5pdGlvbi4kS2V5IHx8IFtdOyAvL2hhbmRsaW5nIG9mIGVudGl0eSB0eXBlcyB3aXRob3V0IGtleSBhcyB3ZWxsIGFzIGJhc2V0eXBlXG5cdFx0fVxuXHRcdGNvbnN0IGVudGl0eVR5cGVPYmplY3Q6IEVudGl0eVR5cGUgPSB7XG5cdFx0XHRfdHlwZTogXCJFbnRpdHlUeXBlXCIsXG5cdFx0XHRuYW1lOiBlbnRpdHlUeXBlTmFtZS5yZXBsYWNlKG5hbWVzcGFjZSArIFwiLlwiLCBcIlwiKSxcblx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogZW50aXR5VHlwZU5hbWUsXG5cdFx0XHRrZXlzOiBbXSxcblx0XHRcdGVudGl0eVByb3BlcnRpZXM6IFtdLFxuXHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXM6IFtdXG5cdFx0fTtcblxuXHRcdHRoaXMuY3JlYXRlQW5ub3RhdGlvbkxpc3RzKGVudGl0eVR5cGVBbm5vdGF0aW9uLCBlbnRpdHlUeXBlT2JqZWN0LmZ1bGx5UXVhbGlmaWVkTmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHRjb25zdCBlbnRpdHlQcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoZW50aXR5VHlwZURlZmluaXRpb24pXG5cdFx0XHQuZmlsdGVyKHByb3BlcnR5TmFtZU9yTm90ID0+IHtcblx0XHRcdFx0aWYgKHByb3BlcnR5TmFtZU9yTm90ICE9IFwiJEtleVwiICYmIHByb3BlcnR5TmFtZU9yTm90ICE9IFwiJGtpbmRcIikge1xuXHRcdFx0XHRcdHJldHVybiBlbnRpdHlUeXBlRGVmaW5pdGlvbltwcm9wZXJ0eU5hbWVPck5vdF0uJGtpbmQgPT09IFwiUHJvcGVydHlcIjtcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHRcdC5tYXAocHJvcGVydHlOYW1lID0+IHtcblx0XHRcdFx0cmV0dXJuIHRoaXMucGFyc2VQcm9wZXJ0eShvTWV0YU1vZGVsLCBlbnRpdHlUeXBlT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFubm90YXRpb25MaXN0cywgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHR9KTtcblxuXHRcdGNvbnN0IG5hdmlnYXRpb25Qcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoZW50aXR5VHlwZURlZmluaXRpb24pXG5cdFx0XHQuZmlsdGVyKHByb3BlcnR5TmFtZU9yTm90ID0+IHtcblx0XHRcdFx0aWYgKHByb3BlcnR5TmFtZU9yTm90ICE9IFwiJEtleVwiICYmIHByb3BlcnR5TmFtZU9yTm90ICE9IFwiJGtpbmRcIikge1xuXHRcdFx0XHRcdHJldHVybiBlbnRpdHlUeXBlRGVmaW5pdGlvbltwcm9wZXJ0eU5hbWVPck5vdF0uJGtpbmQgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCI7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQubWFwKG5hdlByb3BlcnR5TmFtZSA9PiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnBhcnNlTmF2aWdhdGlvblByb3BlcnR5KG9NZXRhTW9kZWwsIGVudGl0eVR5cGVPYmplY3QsIG5hdlByb3BlcnR5TmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHRcdH0pO1xuXG5cdFx0ZW50aXR5VHlwZU9iamVjdC5rZXlzID0gZW50aXR5S2V5c1xuXHRcdFx0Lm1hcCgoZW50aXR5S2V5OiBzdHJpbmcpID0+IGVudGl0eVByb3BlcnRpZXMuZmluZCgocHJvcGVydHk6IFByb3BlcnR5KSA9PiBwcm9wZXJ0eS5uYW1lID09PSBlbnRpdHlLZXkpKVxuXHRcdFx0LmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KSA9PiBwcm9wZXJ0eSAhPT0gdW5kZWZpbmVkKTtcblx0XHRlbnRpdHlUeXBlT2JqZWN0LmVudGl0eVByb3BlcnRpZXMgPSBlbnRpdHlQcm9wZXJ0aWVzO1xuXHRcdGVudGl0eVR5cGVPYmplY3QubmF2aWdhdGlvblByb3BlcnRpZXMgPSBuYXZpZ2F0aW9uUHJvcGVydGllcztcblxuXHRcdHJldHVybiBlbnRpdHlUeXBlT2JqZWN0O1xuXHR9LFxuXHRwYXJzZUNvbXBsZXhUeXBlKFxuXHRcdG9NZXRhTW9kZWw6IGFueSxcblx0XHRjb21wbGV4VHlwZU5hbWU6IHN0cmluZyxcblx0XHRhbm5vdGF0aW9uTGlzdHM6IEFubm90YXRpb25MaXN0W10sXG5cdFx0bmFtZXNwYWNlOiBzdHJpbmcsXG5cdFx0b0NhcGFiaWxpdGllczogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNcblx0KTogQ29tcGxleFR5cGUge1xuXHRcdGNvbnN0IGNvbXBsZXhUeXBlQW5ub3RhdGlvbiA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAvJHtjb21wbGV4VHlwZU5hbWV9QGApO1xuXHRcdGNvbnN0IGNvbXBsZXhUeXBlRGVmaW5pdGlvbiA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAvJHtjb21wbGV4VHlwZU5hbWV9YCk7XG5cdFx0Y29uc3QgY29tcGxleFR5cGVPYmplY3Q6IENvbXBsZXhUeXBlID0ge1xuXHRcdFx0X3R5cGU6IFwiQ29tcGxleFR5cGVcIixcblx0XHRcdG5hbWU6IGNvbXBsZXhUeXBlTmFtZS5yZXBsYWNlKG5hbWVzcGFjZSArIFwiLlwiLCBcIlwiKSxcblx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogY29tcGxleFR5cGVOYW1lLFxuXHRcdFx0cHJvcGVydGllczogW10sXG5cdFx0XHRuYXZpZ2F0aW9uUHJvcGVydGllczogW11cblx0XHR9O1xuXG5cdFx0dGhpcy5jcmVhdGVBbm5vdGF0aW9uTGlzdHMoY29tcGxleFR5cGVBbm5vdGF0aW9uLCBjb21wbGV4VHlwZU9iamVjdC5mdWxseVF1YWxpZmllZE5hbWUsIGFubm90YXRpb25MaXN0cywgb0NhcGFiaWxpdGllcyk7XG5cdFx0Y29uc3QgY29tcGxleFR5cGVQcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoY29tcGxleFR5cGVEZWZpbml0aW9uKVxuXHRcdFx0LmZpbHRlcihwcm9wZXJ0eU5hbWVPck5vdCA9PiB7XG5cdFx0XHRcdGlmIChwcm9wZXJ0eU5hbWVPck5vdCAhPSBcIiRLZXlcIiAmJiBwcm9wZXJ0eU5hbWVPck5vdCAhPSBcIiRraW5kXCIpIHtcblx0XHRcdFx0XHRyZXR1cm4gY29tcGxleFR5cGVEZWZpbml0aW9uW3Byb3BlcnR5TmFtZU9yTm90XS4ka2luZCA9PT0gXCJQcm9wZXJ0eVwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0Lm1hcChwcm9wZXJ0eU5hbWUgPT4ge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5wYXJzZVByb3BlcnR5KG9NZXRhTW9kZWwsIGNvbXBsZXhUeXBlT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFubm90YXRpb25MaXN0cywgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHR9KTtcblxuXHRcdGNvbXBsZXhUeXBlT2JqZWN0LnByb3BlcnRpZXMgPSBjb21wbGV4VHlwZVByb3BlcnRpZXM7XG5cdFx0Y29uc3QgY29tcGxleFR5cGVOYXZpZ2F0aW9uUHJvcGVydGllcyA9IE9iamVjdC5rZXlzKGNvbXBsZXhUeXBlRGVmaW5pdGlvbilcblx0XHRcdC5maWx0ZXIocHJvcGVydHlOYW1lT3JOb3QgPT4ge1xuXHRcdFx0XHRpZiAocHJvcGVydHlOYW1lT3JOb3QgIT0gXCIkS2V5XCIgJiYgcHJvcGVydHlOYW1lT3JOb3QgIT0gXCIka2luZFwiKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGNvbXBsZXhUeXBlRGVmaW5pdGlvbltwcm9wZXJ0eU5hbWVPck5vdF0uJGtpbmQgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCI7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQubWFwKG5hdlByb3BlcnR5TmFtZSA9PiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnBhcnNlTmF2aWdhdGlvblByb3BlcnR5KG9NZXRhTW9kZWwsIGNvbXBsZXhUeXBlT2JqZWN0LCBuYXZQcm9wZXJ0eU5hbWUsIGFubm90YXRpb25MaXN0cywgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHR9KTtcblx0XHRjb21wbGV4VHlwZU9iamVjdC5uYXZpZ2F0aW9uUHJvcGVydGllcyA9IGNvbXBsZXhUeXBlTmF2aWdhdGlvblByb3BlcnRpZXM7XG5cdFx0cmV0dXJuIGNvbXBsZXhUeXBlT2JqZWN0O1xuXHR9LFxuXHRwYXJzZUFjdGlvbihhY3Rpb25OYW1lOiBzdHJpbmcsIGFjdGlvblJhd0RhdGE6IE1ldGFNb2RlbEFjdGlvbiwgbmFtZXNwYWNlOiBzdHJpbmcsIGVudGl0eUNvbnRhaW5lck5hbWU6IHN0cmluZyk6IEFjdGlvbiB7XG5cdFx0bGV0IGFjdGlvbkVudGl0eVR5cGU6IHN0cmluZyA9IFwiXCI7XG5cdFx0bGV0IGFjdGlvbkZRTiA9IGAke2FjdGlvbk5hbWV9YDtcblx0XHRjb25zdCBhY3Rpb25TaG9ydE5hbWUgPSBhY3Rpb25OYW1lLnN1YnN0cihuYW1lc3BhY2UubGVuZ3RoICsgMSk7XG5cdFx0aWYgKGFjdGlvblJhd0RhdGEuJElzQm91bmQpIHtcblx0XHRcdGNvbnN0IGJpbmRpbmdQYXJhbWV0ZXIgPSBhY3Rpb25SYXdEYXRhLiRQYXJhbWV0ZXJbMF07XG5cdFx0XHRhY3Rpb25FbnRpdHlUeXBlID0gYmluZGluZ1BhcmFtZXRlci4kVHlwZTtcblx0XHRcdGlmIChiaW5kaW5nUGFyYW1ldGVyLiRpc0NvbGxlY3Rpb24gPT09IHRydWUpIHtcblx0XHRcdFx0YWN0aW9uRlFOID0gYCR7YWN0aW9uTmFtZX0oQ29sbGVjdGlvbigke2FjdGlvbkVudGl0eVR5cGV9KSlgO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YWN0aW9uRlFOID0gYCR7YWN0aW9uTmFtZX0oJHthY3Rpb25FbnRpdHlUeXBlfSlgO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRhY3Rpb25GUU4gPSBgJHtlbnRpdHlDb250YWluZXJOYW1lfS8ke2FjdGlvblNob3J0TmFtZX1gO1xuXHRcdH1cblx0XHRjb25zdCBwYXJhbWV0ZXJzID0gYWN0aW9uUmF3RGF0YS4kUGFyYW1ldGVyIHx8IFtdO1xuXHRcdHJldHVybiB7XG5cdFx0XHRfdHlwZTogXCJBY3Rpb25cIixcblx0XHRcdG5hbWU6IGFjdGlvblNob3J0TmFtZSxcblx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogYWN0aW9uRlFOLFxuXHRcdFx0aXNCb3VuZDogYWN0aW9uUmF3RGF0YS4kSXNCb3VuZCxcblx0XHRcdHNvdXJjZVR5cGU6IGFjdGlvbkVudGl0eVR5cGUsXG5cdFx0XHRyZXR1cm5UeXBlOiBhY3Rpb25SYXdEYXRhLiRSZXR1cm5UeXBlID8gYWN0aW9uUmF3RGF0YS4kUmV0dXJuVHlwZS4kVHlwZSA6IFwiXCIsXG5cdFx0XHRwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzLm1hcChwYXJhbSA9PiB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0X3R5cGU6IFwiQWN0aW9uUGFyYW1ldGVyXCIsXG5cdFx0XHRcdFx0aXNFbnRpdHlTZXQ6IHBhcmFtLiRUeXBlID09PSBhY3Rpb25SYXdEYXRhLiRFbnRpdHlTZXRQYXRoLFxuXHRcdFx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogYCR7YWN0aW9uRlFOfS8ke3BhcmFtLiROYW1lfWAsXG5cdFx0XHRcdFx0dHlwZTogcGFyYW0uJFR5cGVcblx0XHRcdFx0XHQvLyBUT0RPIG1pc3NpbmcgcHJvcGVydGllcyA/XG5cdFx0XHRcdH07XG5cdFx0XHR9KVxuXHRcdH07XG5cdH0sXG5cdHBhcnNlRW50aXR5VHlwZXMob01ldGFNb2RlbDogYW55LCBvSW5DYXBhYmlsaXRpZXM/OiBFbnZpcm9ubWVudENhcGFiaWxpdGllcyk6IFBhcnNlck91dHB1dCB7XG5cdFx0bGV0IG9DYXBhYmlsaXRpZXM6IEVudmlyb25tZW50Q2FwYWJpbGl0aWVzO1xuXHRcdGlmICghb0luQ2FwYWJpbGl0aWVzKSB7XG5cdFx0XHRvQ2FwYWJpbGl0aWVzID0gRGVmYXVsdEVudmlyb25tZW50Q2FwYWJpbGl0aWVzO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvQ2FwYWJpbGl0aWVzID0gb0luQ2FwYWJpbGl0aWVzO1xuXHRcdH1cblx0XHRjb25zdCBvTWV0YU1vZGVsRGF0YSA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KFwiLyRcIik7XG5cdFx0Y29uc3Qgb0VudGl0eVNldHMgPSBvTWV0YU1vZGVsLmdldE9iamVjdChcIi9cIik7XG5cdFx0bGV0IGFubm90YXRpb25MaXN0czogQW5ub3RhdGlvbkxpc3RbXSA9IFtdO1xuXHRcdGNvbnN0IGVudGl0eVR5cGVzOiBFbnRpdHlUeXBlW10gPSBbXTtcblx0XHRjb25zdCBlbnRpdHlTZXRzOiBFbnRpdHlTZXRbXSA9IFtdO1xuXHRcdGNvbnN0IHNpbmdsZXRvbnM6IFNpbmdsZXRvbltdID0gW107XG5cdFx0Y29uc3QgY29tcGxleFR5cGVzOiBDb21wbGV4VHlwZVtdID0gW107XG5cdFx0Y29uc3QgZW50aXR5Q29udGFpbmVyTmFtZSA9IG9NZXRhTW9kZWxEYXRhLiRFbnRpdHlDb250YWluZXI7XG5cdFx0bGV0IG5hbWVzcGFjZSA9IFwiXCI7XG5cdFx0Y29uc3Qgc2NoZW1hS2V5cyA9IE9iamVjdC5rZXlzKG9NZXRhTW9kZWxEYXRhKS5maWx0ZXIobWV0YW1vZGVsS2V5ID0+IG9NZXRhTW9kZWxEYXRhW21ldGFtb2RlbEtleV0uJGtpbmQgPT09IFwiU2NoZW1hXCIpO1xuXHRcdGlmIChzY2hlbWFLZXlzICYmIHNjaGVtYUtleXMubGVuZ3RoID4gMCkge1xuXHRcdFx0bmFtZXNwYWNlID0gc2NoZW1hS2V5c1swXS5zdWJzdHIoMCwgc2NoZW1hS2V5c1swXS5sZW5ndGggLSAxKTtcblx0XHR9IGVsc2UgaWYgKGVudGl0eVR5cGVzICYmIGVudGl0eVR5cGVzLmxlbmd0aCkge1xuXHRcdFx0bmFtZXNwYWNlID0gZW50aXR5VHlwZXNbMF0uZnVsbHlRdWFsaWZpZWROYW1lLnJlcGxhY2UoZW50aXR5VHlwZXNbMF0ubmFtZSwgXCJcIik7XG5cdFx0XHRuYW1lc3BhY2UgPSBuYW1lc3BhY2Uuc3Vic3RyKDAsIG5hbWVzcGFjZS5sZW5ndGggLSAxKTtcblx0XHR9XG5cdFx0T2JqZWN0LmtleXMob01ldGFNb2RlbERhdGEpXG5cdFx0XHQuZmlsdGVyKGVudGl0eVR5cGVOYW1lID0+IHtcblx0XHRcdFx0cmV0dXJuIGVudGl0eVR5cGVOYW1lICE9PSBcIiRraW5kXCIgJiYgb01ldGFNb2RlbERhdGFbZW50aXR5VHlwZU5hbWVdLiRraW5kID09PSBcIkVudGl0eVR5cGVcIjtcblx0XHRcdH0pXG5cdFx0XHQuZm9yRWFjaChlbnRpdHlUeXBlTmFtZSA9PiB7XG5cdFx0XHRcdGNvbnN0IGVudGl0eVR5cGUgPSB0aGlzLnBhcnNlRW50aXR5VHlwZShvTWV0YU1vZGVsLCBlbnRpdHlUeXBlTmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBuYW1lc3BhY2UsIG9DYXBhYmlsaXRpZXMpO1xuXHRcdFx0XHRlbnRpdHlUeXBlLmVudGl0eVByb3BlcnRpZXMuZm9yRWFjaChlbnRpdHlQcm9wZXJ0eSA9PiB7XG5cdFx0XHRcdFx0aWYgKCFvTWV0YU1vZGVsRGF0YS4kQW5ub3RhdGlvbnNbZW50aXR5UHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lXSkge1xuXHRcdFx0XHRcdFx0b01ldGFNb2RlbERhdGEuJEFubm90YXRpb25zW2VudGl0eVByb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZV0gPSB7fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKCFvTWV0YU1vZGVsRGF0YS4kQW5ub3RhdGlvbnNbZW50aXR5UHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lXVtcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGREZWZhdWx0XCJdKSB7XG5cdFx0XHRcdFx0XHRvTWV0YU1vZGVsRGF0YS4kQW5ub3RhdGlvbnNbZW50aXR5UHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lXVtcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGREZWZhdWx0XCJdID0ge1xuXHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRcIixcblx0XHRcdFx0XHRcdFx0VmFsdWU6IHsgJFBhdGg6IGVudGl0eVByb3BlcnR5Lm5hbWUgfVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdHRoaXMuY3JlYXRlQW5ub3RhdGlvbkxpc3RzKFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRGVmYXVsdFwiOlxuXHRcdFx0XHRcdFx0XHRcdFx0b01ldGFNb2RlbERhdGEuJEFubm90YXRpb25zW2VudGl0eVByb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZV1bXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZERlZmF1bHRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRlbnRpdHlQcm9wZXJ0eS5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25MaXN0cyxcblx0XHRcdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRlbnRpdHlUeXBlcy5wdXNoKGVudGl0eVR5cGUpO1xuXHRcdFx0fSk7XG5cdFx0T2JqZWN0LmtleXMob0VudGl0eVNldHMpXG5cdFx0XHQuZmlsdGVyKGVudGl0eVNldE5hbWUgPT4ge1xuXHRcdFx0XHRyZXR1cm4gZW50aXR5U2V0TmFtZSAhPT0gXCIka2luZFwiICYmIG9FbnRpdHlTZXRzW2VudGl0eVNldE5hbWVdLiRraW5kID09PSBcIkVudGl0eVNldFwiO1xuXHRcdFx0fSlcblx0XHRcdC5mb3JFYWNoKGVudGl0eVNldE5hbWUgPT4ge1xuXHRcdFx0XHRjb25zdCBlbnRpdHlTZXQgPSB0aGlzLnBhcnNlRW50aXR5U2V0KG9NZXRhTW9kZWwsIGVudGl0eVNldE5hbWUsIGFubm90YXRpb25MaXN0cywgZW50aXR5Q29udGFpbmVyTmFtZSwgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHRcdGVudGl0eVNldHMucHVzaChlbnRpdHlTZXQpO1xuXHRcdFx0fSk7XG5cdFx0T2JqZWN0LmtleXMob0VudGl0eVNldHMpXG5cdFx0XHQuZmlsdGVyKHNpbmdsZXRvbk5hbWUgPT4ge1xuXHRcdFx0XHRyZXR1cm4gc2luZ2xldG9uTmFtZSAhPT0gXCIka2luZFwiICYmIG9FbnRpdHlTZXRzW3NpbmdsZXRvbk5hbWVdLiRraW5kID09PSBcIlNpbmdsZXRvblwiO1xuXHRcdFx0fSlcblx0XHRcdC5mb3JFYWNoKHNpbmdsZXRvbk5hbWUgPT4ge1xuXHRcdFx0XHRjb25zdCBzaW5nbGV0b24gPSB0aGlzLnBhcnNlU2luZ2xldG9uKG9NZXRhTW9kZWwsIHNpbmdsZXRvbk5hbWUsIGFubm90YXRpb25MaXN0cywgZW50aXR5Q29udGFpbmVyTmFtZSwgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHRcdHNpbmdsZXRvbnMucHVzaChzaW5nbGV0b24pO1xuXHRcdFx0fSk7XG5cdFx0T2JqZWN0LmtleXMob01ldGFNb2RlbERhdGEpXG5cdFx0XHQuZmlsdGVyKGNvbXBsZXhUeXBlTmFtZSA9PiB7XG5cdFx0XHRcdHJldHVybiBjb21wbGV4VHlwZU5hbWUgIT09IFwiJGtpbmRcIiAmJiBvTWV0YU1vZGVsRGF0YVtjb21wbGV4VHlwZU5hbWVdLiRraW5kID09PSBcIkNvbXBsZXhUeXBlXCI7XG5cdFx0XHR9KVxuXHRcdFx0LmZvckVhY2goY29tcGxleFR5cGVOYW1lID0+IHtcblx0XHRcdFx0Y29uc3QgY29tcGxleFR5cGUgPSB0aGlzLnBhcnNlQ29tcGxleFR5cGUob01ldGFNb2RlbCwgY29tcGxleFR5cGVOYW1lLCBhbm5vdGF0aW9uTGlzdHMsIG5hbWVzcGFjZSwgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHRcdGNvbXBsZXhUeXBlcy5wdXNoKGNvbXBsZXhUeXBlKTtcblx0XHRcdH0pO1xuXHRcdGNvbnN0IG9FbnRpdHlDb250YWluZXJOYW1lID0gT2JqZWN0LmtleXMob01ldGFNb2RlbERhdGEpLmZpbmQoZW50aXR5Q29udGFpbmVyTmFtZSA9PiB7XG5cdFx0XHRyZXR1cm4gZW50aXR5Q29udGFpbmVyTmFtZSAhPT0gXCIka2luZFwiICYmIG9NZXRhTW9kZWxEYXRhW2VudGl0eUNvbnRhaW5lck5hbWVdLiRraW5kID09PSBcIkVudGl0eUNvbnRhaW5lclwiO1xuXHRcdH0pO1xuXHRcdGxldCBlbnRpdHlDb250YWluZXI6IEVudGl0eUNvbnRhaW5lciA9IHt9O1xuXHRcdGlmIChvRW50aXR5Q29udGFpbmVyTmFtZSkge1xuXHRcdFx0ZW50aXR5Q29udGFpbmVyID0ge1xuXHRcdFx0XHRuYW1lOiBvRW50aXR5Q29udGFpbmVyTmFtZS5yZXBsYWNlKG5hbWVzcGFjZSArIFwiLlwiLCBcIlwiKSxcblx0XHRcdFx0ZnVsbHlRdWFsaWZpZWROYW1lOiBvRW50aXR5Q29udGFpbmVyTmFtZVxuXHRcdFx0fTtcblx0XHR9XG5cdFx0ZW50aXR5U2V0cy5mb3JFYWNoKGVudGl0eVNldCA9PiB7XG5cdFx0XHRjb25zdCBuYXZQcm9wZXJ0eUJpbmRpbmdzID0gb01ldGFNb2RlbERhdGFbZW50aXR5Q29udGFpbmVyTmFtZV1bZW50aXR5U2V0Lm5hbWVdLiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nO1xuXHRcdFx0aWYgKG5hdlByb3BlcnR5QmluZGluZ3MpIHtcblx0XHRcdFx0T2JqZWN0LmtleXMobmF2UHJvcGVydHlCaW5kaW5ncykuZm9yRWFjaChuYXZQcm9wTmFtZSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdGFyZ2V0RW50aXR5U2V0ID0gZW50aXR5U2V0cy5maW5kKGVudGl0eVNldE5hbWUgPT4gZW50aXR5U2V0TmFtZS5uYW1lID09PSBuYXZQcm9wZXJ0eUJpbmRpbmdzW25hdlByb3BOYW1lXSk7XG5cdFx0XHRcdFx0aWYgKHRhcmdldEVudGl0eVNldCkge1xuXHRcdFx0XHRcdFx0ZW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmdbbmF2UHJvcE5hbWVdID0gdGFyZ2V0RW50aXR5U2V0O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRjb25zdCBhY3Rpb25zOiBBY3Rpb25bXSA9IE9iamVjdC5rZXlzKG9NZXRhTW9kZWxEYXRhKVxuXHRcdFx0LmZpbHRlcihrZXkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gQXJyYXkuaXNBcnJheShvTWV0YU1vZGVsRGF0YVtrZXldKSAmJiBvTWV0YU1vZGVsRGF0YVtrZXldLmxlbmd0aCA+IDAgJiYgb01ldGFNb2RlbERhdGFba2V5XVswXS4ka2luZCA9PT0gXCJBY3Rpb25cIjtcblx0XHRcdH0pXG5cdFx0XHQucmVkdWNlKChvdXRBY3Rpb25zOiBBY3Rpb25bXSwgYWN0aW9uTmFtZSkgPT4ge1xuXHRcdFx0XHRjb25zdCBhY3Rpb25zID0gb01ldGFNb2RlbERhdGFbYWN0aW9uTmFtZV07XG5cdFx0XHRcdGFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uOiBNZXRhTW9kZWxBY3Rpb24pID0+IHtcblx0XHRcdFx0XHRvdXRBY3Rpb25zLnB1c2godGhpcy5wYXJzZUFjdGlvbihhY3Rpb25OYW1lLCBhY3Rpb24sIG5hbWVzcGFjZSwgZW50aXR5Q29udGFpbmVyTmFtZSkpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuIG91dEFjdGlvbnM7XG5cdFx0XHR9LCBbXSk7XG5cdFx0Ly8gRklYTUUgQ3JhcHB5IGNvZGUgdG8gZGVhbCB3aXRoIGFubm90YXRpb25zIGZvciBmdW5jdGlvbnNcblx0XHRjb25zdCBhbm5vdGF0aW9ucyA9IG9NZXRhTW9kZWxEYXRhLiRBbm5vdGF0aW9ucztcblx0XHRjb25zdCBhY3Rpb25Bbm5vdGF0aW9ucyA9IE9iamVjdC5rZXlzKGFubm90YXRpb25zKS5maWx0ZXIodGFyZ2V0ID0+IHRhcmdldC5pbmRleE9mKFwiKFwiKSAhPT0gLTEpO1xuXHRcdGFjdGlvbkFubm90YXRpb25zLmZvckVhY2godGFyZ2V0ID0+IHtcblx0XHRcdHRoaXMuY3JlYXRlQW5ub3RhdGlvbkxpc3RzKG9NZXRhTW9kZWxEYXRhLiRBbm5vdGF0aW9uc1t0YXJnZXRdLCB0YXJnZXQsIGFubm90YXRpb25MaXN0cywgb0NhcGFiaWxpdGllcyk7XG5cdFx0fSk7XG5cdFx0Y29uc3QgYWN0aW9uc05hbWVXaXRob3V0T3ZlcmxvYWQgPSBhY3Rpb25zLm1hcChhY3Rpb24gPT4gYWN0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZS5zcGxpdChcIihcIilbMF0pO1xuXHRcdGFjdGlvbnNOYW1lV2l0aG91dE92ZXJsb2FkLmZvckVhY2goYWN0aW9uTmFtZSA9PiB7XG5cdFx0XHRpZiAoYW5ub3RhdGlvbnMuaGFzT3duUHJvcGVydHkoYWN0aW9uTmFtZSkpIHtcblx0XHRcdFx0dGhpcy5jcmVhdGVBbm5vdGF0aW9uTGlzdHMob01ldGFNb2RlbERhdGEuJEFubm90YXRpb25zW2FjdGlvbk5hbWVdLCBhY3Rpb25OYW1lLCBhbm5vdGF0aW9uTGlzdHMsIG9DYXBhYmlsaXRpZXMpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGNvbnN0IGVudGl0eUNvbnRhaW5lckFubm90YXRpb25zID0gYW5ub3RhdGlvbnNbZW50aXR5Q29udGFpbmVyTmFtZV07XG5cblx0XHQvLyBSZXRyaWV2ZSBFbnRpdHkgQ29udGFpbmVyIGFubm90YXRpb25zXG5cdFx0aWYgKGVudGl0eUNvbnRhaW5lckFubm90YXRpb25zKSB7XG5cdFx0XHR0aGlzLmNyZWF0ZUFubm90YXRpb25MaXN0cyhlbnRpdHlDb250YWluZXJBbm5vdGF0aW9ucywgZW50aXR5Q29udGFpbmVyTmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHR9XG5cdFx0Ly8gU29ydCBieSB0YXJnZXQgbGVuZ3RoXG5cdFx0YW5ub3RhdGlvbkxpc3RzID0gYW5ub3RhdGlvbkxpc3RzLnNvcnQoKGEsIGIpID0+IChhLnRhcmdldC5sZW5ndGggPj0gYi50YXJnZXQubGVuZ3RoID8gMSA6IC0xKSk7XG5cdFx0Y29uc3QgcmVmZXJlbmNlczogUmVmZXJlbmNlW10gPSBbXTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0aWRlbnRpZmljYXRpb246IFwibWV0YW1vZGVsUmVzdWx0XCIsXG5cdFx0XHR2ZXJzaW9uOiBcIjQuMFwiLFxuXHRcdFx0c2NoZW1hOiB7XG5cdFx0XHRcdGVudGl0eUNvbnRhaW5lcixcblx0XHRcdFx0ZW50aXR5U2V0cyxcblx0XHRcdFx0ZW50aXR5VHlwZXMsXG5cdFx0XHRcdGNvbXBsZXhUeXBlcyxcblx0XHRcdFx0c2luZ2xldG9ucyxcblx0XHRcdFx0YXNzb2NpYXRpb25zOiBbXSxcblx0XHRcdFx0YWN0aW9ucyxcblx0XHRcdFx0bmFtZXNwYWNlLFxuXHRcdFx0XHRhbm5vdGF0aW9uczoge1xuXHRcdFx0XHRcdFwibWV0YW1vZGVsUmVzdWx0XCI6IGFubm90YXRpb25MaXN0c1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0cmVmZXJlbmNlczogcmVmZXJlbmNlc1xuXHRcdH07XG5cdH1cbn07XG5cbmNvbnN0IG1NZXRhTW9kZWxNYXA6IFJlY29yZDxzdHJpbmcsIFBhcnNlck91dHB1dD4gPSB7fTtcblxuLyoqXG4gKiBDb252ZXJ0IHRoZSBPRGF0YU1ldGFNb2RlbCBpbnRvIGFub3RoZXIgZm9ybWF0IHRoYXQgYWxsb3cgZm9yIGVhc3kgbWFuaXB1bGF0aW9uIG9mIHRoZSBhbm5vdGF0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge09EYXRhTWV0YU1vZGVsfSBvTWV0YU1vZGVsIFRoZSBjdXJyZW50IG9EYXRhTWV0YU1vZGVsXG4gKiBAcGFyYW0gb0NhcGFiaWxpdGllcyBUaGUgY3VycmVudCBjYXBhYmlsaXRpZXNcbiAqIEByZXR1cm5zIHtDb252ZXJ0ZXJPdXRwdXR9IEFuIG9iamVjdCBjb250YWluaW5nIG9iamVjdCBsaWtlIGFubm90YXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUeXBlcyhvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCwgb0NhcGFiaWxpdGllcz86IEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKTogQ29udmVydGVyT3V0cHV0IHtcblx0Y29uc3Qgc01ldGFNb2RlbElkID0gKG9NZXRhTW9kZWwgYXMgYW55KS5pZDtcblx0aWYgKCFtTWV0YU1vZGVsTWFwLmhhc093blByb3BlcnR5KHNNZXRhTW9kZWxJZCkpIHtcblx0XHRjb25zdCBwYXJzZWRPdXRwdXQgPSBNZXRhTW9kZWxDb252ZXJ0ZXIucGFyc2VFbnRpdHlUeXBlcyhvTWV0YU1vZGVsLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHRtTWV0YU1vZGVsTWFwW3NNZXRhTW9kZWxJZF0gPSBBbm5vdGF0aW9uQ29udmVydGVyLmNvbnZlcnRUeXBlcyhwYXJzZWRPdXRwdXQpO1xuXHR9XG5cdHJldHVybiAobU1ldGFNb2RlbE1hcFtzTWV0YU1vZGVsSWRdIGFzIGFueSkgYXMgQ29udmVydGVyT3V0cHV0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlTW9kZWxDYWNoZURhdGEob01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwpIHtcblx0ZGVsZXRlIG1NZXRhTW9kZWxNYXBbKG9NZXRhTW9kZWwgYXMgYW55KS5pZF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TWV0YU1vZGVsQ29udGV4dChvTWV0YU1vZGVsQ29udGV4dDogQ29udGV4dCwgYkluY2x1ZGVWaXNpdGVkT2JqZWN0czogYm9vbGVhbiA9IGZhbHNlKTogYW55IHtcblx0Y29uc3Qgb0NvbnZlcnRlck91dHB1dCA9IGNvbnZlcnRUeXBlcygob01ldGFNb2RlbENvbnRleHQuZ2V0TW9kZWwoKSBhcyB1bmtub3duKSBhcyBPRGF0YU1ldGFNb2RlbCk7XG5cdGNvbnN0IHNQYXRoID0gb01ldGFNb2RlbENvbnRleHQuZ2V0UGF0aCgpO1xuXG5cdGNvbnN0IGFQYXRoU3BsaXQgPSBzUGF0aC5zcGxpdChcIi9cIik7XG5cdGxldCB0YXJnZXRFbnRpdHlTZXQ6IF9FbnRpdHlTZXQgPSBvQ29udmVydGVyT3V0cHV0LmVudGl0eVNldHMuZmluZChlbnRpdHlTZXQgPT4gZW50aXR5U2V0Lm5hbWUgPT09IGFQYXRoU3BsaXRbMV0pIGFzIF9FbnRpdHlTZXQ7XG5cdGxldCByZWxhdGl2ZVBhdGggPSBhUGF0aFNwbGl0LnNsaWNlKDIpLmpvaW4oXCIvXCIpO1xuXG5cdGNvbnN0IGxvY2FsT2JqZWN0czogYW55W10gPSBbdGFyZ2V0RW50aXR5U2V0XTtcblx0d2hpbGUgKHJlbGF0aXZlUGF0aCAmJiByZWxhdGl2ZVBhdGgubGVuZ3RoID4gMCAmJiByZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChcIiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nXCIpKSB7XG5cdFx0bGV0IHJlbGF0aXZlU3BsaXQgPSByZWxhdGl2ZVBhdGguc3BsaXQoXCIvXCIpO1xuXHRcdGxldCBpZHggPSAwO1xuXHRcdGxldCBjdXJyZW50RW50aXR5U2V0LCBzTmF2UHJvcFRvQ2hlY2s7XG5cblx0XHRyZWxhdGl2ZVNwbGl0ID0gcmVsYXRpdmVTcGxpdC5zbGljZSgxKTsgLy8gUmVtb3ZpbmcgXCIkTmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1wiXG5cdFx0d2hpbGUgKCFjdXJyZW50RW50aXR5U2V0ICYmIHJlbGF0aXZlU3BsaXQubGVuZ3RoID4gaWR4ICYmIHJlbGF0aXZlU3BsaXRbaWR4XSAhPT0gXCIkTmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1wiKSB7XG5cdFx0XHQvLyBGaW5kaW5nIHRoZSBjb3JyZWN0IGVudGl0eVNldCBmb3IgdGhlIG5hdmlnYWl0b24gcHJvcGVydHkgYmluZGluZyBleGFtcGxlOiBcIlNldC9fU2FsZXNPcmRlclwiXG5cdFx0XHRzTmF2UHJvcFRvQ2hlY2sgPSByZWxhdGl2ZVNwbGl0LnNsaWNlKDAsIGlkeCArIDEpLmpvaW4oXCIvXCIpO1xuXHRcdFx0Y3VycmVudEVudGl0eVNldCA9IHRhcmdldEVudGl0eVNldCAmJiB0YXJnZXRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1tzTmF2UHJvcFRvQ2hlY2tdO1xuXHRcdFx0aWR4Kys7XG5cdFx0fVxuXHRcdGlmICghY3VycmVudEVudGl0eVNldCkge1xuXHRcdFx0Ly8gRmFsbCBiYWNrIHRvIFNpbmdsZSBuYXYgcHJvcCBpZiBlbnRpdHlTZXQgaXMgbm90IGZvdW5kLlxuXHRcdFx0c05hdlByb3BUb0NoZWNrID0gcmVsYXRpdmVTcGxpdFswXTtcblx0XHR9XG5cdFx0Y29uc3QgYU5hdlByb3BzID0gc05hdlByb3BUb0NoZWNrPy5zcGxpdChcIi9cIikgfHwgW107XG5cdFx0bGV0IHRhcmdldEVudGl0eVR5cGUgPSB0YXJnZXRFbnRpdHlTZXQgJiYgdGFyZ2V0RW50aXR5U2V0LmVudGl0eVR5cGU7XG5cdFx0Zm9yIChjb25zdCBzTmF2UHJvcCBvZiBhTmF2UHJvcHMpIHtcblx0XHRcdC8vIFB1c2hpbmcgYWxsIG5hdiBwcm9wcyB0byB0aGUgdmlzaXRlZCBvYmplY3RzLiBleGFtcGxlOiBcIlNldFwiLCBcIl9TYWxlc09yZGVyXCIgZm9yIFwiU2V0L19TYWxlc09yZGVyXCIoaW4gTmF2aWdhdGlvblByb3BlcnR5QmluZGluZylcblx0XHRcdGNvbnN0IHRhcmdldE5hdlByb3AgPSB0YXJnZXRFbnRpdHlUeXBlICYmIHRhcmdldEVudGl0eVR5cGUubmF2aWdhdGlvblByb3BlcnRpZXMuZmluZChuYXZQcm9wID0+IG5hdlByb3AubmFtZSA9PT0gc05hdlByb3ApO1xuXHRcdFx0aWYgKHRhcmdldE5hdlByb3ApIHtcblx0XHRcdFx0bG9jYWxPYmplY3RzLnB1c2godGFyZ2V0TmF2UHJvcCk7XG5cdFx0XHRcdHRhcmdldEVudGl0eVR5cGUgPSB0YXJnZXROYXZQcm9wLnRhcmdldFR5cGU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0dGFyZ2V0RW50aXR5U2V0ID1cblx0XHRcdCh0YXJnZXRFbnRpdHlTZXQgJiYgY3VycmVudEVudGl0eVNldCkgfHwgKHRhcmdldEVudGl0eVNldCAmJiB0YXJnZXRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1tyZWxhdGl2ZVNwbGl0WzBdXSk7XG5cdFx0aWYgKHRhcmdldEVudGl0eVNldCkge1xuXHRcdFx0Ly8gUHVzaGluZyB0aGUgdGFyZ2V0IGVudGl0eVNldCB0byB2aXNpdGVkIG9iamVjdHNcblx0XHRcdGxvY2FsT2JqZWN0cy5wdXNoKHRhcmdldEVudGl0eVNldCk7XG5cdFx0fVxuXHRcdC8vIFJlLWNhbGN1bGF0aW5nIHRoZSByZWxhdGl2ZSBwYXRoXG5cdFx0cmVsYXRpdmVQYXRoID0gcmVsYXRpdmVTcGxpdC5zbGljZShhTmF2UHJvcHMubGVuZ3RoIHx8IDEpLmpvaW4oXCIvXCIpO1xuXHR9XG5cdGlmIChyZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChcIiRUeXBlXCIpKSB7XG5cdFx0Ly8gV2UncmUgYW55d2F5IGdvaW5nIHRvIGxvb2sgb24gdGhlIGVudGl0eVR5cGUuLi5cblx0XHRyZWxhdGl2ZVBhdGggPSBhUGF0aFNwbGl0LnNsaWNlKDMpLmpvaW4oXCIvXCIpO1xuXHR9XG5cdGlmICh0YXJnZXRFbnRpdHlTZXQgJiYgcmVsYXRpdmVQYXRoLmxlbmd0aCkge1xuXHRcdGNvbnN0IG9UYXJnZXQgPSB0YXJnZXRFbnRpdHlTZXQuZW50aXR5VHlwZS5yZXNvbHZlUGF0aChyZWxhdGl2ZVBhdGgsIGJJbmNsdWRlVmlzaXRlZE9iamVjdHMpO1xuXHRcdGlmIChvVGFyZ2V0KSB7XG5cdFx0XHRpZiAoYkluY2x1ZGVWaXNpdGVkT2JqZWN0cykge1xuXHRcdFx0XHRvVGFyZ2V0LnZpc2l0ZWRPYmplY3RzID0gbG9jYWxPYmplY3RzLmNvbmNhdChvVGFyZ2V0LnZpc2l0ZWRPYmplY3RzKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKHRhcmdldEVudGl0eVNldC5lbnRpdHlUeXBlICYmIHRhcmdldEVudGl0eVNldC5lbnRpdHlUeXBlLmFjdGlvbnMpIHtcblx0XHRcdC8vIGlmIHRhcmdldCBpcyBhbiBhY3Rpb24gb3IgYW4gYWN0aW9uIHBhcmFtZXRlclxuXHRcdFx0Y29uc3QgYWN0aW9ucyA9IHRhcmdldEVudGl0eVNldC5lbnRpdHlUeXBlICYmIHRhcmdldEVudGl0eVNldC5lbnRpdHlUeXBlLmFjdGlvbnM7XG5cdFx0XHRjb25zdCByZWxhdGl2ZVNwbGl0ID0gcmVsYXRpdmVQYXRoLnNwbGl0KFwiL1wiKTtcblx0XHRcdGlmIChhY3Rpb25zW3JlbGF0aXZlU3BsaXRbMF1dKSB7XG5cdFx0XHRcdGNvbnN0IGFjdGlvbiA9IGFjdGlvbnNbcmVsYXRpdmVTcGxpdFswXV07XG5cdFx0XHRcdGlmIChyZWxhdGl2ZVNwbGl0WzFdICYmIGFjdGlvbi5wYXJhbWV0ZXJzKSB7XG5cdFx0XHRcdFx0Y29uc3QgcGFyYW1ldGVyTmFtZSA9IHJlbGF0aXZlU3BsaXRbMV07XG5cdFx0XHRcdFx0Y29uc3QgdGFyZ2V0UGFyYW1ldGVyID0gYWN0aW9uLnBhcmFtZXRlcnMuZmluZChwYXJhbWV0ZXIgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHBhcmFtZXRlci5mdWxseVF1YWxpZmllZE5hbWUuZW5kc1dpdGgoXCIvXCIgKyBwYXJhbWV0ZXJOYW1lKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRyZXR1cm4gdGFyZ2V0UGFyYW1ldGVyO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHJlbGF0aXZlUGF0aC5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRyZXR1cm4gYWN0aW9uO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBvVGFyZ2V0O1xuXHR9IGVsc2Uge1xuXHRcdGlmIChiSW5jbHVkZVZpc2l0ZWRPYmplY3RzKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0YXJnZXQ6IHRhcmdldEVudGl0eVNldCxcblx0XHRcdFx0dmlzaXRlZE9iamVjdHM6IGxvY2FsT2JqZWN0c1xuXHRcdFx0fTtcblx0XHR9XG5cdFx0cmV0dXJuIHRhcmdldEVudGl0eVNldDtcblx0fVxufVxuXG50eXBlIENvbnZlcnRlck9iamVjdCA9IHtcblx0X3R5cGU6IHN0cmluZztcblx0bmFtZTogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFJlc29sdmVkVGFyZ2V0ID0ge1xuXHR0YXJnZXQ/OiBDb252ZXJ0ZXJPYmplY3Q7XG5cdHZpc2l0ZWRPYmplY3RzOiBDb252ZXJ0ZXJPYmplY3RbXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMob01ldGFNb2RlbENvbnRleHQ6IENvbnRleHQsIG9FbnRpdHlTZXRNZXRhTW9kZWxDb250ZXh0PzogQ29udGV4dCk6IERhdGFNb2RlbE9iamVjdFBhdGgge1xuXHRjb25zdCBtZXRhTW9kZWxDb250ZXh0ID0gY29udmVydE1ldGFNb2RlbENvbnRleHQob01ldGFNb2RlbENvbnRleHQsIHRydWUpO1xuXHRsZXQgdGFyZ2V0RW50aXR5U2V0TG9jYXRpb247XG5cdGlmIChvRW50aXR5U2V0TWV0YU1vZGVsQ29udGV4dCAmJiBvRW50aXR5U2V0TWV0YU1vZGVsQ29udGV4dC5nZXRQYXRoKCkgIT09IFwiL1wiKSB7XG5cdFx0dGFyZ2V0RW50aXR5U2V0TG9jYXRpb24gPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMob0VudGl0eVNldE1ldGFNb2RlbENvbnRleHQpO1xuXHR9XG5cdHJldHVybiBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdEZyb21QYXRoKG1ldGFNb2RlbENvbnRleHQsIHRhcmdldEVudGl0eVNldExvY2F0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0RnJvbVBhdGgoXG5cdG1ldGFNb2RlbENvbnRleHQ6IFJlc29sdmVkVGFyZ2V0LFxuXHR0YXJnZXRFbnRpdHlTZXRMb2NhdGlvbj86IERhdGFNb2RlbE9iamVjdFBhdGhcbik6IERhdGFNb2RlbE9iamVjdFBhdGgge1xuXHRjb25zdCBkYXRhTW9kZWxPYmplY3RzID0gbWV0YU1vZGVsQ29udGV4dC52aXNpdGVkT2JqZWN0cy5maWx0ZXIoXG5cdFx0KHZpc2l0ZWRPYmplY3Q6IGFueSkgPT4gdmlzaXRlZE9iamVjdCAmJiB2aXNpdGVkT2JqZWN0Lmhhc093blByb3BlcnR5KFwiX3R5cGVcIikgJiYgdmlzaXRlZE9iamVjdC5fdHlwZSAhPT0gXCJFbnRpdHlUeXBlXCJcblx0KTtcblx0aWYgKG1ldGFNb2RlbENvbnRleHQudGFyZ2V0ICYmIG1ldGFNb2RlbENvbnRleHQudGFyZ2V0Lmhhc093blByb3BlcnR5KFwiX3R5cGVcIikgJiYgbWV0YU1vZGVsQ29udGV4dC50YXJnZXQuX3R5cGUgIT09IFwiRW50aXR5VHlwZVwiKSB7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0cy5wdXNoKG1ldGFNb2RlbENvbnRleHQudGFyZ2V0KTtcblx0fVxuXHRjb25zdCBuYXZpZ2F0aW9uUHJvcGVydGllczogX05hdmlnYXRpb25Qcm9wZXJ0eVtdID0gW107XG5cdGNvbnN0IHJvb3RFbnRpdHlTZXQ6IF9FbnRpdHlTZXQgPSBkYXRhTW9kZWxPYmplY3RzWzBdIGFzIF9FbnRpdHlTZXQ7XG5cdC8vIGN1cnJlbnRFbnRpdHlTZXQgY2FuIGJlIHVuZGVmaW5lZC5cblx0bGV0IGN1cnJlbnRFbnRpdHlTZXQ6IF9FbnRpdHlTZXQgfCB1bmRlZmluZWQgPSByb290RW50aXR5U2V0IGFzIF9FbnRpdHlTZXQ7XG5cdGxldCBjdXJyZW50RW50aXR5VHlwZTogX0VudGl0eVR5cGUgPSByb290RW50aXR5U2V0LmVudGl0eVR5cGU7XG5cdGxldCBpID0gMTtcblx0bGV0IGN1cnJlbnRPYmplY3Q7XG5cdGxldCBuYXZpZ2F0ZWRQYXRocyA9IFtdO1xuXHR3aGlsZSAoaSA8IGRhdGFNb2RlbE9iamVjdHMubGVuZ3RoKSB7XG5cdFx0Y3VycmVudE9iamVjdCA9IGRhdGFNb2RlbE9iamVjdHNbaSsrXTtcblx0XHRpZiAoY3VycmVudE9iamVjdC5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIikge1xuXHRcdFx0bmF2aWdhdGVkUGF0aHMucHVzaChjdXJyZW50T2JqZWN0Lm5hbWUpO1xuXHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXMucHVzaChjdXJyZW50T2JqZWN0IGFzIF9OYXZpZ2F0aW9uUHJvcGVydHkpO1xuXHRcdFx0Y3VycmVudEVudGl0eVR5cGUgPSAoY3VycmVudE9iamVjdCBhcyBfTmF2aWdhdGlvblByb3BlcnR5KS50YXJnZXRUeXBlO1xuXHRcdFx0aWYgKGN1cnJlbnRFbnRpdHlTZXQgJiYgY3VycmVudEVudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nLmhhc093blByb3BlcnR5KG5hdmlnYXRlZFBhdGhzLmpvaW4oXCIvXCIpKSkge1xuXHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gY3VycmVudEVudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW2N1cnJlbnRPYmplY3QubmFtZV07XG5cdFx0XHRcdG5hdmlnYXRlZFBhdGhzID0gW107XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoY3VycmVudE9iamVjdC5fdHlwZSA9PT0gXCJFbnRpdHlTZXRcIikge1xuXHRcdFx0Y3VycmVudEVudGl0eVNldCA9IGN1cnJlbnRPYmplY3QgYXMgX0VudGl0eVNldDtcblx0XHRcdGN1cnJlbnRFbnRpdHlUeXBlID0gY3VycmVudEVudGl0eVNldC5lbnRpdHlUeXBlO1xuXHRcdH1cblx0fVxuXG5cdGlmICh0YXJnZXRFbnRpdHlTZXRMb2NhdGlvbiAmJiB0YXJnZXRFbnRpdHlTZXRMb2NhdGlvbi5zdGFydGluZ0VudGl0eVNldCAhPT0gcm9vdEVudGl0eVNldCkge1xuXHRcdC8vIEluIGNhc2UgdGhlIGVudGl0eXNldCBpcyBub3Qgc3RhcnRpbmcgZnJvbSB0aGUgc2FtZSBsb2NhdGlvbiBpdCBtYXkgbWVhbiB0aGF0IHdlIGFyZSBkb2luZyB0b28gbXVjaCB3b3JrIGVhcmxpZXIgZm9yIHNvbWUgcmVhc29uXG5cdFx0Ly8gQXMgc3VjaCB3ZSBuZWVkIHRvIHJlZGVmaW5lIHRoZSBjb250ZXh0IHNvdXJjZSBmb3IgdGhlIHRhcmdldEVudGl0eVNldExvY2F0aW9uXG5cdFx0Y29uc3Qgc3RhcnRpbmdJbmRleCA9IGRhdGFNb2RlbE9iamVjdHMuaW5kZXhPZih0YXJnZXRFbnRpdHlTZXRMb2NhdGlvbi5zdGFydGluZ0VudGl0eVNldCk7XG5cdFx0aWYgKHN0YXJ0aW5nSW5kZXggIT09IC0xKSB7XG5cdFx0XHQvLyBJZiBpdCdzIG5vdCBmb3VuZCBJIGRvbid0IGtub3cgd2hhdCB3ZSBjYW4gZG8gKHByb2JhYmx5IG5vdGhpbmcpXG5cdFx0XHRjb25zdCByZXF1aXJlZERhdGFNb2RlbE9iamVjdHMgPSBkYXRhTW9kZWxPYmplY3RzLnNsaWNlKDAsIHN0YXJ0aW5nSW5kZXgpO1xuXHRcdFx0dGFyZ2V0RW50aXR5U2V0TG9jYXRpb24uc3RhcnRpbmdFbnRpdHlTZXQgPSByb290RW50aXR5U2V0O1xuXHRcdFx0dGFyZ2V0RW50aXR5U2V0TG9jYXRpb24ubmF2aWdhdGlvblByb3BlcnRpZXMgPSByZXF1aXJlZERhdGFNb2RlbE9iamVjdHNcblx0XHRcdFx0LmZpbHRlcigob2JqZWN0OiBhbnkpID0+IG9iamVjdC5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIilcblx0XHRcdFx0LmNvbmNhdCh0YXJnZXRFbnRpdHlTZXRMb2NhdGlvbi5uYXZpZ2F0aW9uUHJvcGVydGllcykgYXMgX05hdmlnYXRpb25Qcm9wZXJ0eVtdO1xuXHRcdH1cblx0fVxuXHRjb25zdCBvdXREYXRhTW9kZWxQYXRoID0ge1xuXHRcdHN0YXJ0aW5nRW50aXR5U2V0OiByb290RW50aXR5U2V0LFxuXHRcdHRhcmdldEVudGl0eVNldDogY3VycmVudEVudGl0eVNldCxcblx0XHR0YXJnZXRFbnRpdHlUeXBlOiBjdXJyZW50RW50aXR5VHlwZSxcblx0XHR0YXJnZXRPYmplY3Q6IG1ldGFNb2RlbENvbnRleHQudGFyZ2V0LFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzLFxuXHRcdGNvbnRleHRMb2NhdGlvbjogdGFyZ2V0RW50aXR5U2V0TG9jYXRpb25cblx0fTtcblx0aWYgKCFvdXREYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbikge1xuXHRcdG91dERhdGFNb2RlbFBhdGguY29udGV4dExvY2F0aW9uID0gb3V0RGF0YU1vZGVsUGF0aDtcblx0fVxuXHRyZXR1cm4gb3V0RGF0YU1vZGVsUGF0aDtcbn1cbiJdfQ==