@sapui5/sap.fe.core 1.112.0 → 1.113.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.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime-dbg.js +4 -3
- package/src/sap/fe/core/ActionRuntime.js +1 -1
- package/src/sap/fe/core/ActionRuntime.js.map +1 -1
- package/src/sap/fe/core/ActionRuntime.ts +2 -1
- package/src/sap/fe/core/AppComponent-dbg.js +9 -5
- package/src/sap/fe/core/AppComponent.js +1 -1
- package/src/sap/fe/core/AppComponent.js.map +1 -1
- package/src/sap/fe/core/AppComponent.ts +8 -6
- package/src/sap/fe/core/CommonUtils-dbg.js +55 -173
- package/src/sap/fe/core/CommonUtils.js +1 -1
- package/src/sap/fe/core/CommonUtils.js.map +1 -1
- package/src/sap/fe/core/CommonUtils.ts +64 -208
- package/src/sap/fe/core/ExtensionAPI-dbg.js +3 -1
- package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
- package/src/sap/fe/core/ExtensionAPI.ts +2 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +2 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +2 -2
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +13 -18
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +25 -17
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +4 -4
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.ts +34 -22
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +2 -2
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +2 -2
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +3 -1
- package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +69 -34
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +75 -42
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +25 -65
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +25 -69
- package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +3 -5
- package/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.ts +2 -4
- package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +4 -4
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +103 -0
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +124 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +34 -119
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +33 -118
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +6 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +9 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +9 -4
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +12 -3
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +6 -3
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +16 -8
- package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +1 -8
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +0 -9
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +11 -7
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +11 -14
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +67 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +68 -0
- package/src/sap/fe/core/converters/ConverterContext-dbg.js +3 -5
- package/src/sap/fe/core/converters/ConverterContext.js +1 -1
- package/src/sap/fe/core/converters/ConverterContext.js.map +1 -1
- package/src/sap/fe/core/converters/ConverterContext.ts +2 -5
- package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +5 -3
- package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper.ts +7 -1
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +19 -26
- package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.ts +23 -28
- package/src/sap/fe/core/converters/annotations/DataField-dbg.js +18 -6
- package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.ts +15 -5
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +35 -17
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -12
- package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.ts +9 -14
- package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +7 -6
- package/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form.ts +5 -11
- package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +5 -5
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -4
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +54 -32
- package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.ts +69 -49
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +21 -14
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +18 -15
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +92 -33
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +93 -24
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +8 -6
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +7 -4
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +27 -18
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +36 -23
- package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +10 -14
- package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +8 -11
- package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +8 -6
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +8 -6
- package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +3 -2
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +2 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +17 -16
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +11 -11
- package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +8 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +7 -2
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +2 -2
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +2 -2
- package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -6
- package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.ts +1 -5
- package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.ts +5 -0
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +2 -1
- package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.ts +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +5 -4
- package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.ts +4 -5
- package/src/sap/fe/core/helpers/MessageStrip-dbg.js +6 -5
- package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
- package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +167 -4
- package/src/sap/fe/core/helpers/MetaModelFunction.js +1 -1
- package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -1
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +205 -3
- package/src/sap/fe/core/helpers/ModelHelper-dbg.js +37 -73
- package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +41 -68
- package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +15 -2
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
- package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/ResourceModelHelper.ts +16 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +40 -6
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +39 -5
- package/src/sap/fe/core/helpers/SizeHelper-dbg.js +53 -0
- package/src/sap/fe/core/helpers/SizeHelper.js +6 -0
- package/src/sap/fe/core/helpers/SizeHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SizeHelper.ts +51 -0
- package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +29 -25
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.ts +26 -24
- package/src/sap/fe/core/helpers/TypeGuards-dbg.js +147 -1
- package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.ts +151 -1
- package/src/sap/fe/core/library-dbg.js +1 -1
- package/src/sap/fe/core/library-preload.js +84 -70
- package/src/sap/fe/core/library-preload.js.map +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/manifest.json +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +67 -15
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -14
- package/src/sap/fe/core/messagebundle.properties +2 -0
- package/src/sap/fe/core/messagebundle_ar.properties +4 -3
- package/src/sap/fe/core/messagebundle_bg.properties +10 -9
- package/src/sap/fe/core/messagebundle_ca.properties +1 -0
- package/src/sap/fe/core/messagebundle_cs.properties +2 -1
- package/src/sap/fe/core/messagebundle_cy.properties +2 -1
- package/src/sap/fe/core/messagebundle_da.properties +2 -1
- package/src/sap/fe/core/messagebundle_de.properties +11 -10
- package/src/sap/fe/core/messagebundle_el.properties +4 -3
- package/src/sap/fe/core/messagebundle_en.properties +1 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +2 -1
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +1 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +2 -0
- package/src/sap/fe/core/messagebundle_es.properties +2 -1
- package/src/sap/fe/core/messagebundle_es_MX.properties +2 -1
- package/src/sap/fe/core/messagebundle_et.properties +2 -1
- package/src/sap/fe/core/messagebundle_fi.properties +2 -1
- package/src/sap/fe/core/messagebundle_fr.properties +2 -1
- package/src/sap/fe/core/messagebundle_fr_CA.properties +11 -10
- package/src/sap/fe/core/messagebundle_hi.properties +11 -10
- package/src/sap/fe/core/messagebundle_hr.properties +2 -1
- package/src/sap/fe/core/messagebundle_hu.properties +2 -1
- package/src/sap/fe/core/messagebundle_id.properties +11 -10
- package/src/sap/fe/core/messagebundle_it.properties +2 -1
- package/src/sap/fe/core/messagebundle_iw.properties +2 -1
- package/src/sap/fe/core/messagebundle_ja.properties +3 -2
- package/src/sap/fe/core/messagebundle_kk.properties +2 -1
- package/src/sap/fe/core/messagebundle_ko.properties +11 -10
- package/src/sap/fe/core/messagebundle_lt.properties +2 -1
- package/src/sap/fe/core/messagebundle_lv.properties +11 -10
- package/src/sap/fe/core/messagebundle_ms.properties +2 -1
- package/src/sap/fe/core/messagebundle_nl.properties +2 -1
- package/src/sap/fe/core/messagebundle_no.properties +2 -1
- package/src/sap/fe/core/messagebundle_pl.properties +11 -10
- package/src/sap/fe/core/messagebundle_pt.properties +2 -1
- package/src/sap/fe/core/messagebundle_pt_PT.properties +2 -1
- package/src/sap/fe/core/messagebundle_ro.properties +14 -13
- package/src/sap/fe/core/messagebundle_ru.properties +11 -10
- package/src/sap/fe/core/messagebundle_sh.properties +2 -1
- package/src/sap/fe/core/messagebundle_sk.properties +2 -1
- package/src/sap/fe/core/messagebundle_sl.properties +2 -1
- package/src/sap/fe/core/messagebundle_sv.properties +11 -10
- package/src/sap/fe/core/messagebundle_th.properties +2 -1
- package/src/sap/fe/core/messagebundle_tr.properties +2 -1
- package/src/sap/fe/core/messagebundle_uk.properties +2 -1
- package/src/sap/fe/core/messagebundle_vi.properties +2 -1
- package/src/sap/fe/core/messagebundle_zh_CN.properties +11 -10
- package/src/sap/fe/core/messagebundle_zh_TW.properties +11 -10
- package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +8 -4
- package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +7 -3
- package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +7 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +6 -0
- package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +7 -1
- package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +10 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +6 -6
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +3 -8
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +10 -3
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +13 -1
- package/src/sap/fe/core/templating/CommonFormatters-dbg.js +4 -3
- package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.ts +2 -2
- package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +19 -18
- package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +24 -18
- package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +5 -5
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -2
- package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +19 -28
- package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -24
- package/src/sap/fe/core/templating/EntityTypeHelper-dbg.js +48 -0
- package/src/sap/fe/core/templating/EntityTypeHelper.js +6 -0
- package/src/sap/fe/core/templating/EntityTypeHelper.js.map +1 -0
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +37 -0
- package/src/sap/fe/core/templating/FilterTemplating-dbg.js +7 -8
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.ts +5 -8
- package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +1 -6
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.ts +0 -5
- package/src/sap/fe/core/templating/PropertyHelper-dbg.js +13 -46
- package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.ts +14 -43
- package/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
- package/src/sap/fe/core/templating/UIFormatters.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/UIFormatters.ts +43 -32
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +0 -91
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/helpers/BindingToolkit"],function(t){"use strict";var e={};var i=t.pathInModel;var n=t.or;var s=t.not;var a=t.equal;var r=t.and;const o={IsCreateMode:i("createMode","ui"),IsEditable:i("/isEditable","ui"),IsTransientBinding:a(i("@$ui5.context.isTransient"),true),IsTotal:a(i("@$ui5.node.isTotal"),true),IsExpanded:a(i("@$ui5.node.isExpanded"),true),NodeLevel:i("@$ui5.node.level"),IsInactive:i("@$ui5.context.isInactive")};e.UI=o;const u={HasDraft:i("HasDraftEntity"),HasActive:i("HasActiveEntity"),IsActive:i("IsActiveEntity")};e.Entity=u;const c={IsNewObject:r(s(u.HasActive),s(u.IsActive)),HasNoDraftForCurrentUser:n(s(u.HasDraft),r(u.HasDraft,s(i("DraftAdministrativeData/DraftIsCreatedByMe"))))};e.Draft=c;function d(t,e){return t.singletons.find(t=>t.fullyQualifiedName===e)}const
|
|
5
|
+
sap.ui.define(["sap/fe/core/helpers/BindingToolkit"],function(t){"use strict";var e={};var i=t.pathInModel;var n=t.or;var s=t.not;var a=t.equal;var r=t.and;const o={IsCreateMode:i("createMode","ui"),IsEditable:i("/isEditable","ui"),IsTransientBinding:a(i("@$ui5.context.isTransient"),true),IsTotal:a(i("@$ui5.node.isTotal"),true),IsExpanded:a(i("@$ui5.node.isExpanded"),true),NodeLevel:i("@$ui5.node.level"),IsInactive:i("@$ui5.context.isInactive")};e.UI=o;const u={HasDraft:i("HasDraftEntity"),HasActive:i("HasActiveEntity"),IsActive:i("IsActiveEntity")};e.Entity=u;const c={IsNewObject:r(s(u.HasActive),s(u.IsActive)),HasNoDraftForCurrentUser:n(s(u.HasDraft),r(u.HasDraft,s(i("DraftAdministrativeData/DraftIsCreatedByMe"))))};e.Draft=c;function d(t,e){return t.singletons.find(t=>t.fullyQualifiedName===e)}const f=function(t,e,i){if(t.indexOf("/")===0){const i=t.split("/").filter(Boolean),n=i.pop(),s=i.join("/"),a=d(e,s);if(a){t=`/${a.name}/${n}`}}else{const e=i.concat();e.push(t);t=e.join("/")}return t};e.singletonPathVisitor=f;function l(t,e,i){if(i){const e=`${i===null||i===void 0?void 0:i.substring(i.lastIndexOf("/")+1)}/`;if(t.startsWith(e)){return t.substring(e.length)}}return f(t,e.getConvertedTypes(),[])}e.bindingContextPathVisitor=l;return e},false);
|
|
6
6
|
//# sourceMappingURL=BindingHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BindingHelper.js","names":["sap","ui","define","BindingToolkit","_exports","pathInModel","or","not","equal","and","UI","IsCreateMode","IsEditable","IsTransientBinding","IsTotal","IsExpanded","NodeLevel","IsInactive","Entity","HasDraft","HasActive","IsActive","Draft","IsNewObject","HasNoDraftForCurrentUser","getSingleton","convertedTypes","fullyQualifiedName","singletons","find","singleton","singletonPathVisitor","path","visitedNavigationPaths","indexOf","parts","split","filter","Boolean","propertyName","pop","entitySetName","join","name","localPath","concat","push","bindingContextPathVisitor","converterContext","bindingParameterFullName","bindingParameterPrefix","substring","lastIndexOf","startsWith","length","getConvertedTypes"],"sources":["BindingHelper-dbg.js"],"mappings":";;;;AAIAA,IAAIC,GAAGC,OAAO,CAAC,sCAAuC,SAAUC,GAC9D,aAEA,IAAIC,EAAW,CAAC,EAChB,IAAIC,EAAcF,EAAeE,YACjC,IAAIC,EAAKH,EAAeG,GACxB,IAAIC,EAAMJ,EAAeI,IACzB,IAAIC,EAAQL,EAAeK,MAC3B,IAAIC,EAAMN,EAAeM,IACzB,MAAMC,EAAK,CACTC,aAAcN,EAAY,aAAc,MACxCO,WAAYP,EAAY,cAAe,MACvCQ,mBAAoBL,EAAMH,EAAY,6BAA8B,MACpES,QAASN,EAAMH,EAAY,sBAAuB,MAClDU,WAAYP,EAAMH,EAAY,yBAA0B,MACxDW,UAAWX,EAAY,oBACvBY,WAAYZ,EAAY,6BAE1BD,EAASM,GAAKA,EACd,MAAMQ,EAAS,CACbC,SAAUd,EAAY,kBACtBe,UAAWf,EAAY,mBACvBgB,SAAUhB,EAAY,mBAExBD,EAASc,OAASA,EAClB,MAAMI,EAAQ,CACZC,YAAad,EAAIF,EAAIW,EAAOE,WAAYb,EAAIW,EAAOG,WACnDG,yBAA0BlB,EAAGC,EAAIW,EAAOC,UAAWV,EAAIS,EAAOC,SAAUZ,EAAIF,EAAY,kDAU1FD,EAASkB,MAAQA,EACjB,SAASG,EAAaC,EAAgBC,GACpC,OAAOD,EAAeE,WAAWC,KAAKC,GAAaA,EAAUH,qBAAuBA,EACtF,CAWA,MAAMI,EAAuB,SAAUC,EAAMN,EAAgBO,GAE3D,GAAID,EAAKE,QAAQ,OAAS,EAAG,CAC3B,MAAMC,EAAQH,EAAKI,MAAM,KAAKC,OAAOC,SACnCC,EAAeJ,EAAMK,MACrBC,EAAgBN,EAAMO,KAAK,KAC3BZ,EAAYL,EAAaC,EAAgBe,GAC3C,GAAIX,EAAW,CAEbE,EAAO,IAAIF,EAAUa,QAAQJ,GAC/B,CACF,KAAO,CAGL,MAAMK,EAAYX,EAAuBY,SACzCD,EAAUE,KAAKd,GACfA,EAAOY,EAAUF,KAAK,IACxB,CACA,OAAOV,CACT,EAYA5B,EAAS2B,qBAAuBA,EAChC,SAASgB,EAA0Bf,EAAMgB,EAAkBC,GACzD,MAAMC,EAAyB,GAAGD,IAA6B,MAAQA,SAAkC,OAAS,EAAIA,EAAyBE,UAAUF,EAAyBG,YAAY,KAAO,MAGrM,GAAIpB,EAAKqB,WAAWH,GAAyB,CAC3C,OAAOlB,EAAKmB,UAAUD,EAAuBI,OAC/C,CACA,OAAOvB,EAAqBC,EAAMgB,EAAiBO,oBAAqB,GAC1E,CACAnD,EAAS2C,0BAA4BA,EACrC,OAAO3C,CACT,EAAG"}
|
|
1
|
+
{"version":3,"file":"BindingHelper.js","names":["sap","ui","define","BindingToolkit","_exports","pathInModel","or","not","equal","and","UI","IsCreateMode","IsEditable","IsTransientBinding","IsTotal","IsExpanded","NodeLevel","IsInactive","Entity","HasDraft","HasActive","IsActive","Draft","IsNewObject","HasNoDraftForCurrentUser","getSingleton","convertedTypes","fullyQualifiedName","singletons","find","singleton","singletonPathVisitor","path","visitedNavigationPaths","indexOf","parts","split","filter","Boolean","propertyName","pop","entitySetName","join","name","localPath","concat","push","bindingContextPathVisitor","converterContext","bindingParameterFullName","bindingParameterPrefix","substring","lastIndexOf","startsWith","length","getConvertedTypes"],"sources":["BindingHelper-dbg.js"],"mappings":";;;;AAIAA,IAAIC,GAAGC,OAAO,CAAC,sCAAuC,SAAUC,GAC9D,aAEA,IAAIC,EAAW,CAAC,EAChB,IAAIC,EAAcF,EAAeE,YACjC,IAAIC,EAAKH,EAAeG,GACxB,IAAIC,EAAMJ,EAAeI,IACzB,IAAIC,EAAQL,EAAeK,MAC3B,IAAIC,EAAMN,EAAeM,IACzB,MAAMC,EAAK,CACTC,aAAcN,EAAY,aAAc,MACxCO,WAAYP,EAAY,cAAe,MACvCQ,mBAAoBL,EAAMH,EAAY,6BAA8B,MACpES,QAASN,EAAMH,EAAY,sBAAuB,MAClDU,WAAYP,EAAMH,EAAY,yBAA0B,MACxDW,UAAWX,EAAY,oBACvBY,WAAYZ,EAAY,6BAE1BD,EAASM,GAAKA,EACd,MAAMQ,EAAS,CACbC,SAAUd,EAAY,kBACtBe,UAAWf,EAAY,mBACvBgB,SAAUhB,EAAY,mBAExBD,EAASc,OAASA,EAClB,MAAMI,EAAQ,CACZC,YAAad,EAAIF,EAAIW,EAAOE,WAAYb,EAAIW,EAAOG,WACnDG,yBAA0BlB,EAAGC,EAAIW,EAAOC,UAAWV,EAAIS,EAAOC,SAAUZ,EAAIF,EAAY,kDAU1FD,EAASkB,MAAQA,EACjB,SAASG,EAAaC,EAAgBC,GACpC,OAAOD,EAAeE,WAAWC,KAAKC,GAAaA,EAAUH,qBAAuBA,EACtF,CAWA,MAAMI,EAAuB,SAAUC,EAAMN,EAAgBO,GAE3D,GAAID,EAAKE,QAAQ,OAAS,EAAG,CAC3B,MAAMC,EAAQH,EAAKI,MAAM,KAAKC,OAAOC,SACnCC,EAAeJ,EAAMK,MACrBC,EAAgBN,EAAMO,KAAK,KAC3BZ,EAAYL,EAAaC,EAAgBe,GAC3C,GAAIX,EAAW,CAEbE,EAAO,IAAIF,EAAUa,QAAQJ,GAC/B,CACF,KAAO,CAGL,MAAMK,EAAYX,EAAuBY,SACzCD,EAAUE,KAAKd,GACfA,EAAOY,EAAUF,KAAK,IACxB,CACA,OAAOV,CACT,EAYA5B,EAAS2B,qBAAuBA,EAChC,SAASgB,EAA0Bf,EAAMgB,EAAkBC,GACzD,GAAIA,EAA0B,CAC5B,MAAMC,EAAyB,GAAGD,IAA6B,MAAQA,SAAkC,OAAS,EAAIA,EAAyBE,UAAUF,EAAyBG,YAAY,KAAO,MAGrM,GAAIpB,EAAKqB,WAAWH,GAAyB,CAC3C,OAAOlB,EAAKmB,UAAUD,EAAuBI,OAC/C,CACF,CACA,OAAOvB,EAAqBC,EAAMgB,EAAiBO,oBAAqB,GAC1E,CACAnD,EAAS2C,0BAA4BA,EACrC,OAAO3C,CACT,EAAG"}
|
|
@@ -78,12 +78,14 @@ export const singletonPathVisitor = function (path: string, convertedTypes: Conv
|
|
|
78
78
|
* @param bindingParameterFullName The fully qualified name of the binding parameter
|
|
79
79
|
* @returns The adjusted property path
|
|
80
80
|
*/
|
|
81
|
-
export function bindingContextPathVisitor(path: string, converterContext: ConverterContext, bindingParameterFullName
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
export function bindingContextPathVisitor(path: string, converterContext: ConverterContext, bindingParameterFullName?: string) {
|
|
82
|
+
if (bindingParameterFullName) {
|
|
83
|
+
const bindingParameterPrefix = `${bindingParameterFullName?.substring(bindingParameterFullName.lastIndexOf("/") + 1)}/`;
|
|
84
|
+
// Strip the binding parameter name from OperationAvailable path
|
|
85
|
+
// For e.g. _it/property1 --> property1
|
|
86
|
+
if (path.startsWith(bindingParameterPrefix)) {
|
|
87
|
+
return path.substring(bindingParameterPrefix.length);
|
|
88
|
+
}
|
|
87
89
|
}
|
|
88
90
|
return singletonPathVisitor(path, converterContext.getConvertedTypes(), []);
|
|
89
91
|
}
|
|
@@ -47,7 +47,8 @@ sap.ui.define([], function () {
|
|
|
47
47
|
VALUELIST: "We couldn't find the ValueList path provided in the manifest",
|
|
48
48
|
PRESENTATIONVARIANT: "PresentationVariant is missing for the VisualFilters",
|
|
49
49
|
CHART: "Chart is missing from the PV configured for the VisualFilters",
|
|
50
|
-
VALUELISTCONFIG: "ValueList
|
|
50
|
+
VALUELISTCONFIG: "ValueList has not been configured inside the Visual Filter Settings",
|
|
51
|
+
FilterRestrictions: "For VisualFilters, range expressions are not allowed"
|
|
51
52
|
},
|
|
52
53
|
FULLSCREENMODE_NOT_ON_LISTREPORT: "enableFullScreenMode is not supported on list report pages.",
|
|
53
54
|
KPI_ISSUES: {
|
|
@@ -60,4 +61,4 @@ sap.ui.define([], function () {
|
|
|
60
61
|
_exports.IssueType = IssueType;
|
|
61
62
|
return _exports;
|
|
62
63
|
}, false);
|
|
63
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJc3N1ZVNldmVyaXR5IiwiSXNzdWVDYXRlZ29yeVR5cGUiLCJGYWNldHMiLCJNaXNzaW5nSUQiLCJVblN1cHBvcnRlZExldmVsIiwiQW5ub3RhdGlvbkNvbHVtbnMiLCJJbnZhbGlkS2V5IiwiQW5ub3RhdGlvbnMiLCJJZ25vcmVkQW5ub3RhdGlvbiIsIklzc3VlQ2F0ZWdvcnkiLCJJc3N1ZVR5cGUiLCJNSVNTSU5HX0NIQVJUIiwiTUlTU0lOR19MSU5FSVRFTSIsIk1JU1NJTkdfU0VMRUNUSU9ORklFTEQiLCJNQUxGT1JNRURfREFUQUZJRUxEX0ZPUl9JQk4iLCJSRVFVSVJFU0NPTlRFWFQiLCJJTkxJTkUiLCJERVRFUk1JTklORyIsIk1BTEZPUk1FRF9WSVNVQUxGSUxURVJTIiwiVkFMVUVMSVNUIiwiUFJFU0VOVEFUSU9OVkFSSUFOVCIsIkNIQVJUIiwiVkFMVUVMSVNUQ09ORklHIiwiRmlsdGVyUmVzdHJpY3Rpb25zIiwiRlVMTFNDUkVFTk1PREVfTk9UX09OX0xJU1RSRVBPUlQiLCJLUElfSVNTVUVTIiwiS1BJX05PVF9GT1VORCIsIktQSV9ERVRBSUxfTk9UX0ZPVU5EIiwiTk9fQU5BTFlUSUNTIiwiTUFJTl9QUk9QRVJUWV9OT1RfQUdHUkVHQVRBQkxFIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJJc3N1ZU1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gSXNzdWVTZXZlcml0eSB7XG5cdEhpZ2gsXG5cdExvdyxcblx0TWVkaXVtXG59XG5cbmV4cG9ydCBjb25zdCBJc3N1ZUNhdGVnb3J5VHlwZSA9IHtcblx0RmFjZXRzOiB7XG5cdFx0TWlzc2luZ0lEOiBcIk1pc3NpbmdJRFwiLFxuXHRcdFVuU3VwcG9ydGVkTGV2ZWw6IFwiVW5zdXBwb3J0ZWRMZXZlbFwiXG5cdH0sXG5cdEFubm90YXRpb25Db2x1bW5zOiB7XG5cdFx0SW52YWxpZEtleTogXCJJbnZhbGlkS2V5XCJcblx0fSxcblx0QW5ub3RhdGlvbnM6IHtcblx0XHRJZ25vcmVkQW5ub3RhdGlvbjogXCJJZ25vcmVkQW5ub3RhdGlvblwiXG5cdH1cbn07XG5cbmV4cG9ydCBlbnVtIElzc3VlQ2F0ZWdvcnkge1xuXHRBbm5vdGF0aW9uID0gXCJBbm5vdGF0aW9uXCIsXG5cdFRlbXBsYXRlID0gXCJUZW1wbGF0ZVwiLFxuXHRNYW5pZmVzdCA9IFwiTWFuaWZlc3RcIixcblx0RmFjZXRzID0gXCJGYWNldHNcIlxufVxuZXhwb3J0IGNvbnN0IElzc3VlVHlwZSA9IHtcblx0TUlTU0lOR19DSEFSVDogXCJXZSBjb3VsZG4ndCBmaW5kIGEgY2hhcnQgYW5ub3RhdGlvbiBmb3IgdGhlIGN1cnJlbnQgZW50aXR5U2V0LCB5b3Ugc2hvdWxkIGNvbnNpZGVyIGFkZGluZyBvbmUuXCIsXG5cdE1JU1NJTkdfTElORUlURU06IFwiV2UgY291bGRuJ3QgZmluZCBhIGxpbmUgaXRlbSBhbm5vdGF0aW9uIGZvciB0aGUgY3VycmVudCBlbnRpdHlTZXQsIHlvdSBzaG91bGQgY29uc2lkZXIgYWRkaW5nIG9uZS5cIixcblx0TUlTU0lOR19TRUxFQ1RJT05GSUVMRDogXCJXZSBjb3VsZG4ndCBmaW5kIHRoZSBkZWZpbmVkIHNlbGVjdGlvbiBmaWVsZC5cIixcblx0TUFMRk9STUVEX0RBVEFGSUVMRF9GT1JfSUJOOiB7XG5cdFx0UkVRVUlSRVNDT05URVhUOiBcIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiBjYW5ub3QgdXNlIFJlcXVpcmVzQ29udGV4dCBpbiB0aGUgZm9ybSBvciBoZWFkZXIuXCIsXG5cdFx0SU5MSU5FOiBcIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiBjYW5ub3QgdXNlIElubGluZSBpbiB0aGUgZm9ybSBvciBoZWFkZXIuXCIsXG5cdFx0REVURVJNSU5JTkc6IFwiRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uIGNhbm5vdCB1c2UgRGV0ZXJtaW5pbmcgaW4gdGhlIGZvcm0gb3IgaGVhZGVyLlwiXG5cdH0sXG5cdE1BTEZPUk1FRF9WSVNVQUxGSUxURVJTOiB7XG5cdFx0VkFMVUVMSVNUOiBcIldlIGNvdWxkbid0IGZpbmQgdGhlIFZhbHVlTGlzdCBwYXRoIHByb3ZpZGVkIGluIHRoZSBtYW5pZmVzdFwiLFxuXHRcdFBSRVNFTlRBVElPTlZBUklBTlQ6IFwiUHJlc2VudGF0aW9uVmFyaWFudCBpcyBtaXNzaW5nIGZvciB0aGUgVmlzdWFsRmlsdGVyc1wiLFxuXHRcdENIQVJUOiBcIkNoYXJ0IGlzIG1pc3NpbmcgZnJvbSB0aGUgUFYgY29uZmlndXJlZCBmb3IgdGhlIFZpc3VhbEZpbHRlcnNcIixcblx0XHRWQUxVRUxJU1RDT05GSUc6IFwiVmFsdWVMaXN0IGhhcyBub3QgYmVlbiBjb25maWd1cmVkIGluc2lkZSB0aGUgVmlzdWFsIEZpbHRlciBTZXR0aW5nc1wiLFxuXHRcdEZpbHRlclJlc3RyaWN0aW9uczogXCJGb3IgVmlzdWFsRmlsdGVycywgcmFuZ2UgZXhwcmVzc2lvbnMgYXJlIG5vdCBhbGxvd2VkXCJcblx0fSxcblx0RlVMTFNDUkVFTk1PREVfTk9UX09OX0xJU1RSRVBPUlQ6IFwiZW5hYmxlRnVsbFNjcmVlbk1vZGUgaXMgbm90IHN1cHBvcnRlZCBvbiBsaXN0IHJlcG9ydCBwYWdlcy5cIixcblx0S1BJX0lTU1VFUzoge1xuXHRcdEtQSV9OT1RfRk9VTkQ6IFwiQ291bGRuJ3QgZmluZCBLUEkgb3IgU1BWIHdpdGggcXVhbGlmaWVyIFwiLFxuXHRcdEtQSV9ERVRBSUxfTk9UX0ZPVU5EOiBcIkNhbid0IGZpbmQgcHJvcGVyIGRhdGFwb2ludCBvciBjaGFydCBkZWZpbml0aW9uIGZvciBLUEkgXCIsXG5cdFx0Tk9fQU5BTFlUSUNTOiBcIlRoZSBmb2xsb3dpbmcgZW50aXR5U2V0IHVzZWQgaW4gYSBLUEkgZGVmaW5pdGlvbiBkb2Vzbid0IHN1cHBvcnQgJGFwcGx5IHF1ZXJpZXM6XCIsXG5cdFx0TUFJTl9QUk9QRVJUWV9OT1RfQUdHUkVHQVRBQkxFOiBcIk1haW4gcHJvcGVydHkgdXNlZCBpbiBLUEkgY2Fubm90IGJlIGFnZ3JlZ2F0ZWQgXCJcblx0fVxufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7TUFBWUEsYUFBYTtFQUFBLFdBQWJBLGFBQWE7SUFBYkEsYUFBYSxDQUFiQSxhQUFhO0lBQWJBLGFBQWEsQ0FBYkEsYUFBYTtJQUFiQSxhQUFhLENBQWJBLGFBQWE7RUFBQSxHQUFiQSxhQUFhLEtBQWJBLGFBQWE7RUFBQTtFQU1sQixNQUFNQyxpQkFBaUIsR0FBRztJQUNoQ0MsTUFBTSxFQUFFO01BQ1BDLFNBQVMsRUFBRSxXQUFXO01BQ3RCQyxnQkFBZ0IsRUFBRTtJQUNuQixDQUFDO0lBQ0RDLGlCQUFpQixFQUFFO01BQ2xCQyxVQUFVLEVBQUU7SUFDYixDQUFDO0lBQ0RDLFdBQVcsRUFBRTtNQUNaQyxpQkFBaUIsRUFBRTtJQUNwQjtFQUNELENBQUM7RUFBQztFQUFBLElBRVVDLGFBQWE7RUFBQSxXQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBYkEsYUFBYTtJQUFiQSxhQUFhO0lBQWJBLGFBQWE7RUFBQSxHQUFiQSxhQUFhLEtBQWJBLGFBQWE7RUFBQTtFQU1sQixNQUFNQyxTQUFTLEdBQUc7SUFDeEJDLGFBQWEsRUFBRSxnR0FBZ0c7SUFDL0dDLGdCQUFnQixFQUFFLG9HQUFvRztJQUN0SEMsc0JBQXNCLEVBQUUsK0NBQStDO0lBQ3ZFQywyQkFBMkIsRUFBRTtNQUM1QkMsZUFBZSxFQUFFLHFGQUFxRjtNQUN0R0MsTUFBTSxFQUFFLDRFQUE0RTtNQUNwRkMsV0FBVyxFQUFFO0lBQ2QsQ0FBQztJQUNEQyx1QkFBdUIsRUFBRTtNQUN4QkMsU0FBUyxFQUFFLDhEQUE4RDtNQUN6RUMsbUJBQW1CLEVBQUUsc0RBQXNEO01BQzNFQyxLQUFLLEVBQUUsK0RBQStEO01BQ3RFQyxlQUFlLEVBQUUscUVBQXFFO01BQ3RGQyxrQkFBa0IsRUFBRTtJQUNyQixDQUFDO0lBQ0RDLGdDQUFnQyxFQUFFLDZEQUE2RDtJQUMvRkMsVUFBVSxFQUFFO01BQ1hDLGFBQWEsRUFBRSwwQ0FBMEM7TUFDekRDLG9CQUFvQixFQUFFLDBEQUEwRDtNQUNoRkMsWUFBWSxFQUFFLGtGQUFrRjtNQUNoR0MsOEJBQThCLEVBQUU7SUFDakM7RUFDRCxDQUFDO0VBQUM7RUFBQTtBQUFBIn0=
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define([],function(){"use strict";var e={};let n;(function(e){e[e["High"]=0]="High";e[e["Low"]=1]="Low";e[e["Medium"]=2]="Medium"})(n||(n={}));e.IssueSeverity=n;const t={Facets:{MissingID:"MissingID",UnSupportedLevel:"UnsupportedLevel"},AnnotationColumns:{InvalidKey:"InvalidKey"},Annotations:{IgnoredAnnotation:"IgnoredAnnotation"}};e.IssueCategoryType=t;let i;(function(e){e["Annotation"]="Annotation";e["Template"]="Template";e["Manifest"]="Manifest";e["Facets"]="Facets"})(i||(i={}));e.IssueCategory=i;const o={MISSING_CHART:"We couldn't find a chart annotation for the current entitySet, you should consider adding one.",MISSING_LINEITEM:"We couldn't find a line item annotation for the current entitySet, you should consider adding one.",MISSING_SELECTIONFIELD:"We couldn't find the defined selection field.",MALFORMED_DATAFIELD_FOR_IBN:{REQUIRESCONTEXT:"DataFieldForIntentBasedNavigation cannot use RequiresContext in the form or header.",INLINE:"DataFieldForIntentBasedNavigation cannot use Inline in the form or header.",DETERMINING:"DataFieldForIntentBasedNavigation cannot use Determining in the form or header."},MALFORMED_VISUALFILTERS:{VALUELIST:"We couldn't find the ValueList path provided in the manifest",PRESENTATIONVARIANT:"PresentationVariant is missing for the VisualFilters",CHART:"Chart is missing from the PV configured for the VisualFilters",VALUELISTCONFIG:"ValueList
|
|
5
|
+
sap.ui.define([],function(){"use strict";var e={};let n;(function(e){e[e["High"]=0]="High";e[e["Low"]=1]="Low";e[e["Medium"]=2]="Medium"})(n||(n={}));e.IssueSeverity=n;const t={Facets:{MissingID:"MissingID",UnSupportedLevel:"UnsupportedLevel"},AnnotationColumns:{InvalidKey:"InvalidKey"},Annotations:{IgnoredAnnotation:"IgnoredAnnotation"}};e.IssueCategoryType=t;let i;(function(e){e["Annotation"]="Annotation";e["Template"]="Template";e["Manifest"]="Manifest";e["Facets"]="Facets"})(i||(i={}));e.IssueCategory=i;const o={MISSING_CHART:"We couldn't find a chart annotation for the current entitySet, you should consider adding one.",MISSING_LINEITEM:"We couldn't find a line item annotation for the current entitySet, you should consider adding one.",MISSING_SELECTIONFIELD:"We couldn't find the defined selection field.",MALFORMED_DATAFIELD_FOR_IBN:{REQUIRESCONTEXT:"DataFieldForIntentBasedNavigation cannot use RequiresContext in the form or header.",INLINE:"DataFieldForIntentBasedNavigation cannot use Inline in the form or header.",DETERMINING:"DataFieldForIntentBasedNavigation cannot use Determining in the form or header."},MALFORMED_VISUALFILTERS:{VALUELIST:"We couldn't find the ValueList path provided in the manifest",PRESENTATIONVARIANT:"PresentationVariant is missing for the VisualFilters",CHART:"Chart is missing from the PV configured for the VisualFilters",VALUELISTCONFIG:"ValueList has not been configured inside the Visual Filter Settings",FilterRestrictions:"For VisualFilters, range expressions are not allowed"},FULLSCREENMODE_NOT_ON_LISTREPORT:"enableFullScreenMode is not supported on list report pages.",KPI_ISSUES:{KPI_NOT_FOUND:"Couldn't find KPI or SPV with qualifier ",KPI_DETAIL_NOT_FOUND:"Can't find proper datapoint or chart definition for KPI ",NO_ANALYTICS:"The following entitySet used in a KPI definition doesn't support $apply queries:",MAIN_PROPERTY_NOT_AGGREGATABLE:"Main property used in KPI cannot be aggregated "}};e.IssueType=o;return e},false);
|
|
6
6
|
//# sourceMappingURL=IssueManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssueManager.js","names":["sap","ui","define","_exports","IssueSeverity","IssueCategoryType","Facets","MissingID","UnSupportedLevel","AnnotationColumns","InvalidKey","Annotations","IgnoredAnnotation","IssueCategory","IssueType","MISSING_CHART","MISSING_LINEITEM","MISSING_SELECTIONFIELD","MALFORMED_DATAFIELD_FOR_IBN","REQUIRESCONTEXT","INLINE","DETERMINING","MALFORMED_VISUALFILTERS","VALUELIST","PRESENTATIONVARIANT","CHART","VALUELISTCONFIG","FULLSCREENMODE_NOT_ON_LISTREPORT","KPI_ISSUES","KPI_NOT_FOUND","KPI_DETAIL_NOT_FOUND","NO_ANALYTICS","MAIN_PROPERTY_NOT_AGGREGATABLE"],"sources":["IssueManager-dbg.js"],"mappings":";;;;AAIAA,IAAIC,GAAGC,OAAO,GAAI,WAChB,aAEA,IAAIC,EAAW,CAAC,EAChB,IAAIC,GACJ,SAAWA,GACTA,EAAcA,EAAc,QAAU,GAAK,OAC3CA,EAAcA,EAAc,OAAS,GAAK,MAC1CA,EAAcA,EAAc,UAAY,GAAK,QAC9C,EAJD,CAIGA,IAAkBA,EAAgB,CAAC,IACtCD,EAASC,cAAgBA,EACzB,MAAMC,EAAoB,CACxBC,OAAQ,CACNC,UAAW,YACXC,iBAAkB,oBAEpBC,kBAAmB,CACjBC,WAAY,cAEdC,YAAa,CACXC,kBAAmB,sBAGvBT,EAASE,kBAAoBA,EAC7B,IAAIQ,GACJ,SAAWA,GACTA,EAAc,cAAgB,aAC9BA,EAAc,YAAc,WAC5BA,EAAc,YAAc,WAC5BA,EAAc,UAAY,QAC3B,EALD,CAKGA,IAAkBA,EAAgB,CAAC,IACtCV,EAASU,cAAgBA,EACzB,MAAMC,EAAY,CAChBC,cAAe,iGACfC,iBAAkB,qGAClBC,uBAAwB,gDACxBC,4BAA6B,CAC3BC,gBAAiB,sFACjBC,OAAQ,6EACRC,YAAa,mFAEfC,wBAAyB,CACvBC,UAAW,+DACXC,oBAAqB,uDACrBC,MAAO,gEACPC,gBAAiB,
|
|
1
|
+
{"version":3,"file":"IssueManager.js","names":["sap","ui","define","_exports","IssueSeverity","IssueCategoryType","Facets","MissingID","UnSupportedLevel","AnnotationColumns","InvalidKey","Annotations","IgnoredAnnotation","IssueCategory","IssueType","MISSING_CHART","MISSING_LINEITEM","MISSING_SELECTIONFIELD","MALFORMED_DATAFIELD_FOR_IBN","REQUIRESCONTEXT","INLINE","DETERMINING","MALFORMED_VISUALFILTERS","VALUELIST","PRESENTATIONVARIANT","CHART","VALUELISTCONFIG","FilterRestrictions","FULLSCREENMODE_NOT_ON_LISTREPORT","KPI_ISSUES","KPI_NOT_FOUND","KPI_DETAIL_NOT_FOUND","NO_ANALYTICS","MAIN_PROPERTY_NOT_AGGREGATABLE"],"sources":["IssueManager-dbg.js"],"mappings":";;;;AAIAA,IAAIC,GAAGC,OAAO,GAAI,WAChB,aAEA,IAAIC,EAAW,CAAC,EAChB,IAAIC,GACJ,SAAWA,GACTA,EAAcA,EAAc,QAAU,GAAK,OAC3CA,EAAcA,EAAc,OAAS,GAAK,MAC1CA,EAAcA,EAAc,UAAY,GAAK,QAC9C,EAJD,CAIGA,IAAkBA,EAAgB,CAAC,IACtCD,EAASC,cAAgBA,EACzB,MAAMC,EAAoB,CACxBC,OAAQ,CACNC,UAAW,YACXC,iBAAkB,oBAEpBC,kBAAmB,CACjBC,WAAY,cAEdC,YAAa,CACXC,kBAAmB,sBAGvBT,EAASE,kBAAoBA,EAC7B,IAAIQ,GACJ,SAAWA,GACTA,EAAc,cAAgB,aAC9BA,EAAc,YAAc,WAC5BA,EAAc,YAAc,WAC5BA,EAAc,UAAY,QAC3B,EALD,CAKGA,IAAkBA,EAAgB,CAAC,IACtCV,EAASU,cAAgBA,EACzB,MAAMC,EAAY,CAChBC,cAAe,iGACfC,iBAAkB,qGAClBC,uBAAwB,gDACxBC,4BAA6B,CAC3BC,gBAAiB,sFACjBC,OAAQ,6EACRC,YAAa,mFAEfC,wBAAyB,CACvBC,UAAW,+DACXC,oBAAqB,uDACrBC,MAAO,gEACPC,gBAAiB,sEACjBC,mBAAoB,wDAEtBC,iCAAkC,8DAClCC,WAAY,CACVC,cAAe,2CACfC,qBAAsB,2DACtBC,aAAc,mFACdC,+BAAgC,oDAGpC9B,EAASW,UAAYA,EACrB,OAAOX,CACT,EAAG"}
|
|
@@ -36,7 +36,8 @@ export const IssueType = {
|
|
|
36
36
|
VALUELIST: "We couldn't find the ValueList path provided in the manifest",
|
|
37
37
|
PRESENTATIONVARIANT: "PresentationVariant is missing for the VisualFilters",
|
|
38
38
|
CHART: "Chart is missing from the PV configured for the VisualFilters",
|
|
39
|
-
VALUELISTCONFIG: "ValueList
|
|
39
|
+
VALUELISTCONFIG: "ValueList has not been configured inside the Visual Filter Settings",
|
|
40
|
+
FilterRestrictions: "For VisualFilters, range expressions are not allowed"
|
|
40
41
|
},
|
|
41
42
|
FULLSCREENMODE_NOT_ON_LISTREPORT: "enableFullScreenMode is not supported on list report pages.",
|
|
42
43
|
KPI_ISSUES: {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/converters/helpers/ConfigurableObject", "sap/fe/core/converters/helpers/Key", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/templating/DataModelPathHelper", "sap/ui/core/Core", "../helpers/BindingHelper", "../ManifestSettings"], function (Action, ConfigurableObject, Key, BindingToolkit, ModelHelper, DataModelPathHelper, Core, BindingHelper, ManifestSettings) {
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/converters/helpers/ConfigurableObject", "sap/fe/core/converters/helpers/Key", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/helpers/TypeGuards", "sap/fe/core/templating/DataModelPathHelper", "sap/ui/core/Core", "../helpers/BindingHelper", "../ManifestSettings"], function (Action, ConfigurableObject, Key, BindingToolkit, ModelHelper, TypeGuards, DataModelPathHelper, Core, BindingHelper, ManifestSettings) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
@@ -11,6 +11,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
11
11
|
var singletonPathVisitor = BindingHelper.singletonPathVisitor;
|
|
12
12
|
var Draft = BindingHelper.Draft;
|
|
13
13
|
var isPathDeletable = DataModelPathHelper.isPathDeletable;
|
|
14
|
+
var isEntitySet = TypeGuards.isEntitySet;
|
|
14
15
|
var pathInModel = BindingToolkit.pathInModel;
|
|
15
16
|
var not = BindingToolkit.not;
|
|
16
17
|
var ifElse = BindingToolkit.ifElse;
|
|
@@ -104,7 +105,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
104
105
|
function getDeleteButtonEnabled(isDeletable, isParentDeletable, converterContext) {
|
|
105
106
|
const entitySet = converterContext.getEntitySet(),
|
|
106
107
|
isDraftRoot = ModelHelper.isDraftRoot(entitySet);
|
|
107
|
-
let ret = ifElse(isParentDeletable !== undefined, isParentDeletable, ifElse(isDeletable !== undefined, equal(isDeletable, true), constant(true)));
|
|
108
|
+
let ret = ifElse(isParentDeletable !== undefined, isParentDeletable, ifElse(isDeletable !== undefined, equal(getExpressionFromAnnotation(isDeletable), true), constant(true)));
|
|
108
109
|
|
|
109
110
|
// delete should be disabled for Locked objects
|
|
110
111
|
ret = isDraftRoot ? and(ret, not(pathInModel("DraftAdministrativeData/InProcessByUser"))) : ret;
|
|
@@ -167,12 +168,12 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
167
168
|
isDraftRoot = ModelHelper.isDraftRoot(entitySet),
|
|
168
169
|
isSticky = ModelHelper.isSticky(entitySet);
|
|
169
170
|
let editActionName;
|
|
170
|
-
if (isDraftRoot &&
|
|
171
|
-
var
|
|
172
|
-
editActionName =
|
|
173
|
-
} else if (isSticky &&
|
|
174
|
-
var
|
|
175
|
-
editActionName =
|
|
171
|
+
if (isDraftRoot && isEntitySet(entitySet)) {
|
|
172
|
+
var _entitySet$annotation, _entitySet$annotation2;
|
|
173
|
+
editActionName = (_entitySet$annotation = entitySet.annotations.Common) === null || _entitySet$annotation === void 0 ? void 0 : (_entitySet$annotation2 = _entitySet$annotation.DraftRoot) === null || _entitySet$annotation2 === void 0 ? void 0 : _entitySet$annotation2.EditAction;
|
|
174
|
+
} else if (isSticky && isEntitySet(entitySet)) {
|
|
175
|
+
var _entitySet$annotation3, _entitySet$annotation4;
|
|
176
|
+
editActionName = (_entitySet$annotation3 = entitySet.annotations.Session) === null || _entitySet$annotation3 === void 0 ? void 0 : (_entitySet$annotation4 = _entitySet$annotation3.StickySessionSupported) === null || _entitySet$annotation4 === void 0 ? void 0 : _entitySet$annotation4.EditAction;
|
|
176
177
|
}
|
|
177
178
|
if (editActionName) {
|
|
178
179
|
var _editAction$annotatio, _editAction$annotatio2;
|
|
@@ -196,7 +197,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
196
197
|
}
|
|
197
198
|
_exports.getEditButtonEnabled = getEditButtonEnabled;
|
|
198
199
|
function getHeaderDefaultActions(converterContext) {
|
|
199
|
-
var _entitySet$
|
|
200
|
+
var _entitySet$annotation5, _entitySet$annotation6, _entitySet$annotation7, _entitySet$annotation8, _entityDeleteRestrict;
|
|
200
201
|
const sContextPath = converterContext.getContextPath();
|
|
201
202
|
const rootEntitySetPath = ModelHelper.getRootEntitySetPath(sContextPath);
|
|
202
203
|
const rootConverterContext = converterContext.getConverterContextFor("/" + rootEntitySetPath);
|
|
@@ -209,9 +210,9 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
209
210
|
draftRoot = ModelHelper.getDraftRoot(rootEntitySet),
|
|
210
211
|
//entitySet && entitySet.annotations.Common?.DraftRoot,
|
|
211
212
|
draftNode = ModelHelper.getDraftNode(rootEntitySet),
|
|
212
|
-
entityDeleteRestrictions = entitySet && ((_entitySet$
|
|
213
|
+
entityDeleteRestrictions = entitySet && ((_entitySet$annotation5 = entitySet.annotations) === null || _entitySet$annotation5 === void 0 ? void 0 : (_entitySet$annotation6 = _entitySet$annotation5.Capabilities) === null || _entitySet$annotation6 === void 0 ? void 0 : _entitySet$annotation6.DeleteRestrictions),
|
|
213
214
|
rootUpdateHidden = ModelHelper.isUpdateHidden(rootEntitySet, rootEntityType),
|
|
214
|
-
updateHidden = rootEntitySet &&
|
|
215
|
+
updateHidden = rootEntitySet && isEntitySet(rootEntitySet) && (rootUpdateHidden === null || rootUpdateHidden === void 0 ? void 0 : rootUpdateHidden.valueOf()),
|
|
215
216
|
dataModelObjectPath = converterContext.getDataModelObjectPath(),
|
|
216
217
|
isParentDeletable = isPathDeletable(dataModelObjectPath, {
|
|
217
218
|
pathVisitor: (path, navigationPaths) => singletonPathVisitor(path, converterContext.getConvertedTypes(), navigationPaths)
|
|
@@ -231,14 +232,14 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
231
232
|
// the button for switching between draft and active document versions but also the controls for
|
|
232
233
|
// the collaborative draft fragment.
|
|
233
234
|
const headerActions = [];
|
|
234
|
-
if (
|
|
235
|
+
if (isEntitySet(entitySet) && draftRoot !== null && draftRoot !== void 0 && draftRoot.EditAction && updateHidden !== true) {
|
|
235
236
|
headerActions.push({
|
|
236
237
|
type: ActionType.DraftActions,
|
|
237
238
|
key: "DraftActions"
|
|
238
239
|
});
|
|
239
240
|
}
|
|
240
241
|
const viewLevel = converterContext.getManifestWrapper().getViewLevel();
|
|
241
|
-
const updatablePropertyPath = viewLevel > 1 ? entitySet === null || entitySet === void 0 ? void 0 : (_entitySet$
|
|
242
|
+
const updatablePropertyPath = viewLevel > 1 ? entitySet === null || entitySet === void 0 ? void 0 : (_entitySet$annotation7 = entitySet.annotations.Capabilities) === null || _entitySet$annotation7 === void 0 ? void 0 : (_entitySet$annotation8 = _entitySet$annotation7.UpdateRestrictions) === null || _entitySet$annotation8 === void 0 ? void 0 : _entitySet$annotation8.Updatable : undefined;
|
|
242
243
|
if (draftRoot || draftNode) {
|
|
243
244
|
headerActions.push({
|
|
244
245
|
type: ActionType.CollaborationAvatars,
|
|
@@ -335,12 +336,12 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
335
336
|
}
|
|
336
337
|
_exports.getHiddenHeaderActions = getHiddenHeaderActions;
|
|
337
338
|
function getFooterDefaultActions(viewLevel, converterContext) {
|
|
338
|
-
var _entitySet$
|
|
339
|
+
var _entitySet$annotation9, _entitySet$annotation10, _entitySet$annotation11, _entitySet$annotation12;
|
|
339
340
|
const entitySet = converterContext.getEntitySet();
|
|
340
341
|
const entityType = converterContext.getEntityType();
|
|
341
342
|
const stickySessionSupported = ModelHelper.getStickySession(entitySet),
|
|
342
343
|
//for sticky app
|
|
343
|
-
entitySetDraftRoot =
|
|
344
|
+
entitySetDraftRoot = isEntitySet(entitySet) && (((_entitySet$annotation9 = entitySet.annotations.Common) === null || _entitySet$annotation9 === void 0 ? void 0 : (_entitySet$annotation10 = _entitySet$annotation9.DraftRoot) === null || _entitySet$annotation10 === void 0 ? void 0 : _entitySet$annotation10.term) ?? ((_entitySet$annotation11 = entitySet.annotations.Session) === null || _entitySet$annotation11 === void 0 ? void 0 : (_entitySet$annotation12 = _entitySet$annotation11.StickySessionSupported) === null || _entitySet$annotation12 === void 0 ? void 0 : _entitySet$annotation12.term)),
|
|
344
345
|
conditionSave = Boolean(entitySetDraftRoot === "com.sap.vocabularies.Common.v1.DraftRoot" || stickySessionSupported && (stickySessionSupported === null || stickySessionSupported === void 0 ? void 0 : stickySessionSupported.SaveAction)),
|
|
345
346
|
conditionApply = viewLevel > 1,
|
|
346
347
|
conditionCancel = Boolean(entitySetDraftRoot === "com.sap.vocabularies.Common.v1.DraftRoot" || stickySessionSupported && (stickySessionSupported === null || stickySessionSupported === void 0 ? void 0 : stickySessionSupported.DiscardAction));
|
|
@@ -404,4 +405,4 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
404
405
|
}
|
|
405
406
|
return _exports;
|
|
406
407
|
}, false);
|
|
407
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMiLCJlbnRpdHlUeXBlIiwiaXNEZXRlcm1pbmluZ0FjdGlvbiIsImFubm90YXRpb25zIiwiVUkiLCJJZGVudGlmaWNhdGlvbiIsImZpbHRlciIsImlkZW50aWZpY2F0aW9uRGF0YUZpZWxkIiwiSGlkZGVuIiwidmFsdWVPZiIsIiRUeXBlIiwiQm9vbGVhbiIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsIkNvcmUiLCJPcGVyYXRpb25BdmFpbGFibGUiLCJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJJTVBPUlRBTlRfQ1JJVElDQUxJVElFUyIsImdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkiLCJjb252ZXJ0ZXJDb250ZXh0IiwiZGVsZXRlSGlkZGVuIiwiZGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJ2aXNpdGVkTmF2aWdhdGlvblBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJtYXAiLCJuYXZQcm9wIiwibmFtZSIsImRlbGV0ZUhpZGRlbkV4cHJlc3Npb24iLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJ1bmRlZmluZWQiLCJwYXRoIiwic2luZ2xldG9uUGF0aFZpc2l0b3IiLCJnZXRDb252ZXJ0ZWRUeXBlcyIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsInZpZXdMZXZlbCIsImdldFZpZXdMZXZlbCIsImVkaXRhYmxlRXhwcmVzc2lvbiIsIklzRWRpdGFibGUiLCJub3QiLCJpZkVsc2UiLCJhbmQiLCJlcXVhbCIsImdldERlbGV0ZUJ1dHRvbkVuYWJsZWQiLCJpc0RlbGV0YWJsZSIsImlzUGFyZW50RGVsZXRhYmxlIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiaXNEcmFmdFJvb3QiLCJNb2RlbEhlbHBlciIsInJldCIsImNvbnN0YW50IiwicGF0aEluTW9kZWwiLCJnZXRFZGl0QnV0dG9uVmlzaWJpbGl0eSIsInJvb3RVcGRhdGVIaWRkZW4iLCJyb290Q29udmVydGVyQ29udGV4dCIsInVwZGF0ZUhpZGRlbiIsInJvb3RFbnRpdHlTZXQiLCJpc0ZDTEVuYWJsZWQiLCJpc0ZjbEVuYWJsZWQiLCJpc0RyYWZ0RW5hYmxlZCIsInJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uIiwiZ2V0SGlkZGVuRXhwcmVzc2lvbiIsImlzRHJhZnROb2RlIiwidXBkYXRlSGlkZGVuRXhwcmVzc2lvbiIsIm5vdEVkaXRhYmxlRXhwcmVzc2lvbiIsInJlc3VsdGFudEV4cHJlc3Npb24iLCJEcmFmdCIsIkhhc05vRHJhZnRGb3JDdXJyZW50VXNlciIsImdldEVkaXRCdXR0b25FbmFibGVkIiwidXBkYXRlUmVzdHJpY3Rpb25zIiwiaXNTdGlja3kiLCJlZGl0QWN0aW9uTmFtZSIsImlzU2luZ2xldG9uIiwiQ29tbW9uIiwiRHJhZnRSb290IiwiRWRpdEFjdGlvbiIsIlNlc3Npb24iLCJTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZWRpdEFjdGlvbkFubm90YXRpb25QYXRoIiwiZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aCIsImVkaXRBY3Rpb24iLCJyZXNvbHZlQWJzb2x1dGVQYXRoIiwidGFyZ2V0IiwiY29tcGlsZUV4cHJlc3Npb24iLCJnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbiIsImdldEhlYWRlckRlZmF1bHRBY3Rpb25zIiwic0NvbnRleHRQYXRoIiwiZ2V0Q29udGV4dFBhdGgiLCJyb290RW50aXR5U2V0UGF0aCIsImdldFJvb3RFbnRpdHlTZXRQYXRoIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImdldEVudGl0eVR5cGUiLCJyb290RW50aXR5VHlwZSIsInN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRTdGlja3lTZXNzaW9uIiwiZHJhZnRSb290IiwiZ2V0RHJhZnRSb290IiwiZHJhZnROb2RlIiwiZ2V0RHJhZnROb2RlIiwiZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zIiwiQ2FwYWJpbGl0aWVzIiwiRGVsZXRlUmVzdHJpY3Rpb25zIiwiaXNVcGRhdGVIaWRkZW4iLCJpc1BhdGhEZWxldGFibGUiLCJwYXRoVmlzaXRvciIsIm5hdmlnYXRpb25QYXRocyIsInBhcmVudEVudGl0eVNldERlbGV0YWJsZSIsImlkZW50aWZpY2F0aW9uRmllbGRGb3JBY3Rpb25zIiwiY29weURhdGFGaWVsZCIsImdldENvcHlBY3Rpb24iLCJkYXRhRmllbGQiLCJkYXRhRmllbGRJc0NvcHlBY3Rpb24iLCJoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zIiwiaGVhZGVyQWN0aW9ucyIsInB1c2giLCJ0eXBlIiwiQWN0aW9uVHlwZSIsIkRyYWZ0QWN0aW9ucyIsImtleSIsInVwZGF0YWJsZVByb3BlcnR5UGF0aCIsIlVwZGF0ZVJlc3RyaWN0aW9ucyIsIlVwZGF0YWJsZSIsIkNvbGxhYm9yYXRpb25BdmF0YXJzIiwiaW5kZXhPZiIsIkNyaXRpY2FsaXR5IiwiZm9yRWFjaCIsImdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24iLCJQcmltYXJ5IiwidmlzaWJsZSIsImVuYWJsZWQiLCJEZWxldGFibGUiLCJnZXREZWxldGVIaWRkZW4iLCJTZWNvbmRhcnkiLCJwYXJlbnRFbnRpdHlEZWxldGVFbmFibGVkIiwiQ29weSIsInRleHQiLCJMYWJlbCIsInRvU3RyaW5nIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiZ2V0VGV4dCIsImhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJSZXF1aXJlc0NvbnRleHQiLCJFcnJvciIsIklubGluZSIsIm9OYXZpZ2F0aW9uUGFyYW1zIiwic2VtYW50aWNPYmplY3RNYXBwaW5nIiwiZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nIiwiTWFwcGluZyIsIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImJ1dHRvblR5cGUiLCJCdXR0b25UeXBlIiwiR2hvc3QiLCJOYXZpZ2F0aW9uQXZhaWxhYmxlIiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwiaXNOYXZpZ2FibGUiLCJwcmVzcyIsImZuIiwiU2VtYW50aWNPYmplY3QiLCJBY3Rpb24iLCJjdXN0b21EYXRhIiwic2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJnZXRIaWRkZW5IZWFkZXJBY3Rpb25zIiwiaGlkZGVuQWN0aW9ucyIsIkRlZmF1bHQiLCJnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyIsImVudGl0eVNldERyYWZ0Um9vdCIsInRlcm0iLCJjb25kaXRpb25TYXZlIiwiU2F2ZUFjdGlvbiIsImNvbmRpdGlvbkFwcGx5IiwiY29uZGl0aW9uQ2FuY2VsIiwiRGlzY2FyZEFjdGlvbiIsImZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnMiLCJmb290ZXJBY3Rpb25zIiwiZW50aXR5VHlwZU5hbWUiLCJEZWZhdWx0QXBwbHkiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkVuZCIsIkRhdGFGaWVsZEZvckFjdGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSGVhZGVyQW5kRm9vdGVyQWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uLCBFbnRpdHlTZXQsIEVudGl0eVR5cGUsIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBDb21tb25Bbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHR5cGUgeyBEYXRhRmllbGRGb3JBY3Rpb25UeXBlcywgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQW5ub3RhdGlvbkFjdGlvbiwgQmFzZUFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7XG5cdEJ1dHRvblR5cGUsXG5cdGRhdGFGaWVsZElzQ29weUFjdGlvbixcblx0Z2V0Q29weUFjdGlvbixcblx0Z2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24sXG5cdGdldFNlbWFudGljT2JqZWN0TWFwcGluZ1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgS2V5SGVscGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9LZXlcIjtcbmltcG9ydCB7XG5cdGFuZCxcblx0QmluZGluZ1Rvb2xraXRFeHByZXNzaW9uLFxuXHRDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Y29tcGlsZUV4cHJlc3Npb24sXG5cdGNvbnN0YW50LFxuXHRlcXVhbCxcblx0Zm4sXG5cdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbixcblx0aWZFbHNlLFxuXHRub3QsXG5cdHBhdGhJbk1vZGVsXG59IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB7IGlzUGF0aERlbGV0YWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBEcmFmdCwgc2luZ2xldG9uUGF0aFZpc2l0b3IsIFVJIH0gZnJvbSBcIi4uL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gXCIuLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbi8qKlxuICogUmV0cmlldmVzIGFsbCB0aGUgZGF0YSBmaWVsZCBmb3IgYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb25cbiAqIFRoZXkgbXVzdCBiZVxuICogLSBOb3Qgc3RhdGljYWxseSBoaWRkZW5cbiAqIC0gRWl0aGVyIGxpbmtlZCB0byBhbiBVbmJvdW5kIGFjdGlvbiBvciB0byBhbiBhY3Rpb24gd2hpY2ggaGFzIGFuIE9wZXJhdGlvbkF2YWlsYWJsZSB0aGF0IGlzIG5vdCBzZXQgdG8gZmFsc2Ugc3RhdGljYWxseS5cbiAqXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgY3VycmVudCBlbnRpdHkgdHlwZVxuICogQHBhcmFtIGlzRGV0ZXJtaW5pbmdBY3Rpb24gVGhlIGZsYWcgd2hpY2ggZGVub3RlcyB3aGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIGlzIGEgZGV0ZXJtaW5pbmcgYWN0aW9uXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBEYXRhRmllbGQgZm9yIGFjdGlvbiByZXNwZWN0aW5nIHRoZSBpbnB1dCBwYXJhbWV0ZXIgJ2lzRGV0ZXJtaW5pbmdBY3Rpb24nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgaXNEZXRlcm1pbmluZ0FjdGlvbjogYm9vbGVhbik6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzW10ge1xuXHRyZXR1cm4gKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbj8uZmlsdGVyKChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZCkgPT4ge1xuXHRcdHJldHVybiBpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpICE9PSB0cnVlICYmXG5cdFx0XHRpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uICYmXG5cdFx0XHRCb29sZWFuKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkLkRldGVybWluaW5nPy52YWx1ZU9mKCkpID09PSBpc0RldGVybWluaW5nQWN0aW9uICYmXG5cdFx0XHQoaWRlbnRpZmljYXRpb25EYXRhRmllbGQuQWN0aW9uVGFyZ2V0Py5pc0JvdW5kPy52YWx1ZU9mKCkgIT09IHRydWUgfHxcblx0XHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQ/LkFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnM/LkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZT8udmFsdWVPZigpICE9PSBmYWxzZSlcblx0XHRcdD8gdHJ1ZVxuXHRcdFx0OiBmYWxzZTtcblx0fSkgfHwgW10pIGFzIERhdGFGaWVsZEZvckFjdGlvblR5cGVzW107XG59XG5cbi8qKlxuICogUmV0cmlldmUgYWxsIHRoZSBJQk4gYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb24uXG4gKiBUaGV5IG11c3QgYmVcbiAqIC0gTm90IHN0YXRpY2FsbHkgaGlkZGVuLlxuICpcbiAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBjdXJyZW50IGVudGl0eXR5cGVcbiAqIEBwYXJhbSBpc0RldGVybWluaW5nQWN0aW9uIFdoZXRoZXIgb3Igbm90IHRoZSBhY3Rpb24gc2hvdWxkIGJlIGRldGVybWluaW5nXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkYXRhIGZpZWxkIGZvciBhY3Rpb24gcmVzcGVjdGluZyB0aGUgaXNEZXRlcm1pbmluZ0FjdGlvbiBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRpc0RldGVybWluaW5nQWN0aW9uOiBib29sZWFuXG4pOiBEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25UeXBlc1tdIHtcblx0cmV0dXJuIChlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSWRlbnRpZmljYXRpb24/LmZpbHRlcigoaWRlbnRpZmljYXRpb25EYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gaWRlbnRpZmljYXRpb25EYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSAhPT0gdHJ1ZSAmJlxuXHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiAmJlxuXHRcdFx0Qm9vbGVhbihpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5EZXRlcm1pbmluZz8udmFsdWVPZigpKSA9PT0gaXNEZXRlcm1pbmluZ0FjdGlvblxuXHRcdFx0PyB0cnVlXG5cdFx0XHQ6IGZhbHNlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXNbXTtcbn1cblxuZXhwb3J0IGNvbnN0IElNUE9SVEFOVF9DUklUSUNBTElUSUVTID0gW1xuXHRcIlVJLkNyaXRpY2FsaXR5VHlwZS9WZXJ5UG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvVmVyeU5lZ2F0aXZlXCJcbl07XG5cbi8qKlxuICogTWV0aG9kIHRvIGRldGVybWluZSB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IGJpbmRpbmcgZm9yIHRoZSBEZWxldGUgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSBkZWxldGVIaWRkZW4gVGhlIHZhbHVlIG9mIHRoZSBVSS5EZWxldGVIaWRkZW4gYW5ub3RhdGlvbiBvbiB0aGUgZW50aXR5IHNldCAvIHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBEZWxldGUgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVsZXRlQnV0dG9uVmlzaWJpbGl0eShcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0ZGVsZXRlSGlkZGVuOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPiB8IHVuZGVmaW5lZFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLm1hcCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lKSxcblx0XHQvLyBTZXQgYWJzb2x1dGUgYmluZGluZyBwYXRoIGZvciBTaW5nbGV0b24gcmVmZXJlbmNlcywgb3RoZXJ3aXNlIHRoZSBjb25maWd1cmVkIGFubm90YXRpb24gcGF0aCBpdHNlbGYuXG5cdFx0Ly8gRm9yIGUuZy4gL2NvbS5zYXAubmFtZXNwYWNlLkVudGl0eUNvbnRhaW5lci9TaW5nbGV0b24vUHJvcGVydHkgdG8gL1NpbmdsZXRvbi9Qcm9wZXJ0eVxuXHRcdGRlbGV0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihcblx0XHRcdGRlbGV0ZUhpZGRlbixcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHQocGF0aDogc3RyaW5nKSA9PiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIFtdKVxuXHRcdCksXG5cdFx0bWFuaWZlc3RXcmFwcGVyID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKSxcblx0XHR2aWV3TGV2ZWwgPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Vmlld0xldmVsKCksXG5cdFx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlXG5cdFx0Ly8gSW4gT1AgXHRcdC0tPiAgd2hlbiBub3QgaW4gZWRpdCBtb2RlXG5cdFx0Ly8gSW4gc3ViLU9QIFx0LS0+ICB3aGVuIGluIGVkaXQgbW9kZVxuXHRcdGVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gdmlld0xldmVsID4gMSA/IFVJLklzRWRpdGFibGUgOiBub3QoVUkuSXNFZGl0YWJsZSk7XG5cblx0Ly8gSWYgVUkuRGVsZXRlSGlkZGVuIGFubm90YXRpb24gb24gZW50aXR5IHNldCBvciB0eXBlIGlzIGVpdGhlciBub3QgZGVmaW5lZCBvciBleHBsaWNpdGx5IHNldCB0byBmYWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGVkaXRhYmxlRXhwcmVzc2lvbi5cblx0Ly8gZWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGJvdGggYW5ub3RhdGlvbiBwYXRoIGFuZCBlZGl0YWJsZUV4cHJlc3Npb24uXG5cdHJldHVybiBpZkVsc2UoXG5cdFx0ZGVsZXRlSGlkZGVuID09PSB1bmRlZmluZWQgfHwgZGVsZXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0ZWRpdGFibGVFeHByZXNzaW9uLFxuXHRcdGFuZChlZGl0YWJsZUV4cHJlc3Npb24sIGVxdWFsKGRlbGV0ZUhpZGRlbkV4cHJlc3Npb24sIGZhbHNlKSlcblx0KTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIERlbGV0ZSBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGlzRGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZFxuICogQHBhcmFtIGlzUGFyZW50RGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZCBvbiB0aGUgcGFyZW50IGVudGl0eVxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIERlbGV0ZSBidXR0b25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZUJ1dHRvbkVuYWJsZWQoXG5cdGlzRGVsZXRhYmxlOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxCb29sZWFuPiB8IHVuZGVmaW5lZCxcblx0aXNQYXJlbnREZWxldGFibGU6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0RyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KGVudGl0eVNldCk7XG5cblx0bGV0IHJldCA9IGlmRWxzZShcblx0XHRpc1BhcmVudERlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLFxuXHRcdGlzUGFyZW50RGVsZXRhYmxlLFxuXHRcdGlmRWxzZShpc0RlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLCBlcXVhbChpc0RlbGV0YWJsZSwgdHJ1ZSksIGNvbnN0YW50KHRydWUpKVxuXHQpO1xuXG5cdC8vIGRlbGV0ZSBzaG91bGQgYmUgZGlzYWJsZWQgZm9yIExvY2tlZCBvYmplY3RzXG5cdHJldCA9IGlzRHJhZnRSb290ID8gYW5kKHJldCwgbm90KHBhdGhJbk1vZGVsKFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvSW5Qcm9jZXNzQnlVc2VyXCIpKSkgOiByZXQ7XG5cblx0cmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAndmlzaWJsZScgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIEVkaXQgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSByb290VXBkYXRlSGlkZGVuIFRoZSB2YWx1ZSBvZiB0aGUgVUkuVXBkYXRlSGlkZGVuIGFubm90YXRpb24gb24gdGhlIGVudGl0eSBzZXQgLyB0eXBlLlxuICogQHBhcmFtIHJvb3RDb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gdXBkYXRlSGlkZGVuXG4gKiBAcGFyYW0gdmlld0xldmVsXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBFZGl0IGJ1dHRvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVkaXRCdXR0b25WaXNpYmlsaXR5KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRyb290VXBkYXRlSGlkZGVuOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPiB8IHVuZGVmaW5lZCxcblx0cm9vdENvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHVwZGF0ZUhpZGRlbj86IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxuXHR2aWV3TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWRcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IHJvb3RFbnRpdHlTZXQgPSByb290Q29udmVydGVyQ29udGV4dD8uZ2V0RW50aXR5U2V0KCksXG5cdFx0ZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0ZDTEVuYWJsZWQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmlzRmNsRW5hYmxlZCgpO1xuXHRsZXQgaXNEcmFmdEVuYWJsZWQ7XG5cdGNvbnN0IHJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBnZXRIaWRkZW5FeHByZXNzaW9uKFxuXHRcdHJvb3RDb252ZXJ0ZXJDb250ZXh0LFxuXHRcdHJvb3RVcGRhdGVIaWRkZW5cblx0KTtcblx0aWYgKHZpZXdMZXZlbCAmJiB2aWV3TGV2ZWwgPiAxKSB7XG5cdFx0Ly8gaWYgdmlld2xldmVsID4gMSBjaGVjayBpZiBub2RlIGlzIGRyYWZ0IGVuYWJsZWRcblx0XHRpc0RyYWZ0RW5hYmxlZCA9IE1vZGVsSGVscGVyLmlzRHJhZnROb2RlKGVudGl0eVNldCk7XG5cdH0gZWxzZSB7XG5cdFx0aXNEcmFmdEVuYWJsZWQgPSBNb2RlbEhlbHBlci5pc0RyYWZ0Um9vdChyb290RW50aXR5U2V0KTtcblx0fVxuXHRjb25zdCB1cGRhdGVIaWRkZW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBnZXRIaWRkZW5FeHByZXNzaW9uKHJvb3RDb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGVIaWRkZW4pO1xuXG5cdGNvbnN0IG5vdEVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gbm90KFVJLklzRWRpdGFibGUpO1xuXG5cdC8vIElmIFVJLlVwZGF0ZUhpZGRlbiBhbm5vdGF0aW9uIG9uIGVudGl0eSBzZXQgb3IgdHlwZSBpcyBlaXRoZXIgbm90IGRlZmluZWQgb3IgZXhwbGljaXRseSBzZXQgdG8gZmFsc2UsXG5cdC8vIEVkaXQgYnV0dG9uIGlzIHZpc2libGUgaW4gZGlzcGxheSBtb2RlLlxuXHQvLyBlbHNlLFxuXHQvLyBFZGl0IGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGJvdGggYW5ub3RhdGlvbiBwYXRoIGFuZCBpbiBkaXNwbGF5IG1vZGUuXG5cdGNvbnN0IHJlc3VsdGFudEV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiA9IGlmRWxzZShcblx0XHQodmlld0xldmVsIGFzIG51bWJlcikgPiAxLFxuXHRcdGlmRWxzZShcblx0XHRcdHVwZGF0ZUhpZGRlbiA9PT0gdW5kZWZpbmVkIHx8IHVwZGF0ZUhpZGRlbi52YWx1ZU9mKCkgPT09IGZhbHNlLFxuXHRcdFx0YW5kKFxuXHRcdFx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0XHRcdGVxdWFsKHBhdGhJbk1vZGVsKFwicm9vdEVkaXRWaXNpYmxlXCIsIFwiaW50ZXJuYWxcIiksIHRydWUpLFxuXHRcdFx0XHRpZkVsc2UoaXNGQ0xFbmFibGVkLCBlcXVhbChwYXRoSW5Nb2RlbChcIi9zaG93RWRpdEJ1dHRvblwiLCBcImZjbGhlbHBlclwiKSwgdHJ1ZSksIHRydWUpXG5cdFx0XHQpLFxuXHRcdFx0YW5kKFxuXHRcdFx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0XHRcdGVxdWFsKHVwZGF0ZUhpZGRlbkV4cHJlc3Npb24sIGZhbHNlKSxcblx0XHRcdFx0ZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdFZpc2libGVcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSksXG5cdFx0XHRcdGlmRWxzZShpc0ZDTEVuYWJsZWQsIGVxdWFsKHBhdGhJbk1vZGVsKFwiL3Nob3dFZGl0QnV0dG9uXCIsIFwiZmNsaGVscGVyXCIpLCB0cnVlKSwgdHJ1ZSlcblx0XHRcdClcblx0XHQpLFxuXHRcdGlmRWxzZShcblx0XHRcdHJvb3RVcGRhdGVIaWRkZW4gPT09IHVuZGVmaW5lZCB8fCByb290VXBkYXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0XHRhbmQobm90RWRpdGFibGVFeHByZXNzaW9uLCBlcXVhbChyb290VXBkYXRlSGlkZGVuRXhwcmVzc2lvbiwgZmFsc2UpKVxuXHRcdClcblx0KTtcblx0cmV0dXJuIGlmRWxzZShpc0RyYWZ0RW5hYmxlZCwgYW5kKHJlc3VsdGFudEV4cHJlc3Npb24sIERyYWZ0Lkhhc05vRHJhZnRGb3JDdXJyZW50VXNlciksIHJlc3VsdGFudEV4cHJlc3Npb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlkZGVuRXhwcmVzc2lvbihjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGVIaWRkZW46IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkKSB7XG5cdGNvbnN0IGRhdGFNb2RlbE9iamVjdFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHR2aXNpdGVkTmF2aWdhdGlvblBhdGhzID0gZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5tYXAoKG5hdlByb3ApID0+IG5hdlByb3AubmFtZSksXG5cdFx0Ly8gU2V0IGFic29sdXRlIGJpbmRpbmcgcGF0aCBmb3IgU2luZ2xldG9uIHJlZmVyZW5jZXMsIG90aGVyd2lzZSB0aGUgY29uZmlndXJlZCBhbm5vdGF0aW9uIHBhdGggaXRzZWxmLlxuXHRcdC8vIEZvciBlLmcuIC9jb20uc2FwLm5hbWVzcGFjZS5FbnRpdHlDb250YWluZXIvU2luZ2xldG9uL1Byb3BlcnR5IHRvIC9TaW5nbGV0b24vUHJvcGVydHlcblx0XHR1cGRhdGVIaWRkZW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oXG5cdFx0XHR1cGRhdGVIaWRkZW4sXG5cdFx0XHR2aXNpdGVkTmF2aWdhdGlvblBhdGhzLFxuXHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0KHBhdGg6IHN0cmluZykgPT4gc2luZ2xldG9uUGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZWRUeXBlcygpLCB2aXNpdGVkTmF2aWdhdGlvblBhdGhzKVxuXHRcdCk7XG5cdHJldHVybiB1cGRhdGVIaWRkZW5FeHByZXNzaW9uO1xufVxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIEVkaXQgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSB1cGRhdGVSZXN0cmljdGlvbnNcbiAqIEBwYXJhbSB2aWV3TGV2ZWxcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIEVkaXQgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRpdEJ1dHRvbkVuYWJsZWQoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHVwZGF0ZVJlc3RyaWN0aW9ucz86IGFueSxcblx0dmlld0xldmVsPzogbnVtYmVyIHwgdW5kZWZpbmVkXG4pOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCksXG5cdFx0aXNEcmFmdFJvb3QgPSBNb2RlbEhlbHBlci5pc0RyYWZ0Um9vdChlbnRpdHlTZXQpLFxuXHRcdGlzU3RpY2t5ID0gTW9kZWxIZWxwZXIuaXNTdGlja3koZW50aXR5U2V0KTtcblx0bGV0IGVkaXRBY3Rpb25OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGlmIChpc0RyYWZ0Um9vdCAmJiAhTW9kZWxIZWxwZXIuaXNTaW5nbGV0b24oZW50aXR5U2V0KSkge1xuXHRcdGVkaXRBY3Rpb25OYW1lID0gKGVudGl0eVNldCBhcyBFbnRpdHlTZXQpPy5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH0gZWxzZSBpZiAoaXNTdGlja3kgJiYgIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGVudGl0eVNldCkpIHtcblx0XHRlZGl0QWN0aW9uTmFtZSA9IChlbnRpdHlTZXQgYXMgRW50aXR5U2V0KT8uYW5ub3RhdGlvbnMuU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH1cblx0aWYgKGVkaXRBY3Rpb25OYW1lKSB7XG5cdFx0Y29uc3QgZWRpdEFjdGlvbkFubm90YXRpb25QYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKGVkaXRBY3Rpb25OYW1lKTtcblx0XHRjb25zdCBlZGl0QWN0aW9uID0gY29udmVydGVyQ29udGV4dC5yZXNvbHZlQWJzb2x1dGVQYXRoKGVkaXRBY3Rpb25Bbm5vdGF0aW9uUGF0aCkudGFyZ2V0IGFzIEFjdGlvbiB8IG51bGw7XG5cdFx0aWYgKGVkaXRBY3Rpb24/LmFubm90YXRpb25zPy5Db3JlPy5PcGVyYXRpb25BdmFpbGFibGUgPT09IG51bGwpIHtcblx0XHRcdC8vIFdlIGRpc2FibGVkIGFjdGlvbiBhZHZlcnRpc2VtZW50IGJ1dCBrZXB0IGl0IGluIHRoZSBjb2RlIGZvciB0aGUgdGltZSBiZWluZ1xuXHRcdFx0Ly9yZXR1cm4gXCJ7PSAkeyNcIiArIGVkaXRBY3Rpb25OYW1lICsgXCJ9ID8gdHJ1ZSA6IGZhbHNlIH1cIjtcblx0XHR9IGVsc2UgaWYgKCh2aWV3TGV2ZWwgYXMgbnVtYmVyKSA+IDEpIHtcblx0XHRcdC8vIEVkaXQgYnV0dG9uIGlzIGVuYWJsZWQgYmFzZWQgb24gdGhlIHVwZGF0ZSByZXN0cmljdGlvbnMgb2YgdGhlIHN1Yi1PUFxuXHRcdFx0aWYgKHVwZGF0ZVJlc3RyaWN0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRhbmQoXG5cdFx0XHRcdFx0XHRlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24odXBkYXRlUmVzdHJpY3Rpb25zKSwgdHJ1ZSksXG5cdFx0XHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcInJvb3RFZGl0RW5hYmxlZFwiLCBcImludGVybmFsXCIpLCB0cnVlKVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihlcXVhbChwYXRoSW5Nb2RlbChcInJvb3RFZGl0RW5hYmxlZFwiLCBcImludGVybmFsXCIpLCB0cnVlKSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbihjb252ZXJ0ZXJDb250ZXh0LCBlZGl0QWN0aW9uID8/IHVuZGVmaW5lZCk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBcInRydWVcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhlYWRlckRlZmF1bHRBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBzQ29udGV4dFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKCk7XG5cdGNvbnN0IHJvb3RFbnRpdHlTZXRQYXRoID0gTW9kZWxIZWxwZXIuZ2V0Um9vdEVudGl0eVNldFBhdGgoc0NvbnRleHRQYXRoKTtcblx0Y29uc3Qgcm9vdENvbnZlcnRlckNvbnRleHQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlckNvbnRleHRGb3IoXCIvXCIgKyByb290RW50aXR5U2V0UGF0aCk7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCksXG5cdFx0ZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLFxuXHRcdHJvb3RFbnRpdHlTZXQgPSByb290Q29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRyb290RW50aXR5VHlwZSA9IHJvb3RDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSxcblx0XHRzdGlja3lTZXNzaW9uU3VwcG9ydGVkID0gTW9kZWxIZWxwZXIuZ2V0U3RpY2t5U2Vzc2lvbihyb290RW50aXR5U2V0KSwgLy9mb3Igc3RpY2t5IGFwcFxuXHRcdGRyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmdldERyYWZ0Um9vdChyb290RW50aXR5U2V0KSwgLy9lbnRpdHlTZXQgJiYgZW50aXR5U2V0LmFubm90YXRpb25zLkNvbW1vbj8uRHJhZnRSb290LFxuXHRcdGRyYWZ0Tm9kZSA9IE1vZGVsSGVscGVyLmdldERyYWZ0Tm9kZShyb290RW50aXR5U2V0KSxcblx0XHRlbnRpdHlEZWxldGVSZXN0cmljdGlvbnMgPSBlbnRpdHlTZXQgJiYgZW50aXR5U2V0LmFubm90YXRpb25zPy5DYXBhYmlsaXRpZXM/LkRlbGV0ZVJlc3RyaWN0aW9ucyxcblx0XHRyb290VXBkYXRlSGlkZGVuID0gTW9kZWxIZWxwZXIuaXNVcGRhdGVIaWRkZW4ocm9vdEVudGl0eVNldCwgcm9vdEVudGl0eVR5cGUpLFxuXHRcdHVwZGF0ZUhpZGRlbiA9IHJvb3RFbnRpdHlTZXQgJiYgIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKHJvb3RFbnRpdHlTZXQpICYmIHJvb3RVcGRhdGVIaWRkZW4/LnZhbHVlT2YoKSxcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksXG5cdFx0aXNQYXJlbnREZWxldGFibGUgPSBpc1BhdGhEZWxldGFibGUoZGF0YU1vZGVsT2JqZWN0UGF0aCwge1xuXHRcdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcsIG5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pID0+XG5cdFx0XHRcdHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgbmF2aWdhdGlvblBhdGhzKVxuXHRcdH0pLFxuXHRcdHBhcmVudEVudGl0eVNldERlbGV0YWJsZSA9IGlzUGFyZW50RGVsZXRhYmxlID8gY29tcGlsZUV4cHJlc3Npb24oaXNQYXJlbnREZWxldGFibGUpIDogaXNQYXJlbnREZWxldGFibGUsXG5cdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMgPSBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGZhbHNlKTtcblxuXHRjb25zdCBjb3B5RGF0YUZpZWxkID1cblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldFZpZXdMZXZlbCgpID09PSAxXG5cdFx0XHQ/IGdldENvcHlBY3Rpb24oXG5cdFx0XHRcdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBkYXRhRmllbGRJc0NvcHlBY3Rpb24oZGF0YUZpZWxkKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0ICApXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblxuXHRjb25zdCBoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zID0gaWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gIWRhdGFGaWVsZElzQ29weUFjdGlvbihkYXRhRmllbGQpO1xuXHR9KTtcblxuXHQvLyBJbml0aWFsaXplIGFjdGlvbnMgYW5kIHN0YXJ0IHdpdGggZHJhZnQgYWN0aW9ucyBpZiBhdmFpbGFibGUgc2luY2UgdGhleSBzaG91bGQgYXBwZWFyIGluIHRoZSBmaXJzdFxuXHQvLyBsZWZ0bW9zdCBwb3NpdGlvbiBpbiB0aGUgYWN0aW9ucyBhcmVhIG9mIHRoZSBPUCBoZWFkZXJcblx0Ly8gVGhpcyBpcyBtb3JlIGxpa2UgYSBwbGFjZWhvbGRlciB0aGFuIGEgc2luZ2xlIGFjdGlvbiwgc2luY2UgdGhpcyBjb250cm9scyBub3Qgb25seSB0aGUgdGVtcGxhdGluZyBvZlxuXHQvLyB0aGUgYnV0dG9uIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBkcmFmdCBhbmQgYWN0aXZlIGRvY3VtZW50IHZlcnNpb25zIGJ1dCBhbHNvIHRoZSBjb250cm9scyBmb3Jcblx0Ly8gdGhlIGNvbGxhYm9yYXRpdmUgZHJhZnQgZnJhZ21lbnQuXG5cdGNvbnN0IGhlYWRlckFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGVudGl0eVNldCkgJiYgZHJhZnRSb290Py5FZGl0QWN0aW9uICYmIHVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuRHJhZnRBY3Rpb25zLCBrZXk6IFwiRHJhZnRBY3Rpb25zXCIgfSk7XG5cdH1cblxuXHRjb25zdCB2aWV3TGV2ZWwgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldFZpZXdMZXZlbCgpO1xuXHRjb25zdCB1cGRhdGFibGVQcm9wZXJ0eVBhdGggPSB2aWV3TGV2ZWwgPiAxID8gZW50aXR5U2V0Py5hbm5vdGF0aW9ucy5DYXBhYmlsaXRpZXM/LlVwZGF0ZVJlc3RyaWN0aW9ucz8uVXBkYXRhYmxlIDogdW5kZWZpbmVkO1xuXHRpZiAoZHJhZnRSb290IHx8IGRyYWZ0Tm9kZSkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuQ29sbGFib3JhdGlvbkF2YXRhcnMsIGtleTogXCJDb2xsYWJvcmF0aW9uQXZhdGFyc1wiIH0pO1xuXHR9XG5cdC8vIFRoZW4gYWRkIHRoZSBcIkNyaXRpY2FsXCIgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPiAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGhlYWRlckFjdGlvbnMucHVzaChnZXREYXRhRmllbGRBbm5vdGF0aW9uQWN0aW9uKGRhdGFGaWVsZCwgY29udmVydGVyQ29udGV4dCkpO1xuXHRcdH0pO1xuXG5cdC8vIFRoZW4gdGhlIGVkaXQgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoKGRyYWZ0Um9vdD8uRWRpdEFjdGlvbiB8fCBzdGlja3lTZXNzaW9uU3VwcG9ydGVkPy5FZGl0QWN0aW9uKSAmJiB1cGRhdGVIaWRkZW4gIT09IHRydWUpIHtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5QcmltYXJ5LFxuXHRcdFx0a2V5OiBcIkVkaXRBY3Rpb25cIixcblx0XHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0XHRnZXRFZGl0QnV0dG9uVmlzaWJpbGl0eShcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdHJvb3RVcGRhdGVIaWRkZW4sXG5cdFx0XHRcdFx0cm9vdENvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0TW9kZWxIZWxwZXIuaXNVcGRhdGVIaWRkZW4oZW50aXR5U2V0LCBlbnRpdHlUeXBlKSxcblx0XHRcdFx0XHR2aWV3TGV2ZWxcblx0XHRcdFx0KVxuXHRcdFx0KSxcblx0XHRcdGVuYWJsZWQ6IGdldEVkaXRCdXR0b25FbmFibGVkKHJvb3RDb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGFibGVQcm9wZXJ0eVBhdGgsIHZpZXdMZXZlbClcblx0XHR9KTtcblx0fVxuXHQvLyBUaGVuIHRoZSBkZWxldGUgYWN0aW9uIGlmIHdlJ3JlIG5vdCBzdGF0aWNhbGx5IG5vdCBkZWxldGFibGVcblx0aWYgKFxuXHRcdChwYXJlbnRFbnRpdHlTZXREZWxldGFibGUgJiYgcGFyZW50RW50aXR5U2V0RGVsZXRhYmxlICE9PSBcImZhbHNlXCIpIHx8XG5cdFx0KGVudGl0eURlbGV0ZVJlc3RyaWN0aW9ucz8uRGVsZXRhYmxlPy52YWx1ZU9mKCkgIT09IGZhbHNlICYmIHBhcmVudEVudGl0eVNldERlbGV0YWJsZSAhPT0gXCJmYWxzZVwiKVxuXHQpIHtcblx0XHRjb25zdCBkZWxldGVIaWRkZW4gPSBNb2RlbEhlbHBlci5nZXREZWxldGVIaWRkZW4oZW50aXR5U2V0LCBlbnRpdHlUeXBlKSBhcyBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPjtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5TZWNvbmRhcnksXG5cdFx0XHRrZXk6IFwiRGVsZXRlQWN0aW9uXCIsXG5cdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihnZXREZWxldGVCdXR0b25WaXNpYmlsaXR5KGNvbnZlcnRlckNvbnRleHQsIGRlbGV0ZUhpZGRlbikpLFxuXHRcdFx0ZW5hYmxlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0RGVsZXRlQnV0dG9uRW5hYmxlZChlbnRpdHlEZWxldGVSZXN0cmljdGlvbnM/LkRlbGV0YWJsZSwgaXNQYXJlbnREZWxldGFibGUsIGNvbnZlcnRlckNvbnRleHQpKSxcblx0XHRcdHBhcmVudEVudGl0eURlbGV0ZUVuYWJsZWQ6IHBhcmVudEVudGl0eVNldERlbGV0YWJsZVxuXHRcdH0pO1xuXHR9XG5cblx0aWYgKGNvcHlEYXRhRmllbGQpIHtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0Li4uZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihjb3B5RGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuQ29weSxcblx0XHRcdHRleHQ6IGNvcHlEYXRhRmllbGQuTGFiZWw/LnRvU3RyaW5nKCkgPz8gQ29yZS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUuY29yZVwiKS5nZXRUZXh0KFwiQ19DT01NT05fQ09QWVwiKVxuXHRcdH0pO1xuXHR9XG5cblx0Y29uc3QgaGVhZGVyRGF0YUZpZWxkRm9ySUJOQWN0aW9ucyA9IGdldElkZW50aWZpY2F0aW9uRGF0YUZpZWxkRm9ySUJOQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgZmFsc2UpO1xuXG5cdGhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA9PT0gLTE7XG5cdFx0fSlcblx0XHQuZm9yRWFjaCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRpZiAoZGF0YUZpZWxkLlJlcXVpcmVzQ29udGV4dD8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihgUmVxdWlyZXNDb250ZXh0IHByb3BlcnR5IHNob3VsZCBub3QgYmUgdHJ1ZSBmb3IgaGVhZGVyIElCTiBhY3Rpb24gOiAke2RhdGFGaWVsZC5MYWJlbH1gKTtcblx0XHRcdH1cblx0XHRcdGlmIChkYXRhRmllbGQuSW5saW5lPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbmxpbmUgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSB0cnVlIGZvciBoZWFkZXIgSUJOIGFjdGlvbiA6ICR7ZGF0YUZpZWxkLkxhYmVsfWApO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgb05hdmlnYXRpb25QYXJhbXMgPSB7XG5cdFx0XHRcdHNlbWFudGljT2JqZWN0TWFwcGluZzogZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nKGRhdGFGaWVsZC5NYXBwaW5nKVxuXHRcdFx0fTtcblxuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24sXG5cdFx0XHRcdHRleHQ6IGRhdGFGaWVsZC5MYWJlbD8udG9TdHJpbmcoKSxcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0YnV0dG9uVHlwZTogQnV0dG9uVHlwZS5HaG9zdCxcblx0XHRcdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0YW5kKFxuXHRcdFx0XHRcdFx0bm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSksXG5cdFx0XHRcdFx0XHRub3QoZXF1YWwocGF0aEluTW9kZWwoXCJzaGVsbE5hdmlnYXRpb25Ob3RBdmFpbGFibGVcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSkpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRlbmFibGVkOlxuXHRcdFx0XHRcdGRhdGFGaWVsZC5OYXZpZ2F0aW9uQXZhaWxhYmxlICE9PSB1bmRlZmluZWRcblx0XHRcdFx0XHRcdD8gY29tcGlsZUV4cHJlc3Npb24oZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5OYXZpZ2F0aW9uQXZhaWxhYmxlPy52YWx1ZU9mKCkpLCB0cnVlKSlcblx0XHRcdFx0XHRcdDogdHJ1ZSxcblx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZCksXG5cdFx0XHRcdGlzTmF2aWdhYmxlOiB0cnVlLFxuXHRcdFx0XHRwcmVzczogY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0Zm4oXCIuX2ludGVudEJhc2VkTmF2aWdhdGlvbi5uYXZpZ2F0ZVwiLCBbXG5cdFx0XHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLlNlbWFudGljT2JqZWN0KSxcblx0XHRcdFx0XHRcdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuQWN0aW9uKSxcblx0XHRcdFx0XHRcdG9OYXZpZ2F0aW9uUGFyYW1zXG5cdFx0XHRcdFx0XSlcblx0XHRcdFx0KSxcblx0XHRcdFx0Y3VzdG9tRGF0YTogY29tcGlsZUV4cHJlc3Npb24oe1xuXHRcdFx0XHRcdHNlbWFudGljT2JqZWN0OiBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLlNlbWFudGljT2JqZWN0KSxcblx0XHRcdFx0XHRhY3Rpb246IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuQWN0aW9uKVxuXHRcdFx0XHR9KVxuXHRcdFx0fSBhcyBBbm5vdGF0aW9uQWN0aW9uKTtcblx0XHR9KTtcblx0Ly8gRmluYWxseSB0aGUgbm9uIGNyaXRpY2FsIERhdGFGaWVsZEZvckFjdGlvbnNcblx0aGVhZGVyRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRcdC5maWx0ZXIoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIElNUE9SVEFOVF9DUklUSUNBTElUSUVTLmluZGV4T2YoZGF0YUZpZWxkPy5Dcml0aWNhbGl0eSBhcyBzdHJpbmcpID09PSAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGhlYWRlckFjdGlvbnMucHVzaChnZXREYXRhRmllbGRBbm5vdGF0aW9uQWN0aW9uKGRhdGFGaWVsZCwgY29udmVydGVyQ29udGV4dCkpO1xuXHRcdH0pO1xuXG5cdHJldHVybiBoZWFkZXJBY3Rpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlkZGVuSGVhZGVyQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRjb25zdCBoaWRkZW5BY3Rpb25zID0gKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbj8uZmlsdGVyKChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZCkgPT4ge1xuXHRcdHJldHVybiBpZGVudGlmaWNhdGlvbkRhdGFGaWVsZD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZTtcblx0fSkgfHwgW10pIGFzIERhdGFGaWVsZEZvckFjdGlvblR5cGVzW107XG5cdHJldHVybiBoaWRkZW5BY3Rpb25zLm1hcCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdCxcblx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpXG5cdFx0fTtcblx0fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyh2aWV3TGV2ZWw6IG51bWJlciwgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEJhc2VBY3Rpb25bXSB7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk7XG5cdGNvbnN0IGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0Y29uc3Qgc3RpY2t5U2Vzc2lvblN1cHBvcnRlZCA9IE1vZGVsSGVscGVyLmdldFN0aWNreVNlc3Npb24oZW50aXR5U2V0KSwgLy9mb3Igc3RpY2t5IGFwcFxuXHRcdGVudGl0eVNldERyYWZ0Um9vdCA9XG5cdFx0XHQhTW9kZWxIZWxwZXIuaXNTaW5nbGV0b24oZW50aXR5U2V0KSAmJlxuXHRcdFx0ZW50aXR5U2V0ICYmXG5cdFx0XHQoZW50aXR5U2V0LmFubm90YXRpb25zLkNvbW1vbj8uRHJhZnRSb290Py50ZXJtIHx8IGVudGl0eVNldC5hbm5vdGF0aW9ucz8uU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8udGVybSksXG5cdFx0Y29uZGl0aW9uU2F2ZSA9IEJvb2xlYW4oXG5cdFx0XHRlbnRpdHlTZXREcmFmdFJvb3QgPT09IENvbW1vbkFubm90YXRpb25UZXJtcy5EcmFmdFJvb3QgfHwgKHN0aWNreVNlc3Npb25TdXBwb3J0ZWQgJiYgc3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8uU2F2ZUFjdGlvbilcblx0XHQpLFxuXHRcdGNvbmRpdGlvbkFwcGx5ID0gdmlld0xldmVsID4gMSxcblx0XHRjb25kaXRpb25DYW5jZWwgPSBCb29sZWFuKFxuXHRcdFx0ZW50aXR5U2V0RHJhZnRSb290ID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuRHJhZnRSb290IHx8IChzdGlja3lTZXNzaW9uU3VwcG9ydGVkICYmIHN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkRpc2NhcmRBY3Rpb24pXG5cdFx0KTtcblxuXHQvLyBSZXRyaWV2ZSBhbGwgZGV0ZXJtaW5pbmcgYWN0aW9uc1xuXHRjb25zdCBmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zID0gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCB0cnVlKTtcblxuXHQvLyBGaXJzdCBhZGQgdGhlIFwiQ3JpdGljYWxcIiBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGNvbnN0IGZvb3RlckFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IGZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA+IC0xO1xuXHRcdH0pXG5cdFx0Lm1hcCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihkYXRhRmllbGQsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdH0pO1xuXG5cdC8vIFRoZW4gdGhlIHNhdmUgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoZW50aXR5U2V0Py5lbnRpdHlUeXBlTmFtZSA9PT0gZW50aXR5VHlwZT8uZnVsbHlRdWFsaWZpZWROYW1lICYmIGNvbmRpdGlvblNhdmUpIHtcblx0XHRmb290ZXJBY3Rpb25zLnB1c2goeyB0eXBlOiBBY3Rpb25UeXBlLlByaW1hcnksIGtleTogXCJTYXZlQWN0aW9uXCIgfSk7XG5cdH1cblxuXHQvLyBUaGVuIHRoZSBhcHBseSBhY3Rpb24gaWYgaXQgZXhpc3RzXG5cdGlmIChjb25kaXRpb25BcHBseSkge1xuXHRcdGZvb3RlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdEFwcGx5LCBrZXk6IFwiQXBwbHlBY3Rpb25cIiB9KTtcblx0fVxuXG5cdC8vIFRoZW4gdGhlIG5vbiBjcml0aWNhbCBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA9PT0gLTE7XG5cdFx0fSlcblx0XHQuZm9yRWFjaCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRmb290ZXJBY3Rpb25zLnB1c2goZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihkYXRhRmllbGQsIGNvbnZlcnRlckNvbnRleHQpKTtcblx0XHR9KTtcblxuXHQvLyBUaGVuIHRoZSBjYW5jZWwgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoY29uZGl0aW9uQ2FuY2VsKSB7XG5cdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuU2Vjb25kYXJ5LFxuXHRcdFx0a2V5OiBcIkNhbmNlbEFjdGlvblwiLFxuXHRcdFx0cG9zaXRpb246IHsgcGxhY2VtZW50OiBQbGFjZW1lbnQuRW5kIH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9vdGVyQWN0aW9ucztcbn1cblxuZnVuY3Rpb24gZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihkYXRhRmllbGQ6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQW5ub3RhdGlvbkFjdGlvbiB7XG5cdHJldHVybiB7XG5cdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb24sXG5cdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihub3QoZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiksIHRydWUpKSksXG5cdFx0ZW5hYmxlZDogZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24oY29udmVydGVyQ29udGV4dCwgZGF0YUZpZWxkLkFjdGlvblRhcmdldCksXG5cdFx0aXNOYXZpZ2FibGU6IHRydWVcblx0fSBhcyBBbm5vdGF0aW9uQWN0aW9uO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNPLFNBQVNBLG9DQUFvQyxDQUFDQyxVQUFzQixFQUFFQyxtQkFBNEIsRUFBNkI7SUFBQTtJQUNySSxPQUFRLDBCQUFBRCxVQUFVLENBQUNFLFdBQVcsb0ZBQXRCLHNCQUF3QkMsRUFBRSxxRkFBMUIsdUJBQTRCQyxjQUFjLDJEQUExQyx1QkFBNENDLE1BQU0sQ0FBRUMsdUJBQXVCLElBQUs7TUFBQTtNQUN2RixPQUFPLDBCQUFBQSx1QkFBdUIsQ0FBQ0osV0FBVyxvRkFBbkMsc0JBQXFDQyxFQUFFLHFGQUF2Qyx1QkFBeUNJLE1BQU0sMkRBQS9DLHVCQUFpREMsT0FBTyxFQUFFLE1BQUssSUFBSSxJQUN6RUYsdUJBQXVCLENBQUNHLEtBQUssb0RBQXlDLElBQ3RFQyxPQUFPLDJCQUFDSix1QkFBdUIsQ0FBQ0ssV0FBVywyREFBbkMsdUJBQXFDSCxPQUFPLEVBQUUsQ0FBQyxLQUFLUCxtQkFBbUIsS0FDOUUsMkJBQUFLLHVCQUF1QixDQUFDTSxZQUFZLHFGQUFwQyx1QkFBc0NDLE9BQU8sMkRBQTdDLHVCQUErQ0wsT0FBTyxFQUFFLE1BQUssSUFBSSxJQUNqRSxDQUFBRix1QkFBdUIsYUFBdkJBLHVCQUF1QixpREFBdkJBLHVCQUF1QixDQUFFTSxZQUFZLHFGQUFyQyx1QkFBdUNWLFdBQVcscUZBQWxELHVCQUFvRFksSUFBSSxzRkFBeEQsdUJBQTBEQyxrQkFBa0IsNERBQTVFLHdCQUE4RVAsT0FBTyxFQUFFLE1BQUssS0FBSyxDQUFDLEdB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
|
|
408
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMiLCJlbnRpdHlUeXBlIiwiaXNEZXRlcm1pbmluZ0FjdGlvbiIsImFubm90YXRpb25zIiwiVUkiLCJJZGVudGlmaWNhdGlvbiIsImZpbHRlciIsImlkZW50aWZpY2F0aW9uRGF0YUZpZWxkIiwiSGlkZGVuIiwidmFsdWVPZiIsIiRUeXBlIiwiQm9vbGVhbiIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsIkNvcmUiLCJPcGVyYXRpb25BdmFpbGFibGUiLCJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJJTVBPUlRBTlRfQ1JJVElDQUxJVElFUyIsImdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkiLCJjb252ZXJ0ZXJDb250ZXh0IiwiZGVsZXRlSGlkZGVuIiwiZGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJ2aXNpdGVkTmF2aWdhdGlvblBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJtYXAiLCJuYXZQcm9wIiwibmFtZSIsImRlbGV0ZUhpZGRlbkV4cHJlc3Npb24iLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJ1bmRlZmluZWQiLCJwYXRoIiwic2luZ2xldG9uUGF0aFZpc2l0b3IiLCJnZXRDb252ZXJ0ZWRUeXBlcyIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsInZpZXdMZXZlbCIsImdldFZpZXdMZXZlbCIsImVkaXRhYmxlRXhwcmVzc2lvbiIsIklzRWRpdGFibGUiLCJub3QiLCJpZkVsc2UiLCJhbmQiLCJlcXVhbCIsImdldERlbGV0ZUJ1dHRvbkVuYWJsZWQiLCJpc0RlbGV0YWJsZSIsImlzUGFyZW50RGVsZXRhYmxlIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiaXNEcmFmdFJvb3QiLCJNb2RlbEhlbHBlciIsInJldCIsImNvbnN0YW50IiwicGF0aEluTW9kZWwiLCJnZXRFZGl0QnV0dG9uVmlzaWJpbGl0eSIsInJvb3RVcGRhdGVIaWRkZW4iLCJyb290Q29udmVydGVyQ29udGV4dCIsInVwZGF0ZUhpZGRlbiIsInJvb3RFbnRpdHlTZXQiLCJpc0ZDTEVuYWJsZWQiLCJpc0ZjbEVuYWJsZWQiLCJpc0RyYWZ0RW5hYmxlZCIsInJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uIiwiZ2V0SGlkZGVuRXhwcmVzc2lvbiIsImlzRHJhZnROb2RlIiwidXBkYXRlSGlkZGVuRXhwcmVzc2lvbiIsIm5vdEVkaXRhYmxlRXhwcmVzc2lvbiIsInJlc3VsdGFudEV4cHJlc3Npb24iLCJEcmFmdCIsIkhhc05vRHJhZnRGb3JDdXJyZW50VXNlciIsImdldEVkaXRCdXR0b25FbmFibGVkIiwidXBkYXRlUmVzdHJpY3Rpb25zIiwiaXNTdGlja3kiLCJlZGl0QWN0aW9uTmFtZSIsImlzRW50aXR5U2V0IiwiQ29tbW9uIiwiRHJhZnRSb290IiwiRWRpdEFjdGlvbiIsIlNlc3Npb24iLCJTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZWRpdEFjdGlvbkFubm90YXRpb25QYXRoIiwiZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aCIsImVkaXRBY3Rpb24iLCJyZXNvbHZlQWJzb2x1dGVQYXRoIiwidGFyZ2V0IiwiY29tcGlsZUV4cHJlc3Npb24iLCJnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbiIsImdldEhlYWRlckRlZmF1bHRBY3Rpb25zIiwic0NvbnRleHRQYXRoIiwiZ2V0Q29udGV4dFBhdGgiLCJyb290RW50aXR5U2V0UGF0aCIsImdldFJvb3RFbnRpdHlTZXRQYXRoIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImdldEVudGl0eVR5cGUiLCJyb290RW50aXR5VHlwZSIsInN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRTdGlja3lTZXNzaW9uIiwiZHJhZnRSb290IiwiZ2V0RHJhZnRSb290IiwiZHJhZnROb2RlIiwiZ2V0RHJhZnROb2RlIiwiZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zIiwiQ2FwYWJpbGl0aWVzIiwiRGVsZXRlUmVzdHJpY3Rpb25zIiwiaXNVcGRhdGVIaWRkZW4iLCJpc1BhdGhEZWxldGFibGUiLCJwYXRoVmlzaXRvciIsIm5hdmlnYXRpb25QYXRocyIsInBhcmVudEVudGl0eVNldERlbGV0YWJsZSIsImlkZW50aWZpY2F0aW9uRmllbGRGb3JBY3Rpb25zIiwiY29weURhdGFGaWVsZCIsImdldENvcHlBY3Rpb24iLCJkYXRhRmllbGQiLCJkYXRhRmllbGRJc0NvcHlBY3Rpb24iLCJoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zIiwiaGVhZGVyQWN0aW9ucyIsInB1c2giLCJ0eXBlIiwiQWN0aW9uVHlwZSIsIkRyYWZ0QWN0aW9ucyIsImtleSIsInVwZGF0YWJsZVByb3BlcnR5UGF0aCIsIlVwZGF0ZVJlc3RyaWN0aW9ucyIsIlVwZGF0YWJsZSIsIkNvbGxhYm9yYXRpb25BdmF0YXJzIiwiaW5kZXhPZiIsIkNyaXRpY2FsaXR5IiwiZm9yRWFjaCIsImdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24iLCJQcmltYXJ5IiwidmlzaWJsZSIsImVuYWJsZWQiLCJEZWxldGFibGUiLCJnZXREZWxldGVIaWRkZW4iLCJTZWNvbmRhcnkiLCJwYXJlbnRFbnRpdHlEZWxldGVFbmFibGVkIiwiQ29weSIsInRleHQiLCJMYWJlbCIsInRvU3RyaW5nIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiZ2V0VGV4dCIsImhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJSZXF1aXJlc0NvbnRleHQiLCJFcnJvciIsIklubGluZSIsIm9OYXZpZ2F0aW9uUGFyYW1zIiwic2VtYW50aWNPYmplY3RNYXBwaW5nIiwiZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nIiwiTWFwcGluZyIsIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImJ1dHRvblR5cGUiLCJCdXR0b25UeXBlIiwiR2hvc3QiLCJOYXZpZ2F0aW9uQXZhaWxhYmxlIiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwiaXNOYXZpZ2FibGUiLCJwcmVzcyIsImZuIiwiU2VtYW50aWNPYmplY3QiLCJBY3Rpb24iLCJjdXN0b21EYXRhIiwic2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJnZXRIaWRkZW5IZWFkZXJBY3Rpb25zIiwiaGlkZGVuQWN0aW9ucyIsIkRlZmF1bHQiLCJnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyIsImVudGl0eVNldERyYWZ0Um9vdCIsInRlcm0iLCJjb25kaXRpb25TYXZlIiwiU2F2ZUFjdGlvbiIsImNvbmRpdGlvbkFwcGx5IiwiY29uZGl0aW9uQ2FuY2VsIiwiRGlzY2FyZEFjdGlvbiIsImZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnMiLCJmb290ZXJBY3Rpb25zIiwiZW50aXR5VHlwZU5hbWUiLCJEZWZhdWx0QXBwbHkiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkVuZCIsIkRhdGFGaWVsZEZvckFjdGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSGVhZGVyQW5kRm9vdGVyQWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uLCBFbnRpdHlUeXBlLCBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgQ29tbW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXMsIERhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSB7IEFubm90YXRpb25BY3Rpb24sIEJhc2VBY3Rpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQge1xuXHRCdXR0b25UeXBlLFxuXHRkYXRhRmllbGRJc0NvcHlBY3Rpb24sXG5cdGdldENvcHlBY3Rpb24sXG5cdGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uLFxuXHRnZXRTZW1hbnRpY09iamVjdE1hcHBpbmdcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvS2V5XCI7XG5pbXBvcnQge1xuXHRhbmQsXG5cdEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Q29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sXG5cdGNvbXBpbGVFeHByZXNzaW9uLFxuXHRjb25zdGFudCxcblx0ZXF1YWwsXG5cdGZuLFxuXHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sXG5cdGlmRWxzZSxcblx0bm90LFxuXHRwYXRoSW5Nb2RlbFxufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBpc0VudGl0eVNldCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB7IGlzUGF0aERlbGV0YWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBEcmFmdCwgc2luZ2xldG9uUGF0aFZpc2l0b3IsIFVJIH0gZnJvbSBcIi4uL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gXCIuLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbi8qKlxuICogUmV0cmlldmVzIGFsbCB0aGUgZGF0YSBmaWVsZCBmb3IgYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb25cbiAqIFRoZXkgbXVzdCBiZVxuICogLSBOb3Qgc3RhdGljYWxseSBoaWRkZW5cbiAqIC0gRWl0aGVyIGxpbmtlZCB0byBhbiBVbmJvdW5kIGFjdGlvbiBvciB0byBhbiBhY3Rpb24gd2hpY2ggaGFzIGFuIE9wZXJhdGlvbkF2YWlsYWJsZSB0aGF0IGlzIG5vdCBzZXQgdG8gZmFsc2Ugc3RhdGljYWxseS5cbiAqXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgY3VycmVudCBlbnRpdHkgdHlwZVxuICogQHBhcmFtIGlzRGV0ZXJtaW5pbmdBY3Rpb24gVGhlIGZsYWcgd2hpY2ggZGVub3RlcyB3aGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIGlzIGEgZGV0ZXJtaW5pbmcgYWN0aW9uXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBEYXRhRmllbGQgZm9yIGFjdGlvbiByZXNwZWN0aW5nIHRoZSBpbnB1dCBwYXJhbWV0ZXIgJ2lzRGV0ZXJtaW5pbmdBY3Rpb24nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgaXNEZXRlcm1pbmluZ0FjdGlvbjogYm9vbGVhbik6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzW10ge1xuXHRyZXR1cm4gKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbj8uZmlsdGVyKChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZCkgPT4ge1xuXHRcdHJldHVybiBpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpICE9PSB0cnVlICYmXG5cdFx0XHRpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uICYmXG5cdFx0XHRCb29sZWFuKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkLkRldGVybWluaW5nPy52YWx1ZU9mKCkpID09PSBpc0RldGVybWluaW5nQWN0aW9uICYmXG5cdFx0XHQoaWRlbnRpZmljYXRpb25EYXRhRmllbGQuQWN0aW9uVGFyZ2V0Py5pc0JvdW5kPy52YWx1ZU9mKCkgIT09IHRydWUgfHxcblx0XHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQ/LkFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnM/LkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZT8udmFsdWVPZigpICE9PSBmYWxzZSlcblx0XHRcdD8gdHJ1ZVxuXHRcdFx0OiBmYWxzZTtcblx0fSkgfHwgW10pIGFzIERhdGFGaWVsZEZvckFjdGlvblR5cGVzW107XG59XG5cbi8qKlxuICogUmV0cmlldmUgYWxsIHRoZSBJQk4gYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb24uXG4gKiBUaGV5IG11c3QgYmVcbiAqIC0gTm90IHN0YXRpY2FsbHkgaGlkZGVuLlxuICpcbiAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBjdXJyZW50IGVudGl0eXR5cGVcbiAqIEBwYXJhbSBpc0RldGVybWluaW5nQWN0aW9uIFdoZXRoZXIgb3Igbm90IHRoZSBhY3Rpb24gc2hvdWxkIGJlIGRldGVybWluaW5nXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkYXRhIGZpZWxkIGZvciBhY3Rpb24gcmVzcGVjdGluZyB0aGUgaXNEZXRlcm1pbmluZ0FjdGlvbiBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRpc0RldGVybWluaW5nQWN0aW9uOiBib29sZWFuXG4pOiBEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25UeXBlc1tdIHtcblx0cmV0dXJuIChlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSWRlbnRpZmljYXRpb24/LmZpbHRlcigoaWRlbnRpZmljYXRpb25EYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gaWRlbnRpZmljYXRpb25EYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSAhPT0gdHJ1ZSAmJlxuXHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiAmJlxuXHRcdFx0Qm9vbGVhbihpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5EZXRlcm1pbmluZz8udmFsdWVPZigpKSA9PT0gaXNEZXRlcm1pbmluZ0FjdGlvblxuXHRcdFx0PyB0cnVlXG5cdFx0XHQ6IGZhbHNlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXNbXTtcbn1cblxuZXhwb3J0IGNvbnN0IElNUE9SVEFOVF9DUklUSUNBTElUSUVTID0gW1xuXHRcIlVJLkNyaXRpY2FsaXR5VHlwZS9WZXJ5UG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvVmVyeU5lZ2F0aXZlXCJcbl07XG5cbi8qKlxuICogTWV0aG9kIHRvIGRldGVybWluZSB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IGJpbmRpbmcgZm9yIHRoZSBEZWxldGUgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSBkZWxldGVIaWRkZW4gVGhlIHZhbHVlIG9mIHRoZSBVSS5EZWxldGVIaWRkZW4gYW5ub3RhdGlvbiBvbiB0aGUgZW50aXR5IHNldCAvIHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBEZWxldGUgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVsZXRlQnV0dG9uVmlzaWJpbGl0eShcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0ZGVsZXRlSGlkZGVuOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPiB8IHVuZGVmaW5lZFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLm1hcCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lKSxcblx0XHQvLyBTZXQgYWJzb2x1dGUgYmluZGluZyBwYXRoIGZvciBTaW5nbGV0b24gcmVmZXJlbmNlcywgb3RoZXJ3aXNlIHRoZSBjb25maWd1cmVkIGFubm90YXRpb24gcGF0aCBpdHNlbGYuXG5cdFx0Ly8gRm9yIGUuZy4gL2NvbS5zYXAubmFtZXNwYWNlLkVudGl0eUNvbnRhaW5lci9TaW5nbGV0b24vUHJvcGVydHkgdG8gL1NpbmdsZXRvbi9Qcm9wZXJ0eVxuXHRcdGRlbGV0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihcblx0XHRcdGRlbGV0ZUhpZGRlbixcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHQocGF0aDogc3RyaW5nKSA9PiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIFtdKVxuXHRcdCksXG5cdFx0bWFuaWZlc3RXcmFwcGVyID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKSxcblx0XHR2aWV3TGV2ZWwgPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Vmlld0xldmVsKCksXG5cdFx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlXG5cdFx0Ly8gSW4gT1AgXHRcdC0tPiAgd2hlbiBub3QgaW4gZWRpdCBtb2RlXG5cdFx0Ly8gSW4gc3ViLU9QIFx0LS0+ICB3aGVuIGluIGVkaXQgbW9kZVxuXHRcdGVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gdmlld0xldmVsID4gMSA/IFVJLklzRWRpdGFibGUgOiBub3QoVUkuSXNFZGl0YWJsZSk7XG5cblx0Ly8gSWYgVUkuRGVsZXRlSGlkZGVuIGFubm90YXRpb24gb24gZW50aXR5IHNldCBvciB0eXBlIGlzIGVpdGhlciBub3QgZGVmaW5lZCBvciBleHBsaWNpdGx5IHNldCB0byBmYWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGVkaXRhYmxlRXhwcmVzc2lvbi5cblx0Ly8gZWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGJvdGggYW5ub3RhdGlvbiBwYXRoIGFuZCBlZGl0YWJsZUV4cHJlc3Npb24uXG5cdHJldHVybiBpZkVsc2UoXG5cdFx0ZGVsZXRlSGlkZGVuID09PSB1bmRlZmluZWQgfHwgZGVsZXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0ZWRpdGFibGVFeHByZXNzaW9uLFxuXHRcdGFuZChlZGl0YWJsZUV4cHJlc3Npb24sIGVxdWFsKGRlbGV0ZUhpZGRlbkV4cHJlc3Npb24sIGZhbHNlKSlcblx0KTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIERlbGV0ZSBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGlzRGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZFxuICogQHBhcmFtIGlzUGFyZW50RGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZCBvbiB0aGUgcGFyZW50IGVudGl0eVxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIERlbGV0ZSBidXR0b25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZUJ1dHRvbkVuYWJsZWQoXG5cdGlzRGVsZXRhYmxlOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxCb29sZWFuPiB8IHVuZGVmaW5lZCxcblx0aXNQYXJlbnREZWxldGFibGU6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0RyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KGVudGl0eVNldCk7XG5cblx0bGV0IHJldCA9IGlmRWxzZShcblx0XHRpc1BhcmVudERlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLFxuXHRcdGlzUGFyZW50RGVsZXRhYmxlLFxuXHRcdGlmRWxzZShpc0RlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLCBlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oaXNEZWxldGFibGUpLCB0cnVlKSwgY29uc3RhbnQodHJ1ZSkpXG5cdCk7XG5cblx0Ly8gZGVsZXRlIHNob3VsZCBiZSBkaXNhYmxlZCBmb3IgTG9ja2VkIG9iamVjdHNcblx0cmV0ID0gaXNEcmFmdFJvb3QgPyBhbmQocmV0LCBub3QocGF0aEluTW9kZWwoXCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9JblByb2Nlc3NCeVVzZXJcIikpKSA6IHJldDtcblxuXHRyZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIE1ldGhvZCB0byBkZXRlcm1pbmUgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBiaW5kaW5nIGZvciB0aGUgRWRpdCBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgSW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICogQHBhcmFtIHJvb3RVcGRhdGVIaWRkZW4gVGhlIHZhbHVlIG9mIHRoZSBVSS5VcGRhdGVIaWRkZW4gYW5ub3RhdGlvbiBvbiB0aGUgZW50aXR5IHNldCAvIHR5cGUuXG4gKiBAcGFyYW0gcm9vdENvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSB1cGRhdGVIaWRkZW5cbiAqIEBwYXJhbSB2aWV3TGV2ZWxcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIEVkaXQgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRpdEJ1dHRvblZpc2liaWxpdHkoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHJvb3RVcGRhdGVIaWRkZW46IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxuXHRyb290Q29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dXBkYXRlSGlkZGVuPzogUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj4gfCB1bmRlZmluZWQsXG5cdHZpZXdMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3Qgcm9vdEVudGl0eVNldCA9IHJvb3RDb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlTZXQoKSxcblx0XHRlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpLFxuXHRcdGlzRkNMRW5hYmxlZCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaXNGY2xFbmFibGVkKCk7XG5cdGxldCBpc0RyYWZ0RW5hYmxlZDtcblx0Y29uc3Qgcm9vdFVwZGF0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEhpZGRlbkV4cHJlc3Npb24oXG5cdFx0cm9vdENvbnZlcnRlckNvbnRleHQsXG5cdFx0cm9vdFVwZGF0ZUhpZGRlblxuXHQpO1xuXHRpZiAodmlld0xldmVsICYmIHZpZXdMZXZlbCA+IDEpIHtcblx0XHQvLyBpZiB2aWV3bGV2ZWwgPiAxIGNoZWNrIGlmIG5vZGUgaXMgZHJhZnQgZW5hYmxlZFxuXHRcdGlzRHJhZnRFbmFibGVkID0gTW9kZWxIZWxwZXIuaXNEcmFmdE5vZGUoZW50aXR5U2V0KTtcblx0fSBlbHNlIHtcblx0XHRpc0RyYWZ0RW5hYmxlZCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KHJvb3RFbnRpdHlTZXQpO1xuXHR9XG5cdGNvbnN0IHVwZGF0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEhpZGRlbkV4cHJlc3Npb24ocm9vdENvbnZlcnRlckNvbnRleHQsIHVwZGF0ZUhpZGRlbik7XG5cblx0Y29uc3Qgbm90RWRpdGFibGVFeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4gPSBub3QoVUkuSXNFZGl0YWJsZSk7XG5cblx0Ly8gSWYgVUkuVXBkYXRlSGlkZGVuIGFubm90YXRpb24gb24gZW50aXR5IHNldCBvciB0eXBlIGlzIGVpdGhlciBub3QgZGVmaW5lZCBvciBleHBsaWNpdGx5IHNldCB0byBmYWxzZSxcblx0Ly8gRWRpdCBidXR0b24gaXMgdmlzaWJsZSBpbiBkaXNwbGF5IG1vZGUuXG5cdC8vIGVsc2UsXG5cdC8vIEVkaXQgYnV0dG9uIGlzIHZpc2libGUgYmFzZWQgb24gYm90aCBhbm5vdGF0aW9uIHBhdGggYW5kIGluIGRpc3BsYXkgbW9kZS5cblx0Y29uc3QgcmVzdWx0YW50RXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gaWZFbHNlKFxuXHRcdCh2aWV3TGV2ZWwgYXMgbnVtYmVyKSA+IDEsXG5cdFx0aWZFbHNlKFxuXHRcdFx0dXBkYXRlSGlkZGVuID09PSB1bmRlZmluZWQgfHwgdXBkYXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRhbmQoXG5cdFx0XHRcdG5vdEVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRcdFx0ZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdFZpc2libGVcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSksXG5cdFx0XHRcdGlmRWxzZShpc0ZDTEVuYWJsZWQsIGVxdWFsKHBhdGhJbk1vZGVsKFwiL3Nob3dFZGl0QnV0dG9uXCIsIFwiZmNsaGVscGVyXCIpLCB0cnVlKSwgdHJ1ZSlcblx0XHRcdCksXG5cdFx0XHRhbmQoXG5cdFx0XHRcdG5vdEVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRcdFx0ZXF1YWwodXBkYXRlSGlkZGVuRXhwcmVzc2lvbiwgZmFsc2UpLFxuXHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcInJvb3RFZGl0VmlzaWJsZVwiLCBcImludGVybmFsXCIpLCB0cnVlKSxcblx0XHRcdFx0aWZFbHNlKGlzRkNMRW5hYmxlZCwgZXF1YWwocGF0aEluTW9kZWwoXCIvc2hvd0VkaXRCdXR0b25cIiwgXCJmY2xoZWxwZXJcIiksIHRydWUpLCB0cnVlKVxuXHRcdFx0KVxuXHRcdCksXG5cdFx0aWZFbHNlKFxuXHRcdFx0cm9vdFVwZGF0ZUhpZGRlbiA9PT0gdW5kZWZpbmVkIHx8IHJvb3RVcGRhdGVIaWRkZW4udmFsdWVPZigpID09PSBmYWxzZSxcblx0XHRcdG5vdEVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRcdGFuZChub3RFZGl0YWJsZUV4cHJlc3Npb24sIGVxdWFsKHJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uLCBmYWxzZSkpXG5cdFx0KVxuXHQpO1xuXHRyZXR1cm4gaWZFbHNlKGlzRHJhZnRFbmFibGVkLCBhbmQocmVzdWx0YW50RXhwcmVzc2lvbiwgRHJhZnQuSGFzTm9EcmFmdEZvckN1cnJlbnRVc2VyKSwgcmVzdWx0YW50RXhwcmVzc2lvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWRkZW5FeHByZXNzaW9uKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIHVwZGF0ZUhpZGRlbjogUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj4gfCB1bmRlZmluZWQpIHtcblx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLm1hcCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lKSxcblx0XHQvLyBTZXQgYWJzb2x1dGUgYmluZGluZyBwYXRoIGZvciBTaW5nbGV0b24gcmVmZXJlbmNlcywgb3RoZXJ3aXNlIHRoZSBjb25maWd1cmVkIGFubm90YXRpb24gcGF0aCBpdHNlbGYuXG5cdFx0Ly8gRm9yIGUuZy4gL2NvbS5zYXAubmFtZXNwYWNlLkVudGl0eUNvbnRhaW5lci9TaW5nbGV0b24vUHJvcGVydHkgdG8gL1NpbmdsZXRvbi9Qcm9wZXJ0eVxuXHRcdHVwZGF0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihcblx0XHRcdHVwZGF0ZUhpZGRlbixcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHQocGF0aDogc3RyaW5nKSA9PiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMpXG5cdFx0KTtcblx0cmV0dXJuIHVwZGF0ZUhpZGRlbkV4cHJlc3Npb247XG59XG4vKipcbiAqIE1ldGhvZCB0byBkZXRlcm1pbmUgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBiaW5kaW5nIGZvciB0aGUgRWRpdCBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgSW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICogQHBhcmFtIHVwZGF0ZVJlc3RyaWN0aW9uc1xuICogQHBhcmFtIHZpZXdMZXZlbFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiB0aGUgRWRpdCBidXR0b24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFZGl0QnV0dG9uRW5hYmxlZChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dXBkYXRlUmVzdHJpY3Rpb25zPzogYW55LFxuXHR2aWV3TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWRcbik6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0RyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KGVudGl0eVNldCksXG5cdFx0aXNTdGlja3kgPSBNb2RlbEhlbHBlci5pc1N0aWNreShlbnRpdHlTZXQpO1xuXHRsZXQgZWRpdEFjdGlvbk5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0aWYgKGlzRHJhZnRSb290ICYmIGlzRW50aXR5U2V0KGVudGl0eVNldCkpIHtcblx0XHRlZGl0QWN0aW9uTmFtZSA9IGVudGl0eVNldC5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH0gZWxzZSBpZiAoaXNTdGlja3kgJiYgaXNFbnRpdHlTZXQoZW50aXR5U2V0KSkge1xuXHRcdGVkaXRBY3Rpb25OYW1lID0gZW50aXR5U2V0LmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkVkaXRBY3Rpb24gYXMgc3RyaW5nO1xuXHR9XG5cdGlmIChlZGl0QWN0aW9uTmFtZSkge1xuXHRcdGNvbnN0IGVkaXRBY3Rpb25Bbm5vdGF0aW9uUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aChlZGl0QWN0aW9uTmFtZSk7XG5cdFx0Y29uc3QgZWRpdEFjdGlvbiA9IGNvbnZlcnRlckNvbnRleHQucmVzb2x2ZUFic29sdXRlUGF0aChlZGl0QWN0aW9uQW5ub3RhdGlvblBhdGgpLnRhcmdldCBhcyBBY3Rpb24gfCBudWxsO1xuXHRcdGlmIChlZGl0QWN0aW9uPy5hbm5vdGF0aW9ucz8uQ29yZT8uT3BlcmF0aW9uQXZhaWxhYmxlID09PSBudWxsKSB7XG5cdFx0XHQvLyBXZSBkaXNhYmxlZCBhY3Rpb24gYWR2ZXJ0aXNlbWVudCBidXQga2VwdCBpdCBpbiB0aGUgY29kZSBmb3IgdGhlIHRpbWUgYmVpbmdcblx0XHRcdC8vcmV0dXJuIFwiez0gJHsjXCIgKyBlZGl0QWN0aW9uTmFtZSArIFwifSA/IHRydWUgOiBmYWxzZSB9XCI7XG5cdFx0fSBlbHNlIGlmICgodmlld0xldmVsIGFzIG51bWJlcikgPiAxKSB7XG5cdFx0XHQvLyBFZGl0IGJ1dHRvbiBpcyBlbmFibGVkIGJhc2VkIG9uIHRoZSB1cGRhdGUgcmVzdHJpY3Rpb25zIG9mIHRoZSBzdWItT1Bcblx0XHRcdGlmICh1cGRhdGVSZXN0cmljdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0YW5kKFxuXHRcdFx0XHRcdFx0ZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKHVwZGF0ZVJlc3RyaWN0aW9ucyksIHRydWUpLFxuXHRcdFx0XHRcdFx0ZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdEVuYWJsZWRcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdEVuYWJsZWRcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSkpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24oY29udmVydGVyQ29udGV4dCwgZWRpdEFjdGlvbiA/PyB1bmRlZmluZWQpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gXCJ0cnVlXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWFkZXJEZWZhdWx0QWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3Qgc0NvbnRleHRQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRDb250ZXh0UGF0aCgpO1xuXHRjb25zdCByb290RW50aXR5U2V0UGF0aCA9IE1vZGVsSGVscGVyLmdldFJvb3RFbnRpdHlTZXRQYXRoKHNDb250ZXh0UGF0aCk7XG5cdGNvbnN0IHJvb3RDb252ZXJ0ZXJDb250ZXh0ID0gY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKFwiL1wiICsgcm9vdEVudGl0eVNldFBhdGgpO1xuXHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpLFxuXHRcdGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSxcblx0XHRyb290RW50aXR5U2V0ID0gcm9vdENvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCksXG5cdFx0cm9vdEVudGl0eVR5cGUgPSByb290Q29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksXG5cdFx0c3RpY2t5U2Vzc2lvblN1cHBvcnRlZCA9IE1vZGVsSGVscGVyLmdldFN0aWNreVNlc3Npb24ocm9vdEVudGl0eVNldCksIC8vZm9yIHN0aWNreSBhcHBcblx0XHRkcmFmdFJvb3QgPSBNb2RlbEhlbHBlci5nZXREcmFmdFJvb3Qocm9vdEVudGl0eVNldCksIC8vZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdCxcblx0XHRkcmFmdE5vZGUgPSBNb2RlbEhlbHBlci5nZXREcmFmdE5vZGUocm9vdEVudGl0eVNldCksXG5cdFx0ZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zID0gZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucz8uQ2FwYWJpbGl0aWVzPy5EZWxldGVSZXN0cmljdGlvbnMsXG5cdFx0cm9vdFVwZGF0ZUhpZGRlbiA9IE1vZGVsSGVscGVyLmlzVXBkYXRlSGlkZGVuKHJvb3RFbnRpdHlTZXQsIHJvb3RFbnRpdHlUeXBlKSxcblx0XHR1cGRhdGVIaWRkZW4gPSByb290RW50aXR5U2V0ICYmIGlzRW50aXR5U2V0KHJvb3RFbnRpdHlTZXQpICYmIHJvb3RVcGRhdGVIaWRkZW4/LnZhbHVlT2YoKSxcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksXG5cdFx0aXNQYXJlbnREZWxldGFibGUgPSBpc1BhdGhEZWxldGFibGUoZGF0YU1vZGVsT2JqZWN0UGF0aCwge1xuXHRcdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcsIG5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pID0+XG5cdFx0XHRcdHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgbmF2aWdhdGlvblBhdGhzKVxuXHRcdH0pLFxuXHRcdHBhcmVudEVudGl0eVNldERlbGV0YWJsZSA9IGlzUGFyZW50RGVsZXRhYmxlID8gY29tcGlsZUV4cHJlc3Npb24oaXNQYXJlbnREZWxldGFibGUpIDogaXNQYXJlbnREZWxldGFibGUsXG5cdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMgPSBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGZhbHNlKTtcblxuXHRjb25zdCBjb3B5RGF0YUZpZWxkID1cblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldFZpZXdMZXZlbCgpID09PSAxXG5cdFx0XHQ/IGdldENvcHlBY3Rpb24oXG5cdFx0XHRcdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBkYXRhRmllbGRJc0NvcHlBY3Rpb24oZGF0YUZpZWxkKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0ICApXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblxuXHRjb25zdCBoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zID0gaWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gIWRhdGFGaWVsZElzQ29weUFjdGlvbihkYXRhRmllbGQpO1xuXHR9KTtcblxuXHQvLyBJbml0aWFsaXplIGFjdGlvbnMgYW5kIHN0YXJ0IHdpdGggZHJhZnQgYWN0aW9ucyBpZiBhdmFpbGFibGUgc2luY2UgdGhleSBzaG91bGQgYXBwZWFyIGluIHRoZSBmaXJzdFxuXHQvLyBsZWZ0bW9zdCBwb3NpdGlvbiBpbiB0aGUgYWN0aW9ucyBhcmVhIG9mIHRoZSBPUCBoZWFkZXJcblx0Ly8gVGhpcyBpcyBtb3JlIGxpa2UgYSBwbGFjZWhvbGRlciB0aGFuIGEgc2luZ2xlIGFjdGlvbiwgc2luY2UgdGhpcyBjb250cm9scyBub3Qgb25seSB0aGUgdGVtcGxhdGluZyBvZlxuXHQvLyB0aGUgYnV0dG9uIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBkcmFmdCBhbmQgYWN0aXZlIGRvY3VtZW50IHZlcnNpb25zIGJ1dCBhbHNvIHRoZSBjb250cm9scyBmb3Jcblx0Ly8gdGhlIGNvbGxhYm9yYXRpdmUgZHJhZnQgZnJhZ21lbnQuXG5cdGNvbnN0IGhlYWRlckFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoaXNFbnRpdHlTZXQoZW50aXR5U2V0KSAmJiBkcmFmdFJvb3Q/LkVkaXRBY3Rpb24gJiYgdXBkYXRlSGlkZGVuICE9PSB0cnVlKSB7XG5cdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHsgdHlwZTogQWN0aW9uVHlwZS5EcmFmdEFjdGlvbnMsIGtleTogXCJEcmFmdEFjdGlvbnNcIiB9KTtcblx0fVxuXG5cdGNvbnN0IHZpZXdMZXZlbCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0Vmlld0xldmVsKCk7XG5cdGNvbnN0IHVwZGF0YWJsZVByb3BlcnR5UGF0aCA9IHZpZXdMZXZlbCA+IDEgPyBlbnRpdHlTZXQ/LmFubm90YXRpb25zLkNhcGFiaWxpdGllcz8uVXBkYXRlUmVzdHJpY3Rpb25zPy5VcGRhdGFibGUgOiB1bmRlZmluZWQ7XG5cdGlmIChkcmFmdFJvb3QgfHwgZHJhZnROb2RlKSB7XG5cdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHsgdHlwZTogQWN0aW9uVHlwZS5Db2xsYWJvcmF0aW9uQXZhdGFycywga2V5OiBcIkNvbGxhYm9yYXRpb25BdmF0YXJzXCIgfSk7XG5cdH1cblx0Ly8gVGhlbiBhZGQgdGhlIFwiQ3JpdGljYWxcIiBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGhlYWRlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA+IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG5cdFx0fSk7XG5cblx0Ly8gVGhlbiB0aGUgZWRpdCBhY3Rpb24gaWYgaXQgZXhpc3RzXG5cdGlmICgoZHJhZnRSb290Py5FZGl0QWN0aW9uIHx8IHN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkVkaXRBY3Rpb24pICYmIHVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlByaW1hcnksXG5cdFx0XHRrZXk6IFwiRWRpdEFjdGlvblwiLFxuXHRcdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdGdldEVkaXRCdXR0b25WaXNpYmlsaXR5KFxuXHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0cm9vdFVwZGF0ZUhpZGRlbixcblx0XHRcdFx0XHRyb290Q29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRNb2RlbEhlbHBlci5pc1VwZGF0ZUhpZGRlbihlbnRpdHlTZXQsIGVudGl0eVR5cGUpLFxuXHRcdFx0XHRcdHZpZXdMZXZlbFxuXHRcdFx0XHQpXG5cdFx0XHQpLFxuXHRcdFx0ZW5hYmxlZDogZ2V0RWRpdEJ1dHRvbkVuYWJsZWQocm9vdENvbnZlcnRlckNvbnRleHQsIHVwZGF0YWJsZVByb3BlcnR5UGF0aCwgdmlld0xldmVsKVxuXHRcdH0pO1xuXHR9XG5cdC8vIFRoZW4gdGhlIGRlbGV0ZSBhY3Rpb24gaWYgd2UncmUgbm90IHN0YXRpY2FsbHkgbm90IGRlbGV0YWJsZVxuXHRpZiAoXG5cdFx0KHBhcmVudEVudGl0eVNldERlbGV0YWJsZSAmJiBwYXJlbnRFbnRpdHlTZXREZWxldGFibGUgIT09IFwiZmFsc2VcIikgfHxcblx0XHQoZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zPy5EZWxldGFibGU/LnZhbHVlT2YoKSAhPT0gZmFsc2UgJiYgcGFyZW50RW50aXR5U2V0RGVsZXRhYmxlICE9PSBcImZhbHNlXCIpXG5cdCkge1xuXHRcdGNvbnN0IGRlbGV0ZUhpZGRlbiA9IE1vZGVsSGVscGVyLmdldERlbGV0ZUhpZGRlbihlbnRpdHlTZXQsIGVudGl0eVR5cGUpIGFzIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+O1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlNlY29uZGFyeSxcblx0XHRcdGtleTogXCJEZWxldGVBY3Rpb25cIixcblx0XHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKGdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkoY29udmVydGVyQ29udGV4dCwgZGVsZXRlSGlkZGVuKSksXG5cdFx0XHRlbmFibGVkOiBjb21waWxlRXhwcmVzc2lvbihnZXREZWxldGVCdXR0b25FbmFibGVkKGVudGl0eURlbGV0ZVJlc3RyaWN0aW9ucz8uRGVsZXRhYmxlLCBpc1BhcmVudERlbGV0YWJsZSwgY29udmVydGVyQ29udGV4dCkpLFxuXHRcdFx0cGFyZW50RW50aXR5RGVsZXRlRW5hYmxlZDogcGFyZW50RW50aXR5U2V0RGVsZXRhYmxlXG5cdFx0fSk7XG5cdH1cblxuXHRpZiAoY29weURhdGFGaWVsZCkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHQuLi5nZXREYXRhRmllbGRBbm5vdGF0aW9uQWN0aW9uKGNvcHlEYXRhRmllbGQsIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5Db3B5LFxuXHRcdFx0dGV4dDogY29weURhdGFGaWVsZC5MYWJlbD8udG9TdHJpbmcoKSA/PyBDb3JlLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5jb3JlXCIpLmdldFRleHQoXCJDX0NPTU1PTl9DT1BZXCIpXG5cdFx0fSk7XG5cdH1cblxuXHRjb25zdCBoZWFkZXJEYXRhRmllbGRGb3JJQk5BY3Rpb25zID0gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCBmYWxzZSk7XG5cblx0aGVhZGVyRGF0YUZpZWxkRm9ySUJOQWN0aW9uc1xuXHRcdC5maWx0ZXIoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIElNUE9SVEFOVF9DUklUSUNBTElUSUVTLmluZGV4T2YoZGF0YUZpZWxkPy5Dcml0aWNhbGl0eSBhcyBzdHJpbmcpID09PSAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGlmIChkYXRhRmllbGQuUmVxdWlyZXNDb250ZXh0Py52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBSZXF1aXJlc0NvbnRleHQgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSB0cnVlIGZvciBoZWFkZXIgSUJOIGFjdGlvbiA6ICR7ZGF0YUZpZWxkLkxhYmVsfWApO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGRhdGFGaWVsZC5JbmxpbmU/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYElubGluZSBwcm9wZXJ0eSBzaG91bGQgbm90IGJlIHRydWUgZm9yIGhlYWRlciBJQk4gYWN0aW9uIDogJHtkYXRhRmllbGQuTGFiZWx9YCk7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBvTmF2aWdhdGlvblBhcmFtcyA9IHtcblx0XHRcdFx0c2VtYW50aWNPYmplY3RNYXBwaW5nOiBnZXRTZW1hbnRpY09iamVjdE1hcHBpbmcoZGF0YUZpZWxkLk1hcHBpbmcpXG5cdFx0XHR9O1xuXG5cdFx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbixcblx0XHRcdFx0dGV4dDogZGF0YUZpZWxkLkxhYmVsPy50b1N0cmluZygpLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGRhdGFGaWVsZC5mdWxseVF1YWxpZmllZE5hbWUpLFxuXHRcdFx0XHRidXR0b25UeXBlOiBCdXR0b25UeXBlLkdob3N0LFxuXHRcdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRhbmQoXG5cdFx0XHRcdFx0XHRub3QoZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiksIHRydWUpKSxcblx0XHRcdFx0XHRcdG5vdChlcXVhbChwYXRoSW5Nb2RlbChcInNoZWxsTmF2aWdhdGlvbk5vdEF2YWlsYWJsZVwiLCBcImludGVybmFsXCIpLCB0cnVlKSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCksXG5cdFx0XHRcdGVuYWJsZWQ6XG5cdFx0XHRcdFx0ZGF0YUZpZWxkLk5hdmlnYXRpb25BdmFpbGFibGUgIT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0PyBjb21waWxlRXhwcmVzc2lvbihlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLk5hdmlnYXRpb25BdmFpbGFibGU/LnZhbHVlT2YoKSksIHRydWUpKVxuXHRcdFx0XHRcdFx0OiB0cnVlLFxuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHRcdFx0aXNOYXZpZ2FibGU6IHRydWUsXG5cdFx0XHRcdHByZXNzOiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRmbihcIi5faW50ZW50QmFzZWROYXZpZ2F0aW9uLm5hdmlnYXRlXCIsIFtcblx0XHRcdFx0XHRcdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuU2VtYW50aWNPYmplY3QpLFxuXHRcdFx0XHRcdFx0Z2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5BY3Rpb24pLFxuXHRcdFx0XHRcdFx0b05hdmlnYXRpb25QYXJhbXNcblx0XHRcdFx0XHRdKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRjdXN0b21EYXRhOiBjb21waWxlRXhwcmVzc2lvbih7XG5cdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuU2VtYW50aWNPYmplY3QpLFxuXHRcdFx0XHRcdGFjdGlvbjogZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5BY3Rpb24pXG5cdFx0XHRcdH0pXG5cdFx0XHR9IGFzIEFubm90YXRpb25BY3Rpb24pO1xuXHRcdH0pO1xuXHQvLyBGaW5hbGx5IHRoZSBub24gY3JpdGljYWwgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPT09IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG5cdFx0fSk7XG5cblx0cmV0dXJuIGhlYWRlckFjdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWRkZW5IZWFkZXJBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdGNvbnN0IGhpZGRlbkFjdGlvbnMgPSAoZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LklkZW50aWZpY2F0aW9uPy5maWx0ZXIoKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkKSA9PiB7XG5cdFx0cmV0dXJuIGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkPy5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXNbXTtcblx0cmV0dXJuIGhpZGRlbkFjdGlvbnMubWFwKChkYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EZWZhdWx0LFxuXHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZClcblx0XHR9O1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvb3RlckRlZmF1bHRBY3Rpb25zKHZpZXdMZXZlbDogbnVtYmVyLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKTtcblx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRjb25zdCBzdGlja3lTZXNzaW9uU3VwcG9ydGVkID0gTW9kZWxIZWxwZXIuZ2V0U3RpY2t5U2Vzc2lvbihlbnRpdHlTZXQpLCAvL2ZvciBzdGlja3kgYXBwXG5cdFx0ZW50aXR5U2V0RHJhZnRSb290ID1cblx0XHRcdGlzRW50aXR5U2V0KGVudGl0eVNldCkgJiZcblx0XHRcdChlbnRpdHlTZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5EcmFmdFJvb3Q/LnRlcm0gPz8gZW50aXR5U2V0LmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LnRlcm0pLFxuXHRcdGNvbmRpdGlvblNhdmUgPSBCb29sZWFuKFxuXHRcdFx0ZW50aXR5U2V0RHJhZnRSb290ID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuRHJhZnRSb290IHx8IChzdGlja3lTZXNzaW9uU3VwcG9ydGVkICYmIHN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LlNhdmVBY3Rpb24pXG5cdFx0KSxcblx0XHRjb25kaXRpb25BcHBseSA9IHZpZXdMZXZlbCA+IDEsXG5cdFx0Y29uZGl0aW9uQ2FuY2VsID0gQm9vbGVhbihcblx0XHRcdGVudGl0eVNldERyYWZ0Um9vdCA9PT0gQ29tbW9uQW5ub3RhdGlvblRlcm1zLkRyYWZ0Um9vdCB8fCAoc3RpY2t5U2Vzc2lvblN1cHBvcnRlZCAmJiBzdGlja3lTZXNzaW9uU3VwcG9ydGVkPy5EaXNjYXJkQWN0aW9uKVxuXHRcdCk7XG5cblx0Ly8gUmV0cmlldmUgYWxsIGRldGVybWluaW5nIGFjdGlvbnNcblx0Y29uc3QgZm9vdGVyRGF0YUZpZWxkRm9yQWN0aW9ucyA9IGdldElkZW50aWZpY2F0aW9uRGF0YUZpZWxkRm9yQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgdHJ1ZSk7XG5cblx0Ly8gRmlyc3QgYWRkIHRoZSBcIkNyaXRpY2FsXCIgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRjb25zdCBmb290ZXJBY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPiAtMTtcblx0XHR9KVxuXHRcdC5tYXAoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHR9KTtcblxuXHQvLyBUaGVuIHRoZSBzYXZlIGFjdGlvbiBpZiBpdCBleGlzdHNcblx0aWYgKGVudGl0eVNldD8uZW50aXR5VHlwZU5hbWUgPT09IGVudGl0eVR5cGU/LmZ1bGx5UXVhbGlmaWVkTmFtZSAmJiBjb25kaXRpb25TYXZlKSB7XG5cdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKHsgdHlwZTogQWN0aW9uVHlwZS5QcmltYXJ5LCBrZXk6IFwiU2F2ZUFjdGlvblwiIH0pO1xuXHR9XG5cblx0Ly8gVGhlbiB0aGUgYXBwbHkgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoY29uZGl0aW9uQXBwbHkpIHtcblx0XHRmb290ZXJBY3Rpb25zLnB1c2goeyB0eXBlOiBBY3Rpb25UeXBlLkRlZmF1bHRBcHBseSwga2V5OiBcIkFwcGx5QWN0aW9uXCIgfSk7XG5cdH1cblxuXHQvLyBUaGVuIHRoZSBub24gY3JpdGljYWwgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPT09IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG5cdFx0fSk7XG5cblx0Ly8gVGhlbiB0aGUgY2FuY2VsIGFjdGlvbiBpZiBpdCBleGlzdHNcblx0aWYgKGNvbmRpdGlvbkNhbmNlbCkge1xuXHRcdGZvb3RlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlNlY29uZGFyeSxcblx0XHRcdGtleTogXCJDYW5jZWxBY3Rpb25cIixcblx0XHRcdHBvc2l0aW9uOiB7IHBsYWNlbWVudDogUGxhY2VtZW50LkVuZCB9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGZvb3RlckFjdGlvbnM7XG59XG5cbmZ1bmN0aW9uIGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkOiBEYXRhRmllbGRGb3JBY3Rpb25UeXBlcywgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEFubm90YXRpb25BY3Rpb24ge1xuXHRyZXR1cm4ge1xuXHRcdHR5cGU6IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9yQWN0aW9uLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZGF0YUZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZCksXG5cdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSkpLFxuXHRcdGVuYWJsZWQ6IGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uKGNvbnZlcnRlckNvbnRleHQsIGRhdGFGaWVsZC5BY3Rpb25UYXJnZXQpLFxuXHRcdGlzTmF2aWdhYmxlOiB0cnVlXG5cdH0gYXMgQW5ub3RhdGlvbkFjdGlvbjtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sU0FBU0Esb0NBQW9DLENBQUNDLFVBQXNCLEVBQUVDLG1CQUE0QixFQUE2QjtJQUFBO0lBQ3JJLE9BQVEsMEJBQUFELFVBQVUsQ0FBQ0UsV0FBVyxvRkFBdEIsc0JBQXdCQyxFQUFFLHFGQUExQix1QkFBNEJDLGNBQWMsMkRBQTFDLHVCQUE0Q0MsTUFBTSxDQUFFQyx1QkFBdUIsSUFBSztNQUFBO01BQ3ZGLE9BQU8sMEJBQUFBLHVCQUF1QixDQUFDSixXQUFXLG9GQUFuQyxzQkFBcUNDLEVBQUUscUZBQXZDLHVCQUF5Q0ksTUFBTSwyREFBL0MsdUJBQWlEQyxPQUFPLEVBQUUsTUFBSyxJQUFJLElBQ3pFRix1QkFBdUIsQ0FBQ0csS0FBSyxvREFBeUMsSUFDdEVDLE9BQU8sMkJBQUNKLHVCQUF1QixDQUFDSyxXQUFXLDJEQUFuQyx1QkFBcUNILE9BQU8sRUFBRSxDQUFDLEtBQUtQLG1CQUFtQixLQUM5RSwyQkFBQUssdUJBQXVCLENBQUNNLFlBQVkscUZBQXBDLHVCQUFzQ0MsT0FBTywyREFBN0MsdUJBQStDTCxPQUFPLEVBQUUsTUFBSyxJQUFJLElBQ2pFLENBQUFGLHVCQUF1QixhQUF2QkEsdUJBQXVCLGlEQUF2QkEsdUJBQXVCLENBQUVNLFlBQVkscUZBQXJDLHVCQUF1Q1YsV0FBVyxxRkFBbEQsdUJBQW9EWSxJQUFJLHNGQUF4RCx1QkFBMERDLGtCQUFrQiw0REFBNUUsd0JBQThFUCxPQUFPLEVBQUUsTUFBSyxLQUFLLENBQUMsR0FDakcsSUFBSSxHQUNKLEtBQUs7SUFDVCxDQUFDLENBQUMsS0FBSSxFQUFFO0VBQ1Q7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBUkE7RUFTQSxTQUFTUSx1Q0FBdUMsQ0FDL0NoQixVQUFzQixFQUN0QkMsbUJBQTRCLEVBQ2U7SUFBQTtJQUMzQyxPQUFRLDJCQUFBRCxVQUFVLENBQUNFLFdBQVcscUZBQXRCLHVCQUF3QkMsRUFBRSxxRkFBMUIsdUJBQTRCQyxjQUFjLDJEQUExQyx1QkFBNENDLE1BQU0sQ0FBRUMsdUJBQXVCLElBQUs7TUFBQTtNQUN2RixPQUFPLDRCQUFBQSx1QkFBdUIsQ0FBQ0osV0FBVyx1RkFBbkMsd0JBQXFDQyxFQUFFLHVGQUF2Qyx3QkFBeUNJLE1BQU0sNERBQS9DLHdCQUFpREMsT0FBTyxFQUFFLE1BQUssSUFBSSxJQUN6RUYsdUJBQXVCLENBQUNHLEtBQUssbUVBQXdELElBQ3JGQyxPQUFPLDRCQUFDSix1QkFBdUIsQ0FBQ0ssV0FBVyw0REFBbkMsd0JBQXFDSCxPQUFPLEVBQUUsQ0FBQyxLQUFLUCxtQkFBbUIsR0FDN0UsSUFBSSxHQUNKLEtBQUs7SUFDVCxDQUFDLENBQUMsS0FBSSxFQUFFO0VBQ1Q7RUFFTyxNQUFNZ0IsdUJBQXVCLEdBQUcsQ0FDdEMsaUNBQWlDLEVBQ2pDLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsaUNBQWlDLENBQ2pDOztFQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTkE7RUFPTyxTQUFTQyx5QkFBeUIsQ0FDeENDLGdCQUFrQyxFQUNsQ0MsWUFBMEQsRUFDdEI7SUFDcEMsTUFBTUMsbUJBQW1CLEdBQUdGLGdCQUFnQixDQUFDRyxzQkFBc0IsRUFBRTtNQUNwRUMsc0JBQXNCLEdBQUdGLG1CQUFtQixDQUFDRyxvQkFBb0IsQ0FBQ0MsR0FBRyxDQUFFQyxPQUFPLElBQUtBLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDO01BQ2hHO01BQ0E7TUFDQUMsc0JBQXFFLEdBQUdDLDJCQUEyQixDQUNsR1QsWUFBWSxFQUNaRyxzQkFBc0IsRUFDdEJPLFNBQVMsRUFDUkMsSUFBWSxJQUFLQyxvQkFBb0IsQ0FBQ0QsSUFBSSxFQUFFWixnQkFBZ0IsQ0FBQ2MsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDdEY7TUFDREMsZUFBZSxHQUFHZixnQkFBZ0IsQ0FBQ2dCLGtCQUFrQixFQUFFO01BQ3ZEQyxTQUFTLEdBQUdGLGVBQWUsQ0FBQ0csWUFBWSxFQUFFO01BQzFDO01BQ0E7TUFDQTtNQUNBQyxrQkFBcUQsR0FBR0YsU0FBUyxHQUFHLENBQUMsR0FBR2pDLEVBQUUsQ0FBQ29DLFVBQVUsR0FBR0MsR0FBRyxDQUFDckMsRUFBRSxDQUFDb0MsVUFBVSxDQUFDOztJQUUzRztJQUNBO0lBQ0E7SUFDQTtJQUNBLE9BQU9FLE1BQU0sQ0FDWnJCLFlBQVksS0FBS1UsU0FBUyxJQUFJVixZQUFZLENBQUNaLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFDOUQ4QixrQkFBa0IsRUFDbEJJLEdBQUcsQ0FBQ0osa0JBQWtCLEVBQUVLLEtBQUssQ0FBQ2Ysc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDN0Q7RUFDRjs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBUEE7RUFRTyxTQUFTZ0Isc0JBQXNCLENBQ3JDQyxXQUF5RCxFQUN6REMsaUJBQW9ELEVBQ3BEM0IsZ0JBQWtDLEVBQ0U7SUFDcEMsTUFBTTRCLFNBQVMsR0FBRzVCLGdCQUFnQixDQUFDNkIsWUFBWSxFQUFFO01BQ2hEQyxXQUFXLEdBQUdDLFdBQVcsQ0FBQ0QsV0FBVyxDQUFDRixTQUFTLENBQUM7SUFFakQsSUFBSUksR0FBRyxHQUFHVixNQUFNLENBQ2ZLLGlCQUFpQixLQUFLaEIsU0FBUyxFQUMvQmdCLGlCQUFpQixFQUNqQkwsTUFBTSxDQUFDSSxXQUFXLEtBQUtmLFNBQVMsRUFBRWEsS0FBSyxDQUFDZCwyQkFBMkIsQ0FBQ2dCLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDeEc7O0lBRUQ7SUFDQUQsR0FBRyxHQUFHRixXQUFXLEdBQUdQLEdBQUcsQ0FBQ1MsR0FBRyxFQUFFWCxHQUFHLENBQUNhLFdBQVcsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDLENBQUMsR0FBR0YsR0FBRztJQUUvRixPQUFPQSxHQUFHO0VBQ1g7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFUQTtFQVVPLFNBQVNHLHVCQUF1QixDQUN0Q25DLGdCQUFrQyxFQUNsQ29DLGdCQUE4RCxFQUM5REMsb0JBQXNDLEVBQ3RDQyxZQUEyRCxFQUMzRHJCLFNBQThCLEVBQ007SUFDcEMsTUFBTXNCLGFBQWEsR0FBR0Ysb0JBQW9CLGFBQXBCQSxvQkFBb0IsdUJBQXBCQSxvQkFBb0IsQ0FBRVIsWUFBWSxFQUFFO01BQ3pERCxTQUFTLEdBQUc1QixnQkFBZ0IsQ0FBQzZCLFlBQVksRUFBRTtNQUMzQ1csWUFBWSxHQUFHeEMsZ0JBQWdCLENBQUNnQixrQkFBa0IsRUFBRSxDQUFDeUIsWUFBWSxFQUFFO0lBQ3BFLElBQUlDLGNBQWM7SUFDbEIsTUFBTUMsMEJBQXlFLEdBQUdDLG1CQUFtQixDQUNwR1Asb0JBQW9CLEVBQ3BCRCxnQkFBZ0IsQ0FDaEI7SUFDRCxJQUFJbkIsU0FBUyxJQUFJQSxTQUFTLEdBQUcsQ0FBQyxFQUFFO01BQy9CO01BQ0F5QixjQUFjLEdBQUdYLFdBQVcsQ0FBQ2MsV0FBVyxDQUFDakIsU0FBUyxDQUFDO0lBQ3BELENBQUMsTUFBTTtNQUNOYyxjQUFjLEdBQUdYLFdBQVcsQ0FBQ0QsV0FBVyxDQUFDUyxhQUFhLENBQUM7SUFDeEQ7SUFDQSxNQUFNTyxzQkFBcUUsR0FBR0YsbUJBQW1CLENBQUNQLG9CQUFvQixFQUFFQyxZQUFZLENBQUM7SUFFckksTUFBTVMscUJBQXdELEdBQUcxQixHQUFHLENBQUNyQyxFQUFFLENBQUNvQyxVQUFVLENBQUM7O0lBRW5GO0lBQ0E7SUFDQTtJQUNBO0lBQ0EsTUFBTTRCLG1CQUFzRCxHQUFHMUIsTUFBTSxDQUNuRUwsU0FBUyxHQUFjLENBQUMsRUFDekJLLE1BQU0sQ0FDTGdCLFlBQVksS0FBSzNCLFNBQVMsSUFBSTJCLFlBQVksQ0FBQ2pELE9BQU8sRUFBRSxLQUFLLEtBQUssRUFDOURrQyxHQUFHLENBQ0Z3QixxQkFBcUIsRUFDckJ2QixLQUFLLENBQUNVLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDdkRaLE1BQU0sQ0FBQ2tCLFlBQVksRUFBRWhCLEtBQUssQ0FBQ1UsV0FBVyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUNwRixFQUNEWCxHQUFHLENBQ0Z3QixxQkFBcUIsRUFDckJ2QixLQUFLLENBQUNzQixzQkFBc0IsRUFBRSxLQUFLLENBQUMsRUFDcEN0QixLQUFLLENBQUNVLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDdkRaLE1BQU0sQ0FBQ2tCLFlBQVksRUFBRWhCLEtBQUssQ0FBQ1UsV0FBVyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUNwRixDQUNELEVBQ0RaLE1BQU0sQ0FDTGMsZ0JBQWdCLEtBQUt6QixTQUFTLElBQUl5QixnQkFBZ0IsQ0FBQy9DLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFDdEUwRCxxQkFBcUIsRUFDckJ4QixHQUFHLENBQUN3QixxQkFBcUIsRUFBRXZCLEtBQUssQ0FBQ21CLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ3BFLENBQ0Q7SUFDRCxPQUFPckIsTUFBTSxDQUFDb0IsY0FBYyxFQUFFbkIsR0FBRyxDQUFDeUIsbUJBQW1CLEVBQUVDLEtBQUssQ0FBQ0Msd0JBQXdCLENBQUMsRUFBRUYsbUJBQW1CLENBQUM7RUFDN0c7RUFBQztFQUVNLFNBQVNKLG1CQUFtQixDQUFDNUMsZ0JBQWtDLEVBQUVzQyxZQUEwRCxFQUFFO0lBQ25JLE1BQU1wQyxtQkFBbUIsR0FBR0YsZ0JBQWdCLENBQUNHLHNCQUFzQixFQUFFO01BQ3BFQyxzQkFBc0IsR0FBR0YsbUJBQW1CLENBQUNHLG9CQUFvQixDQUFDQyxHQUFHLENBQUVDLE9BQU8sSUFBS0EsT0FBTyxDQUFDQyxJQUFJLENBQUM7TUFDaEc7TUFDQTtNQUNBc0Msc0JBQXFFLEdBQUdwQywyQkFBMkIsQ0FDbEc0QixZQUFZLEVBQ1psQyxzQkFBc0IsRUFDdEJPLFNBQVMsRUFDUkMsSUFBWSxJQUFLQyxvQkFBb0IsQ0FBQ0QsSUFBSSxFQUFFWixnQkFBZ0IsQ0FBQ2MsaUJBQWlCLEVBQUUsRUFBRVYsc0JBQXNCLENBQUMsQ0FDMUc7SUFDRixPQUFPMEMsc0JBQXNCO0VBQzlCO0VBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVBBO0VBUU8sU0FBU0ssb0JBQW9CLENBQ25DbkQsZ0JBQWtDLEVBQ2xDb0Qsa0JBQXdCLEVBQ3hCbkMsU0FBOEIsRUFDSztJQUNuQyxNQUFNVyxTQUFTLEdBQUc1QixnQkFBZ0IsQ0FBQzZCLFlBQVksRUFBRTtNQUNoREMsV0FBVyxHQUFHQyxXQUFXLENBQUNELFdBQVcsQ0FBQ0YsU0FBUyxDQUFDO01BQ2hEeUIsUUFBUSxHQUFHdEIsV0FBVyxDQUFDc0IsUUFBUSxDQUFDekIsU0FBUyxDQUFDO0lBQzNDLElBQUkwQixjQUFrQztJQUN0QyxJQUFJeEIsV0FBVyxJQUFJeUIsV0FBVyxDQUFDM0IsU0FBUyxDQUFDLEVBQUU7TUFBQTtNQUMxQzBCLGNBQWMsNEJBQUcxQixTQUFTLENBQUM3QyxXQUFXLENBQUN5RSxNQUFNLG9GQUE1QixzQkFBOEJDLFNBQVMsMkRBQXZDLHVCQUF5Q0MsVUFBb0I7SUFDL0UsQ0FBQyxNQUFNLElBQUlMLFFBQVEsSUFBSUUsV0FBVyxDQUFDM0IsU0FBUyxDQUFDLEVBQUU7TUFBQTtNQUM5QzBCLGNBQWMsNkJBQUcxQixTQUFTLENBQUM3QyxXQUFXLENBQUM0RSxPQUFPLHFGQUE3Qix1QkFBK0JDLHNCQUFzQiwyREFBckQsdUJBQXVERixVQUFvQjtJQUM3RjtJQUNBLElBQUlKLGNBQWMsRUFBRTtNQUFBO01BQ25CLE1BQU1PLHdCQUF3QixHQUFHN0QsZ0JBQWdCLENBQUM4RCx5QkFBeUIsQ0FBQ1IsY0FBYyxDQUFDO01BQzNGLE1BQU1TLFVBQVUsR0FBRy9ELGdCQUFnQixDQUFDZ0UsbUJBQW1CLENBQUNILHdCQUF3QixDQUFDLENBQUNJLE1BQXVCO01BQ3pHLElBQUksQ0FBQUYsVUFBVSxhQUFWQSxVQUFVLGdEQUFWQSxVQUFVLENBQUVoRixXQUFXLG9GQUF2QixzQkFBeUJZLElBQUksMkRBQTdCLHVCQUErQkMsa0JBQWtCLE1BQUssSUFBSSxFQUFFO1FBQy9EO1FBQ0E7TUFBQSxDQUNBLE1BQU0sSUFBS3FCLFNBQVMsR0FBYyxDQUFDLEVBQUU7UUFDckM7UUFDQSxJQUFJbUMsa0JBQWtCLEtBQUt6QyxTQUFTLEVBQUU7VUFDckMsT0FBT3VELGlCQUFpQixDQUN2QjNDLEdBQUcsQ0FDRkMsS0FBSyxDQUFDZCwyQkFBMkIsQ0FBQzBDLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQzVENUIsS0FBSyxDQUFDVSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQ3ZELENBQ0Q7UUFDRixDQUFDLE1BQU07VUFDTixPQUFPZ0MsaUJBQWlCLENBQUMxQyxLQUFLLENBQUNVLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRjtNQUNELENBQUMsTUFBTTtRQUNOLE9BQU9pQyw2QkFBNkIsQ0FBQ25FLGdCQUFnQixFQUFFK0QsVUFBVSxJQUFJcEQsU0FBUyxDQUFDO01BQ2hGO0lBQ0Q7SUFDQSxPQUFPLE1BQU07RUFDZDtFQUFDO0VBRU0sU0FBU3lELHVCQUF1QixDQUFDcEUsZ0JBQWtDLEVBQWdCO0lBQUE7SUFDekYsTUFBTXFFLFlBQVksR0FBR3JFLGdCQUFnQixDQUFDc0UsY0FBYyxFQUFFO0lBQ3RELE1BQU1DLGlCQUFpQixHQUFHeEMsV0FBVyxDQUFDeUMsb0JBQW9CLENBQUNILFlBQVksQ0FBQztJQUN4RSxNQUFNaEMsb0JBQW9CLEdBQUdyQyxnQkFBZ0IsQ0FBQ3lFLHNCQUFzQixDQUFDLEdBQUcsR0FBR0YsaUJBQWlCLENBQUM7SUFDN0YsTUFBTTNDLFNBQVMsR0FBRzVCLGdCQUFnQixDQUFDNkIsWUFBWSxFQUFFO01BQ2hEaEQsVUFBVSxHQUFHbUIsZ0JBQWdCLENBQUMwRSxhQUFhLEVBQUU7TUFDN0NuQyxhQUFhLEdBQUdGLG9CQUFvQixDQUFDUixZQUFZLEVBQUU7TUFDbkQ4QyxjQUFjLEdBQUd0QyxvQkFBb0IsQ0FBQ3FDLGFBQWEsRUFBRTtNQUNyREUsc0JBQXNCLEdBQUc3QyxXQUFXLENBQUM4QyxnQkFBZ0IsQ0FBQ3RDLGFBQWEsQ0FBQztNQUFFO01BQ3RFdUMsU0FBUyxHQUFHL0MsV0FBVyxDQUFDZ0QsWUFBWSxDQUFDeEMsYUFBYSxDQUFDO01BQUU7TUFDckR5QyxTQUFTLEdBQUdqRCxXQUFXLENBQUNrRCxZQUFZLENBQUMxQyxhQUFhLENBQUM7TUFDbkQyQyx3QkFBd0IsR0FBR3RELFNBQVMsK0JBQUlBLFNBQVMsQ0FBQzdDLFdBQVcscUZBQXJCLHVCQUF1Qm9HLFlBQVksMkRBQW5DLHVCQUFxQ0Msa0JBQWtCO01BQy9GaEQsZ0JBQWdCLEdBQUdMLFdBQVcsQ0FBQ3NELGNBQWMsQ0FBQzlDLGFBQWEsRUFBRW9DLGNBQWMsQ0FBQztNQUM1RXJDLFlBQVksR0FBR0MsYUFBYSxJQUFJZ0IsV0FBVyxDQUFDaEIsYUFBYSxDQUFDLEtBQUlILGdCQUFnQixhQUFoQkEsZ0JBQWdCLHVCQUFoQkEsZ0JBQWdCLENBQUUvQyxPQUFPLEVBQUU7TUFDekZhLG1CQUFtQixHQUFHRixnQkFBZ0IsQ0FBQ0csc0JBQXNCLEVBQUU7TUFDL0R3QixpQkFBaUIsR0FBRzJELGVBQWUsQ0FBQ3BGLG1CQUFtQixFQUFFO1FBQ3hEcUYsV0FBVyxFQUFFLENBQUMzRSxJQUFZLEVBQUU0RSxlQUF5QixLQUNwRDNFLG9CQUFvQixDQUFDRCxJQUFJLEVBQUVaLGdCQUFnQixDQUFDYyxpQkFBaUIsRUFBRSxFQUFFMEUsZUFBZTtNQUNsRixDQUFDLENBQUM7TUFDRkMsd0JBQXdCLEdBQUc5RCxpQkFBaUIsR0FBR3VDLGlCQUFpQixDQUFDdkMsaUJBQWlCLENBQUMsR0FBR0EsaUJBQWlCO01BQ3ZHK0QsNkJBQTZCLEdBQUc5RyxvQ0FBb0MsQ0FBQ29CLGdCQUFnQixDQUFDMEUsYUFBYSxFQUFFLEVBQUUsS0FBSyxDQUFDO0lBRTlHLE1BQU1pQixhQUFhLEdBQ2xCM0YsZ0JBQWdCLENBQUNnQixrQkFBa0IsRUFBRSxDQUFDRSxZQUFZLEVBQUUsS0FBSyxDQUFDLEdBQ3ZEMEUsYUFBYSxDQUNiRiw2QkFBNkIsQ0FBQ3hHLE1BQU0sQ0FBRTJHLFNBQVMsSUFBSztNQUNuRCxPQUFPQyxxQkFBcUIsQ0FBQ0QsU0FBUyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUNELEdBQ0RsRixTQUFTO0lBRWIsTUFBTW9GLHlCQUF5QixHQUFHTCw2QkFBNkIsQ0FBQ3hHLE1BQU0sQ0FBRTJHLFNBQVMsSUFBSztNQUNyRixPQUFPLENBQUNDLHFCQUFxQixDQUFDRCxTQUFTLENBQUM7SUFDekMsQ0FBQyxDQUFDOztJQUVGO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQSxNQUFNRyxhQUEyQixHQUFHLEVBQUU7SUFDdEMsSUFBSXpDLFdBQVcsQ0FBQzNCLFNBQVMsQ0FBQyxJQUFJa0QsU0FBUyxhQUFUQSxTQUFTLGVBQVRBLFNBQVMsQ0FBRXBCLFVBQVUsSUFBSXBCLFlBQVksS0FBSyxJQUFJLEVBQUU7TUFDN0UwRCxhQUFhLENBQUNDLElBQUksQ0FBQztRQUFFQyxJQUFJLEVBQUVDLFVBQVUsQ0FBQ0MsWUFBWTtRQUFFQyxHQUFHLEVBQUU7TUFBZSxDQUFDLENBQUM7SUFDM0U7SUFFQSxNQUFNcEYsU0FBUyxHQUFHakIsZ0JBQWdCLENBQUNnQixrQkFBa0IsRUFBRSxDQUFDRSxZQUFZLEVBQUU7SUFDdEUsTUFBTW9GLHFCQUFxQixHQUFHckYsU0FBUyxHQUFHLENBQUMsR0FBR1csU0FBUyxhQUFUQSxTQUFTLGlEQUFUQSxTQUFTLENBQUU3QyxXQUFXLENBQUNvRyxZQUFZLHFGQUFuQyx1QkFBcUNvQixrQkFBa0IsMkRBQXZELHVCQUF5REMsU0FBUyxHQUFHN0YsU0FBUztJQUM1SCxJQUFJbUUsU0FBUyxJQUFJRSxTQUFTLEVBQUU7TUFDM0JnQixhQUFhLENBQUNDLElBQUksQ0FBQztRQUFFQyxJQUFJLEVBQUVDLFVBQVUsQ0FBQ00sb0JBQW9CO1FBQUVKLEdBQUcsRUFBRTtNQUF1QixDQUFDLENBQUM7SUFDM0Y7SUFDQTtJQUNBTix5QkFBeUIsQ0FDdkI3RyxNQUFNLENBQUUyRyxTQUFTLElBQUs7TUFDdEIsT0FBTy9GLHVCQUF1QixDQUFDNEcsT0FBTyxDQUFDYixTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRWMsV0FBVyxDQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQyxDQUNEQyxPQUFPLENBQUVmLFNBQVMsSUFBSztNQUN2QkcsYUFBYSxDQUFDQyxJQUFJLENBQUNZLDRCQUE0QixDQUFDaEIsU0FBUyxFQUFFN0YsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RSxDQUFDLENBQUM7O0lBRUg7SUFDQSxJQUFJLENBQUM4RSxTQUFTLGFBQVRBLFNBQVMsZUFBVEEsU0FBUyxDQUFFcEIsVUFBVSxJQUFJa0Isc0JBQXNCLGFBQXRCQSxzQkFBc0IsZUFBdEJBLHNCQUFzQixDQUFFbEIsVUFBVSxLQUFLcEIsWUFBWSxLQUFLLElBQUksRUFBRTtNQUMzRjBELGFBQWEsQ0FBQ0MsSUFBSSxDQUFDO1FBQ2xCQyxJQUFJLEVBQUVDLFVBQVUsQ0FBQ1csT0FBTztRQUN4QlQsR0FBRyxFQUFFLFlBQVk7UUFDakJVLE9BQU8sRUFBRTdDLGlCQUFpQixDQUN6Qi9CLHVCQUF1QixDQUN0Qm5DLGdCQUFnQixFQUNoQm9DLGdCQUFnQixFQUNoQkMsb0JBQW9CLEVBQ3BCTixXQUFXLENBQUNzRCxjQUFjLENBQUN6RCxTQUFTLEVBQUUvQyxVQUFVLENBQUMsRUFDakRvQyxTQUFTLENBQ1QsQ0FDRDtRQUNEK0YsT0FBTyxFQUFFN0Qsb0JBQW9CLENBQUNkLG9CQUFvQixFQUFFaUUscUJBQXFCLEVBQUVyRixTQUFTO01BQ3JGLENBQUMsQ0FBQztJQUNIO0lBQ0E7SUFDQSxJQUNFd0Usd0JBQXdCLElBQUlBLHdCQUF3QixLQUFLLE9BQU8sSUFDaEUsQ0FBQVAsd0JBQXdCLGFBQXhCQSx3QkFBd0IsZ0RBQXhCQSx3QkFBd0IsQ0FBRStCLFNBQVMsMERBQW5DLHNCQUFxQzVILE9BQU8sRUFBRSxNQUFLLEtBQUssSUFBSW9HLHdCQUF3QixLQUFLLE9BQVEsRUFDakc7TUFDRCxNQUFNeEYsWUFBWSxHQUFHOEIsV0FBVyxDQUFDbUYsZUFBZSxDQUFDdEYsU0FBUyxFQUFFL0MsVUFBVSxDQUFxQztNQUMzR21ILGFBQWEsQ0FBQ0MsSUFBSSxDQUFDO1FBQ2xCQyxJQUFJLEVBQUVDLFVBQVUsQ0FBQ2dCLFNBQVM7UUFDMUJkLEdBQUcsRUFBRSxjQUFjO1FBQ25CVSxPQUFPLEVBQUU3QyxpQkFBaUIsQ0FBQ25FLHlCQUF5QixDQUFDQyxnQkFBZ0IsRUFBRUMsWUFBWSxDQUFDLENBQUM7UUFDckYrRyxPQUFPLEVBQUU5QyxpQkFBaUIsQ0FBQ3pDLHNCQUFzQixDQUFDeUQsd0JBQXdCLGFBQXhCQSx3QkFBd0IsdUJBQXhCQSx3QkFBd0IsQ0FBRStCLFNBQVMsRUFBRXRGLGlCQUFpQixFQUFFM0IsZ0JBQWdCLENBQUMsQ0FBQztRQUM1SG9ILHlCQUF5QixFQUFFM0I7TUFDNUIsQ0FBQyxDQUFDO0lBQ0g7SUFFQSxJQUFJRSxhQUFhLEVBQUU7TUFBQTtNQUNsQkssYUFBYSxDQUFDQyxJQUFJLENBQUM7UUFDbEIsR0FBR1ksNEJBQTRCLENBQUNsQixhQUFhLEVBQUUzRixnQkFBZ0IsQ0FBQztRQUNoRWtHLElBQUksRUFBRUMsVUFBVSxDQUFDa0IsSUFBSTtRQUNyQkMsSUFBSSxFQUFFLHlCQUFBM0IsYUFBYSxDQUFDNEIsS0FBSyx5REFBbkIscUJBQXFCQyxRQUFRLEVBQUUsS0FBSTdILElBQUksQ0FBQzhILHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDQyxPQUFPLENBQUMsZUFBZTtNQUM5RyxDQUFDLENBQUM7SUFDSDtJQUVBLE1BQU1DLDRCQUE0QixHQUFHOUgsdUNBQXVDLENBQUNHLGdCQUFnQixDQUFDMEUsYUFBYSxFQUFFLEVBQUUsS0FBSyxDQUFDO0lBRXJIaUQsNEJBQTRCLENBQzFCekksTUFBTSxDQUFFMkcsU0FBUyxJQUFLO01BQ3RCLE9BQU8vRix1QkFBdUIsQ0FBQzRHLE9BQU8sQ0FBQ2IsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUVjLFdBQVcsQ0FBVyxLQUFLLENBQUMsQ0FBQztJQUNoRixDQUFDLENBQUMsQ0FDREMsT0FBTyxDQUFFZixTQUFTLElBQUs7TUFBQTtNQUN2QixJQUFJLDBCQUFBQSxTQUFTLENBQUMrQixlQUFlLDBEQUF6QixzQkFBMkJ2SSxPQUFPLEVBQUUsTUFBSyxJQUFJLEVBQUU7UUFDbEQsTUFBTSxJQUFJd0ksS0FBSyxDQUFFLHVFQUFzRWhDLFNBQVMsQ0FBQzBCLEtBQU0sRUFBQyxDQUFDO01BQzFHO01BQ0EsSUFBSSxzQkFBQTFCLFNBQVMsQ0FBQ2lDLE1BQU0sc0RBQWhCLGtCQUFrQnpJLE9BQU8sRUFBRSxNQUFLLElBQUksRUFBRTtRQUN6QyxNQUFNLElBQUl3SSxLQUFLLENBQUUsOERBQTZEaEMsU0FBUyxDQUFDMEIsS0FBTSxFQUFDLENBQUM7TUFDakc7TUFDQSxNQUFNUSxpQkFBaUIsR0FBRztRQUN6QkMscUJBQXFCLEVBQUVDLHdCQUF3QixDQUFDcEMsU0FBUyxDQUFDcUMsT0FBTztNQUNsRSxDQUFDO01BRURsQyxhQUFhLENBQUNDLElBQUksQ0FBQztRQUNsQkMsSUFBSSxFQUFFQyxVQUFVLENBQUNnQyxpQ0FBaUM7UUFDbERiLElBQUksc0JBQUV6QixTQUFTLENBQUMwQixLQUFLLHFEQUFmLGlCQUFpQkMsUUFBUSxFQUFFO1FBQ2pDWSxjQUFjLEVBQUVwSSxnQkFBZ0IsQ0FBQ3FJLCtCQUErQixDQUFDeEMsU0FBUyxDQUFDeUMsa0JBQWtCLENBQUM7UUFDOUZDLFVBQVUsRUFBRUMsVUFBVSxDQUFDQyxLQUFLO1FBQzVCMUIsT0FBTyxFQUFFN0MsaUJBQWlCLENBQ3pCM0MsR0FBRyxDQUNGRixHQUFHLENBQUNHLEtBQUssQ0FBQ2QsMkJBQTJCLDBCQUFDbUYsU0FBUyxDQUFDOUcsV0FBVyxvRkFBckIsc0JBQXVCQyxFQUFFLDJEQUF6Qix1QkFBMkJJLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQ2hGaUMsR0FBRyxDQUFDRyxLQUFLLENBQUNVLFdBQVcsQ0FBQyw2QkFBNkIsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUN4RSxDQUNEO1FBQ0Q4RSxPQUFPLEVBQ05uQixTQUFTLENBQUM2QyxtQkFBbUIsS0FBSy9ILFNBQVMsR0FDeEN1RCxpQkFBaUIsQ0FBQzFDLEtBQUssQ0FBQ2QsMkJBQTJCLDBCQUFDbUYsU0FBUyxDQUFDNkMsbUJBQW1CLDBEQUE3QixzQkFBK0JySixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQ3JHLElBQUk7UUFDUmdILEdBQUcsRUFBRXNDLFNBQVMsQ0FBQ0Msd0JBQXdCLENBQUMvQyxTQUFTLENBQUM7UUFDbERnRCxXQUFXLEVBQUUsSUFBSTtRQUNqQkMsS0FBSyxFQUFFNUUsaUJBQWlCLENBQ3ZCNkUsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLENBQ3RDckksMkJBQTJCLENBQUNtRixTQUFTLENBQUNtRCxjQUFjLENBQUMsRUFDckR0SSwyQkFBMkIsQ0FBQ21GLFNBQVMsQ0FBQ29ELE1BQU0sQ0FBQyxFQUM3Q2xCLGlCQUFpQixDQUNqQixDQUFDLENBQ0Y7UUFDRG1CLFVBQVUsRUFBRWhGLGlCQUFpQixDQUFDO1VBQzdCaUYsY0FBYyxFQUFFekksMkJBQTJCLENBQUNtRixTQUFTLENBQUNtRCxjQUFjLENBQUM7VUFDckVJLE1BQU0sRUFBRTFJLDJCQUEyQixDQUFDbUYsU0FBUyxDQUFDb0QsTUFBTTtRQUNyRCxDQUFDO01BQ0YsQ0FBQyxDQUFxQjtJQUN2QixDQUFDLENBQUM7SUFDSDtJQUNBbEQseUJBQXlCLENBQ3ZCN0csTUFBTSxDQUFFMkcsU0FBUyxJQUFLO01BQ3RCLE9BQU8vRix1QkFBdUIsQ0FBQzRHLE9BQU8sQ0FBQ2IsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUVjLFdBQVcsQ0FBVyxLQUFLLENBQUMsQ0FBQztJQUNoRixDQUFDLENBQUMsQ0FDREMsT0FBTyxDQUFFZixTQUFTLElBQUs7TUFDdkJHLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDWSw0QkFBNEIsQ0FBQ2hCLFNBQVMsRUFBRTdGLGdCQUFnQixDQUFDLENBQUM7SUFDOUUsQ0FBQyxDQUFDO0lBRUgsT0FBT2dHLGFBQWE7RUFDckI7RUFBQztFQUVNLFNBQVNxRCxzQkFBc0IsQ0FBQ3JKLGdCQUFrQyxFQUFnQjtJQUFBO0lBQ3hGLE1BQU1uQixVQUFVLEdBQUdtQixnQkFBZ0IsQ0FBQzBFLGFBQWEsRUFBRTtJQUNuRCxNQUFNNEUsYUFBYSxHQUFJLDJCQUFBekssVUFBVSxDQUFDRSxXQUFXLHFGQUF0Qix1QkFBd0JDLEVBQUUscUZBQTFCLHVCQUE0QkMsY0FBYywyREFBMUMsdUJBQTRDQyxNQUFNLENBQUVDLHVCQUF1QixJQUFLO01BQUE7TUFDdEcsT0FBTyxDQUFBQSx1QkFBdUIsYUFBdkJBLHVCQUF1QixrREFBdkJBLHVCQUF1QixDQUFFSixXQUFXLHVGQUFwQyx3QkFBc0NDLEVBQUUsdUZBQXhDLHdCQUEwQ0ksTUFBTSw0REFBaEQsd0JBQWtEQyxPQUFPLEVBQUUsTUFBSyxJQUFJO0lBQzVFLENBQUMsQ0FBQyxLQUFJLEVBQWdDO0lBQ3RDLE9BQU9pSyxhQUFhLENBQUNoSixHQUFHLENBQUV1RixTQUFTLElBQUs7TUFDdkMsT0FBTztRQUNOSyxJQUFJLEVBQUVDLFVBQVUsQ0FBQ29ELE9BQU87UUFDeEJsRCxHQUFHLEVBQUVzQyxTQUFTLENBQUNDLHdCQUF3QixDQUFDL0MsU0FBUztNQUNsRCxDQUFDO0lBQ0YsQ0FBQyxDQUFDO0VBQ0g7RUFBQztFQUVNLFNBQVMyRCx1QkFBdUIsQ0FBQ3ZJLFNBQWlCLEVBQUVqQixnQkFBa0MsRUFBZ0I7SUFBQTtJQUM1RyxNQUFNNEIsU0FBUyxHQUFHNUIsZ0JBQWdCLENBQUM2QixZQUFZLEVBQUU7SUFDakQsTUFBTWhELFVBQVUsR0FBR21CLGdCQUFnQixDQUFDMEUsYUFBYSxFQUFFO0lBQ25ELE1BQU1FLHNCQUFzQixHQUFHN0MsV0FBVyxDQUFDOEMsZ0JBQWdCLENBQUNqRCxTQUFTLENBQUM7TUFBRTtNQUN2RTZILGtCQUFrQixHQUNqQmxHLFdBQVcsQ0FBQzNCLFNBQVMsQ0FBQyxLQUNyQiwyQkFBQUEsU0FBUyxDQUFDN0MsV0FBVyxDQUFDeUUsTUFBTSxzRkFBNUIsdUJBQThCQyxTQUFTLDREQUF2Qyx3QkFBeUNpRyxJQUFJLGlDQUFJOUgsU0FBUyxDQUFDN0MsV0FBVyxDQUFDNEUsT0FBTyx1RkFBN0Isd0JBQStCQyxzQkFBc0IsNERBQXJELHdCQUF1RDhGLElBQUksRUFBQztNQUMvR0MsYUFBYSxHQUFHcEssT0FBTyxDQUN0QmtLLGtCQUFrQiwrQ0FBb0MsSUFBSzdFLHNCQUFzQixLQUFJQSxzQkFBc0IsYUFBdEJBLHNCQUFzQix1QkFBdEJBLHNCQUFzQixDQUFFZ0YsVUFBVSxDQUFDLENBQ3hIO01BQ0RDLGNBQWMsR0FBRzVJLFNBQVMsR0FBRyxDQUFDO01BQzlCNkksZUFBZSxHQUFHdkssT0FBTyxDQUN4QmtLLGtCQUFrQiwrQ0FBb0MsSUFBSzdFLHNCQUFzQixLQUFJQSxzQkFBc0IsYUFBdEJBLHNCQUFzQix1QkFBdEJBLHNCQUFzQixDQUFFbUYsYUFBYSxDQUFDLENBQzNIOztJQUVGO0lBQ0EsTUFBTUMseUJBQXlCLEdBQUdwTCxvQ0FBb0MsQ0FBQ29CLGdCQUFnQixDQUFDMEUsYUFBYSxFQUFFLEVBQUUsSUFBSSxDQUFDOztJQUU5RztJQUNBLE1BQU11RixhQUEyQixHQUFHRCx5QkFBeUIsQ0FDM0Q5SyxNQUFNLENBQUUyRyxTQUFTLElBQUs7TUFDdEIsT0FBTy9GLHVCQUF1QixDQUFDNEcsT0FBTyxDQUFDYixTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRWMsV0FBVyxDQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQyxDQUNEckcsR0FBRyxDQUFFdUYsU0FBUyxJQUFLO01BQ25CLE9BQU9nQiw0QkFBNEIsQ0FBQ2hCLFNBQVMsRUFBRTdGLGdCQUFnQixDQUFDO0lBQ2pFLENBQUMsQ0FBQzs7SUFFSDtJQUNBLElBQUksQ0FBQTRCLFNBQVMsYUFBVEEsU0FBUyx1QkFBVEEsU0FBUyxDQUFFc0ksY0FBYyxPQUFLckwsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUV5SixrQkFBa0IsS0FBSXFCLGFBQWEsRUFBRTtNQUNsRk0sYUFBYSxDQUFDaEUsSUFBSSxDQUFDO1FBQUVDLElBQUksRUFBRUMsVUFBVSxDQUFDVyxPQUFPO1FBQUVULEdBQUcsRUFBRTtNQUFhLENBQUMsQ0FBQztJQUNwRTs7SUFFQTtJQUNBLElBQUl3RCxjQUFjLEVBQUU7TUFDbkJJLGFBQWEsQ0FBQ2hFLElBQUksQ0FBQztRQUFFQyxJQUFJLEVBQUVDLFVBQVUsQ0FBQ2dFLFlBQVk7UUFBRTlELEdBQUcsRUFBRTtNQUFjLENBQUMsQ0FBQztJQUMxRTs7SUFFQTtJQUNBMkQseUJBQXlCLENBQ3ZCOUssTUFBTSxDQUFFMkcsU0FBUyxJQUFLO01BQ3RCLE9BQU8vRix1QkFBdUIsQ0FBQzRHLE9BQU8sQ0FBQ2IsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUVjLFdBQVcsQ0FBVyxLQUFLLENBQUMsQ0FBQztJQUNoRixDQUFDLENBQUMsQ0FDREMsT0FBTyxDQUFFZixTQUFTLElBQUs7TUFDdkJvRSxhQUFhLENBQUNoRSxJQUFJLENBQUNZLDRCQUE0QixDQUFDaEIsU0FBUyxFQUFFN0YsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RSxDQUFDLENBQUM7O0lBRUg7SUFDQSxJQUFJOEosZUFBZSxFQUFFO01BQ3BCRyxhQUFhLENBQUNoRSxJQUFJLENBQUM7UUFDbEJDLElBQUksRUFBRUMsVUFBVSxDQUFDZ0IsU0FBUztRQUMxQmQsR0FBRyxFQUFFLGNBQWM7UUFDbkIrRCxRQUFRLEVBQUU7VUFBRUMsU0FBUyxFQUFFQyxTQUFTLENBQUNDO1FBQUk7TUFDdEMsQ0FBQyxDQUFDO0lBQ0g7SUFDQSxPQUFPTixhQUFhO0VBQ3JCO0VBQUM7RUFFRCxTQUFTcEQsNEJBQTRCLENBQUNoQixTQUFrQyxFQUFFN0YsZ0JBQWtDLEVBQW9CO0lBQUE7SUFDL0gsT0FBTztNQUNOa0csSUFBSSxFQUFFQyxVQUFVLENBQUNxRSxrQkFBa0I7TUFDbkNwQyxjQUFjLEVBQUVwSSxnQkFBZ0IsQ0FBQ3FJLCtCQUErQixDQUFDeEMsU0FBUyxDQUFDeUMsa0JBQWtCLENBQUM7TUFDOUZqQyxHQUFHLEVBQUVzQyxTQUFTLENBQUNDLHdCQUF3QixDQUFDL0MsU0FBUyxDQUFDO01BQ2xEa0IsT0FBTyxFQUFFN0MsaUJBQWlCLENBQUM3QyxHQUFHLENBQUNHLEtBQUssQ0FBQ2QsMkJBQTJCLDJCQUFDbUYsU0FBUyxDQUFDOUcsV0FBVyxxRkFBckIsdUJBQXVCQyxFQUFFLDJEQUF6Qix1QkFBMkJJLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7TUFDNUc0SCxPQUFPLEVBQUU3Qyw2QkFBNkIsQ0FBQ25FLGdCQUFnQixFQUFFNkYsU0FBUyxDQUFDcEcsWUFBWSxDQUFDO01BQ2hGb0osV0FBVyxFQUFFO0lBQ2QsQ0FBQztFQUNGO0VBQUM7QUFBQSJ9
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/converters/helpers/Key","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/templating/DataModelPathHelper","sap/ui/core/Core","../helpers/BindingHelper","../ManifestSettings"],function(e,t,i,n,o,a,l,r,d){"use strict";var
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/converters/helpers/Key","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/helpers/TypeGuards","sap/fe/core/templating/DataModelPathHelper","sap/ui/core/Core","../helpers/BindingHelper","../ManifestSettings"],function(e,t,i,n,o,a,l,r,d,v){"use strict";var s={};var u=v.ActionType;var c=d.UI;var f=d.singletonPathVisitor;var p=d.Draft;var y=l.isPathDeletable;var g=a.isEntitySet;var b=n.pathInModel;var E=n.not;var h=n.ifElse;var A=n.getExpressionFromAnnotation;var m=n.fn;var D=n.equal;var C=n.constant;var I=n.compileExpression;var O=n.and;var S=i.KeyHelper;var T=t.Placement;var P=e.getSemanticObjectMapping;var B=e.getEnabledForAnnotationAction;var F=e.getCopyAction;var N=e.dataFieldIsCopyAction;var U=e.ButtonType;function H(e,t){var i,n,o;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Identification)===null||o===void 0?void 0:o.filter(e=>{var i,n,o,a,l,r,d,v,s,u;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Hidden)===null||o===void 0?void 0:o.valueOf())!==true&&e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForAction"&&Boolean((a=e.Determining)===null||a===void 0?void 0:a.valueOf())===t&&(((l=e.ActionTarget)===null||l===void 0?void 0:(r=l.isBound)===null||r===void 0?void 0:r.valueOf())!==true||(e===null||e===void 0?void 0:(d=e.ActionTarget)===null||d===void 0?void 0:(v=d.annotations)===null||v===void 0?void 0:(s=v.Core)===null||s===void 0?void 0:(u=s.OperationAvailable)===null||u===void 0?void 0:u.valueOf())!==false)?true:false}))||[]}s.getIdentificationDataFieldForActions=H;function M(e,t){var i,n,o;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Identification)===null||o===void 0?void 0:o.filter(e=>{var i,n,o,a;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Hidden)===null||o===void 0?void 0:o.valueOf())!==true&&e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation"&&Boolean((a=e.Determining)===null||a===void 0?void 0:a.valueOf())===t?true:false}))||[]}const k=["UI.CriticalityType/VeryPositive","UI.CriticalityType/Positive","UI.CriticalityType/Negative","UI.CriticalityType/VeryNegative"];s.IMPORTANT_CRITICALITIES=k;function R(e,t){const i=e.getDataModelObjectPath(),n=i.navigationProperties.map(e=>e.name),o=A(t,n,undefined,t=>f(t,e.getConvertedTypes(),[])),a=e.getManifestWrapper(),l=a.getViewLevel(),r=l>1?c.IsEditable:E(c.IsEditable);return h(t===undefined||t.valueOf()===false,r,O(r,D(o,false)))}s.getDeleteButtonVisibility=R;function x(e,t,i){const n=i.getEntitySet(),a=o.isDraftRoot(n);let l=h(t!==undefined,t,h(e!==undefined,D(A(e),true),C(true)));l=a?O(l,E(b("DraftAdministrativeData/InProcessByUser"))):l;return l}s.getDeleteButtonEnabled=x;function V(e,t,i,n,a){const l=i===null||i===void 0?void 0:i.getEntitySet(),r=e.getEntitySet(),d=e.getManifestWrapper().isFclEnabled();let v;const s=j(i,t);if(a&&a>1){v=o.isDraftNode(r)}else{v=o.isDraftRoot(l)}const u=j(i,n);const f=E(c.IsEditable);const y=h(a>1,h(n===undefined||n.valueOf()===false,O(f,D(b("rootEditVisible","internal"),true),h(d,D(b("/showEditButton","fclhelper"),true),true)),O(f,D(u,false),D(b("rootEditVisible","internal"),true),h(d,D(b("/showEditButton","fclhelper"),true),true))),h(t===undefined||t.valueOf()===false,f,O(f,D(s,false))));return h(v,O(y,p.HasNoDraftForCurrentUser),y)}s.getEditButtonVisibility=V;function j(e,t){const i=e.getDataModelObjectPath(),n=i.navigationProperties.map(e=>e.name),o=A(t,n,undefined,t=>f(t,e.getConvertedTypes(),n));return o}s.getHiddenExpression=j;function w(e,t,i){const n=e.getEntitySet(),a=o.isDraftRoot(n),l=o.isSticky(n);let r;if(a&&g(n)){var d,v;r=(d=n.annotations.Common)===null||d===void 0?void 0:(v=d.DraftRoot)===null||v===void 0?void 0:v.EditAction}else if(l&&g(n)){var s,u;r=(s=n.annotations.Session)===null||s===void 0?void 0:(u=s.StickySessionSupported)===null||u===void 0?void 0:u.EditAction}if(r){var c,f;const n=e.getAbsoluteAnnotationPath(r);const o=e.resolveAbsolutePath(n).target;if((o===null||o===void 0?void 0:(c=o.annotations)===null||c===void 0?void 0:(f=c.Core)===null||f===void 0?void 0:f.OperationAvailable)===null){}else if(i>1){if(t!==undefined){return I(O(D(A(t),true),D(b("rootEditEnabled","internal"),true)))}else{return I(D(b("rootEditEnabled","internal"),true))}}else{return B(e,o??undefined)}}return"true"}s.getEditButtonEnabled=w;function L(e){var t,i,n,a,l;const d=e.getContextPath();const v=o.getRootEntitySetPath(d);const s=e.getConverterContextFor("/"+v);const c=e.getEntitySet(),p=e.getEntityType(),h=s.getEntitySet(),C=s.getEntityType(),T=o.getStickySession(h),B=o.getDraftRoot(h),j=o.getDraftNode(h),L=c&&((t=c.annotations)===null||t===void 0?void 0:(i=t.Capabilities)===null||i===void 0?void 0:i.DeleteRestrictions),K=o.isUpdateHidden(h,C),W=h&&g(h)&&(K===null||K===void 0?void 0:K.valueOf()),_=e.getDataModelObjectPath(),q=y(_,{pathVisitor:(t,i)=>f(t,e.getConvertedTypes(),i)}),Q=q?I(q):q,G=H(e.getEntityType(),false);const Y=e.getManifestWrapper().getViewLevel()===1?F(G.filter(e=>N(e))):undefined;const z=G.filter(e=>!N(e));const J=[];if(g(c)&&B!==null&&B!==void 0&&B.EditAction&&W!==true){J.push({type:u.DraftActions,key:"DraftActions"})}const X=e.getManifestWrapper().getViewLevel();const Z=X>1?c===null||c===void 0?void 0:(n=c.annotations.Capabilities)===null||n===void 0?void 0:(a=n.UpdateRestrictions)===null||a===void 0?void 0:a.Updatable:undefined;if(B||j){J.push({type:u.CollaborationAvatars,key:"CollaborationAvatars"})}z.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)>-1).forEach(t=>{J.push($(t,e))});if((B!==null&&B!==void 0&&B.EditAction||T!==null&&T!==void 0&&T.EditAction)&&W!==true){J.push({type:u.Primary,key:"EditAction",visible:I(V(e,K,s,o.isUpdateHidden(c,p),X)),enabled:w(s,Z,X)})}if(Q&&Q!=="false"||(L===null||L===void 0?void 0:(l=L.Deletable)===null||l===void 0?void 0:l.valueOf())!==false&&Q!=="false"){const t=o.getDeleteHidden(c,p);J.push({type:u.Secondary,key:"DeleteAction",visible:I(R(e,t)),enabled:I(x(L===null||L===void 0?void 0:L.Deletable,q,e)),parentEntityDeleteEnabled:Q})}if(Y){var ee;J.push({...$(Y,e),type:u.Copy,text:((ee=Y.Label)===null||ee===void 0?void 0:ee.toString())??r.getLibraryResourceBundle("sap.fe.core").getText("C_COMMON_COPY")})}const te=M(e.getEntityType(),false);te.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(t=>{var i,n,o,a,l,r;if(((i=t.RequiresContext)===null||i===void 0?void 0:i.valueOf())===true){throw new Error(`RequiresContext property should not be true for header IBN action : ${t.Label}`)}if(((n=t.Inline)===null||n===void 0?void 0:n.valueOf())===true){throw new Error(`Inline property should not be true for header IBN action : ${t.Label}`)}const d={semanticObjectMapping:P(t.Mapping)};J.push({type:u.DataFieldForIntentBasedNavigation,text:(o=t.Label)===null||o===void 0?void 0:o.toString(),annotationPath:e.getEntitySetBasedAnnotationPath(t.fullyQualifiedName),buttonType:U.Ghost,visible:I(O(E(D(A((a=t.annotations)===null||a===void 0?void 0:(l=a.UI)===null||l===void 0?void 0:l.Hidden),true)),E(D(b("shellNavigationNotAvailable","internal"),true)))),enabled:t.NavigationAvailable!==undefined?I(D(A((r=t.NavigationAvailable)===null||r===void 0?void 0:r.valueOf()),true)):true,key:S.generateKeyFromDataField(t),isNavigable:true,press:I(m("._intentBasedNavigation.navigate",[A(t.SemanticObject),A(t.Action),d])),customData:I({semanticObject:A(t.SemanticObject),action:A(t.Action)})})});z.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(t=>{J.push($(t,e))});return J}s.getHeaderDefaultActions=L;function K(e){var t,i,n;const o=e.getEntityType();const a=((t=o.annotations)===null||t===void 0?void 0:(i=t.UI)===null||i===void 0?void 0:(n=i.Identification)===null||n===void 0?void 0:n.filter(e=>{var t,i,n;return(e===null||e===void 0?void 0:(t=e.annotations)===null||t===void 0?void 0:(i=t.UI)===null||i===void 0?void 0:(n=i.Hidden)===null||n===void 0?void 0:n.valueOf())===true}))||[];return a.map(e=>({type:u.Default,key:S.generateKeyFromDataField(e)}))}s.getHiddenHeaderActions=K;function W(e,t){var i,n,a,l;const r=t.getEntitySet();const d=t.getEntityType();const v=o.getStickySession(r),s=g(r)&&(((i=r.annotations.Common)===null||i===void 0?void 0:(n=i.DraftRoot)===null||n===void 0?void 0:n.term)??((a=r.annotations.Session)===null||a===void 0?void 0:(l=a.StickySessionSupported)===null||l===void 0?void 0:l.term)),c=Boolean(s==="com.sap.vocabularies.Common.v1.DraftRoot"||v&&(v===null||v===void 0?void 0:v.SaveAction)),f=e>1,p=Boolean(s==="com.sap.vocabularies.Common.v1.DraftRoot"||v&&(v===null||v===void 0?void 0:v.DiscardAction));const y=H(t.getEntityType(),true);const b=y.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)>-1).map(e=>$(e,t));if((r===null||r===void 0?void 0:r.entityTypeName)===(d===null||d===void 0?void 0:d.fullyQualifiedName)&&c){b.push({type:u.Primary,key:"SaveAction"})}if(f){b.push({type:u.DefaultApply,key:"ApplyAction"})}y.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(e=>{b.push($(e,t))});if(p){b.push({type:u.Secondary,key:"CancelAction",position:{placement:T.End}})}return b}s.getFooterDefaultActions=W;function $(e,t){var i,n;return{type:u.DataFieldForAction,annotationPath:t.getEntitySetBasedAnnotationPath(e.fullyQualifiedName),key:S.generateKeyFromDataField(e),visible:I(E(D(A((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:n.Hidden),true))),enabled:B(t,e.ActionTarget),isNavigable:true}}return s},false);
|
|
6
6
|
//# sourceMappingURL=HeaderAndFooterAction.js.map
|