@sapui5/sap.fe.core 1.112.0 → 1.114.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime-dbg.js +70 -6
- 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 +118 -3
- package/src/sap/fe/core/AppComponent-dbg.js +16 -6
- 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 +21 -7
- package/src/sap/fe/core/AppStateHandler-dbg.js +11 -10
- package/src/sap/fe/core/AppStateHandler.js +1 -1
- package/src/sap/fe/core/AppStateHandler.js.map +1 -1
- package/src/sap/fe/core/AppStateHandler.ts +14 -11
- package/src/sap/fe/core/CommonUtils-dbg.js +102 -175
- 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 +114 -211
- 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 +32 -24
- 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 +41 -29
- 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 +124 -57
- 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 +146 -73
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +35 -74
- 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 +35 -78
- package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +217 -127
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +227 -129
- 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/Share-dbg.js +3 -2
- package/src/sap/fe/core/controllerextensions/Share.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/Share.ts +2 -1
- package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +19 -14
- package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -14
- package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +41 -24
- package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.ts +64 -31
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +8 -8
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +7 -9
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +7 -45
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +5 -48
- 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/collaboration/ManageDialog.fragment.xml +3 -3
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating-dbg.js +52 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.js +6 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.ts +46 -0
- 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 +106 -205
- 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 +121 -216
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +31 -4
- 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 +38 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +13 -10
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +7 -20
- 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 +10 -6
- 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 +20 -11
- 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 +19 -15
- 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 +19 -22
- 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/controls/ActionParameterDialog.fragment.xml +2 -0
- package/src/sap/fe/core/controls/CommandExecution-dbg.js +4 -9
- package/src/sap/fe/core/controls/CommandExecution.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
- package/src/sap/fe/core/controls/CommandExecution.ts +0 -8
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block-dbg.js +335 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +6 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js.map +1 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +336 -0
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +3 -28
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +8 -29
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +30 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +38 -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 +7 -6
- 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 +49 -28
- 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 +62 -30
- package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -3
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +1 -6
- package/src/sap/fe/core/converters/annotations/DataField-dbg.js +22 -7
- 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 +20 -7
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +701 -681
- 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/Chart-dbg.js +32 -20
- package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +30 -18
- package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +4 -5
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +6 -37
- 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 +135 -85
- 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 +189 -119
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +56 -22
- 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 +67 -31
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +137 -49
- 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 +166 -43
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +33 -14
- 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 +31 -12
- 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 +37 -15
- 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 +36 -20
- 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/InsightsHelpers-dbg.js +39 -0
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +6 -0
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +45 -0
- 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 +20 -17
- 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 +25 -56
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +13 -13
- 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 +18 -13
- package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +17 -33
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +27 -22
- 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 +13 -5
- 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 +19 -9
- 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/DeleteHelper-dbg.js +58 -35
- package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.ts +76 -54
- package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +8 -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 +7 -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/RecommendationHelper-dbg.js +71 -0
- package/src/sap/fe/core/helpers/RecommendationHelper.js +6 -0
- package/src/sap/fe/core/helpers/RecommendationHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/RecommendationHelper.ts +94 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +19 -3
- 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 +21 -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 +52 -26
- 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 +49 -25
- 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/jsx-runtime/jsx-control-dbg.js +25 -2
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +24 -0
- package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -0
- package/src/sap/fe/core/library-dbg.js +1 -1
- package/src/sap/fe/core/library-preload.js +123 -95
- 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 +6 -6
- package/src/sap/fe/core/messagebundle_ar.properties +5 -6
- package/src/sap/fe/core/messagebundle_bg.properties +11 -12
- package/src/sap/fe/core/messagebundle_ca.properties +3 -4
- package/src/sap/fe/core/messagebundle_cs.properties +3 -4
- package/src/sap/fe/core/messagebundle_cy.properties +3 -4
- package/src/sap/fe/core/messagebundle_da.properties +3 -4
- package/src/sap/fe/core/messagebundle_de.properties +11 -12
- package/src/sap/fe/core/messagebundle_el.properties +5 -6
- package/src/sap/fe/core/messagebundle_en.properties +3 -4
- package/src/sap/fe/core/messagebundle_en_GB.properties +4 -5
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +3 -4
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +3 -4
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +3 -2
- package/src/sap/fe/core/messagebundle_es.properties +3 -4
- package/src/sap/fe/core/messagebundle_es_MX.properties +3 -4
- package/src/sap/fe/core/messagebundle_et.properties +3 -4
- package/src/sap/fe/core/messagebundle_fi.properties +3 -4
- package/src/sap/fe/core/messagebundle_fr.properties +3 -4
- package/src/sap/fe/core/messagebundle_fr_CA.properties +11 -12
- package/src/sap/fe/core/messagebundle_hi.properties +11 -12
- package/src/sap/fe/core/messagebundle_hr.properties +3 -4
- package/src/sap/fe/core/messagebundle_hu.properties +3 -4
- package/src/sap/fe/core/messagebundle_id.properties +11 -12
- package/src/sap/fe/core/messagebundle_it.properties +3 -4
- package/src/sap/fe/core/messagebundle_iw.properties +3 -4
- package/src/sap/fe/core/messagebundle_ja.properties +4 -5
- package/src/sap/fe/core/messagebundle_kk.properties +3 -4
- package/src/sap/fe/core/messagebundle_ko.properties +11 -12
- package/src/sap/fe/core/messagebundle_lt.properties +3 -4
- package/src/sap/fe/core/messagebundle_lv.properties +11 -12
- package/src/sap/fe/core/messagebundle_ms.properties +3 -4
- package/src/sap/fe/core/messagebundle_nl.properties +3 -4
- package/src/sap/fe/core/messagebundle_no.properties +3 -4
- package/src/sap/fe/core/messagebundle_pl.properties +11 -12
- package/src/sap/fe/core/messagebundle_pt.properties +3 -4
- package/src/sap/fe/core/messagebundle_pt_PT.properties +3 -4
- package/src/sap/fe/core/messagebundle_ro.properties +14 -15
- package/src/sap/fe/core/messagebundle_ru.properties +11 -12
- package/src/sap/fe/core/messagebundle_sh.properties +3 -4
- package/src/sap/fe/core/messagebundle_sk.properties +3 -4
- package/src/sap/fe/core/messagebundle_sl.properties +3 -4
- package/src/sap/fe/core/messagebundle_sv.properties +11 -12
- package/src/sap/fe/core/messagebundle_th.properties +3 -4
- package/src/sap/fe/core/messagebundle_tr.properties +3 -4
- package/src/sap/fe/core/messagebundle_uk.properties +3 -4
- package/src/sap/fe/core/messagebundle_vi.properties +3 -4
- package/src/sap/fe/core/messagebundle_zh_CN.properties +11 -12
- package/src/sap/fe/core/messagebundle_zh_TW.properties +11 -12
- package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +22 -8
- 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 +17 -7
- package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +36 -3
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +37 -1
- package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +13 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +13 -0
- 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 +20 -2
- 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 +10 -7
- 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 +12 -13
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +9 -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 +11 -15
- 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/CriticalityFormatters-dbg.js +1 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.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/FilterHelper-dbg.js +12 -1
- package/src/sap/fe/core/templating/FilterHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
- package/src/sap/fe/core/templating/FilterHelper.ts +12 -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 +45 -34
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +0 -91
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +0 -59
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +0 -171
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +0 -6
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +0 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +0 -184
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoutingServiceFactory.js","names":["sap","ui","define","Log","BusyLocker","messageHandling","Placeholder","NavigationReason","AppStartupHelper","ClassSupport","EditState","ModelHelper","SemanticKeyHelper","CollaborationHelper","BindingParser","EventProvider","Service","ServiceFactory","ODataUtils","_dec","_dec2","_dec3","_class","_class2","_descriptor","_descriptor2","_exports","event","defineUI5Class","_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","RoutingServiceEventing","_EventProvider","_this","_len","arguments","length","args","Array","_key","this","RoutingService","_Service","_this2","_len2","_key2","navigationInfoQueue","_proto","init","oContext","getContext","scopeType","_oAppConfig$crossNavi","oAppComponent","scopeObject","oModel","getModel","oMetaModel","getMetaModel","oRouter","getRouter","oRouterProxy","getRouterProxy","eventProvider","oRoutingConfig","getManifestEntry","routing","_parseRoutingConfiguration","oAppConfig","outbounds","crossNavigation","initPromise","Promise","resolve","beforeExit","detachRouteMatched","_fnOnRouteMatched","fireEvent","exit","destroy","_oRoutingConfig$confi","isFCL","config","routerClass","_mTargets","targets","sTargetName","assign","targetName","contextPattern","viewLevel","_getViewLevelFromPattern","_mRoutes","sRouteKey","routes","oRouteManifestInfo","aRouteTargets","isArray","sRouteName","name","sRoutePattern","pattern","indexOf","warning","iRouteLevel","routeLevel","i","sParentTargetName","parent","push","FCLLevel","controlAggregation","aLevel0RouteNames","aLevel1RouteNames","sDefaultRouteName","sName","iLevel","sDefaultTargetName","sContextPath","options","settings","oSettings","contextPath","entitySet","map","sTargetKey","sort","a","b","fullContextPath","navigation","sNavName","targetRoute","detail","route","startsWith","sPattern","replace","regex","RegExp","match","_getRouteInformation","_getTargetInformation","_getComponentId","sOwnerId","sComponentId","substr","getTargetInformationFor","oComponentInstance","sTargetComponentId","_sOwnerId","getId","sCorrectTargetName","id","viewId","getLastSemanticMapping","oLastSemanticMapping","setLastSemanticMapping","oMapping","navigateTo","mParameterMapping","bPreserveHistory","sTargetURLPromise","bIsStickyMode","isStickySessionSupported","getSemanticPath","prepareParameters","then","mParameters","getURL","sTargetURL","navToHash","sTargetRoute","oParametersPromise","getPath","aContextPathParts","split","aAllResolvedParameterPromises","sParameterKey","sParameterMappingExpression","oParsedExpression","complexParser","aParts","parts","aResolvedParameterPromises","oPathPart","aRelativeParts","path","aLocalParts","sPropertyPath","join","oMetaContext","getMetaContext","requestProperty","oValue","oPropertyInfo","getObject","sEdmType","$Type","formatLiteral","all","aResolvedParameters","formatter","apply","aAllResolvedParameters","oParameters","oResolvedParameter","oError","error","_fireRouteMatchEvents","cleanProcessedEditState","navigateToContext","oViewData","oCurrentTargetInfo","oRouteParametersPromise","targetPath","oRouteDetail","parameters","sTargetPath","_getPathFromContext","bExitOnNavigateBackToRoot","exitFromApp","asyncContext","bDeferredContext","sLayout","_calculateLayout","oNavigationInfo","oAsyncContext","bTargetEditable","editable","bPersistOPScroll","useContext","updateFCLLevel","bRecreateContext","bDraftNavigation","bShowPlaceholder","showPlaceholder","reason","checkNoHashChange","sCurrentHashNoAppState","getHash","mEventParameters","getRouteInfoByHash","navigationInfo","routeInformation","sCurrentRouteName","routePattern","sCurrentRoutePattern","views","aCurrentViews","setFocusForced","bForceFocus","transient","oRouteInfo","oRoute","sLastTargetName","oTarget","removeUnboundTransitionMessages","oRouteParameters","navTo","noPreservationCache","bNavigated","pop","navigateToRoute","sTargetRouteName","isCurrentStateImpactedBy","sPath","test","sSemanticPath","technicalPath","semanticPath","_findPathToNavigate","_checkIfContextSupportsSemanticPath","sEntitySetName","getSemanticKeys","isDraftSupported","isA","isRelative","getHeaderContext","substring","getRootViewController","calculateLayout","keepCurrentLayout","_beforeRouteMatched","bPlaceholderEnabled","isPlaceholderEnabled","oRootView","getRootControl","lock","_onRouteMatched","oEvent","oAppStateHandler","getAppStateHandler","isLocked","unlock","getParameters","checkIfRouteChangedByIApp","AppStateChanged","resetRouteChangedByIApp","getParameter","history","state","feLevel","restoreHistory","resolveRouteMatch","catch","attachRouteMatched","oData","fnFunction","oListener","attachEvent","detachEvent","attachAfterRouteMatched","detachAfterRouteMatched","getRouteFromHash","sHash","getHashChanger","hash","getMetadata","filter","getTargetsFromRoute","aTarget","sTarget","initializeRouting","async","processAndExpandHash","attachBeforeRouteMatched","resetEditState","bIsIappState","oStartupParameters","getStartupParameters","bHasStartUpParameters","preferredMode","toUpperCase","_manageCreateStartup","_manageDeepLinkStartup","getDefaultCreateHash","getContextPath","getCreateStartupHash","sNewHash","replaceHash","setStartupModeAutoCreate","setStartupModeCreate","getDeepLinkStartupHash","getManifest","oDeepLink","sTechnicalPath","setStartupModeDeeplink","getOutbounds","getInterface","RoutingServiceFactory","_ServiceFactory","_proto2","createInstance","oServiceContext","oRoutingService"],"sources":["RoutingServiceFactory-dbg.js"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RoutingServiceFactory.js","names":["sap","ui","define","Log","BusyLocker","messageHandling","Placeholder","NavigationReason","AppStartupHelper","ClassSupport","EditState","ModelHelper","SemanticKeyHelper","CollaborationHelper","BindingParser","EventProvider","Service","ServiceFactory","ODataUtils","_dec","_dec2","_dec3","_class","_class2","_descriptor","_descriptor2","_exports","event","defineUI5Class","_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","RoutingServiceEventing","_EventProvider","_this","_len","arguments","length","args","Array","_key","this","RoutingService","_Service","_this2","_len2","_key2","navigationInfoQueue","_proto","init","oContext","getContext","scopeType","_oAppConfig$crossNavi","oAppComponent","scopeObject","oModel","getModel","oMetaModel","getMetaModel","oRouter","getRouter","oRouterProxy","getRouterProxy","eventProvider","oRoutingConfig","getManifestEntry","routing","_parseRoutingConfiguration","oAppConfig","outbounds","crossNavigation","initPromise","Promise","resolve","beforeExit","detachRouteMatched","_fnOnRouteMatched","fireEvent","exit","destroy","_oRoutingConfig$confi","isFCL","config","routerClass","_mTargets","targets","sTargetName","assign","targetName","contextPattern","viewLevel","_getViewLevelFromPattern","_mRoutes","sRouteKey","routes","oRouteManifestInfo","aRouteTargets","isArray","sRouteName","name","sRoutePattern","pattern","indexOf","warning","iRouteLevel","routeLevel","i","sParentTargetName","parent","push","FCLLevel","controlAggregation","aLevel0RouteNames","aLevel1RouteNames","sDefaultRouteName","sName","iLevel","sDefaultTargetName","sContextPath","options","settings","oSettings","contextPath","entitySet","map","sTargetKey","sort","a","b","fullContextPath","navigation","sNavName","targetRoute","detail","route","startsWith","sPattern","replace","regex","RegExp","match","_getRouteInformation","_getTargetInformation","_getComponentId","sOwnerId","sComponentId","substr","getTargetInformationFor","oComponentInstance","sTargetComponentId","_sOwnerId","getId","sCorrectTargetName","id","viewId","getLastSemanticMapping","oLastSemanticMapping","setLastSemanticMapping","oMapping","navigateTo","mParameterMapping","bPreserveHistory","sTargetURLPromise","bIsStickyMode","isStickySessionSupported","getSemanticPath","prepareParameters","then","mParameters","getURL","sTargetURL","navToHash","sTargetRoute","oParametersPromise","getPath","aContextPathParts","split","aAllResolvedParameterPromises","sParameterKey","sParameterMappingExpression","oParsedExpression","complexParser","aParts","parts","aResolvedParameterPromises","oPathPart","aRelativeParts","path","aLocalParts","sPropertyPath","join","oMetaContext","getMetaContext","requestProperty","oValue","oPropertyInfo","getObject","sEdmType","$Type","formatLiteral","all","aResolvedParameters","formatter","apply","aAllResolvedParameters","oParameters","oResolvedParameter","oError","error","_fireRouteMatchEvents","cleanProcessedEditState","navigateToContext","oViewData","oCurrentTargetInfo","oRouteParametersPromise","targetPath","oRouteDetail","parameters","sTargetPath","_getPathFromContext","bExitOnNavigateBackToRoot","exitFromApp","asyncContext","bDeferredContext","sLayout","_calculateLayout","oNavigationInfo","oAsyncContext","bTargetEditable","editable","bPersistOPScroll","useContext","updateFCLLevel","bRecreateContext","bDraftNavigation","bShowPlaceholder","showPlaceholder","reason","checkNoHashChange","sCurrentHashNoAppState","getHash","mEventParameters","getRouteInfoByHash","navigationInfo","routeInformation","sCurrentRouteName","routePattern","sCurrentRoutePattern","views","aCurrentViews","setFocusForced","bForceFocus","transient","oRouteInfo","oRoute","sLastTargetName","oTarget","removeUnboundTransitionMessages","oRouteParameters","navTo","noPreservationCache","bNavigated","pop","navigateToRoute","sTargetRouteName","isCurrentStateImpactedBy","sPath","test","sSemanticPath","technicalPath","semanticPath","_findPathToNavigate","_checkIfContextSupportsSemanticPath","sEntitySetName","getSemanticKeys","isDraftSupported","isA","isRelative","getHeaderContext","substring","findLayoutForHash","getRootViewController","calculateLayout","keepCurrentLayout","_beforeRouteMatched","bPlaceholderEnabled","isPlaceholderEnabled","oRootView","getRootControl","lock","_onRouteMatched","oEvent","oAppStateHandler","getAppStateHandler","isLocked","unlock","getParameters","checkIfRouteChangedByIApp","AppStateChanged","resetRouteChangedByIApp","getParameter","history","state","feLevel","restoreHistory","resolveRouteMatch","catch","attachRouteMatched","oData","fnFunction","oListener","attachEvent","detachEvent","attachAfterRouteMatched","detachAfterRouteMatched","getRouteFromHash","sHash","getHashChanger","hash","getMetadata","filter","getTargetsFromRoute","aTarget","sTarget","initializeRouting","async","processAndExpandHash","attachBeforeRouteMatched","resetEditState","bIsIappState","oStartupParameters","getStartupParameters","bHasStartUpParameters","preferredMode","toUpperCase","_manageCreateStartup","_manageDeepLinkStartup","getDefaultCreateHash","getContextPath","getCreateStartupHash","sNewHash","replaceHash","setStartupModeAutoCreate","setStartupModeCreate","getDeepLinkStartupHash","getManifest","oDeepLink","sTechnicalPath","setStartupModeDeeplink","getOutbounds","getInterface","RoutingServiceFactory","_ServiceFactory","_proto2","createInstance","oServiceContext","oRoutingService"],"sources":["RoutingServiceFactory-dbg.js"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ import EventProvider from "sap/ui/base/EventProvider";
|
|
|
17
17
|
import type Router from "sap/ui/core/routing/Router";
|
|
18
18
|
import Service from "sap/ui/core/service/Service";
|
|
19
19
|
import ServiceFactory from "sap/ui/core/service/ServiceFactory";
|
|
20
|
-
import type Context from "sap/ui/model/odata/v4/Context";
|
|
20
|
+
import type { default as Context, default as ODataV4Context } from "sap/ui/model/odata/v4/Context";
|
|
21
21
|
import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
22
22
|
import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
23
23
|
import ODataUtils from "sap/ui/model/odata/v4/ODataUtils";
|
|
@@ -33,6 +33,18 @@ class RoutingServiceEventing extends EventProvider {
|
|
|
33
33
|
afterRouteMatched!: Function;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
export type RoutingNavigationInfo = {
|
|
37
|
+
oAsyncContext?: Promise<ODataV4Context>;
|
|
38
|
+
bDeferredContext?: boolean;
|
|
39
|
+
bTargetEditable?: boolean;
|
|
40
|
+
bPersistOPScroll?: boolean;
|
|
41
|
+
bDraftNavigation?: boolean;
|
|
42
|
+
bShowPlaceholder?: boolean;
|
|
43
|
+
useContext?: Context;
|
|
44
|
+
reason?: NavigationReason;
|
|
45
|
+
redirectedToNonDraft?: string;
|
|
46
|
+
};
|
|
47
|
+
|
|
36
48
|
export type SemanticMapping = {
|
|
37
49
|
semanticPath: string;
|
|
38
50
|
technicalPath: string;
|
|
@@ -68,7 +80,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
68
80
|
|
|
69
81
|
aCurrentViews?: any[];
|
|
70
82
|
|
|
71
|
-
navigationInfoQueue:
|
|
83
|
+
navigationInfoQueue: RoutingNavigationInfo[] = [];
|
|
72
84
|
|
|
73
85
|
sContextPath!: string;
|
|
74
86
|
|
|
@@ -713,6 +725,12 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
713
725
|
}
|
|
714
726
|
}
|
|
715
727
|
|
|
728
|
+
// When navigating back, try to find the layout in the navigation history if it's not provided as parameter
|
|
729
|
+
// (layout calculation is not handled properly by the FlexibleColumnLayoutSemanticHelper in this case)
|
|
730
|
+
if (mParameters.updateFCLLevel < 0 && !mParameters.sLayout) {
|
|
731
|
+
mParameters.sLayout = this.oRouterProxy.findLayoutForHash(sPath);
|
|
732
|
+
}
|
|
733
|
+
|
|
716
734
|
return (this.oAppComponent.getRootViewController() as any).calculateLayout(
|
|
717
735
|
FCLLevel,
|
|
718
736
|
sPath,
|
|
@@ -46,6 +46,9 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/service/Service", "sap/ui/core/servi
|
|
|
46
46
|
) {
|
|
47
47
|
return "";
|
|
48
48
|
};
|
|
49
|
+
_proto.getHash = function getHash() {
|
|
50
|
+
return window.location.href;
|
|
51
|
+
};
|
|
49
52
|
_proto.hrefForExternalAsync = function hrefForExternalAsync( /*oArgs?: object, oComponent?: object*/
|
|
50
53
|
) {
|
|
51
54
|
return Promise.resolve({});
|
|
@@ -484,6 +487,9 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/service/Service", "sap/ui/core/servi
|
|
|
484
487
|
*/;
|
|
485
488
|
_proto2.expandCompactHash = function expandCompactHash(sHashFragment) {
|
|
486
489
|
return this.crossAppNavService.expandCompactHash(sHashFragment);
|
|
490
|
+
};
|
|
491
|
+
_proto2.getHash = function getHash() {
|
|
492
|
+
return `#${this.urlParsingService.getShellHash(window.location.href)}`;
|
|
487
493
|
}
|
|
488
494
|
|
|
489
495
|
/**
|
|
@@ -729,4 +735,4 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/service/Service", "sap/ui/core/servi
|
|
|
729
735
|
}(ServiceFactory);
|
|
730
736
|
return ShellServicesFactory;
|
|
731
737
|
}, false);
|
|
732
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaGVsbFNlcnZpY2VNb2NrIiwiaW5pdCIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJpbnN0YW5jZVR5cGUiLCJnZXRMaW5rcyIsImdldExpbmtzV2l0aENhY2hlIiwidG9FeHRlcm5hbCIsImdldFN0YXJ0dXBBcHBTdGF0ZSIsInVuZGVmaW5lZCIsImJhY2tUb1ByZXZpb3VzQXBwIiwiaHJlZkZvckV4dGVybmFsIiwiaHJlZkZvckV4dGVybmFsQXN5bmMiLCJnZXRBcHBTdGF0ZSIsImNyZWF0ZUVtcHR5QXBwU3RhdGUiLCJjcmVhdGVFbXB0eUFwcFN0YXRlQXN5bmMiLCJpc05hdmlnYXRpb25TdXBwb3J0ZWQiLCJpc0luaXRpYWxOYXZpZ2F0aW9uIiwiaXNJbml0aWFsTmF2aWdhdGlvbkFzeW5jIiwiZXhwYW5kQ29tcGFjdEhhc2giLCJwYXJzZVNoZWxsSGFzaCIsInNwbGl0SGFzaCIsImNvbnN0cnVjdFNoZWxsSGFzaCIsInNldERpcnR5RmxhZyIsInJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyIiwiZGVyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciIsImNyZWF0ZVJlbmRlcmVyIiwiZ2V0VXNlciIsImhhc1VTaGVsbCIsInJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlciIsInVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyIiwic2V0QmFja05hdmlnYXRpb24iLCJzZXRIaWVyYXJjaHkiLCJzZXRUaXRsZSIsImdldENvbnRlbnREZW5zaXR5IiwiZG9jdW1lbnQiLCJib2R5IiwiY2xhc3NMaXN0IiwiY29udGFpbnMiLCJnZXRQcmltYXJ5SW50ZW50Iiwid2FpdEZvclBsdWdpbnNMb2FkIiwiU2VydmljZSIsIndyYXBKUXVlcnlQcm9taXNlIiwianF1ZXJ5UHJvbWlzZSIsInJlamVjdCIsImRvbmUiLCJmYWlsIiwiU2hlbGxTZXJ2aWNlcyIsIm9Db250ZXh0IiwiZ2V0Q29udGV4dCIsIm9Db21wb25lbnQiLCJzY29wZU9iamVjdCIsIm9TaGVsbENvbnRhaW5lciIsInNldHRpbmdzIiwic2hlbGxDb250YWluZXIiLCJsaW5rc0NhY2hlIiwiZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZSIsIm9BcmdzIiwiX29BcmdzIiwiYUNhY2hlZFNlbWFudGljT2JqZWN0cyIsImFOb25DYWNoZWRTZW1hbnRpY09iamVjdHMiLCJpIiwibGVuZ3RoIiwic2VtYW50aWNPYmplY3QiLCJwdXNoIiwibGlua3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwib2xkQXJncyIsIm5ld0FyZ3MiLCJjYWNoZWRMaW5rcyIsInJlc29sdmVGbiIsInJlamVjdEZuIiwib0Nyb3NzQXBwTmF2U2VydmljZVByb21pc2UiLCJnZXRTZXJ2aWNlQXN5bmMiLCJvVXJsUGFyc2luZ1NlcnZpY2VQcm9taXNlIiwib1NoZWxsTmF2aWdhdGlvblNlcnZpY2VQcm9taXNlIiwib1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2UiLCJvU2hlbGxVSVNlcnZpY2VQcm9taXNlIiwiZ2V0U2VydmljZSIsImFsbCIsInRoZW4iLCJvQ3Jvc3NBcHBOYXZTZXJ2aWNlIiwib1VybFBhcnNpbmdTZXJ2aWNlIiwib1NoZWxsTmF2aWdhdGlvbiIsIm9TaGVsbFVJU2VydmljZSIsIm9TaGVsbFBsdWdpbk1hbmFnZXIiLCJjcm9zc0FwcE5hdlNlcnZpY2UiLCJ1cmxQYXJzaW5nU2VydmljZSIsInNoZWxsTmF2aWdhdGlvbiIsInNoZWxsVUlTZXJ2aWNlIiwic2hlbGxQbHVnaW5NYW5hZ2VyIiwiY2F0Y2giLCJvRXJyb3IiLCJFcnJvciIsIm9DYWNoZVJlc3VsdHMiLCJhTGlua3MiLCJvU2VtYW50aWNPYmplY3RzTGlua3MiLCJhc3NpZ24iLCJhTWVyZ2VkTGlua3MiLCJqIiwiayIsImdldFNoZWxsQ29udGFpbmVyIiwib05hdkFyZ3VtZW50c0FyciIsInN0YXJ0dXBBcHBTdGF0ZSIsImJBc3luYyIsInNBcHBTdGF0ZUtleSIsInNIYXNoRnJhZ21lbnQiLCJzSGFzaCIsIm9OZXdTaGVsbEhhc2giLCJiRGlydHkiLCJmbkRpcnR5U3RhdGVQcm92aWRlciIsImZuTmF2RmlsdGVyIiwiZm5DYWxsQmFjayIsImFIaWVyYXJjaHlMZXZlbHMiLCJzVGl0bGUiLCJzU2VtYW50aWNPYmplY3QiLCJtUGFyYW1ldGVycyIsImdldFBsdWdpbkxvYWRpbmdQcm9taXNlIiwiTG9nIiwiZXJyb3IiLCJTaGVsbFNlcnZpY2VzRmFjdG9yeSIsImNyZWF0ZUluc3RhbmNlIiwib1NlcnZpY2VDb250ZXh0Iiwic2FwIiwidXNoZWxsIiwiQ29udGFpbmVyIiwib1NoZWxsU2VydmljZSIsImdldFNoZWxsU2VydmljZXMiLCJTZXJ2aWNlRmFjdG9yeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hlbGxTZXJ2aWNlc0ZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IFNlcnZpY2UgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZVwiO1xuaW1wb3J0IFNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSBDb250YWluZXIgZnJvbSBcInNhcC91c2hlbGwvc2VydmljZXMvQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBmcm9tIFwic2FwL3VzaGVsbC9zZXJ2aWNlcy9Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvblwiO1xuaW1wb3J0IHR5cGUgU2hlbGxOYXZpZ2F0aW9uIGZyb20gXCJzYXAvdXNoZWxsL3NlcnZpY2VzL1NoZWxsTmF2aWdhdGlvblwiO1xuaW1wb3J0IHR5cGUgVVJMUGFyc2luZyBmcm9tIFwic2FwL3VzaGVsbC9zZXJ2aWNlcy9VUkxQYXJzaW5nXCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSBcInR5cGVzL21ldGFtb2RlbF90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBTdGFydHVwQXBwU3RhdGUgPSB7XG5cdGdldERhdGEoKToge1xuXHRcdHNlbGVjdGlvblZhcmlhbnQ/OiB7XG5cdFx0XHRTZWxlY3RPcHRpb25zPzoge1xuXHRcdFx0XHRQcm9wZXJ0eU5hbWU6IHN0cmluZztcblx0XHRcdFx0UmFuZ2VzOiB7XG5cdFx0XHRcdFx0T3B0aW9uOiBzdHJpbmc7XG5cdFx0XHRcdFx0U2lnbjogc3RyaW5nO1xuXHRcdFx0XHRcdExvdzogc3RyaW5nO1xuXHRcdFx0XHR9W107XG5cdFx0XHR9W107XG5cdFx0fTtcblx0fTtcbn07XG4vKipcbiAqIEBpbnRlcmZhY2UgSVNoZWxsU2VydmljZXNcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNoZWxsU2VydmljZXMge1xuXHRpbml0UHJvbWlzZTogUHJvbWlzZTxJU2hlbGxTZXJ2aWNlcz47XG5cdGluc3RhbmNlVHlwZTogc3RyaW5nO1xuXHRjcm9zc0FwcE5hdlNlcnZpY2U/OiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbjtcblx0Z2V0TGlua3Mob0FyZ3M6IG9iamVjdCk6IFByb21pc2U8YW55PjtcblxuXHRnZXRMaW5rc1dpdGhDYWNoZShvQXJnczogb2JqZWN0KTogUHJvbWlzZTxhbnlbXT47XG5cblx0dG9FeHRlcm5hbChvTmF2QXJndW1lbnRzQXJyOiBBcnJheTxvYmplY3Q+LCBvQ29tcG9uZW50OiBvYmplY3QpOiB2b2lkO1xuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZShvQXJnczogb2JqZWN0KTogUHJvbWlzZTx1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGU+O1xuXG5cdGJhY2tUb1ByZXZpb3VzQXBwKCk6IHZvaWQ7XG5cblx0aHJlZkZvckV4dGVybmFsKG9BcmdzPzogb2JqZWN0LCBvQ29tcG9uZW50Pzogb2JqZWN0LCBiQXN5bmM/OiBib29sZWFuKTogc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xuXG5cdGhyZWZGb3JFeHRlcm5hbEFzeW5jKG9BcmdzPzogb2JqZWN0LCBvQ29tcG9uZW50Pzogb2JqZWN0KTogUHJvbWlzZTxhbnk+O1xuXG5cdGdldEFwcFN0YXRlKG9Db21wb25lbnQ6IENvbXBvbmVudCwgc0FwcFN0YXRlS2V5OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG5cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQpOiBvYmplY3Q7XG5cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQpOiBQcm9taXNlPGFueT47XG5cblx0aXNOYXZpZ2F0aW9uU3VwcG9ydGVkKG9OYXZBcmd1bWVudHNBcnI6IEFycmF5PG9iamVjdD4sIG9Db21wb25lbnQ/OiBvYmplY3QpOiBQcm9taXNlPGFueT47XG5cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpOiBib29sZWFuO1xuXG5cdGlzSW5pdGlhbE5hdmlnYXRpb25Bc3luYygpOiBQcm9taXNlPGFueT47XG5cblx0ZXhwYW5kQ29tcGFjdEhhc2goc0hhc2hGcmFnbWVudDogc3RyaW5nKTogYW55O1xuXG5cdHBhcnNlU2hlbGxIYXNoKHNIYXNoOiBzdHJpbmcpOiBhbnk7XG5cblx0c3BsaXRIYXNoKHNIYXNoOiBzdHJpbmcpOiBvYmplY3Q7XG5cblx0Y29uc3RydWN0U2hlbGxIYXNoKG9OZXdTaGVsbEhhc2g6IG9iamVjdCk6IHN0cmluZztcblxuXHRzZXREaXJ0eUZsYWcoYkRpcnR5OiBib29sZWFuKTogdm9pZDtcblxuXHRyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pOiB2b2lkO1xuXG5cdGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXI6IEZ1bmN0aW9uKTogdm9pZDtcblxuXHRjcmVhdGVSZW5kZXJlcigpOiBvYmplY3Q7XG5cblx0Z2V0VXNlcigpOiBhbnk7XG5cblx0aGFzVVNoZWxsKCk6IGJvb2xlYW47XG5cblx0cmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyOiBGdW5jdGlvbik6IHZvaWQ7XG5cblx0dW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKTogdm9pZDtcblxuXHRzZXRCYWNrTmF2aWdhdGlvbihmbkNhbGxCYWNrPzogRnVuY3Rpb24pOiB2b2lkO1xuXG5cdHNldEhpZXJhcmNoeShhSGllcmFyY2h5TGV2ZWxzOiBBcnJheTxvYmplY3Q+KTogdm9pZDtcblxuXHRzZXRUaXRsZShzVGl0bGU6IHN0cmluZyk6IHZvaWQ7XG5cblx0Z2V0Q29udGVudERlbnNpdHkoKTogc3RyaW5nO1xuXG5cdGdldFByaW1hcnlJbnRlbnQoc1NlbWFudGljT2JqZWN0OiBzdHJpbmcsIG1QYXJhbWV0ZXJzPzogb2JqZWN0KTogUHJvbWlzZTxhbnk+O1xuXG5cdHdhaXRGb3JQbHVnaW5zTG9hZCgpOiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG4vKipcbiAqIE1vY2sgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNoZWxsU2VydmljZSBmb3IgT3BlbkZFXG4gKlxuICogQGltcGxlbWVudHMge0lTaGVsbFNlcnZpY2VzfVxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgU2hlbGxTZXJ2aWNlTW9jayBleHRlbmRzIFNlcnZpY2U8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPiBpbXBsZW1lbnRzIElTaGVsbFNlcnZpY2VzIHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPGFueT47XG5cblx0aW5zdGFuY2VUeXBlITogc3RyaW5nO1xuXG5cdGluaXQoKSB7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0XHR0aGlzLmluc3RhbmNlVHlwZSA9IFwibW9ja1wiO1xuXHR9XG5cblx0Z2V0TGlua3MoLypvQXJnczogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcblx0fVxuXG5cdGdldExpbmtzV2l0aENhY2hlKC8qb0FyZ3M6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG5cdH1cblxuXHR0b0V4dGVybmFsKC8qb05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0Ki8pIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRnZXRTdGFydHVwQXBwU3RhdGUoLypvQXJnczogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG5cdH1cblxuXHRiYWNrVG9QcmV2aW91c0FwcCgpIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRocmVmRm9yRXh0ZXJuYWwoLypvQXJncz86IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCwgYkFzeW5jPzogYm9vbGVhbiovKSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblxuXHRocmVmRm9yRXh0ZXJuYWxBc3luYygvKm9BcmdzPzogb2JqZWN0LCBvQ29tcG9uZW50Pzogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGdldEFwcFN0YXRlKC8qb0NvbXBvbmVudDogb2JqZWN0LCBzQXBwU3RhdGVLZXk6IHN0cmluZyovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRjcmVhdGVFbXB0eUFwcFN0YXRlKC8qb0NvbXBvbmVudDogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGNyZWF0ZUVtcHR5QXBwU3RhdGVBc3luYygvKm9Db21wb25lbnQ6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRpc05hdmlnYXRpb25TdXBwb3J0ZWQoLypvTmF2QXJndW1lbnRzQXJyOiBBcnJheTxvYmplY3Q+LCBvQ29tcG9uZW50OiBvYmplY3QqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMoKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRleHBhbmRDb21wYWN0SGFzaCgvKnNIYXNoRnJhZ21lbnQ6IHN0cmluZyovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRwYXJzZVNoZWxsSGFzaCgvKnNIYXNoOiBzdHJpbmcqLykge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdHNwbGl0SGFzaCgvKnNIYXNoOiBzdHJpbmcqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0Y29uc3RydWN0U2hlbGxIYXNoKC8qb05ld1NoZWxsSGFzaDogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdHNldERpcnR5RmxhZygvKmJEaXJ0eTogYm9vbGVhbiovKSB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0cmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoLypmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24qLykge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoLypmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24qLykge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdGNyZWF0ZVJlbmRlcmVyKCkge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdGdldFVzZXIoKSB7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG5cblx0aGFzVVNoZWxsKCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlcigvKmZuTmF2RmlsdGVyOiBGdW5jdGlvbiovKTogdm9pZCB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0dW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoLypmbk5hdkZpbHRlcjogRnVuY3Rpb24qLyk6IHZvaWQge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdHNldEJhY2tOYXZpZ2F0aW9uKC8qZm5DYWxsQmFjaz86IEZ1bmN0aW9uKi8pOiB2b2lkIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRzZXRIaWVyYXJjaHkoLyphSGllcmFyY2h5TGV2ZWxzOiBBcnJheTxvYmplY3Q+Ki8pOiB2b2lkIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRzZXRUaXRsZSgvKnNUaXRsZTogc3RyaW5nKi8pOiB2b2lkIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRnZXRDb250ZW50RGVuc2l0eSgpOiBzdHJpbmcge1xuXHRcdC8vIGluIGNhc2UgdGhlcmUgaXMgbm8gc2hlbGwgd2UgcHJvYmFibHkgbmVlZCB0byBsb29rIGF0IHRoZSBjbGFzc2VzIGJlaW5nIGRlZmluZWQgb24gdGhlIGJvZHlcblx0XHRpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJzYXBVaVNpemVDb3p5XCIpKSB7XG5cdFx0XHRyZXR1cm4gXCJjb3p5XCI7XG5cdFx0fSBlbHNlIGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhcInNhcFVpU2l6ZUNvbXBhY3RcIikpIHtcblx0XHRcdHJldHVybiBcImNvbXBhY3RcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0fVxuXHR9XG5cblx0Z2V0UHJpbWFyeUludGVudCgvKnNTZW1hbnRpY09iamVjdDogc3RyaW5nLCBtUGFyYW1ldGVycz86IG9iamVjdCovKTogUHJvbWlzZTxhbnk+IHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdH1cblxuXHR3YWl0Rm9yUGx1Z2luc0xvYWQoKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcblx0fVxufVxuXG4vKipcbiAqIEB0eXBlZGVmIFNoZWxsU2VydmljZXNTZXR0aW5nc1xuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IHR5cGUgU2hlbGxTZXJ2aWNlc1NldHRpbmdzID0ge1xuXHRzaGVsbENvbnRhaW5lcj86IENvbnRhaW5lcjtcbn07XG5cbi8qKlxuICogV3JhcCBhIEpRdWVyeSBQcm9taXNlIHdpdGhpbiBhIG5hdGl2ZSB7UHJvbWlzZX0uXG4gKlxuICogQHRlbXBsYXRlIHtvYmplY3R9IFRcbiAqIEBwYXJhbSBqcXVlcnlQcm9taXNlIFRoZSBvcmlnaW5hbCBqcXVlcnkgcHJvbWlzZVxuICogQHJldHVybnMgQSBuYXRpdmUgcHJvbWlzZSB3cmFwcGluZyB0aGUgc2FtZSBvYmplY3RcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHdyYXBKUXVlcnlQcm9taXNlPFQ+KGpxdWVyeVByb21pc2U6IGpRdWVyeS5Qcm9taXNlKTogUHJvbWlzZTxUPiB7XG5cdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0anF1ZXJ5UHJvbWlzZS5kb25lKHJlc29sdmUgYXMgYW55KS5mYWlsKHJlamVjdCk7XG5cdH0pO1xufVxuXG4vKipcbiAqIEJhc2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNoZWxsU2VydmljZXNcbiAqXG4gKiBAaW1wbGVtZW50cyB7SVNoZWxsU2VydmljZXN9XG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBTaGVsbFNlcnZpY2VzIGV4dGVuZHMgU2VydmljZTxSZXF1aXJlZDxTaGVsbFNlcnZpY2VzU2V0dGluZ3M+PiBpbXBsZW1lbnRzIElTaGVsbFNlcnZpY2VzIHtcblx0cmVzb2x2ZUZuOiBhbnk7XG5cblx0cmVqZWN0Rm46IGFueTtcblxuXHRpbml0UHJvbWlzZSE6IFByb21pc2U8YW55PjtcblxuXHQvLyAhOiBtZWFucyB0aGF0IHdlIGtub3cgaXQgd2lsbCBiZSBhc3NpZ25lZCBiZWZvcmUgdXNhZ2Vcblx0Y3Jvc3NBcHBOYXZTZXJ2aWNlITogQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb247XG5cblx0dXJsUGFyc2luZ1NlcnZpY2UhOiBVUkxQYXJzaW5nO1xuXG5cdHNoZWxsTmF2aWdhdGlvbiE6IFNoZWxsTmF2aWdhdGlvbjtcblxuXHRzaGVsbFBsdWdpbk1hbmFnZXIhOiB7XG5cdFx0Z2V0UGx1Z2luTG9hZGluZ1Byb21pc2UoY2F0ZWdvcnk6IHN0cmluZyk6IGpRdWVyeS5Qcm9taXNlO1xuXHR9O1xuXG5cdG9TaGVsbENvbnRhaW5lciE6IENvbnRhaW5lcjtcblxuXHRzaGVsbFVJU2VydmljZSE6IGFueTtcblxuXHRpbnN0YW5jZVR5cGUhOiBzdHJpbmc7XG5cblx0bGlua3NDYWNoZSE6IGFueTtcblxuXHRmbkZpbmRTZW1hbnRpY09iamVjdHNJbkNhY2hlOiBhbnk7XG5cblx0aW5pdCgpIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXHRcdGNvbnN0IG9Db21wb25lbnQgPSBvQ29udGV4dC5zY29wZU9iamVjdCBhcyBhbnk7XG5cdFx0dGhpcy5vU2hlbGxDb250YWluZXIgPSBvQ29udGV4dC5zZXR0aW5ncy5zaGVsbENvbnRhaW5lcjtcblx0XHR0aGlzLmluc3RhbmNlVHlwZSA9IFwicmVhbFwiO1xuXHRcdHRoaXMubGlua3NDYWNoZSA9IHt9O1xuXHRcdHRoaXMuZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZSA9IGZ1bmN0aW9uIChvQXJnczogYW55KTogb2JqZWN0IHtcblx0XHRcdGNvbnN0IF9vQXJnczogYW55ID0gb0FyZ3M7XG5cdFx0XHRjb25zdCBhQ2FjaGVkU2VtYW50aWNPYmplY3RzID0gW107XG5cdFx0XHRjb25zdCBhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzID0gW107XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IF9vQXJncy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoISFfb0FyZ3NbaV1bMF0gJiYgISFfb0FyZ3NbaV1bMF0uc2VtYW50aWNPYmplY3QpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0pIHtcblx0XHRcdFx0XHRcdGFDYWNoZWRTZW1hbnRpY09iamVjdHMucHVzaCh0aGlzLmxpbmtzQ2FjaGVbX29BcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0XS5saW5rcyk7XG5cdFx0XHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkob0FyZ3NbaV1bMF0sIFwibGlua3NcIiwge1xuXHRcdFx0XHRcdFx0XHR2YWx1ZTogdGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0ubGlua3Ncblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzLnB1c2goX29BcmdzW2ldKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB7IG9sZEFyZ3M6IG9BcmdzLCBuZXdBcmdzOiBhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzLCBjYWNoZWRMaW5rczogYUNhY2hlZFNlbWFudGljT2JqZWN0cyB9O1xuXHRcdH07XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMucmVzb2x2ZUZuID0gcmVzb2x2ZTtcblx0XHRcdHRoaXMucmVqZWN0Rm4gPSByZWplY3Q7XG5cdFx0fSk7XG5cdFx0Y29uc3Qgb0Nyb3NzQXBwTmF2U2VydmljZVByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvblwiKTtcblx0XHRjb25zdCBvVXJsUGFyc2luZ1NlcnZpY2VQcm9taXNlID0gdGhpcy5vU2hlbGxDb250YWluZXIuZ2V0U2VydmljZUFzeW5jKFwiVVJMUGFyc2luZ1wiKTtcblx0XHRjb25zdCBvU2hlbGxOYXZpZ2F0aW9uU2VydmljZVByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJTaGVsbE5hdmlnYXRpb25cIik7XG5cdFx0Y29uc3Qgb1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJQbHVnaW5NYW5hZ2VyXCIpO1xuXHRcdGNvbnN0IG9TaGVsbFVJU2VydmljZVByb21pc2UgPSBvQ29tcG9uZW50LmdldFNlcnZpY2UoXCJTaGVsbFVJU2VydmljZVwiKTtcblx0XHRQcm9taXNlLmFsbChbXG5cdFx0XHRvQ3Jvc3NBcHBOYXZTZXJ2aWNlUHJvbWlzZSxcblx0XHRcdG9VcmxQYXJzaW5nU2VydmljZVByb21pc2UsXG5cdFx0XHRvU2hlbGxOYXZpZ2F0aW9uU2VydmljZVByb21pc2UsXG5cdFx0XHRvU2hlbGxVSVNlcnZpY2VQcm9taXNlLFxuXHRcdFx0b1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2Vcblx0XHRdKVxuXHRcdFx0LnRoZW4oKFtvQ3Jvc3NBcHBOYXZTZXJ2aWNlLCBvVXJsUGFyc2luZ1NlcnZpY2UsIG9TaGVsbE5hdmlnYXRpb24sIG9TaGVsbFVJU2VydmljZSwgb1NoZWxsUGx1Z2luTWFuYWdlcl0pID0+IHtcblx0XHRcdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgPSBvQ3Jvc3NBcHBOYXZTZXJ2aWNlO1xuXHRcdFx0XHR0aGlzLnVybFBhcnNpbmdTZXJ2aWNlID0gb1VybFBhcnNpbmdTZXJ2aWNlO1xuXHRcdFx0XHR0aGlzLnNoZWxsTmF2aWdhdGlvbiA9IG9TaGVsbE5hdmlnYXRpb247XG5cdFx0XHRcdHRoaXMuc2hlbGxVSVNlcnZpY2UgPSBvU2hlbGxVSVNlcnZpY2U7XG5cdFx0XHRcdHRoaXMuc2hlbGxQbHVnaW5NYW5hZ2VyID0gb1NoZWxsUGx1Z2luTWFuYWdlcjtcblx0XHRcdFx0dGhpcy5yZXNvbHZlRm4oKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2godGhpcy5yZWplY3RGbik7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgbGlua3MgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBzZW1hbnRpYyBvYmplY3QgJiBhY3Rpb25cblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cblx0ICogc2VydmljZSByZWZlcmVuY2UgY2FsbCB0aGUgZ2V0TGlua3MgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0TGlua3MgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byB0YXJnZXQgbGlua3MgYXJyYXlcblx0ICovXG5cdGdldExpbmtzKG9BcmdzOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHR0aGlzLmNyb3NzQXBwTmF2U2VydmljZVxuXHRcdFx0XHQuZ2V0TGlua3Mob0FyZ3MpXG5cdFx0XHRcdC5mYWlsKChvRXJyb3I6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYCR7b0Vycm9yfSBzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzRmFjdG9yeS5nZXRMaW5rc2ApKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4ocmVzb2x2ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgbGlua3MgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBzZW1hbnRpYyBvYmplY3QgJiBhY3Rpb24gaW4gY2FjaGVcblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cblx0ICogc2VydmljZSByZWZlcmVuY2UgY2FsbCB0aGUgZ2V0TGlua3MgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0TGlua3MgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byB0YXJnZXQgbGlua3MgYXJyYXlcblx0ICovXG5cdGdldExpbmtzV2l0aENhY2hlKG9BcmdzOiBvYmplY3QpOiBQcm9taXNlPGFueVtdPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0aWYgKChvQXJncyBhcyBPYmplY3RbXSkubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHJlc29sdmUoW10pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3Qgb0NhY2hlUmVzdWx0cyA9IHRoaXMuZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZShvQXJncyk7XG5cblx0XHRcdFx0aWYgKG9DYWNoZVJlc3VsdHMubmV3QXJncy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRyZXNvbHZlKG9DYWNoZVJlc3VsdHMuY2FjaGVkTGlua3MpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0XHRcdHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlXG5cdFx0XHRcdFx0XHQuZ2V0TGlua3Mob0NhY2hlUmVzdWx0cy5uZXdBcmdzKVxuXHRcdFx0XHRcdFx0LmZhaWwoKG9FcnJvcjogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYCR7b0Vycm9yfSBzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzRmFjdG9yeS5nZXRMaW5rc1dpdGhDYWNoZWApKTtcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHQudGhlbigoYUxpbmtzOiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKGFMaW5rcy5sZW5ndGggIT09IDApIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBvU2VtYW50aWNPYmplY3RzTGlua3M6IGFueSA9IHt9O1xuXG5cdFx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhTGlua3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChhTGlua3NbaV0ubGVuZ3RoID4gMCAmJiBvQ2FjaGVSZXN1bHRzLm5ld0FyZ3NbaV1bMF0ubGlua3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRvU2VtYW50aWNPYmplY3RzTGlua3Nbb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsaW5rczogYUxpbmtzW2ldXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubGlua3NDYWNoZSA9IE9iamVjdC5hc3NpZ24odGhpcy5saW5rc0NhY2hlLCBvU2VtYW50aWNPYmplY3RzTGlua3MpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdGlmIChvQ2FjaGVSZXN1bHRzLmNhY2hlZExpbmtzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYUxpbmtzKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBhTWVyZ2VkTGlua3MgPSBbXTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgaiA9IDA7XG5cblx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBrID0gMDsgayA8IG9DYWNoZVJlc3VsdHMub2xkQXJncy5sZW5ndGg7IGsrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGogPCBhTGlua3MubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhTGlua3Nbal0ubGVuZ3RoID4gMCAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5zZW1hbnRpY09iamVjdCA9PT0gb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2pdWzBdLnNlbWFudGljT2JqZWN0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKGFMaW5rc1tqXSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aisrO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5saW5rcyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5saW5rcyk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYU1lcmdlZExpbmtzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIHJldHJpZXZlIHRoZSBTaGVsbENvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIHNhcC51c2hlbGwuY29udGFpbmVyXG5cdCAqIEByZXR1cm5zIE9iamVjdCB3aXRoIHByZWRlZmluZWQgc2hlbGxDb250YWluZXIgbWV0aG9kc1xuXHQgKi9cblx0Z2V0U2hlbGxDb250YWluZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMub1NoZWxsQ29udGFpbmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCB0b0V4dGVybmFsIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggTmF2aWdhdGlvbiBBcmd1bWVudHMgYW5kIG9Db21wb25lbnQuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb05hdkFyZ3VtZW50c0FyciBBbmRcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+dG9FeHRlcm5hbCBhcmd1bWVudHNcblx0ICovXG5cdHRvRXh0ZXJuYWwob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KTogdm9pZCB7XG5cdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UudG9FeHRlcm5hbChvTmF2QXJndW1lbnRzQXJyLCBvQ29tcG9uZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHRhcmdldCBzdGFydHVwQXBwU3RhdGVcblx0ICogV2lsbCBjaGVjayB0aGUgZXhpc3RhbmNlIG9mIHRoZSBTaGVsbENvbnRhaW5lciBhbmQgcmV0cmlldmUgdGhlIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uXG5cdCAqIHNlcnZpY2UgcmVmZXJlbmNlIGNhbGwgdGhlIGdldFN0YXJ0dXBBcHBTdGF0ZSBtZXRob2QuIEluIGNhc2Ugc2VydmljZSBpcyBub3QgYXZhaWxhYmxlIG9yIGFueSBleGNlcHRpb25cblx0ICogbWV0aG9kIHRocm93cyBleGNlcHRpb24gZXJyb3IgaW4gY29uc29sZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQXJncyBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5nZXRTdGFydHVwQXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBPYmplY3Rcblx0ICovXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZShvQXJnczogQ29tcG9uZW50KTogUHJvbWlzZTx1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGU+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Ly8gSlF1ZXJ5IFByb21pc2UgYmVoYXZlcyBkaWZmZXJlbnRseVxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHQodGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgYXMgYW55KVxuXHRcdFx0XHQuZ2V0U3RhcnR1cEFwcFN0YXRlKG9BcmdzKVxuXHRcdFx0XHQuZmFpbCgob0Vycm9yOiBhbnkpID0+IHtcblx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKGAke29FcnJvcn0gc2FwLmZlLmNvcmUuc2VydmljZXMuU2hlbGxTZXJ2aWNlc0ZhY3RvcnkuZ2V0U3RhcnR1cEFwcFN0YXRlYCkpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQudGhlbigoc3RhcnR1cEFwcFN0YXRlOiB1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGUpID0+IHJlc29sdmUoc3RhcnR1cEFwcFN0YXRlKSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGJhY2tUb1ByZXZpb3VzQXBwIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBTb21ldGhpbmcgdGhhdCBpbmRpY2F0ZSB3ZSd2ZSBuYXZpZ2F0ZWRcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRiYWNrVG9QcmV2aW91c0FwcCgpIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuYmFja1RvUHJldmlvdXNBcHAoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgaHJlZkZvckV4dGVybmFsIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9BcmdzIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50IFRoZSBhcHBDb21wb25lbnRcblx0ICogQHBhcmFtIGJBc3luYyBXaGV0aGVyIHRoaXMgY2FsbCBzaG91bGQgYmUgYXN5bmMgb3Igbm90XG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmhyZWZGb3JFeHRlcm5hbCBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIHN0cmluZ1xuXHQgKi9cblx0aHJlZkZvckV4dGVybmFsKG9BcmdzOiBvYmplY3QsIG9Db21wb25lbnQ/OiBvYmplY3QsIGJBc3luYz86IGJvb2xlYW4pIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuaHJlZkZvckV4dGVybmFsKG9BcmdzLCBvQ29tcG9uZW50IGFzIG9iamVjdCwgISFiQXN5bmMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBocmVmRm9yRXh0ZXJuYWwgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogQHBhcmFtIG9Db21wb25lbnQgVGhlIGFwcENvbXBvbmVudFxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5ocmVmRm9yRXh0ZXJuYWxBc3luYyBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIHN0cmluZ1xuXHQgKi9cblx0aHJlZkZvckV4dGVybmFsQXN5bmMob0FyZ3M6IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5ocmVmRm9yRXh0ZXJuYWxBc3luYyhvQXJncywgb0NvbXBvbmVudCBhcyBvYmplY3QpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBnZXRBcHBTdGF0ZSBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIG9Db21wb25lbnQgYW5kIG9BcHBTdGF0ZUtleS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50XG5cdCAqIEBwYXJhbSBzQXBwU3RhdGVLZXkgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0QXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBvYmplY3Rcblx0ICovXG5cdGdldEFwcFN0YXRlKG9Db21wb25lbnQ6IENvbXBvbmVudCwgc0FwcFN0YXRlS2V5OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gd3JhcEpRdWVyeVByb21pc2UoKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlIGFzIGFueSkuZ2V0QXBwU3RhdGUob0NvbXBvbmVudCwgc0FwcFN0YXRlS2V5KSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNyZWF0ZUVtcHR5QXBwU3RhdGUgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2Ugd2l0aCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Y3JlYXRlRW1wdHlBcHBTdGF0ZSBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIG9iamVjdFxuXHQgKi9cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQpIHtcblx0XHRyZXR1cm4gKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlIGFzIGFueSkuY3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgY3JlYXRlRW1wdHlBcHBTdGF0ZUFzeW5jIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggb0NvbXBvbmVudC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50IENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmNyZWF0ZUVtcHR5QXBwU3RhdGVBc3luYyBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIG9iamVjdFxuXHQgKi9cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZUFzeW5jKG9Db21wb25lbnQ6IENvbXBvbmVudCkge1xuXHRcdHJldHVybiAodGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgYXMgYW55KS5jcmVhdGVFbXB0eUFwcFN0YXRlQXN5bmMob0NvbXBvbmVudCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGlzTmF2aWdhdGlvblN1cHBvcnRlZCBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIE5hdmlnYXRpb24gQXJndW1lbnRzIGFuZCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9OYXZBcmd1bWVudHNBcnJcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+aXNOYXZpZ2F0aW9uU3VwcG9ydGVkIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRpc05hdmlnYXRpb25TdXBwb3J0ZWQob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIHdyYXBKUXVlcnlQcm9taXNlKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLmlzTmF2aWdhdGlvblN1cHBvcnRlZChvTmF2QXJndW1lbnRzQXJyLCBvQ29tcG9uZW50KSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGlzSW5pdGlhbE5hdmlnYXRpb24gbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gYm9vbGVhblxuXHQgKi9cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuaXNJbml0aWFsTmF2aWdhdGlvbigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBpc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gYm9vbGVhblxuXHQgKi9cblx0aXNJbml0aWFsTmF2aWdhdGlvbkFzeW5jKCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5pc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgZXhwYW5kQ29tcGFjdEhhc2ggbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwYXJhbSBzSGFzaEZyYWdtZW50IEFuIChpbnRlcm5hbCBmb3JtYXQpIHNoZWxsIGhhc2hcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHRoZSBzdWNjZXNzIGhhbmRsZXIgb2YgdGhlIHJlc29sdmUgcHJvbWlzZSBnZXQgYW4gZXhwYW5kZWQgc2hlbGwgaGFzaCBhcyBmaXJzdCBhcmd1bWVudFxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdGV4cGFuZENvbXBhY3RIYXNoKHNIYXNoRnJhZ21lbnQ6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5leHBhbmRDb21wYWN0SGFzaChzSGFzaEZyYWdtZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgcGFyc2VTaGVsbEhhc2ggbWV0aG9kIG9mIFVSTFBhcnNpbmcgc2VydmljZSB3aXRoIGdpdmVuIHNIYXNoLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNIYXNoIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuVVJMUGFyc2luZz0+cGFyc2VTaGVsbEhhc2ggYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFRoZSBwYXJzZWQgdXJsXG5cdCAqL1xuXHRwYXJzZVNoZWxsSGFzaChzSGFzaDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMudXJsUGFyc2luZ1NlcnZpY2UucGFyc2VTaGVsbEhhc2goc0hhc2gpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBzcGxpdEhhc2ggbWV0aG9kIG9mIFVSTFBhcnNpbmcgc2VydmljZSB3aXRoIGdpdmVuIHNIYXNoLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNIYXNoIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuVVJMUGFyc2luZz0+c3BsaXRIYXNoIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRzcGxpdEhhc2goc0hhc2g6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLnVybFBhcnNpbmdTZXJ2aWNlLnNwbGl0SGFzaChzSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNvbnN0cnVjdFNoZWxsSGFzaCBtZXRob2Qgb2YgVVJMUGFyc2luZyBzZXJ2aWNlIHdpdGggZ2l2ZW4gc0hhc2guXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb05ld1NoZWxsSGFzaCBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLlVSTFBhcnNpbmc9PmNvbnN0cnVjdFNoZWxsSGFzaCBhcmd1bWVudHNcblx0ICogQHJldHVybnMgU2hlbGwgSGFzaCBzdHJpbmdcblx0ICovXG5cdGNvbnN0cnVjdFNoZWxsSGFzaChvTmV3U2hlbGxIYXNoOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gdGhpcy51cmxQYXJzaW5nU2VydmljZS5jb25zdHJ1Y3RTaGVsbEhhc2gob05ld1NoZWxsSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldERpcnR5RmxhZyBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBiRGlydHkgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIuc2V0RGlydHlGbGFnIGFyZ3VtZW50c1xuXHQgKi9cblx0c2V0RGlydHlGbGFnKGJEaXJ0eTogYm9vbGVhbikge1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyLnNldERpcnR5RmxhZyhiRGlydHkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCByZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZSBwcm92aWRlciBjYWxsYmFjayBtZXRob2QuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gZm5EaXJ0eVN0YXRlUHJvdmlkZXIgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIucmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgYXJndW1lbnRzXG5cdCAqL1xuXHRyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pIHtcblx0XHR0aGlzLm9TaGVsbENvbnRhaW5lci5yZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcik7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgbWV0aG9kIHdpdGggZ2l2ZW4gZGlydHkgc3RhdGUgcHJvdmlkZXIgY2FsbGJhY2sgbWV0aG9kLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIGZuRGlydHlTdGF0ZVByb3ZpZGVyIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mIHNhcC51c2hlbGwuQ29udGFpbmVyLmRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgYXJndW1lbnRzXG5cdCAqL1xuXHRkZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyOiBGdW5jdGlvbikge1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyLmRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBjcmVhdGVSZW5kZXJlciBtZXRob2Qgb2YgdXNoZWxsIGNvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgcmVuZGVyZXIgb2JqZWN0XG5cdCAqL1xuXHRjcmVhdGVSZW5kZXJlcigpIHtcblx0XHRyZXR1cm4gdGhpcy5vU2hlbGxDb250YWluZXIuY3JlYXRlUmVuZGVyZXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgZ2V0VXNlciBtZXRob2Qgb2YgdXNoZWxsIGNvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgVXNlciBvYmplY3Rcblx0ICovXG5cdGdldFVzZXIoKSB7XG5cdFx0cmV0dXJuICh0aGlzLm9TaGVsbENvbnRhaW5lciBhcyBhbnkpLmdldFVzZXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNoZWNrIGlmIHVzaGVsbCBjb250YWluZXIgaXMgYXZhaWxhYmxlIG9yIG5vdC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZVxuXHQgKi9cblx0aGFzVVNoZWxsKCkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCByZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIgbWV0aG9kIG9mIHNoZWxsTmF2aWdhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGZuTmF2RmlsdGVyIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gcmVnaXN0ZXJcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRyZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKSB7XG5cdFx0KHRoaXMuc2hlbGxOYXZpZ2F0aW9uIGFzIGFueSkucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgdW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIgbWV0aG9kIG9mIHNoZWxsTmF2aWdhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGZuTmF2RmlsdGVyIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gdW5yZWdpc3RlclxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyOiBGdW5jdGlvbikge1xuXHRcdCh0aGlzLnNoZWxsTmF2aWdhdGlvbiBhcyBhbnkpLnVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgc2V0QmFja05hdmlnYXRpb24gbWV0aG9kIG9mIFNoZWxsVUlTZXJ2aWNlXG5cdCAqIHRoYXQgZGlzcGxheXMgdGhlIGJhY2sgYnV0dG9uIGluIHRoZSBzaGVsbCBoZWFkZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBbZm5DYWxsQmFja10gQSBjYWxsYmFjayBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQgaW4gdGhlIFVJLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHNldEJhY2tOYXZpZ2F0aW9uKGZuQ2FsbEJhY2s/OiBGdW5jdGlvbik6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0QmFja05hdmlnYXRpb24oZm5DYWxsQmFjayk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldEhpZXJhcmNoeSBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgZ2l2ZW4gaGllcmFyY2h5IGluIHRoZSBzaGVsbCBoZWFkZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBbYUhpZXJhcmNoeUxldmVsc10gQW4gYXJyYXkgcmVwcmVzZW50aW5nIGhpZXJhcmNoaWVzIG9mIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGFwcC5cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRIaWVyYXJjaHkoYUhpZXJhcmNoeUxldmVsczogQXJyYXk8b2JqZWN0Pik6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0SGllcmFyY2h5KGFIaWVyYXJjaHlMZXZlbHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBzZXRUaXRsZSBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgZ2l2ZW4gdGl0bGUgaW4gdGhlIHNoZWxsIGhlYWRlci5cblx0ICpcblx0ICogQHBhcmFtIFtzVGl0bGVdIFRoZSBuZXcgdGl0bGUuIFRoZSBkZWZhdWx0IHRpdGxlIGlzIHNldCBpZiB0aGlzIGFyZ3VtZW50IGlzIG5vdCBnaXZlbi5cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRUaXRsZShzVGl0bGU6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0VGl0bGUoc1RpdGxlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnRseSBkZWZpbmVkIGNvbnRlbnQgZGVuc2l0eS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGNvbnRlbnQgZGVuc2l0eSB2YWx1ZVxuXHQgKi9cblx0Z2V0Q29udGVudERlbnNpdHkoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gKHRoaXMub1NoZWxsQ29udGFpbmVyIGFzIGFueSkuZ2V0VXNlcigpLmdldENvbnRlbnREZW5zaXR5KCk7XG5cdH1cblxuXHQvKipcblx0ICogRm9yIGEgZ2l2ZW4gc2VtYW50aWMgb2JqZWN0LCB0aGlzIG1ldGhvZCBjb25zaWRlcnMgYWxsIGFjdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZW1hbnRpYyBvYmplY3QgYW5kXG5cdCAqIHJldHVybnMgdGhlIG9uZSB0YWdnZWQgYXMgYSBcInByaW1hcnlBY3Rpb25cIi4gSWYgbm8gaW5ib3VuZCB0YWdnZWQgYXMgXCJwcmltYXJ5QWN0aW9uXCIgZXhpc3RzLCB0aGVuIGl0IHJldHVybnNcblx0ICogdGhlIGludGVudCBvZiB0aGUgZmlyc3QgaW5ib3VuZCAoYWZ0ZXIgc29ydGluZyBoYXMgYmVlbiBhcHBsaWVkKSBtYXRjaGluZyB0aGUgYWN0aW9uIFwiZGlzcGxheUZhY3RTaGVldFwiLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3QuXG5cdCAqIEBwYXJhbSBtUGFyYW1ldGVycyBTZWUgI0Nyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uI2dldExpbmtzIGZvciBkZXNjcmlwdGlvbi5cblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGludGVudCBpZiBpdCBleGlzdHMuXG5cdCAqL1xuXHRnZXRQcmltYXJ5SW50ZW50KHNTZW1hbnRpY09iamVjdDogc3RyaW5nLCBtUGFyYW1ldGVycz86IG9iamVjdCk6IFByb21pc2U8YW55PiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2Vcblx0XHRcdFx0LmdldFByaW1hcnlJbnRlbnQoc1NlbWFudGljT2JqZWN0LCBtUGFyYW1ldGVycylcblx0XHRcdFx0LmZhaWwoKG9FcnJvcjogYW55KSA9PiB7XG5cdFx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihgJHtvRXJyb3J9IHNhcC5mZS5jb3JlLnNlcnZpY2VzLlNoZWxsU2VydmljZXNGYWN0b3J5LmdldFByaW1hcnlJbnRlbnRgKSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKHJlc29sdmUpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdhaXQgZm9yIHRoZSByZW5kZXIgZXh0ZW5zaW9ucyBwbHVnaW4gdG8gYmUgbG9hZGVkLlxuXHQgKiBJZiB0cnVlIGlzIHJldHVybmVkIGJ5IHRoZSBwcm9taXNlIHdlIHdlcmUgYWJsZSB0byB3YWl0IGZvciBpdCwgb3RoZXJ3aXNlIHdlIGNvdWxkbid0IGFuZCBjYW5ub3QgcmVseSBvbiBpdC5cblx0ICovXG5cdHdhaXRGb3JQbHVnaW5zTG9hZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdGlmICghdGhpcy5zaGVsbFBsdWdpbk1hbmFnZXI/LmdldFBsdWdpbkxvYWRpbmdQcm9taXNlKSB7XG5cdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHRcdHRoaXMuc2hlbGxQbHVnaW5NYW5hZ2VyXG5cdFx0XHRcdFx0LmdldFBsdWdpbkxvYWRpbmdQcm9taXNlKFwiUmVuZGVyZXJFeHRlbnNpb25zXCIpXG5cdFx0XHRcdFx0LmZhaWwoKG9FcnJvcjogdW5rbm93bikgPT4ge1xuXHRcdFx0XHRcdFx0TG9nLmVycm9yKG9FcnJvciBhcyBzdHJpbmcsIFwic2FwLmZlLmNvcmUuc2VydmljZXMuU2hlbGxTZXJ2aWNlc0ZhY3Rvcnkud2FpdEZvclBsdWdpbnNMb2FkXCIpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQudGhlbigoKSA9PiByZXNvbHZlKHRydWUpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuXG4vKipcbiAqIFNlcnZpY2UgRmFjdG9yeSBmb3IgdGhlIFNoZWxsU2VydmljZXNcbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBTaGVsbFNlcnZpY2VzRmFjdG9yeSBleHRlbmRzIFNlcnZpY2VGYWN0b3J5PFNoZWxsU2VydmljZXNTZXR0aW5ncz4ge1xuXHQvKipcblx0ICogQ3JlYXRlcyBlaXRoZXIgYSBzdGFuZGFyZCBvciBhIG1vY2sgU2hlbGwgc2VydmljZSBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZ3VyYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBvU2VydmljZUNvbnRleHQgVGhlIHNoZWxsc2VydmljZSBjb250ZXh0XG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBmb3IgYSBzaGVsbCBzZXJ2aWNlIGltcGxlbWVudGF0aW9uXG5cdCAqIEBzZWUgU2VydmljZUZhY3RvcnkjY3JlYXRlSW5zdGFuY2Vcblx0ICovXG5cdGNyZWF0ZUluc3RhbmNlKG9TZXJ2aWNlQ29udGV4dDogU2VydmljZUNvbnRleHQ8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPik6IFByb21pc2U8SVNoZWxsU2VydmljZXM+IHtcblx0XHRvU2VydmljZUNvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIChzYXAudXNoZWxsLkNvbnRhaW5lciBhcyBDb250YWluZXIpO1xuXHRcdGNvbnN0IG9TaGVsbFNlcnZpY2UgPSBvU2VydmljZUNvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXJcblx0XHRcdD8gbmV3IFNoZWxsU2VydmljZXMob1NlcnZpY2VDb250ZXh0IGFzIFNlcnZpY2VDb250ZXh0PFJlcXVpcmVkPFNoZWxsU2VydmljZXNTZXR0aW5ncz4+KVxuXHRcdFx0OiBuZXcgU2hlbGxTZXJ2aWNlTW9jayhvU2VydmljZUNvbnRleHQpO1xuXHRcdHJldHVybiBvU2hlbGxTZXJ2aWNlLmluaXRQcm9taXNlLnRoZW4oKCkgPT4ge1xuXHRcdFx0Ly8gRW5yaWNoIHRoZSBhcHBDb21wb25lbnQgd2l0aCB0aGlzIG1ldGhvZFxuXHRcdFx0b1NlcnZpY2VDb250ZXh0LnNjb3BlT2JqZWN0LmdldFNoZWxsU2VydmljZXMgPSAoKSA9PiBvU2hlbGxTZXJ2aWNlO1xuXHRcdFx0cmV0dXJuIG9TaGVsbFNlcnZpY2U7XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2hlbGxTZXJ2aWNlc0ZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7OztFQStGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQSxJQU1NQSxnQkFBZ0I7SUFBQTtJQUFBO01BQUE7SUFBQTtJQUFBO0lBQUEsT0FLckJDLElBQUksR0FBSixnQkFBTztNQUNOLElBQUksQ0FBQ0MsV0FBVyxHQUFHQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxJQUFJLENBQUM7TUFDeEMsSUFBSSxDQUFDQyxZQUFZLEdBQUcsTUFBTTtJQUMzQixDQUFDO0lBQUEsT0FFREMsUUFBUSxHQUFSLG1CQUFTO0lBQUEsRUFBbUI7TUFDM0IsT0FBT0gsT0FBTyxDQUFDQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFBQSxPQUVERyxpQkFBaUIsR0FBakIsNEJBQWtCO0lBQUEsRUFBbUI7TUFDcEMsT0FBT0osT0FBTyxDQUFDQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFBQSxPQUVESSxVQUFVLEdBQVYscUJBQVc7SUFBQSxFQUF5RDtNQUNuRTtJQUFBLENBQ0E7SUFBQSxPQUVEQyxrQkFBa0IsR0FBbEIsNkJBQW1CO0lBQUEsRUFBbUI7TUFDckMsT0FBT04sT0FBTyxDQUFDQyxPQUFPLENBQUNNLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBQUEsT0FFREMsaUJBQWlCLEdBQWpCLDZCQUFvQjtNQUNuQjtJQUFBLENBQ0E7SUFBQSxPQUVEQyxlQUFlLEdBQWYsMEJBQWdCO0lBQUEsRUFBMkQ7TUFDMUUsT0FBTyxFQUFFO0lBQ1YsQ0FBQztJQUFBLE9BRURDLG9CQUFvQixHQUFwQiwrQkFBcUI7SUFBQSxFQUF5QztNQUM3RCxPQUFPVixPQUFPLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQUEs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
|
|
738
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaGVsbFNlcnZpY2VNb2NrIiwiaW5pdCIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJpbnN0YW5jZVR5cGUiLCJnZXRMaW5rcyIsImdldExpbmtzV2l0aENhY2hlIiwidG9FeHRlcm5hbCIsImdldFN0YXJ0dXBBcHBTdGF0ZSIsInVuZGVmaW5lZCIsImJhY2tUb1ByZXZpb3VzQXBwIiwiaHJlZkZvckV4dGVybmFsIiwiZ2V0SGFzaCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsImhyZWZGb3JFeHRlcm5hbEFzeW5jIiwiZ2V0QXBwU3RhdGUiLCJjcmVhdGVFbXB0eUFwcFN0YXRlIiwiY3JlYXRlRW1wdHlBcHBTdGF0ZUFzeW5jIiwiaXNOYXZpZ2F0aW9uU3VwcG9ydGVkIiwiaXNJbml0aWFsTmF2aWdhdGlvbiIsImlzSW5pdGlhbE5hdmlnYXRpb25Bc3luYyIsImV4cGFuZENvbXBhY3RIYXNoIiwicGFyc2VTaGVsbEhhc2giLCJzcGxpdEhhc2giLCJjb25zdHJ1Y3RTaGVsbEhhc2giLCJzZXREaXJ0eUZsYWciLCJyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciIsImRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIiLCJjcmVhdGVSZW5kZXJlciIsImdldFVzZXIiLCJoYXNVU2hlbGwiLCJyZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIiLCJ1bnJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlciIsInNldEJhY2tOYXZpZ2F0aW9uIiwic2V0SGllcmFyY2h5Iiwic2V0VGl0bGUiLCJnZXRDb250ZW50RGVuc2l0eSIsImRvY3VtZW50IiwiYm9keSIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiZ2V0UHJpbWFyeUludGVudCIsIndhaXRGb3JQbHVnaW5zTG9hZCIsIlNlcnZpY2UiLCJ3cmFwSlF1ZXJ5UHJvbWlzZSIsImpxdWVyeVByb21pc2UiLCJyZWplY3QiLCJkb25lIiwiZmFpbCIsIlNoZWxsU2VydmljZXMiLCJvQ29udGV4dCIsImdldENvbnRleHQiLCJvQ29tcG9uZW50Iiwic2NvcGVPYmplY3QiLCJvU2hlbGxDb250YWluZXIiLCJzZXR0aW5ncyIsInNoZWxsQ29udGFpbmVyIiwibGlua3NDYWNoZSIsImZuRmluZFNlbWFudGljT2JqZWN0c0luQ2FjaGUiLCJvQXJncyIsIl9vQXJncyIsImFDYWNoZWRTZW1hbnRpY09iamVjdHMiLCJhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzIiwiaSIsImxlbmd0aCIsInNlbWFudGljT2JqZWN0IiwicHVzaCIsImxpbmtzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsIm9sZEFyZ3MiLCJuZXdBcmdzIiwiY2FjaGVkTGlua3MiLCJyZXNvbHZlRm4iLCJyZWplY3RGbiIsIm9Dcm9zc0FwcE5hdlNlcnZpY2VQcm9taXNlIiwiZ2V0U2VydmljZUFzeW5jIiwib1VybFBhcnNpbmdTZXJ2aWNlUHJvbWlzZSIsIm9TaGVsbE5hdmlnYXRpb25TZXJ2aWNlUHJvbWlzZSIsIm9TaGVsbFBsdWdpbk1hbmFnZXJQcm9taXNlIiwib1NoZWxsVUlTZXJ2aWNlUHJvbWlzZSIsImdldFNlcnZpY2UiLCJhbGwiLCJ0aGVuIiwib0Nyb3NzQXBwTmF2U2VydmljZSIsIm9VcmxQYXJzaW5nU2VydmljZSIsIm9TaGVsbE5hdmlnYXRpb24iLCJvU2hlbGxVSVNlcnZpY2UiLCJvU2hlbGxQbHVnaW5NYW5hZ2VyIiwiY3Jvc3NBcHBOYXZTZXJ2aWNlIiwidXJsUGFyc2luZ1NlcnZpY2UiLCJzaGVsbE5hdmlnYXRpb24iLCJzaGVsbFVJU2VydmljZSIsInNoZWxsUGx1Z2luTWFuYWdlciIsImNhdGNoIiwib0Vycm9yIiwiRXJyb3IiLCJvQ2FjaGVSZXN1bHRzIiwiYUxpbmtzIiwib1NlbWFudGljT2JqZWN0c0xpbmtzIiwiYXNzaWduIiwiYU1lcmdlZExpbmtzIiwiaiIsImsiLCJnZXRTaGVsbENvbnRhaW5lciIsIm9OYXZBcmd1bWVudHNBcnIiLCJzdGFydHVwQXBwU3RhdGUiLCJiQXN5bmMiLCJzQXBwU3RhdGVLZXkiLCJzSGFzaEZyYWdtZW50IiwiZ2V0U2hlbGxIYXNoIiwic0hhc2giLCJvTmV3U2hlbGxIYXNoIiwiYkRpcnR5IiwiZm5EaXJ0eVN0YXRlUHJvdmlkZXIiLCJmbk5hdkZpbHRlciIsImZuQ2FsbEJhY2siLCJhSGllcmFyY2h5TGV2ZWxzIiwic1RpdGxlIiwic1NlbWFudGljT2JqZWN0IiwibVBhcmFtZXRlcnMiLCJnZXRQbHVnaW5Mb2FkaW5nUHJvbWlzZSIsIkxvZyIsImVycm9yIiwiU2hlbGxTZXJ2aWNlc0ZhY3RvcnkiLCJjcmVhdGVJbnN0YW5jZSIsIm9TZXJ2aWNlQ29udGV4dCIsInNhcCIsInVzaGVsbCIsIkNvbnRhaW5lciIsIm9TaGVsbFNlcnZpY2UiLCJnZXRTaGVsbFNlcnZpY2VzIiwiU2VydmljZUZhY3RvcnkiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlNoZWxsU2VydmljZXNGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRcIjtcbmltcG9ydCBTZXJ2aWNlIGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VcIjtcbmltcG9ydCBTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgQ29udGFpbmVyIGZyb20gXCJzYXAvdXNoZWxsL3NlcnZpY2VzL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gZnJvbSBcInNhcC91c2hlbGwvc2VydmljZXMvQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cIjtcbmltcG9ydCB0eXBlIFNoZWxsTmF2aWdhdGlvbiBmcm9tIFwic2FwL3VzaGVsbC9zZXJ2aWNlcy9TaGVsbE5hdmlnYXRpb25cIjtcbmltcG9ydCB0eXBlIFVSTFBhcnNpbmcgZnJvbSBcInNhcC91c2hlbGwvc2VydmljZXMvVVJMUGFyc2luZ1wiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gXCJ0eXBlcy9tZXRhbW9kZWxfdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgU3RhcnR1cEFwcFN0YXRlID0ge1xuXHRnZXREYXRhKCk6IHtcblx0XHRzZWxlY3Rpb25WYXJpYW50Pzoge1xuXHRcdFx0U2VsZWN0T3B0aW9ucz86IHtcblx0XHRcdFx0UHJvcGVydHlOYW1lOiBzdHJpbmc7XG5cdFx0XHRcdFJhbmdlczoge1xuXHRcdFx0XHRcdE9wdGlvbjogc3RyaW5nO1xuXHRcdFx0XHRcdFNpZ246IHN0cmluZztcblx0XHRcdFx0XHRMb3c6IHN0cmluZztcblx0XHRcdFx0fVtdO1xuXHRcdFx0fVtdO1xuXHRcdH07XG5cdH07XG59O1xuLyoqXG4gKiBAaW50ZXJmYWNlIElTaGVsbFNlcnZpY2VzXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTaGVsbFNlcnZpY2VzIHtcblx0aW5pdFByb21pc2U6IFByb21pc2U8SVNoZWxsU2VydmljZXM+O1xuXHRpbnN0YW5jZVR5cGU6IHN0cmluZztcblx0Y3Jvc3NBcHBOYXZTZXJ2aWNlPzogQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb247XG5cdGdldExpbmtzKG9BcmdzOiBvYmplY3QpOiBQcm9taXNlPGFueT47XG5cblx0Z2V0TGlua3NXaXRoQ2FjaGUob0FyZ3M6IG9iamVjdCk6IFByb21pc2U8YW55W10+O1xuXG5cdHRvRXh0ZXJuYWwob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KTogdm9pZDtcblxuXHRnZXRTdGFydHVwQXBwU3RhdGUob0FyZ3M6IG9iamVjdCk6IFByb21pc2U8dW5kZWZpbmVkIHwgU3RhcnR1cEFwcFN0YXRlPjtcblxuXHRiYWNrVG9QcmV2aW91c0FwcCgpOiB2b2lkO1xuXG5cdGhyZWZGb3JFeHRlcm5hbChvQXJncz86IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCwgYkFzeW5jPzogYm9vbGVhbik6IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcblxuXHRocmVmRm9yRXh0ZXJuYWxBc3luYyhvQXJncz86IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCk6IFByb21pc2U8YW55PjtcblxuXHRnZXRBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQsIHNBcHBTdGF0ZUtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuXG5cdGNyZWF0ZUVtcHR5QXBwU3RhdGUob0NvbXBvbmVudDogQ29tcG9uZW50KTogb2JqZWN0O1xuXG5cdGNyZWF0ZUVtcHR5QXBwU3RhdGUob0NvbXBvbmVudDogQ29tcG9uZW50KTogUHJvbWlzZTxhbnk+O1xuXG5cdGlzTmF2aWdhdGlvblN1cHBvcnRlZChvTmF2QXJndW1lbnRzQXJyOiBBcnJheTxvYmplY3Q+LCBvQ29tcG9uZW50Pzogb2JqZWN0KTogUHJvbWlzZTxhbnk+O1xuXG5cdGlzSW5pdGlhbE5hdmlnYXRpb24oKTogYm9vbGVhbjtcblxuXHRpc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMoKTogUHJvbWlzZTxhbnk+O1xuXG5cdGV4cGFuZENvbXBhY3RIYXNoKHNIYXNoRnJhZ21lbnQ6IHN0cmluZyk6IGFueTtcblxuXHRnZXRIYXNoKCk6IHN0cmluZztcblxuXHRwYXJzZVNoZWxsSGFzaChzSGFzaDogc3RyaW5nKTogYW55O1xuXG5cdHNwbGl0SGFzaChzSGFzaDogc3RyaW5nKTogb2JqZWN0O1xuXG5cdGNvbnN0cnVjdFNoZWxsSGFzaChvTmV3U2hlbGxIYXNoOiBvYmplY3QpOiBzdHJpbmc7XG5cblx0c2V0RGlydHlGbGFnKGJEaXJ0eTogYm9vbGVhbik6IHZvaWQ7XG5cblx0cmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXI6IEZ1bmN0aW9uKTogdm9pZDtcblxuXHRkZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyOiBGdW5jdGlvbik6IHZvaWQ7XG5cblx0Y3JlYXRlUmVuZGVyZXIoKTogb2JqZWN0O1xuXG5cdGdldFVzZXIoKTogYW55O1xuXG5cdGhhc1VTaGVsbCgpOiBib29sZWFuO1xuXG5cdHJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlcihmbk5hdkZpbHRlcjogRnVuY3Rpb24pOiB2b2lkO1xuXG5cdHVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyOiBGdW5jdGlvbik6IHZvaWQ7XG5cblx0c2V0QmFja05hdmlnYXRpb24oZm5DYWxsQmFjaz86IEZ1bmN0aW9uKTogdm9pZDtcblxuXHRzZXRIaWVyYXJjaHkoYUhpZXJhcmNoeUxldmVsczogQXJyYXk8b2JqZWN0Pik6IHZvaWQ7XG5cblx0c2V0VGl0bGUoc1RpdGxlOiBzdHJpbmcpOiB2b2lkO1xuXG5cdGdldENvbnRlbnREZW5zaXR5KCk6IHN0cmluZztcblxuXHRnZXRQcmltYXJ5SW50ZW50KHNTZW1hbnRpY09iamVjdDogc3RyaW5nLCBtUGFyYW1ldGVycz86IG9iamVjdCk6IFByb21pc2U8YW55PjtcblxuXHR3YWl0Rm9yUGx1Z2luc0xvYWQoKTogUHJvbWlzZTxib29sZWFuPjtcbn1cblxuLyoqXG4gKiBNb2NrIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTaGVsbFNlcnZpY2UgZm9yIE9wZW5GRVxuICpcbiAqIEBpbXBsZW1lbnRzIHtJU2hlbGxTZXJ2aWNlc31cbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIFNoZWxsU2VydmljZU1vY2sgZXh0ZW5kcyBTZXJ2aWNlPFNoZWxsU2VydmljZXNTZXR0aW5ncz4gaW1wbGVtZW50cyBJU2hlbGxTZXJ2aWNlcyB7XG5cdGluaXRQcm9taXNlITogUHJvbWlzZTxhbnk+O1xuXG5cdGluc3RhbmNlVHlwZSE6IHN0cmluZztcblxuXHRpbml0KCkge1xuXHRcdHRoaXMuaW5pdFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodGhpcyk7XG5cdFx0dGhpcy5pbnN0YW5jZVR5cGUgPSBcIm1vY2tcIjtcblx0fVxuXG5cdGdldExpbmtzKC8qb0FyZ3M6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG5cdH1cblxuXHRnZXRMaW5rc1dpdGhDYWNoZSgvKm9BcmdzOiBvYmplY3QqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuXHR9XG5cblx0dG9FeHRlcm5hbCgvKm9OYXZBcmd1bWVudHNBcnI6IEFycmF5PG9iamVjdD4sIG9Db21wb25lbnQ6IG9iamVjdCovKSB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0Z2V0U3RhcnR1cEFwcFN0YXRlKC8qb0FyZ3M6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuXHR9XG5cblx0YmFja1RvUHJldmlvdXNBcHAoKSB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0aHJlZkZvckV4dGVybmFsKC8qb0FyZ3M/OiBvYmplY3QsIG9Db21wb25lbnQ/OiBvYmplY3QsIGJBc3luYz86IGJvb2xlYW4qLykge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cblx0Z2V0SGFzaCgpIHtcblx0XHRyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWY7XG5cdH1cblxuXHRocmVmRm9yRXh0ZXJuYWxBc3luYygvKm9BcmdzPzogb2JqZWN0LCBvQ29tcG9uZW50Pzogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGdldEFwcFN0YXRlKC8qb0NvbXBvbmVudDogb2JqZWN0LCBzQXBwU3RhdGVLZXk6IHN0cmluZyovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRjcmVhdGVFbXB0eUFwcFN0YXRlKC8qb0NvbXBvbmVudDogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGNyZWF0ZUVtcHR5QXBwU3RhdGVBc3luYygvKm9Db21wb25lbnQ6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRpc05hdmlnYXRpb25TdXBwb3J0ZWQoLypvTmF2QXJndW1lbnRzQXJyOiBBcnJheTxvYmplY3Q+LCBvQ29tcG9uZW50OiBvYmplY3QqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMoKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRleHBhbmRDb21wYWN0SGFzaCgvKnNIYXNoRnJhZ21lbnQ6IHN0cmluZyovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRwYXJzZVNoZWxsSGFzaCgvKnNIYXNoOiBzdHJpbmcqLykge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdHNwbGl0SGFzaCgvKnNIYXNoOiBzdHJpbmcqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0Y29uc3RydWN0U2hlbGxIYXNoKC8qb05ld1NoZWxsSGFzaDogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdHNldERpcnR5RmxhZygvKmJEaXJ0eTogYm9vbGVhbiovKSB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0cmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoLypmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24qLykge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoLypmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24qLykge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdGNyZWF0ZVJlbmRlcmVyKCkge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdGdldFVzZXIoKSB7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG5cblx0aGFzVVNoZWxsKCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlcigvKmZuTmF2RmlsdGVyOiBGdW5jdGlvbiovKTogdm9pZCB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0dW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoLypmbk5hdkZpbHRlcjogRnVuY3Rpb24qLyk6IHZvaWQge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdHNldEJhY2tOYXZpZ2F0aW9uKC8qZm5DYWxsQmFjaz86IEZ1bmN0aW9uKi8pOiB2b2lkIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRzZXRIaWVyYXJjaHkoLyphSGllcmFyY2h5TGV2ZWxzOiBBcnJheTxvYmplY3Q+Ki8pOiB2b2lkIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRzZXRUaXRsZSgvKnNUaXRsZTogc3RyaW5nKi8pOiB2b2lkIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRnZXRDb250ZW50RGVuc2l0eSgpOiBzdHJpbmcge1xuXHRcdC8vIGluIGNhc2UgdGhlcmUgaXMgbm8gc2hlbGwgd2UgcHJvYmFibHkgbmVlZCB0byBsb29rIGF0IHRoZSBjbGFzc2VzIGJlaW5nIGRlZmluZWQgb24gdGhlIGJvZHlcblx0XHRpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJzYXBVaVNpemVDb3p5XCIpKSB7XG5cdFx0XHRyZXR1cm4gXCJjb3p5XCI7XG5cdFx0fSBlbHNlIGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhcInNhcFVpU2l6ZUNvbXBhY3RcIikpIHtcblx0XHRcdHJldHVybiBcImNvbXBhY3RcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0fVxuXHR9XG5cblx0Z2V0UHJpbWFyeUludGVudCgvKnNTZW1hbnRpY09iamVjdDogc3RyaW5nLCBtUGFyYW1ldGVycz86IG9iamVjdCovKTogUHJvbWlzZTxhbnk+IHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdH1cblxuXHR3YWl0Rm9yUGx1Z2luc0xvYWQoKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcblx0fVxufVxuXG4vKipcbiAqIEB0eXBlZGVmIFNoZWxsU2VydmljZXNTZXR0aW5nc1xuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IHR5cGUgU2hlbGxTZXJ2aWNlc1NldHRpbmdzID0ge1xuXHRzaGVsbENvbnRhaW5lcj86IENvbnRhaW5lcjtcbn07XG5cbi8qKlxuICogV3JhcCBhIEpRdWVyeSBQcm9taXNlIHdpdGhpbiBhIG5hdGl2ZSB7UHJvbWlzZX0uXG4gKlxuICogQHRlbXBsYXRlIHtvYmplY3R9IFRcbiAqIEBwYXJhbSBqcXVlcnlQcm9taXNlIFRoZSBvcmlnaW5hbCBqcXVlcnkgcHJvbWlzZVxuICogQHJldHVybnMgQSBuYXRpdmUgcHJvbWlzZSB3cmFwcGluZyB0aGUgc2FtZSBvYmplY3RcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHdyYXBKUXVlcnlQcm9taXNlPFQ+KGpxdWVyeVByb21pc2U6IGpRdWVyeS5Qcm9taXNlKTogUHJvbWlzZTxUPiB7XG5cdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0anF1ZXJ5UHJvbWlzZS5kb25lKHJlc29sdmUgYXMgYW55KS5mYWlsKHJlamVjdCk7XG5cdH0pO1xufVxuXG4vKipcbiAqIEJhc2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNoZWxsU2VydmljZXNcbiAqXG4gKiBAaW1wbGVtZW50cyB7SVNoZWxsU2VydmljZXN9XG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBTaGVsbFNlcnZpY2VzIGV4dGVuZHMgU2VydmljZTxSZXF1aXJlZDxTaGVsbFNlcnZpY2VzU2V0dGluZ3M+PiBpbXBsZW1lbnRzIElTaGVsbFNlcnZpY2VzIHtcblx0cmVzb2x2ZUZuOiBhbnk7XG5cblx0cmVqZWN0Rm46IGFueTtcblxuXHRpbml0UHJvbWlzZSE6IFByb21pc2U8YW55PjtcblxuXHQvLyAhOiBtZWFucyB0aGF0IHdlIGtub3cgaXQgd2lsbCBiZSBhc3NpZ25lZCBiZWZvcmUgdXNhZ2Vcblx0Y3Jvc3NBcHBOYXZTZXJ2aWNlITogQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb247XG5cblx0dXJsUGFyc2luZ1NlcnZpY2UhOiBVUkxQYXJzaW5nO1xuXG5cdHNoZWxsTmF2aWdhdGlvbiE6IFNoZWxsTmF2aWdhdGlvbjtcblxuXHRzaGVsbFBsdWdpbk1hbmFnZXIhOiB7XG5cdFx0Z2V0UGx1Z2luTG9hZGluZ1Byb21pc2UoY2F0ZWdvcnk6IHN0cmluZyk6IGpRdWVyeS5Qcm9taXNlO1xuXHR9O1xuXG5cdG9TaGVsbENvbnRhaW5lciE6IENvbnRhaW5lcjtcblxuXHRzaGVsbFVJU2VydmljZSE6IGFueTtcblxuXHRpbnN0YW5jZVR5cGUhOiBzdHJpbmc7XG5cblx0bGlua3NDYWNoZSE6IGFueTtcblxuXHRmbkZpbmRTZW1hbnRpY09iamVjdHNJbkNhY2hlOiBhbnk7XG5cblx0aW5pdCgpIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXHRcdGNvbnN0IG9Db21wb25lbnQgPSBvQ29udGV4dC5zY29wZU9iamVjdCBhcyBhbnk7XG5cdFx0dGhpcy5vU2hlbGxDb250YWluZXIgPSBvQ29udGV4dC5zZXR0aW5ncy5zaGVsbENvbnRhaW5lcjtcblx0XHR0aGlzLmluc3RhbmNlVHlwZSA9IFwicmVhbFwiO1xuXHRcdHRoaXMubGlua3NDYWNoZSA9IHt9O1xuXHRcdHRoaXMuZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZSA9IGZ1bmN0aW9uIChvQXJnczogYW55KTogb2JqZWN0IHtcblx0XHRcdGNvbnN0IF9vQXJnczogYW55ID0gb0FyZ3M7XG5cdFx0XHRjb25zdCBhQ2FjaGVkU2VtYW50aWNPYmplY3RzID0gW107XG5cdFx0XHRjb25zdCBhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzID0gW107XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IF9vQXJncy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoISFfb0FyZ3NbaV1bMF0gJiYgISFfb0FyZ3NbaV1bMF0uc2VtYW50aWNPYmplY3QpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0pIHtcblx0XHRcdFx0XHRcdGFDYWNoZWRTZW1hbnRpY09iamVjdHMucHVzaCh0aGlzLmxpbmtzQ2FjaGVbX29BcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0XS5saW5rcyk7XG5cdFx0XHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkob0FyZ3NbaV1bMF0sIFwibGlua3NcIiwge1xuXHRcdFx0XHRcdFx0XHR2YWx1ZTogdGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0ubGlua3Ncblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzLnB1c2goX29BcmdzW2ldKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB7IG9sZEFyZ3M6IG9BcmdzLCBuZXdBcmdzOiBhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzLCBjYWNoZWRMaW5rczogYUNhY2hlZFNlbWFudGljT2JqZWN0cyB9O1xuXHRcdH07XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMucmVzb2x2ZUZuID0gcmVzb2x2ZTtcblx0XHRcdHRoaXMucmVqZWN0Rm4gPSByZWplY3Q7XG5cdFx0fSk7XG5cdFx0Y29uc3Qgb0Nyb3NzQXBwTmF2U2VydmljZVByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvblwiKTtcblx0XHRjb25zdCBvVXJsUGFyc2luZ1NlcnZpY2VQcm9taXNlID0gdGhpcy5vU2hlbGxDb250YWluZXIuZ2V0U2VydmljZUFzeW5jKFwiVVJMUGFyc2luZ1wiKTtcblx0XHRjb25zdCBvU2hlbGxOYXZpZ2F0aW9uU2VydmljZVByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJTaGVsbE5hdmlnYXRpb25cIik7XG5cdFx0Y29uc3Qgb1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJQbHVnaW5NYW5hZ2VyXCIpO1xuXHRcdGNvbnN0IG9TaGVsbFVJU2VydmljZVByb21pc2UgPSBvQ29tcG9uZW50LmdldFNlcnZpY2UoXCJTaGVsbFVJU2VydmljZVwiKTtcblx0XHRQcm9taXNlLmFsbChbXG5cdFx0XHRvQ3Jvc3NBcHBOYXZTZXJ2aWNlUHJvbWlzZSxcblx0XHRcdG9VcmxQYXJzaW5nU2VydmljZVByb21pc2UsXG5cdFx0XHRvU2hlbGxOYXZpZ2F0aW9uU2VydmljZVByb21pc2UsXG5cdFx0XHRvU2hlbGxVSVNlcnZpY2VQcm9taXNlLFxuXHRcdFx0b1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2Vcblx0XHRdKVxuXHRcdFx0LnRoZW4oKFtvQ3Jvc3NBcHBOYXZTZXJ2aWNlLCBvVXJsUGFyc2luZ1NlcnZpY2UsIG9TaGVsbE5hdmlnYXRpb24sIG9TaGVsbFVJU2VydmljZSwgb1NoZWxsUGx1Z2luTWFuYWdlcl0pID0+IHtcblx0XHRcdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgPSBvQ3Jvc3NBcHBOYXZTZXJ2aWNlO1xuXHRcdFx0XHR0aGlzLnVybFBhcnNpbmdTZXJ2aWNlID0gb1VybFBhcnNpbmdTZXJ2aWNlO1xuXHRcdFx0XHR0aGlzLnNoZWxsTmF2aWdhdGlvbiA9IG9TaGVsbE5hdmlnYXRpb247XG5cdFx0XHRcdHRoaXMuc2hlbGxVSVNlcnZpY2UgPSBvU2hlbGxVSVNlcnZpY2U7XG5cdFx0XHRcdHRoaXMuc2hlbGxQbHVnaW5NYW5hZ2VyID0gb1NoZWxsUGx1Z2luTWFuYWdlcjtcblx0XHRcdFx0dGhpcy5yZXNvbHZlRm4oKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2godGhpcy5yZWplY3RGbik7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgbGlua3MgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBzZW1hbnRpYyBvYmplY3QgJiBhY3Rpb25cblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cblx0ICogc2VydmljZSByZWZlcmVuY2UgY2FsbCB0aGUgZ2V0TGlua3MgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0TGlua3MgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byB0YXJnZXQgbGlua3MgYXJyYXlcblx0ICovXG5cdGdldExpbmtzKG9BcmdzOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHR0aGlzLmNyb3NzQXBwTmF2U2VydmljZVxuXHRcdFx0XHQuZ2V0TGlua3Mob0FyZ3MpXG5cdFx0XHRcdC5mYWlsKChvRXJyb3I6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYCR7b0Vycm9yfSBzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzRmFjdG9yeS5nZXRMaW5rc2ApKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4ocmVzb2x2ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgbGlua3MgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBzZW1hbnRpYyBvYmplY3QgJiBhY3Rpb24gaW4gY2FjaGVcblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cblx0ICogc2VydmljZSByZWZlcmVuY2UgY2FsbCB0aGUgZ2V0TGlua3MgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0TGlua3MgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byB0YXJnZXQgbGlua3MgYXJyYXlcblx0ICovXG5cdGdldExpbmtzV2l0aENhY2hlKG9BcmdzOiBvYmplY3QpOiBQcm9taXNlPGFueVtdPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0aWYgKChvQXJncyBhcyBPYmplY3RbXSkubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHJlc29sdmUoW10pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3Qgb0NhY2hlUmVzdWx0cyA9IHRoaXMuZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZShvQXJncyk7XG5cblx0XHRcdFx0aWYgKG9DYWNoZVJlc3VsdHMubmV3QXJncy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRyZXNvbHZlKG9DYWNoZVJlc3VsdHMuY2FjaGVkTGlua3MpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0XHRcdHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlXG5cdFx0XHRcdFx0XHQuZ2V0TGlua3Mob0NhY2hlUmVzdWx0cy5uZXdBcmdzKVxuXHRcdFx0XHRcdFx0LmZhaWwoKG9FcnJvcjogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYCR7b0Vycm9yfSBzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzRmFjdG9yeS5nZXRMaW5rc1dpdGhDYWNoZWApKTtcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHQudGhlbigoYUxpbmtzOiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKGFMaW5rcy5sZW5ndGggIT09IDApIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBvU2VtYW50aWNPYmplY3RzTGlua3M6IGFueSA9IHt9O1xuXG5cdFx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhTGlua3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChhTGlua3NbaV0ubGVuZ3RoID4gMCAmJiBvQ2FjaGVSZXN1bHRzLm5ld0FyZ3NbaV1bMF0ubGlua3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRvU2VtYW50aWNPYmplY3RzTGlua3Nbb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsaW5rczogYUxpbmtzW2ldXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubGlua3NDYWNoZSA9IE9iamVjdC5hc3NpZ24odGhpcy5saW5rc0NhY2hlLCBvU2VtYW50aWNPYmplY3RzTGlua3MpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdGlmIChvQ2FjaGVSZXN1bHRzLmNhY2hlZExpbmtzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYUxpbmtzKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBhTWVyZ2VkTGlua3MgPSBbXTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgaiA9IDA7XG5cblx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBrID0gMDsgayA8IG9DYWNoZVJlc3VsdHMub2xkQXJncy5sZW5ndGg7IGsrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGogPCBhTGlua3MubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhTGlua3Nbal0ubGVuZ3RoID4gMCAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5zZW1hbnRpY09iamVjdCA9PT0gb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2pdWzBdLnNlbWFudGljT2JqZWN0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKGFMaW5rc1tqXSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aisrO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5saW5rcyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5saW5rcyk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYU1lcmdlZExpbmtzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIHJldHJpZXZlIHRoZSBTaGVsbENvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIHNhcC51c2hlbGwuY29udGFpbmVyXG5cdCAqIEByZXR1cm5zIE9iamVjdCB3aXRoIHByZWRlZmluZWQgc2hlbGxDb250YWluZXIgbWV0aG9kc1xuXHQgKi9cblx0Z2V0U2hlbGxDb250YWluZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMub1NoZWxsQ29udGFpbmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCB0b0V4dGVybmFsIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggTmF2aWdhdGlvbiBBcmd1bWVudHMgYW5kIG9Db21wb25lbnQuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb05hdkFyZ3VtZW50c0FyciBBbmRcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+dG9FeHRlcm5hbCBhcmd1bWVudHNcblx0ICovXG5cdHRvRXh0ZXJuYWwob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KTogdm9pZCB7XG5cdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UudG9FeHRlcm5hbChvTmF2QXJndW1lbnRzQXJyLCBvQ29tcG9uZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHRhcmdldCBzdGFydHVwQXBwU3RhdGVcblx0ICogV2lsbCBjaGVjayB0aGUgZXhpc3RhbmNlIG9mIHRoZSBTaGVsbENvbnRhaW5lciBhbmQgcmV0cmlldmUgdGhlIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uXG5cdCAqIHNlcnZpY2UgcmVmZXJlbmNlIGNhbGwgdGhlIGdldFN0YXJ0dXBBcHBTdGF0ZSBtZXRob2QuIEluIGNhc2Ugc2VydmljZSBpcyBub3QgYXZhaWxhYmxlIG9yIGFueSBleGNlcHRpb25cblx0ICogbWV0aG9kIHRocm93cyBleGNlcHRpb24gZXJyb3IgaW4gY29uc29sZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQXJncyBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5nZXRTdGFydHVwQXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBPYmplY3Rcblx0ICovXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZShvQXJnczogQ29tcG9uZW50KTogUHJvbWlzZTx1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGU+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Ly8gSlF1ZXJ5IFByb21pc2UgYmVoYXZlcyBkaWZmZXJlbnRseVxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHQodGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgYXMgYW55KVxuXHRcdFx0XHQuZ2V0U3RhcnR1cEFwcFN0YXRlKG9BcmdzKVxuXHRcdFx0XHQuZmFpbCgob0Vycm9yOiBhbnkpID0+IHtcblx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKGAke29FcnJvcn0gc2FwLmZlLmNvcmUuc2VydmljZXMuU2hlbGxTZXJ2aWNlc0ZhY3RvcnkuZ2V0U3RhcnR1cEFwcFN0YXRlYCkpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQudGhlbigoc3RhcnR1cEFwcFN0YXRlOiB1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGUpID0+IHJlc29sdmUoc3RhcnR1cEFwcFN0YXRlKSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGJhY2tUb1ByZXZpb3VzQXBwIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBTb21ldGhpbmcgdGhhdCBpbmRpY2F0ZSB3ZSd2ZSBuYXZpZ2F0ZWRcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRiYWNrVG9QcmV2aW91c0FwcCgpIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuYmFja1RvUHJldmlvdXNBcHAoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgaHJlZkZvckV4dGVybmFsIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9BcmdzIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50IFRoZSBhcHBDb21wb25lbnRcblx0ICogQHBhcmFtIGJBc3luYyBXaGV0aGVyIHRoaXMgY2FsbCBzaG91bGQgYmUgYXN5bmMgb3Igbm90XG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmhyZWZGb3JFeHRlcm5hbCBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIHN0cmluZ1xuXHQgKi9cblx0aHJlZkZvckV4dGVybmFsKG9BcmdzOiBvYmplY3QsIG9Db21wb25lbnQ/OiBvYmplY3QsIGJBc3luYz86IGJvb2xlYW4pIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuaHJlZkZvckV4dGVybmFsKG9BcmdzLCBvQ29tcG9uZW50IGFzIG9iamVjdCwgISFiQXN5bmMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBocmVmRm9yRXh0ZXJuYWwgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogQHBhcmFtIG9Db21wb25lbnQgVGhlIGFwcENvbXBvbmVudFxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5ocmVmRm9yRXh0ZXJuYWxBc3luYyBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIHN0cmluZ1xuXHQgKi9cblx0aHJlZkZvckV4dGVybmFsQXN5bmMob0FyZ3M6IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5ocmVmRm9yRXh0ZXJuYWxBc3luYyhvQXJncywgb0NvbXBvbmVudCBhcyBvYmplY3QpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBnZXRBcHBTdGF0ZSBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIG9Db21wb25lbnQgYW5kIG9BcHBTdGF0ZUtleS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50XG5cdCAqIEBwYXJhbSBzQXBwU3RhdGVLZXkgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0QXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBvYmplY3Rcblx0ICovXG5cdGdldEFwcFN0YXRlKG9Db21wb25lbnQ6IENvbXBvbmVudCwgc0FwcFN0YXRlS2V5OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gd3JhcEpRdWVyeVByb21pc2UoKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlIGFzIGFueSkuZ2V0QXBwU3RhdGUob0NvbXBvbmVudCwgc0FwcFN0YXRlS2V5KSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNyZWF0ZUVtcHR5QXBwU3RhdGUgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2Ugd2l0aCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Y3JlYXRlRW1wdHlBcHBTdGF0ZSBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIG9iamVjdFxuXHQgKi9cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQpIHtcblx0XHRyZXR1cm4gKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlIGFzIGFueSkuY3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgY3JlYXRlRW1wdHlBcHBTdGF0ZUFzeW5jIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggb0NvbXBvbmVudC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50IENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmNyZWF0ZUVtcHR5QXBwU3RhdGVBc3luYyBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIG9iamVjdFxuXHQgKi9cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZUFzeW5jKG9Db21wb25lbnQ6IENvbXBvbmVudCkge1xuXHRcdHJldHVybiAodGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgYXMgYW55KS5jcmVhdGVFbXB0eUFwcFN0YXRlQXN5bmMob0NvbXBvbmVudCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGlzTmF2aWdhdGlvblN1cHBvcnRlZCBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIE5hdmlnYXRpb24gQXJndW1lbnRzIGFuZCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9OYXZBcmd1bWVudHNBcnJcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+aXNOYXZpZ2F0aW9uU3VwcG9ydGVkIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRpc05hdmlnYXRpb25TdXBwb3J0ZWQob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIHdyYXBKUXVlcnlQcm9taXNlKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLmlzTmF2aWdhdGlvblN1cHBvcnRlZChvTmF2QXJndW1lbnRzQXJyLCBvQ29tcG9uZW50KSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGlzSW5pdGlhbE5hdmlnYXRpb24gbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gYm9vbGVhblxuXHQgKi9cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuaXNJbml0aWFsTmF2aWdhdGlvbigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBpc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gYm9vbGVhblxuXHQgKi9cblx0aXNJbml0aWFsTmF2aWdhdGlvbkFzeW5jKCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5pc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgZXhwYW5kQ29tcGFjdEhhc2ggbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwYXJhbSBzSGFzaEZyYWdtZW50IEFuIChpbnRlcm5hbCBmb3JtYXQpIHNoZWxsIGhhc2hcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHRoZSBzdWNjZXNzIGhhbmRsZXIgb2YgdGhlIHJlc29sdmUgcHJvbWlzZSBnZXQgYW4gZXhwYW5kZWQgc2hlbGwgaGFzaCBhcyBmaXJzdCBhcmd1bWVudFxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdGV4cGFuZENvbXBhY3RIYXNoKHNIYXNoRnJhZ21lbnQ6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5leHBhbmRDb21wYWN0SGFzaChzSGFzaEZyYWdtZW50KTtcblx0fVxuXG5cdGdldEhhc2goKSB7XG5cdFx0cmV0dXJuIGAjJHt0aGlzLnVybFBhcnNpbmdTZXJ2aWNlLmdldFNoZWxsSGFzaCh3aW5kb3cubG9jYXRpb24uaHJlZil9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgcGFyc2VTaGVsbEhhc2ggbWV0aG9kIG9mIFVSTFBhcnNpbmcgc2VydmljZSB3aXRoIGdpdmVuIHNIYXNoLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNIYXNoIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuVVJMUGFyc2luZz0+cGFyc2VTaGVsbEhhc2ggYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFRoZSBwYXJzZWQgdXJsXG5cdCAqL1xuXHRwYXJzZVNoZWxsSGFzaChzSGFzaDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMudXJsUGFyc2luZ1NlcnZpY2UucGFyc2VTaGVsbEhhc2goc0hhc2gpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBzcGxpdEhhc2ggbWV0aG9kIG9mIFVSTFBhcnNpbmcgc2VydmljZSB3aXRoIGdpdmVuIHNIYXNoLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNIYXNoIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuVVJMUGFyc2luZz0+c3BsaXRIYXNoIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRzcGxpdEhhc2goc0hhc2g6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLnVybFBhcnNpbmdTZXJ2aWNlLnNwbGl0SGFzaChzSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNvbnN0cnVjdFNoZWxsSGFzaCBtZXRob2Qgb2YgVVJMUGFyc2luZyBzZXJ2aWNlIHdpdGggZ2l2ZW4gc0hhc2guXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb05ld1NoZWxsSGFzaCBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLlVSTFBhcnNpbmc9PmNvbnN0cnVjdFNoZWxsSGFzaCBhcmd1bWVudHNcblx0ICogQHJldHVybnMgU2hlbGwgSGFzaCBzdHJpbmdcblx0ICovXG5cdGNvbnN0cnVjdFNoZWxsSGFzaChvTmV3U2hlbGxIYXNoOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gdGhpcy51cmxQYXJzaW5nU2VydmljZS5jb25zdHJ1Y3RTaGVsbEhhc2gob05ld1NoZWxsSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldERpcnR5RmxhZyBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBiRGlydHkgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIuc2V0RGlydHlGbGFnIGFyZ3VtZW50c1xuXHQgKi9cblx0c2V0RGlydHlGbGFnKGJEaXJ0eTogYm9vbGVhbikge1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyLnNldERpcnR5RmxhZyhiRGlydHkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCByZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZSBwcm92aWRlciBjYWxsYmFjayBtZXRob2QuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gZm5EaXJ0eVN0YXRlUHJvdmlkZXIgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIucmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgYXJndW1lbnRzXG5cdCAqL1xuXHRyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pIHtcblx0XHR0aGlzLm9TaGVsbENvbnRhaW5lci5yZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcik7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgbWV0aG9kIHdpdGggZ2l2ZW4gZGlydHkgc3RhdGUgcHJvdmlkZXIgY2FsbGJhY2sgbWV0aG9kLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIGZuRGlydHlTdGF0ZVByb3ZpZGVyIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mIHNhcC51c2hlbGwuQ29udGFpbmVyLmRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgYXJndW1lbnRzXG5cdCAqL1xuXHRkZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyOiBGdW5jdGlvbikge1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyLmRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBjcmVhdGVSZW5kZXJlciBtZXRob2Qgb2YgdXNoZWxsIGNvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgcmVuZGVyZXIgb2JqZWN0XG5cdCAqL1xuXHRjcmVhdGVSZW5kZXJlcigpIHtcblx0XHRyZXR1cm4gdGhpcy5vU2hlbGxDb250YWluZXIuY3JlYXRlUmVuZGVyZXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgZ2V0VXNlciBtZXRob2Qgb2YgdXNoZWxsIGNvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgVXNlciBvYmplY3Rcblx0ICovXG5cdGdldFVzZXIoKSB7XG5cdFx0cmV0dXJuICh0aGlzLm9TaGVsbENvbnRhaW5lciBhcyBhbnkpLmdldFVzZXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNoZWNrIGlmIHVzaGVsbCBjb250YWluZXIgaXMgYXZhaWxhYmxlIG9yIG5vdC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZVxuXHQgKi9cblx0aGFzVVNoZWxsKCkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCByZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIgbWV0aG9kIG9mIHNoZWxsTmF2aWdhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGZuTmF2RmlsdGVyIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gcmVnaXN0ZXJcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRyZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKSB7XG5cdFx0KHRoaXMuc2hlbGxOYXZpZ2F0aW9uIGFzIGFueSkucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgdW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIgbWV0aG9kIG9mIHNoZWxsTmF2aWdhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGZuTmF2RmlsdGVyIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gdW5yZWdpc3RlclxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyOiBGdW5jdGlvbikge1xuXHRcdCh0aGlzLnNoZWxsTmF2aWdhdGlvbiBhcyBhbnkpLnVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgc2V0QmFja05hdmlnYXRpb24gbWV0aG9kIG9mIFNoZWxsVUlTZXJ2aWNlXG5cdCAqIHRoYXQgZGlzcGxheXMgdGhlIGJhY2sgYnV0dG9uIGluIHRoZSBzaGVsbCBoZWFkZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBbZm5DYWxsQmFja10gQSBjYWxsYmFjayBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQgaW4gdGhlIFVJLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHNldEJhY2tOYXZpZ2F0aW9uKGZuQ2FsbEJhY2s/OiBGdW5jdGlvbik6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0QmFja05hdmlnYXRpb24oZm5DYWxsQmFjayk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldEhpZXJhcmNoeSBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgZ2l2ZW4gaGllcmFyY2h5IGluIHRoZSBzaGVsbCBoZWFkZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBbYUhpZXJhcmNoeUxldmVsc10gQW4gYXJyYXkgcmVwcmVzZW50aW5nIGhpZXJhcmNoaWVzIG9mIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGFwcC5cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRIaWVyYXJjaHkoYUhpZXJhcmNoeUxldmVsczogQXJyYXk8b2JqZWN0Pik6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0SGllcmFyY2h5KGFIaWVyYXJjaHlMZXZlbHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBzZXRUaXRsZSBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgZ2l2ZW4gdGl0bGUgaW4gdGhlIHNoZWxsIGhlYWRlci5cblx0ICpcblx0ICogQHBhcmFtIFtzVGl0bGVdIFRoZSBuZXcgdGl0bGUuIFRoZSBkZWZhdWx0IHRpdGxlIGlzIHNldCBpZiB0aGlzIGFyZ3VtZW50IGlzIG5vdCBnaXZlbi5cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRUaXRsZShzVGl0bGU6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0VGl0bGUoc1RpdGxlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnRseSBkZWZpbmVkIGNvbnRlbnQgZGVuc2l0eS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGNvbnRlbnQgZGVuc2l0eSB2YWx1ZVxuXHQgKi9cblx0Z2V0Q29udGVudERlbnNpdHkoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gKHRoaXMub1NoZWxsQ29udGFpbmVyIGFzIGFueSkuZ2V0VXNlcigpLmdldENvbnRlbnREZW5zaXR5KCk7XG5cdH1cblxuXHQvKipcblx0ICogRm9yIGEgZ2l2ZW4gc2VtYW50aWMgb2JqZWN0LCB0aGlzIG1ldGhvZCBjb25zaWRlcnMgYWxsIGFjdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZW1hbnRpYyBvYmplY3QgYW5kXG5cdCAqIHJldHVybnMgdGhlIG9uZSB0YWdnZWQgYXMgYSBcInByaW1hcnlBY3Rpb25cIi4gSWYgbm8gaW5ib3VuZCB0YWdnZWQgYXMgXCJwcmltYXJ5QWN0aW9uXCIgZXhpc3RzLCB0aGVuIGl0IHJldHVybnNcblx0ICogdGhlIGludGVudCBvZiB0aGUgZmlyc3QgaW5ib3VuZCAoYWZ0ZXIgc29ydGluZyBoYXMgYmVlbiBhcHBsaWVkKSBtYXRjaGluZyB0aGUgYWN0aW9uIFwiZGlzcGxheUZhY3RTaGVldFwiLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3QuXG5cdCAqIEBwYXJhbSBtUGFyYW1ldGVycyBTZWUgI0Nyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uI2dldExpbmtzIGZvciBkZXNjcmlwdGlvbi5cblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGludGVudCBpZiBpdCBleGlzdHMuXG5cdCAqL1xuXHRnZXRQcmltYXJ5SW50ZW50KHNTZW1hbnRpY09iamVjdDogc3RyaW5nLCBtUGFyYW1ldGVycz86IG9iamVjdCk6IFByb21pc2U8YW55PiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2Vcblx0XHRcdFx0LmdldFByaW1hcnlJbnRlbnQoc1NlbWFudGljT2JqZWN0LCBtUGFyYW1ldGVycylcblx0XHRcdFx0LmZhaWwoKG9FcnJvcjogYW55KSA9PiB7XG5cdFx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihgJHtvRXJyb3J9IHNhcC5mZS5jb3JlLnNlcnZpY2VzLlNoZWxsU2VydmljZXNGYWN0b3J5LmdldFByaW1hcnlJbnRlbnRgKSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKHJlc29sdmUpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdhaXQgZm9yIHRoZSByZW5kZXIgZXh0ZW5zaW9ucyBwbHVnaW4gdG8gYmUgbG9hZGVkLlxuXHQgKiBJZiB0cnVlIGlzIHJldHVybmVkIGJ5IHRoZSBwcm9taXNlIHdlIHdlcmUgYWJsZSB0byB3YWl0IGZvciBpdCwgb3RoZXJ3aXNlIHdlIGNvdWxkbid0IGFuZCBjYW5ub3QgcmVseSBvbiBpdC5cblx0ICovXG5cdHdhaXRGb3JQbHVnaW5zTG9hZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdGlmICghdGhpcy5zaGVsbFBsdWdpbk1hbmFnZXI/LmdldFBsdWdpbkxvYWRpbmdQcm9taXNlKSB7XG5cdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHRcdHRoaXMuc2hlbGxQbHVnaW5NYW5hZ2VyXG5cdFx0XHRcdFx0LmdldFBsdWdpbkxvYWRpbmdQcm9taXNlKFwiUmVuZGVyZXJFeHRlbnNpb25zXCIpXG5cdFx0XHRcdFx0LmZhaWwoKG9FcnJvcjogdW5rbm93bikgPT4ge1xuXHRcdFx0XHRcdFx0TG9nLmVycm9yKG9FcnJvciBhcyBzdHJpbmcsIFwic2FwLmZlLmNvcmUuc2VydmljZXMuU2hlbGxTZXJ2aWNlc0ZhY3Rvcnkud2FpdEZvclBsdWdpbnNMb2FkXCIpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQudGhlbigoKSA9PiByZXNvbHZlKHRydWUpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuXG4vKipcbiAqIFNlcnZpY2UgRmFjdG9yeSBmb3IgdGhlIFNoZWxsU2VydmljZXNcbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBTaGVsbFNlcnZpY2VzRmFjdG9yeSBleHRlbmRzIFNlcnZpY2VGYWN0b3J5PFNoZWxsU2VydmljZXNTZXR0aW5ncz4ge1xuXHQvKipcblx0ICogQ3JlYXRlcyBlaXRoZXIgYSBzdGFuZGFyZCBvciBhIG1vY2sgU2hlbGwgc2VydmljZSBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZ3VyYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBvU2VydmljZUNvbnRleHQgVGhlIHNoZWxsc2VydmljZSBjb250ZXh0XG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBmb3IgYSBzaGVsbCBzZXJ2aWNlIGltcGxlbWVudGF0aW9uXG5cdCAqIEBzZWUgU2VydmljZUZhY3RvcnkjY3JlYXRlSW5zdGFuY2Vcblx0ICovXG5cdGNyZWF0ZUluc3RhbmNlKG9TZXJ2aWNlQ29udGV4dDogU2VydmljZUNvbnRleHQ8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPik6IFByb21pc2U8SVNoZWxsU2VydmljZXM+IHtcblx0XHRvU2VydmljZUNvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIChzYXAudXNoZWxsLkNvbnRhaW5lciBhcyBDb250YWluZXIpO1xuXHRcdGNvbnN0IG9TaGVsbFNlcnZpY2UgPSBvU2VydmljZUNvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXJcblx0XHRcdD8gbmV3IFNoZWxsU2VydmljZXMob1NlcnZpY2VDb250ZXh0IGFzIFNlcnZpY2VDb250ZXh0PFJlcXVpcmVkPFNoZWxsU2VydmljZXNTZXR0aW5ncz4+KVxuXHRcdFx0OiBuZXcgU2hlbGxTZXJ2aWNlTW9jayhvU2VydmljZUNvbnRleHQpO1xuXHRcdHJldHVybiBvU2hlbGxTZXJ2aWNlLmluaXRQcm9taXNlLnRoZW4oKCkgPT4ge1xuXHRcdFx0Ly8gRW5yaWNoIHRoZSBhcHBDb21wb25lbnQgd2l0aCB0aGlzIG1ldGhvZFxuXHRcdFx0b1NlcnZpY2VDb250ZXh0LnNjb3BlT2JqZWN0LmdldFNoZWxsU2VydmljZXMgPSAoKSA9PiBvU2hlbGxTZXJ2aWNlO1xuXHRcdFx0cmV0dXJuIG9TaGVsbFNlcnZpY2U7XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2hlbGxTZXJ2aWNlc0ZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7OztFQWlHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQSxJQU1NQSxnQkFBZ0I7SUFBQTtJQUFBO01BQUE7SUFBQTtJQUFBO0lBQUEsT0FLckJDLElBQUksR0FBSixnQkFBTztNQUNOLElBQUksQ0FBQ0MsV0FBVyxHQUFHQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxJQUFJLENBQUM7TUFDeEMsSUFBSSxDQUFDQyxZQUFZLEdBQUcsTUFBTTtJQUMzQixDQUFDO0lBQUEsT0FFREMsUUFBUSxHQUFSLG1CQUFTO0lBQUEsRUFBbUI7TUFDM0IsT0FBT0gsT0FBTyxDQUFDQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFBQSxPQUVERyxpQkFBaUIsR0FBakIsNEJBQWtCO0lBQUEsRUFBbUI7TUFDcEMsT0FBT0osT0FBTyxDQUFDQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFBQSxPQUVESSxVQUFVLEdBQVYscUJBQVc7SUFBQSxFQUF5RDtNQUNuRTtJQUFBLENBQ0E7SUFBQSxPQUVEQyxrQkFBa0IsR0FBbEIsNkJBQW1CO0lBQUEsRUFBbUI7TUFDckMsT0FBT04sT0FBTyxDQUFDQyxPQUFPLENBQUNNLFNBQVMsQ0FB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
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log","sap/ui/core/service/Service","sap/ui/core/service/ServiceFactory"],function(e,t,n){"use strict";function i(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;r(e,t)}function r(e,t){r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,n){t.__proto__=n;return t};return r(e,t)}let s=function(e){i(t,e);function t(){return e.apply(this,arguments)||this}var n=t.prototype;n.init=function e(){this.initPromise=Promise.resolve(this);this.instanceType="mock"};n.getLinks=function e(){return Promise.resolve([])};n.getLinksWithCache=function e(){return Promise.resolve([])};n.toExternal=function e(){};n.getStartupAppState=function e(){return Promise.resolve(undefined)};n.backToPreviousApp=function e(){};n.hrefForExternal=function e(){return""};n.hrefForExternalAsync=function e(){return Promise.resolve({})};n.getAppState=function e(){return Promise.resolve({})};n.createEmptyAppState=function e(){return Promise.resolve({})};n.createEmptyAppStateAsync=function e(){return Promise.resolve({})};n.isNavigationSupported=function e(){return Promise.resolve({})};n.isInitialNavigation=function e(){return false};n.isInitialNavigationAsync=function e(){return Promise.resolve({})};n.expandCompactHash=function e(){return Promise.resolve({})};n.parseShellHash=function e(){return{}};n.splitHash=function e(){return Promise.resolve({})};n.constructShellHash=function e(){return""};n.setDirtyFlag=function e(){};n.registerDirtyStateProvider=function e(){};n.deregisterDirtyStateProvider=function e(){};n.createRenderer=function e(){return{}};n.getUser=function e(){return{}};n.hasUShell=function e(){return false};n.registerNavigationFilter=function e(){};n.unregisterNavigationFilter=function e(){};n.setBackNavigation=function e(){};n.setHierarchy=function e(){};n.setTitle=function e(){};n.getContentDensity=function e(){if(document.body.classList.contains("sapUiSizeCozy")){return"cozy"}else if(document.body.classList.contains("sapUiSizeCompact")){return"compact"}else{return""}};n.getPrimaryIntent=function e(){return Promise.resolve()};n.waitForPluginsLoad=function e(){return Promise.resolve(true)};return t}(t);function o(e){return new Promise((t,n)=>{e.done(t).fail(n)})}let c=function(t){i(n,t);function n(){return t.apply(this,arguments)||this}var r=n.prototype;r.init=function e(){const t=this.getContext();const n=t.scopeObject;this.oShellContainer=t.settings.shellContainer;this.instanceType="real";this.linksCache={};this.fnFindSemanticObjectsInCache=function(e){const t=e;const n=[];const i=[];for(let r=0;r<t.length;r++){if(!!t[r][0]&&!!t[r][0].semanticObject){if(this.linksCache[t[r][0].semanticObject]){n.push(this.linksCache[t[r][0].semanticObject].links);Object.defineProperty(e[r][0],"links",{value:this.linksCache[t[r][0].semanticObject].links})}else{i.push(t[r])}}}return{oldArgs:e,newArgs:i,cachedLinks:n}};this.initPromise=new Promise((e,t)=>{this.resolveFn=e;this.rejectFn=t});const i=this.oShellContainer.getServiceAsync("CrossApplicationNavigation");const r=this.oShellContainer.getServiceAsync("URLParsing");const s=this.oShellContainer.getServiceAsync("ShellNavigation");const o=this.oShellContainer.getServiceAsync("PluginManager");const c=n.getService("ShellUIService");Promise.all([i,r,s,c,o]).then(e=>{let[t,n,i,r,s]=e;this.crossAppNavService=t;this.urlParsingService=n;this.shellNavigation=i;this.shellUIService=r;this.shellPluginManager=s;this.resolveFn()}).catch(this.rejectFn)};r.getLinks=function e(t){return new Promise((e,n)=>{this.crossAppNavService.getLinks(t).fail(e=>{n(new Error(`${e} sap.fe.core.services.ShellServicesFactory.getLinks`))}).then(e)})};r.getLinksWithCache=function e(t){return new Promise((e,n)=>{if(t.length===0){e([])}else{const i=this.fnFindSemanticObjectsInCache(t);if(i.newArgs.length===0){e(i.cachedLinks)}else{this.crossAppNavService.getLinks(i.newArgs).fail(e=>{n(new Error(`${e} sap.fe.core.services.ShellServicesFactory.getLinksWithCache`))}).then(t=>{if(t.length!==0){const e={};for(let n=0;n<t.length;n++){if(t[n].length>0&&i.newArgs[n][0].links===undefined){e[i.newArgs[n][0].semanticObject]={links:t[n]};this.linksCache=Object.assign(this.linksCache,e)}}}if(i.cachedLinks.length===0){e(t)}else{const n=[];let r=0;for(let e=0;e<i.oldArgs.length;e++){if(r<t.length){if(t[r].length>0&&i.oldArgs[e][0].semanticObject===i.newArgs[r][0].semanticObject){n.push(t[r]);r++}else{n.push(i.oldArgs[e][0].links)}}else{n.push(i.oldArgs[e][0].links)}}e(n)}})}}})};r.getShellContainer=function e(){return this.oShellContainer};r.toExternal=function e(t,n){this.crossAppNavService.toExternal(t,n)};r.getStartupAppState=function e(t){return new Promise((e,n)=>{this.crossAppNavService.getStartupAppState(t).fail(e=>{n(new Error(`${e} sap.fe.core.services.ShellServicesFactory.getStartupAppState`))}).then(t=>e(t))})};r.backToPreviousApp=function e(){return this.crossAppNavService.backToPreviousApp()};r.hrefForExternal=function e(t,n,i){return this.crossAppNavService.hrefForExternal(t,n,!!i)};r.hrefForExternalAsync=function e(t,n){return this.crossAppNavService.hrefForExternalAsync(t,n)};r.getAppState=function e(t,n){return o(this.crossAppNavService.getAppState(t,n))};r.createEmptyAppState=function e(t){return this.crossAppNavService.createEmptyAppState(t)};r.createEmptyAppStateAsync=function e(t){return this.crossAppNavService.createEmptyAppStateAsync(t)};r.isNavigationSupported=function e(t,n){return o(this.crossAppNavService.isNavigationSupported(t,n))};r.isInitialNavigation=function e(){return this.crossAppNavService.isInitialNavigation()};r.isInitialNavigationAsync=function e(){return this.crossAppNavService.isInitialNavigationAsync()};r.expandCompactHash=function e(t){return this.crossAppNavService.expandCompactHash(t)};r.parseShellHash=function e(t){return this.urlParsingService.parseShellHash(t)};r.splitHash=function e(t){return this.urlParsingService.splitHash(t)};r.constructShellHash=function e(t){return this.urlParsingService.constructShellHash(t)};r.setDirtyFlag=function e(t){this.oShellContainer.setDirtyFlag(t)};r.registerDirtyStateProvider=function e(t){this.oShellContainer.registerDirtyStateProvider(t)};r.deregisterDirtyStateProvider=function e(t){this.oShellContainer.deregisterDirtyStateProvider(t)};r.createRenderer=function e(){return this.oShellContainer.createRenderer()};r.getUser=function e(){return this.oShellContainer.getUser()};r.hasUShell=function e(){return true};r.registerNavigationFilter=function e(t){this.shellNavigation.registerNavigationFilter(t)};r.unregisterNavigationFilter=function e(t){this.shellNavigation.unregisterNavigationFilter(t)};r.setBackNavigation=function e(t){this.shellUIService.setBackNavigation(t)};r.setHierarchy=function e(t){this.shellUIService.setHierarchy(t)};r.setTitle=function e(t){this.shellUIService.setTitle(t)};r.getContentDensity=function e(){return this.oShellContainer.getUser().getContentDensity()};r.getPrimaryIntent=function e(t,n){return new Promise((e,i)=>{this.crossAppNavService.getPrimaryIntent(t,n).fail(e=>{i(new Error(`${e} sap.fe.core.services.ShellServicesFactory.getPrimaryIntent`))}).then(e)})};r.waitForPluginsLoad=function t(){return new Promise(t=>{var n;if(!((n=this.shellPluginManager)!==null&&n!==void 0&&n.getPluginLoadingPromise)){t(false)}else{this.shellPluginManager.getPluginLoadingPromise("RendererExtensions").fail(n=>{e.error(n,"sap.fe.core.services.ShellServicesFactory.waitForPluginsLoad");t(false)}).then(()=>t(true))}})};return n}(t);let a=function(e){i(t,e);function t(){return e.apply(this,arguments)||this}var n=t.prototype;n.createInstance=function e(t){t.settings.shellContainer=sap.ushell&&sap.ushell.Container;const n=t.settings.shellContainer?new c(t):new s(t);return n.initPromise.then(()=>{t.scopeObject.getShellServices=()=>n;return n})};return t}(n);return a},false);
|
|
5
|
+
sap.ui.define(["sap/base/Log","sap/ui/core/service/Service","sap/ui/core/service/ServiceFactory"],function(e,t,n){"use strict";function i(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;r(e,t)}function r(e,t){r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,n){t.__proto__=n;return t};return r(e,t)}let s=function(e){i(t,e);function t(){return e.apply(this,arguments)||this}var n=t.prototype;n.init=function e(){this.initPromise=Promise.resolve(this);this.instanceType="mock"};n.getLinks=function e(){return Promise.resolve([])};n.getLinksWithCache=function e(){return Promise.resolve([])};n.toExternal=function e(){};n.getStartupAppState=function e(){return Promise.resolve(undefined)};n.backToPreviousApp=function e(){};n.hrefForExternal=function e(){return""};n.getHash=function e(){return window.location.href};n.hrefForExternalAsync=function e(){return Promise.resolve({})};n.getAppState=function e(){return Promise.resolve({})};n.createEmptyAppState=function e(){return Promise.resolve({})};n.createEmptyAppStateAsync=function e(){return Promise.resolve({})};n.isNavigationSupported=function e(){return Promise.resolve({})};n.isInitialNavigation=function e(){return false};n.isInitialNavigationAsync=function e(){return Promise.resolve({})};n.expandCompactHash=function e(){return Promise.resolve({})};n.parseShellHash=function e(){return{}};n.splitHash=function e(){return Promise.resolve({})};n.constructShellHash=function e(){return""};n.setDirtyFlag=function e(){};n.registerDirtyStateProvider=function e(){};n.deregisterDirtyStateProvider=function e(){};n.createRenderer=function e(){return{}};n.getUser=function e(){return{}};n.hasUShell=function e(){return false};n.registerNavigationFilter=function e(){};n.unregisterNavigationFilter=function e(){};n.setBackNavigation=function e(){};n.setHierarchy=function e(){};n.setTitle=function e(){};n.getContentDensity=function e(){if(document.body.classList.contains("sapUiSizeCozy")){return"cozy"}else if(document.body.classList.contains("sapUiSizeCompact")){return"compact"}else{return""}};n.getPrimaryIntent=function e(){return Promise.resolve()};n.waitForPluginsLoad=function e(){return Promise.resolve(true)};return t}(t);function o(e){return new Promise((t,n)=>{e.done(t).fail(n)})}let c=function(t){i(n,t);function n(){return t.apply(this,arguments)||this}var r=n.prototype;r.init=function e(){const t=this.getContext();const n=t.scopeObject;this.oShellContainer=t.settings.shellContainer;this.instanceType="real";this.linksCache={};this.fnFindSemanticObjectsInCache=function(e){const t=e;const n=[];const i=[];for(let r=0;r<t.length;r++){if(!!t[r][0]&&!!t[r][0].semanticObject){if(this.linksCache[t[r][0].semanticObject]){n.push(this.linksCache[t[r][0].semanticObject].links);Object.defineProperty(e[r][0],"links",{value:this.linksCache[t[r][0].semanticObject].links})}else{i.push(t[r])}}}return{oldArgs:e,newArgs:i,cachedLinks:n}};this.initPromise=new Promise((e,t)=>{this.resolveFn=e;this.rejectFn=t});const i=this.oShellContainer.getServiceAsync("CrossApplicationNavigation");const r=this.oShellContainer.getServiceAsync("URLParsing");const s=this.oShellContainer.getServiceAsync("ShellNavigation");const o=this.oShellContainer.getServiceAsync("PluginManager");const c=n.getService("ShellUIService");Promise.all([i,r,s,c,o]).then(e=>{let[t,n,i,r,s]=e;this.crossAppNavService=t;this.urlParsingService=n;this.shellNavigation=i;this.shellUIService=r;this.shellPluginManager=s;this.resolveFn()}).catch(this.rejectFn)};r.getLinks=function e(t){return new Promise((e,n)=>{this.crossAppNavService.getLinks(t).fail(e=>{n(new Error(`${e} sap.fe.core.services.ShellServicesFactory.getLinks`))}).then(e)})};r.getLinksWithCache=function e(t){return new Promise((e,n)=>{if(t.length===0){e([])}else{const i=this.fnFindSemanticObjectsInCache(t);if(i.newArgs.length===0){e(i.cachedLinks)}else{this.crossAppNavService.getLinks(i.newArgs).fail(e=>{n(new Error(`${e} sap.fe.core.services.ShellServicesFactory.getLinksWithCache`))}).then(t=>{if(t.length!==0){const e={};for(let n=0;n<t.length;n++){if(t[n].length>0&&i.newArgs[n][0].links===undefined){e[i.newArgs[n][0].semanticObject]={links:t[n]};this.linksCache=Object.assign(this.linksCache,e)}}}if(i.cachedLinks.length===0){e(t)}else{const n=[];let r=0;for(let e=0;e<i.oldArgs.length;e++){if(r<t.length){if(t[r].length>0&&i.oldArgs[e][0].semanticObject===i.newArgs[r][0].semanticObject){n.push(t[r]);r++}else{n.push(i.oldArgs[e][0].links)}}else{n.push(i.oldArgs[e][0].links)}}e(n)}})}}})};r.getShellContainer=function e(){return this.oShellContainer};r.toExternal=function e(t,n){this.crossAppNavService.toExternal(t,n)};r.getStartupAppState=function e(t){return new Promise((e,n)=>{this.crossAppNavService.getStartupAppState(t).fail(e=>{n(new Error(`${e} sap.fe.core.services.ShellServicesFactory.getStartupAppState`))}).then(t=>e(t))})};r.backToPreviousApp=function e(){return this.crossAppNavService.backToPreviousApp()};r.hrefForExternal=function e(t,n,i){return this.crossAppNavService.hrefForExternal(t,n,!!i)};r.hrefForExternalAsync=function e(t,n){return this.crossAppNavService.hrefForExternalAsync(t,n)};r.getAppState=function e(t,n){return o(this.crossAppNavService.getAppState(t,n))};r.createEmptyAppState=function e(t){return this.crossAppNavService.createEmptyAppState(t)};r.createEmptyAppStateAsync=function e(t){return this.crossAppNavService.createEmptyAppStateAsync(t)};r.isNavigationSupported=function e(t,n){return o(this.crossAppNavService.isNavigationSupported(t,n))};r.isInitialNavigation=function e(){return this.crossAppNavService.isInitialNavigation()};r.isInitialNavigationAsync=function e(){return this.crossAppNavService.isInitialNavigationAsync()};r.expandCompactHash=function e(t){return this.crossAppNavService.expandCompactHash(t)};r.getHash=function e(){return`#${this.urlParsingService.getShellHash(window.location.href)}`};r.parseShellHash=function e(t){return this.urlParsingService.parseShellHash(t)};r.splitHash=function e(t){return this.urlParsingService.splitHash(t)};r.constructShellHash=function e(t){return this.urlParsingService.constructShellHash(t)};r.setDirtyFlag=function e(t){this.oShellContainer.setDirtyFlag(t)};r.registerDirtyStateProvider=function e(t){this.oShellContainer.registerDirtyStateProvider(t)};r.deregisterDirtyStateProvider=function e(t){this.oShellContainer.deregisterDirtyStateProvider(t)};r.createRenderer=function e(){return this.oShellContainer.createRenderer()};r.getUser=function e(){return this.oShellContainer.getUser()};r.hasUShell=function e(){return true};r.registerNavigationFilter=function e(t){this.shellNavigation.registerNavigationFilter(t)};r.unregisterNavigationFilter=function e(t){this.shellNavigation.unregisterNavigationFilter(t)};r.setBackNavigation=function e(t){this.shellUIService.setBackNavigation(t)};r.setHierarchy=function e(t){this.shellUIService.setHierarchy(t)};r.setTitle=function e(t){this.shellUIService.setTitle(t)};r.getContentDensity=function e(){return this.oShellContainer.getUser().getContentDensity()};r.getPrimaryIntent=function e(t,n){return new Promise((e,i)=>{this.crossAppNavService.getPrimaryIntent(t,n).fail(e=>{i(new Error(`${e} sap.fe.core.services.ShellServicesFactory.getPrimaryIntent`))}).then(e)})};r.waitForPluginsLoad=function t(){return new Promise(t=>{var n;if(!((n=this.shellPluginManager)!==null&&n!==void 0&&n.getPluginLoadingPromise)){t(false)}else{this.shellPluginManager.getPluginLoadingPromise("RendererExtensions").fail(n=>{e.error(n,"sap.fe.core.services.ShellServicesFactory.waitForPluginsLoad");t(false)}).then(()=>t(true))}})};return n}(t);let a=function(e){i(t,e);function t(){return e.apply(this,arguments)||this}var n=t.prototype;n.createInstance=function e(t){t.settings.shellContainer=sap.ushell&&sap.ushell.Container;const n=t.settings.shellContainer?new c(t):new s(t);return n.initPromise.then(()=>{t.scopeObject.getShellServices=()=>n;return n})};return t}(n);return a},false);
|
|
6
6
|
//# sourceMappingURL=ShellServicesFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellServicesFactory.js","names":["sap","ui","define","Log","Service","ServiceFactory","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","ShellServiceMock","_Service","apply","this","arguments","_proto","init","initPromise","Promise","resolve","instanceType","getLinks","getLinksWithCache","toExternal","getStartupAppState","undefined","backToPreviousApp","hrefForExternal","hrefForExternalAsync","getAppState","createEmptyAppState","createEmptyAppStateAsync","isNavigationSupported","isInitialNavigation","isInitialNavigationAsync","expandCompactHash","parseShellHash","splitHash","constructShellHash","setDirtyFlag","registerDirtyStateProvider","deregisterDirtyStateProvider","createRenderer","getUser","hasUShell","registerNavigationFilter","unregisterNavigationFilter","setBackNavigation","setHierarchy","setTitle","getContentDensity","document","body","classList","contains","getPrimaryIntent","waitForPluginsLoad","wrapJQueryPromise","jqueryPromise","reject","done","fail","ShellServices","_Service2","_proto2","oContext","getContext","oComponent","scopeObject","oShellContainer","settings","shellContainer","linksCache","fnFindSemanticObjectsInCache","oArgs","_oArgs","aCachedSemanticObjects","aNonCachedSemanticObjects","i","length","semanticObject","push","links","defineProperty","value","oldArgs","newArgs","cachedLinks","resolveFn","rejectFn","oCrossAppNavServicePromise","getServiceAsync","oUrlParsingServicePromise","oShellNavigationServicePromise","oShellPluginManagerPromise","oShellUIServicePromise","getService","all","then","_ref","oCrossAppNavService","oUrlParsingService","oShellNavigation","oShellUIService","oShellPluginManager","crossAppNavService","urlParsingService","shellNavigation","shellUIService","shellPluginManager","catch","oError","Error","oCacheResults","aLinks","oSemanticObjectsLinks","assign","aMergedLinks","j","k","getShellContainer","oNavArgumentsArr","startupAppState","bAsync","sAppStateKey","sHashFragment","sHash","oNewShellHash","bDirty","fnDirtyStateProvider","fnNavFilter","fnCallBack","aHierarchyLevels","sTitle","sSemanticObject","mParameters","_this$shellPluginMana","getPluginLoadingPromise","error","ShellServicesFactory","_ServiceFactory","_proto3","createInstance","oServiceContext","ushell","Container","oShellService","getShellServices"],"sources":["ShellServicesFactory-dbg.js"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ShellServicesFactory.js","names":["sap","ui","define","Log","Service","ServiceFactory","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","ShellServiceMock","_Service","apply","this","arguments","_proto","init","initPromise","Promise","resolve","instanceType","getLinks","getLinksWithCache","toExternal","getStartupAppState","undefined","backToPreviousApp","hrefForExternal","getHash","window","location","href","hrefForExternalAsync","getAppState","createEmptyAppState","createEmptyAppStateAsync","isNavigationSupported","isInitialNavigation","isInitialNavigationAsync","expandCompactHash","parseShellHash","splitHash","constructShellHash","setDirtyFlag","registerDirtyStateProvider","deregisterDirtyStateProvider","createRenderer","getUser","hasUShell","registerNavigationFilter","unregisterNavigationFilter","setBackNavigation","setHierarchy","setTitle","getContentDensity","document","body","classList","contains","getPrimaryIntent","waitForPluginsLoad","wrapJQueryPromise","jqueryPromise","reject","done","fail","ShellServices","_Service2","_proto2","oContext","getContext","oComponent","scopeObject","oShellContainer","settings","shellContainer","linksCache","fnFindSemanticObjectsInCache","oArgs","_oArgs","aCachedSemanticObjects","aNonCachedSemanticObjects","i","length","semanticObject","push","links","defineProperty","value","oldArgs","newArgs","cachedLinks","resolveFn","rejectFn","oCrossAppNavServicePromise","getServiceAsync","oUrlParsingServicePromise","oShellNavigationServicePromise","oShellPluginManagerPromise","oShellUIServicePromise","getService","all","then","_ref","oCrossAppNavService","oUrlParsingService","oShellNavigation","oShellUIService","oShellPluginManager","crossAppNavService","urlParsingService","shellNavigation","shellUIService","shellPluginManager","catch","oError","Error","oCacheResults","aLinks","oSemanticObjectsLinks","assign","aMergedLinks","j","k","getShellContainer","oNavArgumentsArr","startupAppState","bAsync","sAppStateKey","sHashFragment","getShellHash","sHash","oNewShellHash","bDirty","fnDirtyStateProvider","fnNavFilter","fnCallBack","aHierarchyLevels","sTitle","sSemanticObject","mParameters","_this$shellPluginMana","getPluginLoadingPromise","error","ShellServicesFactory","_ServiceFactory","_proto3","createInstance","oServiceContext","ushell","Container","oShellService","getShellServices"],"sources":["ShellServicesFactory-dbg.js"],"mappings":"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"}
|