@sapui5/sap.fe.core 1.103.0 → 1.106.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 +5 -5
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +121 -0
- package/src/sap/fe/core/ActionRuntime.ts +122 -0
- package/src/sap/fe/core/AppComponent.js +24 -11
- package/src/sap/fe/core/AppComponent.ts +17 -5
- package/src/sap/fe/core/AppStateHandler.js +74 -62
- package/src/sap/fe/core/AppStateHandler.ts +24 -29
- package/src/sap/fe/core/BaseController.js +2 -2
- package/src/sap/fe/core/CommonUtils.js +147 -180
- package/src/sap/fe/core/CommonUtils.ts +166 -193
- package/src/sap/fe/core/ExtensionAPI.js +2 -2
- package/src/sap/fe/core/PageController.js +2 -2
- package/src/sap/fe/core/TemplateComponent.js +21 -10
- package/src/sap/fe/core/TemplateComponent.ts +3 -0
- package/src/sap/fe/core/TemplateModel.js +2 -2
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +11 -3
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +7 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +194 -43
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +162 -24
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +14 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.ts +5 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +609 -227
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +268 -119
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +111 -76
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +96 -76
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +723 -637
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +361 -398
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -2
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +83 -55
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +42 -44
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +29 -27
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +35 -30
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +171 -74
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +167 -76
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +5 -21
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -17
- package/src/sap/fe/core/controllerextensions/MassEdit.js +3 -3
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -2
- package/src/sap/fe/core/controllerextensions/PageReady.js +3 -3
- package/src/sap/fe/core/controllerextensions/PageReady.ts +5 -1
- package/src/sap/fe/core/controllerextensions/Paginator.js +13 -13
- package/src/sap/fe/core/controllerextensions/Paginator.ts +11 -11
- package/src/sap/fe/core/controllerextensions/Placeholder.js +2 -2
- package/src/sap/fe/core/controllerextensions/Routing.js +2 -2
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +154 -123
- package/src/sap/fe/core/controllerextensions/Share.ts +93 -95
- package/src/sap/fe/core/controllerextensions/SideEffects.js +157 -97
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +151 -95
- package/src/sap/fe/core/controllerextensions/ViewState.js +151 -80
- package/src/sap/fe/core/controllerextensions/ViewState.ts +95 -93
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +9 -9
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +6 -7
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +26 -11
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +30 -11
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +57 -40
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +55 -47
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +31 -32
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1376 -914
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +654 -714
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +372 -326
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +210 -276
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +309 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +320 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +670 -521
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +537 -535
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +85 -65
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +16 -21
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +25 -13
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +53 -43
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +18 -27
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +9 -15
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +19 -3
- package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +35 -0
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +26 -16
- package/src/sap/fe/core/controls/Any.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js +2 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +5 -5
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -3
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
- package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
- package/src/sap/fe/core/controls/FileWrapper.js +8 -3
- package/src/sap/fe/core/controls/FileWrapper.ts +5 -1
- package/src/sap/fe/core/controls/FilterBar.js +2 -2
- package/src/sap/fe/core/controls/FormElementWrapper.js +2 -2
- package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -1
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +48 -17
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +2 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -2
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -3
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +2 -2
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +2 -2
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +1 -1
- package/src/sap/fe/core/converters/ConverterContext.js +23 -2
- package/src/sap/fe/core/converters/ConverterContext.ts +34 -9
- package/src/sap/fe/core/converters/ManifestSettings.js +19 -18
- package/src/sap/fe/core/converters/ManifestSettings.ts +53 -47
- package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js +32 -10
- package/src/sap/fe/core/converters/MetaModelConverter.ts +42 -19
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +5 -2
- package/src/sap/fe/core/converters/annotations/DataField.ts +5 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +69 -23
- package/src/sap/fe/core/converters/controls/Common/Action.js +98 -51
- package/src/sap/fe/core/converters/controls/Common/Action.ts +121 -44
- package/src/sap/fe/core/converters/controls/Common/Chart.js +31 -34
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +26 -34
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +43 -7
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +60 -33
- package/src/sap/fe/core/converters/controls/Common/Form.js +8 -6
- package/src/sap/fe/core/converters/controls/Common/Form.ts +11 -14
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +16 -15
- package/src/sap/fe/core/converters/controls/Common/Table.js +188 -157
- package/src/sap/fe/core/converters/controls/Common/Table.ts +279 -230
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +4 -4
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +57 -21
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +71 -18
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +30 -8
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +24 -7
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +43 -34
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +37 -25
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +85 -49
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +74 -50
- package/src/sap/fe/core/converters/helpers/Aggregation.js +54 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +56 -8
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +6 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +10 -2
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +182 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +167 -0
- package/src/sap/fe/core/converters/helpers/ID.js +3 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +1 -0
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/Key.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -3
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +8 -14
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +6 -9
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +31 -31
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +54 -47
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +44 -15
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +64 -30
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/StandardFormatter.js +13 -6
- package/src/sap/fe/core/formatters/StandardFormatter.ts +20 -14
- package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/fpm/Component.js +33 -7
- package/src/sap/fe/core/fpm/Component.ts +14 -0
- package/src/sap/fe/core/helpers/AnnotationEnum.js +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +5 -4
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +4 -3
- package/src/sap/fe/core/helpers/BindingToolkit.js +56 -24
- package/src/sap/fe/core/helpers/BindingToolkit.ts +67 -21
- package/src/sap/fe/core/helpers/ClassSupport.js +31 -3
- package/src/sap/fe/core/helpers/ClassSupport.ts +24 -1
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -1
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -1
- package/src/sap/fe/core/helpers/LoaderUtils.js +39 -0
- package/src/sap/fe/core/helpers/LoaderUtils.ts +14 -0
- package/src/sap/fe/core/helpers/MassEditHelper.js +475 -99
- package/src/sap/fe/core/helpers/MassEditHelper.ts +468 -155
- package/src/sap/fe/core/helpers/MessageStrip.js +81 -0
- package/src/sap/fe/core/helpers/MessageStrip.ts +79 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +82 -36
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +52 -36
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +146 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper.ts +128 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/Synchronization.js +1 -1
- package/src/sap/fe/core/helpers/ToES6Promise.js +32 -0
- package/src/sap/fe/core/helpers/ToES6Promise.ts +19 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +16 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.ts +3 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +109 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +47 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +119 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +98 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +105 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +89 -0
- package/src/sap/fe/core/jsx-runtime/jsx.js +12 -90
- package/src/sap/fe/core/jsx-runtime/jsx.ts +24 -85
- package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +179 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +150 -0
- package/src/sap/fe/core/library.js +2 -2
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +4 -41
- package/src/sap/fe/core/messagebundle_ar.properties +22 -45
- package/src/sap/fe/core/messagebundle_bg.properties +22 -45
- package/src/sap/fe/core/messagebundle_ca.properties +22 -45
- package/src/sap/fe/core/messagebundle_cs.properties +22 -45
- package/src/sap/fe/core/messagebundle_cy.properties +21 -44
- package/src/sap/fe/core/messagebundle_da.properties +22 -45
- package/src/sap/fe/core/messagebundle_de.properties +22 -45
- package/src/sap/fe/core/messagebundle_el.properties +22 -45
- package/src/sap/fe/core/messagebundle_en.properties +21 -44
- package/src/sap/fe/core/messagebundle_en_GB.properties +21 -44
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +21 -42
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -40
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -42
- package/src/sap/fe/core/messagebundle_es.properties +22 -45
- package/src/sap/fe/core/messagebundle_es_MX.properties +22 -45
- package/src/sap/fe/core/messagebundle_et.properties +22 -45
- package/src/sap/fe/core/messagebundle_fi.properties +22 -45
- package/src/sap/fe/core/messagebundle_fr.properties +21 -44
- package/src/sap/fe/core/messagebundle_fr_CA.properties +20 -43
- package/src/sap/fe/core/messagebundle_hi.properties +22 -45
- package/src/sap/fe/core/messagebundle_hr.properties +22 -45
- package/src/sap/fe/core/messagebundle_hu.properties +22 -45
- package/src/sap/fe/core/messagebundle_id.properties +22 -45
- package/src/sap/fe/core/messagebundle_it.properties +22 -45
- package/src/sap/fe/core/messagebundle_iw.properties +22 -45
- package/src/sap/fe/core/messagebundle_ja.properties +22 -45
- package/src/sap/fe/core/messagebundle_kk.properties +22 -45
- package/src/sap/fe/core/messagebundle_ko.properties +27 -50
- package/src/sap/fe/core/messagebundle_lt.properties +22 -45
- package/src/sap/fe/core/messagebundle_lv.properties +22 -45
- package/src/sap/fe/core/messagebundle_ms.properties +22 -45
- package/src/sap/fe/core/messagebundle_nl.properties +24 -47
- package/src/sap/fe/core/messagebundle_no.properties +22 -45
- package/src/sap/fe/core/messagebundle_pl.properties +23 -46
- package/src/sap/fe/core/messagebundle_pt.properties +23 -46
- package/src/sap/fe/core/messagebundle_pt_PT.properties +22 -45
- package/src/sap/fe/core/messagebundle_ro.properties +22 -45
- package/src/sap/fe/core/messagebundle_ru.properties +22 -45
- package/src/sap/fe/core/messagebundle_sh.properties +22 -45
- package/src/sap/fe/core/messagebundle_sk.properties +22 -45
- package/src/sap/fe/core/messagebundle_sl.properties +22 -45
- package/src/sap/fe/core/messagebundle_sv.properties +22 -45
- package/src/sap/fe/core/messagebundle_th.properties +20 -43
- package/src/sap/fe/core/messagebundle_tr.properties +22 -45
- package/src/sap/fe/core/messagebundle_uk.properties +22 -45
- package/src/sap/fe/core/messagebundle_vi.properties +22 -45
- package/src/sap/fe/core/messagebundle_zh_CN.properties +22 -45
- package/src/sap/fe/core/messagebundle_zh_TW.properties +22 -45
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +102 -74
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +62 -63
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +11 -8
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -7
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ShellServicesFactory.js +22 -2
- package/src/sap/fe/core/services/ShellServicesFactory.ts +19 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +2 -2
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +251 -200
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +160 -144
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
- package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +4 -3
- package/src/sap/fe/core/templating/CommonFormatters.ts +5 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +8 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +5 -2
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js +4 -5
- package/src/sap/fe/core/templating/EntitySetHelper.ts +4 -3
- package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js +34 -15
- package/src/sap/fe/core/templating/FilterHelper.ts +28 -12
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js +5 -3
- package/src/sap/fe/core/templating/UIFormatters.ts +7 -5
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
- package/src/sap/fe/core/type/Email.js +2 -2
|
@@ -68,4 +68,4 @@ sap.ui.define(["../../helpers/StableIdHelper"], function (StableIdHelper) {
|
|
|
68
68
|
_exports.KeyHelper = KeyHelper;
|
|
69
69
|
return _exports;
|
|
70
70
|
}, false);
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJLZXlIZWxwZXIiLCJnZW5lcmF0ZUtleUZyb21EYXRhRmllbGQiLCJvRGF0YUZpZWxkIiwiZ2V0U3RhYmxlSWRQYXJ0RnJvbURhdGFGaWVsZCIsInZhbGlkYXRlS2V5Iiwia2V5IiwicGF0dGVybiIsImV4ZWMiLCJFcnJvciIsImdldFNlbGVjdGlvbkZpZWxkS2V5RnJvbVBhdGgiLCJmdWxsUHJvcGVydHlQYXRoIiwicmVwbGFjZSIsImdldFBhdGhGcm9tU2VsZWN0aW9uRmllbGRLZXkiLCJzZWxlY3Rpb25GaWVsZEtleSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiS2V5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IGdldFN0YWJsZUlkUGFydEZyb21EYXRhRmllbGQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuXG4vKipcbiAqIFRoZSBLZXlIZWxwZXIgaXMgdXNlZCBmb3IgZGVhbGluZyB3aXRoIEtleSBpbiB0aGUgY29uY2VybiBvZiB0aGUgZmxleGlibGUgcHJvZ3JhbW1pbmcgbW9kZWxcbiAqL1xuZXhwb3J0IGNsYXNzIEtleUhlbHBlciB7XG5cdC8qKlxuXHQgKiBSZXR1cm5zIGEgZ2VuZXJhdGVkIGtleSBmb3IgRGF0YUZpZWxkcyB0byBiZSB1c2VkIGluIHRoZSBmbGV4aWJsZSBwcm9ncmFtbWluZyBtb2RlbC5cblx0ICpcblx0ICogQHBhcmFtIG9EYXRhRmllbGQgRGF0YUZpZWxkIHRvIGdlbmVyYXRlIHRoZSBrZXkgZm9yXG5cdCAqIEByZXR1cm5zIFJldHVybnMgYSB0aHJvdWdoIFN0YWJsZUlkSGVscGVyIGdlbmVyYXRlZCBrZXlcblx0ICovXG5cdHN0YXRpYyBnZW5lcmF0ZUtleUZyb21EYXRhRmllbGQob0RhdGFGaWVsZDogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGdldFN0YWJsZUlkUGFydEZyb21EYXRhRmllbGQob0RhdGFGaWVsZCkhO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRocm93cyBhIEVycm9yIGlmIGFueSBvdGhlciBjaGFyYWN0ZXIgdGhlbiBhQS16WiwgMC05LCAnOicsICdfJyBvciAnLScgaXMgdXNlZC5cblx0ICpcblx0ICogQHBhcmFtIGtleSBTdHJpbmcgdG8gY2hlY2sgdmFsaWRpdHkgb25cblx0ICovXG5cdHN0YXRpYyB2YWxpZGF0ZUtleShrZXk6IHN0cmluZykge1xuXHRcdGNvbnN0IHBhdHRlcm4gPSAvW15BLVphLXowLTlfXFwtOl0vO1xuXHRcdGlmIChwYXR0ZXJuLmV4ZWMoa2V5KSkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGtleTogJHtrZXl9IC0gb25seSAnQS1aYS16MC05Xy06JyBhcmUgYWxsb3dlZGApO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBrZXkgZm9yIGEgc2VsZWN0aW9uIGZpZWxkIHJlcXVpcmVkIGZvciBhZGFwdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGZ1bGxQcm9wZXJ0eVBhdGggVGhlIGZ1bGwgcHJvcGVydHkgcGF0aCAod2l0aG91dCBlbnRpdHlUeXBlKVxuXHQgKiBAcmV0dXJucyBUaGUga2V5IG9mIHRoZSBzZWxlY3Rpb24gZmllbGRcblx0ICovXG5cdHN0YXRpYyBnZXRTZWxlY3Rpb25GaWVsZEtleUZyb21QYXRoKGZ1bGxQcm9wZXJ0eVBhdGg6IHN0cmluZykge1xuXHRcdHJldHVybiBmdWxsUHJvcGVydHlQYXRoLnJlcGxhY2UoLyhcXCp8XFwrKT9cXC8vZywgXCI6OlwiKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBwYXRoIGZvciBhIHNlbGVjdGlvbiBmaWVsZCByZXF1aXJlZCBmb3IgYWRhcHRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBzZWxlY3Rpb25GaWVsZEtleSBUaGUga2V5IG9mIHRoZSBzZWxlY3Rpb24gZmllbGRcblx0ICogQHJldHVybnMgVGhlIGZ1bGwgcHJvcGVydHkgcGF0aFxuXHQgKi9cblx0c3RhdGljIGdldFBhdGhGcm9tU2VsZWN0aW9uRmllbGRLZXkoc2VsZWN0aW9uRmllbGRLZXk6IHN0cmluZykge1xuXHRcdHJldHVybiBzZWxlY3Rpb25GaWVsZEtleS5yZXBsYWNlKC86Oi9nLCBcIi9cIik7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7OztFQUdBO0FBQ0E7QUFDQTtNQUNhQSxTOzs7OztJQUNaO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtjQUNRQyx3QixHQUFQLGtDQUFnQ0MsVUFBaEMsRUFBNEU7TUFDM0UsT0FBT0MsNEJBQTRCLENBQUNELFVBQUQsQ0FBbkM7SUFDQTtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7OztjQUNRRSxXLEdBQVAscUJBQW1CQyxHQUFuQixFQUFnQztNQUMvQixJQUFNQyxPQUFPLEdBQUcsa0JBQWhCOztNQUNBLElBQUlBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhRixHQUFiLENBQUosRUFBdUI7UUFDdEIsTUFBTSxJQUFJRyxLQUFKLHdCQUEwQkgsR0FBMUIsd0NBQU47TUFDQTtJQUNEO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Y0FDUUksNEIsR0FBUCxzQ0FBb0NDLGdCQUFwQyxFQUE4RDtNQUM3RCxPQUFPQSxnQkFBZ0IsQ0FBQ0MsT0FBakIsQ0FBeUIsYUFBekIsRUFBd0MsSUFBeEMsQ0FBUDtJQUNBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Y0FDUUMsNEIsR0FBUCxzQ0FBb0NDLGlCQUFwQyxFQUErRDtNQUM5RCxPQUFPQSxpQkFBaUIsQ0FBQ0YsT0FBbEIsQ0FBMEIsS0FBMUIsRUFBaUMsR0FBakMsQ0FBUDtJQUNBLEMifQ==
|
|
@@ -95,4 +95,4 @@ sap.ui.define([], function () {
|
|
|
95
95
|
_exports.getFilterDefinitionsFromSelectionVariant = getFilterDefinitionsFromSelectionVariant;
|
|
96
96
|
return _exports;
|
|
97
97
|
}, false);
|
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRSYW5nZURlZmluaXRpb24iLCJyYW5nZSIsInByb3BlcnR5VHlwZSIsIm9wZXJhdG9yIiwiYkluY2x1ZGUiLCJTaWduIiwiT3B0aW9uIiwicmFuZ2VMb3ciLCJpbmRleE9mIiwiRGF0ZSIsIkxvdyIsInJhbmdlSGlnaCIsIkhpZ2giLCJnZXRGaWx0ZXJEZWZpbml0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50Iiwic2VsZWN0aW9uVmFyaWFudCIsImFGaWx0ZXJEZWZzIiwiU2VsZWN0T3B0aW9ucyIsImZvckVhY2giLCJzZWxlY3RPcHRpb24iLCJQcm9wZXJ0eU5hbWUiLCJSYW5nZXMiLCJsZW5ndGgiLCJwdXNoIiwicHJvcGVydHlQYXRoIiwidmFsdWUiLCIkdGFyZ2V0IiwidHlwZSIsInJhbmdlcyIsIm1hcCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2VsZWN0aW9uVmFyaWFudEhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlbGVjdGlvblJhbmdlVHlwZSwgU2VsZWN0aW9uVmFyaWFudFR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5cbmV4cG9ydCB0eXBlIFJhbmdlRGVmaW5pdGlvbiA9IHtcblx0b3BlcmF0b3I6IHN0cmluZztcblx0cmFuZ2VMb3c6IGFueTtcblx0cmFuZ2VIaWdoPzogYW55O1xufTtcblxuZXhwb3J0IHR5cGUgRmlsdGVyRGVmaW5pdGlvbiA9IHtcblx0cHJvcGVydHlQYXRoOiBzdHJpbmc7XG5cdHByb3BlcnR5VHlwZTogc3RyaW5nO1xuXHRyYW5nZXM6IFJhbmdlRGVmaW5pdGlvbltdO1xufTtcblxuZnVuY3Rpb24gZ2V0UmFuZ2VEZWZpbml0aW9uKHJhbmdlOiBTZWxlY3Rpb25SYW5nZVR5cGUsIHByb3BlcnR5VHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogUmFuZ2VEZWZpbml0aW9uIHtcblx0bGV0IG9wZXJhdG9yOiBTdHJpbmc7XG5cdGNvbnN0IGJJbmNsdWRlID0gcmFuZ2UuU2lnbiA9PT0gXCJVSS5TZWxlY3Rpb25SYW5nZVNpZ25UeXBlL0lcIiA/IHRydWUgOiBmYWxzZTtcblxuXHRzd2l0Y2ggKHJhbmdlLk9wdGlvbiBhcyBzdHJpbmcpIHtcblx0XHRjYXNlIFwiVUkuU2VsZWN0aW9uUmFuZ2VPcHRpb25UeXBlL0JUXCI6XG5cdFx0XHRvcGVyYXRvciA9IGJJbmNsdWRlID8gXCJCVFwiIDogXCJOQlwiO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIFwiVUkuU2VsZWN0aW9uUmFuZ2VPcHRpb25UeXBlL0NQXCI6XG5cdFx0XHRvcGVyYXRvciA9IGJJbmNsdWRlID8gXCJDb250YWluc1wiIDogXCJOb3RDb250YWluc1wiO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIFwiVUkuU2VsZWN0aW9uUmFuZ2VPcHRpb25UeXBlL0VRXCI6XG5cdFx0XHRvcGVyYXRvciA9IGJJbmNsdWRlID8gXCJFUVwiIDogXCJORVwiO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIFwiVUkuU2VsZWN0aW9uUmFuZ2VPcHRpb25UeXBlL0dFXCI6XG5cdFx0XHRvcGVyYXRvciA9IGJJbmNsdWRlID8gXCJHRVwiIDogXCJMVFwiO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIFwiVUkuU2VsZWN0aW9uUmFuZ2VPcHRpb25UeXBlL0dUXCI6XG5cdFx0XHRvcGVyYXRvciA9IGJJbmNsdWRlID8gXCJHVFwiIDogXCJMRVwiO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIFwiVUkuU2VsZWN0aW9uUmFuZ2VPcHRpb25UeXBlL0xFXCI6XG5cdFx0XHRvcGVyYXRvciA9IGJJbmNsdWRlID8gXCJMRVwiIDogXCJHVFwiO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIFwiVUkuU2VsZWN0aW9uUmFuZ2VPcHRpb25UeXBlL0xUXCI6XG5cdFx0XHRvcGVyYXRvciA9IGJJbmNsdWRlID8gXCJMVFwiIDogXCJHRVwiO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIFwiVUkuU2VsZWN0aW9uUmFuZ2VPcHRpb25UeXBlL05CXCI6XG5cdFx0XHRvcGVyYXRvciA9IGJJbmNsdWRlID8gXCJOQlwiIDogXCJCVFwiO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIFwiVUkuU2VsZWN0aW9uUmFuZ2VPcHRpb25UeXBlL05FXCI6XG5cdFx0XHRvcGVyYXRvciA9IGJJbmNsdWRlID8gXCJORVwiIDogXCJFUVwiO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRjYXNlIFwiVUkuU2VsZWN0aW9uUmFuZ2VPcHRpb25UeXBlL05QXCI6XG5cdFx0XHRvcGVyYXRvciA9IGJJbmNsdWRlID8gXCJOb3RDb250YWluc1wiIDogXCJDb250YWluc1wiO1xuXHRcdFx0YnJlYWs7XG5cblx0XHRkZWZhdWx0OlxuXHRcdFx0b3BlcmF0b3IgPSBcIkVRXCI7XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdG9wZXJhdG9yOiBvcGVyYXRvciBhcyBzdHJpbmcsXG5cdFx0cmFuZ2VMb3c6IHByb3BlcnR5VHlwZSAmJiBwcm9wZXJ0eVR5cGUuaW5kZXhPZihcIkVkbS5EYXRlXCIpID09PSAwID8gbmV3IERhdGUocmFuZ2UuTG93KSA6IHJhbmdlLkxvdyxcblx0XHRyYW5nZUhpZ2g6IHJhbmdlLkhpZ2ggJiYgcHJvcGVydHlUeXBlICYmIHByb3BlcnR5VHlwZS5pbmRleE9mKFwiRWRtLkRhdGVcIikgPT09IDAgPyBuZXcgRGF0ZShyYW5nZS5IaWdoKSA6IHJhbmdlLkhpZ2hcblx0fTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBTZWxlY3Rpb25WYXJpYW50IGFubm90YXRpb25zIGFuZCBjcmVhdGVzIHRoZSBjb3JyZXNwb25kaW5nIGZpbHRlciBkZWZpbml0aW9ucy5cbiAqXG4gKiBAcGFyYW0gc2VsZWN0aW9uVmFyaWFudCBTZWxlY3Rpb25WYXJpYW50IGFubm90YXRpb25cbiAqIEByZXR1cm5zIFJldHVybnMgYW4gYXJyYXkgb2YgZmlsdGVyIGRlZmluaXRpb25zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIFNlbGVjdGlvblZhcmlhbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWx0ZXJEZWZpbml0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50KHNlbGVjdGlvblZhcmlhbnQ6IFNlbGVjdGlvblZhcmlhbnRUeXBlKTogRmlsdGVyRGVmaW5pdGlvbltdIHtcblx0Y29uc3QgYUZpbHRlckRlZnM6IEZpbHRlckRlZmluaXRpb25bXSA9IFtdO1xuXG5cdGlmIChzZWxlY3Rpb25WYXJpYW50LlNlbGVjdE9wdGlvbnMpIHtcblx0XHRzZWxlY3Rpb25WYXJpYW50LlNlbGVjdE9wdGlvbnMuZm9yRWFjaCgoc2VsZWN0T3B0aW9uKSA9PiB7XG5cdFx0XHRpZiAoc2VsZWN0T3B0aW9uLlByb3BlcnR5TmFtZSAmJiBzZWxlY3RPcHRpb24uUmFuZ2VzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0YUZpbHRlckRlZnMucHVzaCh7XG5cdFx0XHRcdFx0cHJvcGVydHlQYXRoOiBzZWxlY3RPcHRpb24uUHJvcGVydHlOYW1lLnZhbHVlLFxuXHRcdFx0XHRcdHByb3BlcnR5VHlwZTogc2VsZWN0T3B0aW9uLlByb3BlcnR5TmFtZS4kdGFyZ2V0LnR5cGUsXG5cdFx0XHRcdFx0cmFuZ2VzOiBzZWxlY3RPcHRpb24uUmFuZ2VzLm1hcCgocmFuZ2UpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBnZXRSYW5nZURlZmluaXRpb24ocmFuZ2UsIHNlbGVjdE9wdGlvbi5Qcm9wZXJ0eU5hbWU/LiR0YXJnZXQudHlwZSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRyZXR1cm4gYUZpbHRlckRlZnM7XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7OztFQWNBLFNBQVNBLGtCQUFULENBQTRCQyxLQUE1QixFQUF1REMsWUFBdkQsRUFBMEc7SUFDekcsSUFBSUMsUUFBSjtJQUNBLElBQU1DLFFBQVEsR0FBR0gsS0FBSyxDQUFDSSxJQUFOLEtBQWUsNkJB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
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { SelectionRangeType, SelectionVariant } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
1
|
+
import type { SelectionRangeType, SelectionVariantType } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
3
2
|
|
|
4
3
|
export type RangeDefinition = {
|
|
5
4
|
operator: string;
|
|
@@ -75,7 +74,7 @@ function getRangeDefinition(range: SelectionRangeType, propertyType: string | un
|
|
|
75
74
|
* @param selectionVariant SelectionVariant annotation
|
|
76
75
|
* @returns Returns an array of filter definitions corresponding to the SelectionVariant.
|
|
77
76
|
*/
|
|
78
|
-
export function getFilterDefinitionsFromSelectionVariant(selectionVariant:
|
|
77
|
+
export function getFilterDefinitionsFromSelectionVariant(selectionVariant: SelectionVariantType): FilterDefinition[] {
|
|
79
78
|
const aFilterDefs: FilterDefinition[] = [];
|
|
80
79
|
|
|
81
80
|
if (selectionVariant.SelectOptions) {
|
|
@@ -174,4 +174,4 @@ sap.ui.define(["sap/fe/core/converters/helpers/Key"], function (Key) {
|
|
|
174
174
|
_exports.getFormActions = getFormActions;
|
|
175
175
|
return _exports;
|
|
176
176
|
}, false);
|
|
177
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvcm1NZW51QWN0aW9ucy50cyJdLCJuYW1lcyI6WyJBY3Rpb25UeXBlIiwiZ2V0VmlzaWJpbGl0eUVuYWJsZW1lbnRGb3JtTWVudUFjdGlvbnMiLCJhY3Rpb25zIiwibWVudUFjdGlvblZpc2libGUiLCJtZW51QWN0aW9uVmlzaWJsZVBhdGhzIiwiZm9yRWFjaCIsIm1lbnVBY3Rpb25zIiwibWVudSIsImxlbmd0aCIsIm1lbnVJdGVtIiwibWVudUl0ZW1WaXNpYmxlIiwidmlzaWJsZSIsInZhbHVlT2YiLCJwdXNoIiwidG9TdHJpbmciLCJtZXJnZUZvcm1BY3Rpb25zIiwic291cmNlIiwidGFyZ2V0Iiwia2V5IiwiaGFzT3duUHJvcGVydHkiLCJnZXRGb3JtSGlkZGVuQWN0aW9ucyIsImZhY2V0RGVmaW5pdGlvbiIsImNvbnZlcnRlckNvbnRleHQiLCJmb3JtQWN0aW9ucyIsImdldEZvcm1BY3Rpb25zIiwiYW5ub3RhdGlvbnMiLCJnZXRFbnRpdHlUeXBlIiwiVUkiLCJoaWRkZW5Gb3JtQWN0aW9ucyIsInByb3BlcnR5IiwiJFR5cGUiLCJEYXRhIiwiZGF0YUZpZWxkIiwiQWN0aW9uIiwiSGlkZGVuIiwidHlwZSIsIkRlZmF1bHQiLCJLZXlIZWxwZXIiLCJnZW5lcmF0ZUtleUZyb21EYXRhRmllbGQiLCJ0ZXJtIiwibWFuaWZlc3RXcmFwcGVyIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwidGFyZ2V0VmFsdWUiLCJtYW5pZmVzdEZvcm1Db250YWluZXIiLCJGYWNldHMiLCJmYWNldCIsIlRhcmdldCIsInZhbHVlIiwiZ2V0Rm9ybUNvbnRhaW5lciIsImFjdGlvbktleSIsImZhY2V0TmFtZSIsImZ1bGx5UXVhbGlmaWVkTmFtZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7OztNQUtLQSxVOzthQUFBQSxVO0FBQUFBLElBQUFBLFU7S0FBQUEsVSxLQUFBQSxVOztBQW1CRSxNQUFNQyxzQ0FBc0MsR0FBRyxVQUFDQyxPQUFELEVBQXlDO0FBQzlG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QixNQUFwQiwwREFBRyxzQkFBeUJDLEtBQXZDO0FBQ0FKLE1BQUFBLHFCQUFxQixHQUFHSCxlQUFlLENBQUNRLGdCQUFoQixDQUFpQ04sV0FBakMsQ0FBeEI7O0FBQ0Esb0NBQUlDLHFCQUFKLG1EQUFJLHVCQUF1QnpDLE9BQTNCLEVBQW9DO0FBQ25DLGFBQUssSUFBTStDLFNBQVgsSUFBd0JOLHFCQUFxQixDQUFDekMsT0FBOUMsRUFBdUQ7QUFDdEQ7QUFDQXlDLFVBQUFBLHFCQUFxQixDQUFDekMsT0FBdEIsQ0FBOEIrQyxTQUE5QixFQUF5Q0MsU0FBekMsR0FBcUQ3QixlQUFlLENBQUM4QixrQkFBckU7QUFDQTs7QUFDRGpELFFBQUFBLE9BQU8sR0FBR3lDLHFCQUFxQixDQUFDekMsT0FBaEM7QUFDQTtBQUNEOztBQUNELFdBQU9BLE9BQVA7QUFDQSxHQTlCTSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGYWNldFR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlQWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBDb25maWd1cmFibGVSZWNvcmQsIFBvc2l0aW9uYWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQ29uZmlndXJhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBLZXlIZWxwZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0tleVwiO1xuaW1wb3J0IHR5cGUgeyBNYW5pZmVzdEFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uL0NvbnZlcnRlckNvbnRleHRcIjtcblxuZW51bSBBY3Rpb25UeXBlIHtcblx0RGVmYXVsdCA9IFwiRGVmYXVsdFwiXG59XG50eXBlIEZvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdGZpZWxkczogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0Rm9ybUVsZW1lbnQ+O1xuXHRhY3Rpb25zPzogQ29uZmlndXJhYmxlUmVjb3JkPEJhc2VBY3Rpb24+O1xufTtcbnR5cGUgTWFuaWZlc3RGb3JtRWxlbWVudCA9IFBvc2l0aW9uYWJsZSAmIHtcblx0dGVtcGxhdGU6IHN0cmluZztcblx0bGFiZWw/OiBzdHJpbmc7XG59O1xudHlwZSBGb3JtTWVudUFjdGlvbiA9XG5cdHwgQmFzZUFjdGlvblxuXHR8IHtcblx0XHRcdHZpc2libGU/OiBzdHJpbmdbXTtcblx0XHRcdGVuYWJsZWQ/OiBzdHJpbmdbXTtcblx0XHRcdG1lbnU/OiAoc3RyaW5nIHwgQmFzZUFjdGlvbilbXTtcblx0ICB9O1xuXG5leHBvcnQgY29uc3QgZ2V0VmlzaWJpbGl0eUVuYWJsZW1lbnRGb3JtTWVudUFjdGlvbnMgPSAoYWN0aW9uczogQmFzZUFjdGlvbltdKTogQmFzZUFjdGlvbltdID0+IHtcblx0bGV0IG1lbnVBY3Rpb25WaXNpYmxlOiBzdHJpbmcgfCBib29sZWFuLCBtZW51QWN0aW9uVmlzaWJsZVBhdGhzOiBzdHJpbmdbXTtcblx0YWN0aW9ucy5mb3JFYWNoKChtZW51QWN0aW9uczogRm9ybU1lbnVBY3Rpb24pID0+IHtcblx0XHRtZW51QWN0aW9uVmlzaWJsZSA9IGZhbHNlO1xuXHRcdG1lbnVBY3Rpb25WaXNpYmxlUGF0aHMgPSBbXTtcblx0XHRpZiAobWVudUFjdGlvbnM/Lm1lbnU/Lmxlbmd0aCkge1xuXHRcdFx0bWVudUFjdGlvbnM/Lm1lbnU/LmZvckVhY2goKG1lbnVJdGVtOiBhbnkpID0+IHtcblx0XHRcdFx0Y29uc3QgbWVudUl0ZW1WaXNpYmxlID0gbWVudUl0ZW0udmlzaWJsZTtcblx0XHRcdFx0aWYgKCFtZW51QWN0aW9uVmlzaWJsZSkge1xuXHRcdFx0XHRcdGlmICgobWVudUl0ZW1WaXNpYmxlICYmIHR5cGVvZiBtZW51SXRlbVZpc2libGUgPT09IFwiYm9vbGVhblwiKSB8fCBtZW51SXRlbVZpc2libGUudmFsdWVPZigpID09PSBcInRydWVcIikge1xuXHRcdFx0XHRcdFx0bWVudUFjdGlvblZpc2libGUgPSB0cnVlO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAobWVudUl0ZW1WaXNpYmxlICYmIG1lbnVJdGVtVmlzaWJsZS52YWx1ZU9mKCkgIT09IFwiZmFsc2VcIikge1xuXHRcdFx0XHRcdFx0bWVudUFjdGlvblZpc2libGVQYXRocy5wdXNoKG1lbnVJdGVtVmlzaWJsZS52YWx1ZU9mKCkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRpZiAobWVudUFjdGlvblZpc2libGVQYXRocy5sZW5ndGgpIHtcblx0XHRcdFx0bWVudUFjdGlvbnMudmlzaWJsZSA9IG1lbnVBY3Rpb25WaXNpYmxlUGF0aHM7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRtZW51QWN0aW9ucy52aXNpYmxlID0gbWVudUFjdGlvblZpc2libGUudG9TdHJpbmcoKTtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gYWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCBtZXJnZUZvcm1BY3Rpb25zID0gKFxuXHRzb3VyY2U6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEFjdGlvbj4sXG5cdHRhcmdldDogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPlxuKTogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPiA9PiB7XG5cdGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuXHRcdGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuXHRcdFx0dGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHNvdXJjZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGb3JtSGlkZGVuQWN0aW9ucyA9IChmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10gPT4ge1xuXHRjb25zdCBmb3JtQWN0aW9uczogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPiA9IGdldEZvcm1BY3Rpb25zKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCkgfHwgW10sXG5cdFx0YW5ub3RhdGlvbnM6IGFueSA9IGNvbnZlcnRlckNvbnRleHQ/LmdldEVudGl0eVR5cGUoKT8uYW5ub3RhdGlvbnM/LlVJO1xuXHRjb25zdCBoaWRkZW5Gb3JtQWN0aW9uczogQmFzZUFjdGlvbltdID0gW107XG5cdGZvciAoY29uc3QgcHJvcGVydHkgaW4gYW5ub3RhdGlvbnMpIHtcblx0XHRpZiAoYW5ub3RhdGlvbnNbcHJvcGVydHldPy4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GaWVsZEdyb3VwVHlwZVwiKSB7XG5cdFx0XHRhbm5vdGF0aW9uc1twcm9wZXJ0eV0/LkRhdGEuZm9yRWFjaCgoZGF0YUZpZWxkOiBhbnkpID0+IHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdGRhdGFGaWVsZC4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIiAmJlxuXHRcdFx0XHRcdGZvcm1BY3Rpb25zLmhhc093blByb3BlcnR5KGBEYXRhRmllbGRGb3JBY3Rpb246OiR7ZGF0YUZpZWxkLkFjdGlvbn1gKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRpZiAoZGF0YUZpZWxkPy5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRoaWRkZW5Gb3JtQWN0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EZWZhdWx0LFxuXHRcdFx0XHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRcdGRhdGFGaWVsZC4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIiAmJlxuXHRcdFx0XHRcdGZvcm1BY3Rpb25zLmhhc093blByb3BlcnR5KGBEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb246OiR7ZGF0YUZpZWxkLkFjdGlvbn1gKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRpZiAoZGF0YUZpZWxkPy5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRoaWRkZW5Gb3JtQWN0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EZWZhdWx0LFxuXHRcdFx0XHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0YW5ub3RhdGlvbnNbcHJvcGVydHldPy50ZXJtID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLklkZW50aWZpY2F0aW9uXCIgfHxcblx0XHRcdGFubm90YXRpb25zW3Byb3BlcnR5XT8udGVybSA9PT0gXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuU3RhdHVzSW5mb1wiXG5cdFx0KSB7XG5cdFx0XHRhbm5vdGF0aW9uc1twcm9wZXJ0eV0/LmZvckVhY2goKGRhdGFGaWVsZDogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRkYXRhRmllbGQuJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCIgJiZcblx0XHRcdFx0XHRmb3JtQWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShgRGF0YUZpZWxkRm9yQWN0aW9uOjoke2RhdGFGaWVsZC5BY3Rpb259YClcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0aWYgKGRhdGFGaWVsZD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0aGlkZGVuRm9ybUFjdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdCxcblx0XHRcdFx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZClcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRkYXRhRmllbGQuJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uXCIgJiZcblx0XHRcdFx0XHRmb3JtQWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uOjoke2RhdGFGaWVsZC5BY3Rpb259YClcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0aWYgKGRhdGFGaWVsZD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0aGlkZGVuRm9ybUFjdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdCxcblx0XHRcdFx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZClcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBoaWRkZW5Gb3JtQWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGb3JtQWN0aW9ucyA9IChmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+ID0+IHtcblx0Y29uc3QgbWFuaWZlc3RXcmFwcGVyID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKTtcblx0bGV0IHRhcmdldFZhbHVlOiBzdHJpbmcsIG1hbmlmZXN0Rm9ybUNvbnRhaW5lcjogRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbjtcblx0bGV0IGFjdGlvbnM6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEFjdGlvbj4gPSB7fTtcblx0aWYgKGZhY2V0RGVmaW5pdGlvbj8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ29sbGVjdGlvbkZhY2V0XCIpIHtcblx0XHRpZiAoZmFjZXREZWZpbml0aW9uPy5GYWNldHMpIHtcblx0XHRcdGZhY2V0RGVmaW5pdGlvbj8uRmFjZXRzLmZvckVhY2goKGZhY2V0OiBhbnkpID0+IHtcblx0XHRcdFx0dGFyZ2V0VmFsdWUgPSBmYWNldD8uVGFyZ2V0Py52YWx1ZTtcblx0XHRcdFx0bWFuaWZlc3RGb3JtQ29udGFpbmVyID0gbWFuaWZlc3RXcmFwcGVyLmdldEZvcm1Db250YWluZXIodGFyZ2V0VmFsdWUpO1xuXHRcdFx0XHRpZiAobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5hY3Rpb25zKSB7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBhY3Rpb25LZXkgaW4gbWFuaWZlc3RGb3JtQ29udGFpbmVyLmFjdGlvbnMpIHtcblx0XHRcdFx0XHRcdC8vIHN0b3JlIHRoZSBjb3JyZWN0IGZhY2V0IGFuIGFjdGlvbiBpcyBiZWxvbmdpbmcgdG8gZm9yIHRoZSBjYXNlIGl0J3MgYW4gaW5saW5lIGZvcm0gYWN0aW9uXG5cdFx0XHRcdFx0XHRtYW5pZmVzdEZvcm1Db250YWluZXIuYWN0aW9uc1thY3Rpb25LZXldLmZhY2V0TmFtZSA9IGZhY2V0LmZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YWN0aW9ucyA9IG1lcmdlRm9ybUFjdGlvbnMobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5hY3Rpb25zIGFzIGFueSwgYWN0aW9ucyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSBlbHNlIGlmIChmYWNldERlZmluaXRpb24/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlJlZmVyZW5jZUZhY2V0XCIpIHtcblx0XHR0YXJnZXRWYWx1ZSA9IGZhY2V0RGVmaW5pdGlvbj8uVGFyZ2V0Py52YWx1ZTtcblx0XHRtYW5pZmVzdEZvcm1Db250YWluZXIgPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Rm9ybUNvbnRhaW5lcih0YXJnZXRWYWx1ZSk7XG5cdFx0aWYgKG1hbmlmZXN0Rm9ybUNvbnRhaW5lcj8uYWN0aW9ucykge1xuXHRcdFx0Zm9yIChjb25zdCBhY3Rpb25LZXkgaW4gbWFuaWZlc3RGb3JtQ29udGFpbmVyLmFjdGlvbnMpIHtcblx0XHRcdFx0Ly8gc3RvcmUgdGhlIGNvcnJlY3QgZmFjZXQgYW4gYWN0aW9uIGlzIGJlbG9uZ2luZyB0byBmb3IgdGhlIGNhc2UgaXQncyBhbiBpbmxpbmUgZm9ybSBhY3Rpb25cblx0XHRcdFx0bWFuaWZlc3RGb3JtQ29udGFpbmVyLmFjdGlvbnNbYWN0aW9uS2V5XS5mYWNldE5hbWUgPSBmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRcdFx0fVxuXHRcdFx0YWN0aW9ucyA9IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5hY3Rpb25zIGFzIGFueTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGFjdGlvbnM7XG59O1xuIl19
|
|
177
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25UeXBlIiwiZ2V0VmlzaWJpbGl0eUVuYWJsZW1lbnRGb3JtTWVudUFjdGlvbnMiLCJhY3Rpb25zIiwibWVudUFjdGlvblZpc2libGUiLCJtZW51QWN0aW9uVmlzaWJsZVBhdGhzIiwiZm9yRWFjaCIsIm1lbnVBY3Rpb25zIiwibWVudSIsImxlbmd0aCIsIm1lbnVJdGVtIiwibWVudUl0ZW1WaXNpYmxlIiwidmlzaWJsZSIsInZhbHVlT2YiLCJwdXNoIiwidG9TdHJpbmciLCJtZXJnZUZvcm1BY3Rpb25zIiwic291cmNlIiwidGFyZ2V0Iiwia2V5IiwiaGFzT3duUHJvcGVydHkiLCJnZXRGb3JtSGlkZGVuQWN0aW9ucyIsImZhY2V0RGVmaW5pdGlvbiIsImNvbnZlcnRlckNvbnRleHQiLCJmb3JtQWN0aW9ucyIsImdldEZvcm1BY3Rpb25zIiwiYW5ub3RhdGlvbnMiLCJnZXRFbnRpdHlUeXBlIiwiVUkiLCJoaWRkZW5Gb3JtQWN0aW9ucyIsInByb3BlcnR5IiwiJFR5cGUiLCJEYXRhIiwiZGF0YUZpZWxkIiwiQWN0aW9uIiwiSGlkZGVuIiwidHlwZSIsIkRlZmF1bHQiLCJLZXlIZWxwZXIiLCJnZW5lcmF0ZUtleUZyb21EYXRhRmllbGQiLCJ0ZXJtIiwibWFuaWZlc3RXcmFwcGVyIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwidGFyZ2V0VmFsdWUiLCJtYW5pZmVzdEZvcm1Db250YWluZXIiLCJGYWNldHMiLCJmYWNldCIsIlRhcmdldCIsInZhbHVlIiwiZ2V0Rm9ybUNvbnRhaW5lciIsImFjdGlvbktleSIsImZhY2V0TmFtZSIsImZ1bGx5UXVhbGlmaWVkTmFtZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRm9ybU1lbnVBY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmFjZXRUeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQmFzZUFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlndXJhYmxlUmVjb3JkLCBQb3NpdGlvbmFibGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgS2V5SGVscGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9LZXlcIjtcbmltcG9ydCB0eXBlIHsgTWFuaWZlc3RBY3Rpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5cbmVudW0gQWN0aW9uVHlwZSB7XG5cdERlZmF1bHQgPSBcIkRlZmF1bHRcIlxufVxudHlwZSBGb3JtTWFuaWZlc3RDb25maWd1cmF0aW9uID0ge1xuXHRmaWVsZHM6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEZvcm1FbGVtZW50Pjtcblx0YWN0aW9ucz86IENvbmZpZ3VyYWJsZVJlY29yZDxCYXNlQWN0aW9uPjtcbn07XG50eXBlIE1hbmlmZXN0Rm9ybUVsZW1lbnQgPSBQb3NpdGlvbmFibGUgJiB7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdGxhYmVsPzogc3RyaW5nO1xufTtcbnR5cGUgRm9ybU1lbnVBY3Rpb24gPVxuXHR8IEJhc2VBY3Rpb25cblx0fCB7XG5cdFx0XHR2aXNpYmxlPzogc3RyaW5nW107XG5cdFx0XHRlbmFibGVkPzogc3RyaW5nW107XG5cdFx0XHRtZW51PzogKHN0cmluZyB8IEJhc2VBY3Rpb24pW107XG5cdCAgfTtcblxuZXhwb3J0IGNvbnN0IGdldFZpc2liaWxpdHlFbmFibGVtZW50Rm9ybU1lbnVBY3Rpb25zID0gKGFjdGlvbnM6IEJhc2VBY3Rpb25bXSk6IEJhc2VBY3Rpb25bXSA9PiB7XG5cdGxldCBtZW51QWN0aW9uVmlzaWJsZTogc3RyaW5nIHwgYm9vbGVhbiwgbWVudUFjdGlvblZpc2libGVQYXRoczogc3RyaW5nW107XG5cdGFjdGlvbnMuZm9yRWFjaCgobWVudUFjdGlvbnM6IEZvcm1NZW51QWN0aW9uKSA9PiB7XG5cdFx0bWVudUFjdGlvblZpc2libGUgPSBmYWxzZTtcblx0XHRtZW51QWN0aW9uVmlzaWJsZVBhdGhzID0gW107XG5cdFx0aWYgKG1lbnVBY3Rpb25zPy5tZW51Py5sZW5ndGgpIHtcblx0XHRcdG1lbnVBY3Rpb25zPy5tZW51Py5mb3JFYWNoKChtZW51SXRlbTogYW55KSA9PiB7XG5cdFx0XHRcdGNvbnN0IG1lbnVJdGVtVmlzaWJsZSA9IG1lbnVJdGVtLnZpc2libGU7XG5cdFx0XHRcdGlmICghbWVudUFjdGlvblZpc2libGUpIHtcblx0XHRcdFx0XHRpZiAoKG1lbnVJdGVtVmlzaWJsZSAmJiB0eXBlb2YgbWVudUl0ZW1WaXNpYmxlID09PSBcImJvb2xlYW5cIikgfHwgbWVudUl0ZW1WaXNpYmxlLnZhbHVlT2YoKSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdFx0XHRcdG1lbnVBY3Rpb25WaXNpYmxlID0gdHJ1ZTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKG1lbnVJdGVtVmlzaWJsZSAmJiBtZW51SXRlbVZpc2libGUudmFsdWVPZigpICE9PSBcImZhbHNlXCIpIHtcblx0XHRcdFx0XHRcdG1lbnVBY3Rpb25WaXNpYmxlUGF0aHMucHVzaChtZW51SXRlbVZpc2libGUudmFsdWVPZigpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0aWYgKG1lbnVBY3Rpb25WaXNpYmxlUGF0aHMubGVuZ3RoKSB7XG5cdFx0XHRcdG1lbnVBY3Rpb25zLnZpc2libGUgPSBtZW51QWN0aW9uVmlzaWJsZVBhdGhzO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWVudUFjdGlvbnMudmlzaWJsZSA9IG1lbnVBY3Rpb25WaXNpYmxlLnRvU3RyaW5nKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIGFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgbWVyZ2VGb3JtQWN0aW9ucyA9IChcblx0c291cmNlOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+LFxuXHR0YXJnZXQ6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEFjdGlvbj5cbik6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEFjdGlvbj4gPT4ge1xuXHRmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcblx0XHRpZiAoc291cmNlLmhhc093blByb3BlcnR5KGtleSkpIHtcblx0XHRcdHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG5cdFx0fVxuXHR9XG5cdHJldHVybiBzb3VyY2U7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9ybUhpZGRlbkFjdGlvbnMgPSAoZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdID0+IHtcblx0Y29uc3QgZm9ybUFjdGlvbnM6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEFjdGlvbj4gPSBnZXRGb3JtQWN0aW9ucyhmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQpIHx8IFtdLFxuXHRcdGFubm90YXRpb25zOiBhbnkgPSBjb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlUeXBlKCk/LmFubm90YXRpb25zPy5VSTtcblx0Y29uc3QgaGlkZGVuRm9ybUFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRmb3IgKGNvbnN0IHByb3BlcnR5IGluIGFubm90YXRpb25zKSB7XG5cdFx0aWYgKGFubm90YXRpb25zW3Byb3BlcnR5XT8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRmllbGRHcm91cFR5cGVcIikge1xuXHRcdFx0YW5ub3RhdGlvbnNbcHJvcGVydHldPy5EYXRhLmZvckVhY2goKGRhdGFGaWVsZDogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRkYXRhRmllbGQuJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCIgJiZcblx0XHRcdFx0XHRmb3JtQWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShgRGF0YUZpZWxkRm9yQWN0aW9uOjoke2RhdGFGaWVsZC5BY3Rpb259YClcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0aWYgKGRhdGFGaWVsZD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0aGlkZGVuRm9ybUFjdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdCxcblx0XHRcdFx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZClcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRkYXRhRmllbGQuJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uXCIgJiZcblx0XHRcdFx0XHRmb3JtQWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uOjoke2RhdGFGaWVsZC5BY3Rpb259YClcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0aWYgKGRhdGFGaWVsZD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0aGlkZGVuRm9ybUFjdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdCxcblx0XHRcdFx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZClcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIGlmIChcblx0XHRcdGFubm90YXRpb25zW3Byb3BlcnR5XT8udGVybSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5JZGVudGlmaWNhdGlvblwiIHx8XG5cdFx0XHRhbm5vdGF0aW9uc1twcm9wZXJ0eV0/LnRlcm0gPT09IFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlN0YXR1c0luZm9cIlxuXHRcdCkge1xuXHRcdFx0YW5ub3RhdGlvbnNbcHJvcGVydHldPy5mb3JFYWNoKChkYXRhRmllbGQ6IGFueSkgPT4ge1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0ZGF0YUZpZWxkLiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckFjdGlvblwiICYmXG5cdFx0XHRcdFx0Zm9ybUFjdGlvbnMuaGFzT3duUHJvcGVydHkoYERhdGFGaWVsZEZvckFjdGlvbjo6JHtkYXRhRmllbGQuQWN0aW9ufWApXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGlmIChkYXRhRmllbGQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdGhpZGRlbkZvcm1BY3Rpb25zLnB1c2goe1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRlZmF1bHQsXG5cdFx0XHRcdFx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdFx0ZGF0YUZpZWxkLiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblwiICYmXG5cdFx0XHRcdFx0Zm9ybUFjdGlvbnMuaGFzT3duUHJvcGVydHkoYERhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbjo6JHtkYXRhRmllbGQuQWN0aW9ufWApXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGlmIChkYXRhRmllbGQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdGhpZGRlbkZvcm1BY3Rpb25zLnB1c2goe1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRlZmF1bHQsXG5cdFx0XHRcdFx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gaGlkZGVuRm9ybUFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9ybUFjdGlvbnMgPSAoZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPiA9PiB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdGxldCB0YXJnZXRWYWx1ZTogc3RyaW5nLCBtYW5pZmVzdEZvcm1Db250YWluZXI6IEZvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb247XG5cdGxldCBhY3Rpb25zOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+ID0ge307XG5cdGlmIChmYWNldERlZmluaXRpb24/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNvbGxlY3Rpb25GYWNldFwiKSB7XG5cdFx0aWYgKGZhY2V0RGVmaW5pdGlvbj8uRmFjZXRzKSB7XG5cdFx0XHRmYWNldERlZmluaXRpb24/LkZhY2V0cy5mb3JFYWNoKChmYWNldDogYW55KSA9PiB7XG5cdFx0XHRcdHRhcmdldFZhbHVlID0gZmFjZXQ/LlRhcmdldD8udmFsdWU7XG5cdFx0XHRcdG1hbmlmZXN0Rm9ybUNvbnRhaW5lciA9IG1hbmlmZXN0V3JhcHBlci5nZXRGb3JtQ29udGFpbmVyKHRhcmdldFZhbHVlKTtcblx0XHRcdFx0aWYgKG1hbmlmZXN0Rm9ybUNvbnRhaW5lcj8uYWN0aW9ucykge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgYWN0aW9uS2V5IGluIG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5hY3Rpb25zKSB7XG5cdFx0XHRcdFx0XHQvLyBzdG9yZSB0aGUgY29ycmVjdCBmYWNldCBhbiBhY3Rpb24gaXMgYmVsb25naW5nIHRvIGZvciB0aGUgY2FzZSBpdCdzIGFuIGlubGluZSBmb3JtIGFjdGlvblxuXHRcdFx0XHRcdFx0bWFuaWZlc3RGb3JtQ29udGFpbmVyLmFjdGlvbnNbYWN0aW9uS2V5XS5mYWNldE5hbWUgPSBmYWNldC5mdWxseVF1YWxpZmllZE5hbWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGFjdGlvbnMgPSBtZXJnZUZvcm1BY3Rpb25zKG1hbmlmZXN0Rm9ybUNvbnRhaW5lcj8uYWN0aW9ucyBhcyBhbnksIGFjdGlvbnMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoZmFjZXREZWZpbml0aW9uPy4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5SZWZlcmVuY2VGYWNldFwiKSB7XG5cdFx0dGFyZ2V0VmFsdWUgPSBmYWNldERlZmluaXRpb24/LlRhcmdldD8udmFsdWU7XG5cdFx0bWFuaWZlc3RGb3JtQ29udGFpbmVyID0gbWFuaWZlc3RXcmFwcGVyLmdldEZvcm1Db250YWluZXIodGFyZ2V0VmFsdWUpO1xuXHRcdGlmIChtYW5pZmVzdEZvcm1Db250YWluZXI/LmFjdGlvbnMpIHtcblx0XHRcdGZvciAoY29uc3QgYWN0aW9uS2V5IGluIG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5hY3Rpb25zKSB7XG5cdFx0XHRcdC8vIHN0b3JlIHRoZSBjb3JyZWN0IGZhY2V0IGFuIGFjdGlvbiBpcyBiZWxvbmdpbmcgdG8gZm9yIHRoZSBjYXNlIGl0J3MgYW4gaW5saW5lIGZvcm0gYWN0aW9uXG5cdFx0XHRcdG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5hY3Rpb25zW2FjdGlvbktleV0uZmFjZXROYW1lID0gZmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0XHRcdH1cblx0XHRcdGFjdGlvbnMgPSBtYW5pZmVzdEZvcm1Db250YWluZXIuYWN0aW9ucyBhcyBhbnk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBhY3Rpb25zO1xufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7OztNQU9LQSxVOzthQUFBQSxVO0lBQUFBLFU7S0FBQUEsVSxLQUFBQSxVOztFQW1CRSxJQUFNQyxzQ0FBc0MsR0FBRyxVQUFDQyxPQUFELEVBQXlDO0lBQzlGLElBQUlDLGlCQUFKLEVBQXlDQyxzQkFBekM7SUFDQUYsT0FBTyxDQUFDRyxPQUFSLENBQWdCLFVBQUNDLFdBQUQsRUFBaUM7TUFBQTs7TUFDaERILGlCQUFpQixHQUFHLEtBQXBCO01BQ0FDLHNCQUFzQixHQUFHLEVBQXpCOztNQUNBLElBQUlFLFdBQUosYUFBSUEsV0FBSixvQ0FBSUEsV0FBVyxDQUFFQyxJQUFqQiw4Q0FBSSxrQkFBbUJDLE1BQXZCLEVBQStCO1FBQUE7O1FBQzlCRixXQUFXLFNBQVgsSUFBQUEsV0FBVyxXQUFYLGtDQUFBQSxXQUFXLENBQUVDLElBQWIsMEVBQW1CRixPQUFuQixDQUEyQixVQUFDSSxRQUFELEVBQW1CO1VBQzdDLElBQU1DLGVBQWUsR0FBR0QsUUFBUSxDQUFDRSxPQUFqQzs7VUFDQSxJQUFJLENBQUNSLGlCQUFMLEVBQXdCO1lBQ3ZCLElBQUtPLGVBQWUsSUFBSSxPQUFPQSxlQUFQLEtBQTJCLFNBQS9DLElBQTZEQSxlQUFlLENBQUNFLE9BQWhCLE9BQThCLE1BQS9GLEVB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
|
|
@@ -188,21 +188,15 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
if (editActionName) {
|
|
191
|
-
var
|
|
191
|
+
var _editAction$annotatio, _editAction$annotatio2;
|
|
192
192
|
|
|
193
|
-
var editActionAnnotationPath = converterContext.getAbsoluteAnnotationPath(editActionName)
|
|
194
|
-
|
|
193
|
+
var editActionAnnotationPath = converterContext.getAbsoluteAnnotationPath(editActionName);
|
|
194
|
+
var editAction = converterContext.getEntityTypeAnnotation(editActionAnnotationPath).annotation;
|
|
195
195
|
|
|
196
|
-
if (
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
if ((editAction === null || editAction === void 0 ? void 0 : (_editAction$annotatio = editAction.annotations) === null || _editAction$annotatio === void 0 ? void 0 : (_editAction$annotatio2 = _editAction$annotatio.Core) === null || _editAction$annotatio2 === void 0 ? void 0 : _editAction$annotatio2.OperationAvailable) === null) {
|
|
202
|
-
return "{= ${#" + editActionName + "} ? true : false }";
|
|
203
|
-
} else {
|
|
204
|
-
return getEnabledForAnnotationAction(converterContext, editAction);
|
|
205
|
-
}
|
|
196
|
+
if ((editAction === null || editAction === void 0 ? void 0 : (_editAction$annotatio = editAction.annotations) === null || _editAction$annotatio === void 0 ? void 0 : (_editAction$annotatio2 = _editAction$annotatio.Core) === null || _editAction$annotatio2 === void 0 ? void 0 : _editAction$annotatio2.OperationAvailable) === null) {
|
|
197
|
+
return "{= ${#" + editActionName + "} ? true : false }";
|
|
198
|
+
} else {
|
|
199
|
+
return getEnabledForAnnotationAction(converterContext, editAction);
|
|
206
200
|
}
|
|
207
201
|
}
|
|
208
202
|
|
|
@@ -432,4 +426,4 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
432
426
|
_exports.getFooterDefaultActions = getFooterDefaultActions;
|
|
433
427
|
return _exports;
|
|
434
428
|
}, false);
|
|
435
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkhlYWRlckFuZEZvb3RlckFjdGlvbi50cyJdLCJuYW1lcyI6WyJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMiLCJlbnRpdHlUeXBlIiwiYkRldGVybWluaW5nIiwiYW5ub3RhdGlvbnMiLCJVSSIsIklkZW50aWZpY2F0aW9uIiwiZmlsdGVyIiwiaWRlbnRpZmljYXRpb25EYXRhRmllbGQiLCJIaWRkZW4iLCJ2YWx1ZU9mIiwiJFR5cGUiLCJEZXRlcm1pbmluZyIsIkFjdGlvblRhcmdldCIsImlzQm91bmQiLCJDb3JlIiwiT3BlcmF0aW9uQXZhaWxhYmxlIiwiZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zIiwiSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMiLCJnZXREZWxldGVCdXR0b25WaXNpYmlsaXR5IiwiY29udmVydGVyQ29udGV4dCIsImRlbGV0ZUhpZGRlbiIsImRhdGFNb2RlbE9iamVjdFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidmlzaXRlZE5hdmlnYXRpb25QYXRocyIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwibWFwIiwibmF2UHJvcCIsIm5hbWUiLCJkZWxldGVIaWRkZW5FeHByZXNzaW9uIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwidW5kZWZpbmVkIiwicGF0aCIsInNpbmdsZXRvblBhdGhWaXNpdG9yIiwiZ2V0Q29udmVydGVkVHlwZXMiLCJtYW5pZmVzdFdyYXBwZXIiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJ2aWV3TGV2ZWwiLCJnZXRWaWV3TGV2ZWwiLCJlZGl0YWJsZUV4cHJlc3Npb24iLCJJc0VkaXRhYmxlIiwibm90IiwiaWZFbHNlIiwiYW5kIiwiZXF1YWwiLCJnZXREZWxldGVCdXR0b25FbmFibGVkIiwiaXNEZWxldGFibGUiLCJpc1BhcmVudERlbGV0YWJsZSIsImNvbnN0YW50IiwiZ2V0RWRpdEJ1dHRvblZpc2liaWxpdHkiLCJ1cGRhdGVIaWRkZW4iLCJlbnRpdHlTZXQiLCJnZXRFbnRpdHlTZXQiLCJiSXNEcmFmdFJvb3QiLCJDb21tb24iLCJEcmFmdFJvb3QiLCJ1cGRhdGVIaWRkZW5FeHByZXNzaW9uIiwibm90RWRpdGFibGVFeHByZXNzaW9uIiwicmVzdWx0YW50RXhwcmVzc2lvbiIsIkRyYWZ0IiwiSGFzTm9EcmFmdEZvckN1cnJlbnRVc2VyIiwiZ2V0RWRpdEJ1dHRvbkVuYWJsZWQiLCJpc0RyYWZ0Um9vdCIsImlzU3RpY2t5IiwiU2Vzc2lvbiIsIlN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJlZGl0QWN0aW9uTmFtZSIsIkVkaXRBY3Rpb24iLCJlZGl0QWN0aW9uQW5ub3RhdGlvblBhdGgiLCJnZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoIiwiZWRpdEFjdGlvbnMiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsImFubm90YXRpb24iLCJhY3Rpb25zIiwibGVuZ3RoIiwiZWRpdEFjdGlvbiIsImdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uIiwiZ2V0SGVhZGVyRGVmYXVsdEFjdGlvbnMiLCJnZXRFbnRpdHlUeXBlIiwib1N0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJvRHJhZnRSb290Iiwib0VudGl0eURlbGV0ZVJlc3RyaWN0aW9ucyIsIkNhcGFiaWxpdGllcyIsIkRlbGV0ZVJlc3RyaWN0aW9ucyIsImJVcGRhdGVIaWRkZW4iLCJVcGRhdGVIaWRkZW4iLCJpc1BhdGhEZWxldGFibGUiLCJwYXRoVmlzaXRvciIsIm5hdmlnYXRpb25QYXRocyIsImJQYXJlbnRFbnRpdHlTZXREZWxldGFibGUiLCJjb21waWxlRXhwcmVzc2lvbiIsImhlYWRlckRhdGFGaWVsZEZvckFjdGlvbnMiLCJoZWFkZXJBY3Rpb25zIiwicHVzaCIsInR5cGUiLCJBY3Rpb25UeXBlIiwiRHJhZnRBY3Rpb25zIiwia2V5IiwiZGF0YUZpZWxkIiwiaW5kZXhPZiIsIkNyaXRpY2FsaXR5IiwiZm9yRWFjaCIsIkRhdGFGaWVsZEZvckFjdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsIktleUhlbHBlciIsImdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZCIsInZpc2libGUiLCJlbmFibGVkIiwiaXNOYXZpZ2FibGUiLCJQcmltYXJ5IiwiRGVsZXRhYmxlIiwiRGVsZXRlSGlkZGVuIiwiU2Vjb25kYXJ5IiwicGFyZW50RW50aXR5RGVsZXRlRW5hYmxlZCIsImhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJvTmF2aWdhdGlvblBhcmFtcyIsInNlbWFudGljT2JqZWN0TWFwcGluZyIsIk1hcHBpbmciLCJnZXRTZW1hbnRpY09iamVjdE1hcHBpbmciLCJSZXF1aXJlc0NvbnRleHQiLCJFcnJvciIsIkxhYmVsIiwiSW5saW5lIiwiRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uIiwidGV4dCIsInRvU3RyaW5nIiwiYnV0dG9uVHlwZSIsIkJ1dHRvblR5cGUiLCJHaG9zdCIsIk5hdmlnYXRpb25BdmFpbGFibGUiLCJwcmVzcyIsImZuIiwiU2VtYW50aWNPYmplY3QiLCJBY3Rpb24iLCJjdXN0b21EYXRhIiwic2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJnZXRIaWRkZW5IZWFkZXJBY3Rpb25zIiwiaGlkZGVuQWN0aW9ucyIsIkRlZmF1bHQiLCJnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyIsInNFbnRpdHlTZXREcmFmdFJvb3QiLCJ0ZXJtIiwiYkNvbmRpdGlvblNhdmUiLCJTYXZlQWN0aW9uIiwiYkNvbmRpdGlvbkFwcGx5IiwiYkNvbmRpdGlvbkNhbmNlbCIsIkRpc2NhcmRBY3Rpb24iLCJmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zIiwiZm9vdGVyQWN0aW9ucyIsImVudGl0eVR5cGVOYW1lIiwiRGVmYXVsdEFwcGx5IiwicG9zaXRpb24iLCJwbGFjZW1lbnQiLCJQbGFjZW1lbnQiLCJFbmQiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7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cG9ydCB0eXBlIHsgRW50aXR5VHlwZSwgUHJvcGVydHlBbm5vdGF0aW9uVmFsdWUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXMsIERhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHR5cGUgeyBBbm5vdGF0aW9uQWN0aW9uLCBCYXNlQWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgQnV0dG9uVHlwZSwgZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24sIGdldFNlbWFudGljT2JqZWN0TWFwcGluZyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IFBsYWNlbWVudCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQ29uZmlndXJhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBLZXlIZWxwZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0tleVwiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sIENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGFuZCwgY29tcGlsZUV4cHJlc3Npb24sIGNvbnN0YW50LCBlcXVhbCwgZm4sIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiwgaWZFbHNlLCBub3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgaXNQYXRoRGVsZXRhYmxlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgRHJhZnQsIHNpbmdsZXRvblBhdGhWaXNpdG9yLCBVSSB9IGZyb20gXCIuLi9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcbmltcG9ydCB7IEFjdGlvblR5cGUgfSBmcm9tIFwiLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuXG4vKipcbiAqIFJldHJpZXZlcyBhbGwgdGhlIGRhdGEgZmllbGQgZm9yIGFjdGlvbnMgZm9yIHRoZSBpZGVudGlmaWNhdGlvbiBhbm5vdGF0aW9uXG4gKiBUaGV5IG11c3QgYmVcbiAqIC0gTm90IHN0YXRpY2FsbHkgaGlkZGVuXG4gKiAtIEVpdGhlciBsaW5rZWQgdG8gYW4gVW5ib3VuZCBhY3Rpb24gb3IgdG8gYW4gYWN0aW9uIHdoaWNoIGhhcyBhbiBPcGVyYXRpb25BdmFpbGFibGUgdGhhdCBpcyBub3Qgc2V0IHRvIGZhbHNlIHN0YXRpY2FsbHkuXG4gKlxuICogQHBhcmFtIGVudGl0eVR5cGUgVGhlIGN1cnJlbnQgZW50aXR5IHR5cGVcbiAqIEBwYXJhbSBiRGV0ZXJtaW5pbmcgVGhlIGZsYWcgd2hpY2ggZGVub3RlcyB3aGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIGlzIGEgZGV0ZXJtaW5pbmcgYWN0aW9uXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBEYXRhRmllbGQgZm9yIGFjdGlvbiByZXNwZWN0aW5nIHRoZSBpbnB1dCBwYXJhbWV0ZXIgJ2JEZXRlcm1pbmluZydcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldElkZW50aWZpY2F0aW9uRGF0YUZpZWxkRm9yQWN0aW9ucyhlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLCBiRGV0ZXJtaW5pbmc6IGJvb2xlYW4pOiBEYXRhRmllbGRGb3JBY3Rpb25UeXBlc1tdIHtcblx0cmV0dXJuIChlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSWRlbnRpZmljYXRpb24/LmZpbHRlcigoaWRlbnRpZmljYXRpb25EYXRhRmllbGQpID0+IHtcblx0XHRpZiAoaWRlbnRpZmljYXRpb25EYXRhRmllbGQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWUpIHtcblx0XHRcdGlmIChcblx0XHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQ/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckFjdGlvblwiICYmXG5cdFx0XHRcdCEhaWRlbnRpZmljYXRpb25EYXRhRmllbGQuRGV0ZXJtaW5pbmcgPT09IGJEZXRlcm1pbmluZyAmJlxuXHRcdFx0XHQoIWlkZW50aWZpY2F0aW9uRGF0YUZpZWxkPy5BY3Rpb25UYXJnZXQ/LmlzQm91bmQgfHxcblx0XHRcdFx0XHRpZGVudGlmaWNhdGlvbkRhdGFGaWVsZD8uQWN0aW9uVGFyZ2V0Py5hbm5vdGF0aW9ucz8uQ29yZT8uT3BlcmF0aW9uQXZhaWxhYmxlPy52YWx1ZU9mKCkgIT09IGZhbHNlKVxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0pIHx8IFtdKSBhcyBEYXRhRmllbGRGb3JBY3Rpb25UeXBlc1tdO1xufVxuXG4vKipcbiAqIFJldHJpZXZlIGFsbCB0aGUgSUJOIGFjdGlvbnMgZm9yIHRoZSBpZGVudGlmaWNhdGlvbiBhbm5vdGF0aW9uLlxuICogVGhleSBtdXN0IGJlXG4gKiAtIE5vdCBzdGF0aWNhbGx5IGhpZGRlbi5cbiAqXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgY3VycmVudCBlbnRpdHl0eXBlXG4gKiBAcGFyYW0gYkRldGVybWluaW5nIFdoZXRoZXIgb3Igbm90IHRoZSBhY3Rpb24gc2hvdWxkIGJlIGRldGVybWluaW5nXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkYXRhIGZpZWxkIGZvciBhY3Rpb24gcmVzcGVjdGluZyB0aGUgYkRldGVybWluaW5nIHByb3BlcnR5LlxuICovXG5mdW5jdGlvbiBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvcklCTkFjdGlvbnMoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgYkRldGVybWluaW5nOiBib29sZWFuKTogRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXNbXSB7XG5cdHJldHVybiAoZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LklkZW50aWZpY2F0aW9uPy5maWx0ZXIoKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkKSA9PiB7XG5cdFx0aWYgKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkPy5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpICE9PSB0cnVlKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkPy4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIiAmJlxuXHRcdFx0XHQhIWlkZW50aWZpY2F0aW9uRGF0YUZpZWxkLkRldGVybWluaW5nID09PSBiRGV0ZXJtaW5pbmdcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0pIHx8IFtdKSBhcyBEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25UeXBlc1tdO1xufVxuXG5jb25zdCBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUyA9IFtcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvVmVyeVBvc2l0aXZlXCIsXG5cdFwiVUkuQ3JpdGljYWxpdHlUeXBlL1Bvc2l0aXZlXCIsXG5cdFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIsXG5cdFwiVUkuQ3JpdGljYWxpdHlUeXBlL1ZlcnlOZWdhdGl2ZVwiXG5dO1xuXG4vKipcbiAqIE1ldGhvZCB0byBkZXRlcm1pbmUgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBiaW5kaW5nIGZvciB0aGUgRGVsZXRlIGJ1dHRvbiBvbiBhbiBvYmplY3QgcGFnZS5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBJbnN0YW5jZSBvZiB0aGUgY29udmVydGVyIGNvbnRleHQuXG4gKiBAcGFyYW0gZGVsZXRlSGlkZGVuIFRoZSB2YWx1ZSBvZiB0aGUgVUkuRGVsZXRlSGlkZGVuIGFubm90YXRpb24gb24gdGhlIGVudGl0eSBzZXQgLyB0eXBlLlxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgRGVsZXRlIGJ1dHRvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGRlbGV0ZUhpZGRlbjogUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj4gfCB1bmRlZmluZWRcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGRhdGFNb2RlbE9iamVjdFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHR2aXNpdGVkTmF2aWdhdGlvblBhdGhzID0gZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5tYXAoKG5hdlByb3ApID0+IG5hdlByb3AubmFtZSksXG5cdFx0Ly8gU2V0IGFic29sdXRlIGJpbmRpbmcgcGF0aCBmb3IgU2luZ2xldG9uIHJlZmVyZW5jZXMsIG90aGVyd2lzZSB0aGUgY29uZmlndXJlZCBhbm5vdGF0aW9uIHBhdGggaXRzZWxmLlxuXHRcdC8vIEZvciBlLmcuIC9jb20uc2FwLm5hbWVzcGFjZS5FbnRpdHlDb250YWluZXIvU2luZ2xldG9uL1Byb3BlcnR5IHRvIC9TaW5nbGV0b24vUHJvcGVydHlcblx0XHRkZWxldGVIaWRkZW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oXG5cdFx0XHRkZWxldGVIaWRkZW4sXG5cdFx0XHR2aXNpdGVkTmF2aWdhdGlvblBhdGhzLFxuXHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0KHBhdGg6IHN0cmluZykgPT4gc2luZ2xldG9uUGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZWRUeXBlcygpLCBbXSlcblx0XHQpLFxuXHRcdG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCksXG5cdFx0dmlld0xldmVsID0gbWFuaWZlc3RXcmFwcGVyLmdldFZpZXdMZXZlbCgpLFxuXHRcdC8vIERlbGV0ZSBidXR0b24gaXMgdmlzaWJsZVxuXHRcdC8vIEluIE9QIFx0XHQtLT4gIHdoZW4gbm90IGluIGVkaXQgbW9kZVxuXHRcdC8vIEluIHN1Yi1PUCBcdC0tPiAgd2hlbiBpbiBlZGl0IG1vZGVcblx0XHRlZGl0YWJsZUV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiA9IHZpZXdMZXZlbCA+IDEgPyBVSS5Jc0VkaXRhYmxlIDogbm90KFVJLklzRWRpdGFibGUpO1xuXG5cdC8vIElmIFVJLkRlbGV0ZUhpZGRlbiBhbm5vdGF0aW9uIG9uIGVudGl0eSBzZXQgb3IgdHlwZSBpcyBlaXRoZXIgbm90IGRlZmluZWQgb3IgZXhwbGljaXRseSBzZXQgdG8gZmFsc2UsXG5cdC8vIERlbGV0ZSBidXR0b24gaXMgdmlzaWJsZSBiYXNlZCBvbiBlZGl0YWJsZUV4cHJlc3Npb24uXG5cdC8vIGVsc2UsXG5cdC8vIERlbGV0ZSBidXR0b24gaXMgdmlzaWJsZSBiYXNlZCBvbiBib3RoIGFubm90YXRpb24gcGF0aCBhbmQgZWRpdGFibGVFeHByZXNzaW9uLlxuXHRyZXR1cm4gaWZFbHNlKFxuXHRcdGRlbGV0ZUhpZGRlbiA9PT0gdW5kZWZpbmVkIHx8IGRlbGV0ZUhpZGRlbi52YWx1ZU9mKCkgPT09IGZhbHNlLFxuXHRcdGVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRhbmQoZWRpdGFibGVFeHByZXNzaW9uLCBlcXVhbChkZWxldGVIaWRkZW5FeHByZXNzaW9uLCBmYWxzZSkpXG5cdCk7XG59XG5cbi8qKlxuICogTWV0aG9kIHRvIGRldGVybWluZSB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IGJpbmRpbmcgZm9yIHRoZSBEZWxldGUgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBpc0RlbGV0YWJsZSBUaGUgZGVsZXRlIHJlc3RyaWN0aW9uIGNvbmZpZ3VyZWRcbiAqIEBwYXJhbSBpc1BhcmVudERlbGV0YWJsZSBUaGUgZGVsZXRlIHJlc3RyaWN0aW9uIGNvbmZpZ3VyZWQgb24gdGhlIHBhcmVudCBlbnRpdHlcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIERlbGV0ZSBidXR0b25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZUJ1dHRvbkVuYWJsZWQoXG5cdGlzRGVsZXRhYmxlOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxCb29sZWFuPiB8IHVuZGVmaW5lZCxcblx0aXNQYXJlbnREZWxldGFibGU6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPlxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0cmV0dXJuIGlmRWxzZShcblx0XHRpc1BhcmVudERlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLFxuXHRcdGlzUGFyZW50RGVsZXRhYmxlLFxuXHRcdGlmRWxzZShpc0RlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLCBlcXVhbChpc0RlbGV0YWJsZSwgdHJ1ZSksIGNvbnN0YW50KHRydWUpKVxuXHQpO1xufVxuXG4vKipcbiAqIE1ldGhvZCB0byBkZXRlcm1pbmUgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBiaW5kaW5nIGZvciB0aGUgRWRpdCBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgSW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICogQHBhcmFtIHVwZGF0ZUhpZGRlbiBUaGUgdmFsdWUgb2YgdGhlIFVJLlVwZGF0ZUhpZGRlbiBhbm5vdGF0aW9uIG9uIHRoZSBlbnRpdHkgc2V0IC8gdHlwZS5cbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIEVkaXQgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRpdEJ1dHRvblZpc2liaWxpdHkoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHVwZGF0ZUhpZGRlbjogUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj4gfCB1bmRlZmluZWRcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCksXG5cdFx0YklzRHJhZnRSb290ID0gZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdCA/IHRydWUgOiBmYWxzZSxcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksXG5cdFx0dmlzaXRlZE5hdmlnYXRpb25QYXRocyA9IGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMubWFwKChuYXZQcm9wKSA9PiBuYXZQcm9wLm5hbWUpLFxuXHRcdC8vIFNldCBhYnNvbHV0ZSBiaW5kaW5nIHBhdGggZm9yIFNpbmdsZXRvbiByZWZlcmVuY2VzLCBvdGhlcndpc2UgdGhlIGNvbmZpZ3VyZWQgYW5ub3RhdGlvbiBwYXRoIGl0c2VsZi5cblx0XHQvLyBGb3IgZS5nLiAvY29tLnNhcC5uYW1lc3BhY2UuRW50aXR5Q29udGFpbmVyL1NpbmdsZXRvbi9Qcm9wZXJ0eSB0byAvU2luZ2xldG9uL1Byb3BlcnR5XG5cdFx0dXBkYXRlSGlkZGVuRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4gfCB1bmRlZmluZWQ+ID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKFxuXHRcdFx0dXBkYXRlSGlkZGVuLFxuXHRcdFx0dmlzaXRlZE5hdmlnYXRpb25QYXRocyxcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdChwYXRoOiBzdHJpbmcpID0+IHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgdmlzaXRlZE5hdmlnYXRpb25QYXRocylcblx0XHQpLFxuXHRcdG5vdEVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gbm90KFVJLklzRWRpdGFibGUpO1xuXG5cdC8vIElmIFVJLlVwZGF0ZUhpZGRlbiBhbm5vdGF0aW9uIG9uIGVudGl0eSBzZXQgb3IgdHlwZSBpcyBlaXRoZXIgbm90IGRlZmluZWQgb3IgZXhwbGljaXRseSBzZXQgdG8gZmFsc2UsXG5cdC8vIEVkaXQgYnV0dG9uIGlzIHZpc2libGUgaW4gZGlzcGxheSBtb2RlLlxuXHQvLyBlbHNlLFxuXHQvLyBFZGl0IGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGJvdGggYW5ub3RhdGlvbiBwYXRoIGFuZCBpbiBkaXNwbGF5IG1vZGUuXG5cdGNvbnN0IHJlc3VsdGFudEV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiA9IGlmRWxzZShcblx0XHR1cGRhdGVIaWRkZW4gPT09IHVuZGVmaW5lZCB8fCB1cGRhdGVIaWRkZW4udmFsdWVPZigpID09PSBmYWxzZSxcblx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0YW5kKG5vdEVkaXRhYmxlRXhwcmVzc2lvbiwgZXF1YWwodXBkYXRlSGlkZGVuRXhwcmVzc2lvbiwgZmFsc2UpKVxuXHQpO1xuXHRyZXR1cm4gaWZFbHNlKGJJc0RyYWZ0Um9vdCwgYW5kKHJlc3VsdGFudEV4cHJlc3Npb24sIERyYWZ0Lkhhc05vRHJhZnRGb3JDdXJyZW50VXNlciksIHJlc3VsdGFudEV4cHJlc3Npb24pO1xufVxuXG4vKipcbiAqIE1ldGhvZCB0byBkZXRlcm1pbmUgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBiaW5kaW5nIGZvciB0aGUgRWRpdCBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgSW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiB0aGUgRWRpdCBidXR0b24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFZGl0QnV0dG9uRW5hYmxlZChjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24ge1xuXHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpLFxuXHRcdGlzRHJhZnRSb290ID0gZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdCA/IHRydWUgOiBmYWxzZSxcblx0XHRpc1N0aWNreSA9IGVudGl0eVNldCAmJiBlbnRpdHlTZXQuYW5ub3RhdGlvbnMuU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCA/IHRydWUgOiBmYWxzZTtcblxuXHRsZXQgZWRpdEFjdGlvbk5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0aWYgKGlzRHJhZnRSb290KSB7XG5cdFx0ZWRpdEFjdGlvbk5hbWUgPSBlbnRpdHlTZXQ/LmFubm90YXRpb25zLkNvbW1vbj8uRHJhZnRSb290Py5FZGl0QWN0aW9uIGFzIHN0cmluZztcblx0fSBlbHNlIGlmIChpc1N0aWNreSkge1xuXHRcdGVkaXRBY3Rpb25OYW1lID0gZW50aXR5U2V0Py5hbm5vdGF0aW9ucy5TZXNzaW9uPy5TdGlja3lTZXNzaW9uU3VwcG9ydGVkPy5FZGl0QWN0aW9uIGFzIHN0cmluZztcblx0fVxuXHRpZiAoZWRpdEFjdGlvbk5hbWUpIHtcblx0XHRjb25zdCBlZGl0QWN0aW9uQW5ub3RhdGlvblBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgoZWRpdEFjdGlvbk5hbWUpLFxuXHRcdFx0ZWRpdEFjdGlvbnMgPSAoY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihlZGl0QWN0aW9uQW5ub3RhdGlvblBhdGgpPy5hbm5vdGF0aW9uIGFzIGFueSk/LmFjdGlvbnM7XG5cdFx0aWYgKGVkaXRBY3Rpb25zPy5sZW5ndGgpIHtcblx0XHRcdGNvbnN0IGVkaXRBY3Rpb24gPSBlZGl0QWN0aW9uc1swXTtcblx0XHRcdGlmIChlZGl0QWN0aW9uPy5hbm5vdGF0aW9ucz8uQ29yZT8uT3BlcmF0aW9uQXZhaWxhYmxlID09PSBudWxsKSB7XG5cdFx0XHRcdHJldHVybiBcIns9ICR7I1wiICsgZWRpdEFjdGlvbk5hbWUgKyBcIn0gPyB0cnVlIDogZmFsc2UgfVwiO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uKGNvbnZlcnRlckNvbnRleHQsIGVkaXRBY3Rpb24pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gXCJ0cnVlXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWFkZXJEZWZhdWx0QWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksXG5cdFx0b1N0aWNreVNlc3Npb25TdXBwb3J0ZWQgPSBlbnRpdHlTZXQgJiYgZW50aXR5U2V0LmFubm90YXRpb25zPy5TZXNzaW9uPy5TdGlja3lTZXNzaW9uU3VwcG9ydGVkLCAvL2ZvciBzdGlja3kgYXBwXG5cdFx0b0RyYWZ0Um9vdCA9IGVudGl0eVNldCAmJiBlbnRpdHlTZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5EcmFmdFJvb3QsXG5cdFx0b0VudGl0eURlbGV0ZVJlc3RyaWN0aW9ucyA9IGVudGl0eVNldCAmJiBlbnRpdHlTZXQuYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcz8uRGVsZXRlUmVzdHJpY3Rpb25zLFxuXHRcdGJVcGRhdGVIaWRkZW4gPSBlbnRpdHlTZXQgJiYgZW50aXR5U2V0LmFubm90YXRpb25zLlVJPy5VcGRhdGVIaWRkZW4/LnZhbHVlT2YoKSxcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksXG5cdFx0aXNQYXJlbnREZWxldGFibGUgPSBpc1BhdGhEZWxldGFibGUoZGF0YU1vZGVsT2JqZWN0UGF0aCwge1xuXHRcdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcsIG5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pID0+XG5cdFx0XHRcdHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgbmF2aWdhdGlvblBhdGhzKVxuXHRcdH0pLFxuXHRcdGJQYXJlbnRFbnRpdHlTZXREZWxldGFibGUgPSBpc1BhcmVudERlbGV0YWJsZSA/IGNvbXBpbGVFeHByZXNzaW9uKGlzUGFyZW50RGVsZXRhYmxlKSA6IGlzUGFyZW50RGVsZXRhYmxlLFxuXHRcdGhlYWRlckRhdGFGaWVsZEZvckFjdGlvbnMgPSBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGZhbHNlKTtcblxuXHQvLyBJbml0aWFsaXplIGFjdGlvbnMgYW5kIHN0YXJ0IHdpdGggZHJhZnQgYWN0aW9ucyBpZiBhdmFpbGFibGUgc2luY2UgdGhleSBzaG91bGQgYXBwZWFyIGluIHRoZSBmaXJzdFxuXHQvLyBsZWZ0bW9zdCBwb3NpdGlvbiBpbiB0aGUgYWN0aW9ucyBhcmVhIG9mIHRoZSBPUCBoZWFkZXJcblx0Ly8gVGhpcyBpcyBtb3JlIGxpa2UgYSBwbGFjZWhvbGRlciB0aGFuIGEgc2luZ2xlIGFjdGlvbiwgc2luY2UgdGhpcyBjb250cm9scyBub3Qgb25seSB0aGUgdGVtcGxhdGluZyBvZlxuXHQvLyB0aGUgYnV0dG9uIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBkcmFmdCBhbmQgYWN0aXZlIGRvY3VtZW50IHZlcnNpb25zIGJ1dCBhbHNvIHRoZSBjb250cm9scyBmb3Jcblx0Ly8gdGhlIGNvbGxhYm9yYXRpdmUgZHJhZnQgZnJhZ21lbnQuXG5cdGNvbnN0IGhlYWRlckFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAob0RyYWZ0Um9vdD8uRWRpdEFjdGlvbiAmJiBiVXBkYXRlSGlkZGVuICE9PSB0cnVlKSB7XG5cdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHsgdHlwZTogQWN0aW9uVHlwZS5EcmFmdEFjdGlvbnMsIGtleTogXCJEcmFmdEFjdGlvbnNcIiB9KTtcblx0fVxuXG5cdC8vIFRoZW4gYWRkIHRoZSBcIkNyaXRpY2FsXCIgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPiAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9yQWN0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGRhdGFGaWVsZC5mdWxseVF1YWxpZmllZE5hbWUpLFxuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHRcdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSkpLFxuXHRcdFx0XHRlbmFibGVkOiBnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbihjb252ZXJ0ZXJDb250ZXh0LCBkYXRhRmllbGQuQWN0aW9uVGFyZ2V0KSxcblx0XHRcdFx0aXNOYXZpZ2FibGU6IHRydWVcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdC8vIFRoZW4gdGhlIGVkaXQgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoKG9EcmFmdFJvb3Q/LkVkaXRBY3Rpb24gfHwgb1N0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkVkaXRBY3Rpb24pICYmIGJVcGRhdGVIaWRkZW4gIT09IHRydWUpIHtcblx0XHRjb25zdCB1cGRhdGVIaWRkZW4gPSAoXG5cdFx0XHRlbnRpdHlTZXQ/LmFubm90YXRpb25zLlVJPy5VcGRhdGVIaWRkZW4/LnZhbHVlT2YoKSAhPT0gdW5kZWZpbmVkXG5cdFx0XHRcdD8gZW50aXR5U2V0Py5hbm5vdGF0aW9ucy5VST8uVXBkYXRlSGlkZGVuXG5cdFx0XHRcdDogZW50aXR5VHlwZT8uYW5ub3RhdGlvbnMuVUk/LlVwZGF0ZUhpZGRlblxuXHRcdCkgYXMgUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj47XG5cdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuUHJpbWFyeSxcblx0XHRcdGtleTogXCJFZGl0QWN0aW9uXCIsXG5cdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihnZXRFZGl0QnV0dG9uVmlzaWJpbGl0eShjb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGVIaWRkZW4pKSxcblx0XHRcdGVuYWJsZWQ6IGdldEVkaXRCdXR0b25FbmFibGVkKGNvbnZlcnRlckNvbnRleHQpXG5cdFx0fSk7XG5cdH1cblx0Ly8gVGhlbiB0aGUgZGVsZXRlIGFjdGlvbiBpZiB3ZSdyZSBub3Qgc3RhdGljYWxseSBub3QgZGVsZXRhYmxlXG5cdGlmIChcblx0XHQoYlBhcmVudEVudGl0eVNldERlbGV0YWJsZSAmJiBiUGFyZW50RW50aXR5U2V0RGVsZXRhYmxlICE9PSBcImZhbHNlXCIpIHx8XG5cdFx0KG9FbnRpdHlEZWxldGVSZXN0cmljdGlvbnM/LkRlbGV0YWJsZT8udmFsdWVPZigpICE9PSBmYWxzZSAmJiBiUGFyZW50RW50aXR5U2V0RGVsZXRhYmxlICE9PSBcImZhbHNlXCIpXG5cdCkge1xuXHRcdGNvbnN0IGRlbGV0ZUhpZGRlbiA9IChcblx0XHRcdGVudGl0eVNldD8uYW5ub3RhdGlvbnMuVUk/LkRlbGV0ZUhpZGRlbj8udmFsdWVPZigpICE9PSB1bmRlZmluZWRcblx0XHRcdFx0PyBlbnRpdHlTZXQ/LmFubm90YXRpb25zLlVJPy5EZWxldGVIaWRkZW5cblx0XHRcdFx0OiBlbnRpdHlUeXBlPy5hbm5vdGF0aW9ucy5VST8uRGVsZXRlSGlkZGVuXG5cdFx0KSBhcyBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPjtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5TZWNvbmRhcnksXG5cdFx0XHRrZXk6IFwiRGVsZXRlQWN0aW9uXCIsXG5cdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihnZXREZWxldGVCdXR0b25WaXNpYmlsaXR5KGNvbnZlcnRlckNvbnRleHQsIGRlbGV0ZUhpZGRlbikpLFxuXHRcdFx0ZW5hYmxlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0RGVsZXRlQnV0dG9uRW5hYmxlZChvRW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zPy5EZWxldGFibGUsIGlzUGFyZW50RGVsZXRhYmxlKSksXG5cdFx0XHRwYXJlbnRFbnRpdHlEZWxldGVFbmFibGVkOiBiUGFyZW50RW50aXR5U2V0RGVsZXRhYmxlXG5cdFx0fSk7XG5cdH1cblxuXHRjb25zdCBoZWFkZXJEYXRhRmllbGRGb3JJQk5BY3Rpb25zID0gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCBmYWxzZSk7XG5cblx0aGVhZGVyRGF0YUZpZWxkRm9ySUJOQWN0aW9uc1xuXHRcdC5maWx0ZXIoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIElNUE9SVEFOVF9DUklUSUNBTElUSUVTLmluZGV4T2YoZGF0YUZpZWxkPy5Dcml0aWNhbGl0eSBhcyBzdHJpbmcpID09PSAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGNvbnN0IG9OYXZpZ2F0aW9uUGFyYW1zID0ge1xuXHRcdFx0XHRzZW1hbnRpY09iamVjdE1hcHBpbmc6IGRhdGFGaWVsZC5NYXBwaW5nID8gZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nKGRhdGFGaWVsZC5NYXBwaW5nKSA6IFtdXG5cdFx0XHR9O1xuXG5cdFx0XHRpZiAoZGF0YUZpZWxkLlJlcXVpcmVzQ29udGV4dD8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihgUmVxdWlyZXNDb250ZXh0IHByb3BlcnR5IHNob3VsZCBub3QgYmUgdHJ1ZSBmb3IgaGVhZGVyIElCTiBhY3Rpb24gOiAke2RhdGFGaWVsZC5MYWJlbH1gKTtcblx0XHRcdH0gZWxzZSBpZiAoZGF0YUZpZWxkLklubGluZT8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihgSW5saW5lIHByb3BlcnR5IHNob3VsZCBub3QgYmUgdHJ1ZSBmb3IgaGVhZGVyIElCTiBhY3Rpb24gOiAke2RhdGFGaWVsZC5MYWJlbH1gKTtcblx0XHRcdH1cblx0XHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uLFxuXHRcdFx0XHR0ZXh0OiBkYXRhRmllbGQuTGFiZWw/LnRvU3RyaW5nKCksXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZGF0YUZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0XHRcdGJ1dHRvblR5cGU6IEJ1dHRvblR5cGUuR2hvc3QsXG5cdFx0XHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKG5vdChlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkpLCB0cnVlKSkpLFxuXHRcdFx0XHRlbmFibGVkOlxuXHRcdFx0XHRcdGRhdGFGaWVsZC5OYXZpZ2F0aW9uQXZhaWxhYmxlICE9PSB1bmRlZmluZWRcblx0XHRcdFx0XHRcdD8gY29tcGlsZUV4cHJlc3Npb24oZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5OYXZpZ2F0aW9uQXZhaWxhYmxlPy52YWx1ZU9mKCkpLCB0cnVlKSlcblx0XHRcdFx0XHRcdDogdHJ1ZSxcblx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZCksXG5cdFx0XHRcdGlzTmF2aWdhYmxlOiB0cnVlLFxuXHRcdFx0XHRwcmVzczogY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0Zm4oXCIuX2ludGVudEJhc2VkTmF2aWdhdGlvbi5uYXZpZ2F0ZVwiLCBbXG5cdFx0XHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLlNlbWFudGljT2JqZWN0KSxcblx0XHRcdFx0XHRcdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuQWN0aW9uKSxcblx0XHRcdFx0XHRcdG9OYXZpZ2F0aW9uUGFyYW1zXG5cdFx0XHRcdFx0XSlcblx0XHRcdFx0KSxcblx0XHRcdFx0Y3VzdG9tRGF0YTogY29tcGlsZUV4cHJlc3Npb24oe1xuXHRcdFx0XHRcdHNlbWFudGljT2JqZWN0OiBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLlNlbWFudGljT2JqZWN0KSxcblx0XHRcdFx0XHRhY3Rpb246IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuQWN0aW9uKVxuXHRcdFx0XHR9KVxuXHRcdFx0fSBhcyBBbm5vdGF0aW9uQWN0aW9uKTtcblx0XHR9KTtcblx0Ly8gRmluYWxseSB0aGUgbm9uIGNyaXRpY2FsIERhdGFGaWVsZEZvckFjdGlvbnNcblx0aGVhZGVyRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRcdC5maWx0ZXIoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIElNUE9SVEFOVF9DUklUSUNBTElUSUVTLmluZGV4T2YoZGF0YUZpZWxkPy5Dcml0aWNhbGl0eSBhcyBzdHJpbmcpID09PSAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9yQWN0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGRhdGFGaWVsZC5mdWxseVF1YWxpZmllZE5hbWUpLFxuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHRcdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSkpLFxuXHRcdFx0XHRlbmFibGVkOiBnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbihjb252ZXJ0ZXJDb250ZXh0LCBkYXRhRmllbGQuQWN0aW9uVGFyZ2V0KSxcblx0XHRcdFx0aXNOYXZpZ2FibGU6IHRydWVcblx0XHRcdH0gYXMgQW5ub3RhdGlvbkFjdGlvbik7XG5cdFx0fSk7XG5cblx0cmV0dXJuIGhlYWRlckFjdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWRkZW5IZWFkZXJBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdGNvbnN0IGhpZGRlbkFjdGlvbnMgPSAoZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LklkZW50aWZpY2F0aW9uPy5maWx0ZXIoKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkKSA9PiB7XG5cdFx0cmV0dXJuIGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkPy5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXNbXTtcblx0cmV0dXJuIGhpZGRlbkFjdGlvbnMubWFwKChkYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EZWZhdWx0LFxuXHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZClcblx0XHR9O1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvb3RlckRlZmF1bHRBY3Rpb25zKHZpZXdMZXZlbDogbnVtYmVyLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKTtcblx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRjb25zdCBvU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCA9IGVudGl0eVNldCAmJiBlbnRpdHlTZXQuYW5ub3RhdGlvbnM/LlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQsIC8vZm9yIHN0aWNreSBhcHBcblx0XHRzRW50aXR5U2V0RHJhZnRSb290ID1cblx0XHRcdGVudGl0eVNldCAmJiAoZW50aXR5U2V0LmFubm90YXRpb25zLkNvbW1vbj8uRHJhZnRSb290Py50ZXJtIHx8IGVudGl0eVNldC5hbm5vdGF0aW9ucz8uU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8udGVybSksXG5cdFx0YkNvbmRpdGlvblNhdmUgPVxuXHRcdFx0c0VudGl0eVNldERyYWZ0Um9vdCA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290XCIgfHxcblx0XHRcdChvU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCAmJiBvU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8uU2F2ZUFjdGlvbiksXG5cdFx0YkNvbmRpdGlvbkFwcGx5ID0gdmlld0xldmVsID4gMSxcblx0XHRiQ29uZGl0aW9uQ2FuY2VsID1cblx0XHRcdHNFbnRpdHlTZXREcmFmdFJvb3QgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Um9vdFwiIHx8XG5cdFx0XHQob1N0aWNreVNlc3Npb25TdXBwb3J0ZWQgJiYgb1N0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkRpc2NhcmRBY3Rpb24pO1xuXG5cdC8vIFJldHJpZXZlIGFsbCBkZXRlcm1pbmluZyBhY3Rpb25zXG5cdGNvbnN0IGZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnMgPSBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIHRydWUpO1xuXG5cdC8vIEZpcnN0IGFkZCB0aGUgXCJDcml0aWNhbFwiIERhdGFGaWVsZEZvckFjdGlvbnNcblx0Y29uc3QgZm9vdGVyQWN0aW9uczogQmFzZUFjdGlvbltdID0gZm9vdGVyRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRcdC5maWx0ZXIoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIElNUE9SVEFOVF9DUklUSUNBTElUSUVTLmluZGV4T2YoZGF0YUZpZWxkPy5Dcml0aWNhbGl0eSBhcyBzdHJpbmcpID4gLTE7XG5cdFx0fSlcblx0XHQubWFwKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9yQWN0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGRhdGFGaWVsZC5mdWxseVF1YWxpZmllZE5hbWUpLFxuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHRcdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSkpLFxuXHRcdFx0XHRlbmFibGVkOiBnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbihjb252ZXJ0ZXJDb250ZXh0LCBkYXRhRmllbGQuQWN0aW9uVGFyZ2V0KSxcblx0XHRcdFx0aXNOYXZpZ2FibGU6IHRydWVcblx0XHRcdH07XG5cdFx0fSk7XG5cblx0Ly8gVGhlbiB0aGUgc2F2ZSBhY3Rpb24gaWYgaXQgZXhpc3RzXG5cdGlmIChlbnRpdHlTZXQ/LmVudGl0eVR5cGVOYW1lID09PSBlbnRpdHlUeXBlPy5mdWxseVF1YWxpZmllZE5hbWUgJiYgYkNvbmRpdGlvblNhdmUpIHtcblx0XHRmb290ZXJBY3Rpb25zLnB1c2goeyB0eXBlOiBBY3Rpb25UeXBlLlByaW1hcnksIGtleTogXCJTYXZlQWN0aW9uXCIgfSk7XG5cdH1cblxuXHQvLyBUaGVuIHRoZSBhcHBseSBhY3Rpb24gaWYgaXQgZXhpc3RzXG5cdGlmIChiQ29uZGl0aW9uQXBwbHkpIHtcblx0XHRmb290ZXJBY3Rpb25zLnB1c2goeyB0eXBlOiBBY3Rpb25UeXBlLkRlZmF1bHRBcHBseSwga2V5OiBcIkFwcGx5QWN0aW9uXCIgfSk7XG5cdH1cblxuXHQvLyBUaGVuIHRoZSBub24gY3JpdGljYWwgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPT09IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZGF0YUZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpLFxuXHRcdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihub3QoZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiksIHRydWUpKSksXG5cdFx0XHRcdGVuYWJsZWQ6IGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uKGNvbnZlcnRlckNvbnRleHQsIGRhdGFGaWVsZC5BY3Rpb25UYXJnZXQpLFxuXHRcdFx0XHRpc05hdmlnYWJsZTogdHJ1ZVxuXHRcdFx0fSBhcyBBbm5vdGF0aW9uQWN0aW9uKTtcblx0XHR9KTtcblxuXHQvLyBUaGVuIHRoZSBjYW5jZWwgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoYkNvbmRpdGlvbkNhbmNlbCkge1xuXHRcdGZvb3RlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlNlY29uZGFyeSxcblx0XHRcdGtleTogXCJDYW5jZWxBY3Rpb25cIixcblx0XHRcdHBvc2l0aW9uOiB7IHBsYWNlbWVudDogUGxhY2VtZW50LkVuZCB9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGZvb3RlckFjdGlvbnM7XG59XG4iXX0=
|
|
429
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMiLCJlbnRpdHlUeXBlIiwiYkRldGVybWluaW5nIiwiYW5ub3RhdGlvbnMiLCJVSSIsIklkZW50aWZpY2F0aW9uIiwiZmlsdGVyIiwiaWRlbnRpZmljYXRpb25EYXRhRmllbGQiLCJIaWRkZW4iLCJ2YWx1ZU9mIiwiJFR5cGUiLCJEZXRlcm1pbmluZyIsIkFjdGlvblRhcmdldCIsImlzQm91bmQiLCJDb3JlIiwiT3BlcmF0aW9uQXZhaWxhYmxlIiwiZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zIiwiSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMiLCJnZXREZWxldGVCdXR0b25WaXNpYmlsaXR5IiwiY29udmVydGVyQ29udGV4dCIsImRlbGV0ZUhpZGRlbiIsImRhdGFNb2RlbE9iamVjdFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidmlzaXRlZE5hdmlnYXRpb25QYXRocyIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwibWFwIiwibmF2UHJvcCIsIm5hbWUiLCJkZWxldGVIaWRkZW5FeHByZXNzaW9uIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwidW5kZWZpbmVkIiwicGF0aCIsInNpbmdsZXRvblBhdGhWaXNpdG9yIiwiZ2V0Q29udmVydGVkVHlwZXMiLCJtYW5pZmVzdFdyYXBwZXIiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJ2aWV3TGV2ZWwiLCJnZXRWaWV3TGV2ZWwiLCJlZGl0YWJsZUV4cHJlc3Npb24iLCJJc0VkaXRhYmxlIiwibm90IiwiaWZFbHNlIiwiYW5kIiwiZXF1YWwiLCJnZXREZWxldGVCdXR0b25FbmFibGVkIiwiaXNEZWxldGFibGUiLCJpc1BhcmVudERlbGV0YWJsZSIsImNvbnN0YW50IiwiZ2V0RWRpdEJ1dHRvblZpc2liaWxpdHkiLCJ1cGRhdGVIaWRkZW4iLCJlbnRpdHlTZXQiLCJnZXRFbnRpdHlTZXQiLCJiSXNEcmFmdFJvb3QiLCJDb21tb24iLCJEcmFmdFJvb3QiLCJ1cGRhdGVIaWRkZW5FeHByZXNzaW9uIiwibm90RWRpdGFibGVFeHByZXNzaW9uIiwicmVzdWx0YW50RXhwcmVzc2lvbiIsIkRyYWZ0IiwiSGFzTm9EcmFmdEZvckN1cnJlbnRVc2VyIiwiZ2V0RWRpdEJ1dHRvbkVuYWJsZWQiLCJpc0RyYWZ0Um9vdCIsImlzU3RpY2t5IiwiU2Vzc2lvbiIsIlN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJlZGl0QWN0aW9uTmFtZSIsIkVkaXRBY3Rpb24iLCJlZGl0QWN0aW9uQW5ub3RhdGlvblBhdGgiLCJnZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoIiwiZWRpdEFjdGlvbiIsImdldEVudGl0eVR5cGVBbm5vdGF0aW9uIiwiYW5ub3RhdGlvbiIsImdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uIiwiZ2V0SGVhZGVyRGVmYXVsdEFjdGlvbnMiLCJnZXRFbnRpdHlUeXBlIiwib1N0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJvRHJhZnRSb290Iiwib0VudGl0eURlbGV0ZVJlc3RyaWN0aW9ucyIsIkNhcGFiaWxpdGllcyIsIkRlbGV0ZVJlc3RyaWN0aW9ucyIsImJVcGRhdGVIaWRkZW4iLCJVcGRhdGVIaWRkZW4iLCJpc1BhdGhEZWxldGFibGUiLCJwYXRoVmlzaXRvciIsIm5hdmlnYXRpb25QYXRocyIsImJQYXJlbnRFbnRpdHlTZXREZWxldGFibGUiLCJjb21waWxlRXhwcmVzc2lvbiIsImhlYWRlckRhdGFGaWVsZEZvckFjdGlvbnMiLCJoZWFkZXJBY3Rpb25zIiwicHVzaCIsInR5cGUiLCJBY3Rpb25UeXBlIiwiRHJhZnRBY3Rpb25zIiwia2V5IiwiZGF0YUZpZWxkIiwiaW5kZXhPZiIsIkNyaXRpY2FsaXR5IiwiZm9yRWFjaCIsIkRhdGFGaWVsZEZvckFjdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsIktleUhlbHBlciIsImdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZCIsInZpc2libGUiLCJlbmFibGVkIiwiaXNOYXZpZ2FibGUiLCJQcmltYXJ5IiwiRGVsZXRhYmxlIiwiRGVsZXRlSGlkZGVuIiwiU2Vjb25kYXJ5IiwicGFyZW50RW50aXR5RGVsZXRlRW5hYmxlZCIsImhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJvTmF2aWdhdGlvblBhcmFtcyIsInNlbWFudGljT2JqZWN0TWFwcGluZyIsIk1hcHBpbmciLCJnZXRTZW1hbnRpY09iamVjdE1hcHBpbmciLCJSZXF1aXJlc0NvbnRleHQiLCJFcnJvciIsIkxhYmVsIiwiSW5saW5lIiwiRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uIiwidGV4dCIsInRvU3RyaW5nIiwiYnV0dG9uVHlwZSIsIkJ1dHRvblR5cGUiLCJHaG9zdCIsIk5hdmlnYXRpb25BdmFpbGFibGUiLCJwcmVzcyIsImZuIiwiU2VtYW50aWNPYmplY3QiLCJBY3Rpb24iLCJjdXN0b21EYXRhIiwic2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJnZXRIaWRkZW5IZWFkZXJBY3Rpb25zIiwiaGlkZGVuQWN0aW9ucyIsIkRlZmF1bHQiLCJnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyIsInNFbnRpdHlTZXREcmFmdFJvb3QiLCJ0ZXJtIiwiYkNvbmRpdGlvblNhdmUiLCJTYXZlQWN0aW9uIiwiYkNvbmRpdGlvbkFwcGx5IiwiYkNvbmRpdGlvbkNhbmNlbCIsIkRpc2NhcmRBY3Rpb24iLCJmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zIiwiZm9vdGVyQWN0aW9ucyIsImVudGl0eVR5cGVOYW1lIiwiRGVmYXVsdEFwcGx5IiwicG9zaXRpb24iLCJwbGFjZW1lbnQiLCJQbGFjZW1lbnQiLCJFbmQiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkhlYWRlckFuZEZvb3RlckFjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVR5cGUsIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFGaWVsZEZvckFjdGlvblR5cGVzLCBEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQW5ub3RhdGlvbkFjdGlvbiwgQmFzZUFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IEJ1dHRvblR5cGUsIGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uLCBnZXRTZW1hbnRpY09iamVjdE1hcHBpbmcgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgS2V5SGVscGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9LZXlcIjtcbmltcG9ydCB0eXBlIHsgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uLCBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBhbmQsIGNvbXBpbGVFeHByZXNzaW9uLCBjb25zdGFudCwgZXF1YWwsIGZuLCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sIGlmRWxzZSwgbm90IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGlzUGF0aERlbGV0YWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IERyYWZ0LCBzaW5nbGV0b25QYXRoVmlzaXRvciwgVUkgfSBmcm9tIFwiLi4vaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSBcIi4uL01hbmlmZXN0U2V0dGluZ3NcIjtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgYWxsIHRoZSBkYXRhIGZpZWxkIGZvciBhY3Rpb25zIGZvciB0aGUgaWRlbnRpZmljYXRpb24gYW5ub3RhdGlvblxuICogVGhleSBtdXN0IGJlXG4gKiAtIE5vdCBzdGF0aWNhbGx5IGhpZGRlblxuICogLSBFaXRoZXIgbGlua2VkIHRvIGFuIFVuYm91bmQgYWN0aW9uIG9yIHRvIGFuIGFjdGlvbiB3aGljaCBoYXMgYW4gT3BlcmF0aW9uQXZhaWxhYmxlIHRoYXQgaXMgbm90IHNldCB0byBmYWxzZSBzdGF0aWNhbGx5LlxuICpcbiAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBjdXJyZW50IGVudGl0eSB0eXBlXG4gKiBAcGFyYW0gYkRldGVybWluaW5nIFRoZSBmbGFnIHdoaWNoIGRlbm90ZXMgd2hldGhlciBvciBub3QgdGhlIGFjdGlvbiBpcyBhIGRldGVybWluaW5nIGFjdGlvblxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgRGF0YUZpZWxkIGZvciBhY3Rpb24gcmVzcGVjdGluZyB0aGUgaW5wdXQgcGFyYW1ldGVyICdiRGV0ZXJtaW5pbmcnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgYkRldGVybWluaW5nOiBib29sZWFuKTogRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXNbXSB7XG5cdHJldHVybiAoZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LklkZW50aWZpY2F0aW9uPy5maWx0ZXIoKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkKSA9PiB7XG5cdFx0aWYgKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkPy5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpICE9PSB0cnVlKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkPy4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIiAmJlxuXHRcdFx0XHQhIWlkZW50aWZpY2F0aW9uRGF0YUZpZWxkLkRldGVybWluaW5nID09PSBiRGV0ZXJtaW5pbmcgJiZcblx0XHRcdFx0KCFpZGVudGlmaWNhdGlvbkRhdGFGaWVsZD8uQWN0aW9uVGFyZ2V0Py5pc0JvdW5kIHx8XG5cdFx0XHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQ/LkFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnM/LkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZT8udmFsdWVPZigpICE9PSBmYWxzZSlcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXNbXTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZSBhbGwgdGhlIElCTiBhY3Rpb25zIGZvciB0aGUgaWRlbnRpZmljYXRpb24gYW5ub3RhdGlvbi5cbiAqIFRoZXkgbXVzdCBiZVxuICogLSBOb3Qgc3RhdGljYWxseSBoaWRkZW4uXG4gKlxuICogQHBhcmFtIGVudGl0eVR5cGUgVGhlIGN1cnJlbnQgZW50aXR5dHlwZVxuICogQHBhcmFtIGJEZXRlcm1pbmluZyBXaGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIHNob3VsZCBiZSBkZXRlcm1pbmluZ1xuICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGF0YSBmaWVsZCBmb3IgYWN0aW9uIHJlc3BlY3RpbmcgdGhlIGJEZXRlcm1pbmluZyBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKGVudGl0eVR5cGU6IEVudGl0eVR5cGUsIGJEZXRlcm1pbmluZzogYm9vbGVhbik6IERhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblR5cGVzW10ge1xuXHRyZXR1cm4gKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbj8uZmlsdGVyKChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZCkgPT4ge1xuXHRcdGlmIChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSAhPT0gdHJ1ZSkge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRpZGVudGlmaWNhdGlvbkRhdGFGaWVsZD8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uXCIgJiZcblx0XHRcdFx0ISFpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5EZXRlcm1pbmluZyA9PT0gYkRldGVybWluaW5nXG5cdFx0XHQpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXNbXTtcbn1cblxuY29uc3QgSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMgPSBbXG5cdFwiVUkuQ3JpdGljYWxpdHlUeXBlL1ZlcnlQb3NpdGl2ZVwiLFxuXHRcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiLFxuXHRcIlVJLkNyaXRpY2FsaXR5VHlwZS9OZWdhdGl2ZVwiLFxuXHRcIlVJLkNyaXRpY2FsaXR5VHlwZS9WZXJ5TmVnYXRpdmVcIlxuXTtcblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAndmlzaWJsZScgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIERlbGV0ZSBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgSW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICogQHBhcmFtIGRlbGV0ZUhpZGRlbiBUaGUgdmFsdWUgb2YgdGhlIFVJLkRlbGV0ZUhpZGRlbiBhbm5vdGF0aW9uIG9uIHRoZSBlbnRpdHkgc2V0IC8gdHlwZS5cbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIERlbGV0ZSBidXR0b24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWxldGVCdXR0b25WaXNpYmlsaXR5KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRkZWxldGVIaWRkZW46IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRjb25zdCBkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksXG5cdFx0dmlzaXRlZE5hdmlnYXRpb25QYXRocyA9IGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMubWFwKChuYXZQcm9wKSA9PiBuYXZQcm9wLm5hbWUpLFxuXHRcdC8vIFNldCBhYnNvbHV0ZSBiaW5kaW5nIHBhdGggZm9yIFNpbmdsZXRvbiByZWZlcmVuY2VzLCBvdGhlcndpc2UgdGhlIGNvbmZpZ3VyZWQgYW5ub3RhdGlvbiBwYXRoIGl0c2VsZi5cblx0XHQvLyBGb3IgZS5nLiAvY29tLnNhcC5uYW1lc3BhY2UuRW50aXR5Q29udGFpbmVyL1NpbmdsZXRvbi9Qcm9wZXJ0eSB0byAvU2luZ2xldG9uL1Byb3BlcnR5XG5cdFx0ZGVsZXRlSGlkZGVuRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4gfCB1bmRlZmluZWQ+ID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKFxuXHRcdFx0ZGVsZXRlSGlkZGVuLFxuXHRcdFx0dmlzaXRlZE5hdmlnYXRpb25QYXRocyxcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdChwYXRoOiBzdHJpbmcpID0+IHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgW10pXG5cdFx0KSxcblx0XHRtYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLFxuXHRcdHZpZXdMZXZlbCA9IG1hbmlmZXN0V3JhcHBlci5nZXRWaWV3TGV2ZWwoKSxcblx0XHQvLyBEZWxldGUgYnV0dG9uIGlzIHZpc2libGVcblx0XHQvLyBJbiBPUCBcdFx0LS0+ICB3aGVuIG5vdCBpbiBlZGl0IG1vZGVcblx0XHQvLyBJbiBzdWItT1AgXHQtLT4gIHdoZW4gaW4gZWRpdCBtb2RlXG5cdFx0ZWRpdGFibGVFeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4gPSB2aWV3TGV2ZWwgPiAxID8gVUkuSXNFZGl0YWJsZSA6IG5vdChVSS5Jc0VkaXRhYmxlKTtcblxuXHQvLyBJZiBVSS5EZWxldGVIaWRkZW4gYW5ub3RhdGlvbiBvbiBlbnRpdHkgc2V0IG9yIHR5cGUgaXMgZWl0aGVyIG5vdCBkZWZpbmVkIG9yIGV4cGxpY2l0bHkgc2V0IHRvIGZhbHNlLFxuXHQvLyBEZWxldGUgYnV0dG9uIGlzIHZpc2libGUgYmFzZWQgb24gZWRpdGFibGVFeHByZXNzaW9uLlxuXHQvLyBlbHNlLFxuXHQvLyBEZWxldGUgYnV0dG9uIGlzIHZpc2libGUgYmFzZWQgb24gYm90aCBhbm5vdGF0aW9uIHBhdGggYW5kIGVkaXRhYmxlRXhwcmVzc2lvbi5cblx0cmV0dXJuIGlmRWxzZShcblx0XHRkZWxldGVIaWRkZW4gPT09IHVuZGVmaW5lZCB8fCBkZWxldGVIaWRkZW4udmFsdWVPZigpID09PSBmYWxzZSxcblx0XHRlZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0YW5kKGVkaXRhYmxlRXhwcmVzc2lvbiwgZXF1YWwoZGVsZXRlSGlkZGVuRXhwcmVzc2lvbiwgZmFsc2UpKVxuXHQpO1xufVxuXG4vKipcbiAqIE1ldGhvZCB0byBkZXRlcm1pbmUgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBiaW5kaW5nIGZvciB0aGUgRGVsZXRlIGJ1dHRvbiBvbiBhbiBvYmplY3QgcGFnZS5cbiAqXG4gKiBAcGFyYW0gaXNEZWxldGFibGUgVGhlIGRlbGV0ZSByZXN0cmljdGlvbiBjb25maWd1cmVkXG4gKiBAcGFyYW0gaXNQYXJlbnREZWxldGFibGUgVGhlIGRlbGV0ZSByZXN0cmljdGlvbiBjb25maWd1cmVkIG9uIHRoZSBwYXJlbnQgZW50aXR5XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIHRoZSBEZWxldGUgYnV0dG9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWxldGVCdXR0b25FbmFibGVkKFxuXHRpc0RlbGV0YWJsZTogUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Qm9vbGVhbj4gfCB1bmRlZmluZWQsXG5cdGlzUGFyZW50RGVsZXRhYmxlOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj5cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBpZkVsc2UoXG5cdFx0aXNQYXJlbnREZWxldGFibGUgIT09IHVuZGVmaW5lZCxcblx0XHRpc1BhcmVudERlbGV0YWJsZSxcblx0XHRpZkVsc2UoaXNEZWxldGFibGUgIT09IHVuZGVmaW5lZCwgZXF1YWwoaXNEZWxldGFibGUsIHRydWUpLCBjb25zdGFudCh0cnVlKSlcblx0KTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAndmlzaWJsZScgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIEVkaXQgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSB1cGRhdGVIaWRkZW4gVGhlIHZhbHVlIG9mIHRoZSBVSS5VcGRhdGVIaWRkZW4gYW5ub3RhdGlvbiBvbiB0aGUgZW50aXR5IHNldCAvIHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBFZGl0IGJ1dHRvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVkaXRCdXR0b25WaXNpYmlsaXR5KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHR1cGRhdGVIaWRkZW46IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpLFxuXHRcdGJJc0RyYWZ0Um9vdCA9IGVudGl0eVNldCAmJiBlbnRpdHlTZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5EcmFmdFJvb3QgPyB0cnVlIDogZmFsc2UsXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLm1hcCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lKSxcblx0XHQvLyBTZXQgYWJzb2x1dGUgYmluZGluZyBwYXRoIGZvciBTaW5nbGV0b24gcmVmZXJlbmNlcywgb3RoZXJ3aXNlIHRoZSBjb25maWd1cmVkIGFubm90YXRpb24gcGF0aCBpdHNlbGYuXG5cdFx0Ly8gRm9yIGUuZy4gL2NvbS5zYXAubmFtZXNwYWNlLkVudGl0eUNvbnRhaW5lci9TaW5nbGV0b24vUHJvcGVydHkgdG8gL1NpbmdsZXRvbi9Qcm9wZXJ0eVxuXHRcdHVwZGF0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihcblx0XHRcdHVwZGF0ZUhpZGRlbixcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHQocGF0aDogc3RyaW5nKSA9PiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMpXG5cdFx0KSxcblx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiA9IG5vdChVSS5Jc0VkaXRhYmxlKTtcblxuXHQvLyBJZiBVSS5VcGRhdGVIaWRkZW4gYW5ub3RhdGlvbiBvbiBlbnRpdHkgc2V0IG9yIHR5cGUgaXMgZWl0aGVyIG5vdCBkZWZpbmVkIG9yIGV4cGxpY2l0bHkgc2V0IHRvIGZhbHNlLFxuXHQvLyBFZGl0IGJ1dHRvbiBpcyB2aXNpYmxlIGluIGRpc3BsYXkgbW9kZS5cblx0Ly8gZWxzZSxcblx0Ly8gRWRpdCBidXR0b24gaXMgdmlzaWJsZSBiYXNlZCBvbiBib3RoIGFubm90YXRpb24gcGF0aCBhbmQgaW4gZGlzcGxheSBtb2RlLlxuXHRjb25zdCByZXN1bHRhbnRFeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4gPSBpZkVsc2UoXG5cdFx0dXBkYXRlSGlkZGVuID09PSB1bmRlZmluZWQgfHwgdXBkYXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0bm90RWRpdGFibGVFeHByZXNzaW9uLFxuXHRcdGFuZChub3RFZGl0YWJsZUV4cHJlc3Npb24sIGVxdWFsKHVwZGF0ZUhpZGRlbkV4cHJlc3Npb24sIGZhbHNlKSlcblx0KTtcblx0cmV0dXJuIGlmRWxzZShiSXNEcmFmdFJvb3QsIGFuZChyZXN1bHRhbnRFeHByZXNzaW9uLCBEcmFmdC5IYXNOb0RyYWZ0Rm9yQ3VycmVudFVzZXIpLCByZXN1bHRhbnRFeHByZXNzaW9uKTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIEVkaXQgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIEVkaXQgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRpdEJ1dHRvbkVuYWJsZWQoY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0RyYWZ0Um9vdCA9IGVudGl0eVNldCAmJiBlbnRpdHlTZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5EcmFmdFJvb3QgPyB0cnVlIDogZmFsc2UsXG5cdFx0aXNTdGlja3kgPSBlbnRpdHlTZXQgJiYgZW50aXR5U2V0LmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQgPyB0cnVlIDogZmFsc2U7XG5cblx0bGV0IGVkaXRBY3Rpb25OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGlmIChpc0RyYWZ0Um9vdCkge1xuXHRcdGVkaXRBY3Rpb25OYW1lID0gZW50aXR5U2V0Py5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH0gZWxzZSBpZiAoaXNTdGlja3kpIHtcblx0XHRlZGl0QWN0aW9uTmFtZSA9IGVudGl0eVNldD8uYW5ub3RhdGlvbnMuU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH1cblx0aWYgKGVkaXRBY3Rpb25OYW1lKSB7XG5cdFx0Y29uc3QgZWRpdEFjdGlvbkFubm90YXRpb25QYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKGVkaXRBY3Rpb25OYW1lKTtcblx0XHRjb25zdCBlZGl0QWN0aW9uID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihlZGl0QWN0aW9uQW5ub3RhdGlvblBhdGgpLmFubm90YXRpb247XG5cdFx0aWYgKGVkaXRBY3Rpb24/LmFubm90YXRpb25zPy5Db3JlPy5PcGVyYXRpb25BdmFpbGFibGUgPT09IG51bGwpIHtcblx0XHRcdHJldHVybiBcIns9ICR7I1wiICsgZWRpdEFjdGlvbk5hbWUgKyBcIn0gPyB0cnVlIDogZmFsc2UgfVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24oY29udmVydGVyQ29udGV4dCwgZWRpdEFjdGlvbik7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBcInRydWVcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhlYWRlckRlZmF1bHRBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpLFxuXHRcdGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSxcblx0XHRvU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCA9IGVudGl0eVNldCAmJiBlbnRpdHlTZXQuYW5ub3RhdGlvbnM/LlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQsIC8vZm9yIHN0aWNreSBhcHBcblx0XHRvRHJhZnRSb290ID0gZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdCxcblx0XHRvRW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zID0gZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucz8uQ2FwYWJpbGl0aWVzPy5EZWxldGVSZXN0cmljdGlvbnMsXG5cdFx0YlVwZGF0ZUhpZGRlbiA9IGVudGl0eVNldCAmJiBlbnRpdHlTZXQuYW5ub3RhdGlvbnMuVUk/LlVwZGF0ZUhpZGRlbj8udmFsdWVPZigpLFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHRpc1BhcmVudERlbGV0YWJsZSA9IGlzUGF0aERlbGV0YWJsZShkYXRhTW9kZWxPYmplY3RQYXRoLCB7XG5cdFx0XHRwYXRoVmlzaXRvcjogKHBhdGg6IHN0cmluZywgbmF2aWdhdGlvblBhdGhzOiBzdHJpbmdbXSkgPT5cblx0XHRcdFx0c2luZ2xldG9uUGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZWRUeXBlcygpLCBuYXZpZ2F0aW9uUGF0aHMpXG5cdFx0fSksXG5cdFx0YlBhcmVudEVudGl0eVNldERlbGV0YWJsZSA9IGlzUGFyZW50RGVsZXRhYmxlID8gY29tcGlsZUV4cHJlc3Npb24oaXNQYXJlbnREZWxldGFibGUpIDogaXNQYXJlbnREZWxldGFibGUsXG5cdFx0aGVhZGVyRGF0YUZpZWxkRm9yQWN0aW9ucyA9IGdldElkZW50aWZpY2F0aW9uRGF0YUZpZWxkRm9yQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgZmFsc2UpO1xuXG5cdC8vIEluaXRpYWxpemUgYWN0aW9ucyBhbmQgc3RhcnQgd2l0aCBkcmFmdCBhY3Rpb25zIGlmIGF2YWlsYWJsZSBzaW5jZSB0aGV5IHNob3VsZCBhcHBlYXIgaW4gdGhlIGZpcnN0XG5cdC8vIGxlZnRtb3N0IHBvc2l0aW9uIGluIHRoZSBhY3Rpb25zIGFyZWEgb2YgdGhlIE9QIGhlYWRlclxuXHQvLyBUaGlzIGlzIG1vcmUgbGlrZSBhIHBsYWNlaG9sZGVyIHRoYW4gYSBzaW5nbGUgYWN0aW9uLCBzaW5jZSB0aGlzIGNvbnRyb2xzIG5vdCBvbmx5IHRoZSB0ZW1wbGF0aW5nIG9mXG5cdC8vIHRoZSBidXR0b24gZm9yIHN3aXRjaGluZyBiZXR3ZWVuIGRyYWZ0IGFuZCBhY3RpdmUgZG9jdW1lbnQgdmVyc2lvbnMgYnV0IGFsc28gdGhlIGNvbnRyb2xzIGZvclxuXHQvLyB0aGUgY29sbGFib3JhdGl2ZSBkcmFmdCBmcmFnbWVudC5cblx0Y29uc3QgaGVhZGVyQWN0aW9uczogQmFzZUFjdGlvbltdID0gW107XG5cdGlmIChvRHJhZnRSb290Py5FZGl0QWN0aW9uICYmIGJVcGRhdGVIaWRkZW4gIT09IHRydWUpIHtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goeyB0eXBlOiBBY3Rpb25UeXBlLkRyYWZ0QWN0aW9ucywga2V5OiBcIkRyYWZ0QWN0aW9uc1wiIH0pO1xuXHR9XG5cblx0Ly8gVGhlbiBhZGQgdGhlIFwiQ3JpdGljYWxcIiBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGhlYWRlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA+IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZGF0YUZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpLFxuXHRcdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihub3QoZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiksIHRydWUpKSksXG5cdFx0XHRcdGVuYWJsZWQ6IGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uKGNvbnZlcnRlckNvbnRleHQsIGRhdGFGaWVsZC5BY3Rpb25UYXJnZXQpLFxuXHRcdFx0XHRpc05hdmlnYWJsZTogdHJ1ZVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0Ly8gVGhlbiB0aGUgZWRpdCBhY3Rpb24gaWYgaXQgZXhpc3RzXG5cdGlmICgob0RyYWZ0Um9vdD8uRWRpdEFjdGlvbiB8fCBvU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8uRWRpdEFjdGlvbikgJiYgYlVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdGNvbnN0IHVwZGF0ZUhpZGRlbiA9IChcblx0XHRcdGVudGl0eVNldD8uYW5ub3RhdGlvbnMuVUk/LlVwZGF0ZUhpZGRlbj8udmFsdWVPZigpICE9PSB1bmRlZmluZWRcblx0XHRcdFx0PyBlbnRpdHlTZXQ/LmFubm90YXRpb25zLlVJPy5VcGRhdGVIaWRkZW5cblx0XHRcdFx0OiBlbnRpdHlUeXBlPy5hbm5vdGF0aW9ucy5VST8uVXBkYXRlSGlkZGVuXG5cdFx0KSBhcyBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPjtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5QcmltYXJ5LFxuXHRcdFx0a2V5OiBcIkVkaXRBY3Rpb25cIixcblx0XHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKGdldEVkaXRCdXR0b25WaXNpYmlsaXR5KGNvbnZlcnRlckNvbnRleHQsIHVwZGF0ZUhpZGRlbikpLFxuXHRcdFx0ZW5hYmxlZDogZ2V0RWRpdEJ1dHRvbkVuYWJsZWQoY29udmVydGVyQ29udGV4dClcblx0XHR9KTtcblx0fVxuXHQvLyBUaGVuIHRoZSBkZWxldGUgYWN0aW9uIGlmIHdlJ3JlIG5vdCBzdGF0aWNhbGx5IG5vdCBkZWxldGFibGVcblx0aWYgKFxuXHRcdChiUGFyZW50RW50aXR5U2V0RGVsZXRhYmxlICYmIGJQYXJlbnRFbnRpdHlTZXREZWxldGFibGUgIT09IFwiZmFsc2VcIikgfHxcblx0XHQob0VudGl0eURlbGV0ZVJlc3RyaWN0aW9ucz8uRGVsZXRhYmxlPy52YWx1ZU9mKCkgIT09IGZhbHNlICYmIGJQYXJlbnRFbnRpdHlTZXREZWxldGFibGUgIT09IFwiZmFsc2VcIilcblx0KSB7XG5cdFx0Y29uc3QgZGVsZXRlSGlkZGVuID0gKFxuXHRcdFx0ZW50aXR5U2V0Py5hbm5vdGF0aW9ucy5VST8uRGVsZXRlSGlkZGVuPy52YWx1ZU9mKCkgIT09IHVuZGVmaW5lZFxuXHRcdFx0XHQ/IGVudGl0eVNldD8uYW5ub3RhdGlvbnMuVUk/LkRlbGV0ZUhpZGRlblxuXHRcdFx0XHQ6IGVudGl0eVR5cGU/LmFubm90YXRpb25zLlVJPy5EZWxldGVIaWRkZW5cblx0XHQpIGFzIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+O1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlNlY29uZGFyeSxcblx0XHRcdGtleTogXCJEZWxldGVBY3Rpb25cIixcblx0XHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKGdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkoY29udmVydGVyQ29udGV4dCwgZGVsZXRlSGlkZGVuKSksXG5cdFx0XHRlbmFibGVkOiBjb21waWxlRXhwcmVzc2lvbihnZXREZWxldGVCdXR0b25FbmFibGVkKG9FbnRpdHlEZWxldGVSZXN0cmljdGlvbnM/LkRlbGV0YWJsZSwgaXNQYXJlbnREZWxldGFibGUpKSxcblx0XHRcdHBhcmVudEVudGl0eURlbGV0ZUVuYWJsZWQ6IGJQYXJlbnRFbnRpdHlTZXREZWxldGFibGVcblx0XHR9KTtcblx0fVxuXG5cdGNvbnN0IGhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnMgPSBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvcklCTkFjdGlvbnMoY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGZhbHNlKTtcblxuXHRoZWFkZXJEYXRhRmllbGRGb3JJQk5BY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPT09IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0Y29uc3Qgb05hdmlnYXRpb25QYXJhbXMgPSB7XG5cdFx0XHRcdHNlbWFudGljT2JqZWN0TWFwcGluZzogZGF0YUZpZWxkLk1hcHBpbmcgPyBnZXRTZW1hbnRpY09iamVjdE1hcHBpbmcoZGF0YUZpZWxkLk1hcHBpbmcpIDogW11cblx0XHRcdH07XG5cblx0XHRcdGlmIChkYXRhRmllbGQuUmVxdWlyZXNDb250ZXh0Py52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBSZXF1aXJlc0NvbnRleHQgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSB0cnVlIGZvciBoZWFkZXIgSUJOIGFjdGlvbiA6ICR7ZGF0YUZpZWxkLkxhYmVsfWApO1xuXHRcdFx0fSBlbHNlIGlmIChkYXRhRmllbGQuSW5saW5lPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbmxpbmUgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSB0cnVlIGZvciBoZWFkZXIgSUJOIGFjdGlvbiA6ICR7ZGF0YUZpZWxkLkxhYmVsfWApO1xuXHRcdFx0fVxuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24sXG5cdFx0XHRcdHRleHQ6IGRhdGFGaWVsZC5MYWJlbD8udG9TdHJpbmcoKSxcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0YnV0dG9uVHlwZTogQnV0dG9uVHlwZS5HaG9zdCxcblx0XHRcdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSksIHRydWUpKSksXG5cdFx0XHRcdGVuYWJsZWQ6XG5cdFx0XHRcdFx0ZGF0YUZpZWxkLk5hdmlnYXRpb25BdmFpbGFibGUgIT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0PyBjb21waWxlRXhwcmVzc2lvbihlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLk5hdmlnYXRpb25BdmFpbGFibGU/LnZhbHVlT2YoKSksIHRydWUpKVxuXHRcdFx0XHRcdFx0OiB0cnVlLFxuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHRcdFx0aXNOYXZpZ2FibGU6IHRydWUsXG5cdFx0XHRcdHByZXNzOiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRmbihcIi5faW50ZW50QmFzZWROYXZpZ2F0aW9uLm5hdmlnYXRlXCIsIFtcblx0XHRcdFx0XHRcdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuU2VtYW50aWNPYmplY3QpLFxuXHRcdFx0XHRcdFx0Z2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5BY3Rpb24pLFxuXHRcdFx0XHRcdFx0b05hdmlnYXRpb25QYXJhbXNcblx0XHRcdFx0XHRdKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRjdXN0b21EYXRhOiBjb21waWxlRXhwcmVzc2lvbih7XG5cdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuU2VtYW50aWNPYmplY3QpLFxuXHRcdFx0XHRcdGFjdGlvbjogZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5BY3Rpb24pXG5cdFx0XHRcdH0pXG5cdFx0XHR9IGFzIEFubm90YXRpb25BY3Rpb24pO1xuXHRcdH0pO1xuXHQvLyBGaW5hbGx5IHRoZSBub24gY3JpdGljYWwgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPT09IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZGF0YUZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpLFxuXHRcdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihub3QoZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiksIHRydWUpKSksXG5cdFx0XHRcdGVuYWJsZWQ6IGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uKGNvbnZlcnRlckNvbnRleHQsIGRhdGFGaWVsZC5BY3Rpb25UYXJnZXQpLFxuXHRcdFx0XHRpc05hdmlnYWJsZTogdHJ1ZVxuXHRcdFx0fSBhcyBBbm5vdGF0aW9uQWN0aW9uKTtcblx0XHR9KTtcblxuXHRyZXR1cm4gaGVhZGVyQWN0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhpZGRlbkhlYWRlckFjdGlvbnMoY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEJhc2VBY3Rpb25bXSB7XG5cdGNvbnN0IGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0Y29uc3QgaGlkZGVuQWN0aW9ucyA9IChlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSWRlbnRpZmljYXRpb24/LmZpbHRlcigoaWRlbnRpZmljYXRpb25EYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gaWRlbnRpZmljYXRpb25EYXRhRmllbGQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWU7XG5cdH0pIHx8IFtdKSBhcyBEYXRhRmllbGRGb3JBY3Rpb25UeXBlc1tdO1xuXHRyZXR1cm4gaGlkZGVuQWN0aW9ucy5tYXAoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRlZmF1bHQsXG5cdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKVxuXHRcdH07XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9vdGVyRGVmYXVsdEFjdGlvbnModmlld0xldmVsOiBudW1iZXIsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpO1xuXHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdGNvbnN0IG9TdGlja3lTZXNzaW9uU3VwcG9ydGVkID0gZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucz8uU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCwgLy9mb3Igc3RpY2t5IGFwcFxuXHRcdHNFbnRpdHlTZXREcmFmdFJvb3QgPVxuXHRcdFx0ZW50aXR5U2V0ICYmIChlbnRpdHlTZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5EcmFmdFJvb3Q/LnRlcm0gfHwgZW50aXR5U2V0LmFubm90YXRpb25zPy5TZXNzaW9uPy5TdGlja3lTZXNzaW9uU3VwcG9ydGVkPy50ZXJtKSxcblx0XHRiQ29uZGl0aW9uU2F2ZSA9XG5cdFx0XHRzRW50aXR5U2V0RHJhZnRSb290ID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdFJvb3RcIiB8fFxuXHRcdFx0KG9TdGlja3lTZXNzaW9uU3VwcG9ydGVkICYmIG9TdGlja3lTZXNzaW9uU3VwcG9ydGVkPy5TYXZlQWN0aW9uKSxcblx0XHRiQ29uZGl0aW9uQXBwbHkgPSB2aWV3TGV2ZWwgPiAxLFxuXHRcdGJDb25kaXRpb25DYW5jZWwgPVxuXHRcdFx0c0VudGl0eVNldERyYWZ0Um9vdCA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290XCIgfHxcblx0XHRcdChvU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCAmJiBvU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8uRGlzY2FyZEFjdGlvbik7XG5cblx0Ly8gUmV0cmlldmUgYWxsIGRldGVybWluaW5nIGFjdGlvbnNcblx0Y29uc3QgZm9vdGVyRGF0YUZpZWxkRm9yQWN0aW9ucyA9IGdldElkZW50aWZpY2F0aW9uRGF0YUZpZWxkRm9yQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgdHJ1ZSk7XG5cblx0Ly8gRmlyc3QgYWRkIHRoZSBcIkNyaXRpY2FsXCIgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRjb25zdCBmb290ZXJBY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPiAtMTtcblx0XHR9KVxuXHRcdC5tYXAoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZGF0YUZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpLFxuXHRcdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihub3QoZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiksIHRydWUpKSksXG5cdFx0XHRcdGVuYWJsZWQ6IGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uKGNvbnZlcnRlckNvbnRleHQsIGRhdGFGaWVsZC5BY3Rpb25UYXJnZXQpLFxuXHRcdFx0XHRpc05hdmlnYWJsZTogdHJ1ZVxuXHRcdFx0fTtcblx0XHR9KTtcblxuXHQvLyBUaGVuIHRoZSBzYXZlIGFjdGlvbiBpZiBpdCBleGlzdHNcblx0aWYgKGVudGl0eVNldD8uZW50aXR5VHlwZU5hbWUgPT09IGVudGl0eVR5cGU/LmZ1bGx5UXVhbGlmaWVkTmFtZSAmJiBiQ29uZGl0aW9uU2F2ZSkge1xuXHRcdGZvb3RlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuUHJpbWFyeSwga2V5OiBcIlNhdmVBY3Rpb25cIiB9KTtcblx0fVxuXG5cdC8vIFRoZW4gdGhlIGFwcGx5IGFjdGlvbiBpZiBpdCBleGlzdHNcblx0aWYgKGJDb25kaXRpb25BcHBseSkge1xuXHRcdGZvb3RlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdEFwcGx5LCBrZXk6IFwiQXBwbHlBY3Rpb25cIiB9KTtcblx0fVxuXG5cdC8vIFRoZW4gdGhlIG5vbiBjcml0aWNhbCBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA9PT0gLTE7XG5cdFx0fSlcblx0XHQuZm9yRWFjaCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRmb290ZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZCksXG5cdFx0XHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKG5vdChlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuKSwgdHJ1ZSkpKSxcblx0XHRcdFx0ZW5hYmxlZDogZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24oY29udmVydGVyQ29udGV4dCwgZGF0YUZpZWxkLkFjdGlvblRhcmdldCksXG5cdFx0XHRcdGlzTmF2aWdhYmxlOiB0cnVlXG5cdFx0XHR9IGFzIEFubm90YXRpb25BY3Rpb24pO1xuXHRcdH0pO1xuXG5cdC8vIFRoZW4gdGhlIGNhbmNlbCBhY3Rpb24gaWYgaXQgZXhpc3RzXG5cdGlmIChiQ29uZGl0aW9uQ2FuY2VsKSB7XG5cdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuU2Vjb25kYXJ5LFxuXHRcdFx0a2V5OiBcIkNhbmNlbEFjdGlvblwiLFxuXHRcdFx0cG9zaXRpb246IHsgcGxhY2VtZW50OiBQbGFjZW1lbnQuRW5kIH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9vdGVyQWN0aW9ucztcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDTyxTQUFTQSxvQ0FBVCxDQUE4Q0MsVUFBOUMsRUFBc0VDLFlBQXRFLEVBQXdIO0lBQUE7O0lBQzlILE9BQVEsMEJBQUFELFVBQVUsQ0FBQ0UsV0FBWCwwR0FBd0JDLEVBQXhCLDRHQUE0QkMsY0FBNUIsa0ZBQTRDQyxNQUE1QyxDQUFtRCxVQUFDQyx1QkFBRCxFQUE2QjtNQUFBOztNQUN2RixJQUFJLENBQUFBLHVCQUF1QixTQUF2QixJQUFBQSx1QkFBdUIsV0FBdkIscUNBQUFBLHVCQUF1QixDQUFFSixXQUF6QiwwR0FBc0NDLEVBQXRDLDRHQUEwQ0ksTUFBMUMsa0ZBQWtEQyxPQUFsRCxRQUFnRSxJQUFwRSxFQUEwRTtRQUFBOztRQUN6RSxJQUNDLENBQUFGLHVCQUF1QixTQUF2QixJQUFBQSx1QkFBdUIsV0FBdkIsWUFBQUEsdUJBQXVCLENBQUVHLEtBQXpCLE1BQW1DLCtDQUFuQyxJQUNBLENBQUMsQ0FBQ0gsdUJBQXVCLENBQUNJLFdBQTFC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
|
|
@@ -180,15 +180,12 @@ export function getEditButtonEnabled(converterContext: ConverterContext): Compil
|
|
|
180
180
|
editActionName = entitySet?.annotations.Session?.StickySessionSupported?.EditAction as string;
|
|
181
181
|
}
|
|
182
182
|
if (editActionName) {
|
|
183
|
-
const editActionAnnotationPath = converterContext.getAbsoluteAnnotationPath(editActionName)
|
|
184
|
-
|
|
185
|
-
if (
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
} else {
|
|
190
|
-
return getEnabledForAnnotationAction(converterContext, editAction);
|
|
191
|
-
}
|
|
183
|
+
const editActionAnnotationPath = converterContext.getAbsoluteAnnotationPath(editActionName);
|
|
184
|
+
const editAction = converterContext.getEntityTypeAnnotation(editActionAnnotationPath).annotation;
|
|
185
|
+
if (editAction?.annotations?.Core?.OperationAvailable === null) {
|
|
186
|
+
return "{= ${#" + editActionName + "} ? true : false }";
|
|
187
|
+
} else {
|
|
188
|
+
return getEnabledForAnnotationAction(converterContext, editAction);
|
|
192
189
|
}
|
|
193
190
|
}
|
|
194
191
|
return "true";
|