@sap/open.fe 1.96.0 → 1.97.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +57 -42
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +2 -2
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +4 -4
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/resources.json +4 -4
- package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +59 -274
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +52 -64
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +18 -22
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +80 -4
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +42 -23
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +36 -21
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +9 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +20 -50
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +222 -102
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +33 -6
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +109 -111
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d-dbg.js +8 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.ts +0 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +2 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +4 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +10 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +9 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +67 -40
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +6 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +57 -18
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +51 -13
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -19
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +139 -18
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID-dbg.js +9 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.ts +4 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +18 -7
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +17 -12
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +2 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +27 -4
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
- package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +211 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +32 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +51 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +10 -9
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +232 -228
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
- package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +15 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +19 -9
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/resources.json +200 -121
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +30 -19
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper-dbg.js +80 -7
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.ts +42 -2
- package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +4 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/manifest.json +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +13 -10
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +7 -4
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +1 -2
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +119 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +285 -4
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +121 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +79 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +147 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +96 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +51 -18
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +109 -17
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +66 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelper.cds +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelperMainEntitySortableFalse.cds +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableGetSelectionMode.cds +8 -8
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +38 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.js +483 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.ts +376 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.js +101 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.ts +105 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.js +103 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.ts +106 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.js +118 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.ts +118 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.js +101 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.ts +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +118 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +70 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.js +89 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.ts +73 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +4 -2
- package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +15 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +9 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil-dbg.js +30 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +3 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +3 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate-dbg.js +17 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +1 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.fragment.xml +6 -15
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +14 -12
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +2 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +12 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +15 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +10 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +81 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +13 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +5 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +1 -7
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForContact.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime-dbg.js +46 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +17 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +26 -16
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +4 -13
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +10 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +5 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +72 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +12 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +93 -91
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartTitle.fragment.xml +21 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/RadialMicroChart.fragment.xml +2 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +149 -110
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +3 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +70 -29
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +53 -36
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +3 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +2 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +844 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +833 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.js +495 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.ts +440 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.js +469 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.ts +448 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +94 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +70 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +12 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +11 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DelegateUtil.spec.js +61 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.js +46 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.ts +30 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +13 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +11 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.js +66 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.ts +35 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +48 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +56 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.js +68 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.ts +65 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +82 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +23 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldHelper.spec.ts.snap +47 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +52 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FormElement.spec.ts.snap +25 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +0 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +69 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +451 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldHelper.xml +68 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +13 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableFieldLabel.cds +152 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +116 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +115 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.js +86 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.ts +54 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/__snapshots__/FormElement.spec.ts.snap +33 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +154 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +128 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +7 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +23 -12
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +108 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +4 -4
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +3 -3
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.fragment.html +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.fragment.html +1 -1
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +91 -60
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +31 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +5 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +18 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +114 -85
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +8 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +23 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +15 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +6 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +6 -4
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +26 -16
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +5 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +63 -9
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +54 -32
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +24 -21
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +2 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +2 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +8 -9
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +23 -30
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
- package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
- package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +51 -60
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.js +95 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.ts +66 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +134 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +94 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +61 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/ObjectPageHeaderForm.spec.ts.snap +53 -0
- package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/FCLView-dbg.js +0 -6
- package/packages/sap.fe.test/src/sap/fe/test/FCLView.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/Flexibility-dbg.js +14 -3
- package/packages/sap.fe.test/src/sap/fe/test/Flexibility.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +85 -8
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +54 -2
- package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +0 -11
- package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +0 -38
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/TemplatePage-dbg.js +0 -12
- package/packages/sap.fe.test/src/sap/fe/test/TemplatePage.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +22 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +14 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +21 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +9 -5
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions-dbg.js +18 -5
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions-dbg.js +25 -5
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/EditState-dbg.js +9 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/EditState.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions-dbg.js +38 -4
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions-dbg.js +33 -4
- package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +23 -16
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/resources.json +36 -34
- package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.96.json +0 -49
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.96.json +0 -189
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldRuntime.qunit.js +0 -73
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.96.json +0 -160
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/relnote/changes-1.96.json +0 -17
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover-dbg.js +0 -26
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +0 -6
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.96.json +0 -153
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/templating/UIFormatters", "sap/fe/core/templating/DataModelPathHelper", "sap/fe/core/
|
|
5
|
+
sap.ui.define(["sap/fe/core/templating/UIFormatters", "sap/fe/core/templating/DataModelPathHelper", "sap/fe/core/helpers/BindingExpression", "sap/fe/core/templating/PropertyHelper", "sap/fe/core/formatters/ValueFormatter", "sap/fe/core/templating/FieldControlHelper", "sap/fe/core/converters/helpers/BindingHelper"], function (UIFormatters, DataModelPathHelper, BindingExpression, PropertyHelper, valueFormatters, FieldControlHelper, BindingHelper) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
|
+
var UI = BindingHelper.UI;
|
|
9
10
|
var isReadOnlyExpression = FieldControlHelper.isReadOnlyExpression;
|
|
10
11
|
var getAssociatedTextPropertyPath = PropertyHelper.getAssociatedTextPropertyPath;
|
|
11
12
|
var hasValueHelp = PropertyHelper.hasValueHelp;
|
|
@@ -15,10 +16,10 @@ sap.ui.define(["sap/fe/core/templating/UIFormatters", "sap/fe/core/templating/Da
|
|
|
15
16
|
var getAssociatedCurrencyProperty = PropertyHelper.getAssociatedCurrencyProperty;
|
|
16
17
|
var getAssociatedUnitProperty = PropertyHelper.getAssociatedUnitProperty;
|
|
17
18
|
var isPathExpression = PropertyHelper.isPathExpression;
|
|
18
|
-
var
|
|
19
|
+
var or = BindingExpression.or;
|
|
19
20
|
var equal = BindingExpression.equal;
|
|
21
|
+
var not = BindingExpression.not;
|
|
20
22
|
var ifElse = BindingExpression.ifElse;
|
|
21
|
-
var or = BindingExpression.or;
|
|
22
23
|
var and = BindingExpression.and;
|
|
23
24
|
var bindingExpression = BindingExpression.bindingExpression;
|
|
24
25
|
var constant = BindingExpression.constant;
|
|
@@ -26,7 +27,6 @@ sap.ui.define(["sap/fe/core/templating/UIFormatters", "sap/fe/core/templating/Da
|
|
|
26
27
|
var transformRecursively = BindingExpression.transformRecursively;
|
|
27
28
|
var formatResult = BindingExpression.formatResult;
|
|
28
29
|
var annotationExpression = BindingExpression.annotationExpression;
|
|
29
|
-
var UI = BindingHelper.UI;
|
|
30
30
|
var getContextRelativeTargetObjectPath = DataModelPathHelper.getContextRelativeTargetObjectPath;
|
|
31
31
|
var getPathRelativeLocation = DataModelPathHelper.getPathRelativeLocation;
|
|
32
32
|
var enhanceDataModelPath = DataModelPathHelper.enhanceDataModelPath;
|
|
@@ -570,4 +570,4 @@ sap.ui.define(["sap/fe/core/templating/UIFormatters", "sap/fe/core/templating/Da
|
|
|
570
570
|
_exports.getQuickViewType = getQuickViewType;
|
|
571
571
|
return _exports;
|
|
572
572
|
}, false);
|
|
573
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkVGVtcGxhdGluZy50cyJdLCJuYW1lcyI6WyJhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uIiwiYmluZGluZ0V4cHJlc3Npb24iLCJmdWxsQ29udGV4dFBhdGgiLCJ0cmFuc2Zvcm1SZWN1cnNpdmVseSIsImV4cHJlc3Npb24iLCJvdXRFeHByZXNzaW9uIiwibW9kZWxOYW1lIiwidW5kZWZpbmVkIiwib1Byb3BlcnR5RGF0YU1vZGVsUGF0aCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwicGF0aCIsImdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50IiwicHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbiIsImZpZWxkRm9ybWF0T3B0aW9ucyIsInRhcmdldERpc3BsYXlNb2RlT3ZlcnJpZGUiLCJkaXNwbGF5TW9kZSIsIm9Qcm9wZXJ0eURlZmluaXRpb24iLCJ0YXJnZXRPYmplY3QiLCJ0eXBlIiwiJHRhcmdldCIsInRhcmdldERpc3BsYXlNb2RlIiwiZ2V0RGlzcGxheU1vZGUiLCJjb21tb25UZXh0IiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJUZXh0IiwicmVsYXRpdmVMb2NhdGlvbiIsImdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uIiwiY29udGV4dExvY2F0aW9uIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJtYXAiLCJucCIsIm5hbWUiLCJmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uIiwiYW5ub3RhdGlvbkV4cHJlc3Npb24iLCJmb3JtYXRSZXN1bHQiLCJ2YWx1ZUZvcm1hdHRlcnMiLCJmb3JtYXRXaXRoQnJhY2tldHMiLCJmb3JtYXRWYWx1ZVJlY3Vyc2l2ZWx5IiwiZ2V0VGV4dEJpbmRpbmciLCJvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoIiwiYXNPYmplY3QiLCIkVHlwZSIsImZpZWxkVmFsdWUiLCJWYWx1ZSIsImNvbXBpbGVCaW5kaW5nIiwiY29uc3RhbnQiLCJpc1BhdGhFeHByZXNzaW9uIiwib05hdlBhdGgiLCJ0YXJnZXRFbnRpdHlUeXBlIiwicmVzb2x2ZVBhdGgiLCJ0YXJnZXQiLCJ2aXNpdGVkT2JqZWN0cyIsImZvckVhY2giLCJvTmF2T2JqIiwiX3R5cGUiLCJwdXNoIiwib0JpbmRpbmdFeHByZXNzaW9uIiwiZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCIsIm9UYXJnZXRCaW5kaW5nIiwiTWVhc3VyZXMiLCJVbml0IiwiSVNPQ3VycmVuY3kiLCJnZXRCaW5kaW5nV2l0aFVuaXRPckN1cnJlbmN5IiwibWVhc3VyZURpc3BsYXlNb2RlIiwiZm9ybWF0T3B0aW9ucyIsInNob3dNZWFzdXJlIiwiZ2V0VmFsdWVCaW5kaW5nIiwiaWdub3JlVW5pdCIsImlnbm9yZUZvcm1hdHRpbmciLCJiaW5kaW5nUGFyYW1ldGVycyIsInRhcmdldFR5cGVBbnkiLCJzaG93TWVhc3VyZU9ubHkiLCJpc1Byb3BlcnR5IiwiQ29tbXVuaWNhdGlvbiIsIklzRW1haWxBZGRyZXNzIiwib1Byb3BlcnR5VW5pdCIsImdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkiLCJvUHJvcGVydHlDdXJyZW5jeSIsImdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5IiwiaGFzVmFsdWVIZWxwIiwic2hvd051bWJlciIsInBhcnNlS2VlcHNFbXB0eVN0cmluZyIsImNvbnN0cmFpbnRzIiwicGFyYW1ldGVycyIsInRhcmdldFR5cGUiLCJnZXRVbml0QmluZGluZyIsInNVbml0UHJvcGVydHlQYXRoIiwiZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGgiLCJzQ3VycmVuY3lQcm9wZXJ0eVBhdGgiLCJnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eVBhdGgiLCJ0YXJnZXRQcm9wZXJ0eVBhdGgiLCJvVU9NUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoIiwiZ2V0QXNzb2NpYXRlZFRleHRCaW5kaW5nIiwidGV4dFByb3BlcnR5UGF0aCIsImdldEFzc29jaWF0ZWRUZXh0UHJvcGVydHlQYXRoIiwib1RleHRQcm9wZXJ0eVBhdGgiLCJvVmFsdWVCaW5kaW5nIiwiJCRub1BhdGNoIiwiZ2V0RGlzcGxheVN0eWxlIiwib1Byb3BlcnR5UGF0aCIsIm9EYXRhRmllbGQiLCJvRGF0YU1vZGVsUGF0aCIsInNlbWFudGljT2JqZWN0Iiwib1Byb3BlcnR5IiwiVUkiLCJJc0ltYWdlVVJMIiwiSXNQaG9uZU51bWJlciIsIlRhcmdldCIsIlNlbWFudGljS2V5IiwiYVNlbWFudGljS2V5cyIsImJJc1NlbWFudGljS2V5IiwiZXZlcnkiLCJvS2V5Iiwic2VtYW50aWNLZXlTdHlsZSIsInRhcmdldEVudGl0eVNldCIsIkRyYWZ0Um9vdCIsIkNyaXRpY2FsaXR5IiwiTXVsdGlMaW5lVGV4dCIsImFOYXZpZ2F0aW9uUHJvcGVydGllcyIsImJJc1VzZWRJbk5hdmlnYXRpb25XaXRoUXVpY2tWaWV3RmFjZXRzIiwib05hdlByb3AiLCJyZWZlcmVudGlhbENvbnN0cmFpbnQiLCJsZW5ndGgiLCJvUmVmQ29uc3RyYWludCIsInNvdXJjZVByb3BlcnR5IiwiUXVpY2tWaWV3RmFjZXRzIiwiU2VtYW50aWNPYmplY3QiLCJnZXRFZGl0U3R5bGUiLCJvRmllbGRGb3JtYXRPcHRpb25zIiwiVmlzdWFsaXphdGlvbiIsIlByb3BlcnR5SGVscGVyIiwidmFsdWVPZiIsImdldFZpc2libGVFeHByZXNzaW9uIiwiZGF0YUZpZWxkTW9kZWxQYXRoIiwicHJvcGVydHlWYWx1ZSIsImlzQW5hbHl0aWNhbEdyb3VwSGVhZGVyRXhwYW5kZWQiLCJpc0FuYWx5dGljcyIsIklzRXhwYW5kZWQiLCJpc0FuYWx5dGljYWxMZWFmIiwiZXF1YWwiLCJOb2RlTGV2ZWwiLCJhbmQiLCJub3QiLCJIaWRkZW4iLCJpZkVsc2UiLCJvciIsImdldElucHV0RGVzY3JpcHRpb24iLCJkZXNjcmlwdGlvbkJpbmRpbmdFeHByZXNzaW9uIiwidW5pdFByb3BlcnR5IiwiZWRpdGFibGVFeHByZXNzaW9uIiwiaXNSZWFkT25seUV4cHJlc3Npb24iLCJpc0NvbXB1dGVkIiwiUVZUZXh0QmluZGluZyIsIm9Qcm9wZXJ0eVZhbHVlRGF0YU1vZGVsT2JqZWN0UGF0aCIsInJldHVyblZhbHVlIiwiZ2V0UXVpY2tWaWV3VHlwZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUEscUNBQXFDLEdBQUcsVUFDcERDLGlCQURvRCxFQUVwREMsZUFGb0QsRUFHbEM7QUFDbEIsV0FBT0Msb0JBQW9CLENBQUNGLGlCQUFELEVBQW9CLFNBQXBCLEVBQStCLFVBQUNHLFVBQUQsRUFBa0Q7QUFDM0csVUFBSUMsYUFBOEIsR0FBR0QsVUFBckM7O0FBQ0EsVUFBSUEsVUFBVSxDQUFDRSxTQUFYLEtBQXlCQyxTQUE3QixFQUF3QztBQUN2QztBQUNBLFlBQU1DLHNCQUFzQixHQUFHQyxvQkFBb0IsQ0FBQ1AsZUFBRCxFQUFrQkUsVUFBVSxDQUFDTSxJQUE3QixDQUFuRDtBQUNBTCxRQUFBQSxhQUFhLEdBQUdNLDZCQUE2QixDQUFDSCxzQkFBRCxFQUF5QkosVUFBekIsQ0FBN0M7QUFDQTs7QUFDRCxhQUFPQyxhQUFQO0FBQ0EsS0FSMEIsQ0FBM0I7QUFTQSxHQWJNOzs7O0FBZUEsTUFBTU0sNkJBQTZCLEdBQUcsVUFDNUNILHNCQUQ0QyxFQUU1Q0kseUJBRjRDLEVBRzVDQyxrQkFINEMsRUFJdkI7QUFBQTs7QUFDckIsUUFBTUMseUJBQXlCLEdBQUdELGtCQUFILGFBQUdBLGtCQUFILHVCQUFHQSxrQkFBa0IsQ0FBRUUsV0FBdEQ7QUFDQSxRQUFJVixhQUFhLEdBQUdPLHlCQUFwQjtBQUNBLFFBQU1JLG1CQUFtQixHQUN4QlIsc0JBQXNCLENBQUNTLFlBQXZCLENBQW9DQyxJQUFwQyxLQUE2QyxjQUE3QyxHQUNJVixzQkFBc0IsQ0FBQ1MsWUFBdkIsQ0FBb0NFLE9BRHhDLEdBRUlYLHNCQUFzQixDQUFDUyxZQUg1QjtBQUlBLFFBQU1HLGlCQUFpQixHQUFHTix5QkFBeUIsSUFBSU8sY0FBYyxDQUFDTCxtQkFBRCxFQUFzQlIsc0JBQXRCLENBQXJFO0FBQ0EsUUFBTWMsVUFBVSw0QkFBR04sbUJBQW1CLENBQUNPLFdBQXZCLG9GQUFHLHNCQUFpQ0MsTUFBcEMsMkRBQUcsdUJBQXlDQyxJQUE1RDtBQUNBLFFBQU1DLGdCQUFnQixHQUFHQyx1QkFBdUIsQ0FDL0NuQixzQkFBc0IsQ0FBQ29CLGVBRHdCLEVBRS9DcEIsc0JBQXNCLENBQUNxQixvQkFGd0IsQ0FBdkIsQ0FHdkJDLEdBSHVCLENBR25CLFVBQUFDLEVBQUU7QUFBQSxhQUFJQSxFQUFFLENBQUNDLElBQVA7QUFBQSxLQUhpQixDQUF6QjtBQUlBcEIsSUFBQUEseUJBQXlCLEdBQUdxQix5QkFBeUIsQ0FBQ2pCLG1CQUFELEVBQXNCSix5QkFBdEIsQ0FBckQ7O0FBQ0EsUUFBSVEsaUJBQWlCLEtBQUssT0FBdEIsSUFBaUNFLFVBQXJDLEVBQWlEO0FBQ2hELGNBQVFGLGlCQUFSO0FBQ0MsYUFBSyxhQUFMO0FBQ0NmLFVBQUFBLGFBQWEsR0FBRzZCLG9CQUFvQixDQUFDWixVQUFELEVBQWFJLGdCQUFiLENBQXBDO0FBQ0E7O0FBQ0QsYUFBSyxrQkFBTDtBQUNDckIsVUFBQUEsYUFBYSxHQUFHOEIsWUFBWSxDQUMzQixDQUFDRCxvQkFBb0IsQ0FBQ1osVUFBRCxFQUFhSSxnQkFBYixDQUFyQixFQUEyRWQseUJBQTNFLENBRDJCLEVBRTNCd0IsZUFBZSxDQUFDQyxrQkFGVyxDQUE1QjtBQUlBOztBQUNELGFBQUssa0JBQUw7QUFDQ2hDLFVBQUFBLGFBQWEsR0FBRzhCLFlBQVksQ0FDM0IsQ0FBQ3ZCLHlCQUFELEVBQTRCc0Isb0JBQW9CLENBQUNaLFVBQUQsRUFBYUksZ0JBQWIsQ0FBaEQsQ0FEMkIsRUFFM0JVLGVBQWUsQ0FBQ0Msa0JBRlcsQ0FBNUI7QUFJQTtBQWZGO0FBaUJBOztBQUNELFdBQU9oQyxhQUFQO0FBQ0EsR0F0Q007Ozs7QUF3Q0EsTUFBTWlDLHNCQUFzQixHQUFHLFVBQVNyQyxpQkFBVCxFQUE2Q0MsZUFBN0MsRUFBb0c7QUFDekksV0FBT0Msb0JBQW9CLENBQUNGLGlCQUFELEVBQW9CLFNBQXBCLEVBQStCLFVBQUNHLFVBQUQsRUFBa0Q7QUFDM0csVUFBSUMsYUFBOEIsR0FBR0QsVUFBckM7O0FBQ0EsVUFBSUEsVUFBVSxDQUFDRSxTQUFYLEtBQXlCQyxTQUE3QixFQUF3QztBQUN2QztBQUNBLFlBQU1DLHNCQUFzQixHQUFHQyxvQkFBb0IsQ0FBQ1AsZUFBRCxFQUFrQkUsVUFBVSxDQUFDTSxJQUE3QixDQUFuRDtBQUNBTCxRQUFBQSxhQUFhLEdBQUc0Qix5QkFBeUIsQ0FBQ3pCLHNCQUFzQixDQUFDUyxZQUF4QixFQUFzQ2IsVUFBdEMsQ0FBekM7QUFDQTs7QUFDRCxhQUFPQyxhQUFQO0FBQ0EsS0FSMEIsQ0FBM0I7QUFTQSxHQVZNOzs7O0FBWUEsTUFBTWtDLGNBQWMsR0FBRyxVQUM3QkMsNEJBRDZCLEVBRTdCM0Isa0JBRjZCLEVBSW9CO0FBQUE7O0FBQUEsUUFEakQ0QixRQUNpRCx1RUFEN0IsS0FDNkI7O0FBQ2pELFFBQ0MsMEJBQUFELDRCQUE0QixDQUFDdkIsWUFBN0IsZ0ZBQTJDeUIsS0FBM0MsTUFBcUQsc0NBQXJELElBQ0EsMkJBQUFGLDRCQUE0QixDQUFDdkIsWUFBN0Isa0ZBQTJDeUIsS0FBM0MsTUFBcUQsMENBRHJELElBRUEsMkJBQUFGLDRCQUE0QixDQUFDdkIsWUFBN0Isa0ZBQTJDeUIsS0FBM0MsTUFBcUQsd0RBRnJELElBR0EsMkJBQUFGLDRCQUE0QixDQUFDdkIsWUFBN0Isa0ZBQTJDeUIsS0FBM0MsTUFBcUQsNkNBSnRELEVBS0U7QUFDRDtBQUNBLFVBQU1DLFVBQVUsR0FBR0gsNEJBQTRCLENBQUN2QixZQUE3QixDQUEwQzJCLEtBQTFDLElBQW1ELEVBQXRFO0FBQ0EsYUFBT0MsY0FBYyxDQUFDQyxRQUFRLENBQUNILFVBQUQsQ0FBVCxDQUFyQjtBQUNBOztBQUNELFFBQUlJLGdCQUFnQixDQUFDUCw0QkFBNEIsQ0FBQ3ZCLFlBQTlCLENBQWhCLElBQStEdUIsNEJBQTRCLENBQUN2QixZQUE3QixDQUEwQ0UsT0FBN0csRUFBc0g7QUFDckgsVUFBTTZCLFFBQVEsR0FBR1IsNEJBQTRCLENBQUNTLGdCQUE3QixDQUE4Q0MsV0FBOUMsQ0FBMERWLDRCQUE0QixDQUFDdkIsWUFBN0IsQ0FBMENQLElBQXBHLEVBQTBHLElBQTFHLENBQWpCO0FBQ0E4QixNQUFBQSw0QkFBNEIsQ0FBQ3ZCLFlBQTdCLEdBQTRDK0IsUUFBUSxDQUFDRyxNQUFyRDtBQUNBSCxNQUFBQSxRQUFRLENBQUNJLGNBQVQsQ0FBd0JDLE9BQXhCLENBQWdDLFVBQUNDLE9BQUQsRUFBa0I7QUFDakQsWUFBSSxDQUFBQSxPQUFPLFNBQVAsSUFBQUEsT0FBTyxXQUFQLFlBQUFBLE9BQU8sQ0FBRUMsS0FBVCxNQUFtQixvQkFBdkIsRUFBNkM7QUFDNUNmLFVBQUFBLDRCQUE0QixDQUFDWCxvQkFBN0IsQ0FBa0QyQixJQUFsRCxDQUF1REYsT0FBdkQ7QUFDQTtBQUNELE9BSkQ7QUFLQTs7QUFDRCxRQUFNRyxrQkFBa0IsR0FBR3hELGlCQUFpQixDQUFDeUQsa0NBQWtDLENBQUNsQiw0QkFBRCxDQUFuQyxDQUE1QztBQUNBLFFBQUltQixjQUFKOztBQUNBLFFBQ0MsMEJBQUFuQiw0QkFBNEIsQ0FBQ3ZCLFlBQTdCLG9HQUEyQ00sV0FBM0Msb0dBQXdEcUMsUUFBeEQsMEVBQWtFQyxJQUFsRSw4QkFDQXJCLDRCQUE0QixDQUFDdkIsWUFEN0IsNkVBQ0EsdUJBQTJDTSxXQUQzQyw4RUFDQSx1QkFBd0RxQyxRQUR4RCxvREFDQSx3QkFBa0VFLFdBRm5FLEVBR0U7QUFDREgsTUFBQUEsY0FBYyxHQUFHSSw0QkFBNEIsQ0FBQ3ZCLDRCQUFELEVBQStCaUIsa0JBQS9CLENBQTdDOztBQUNBLFVBQUksQ0FBQTVDLGtCQUFrQixTQUFsQixJQUFBQSxrQkFBa0IsV0FBbEIsWUFBQUEsa0JBQWtCLENBQUVtRCxrQkFBcEIsTUFBMkMsUUFBL0MsRUFBeUQ7QUFDeEQ7QUFDQ0wsUUFBQUEsY0FBRCxDQUFrRE0sYUFBbEQsbUNBQ0tOLGNBQUQsQ0FBa0RNLGFBRHREO0FBRUNDLFVBQUFBLFdBQVcsRUFBRTtBQUZkO0FBSUE7QUFDRCxLQVpELE1BWU87QUFDTlAsTUFBQUEsY0FBYyxHQUFHaEQsNkJBQTZCLENBQUM2Qiw0QkFBRCxFQUErQmlCLGtCQUEvQixFQUFtRDVDLGtCQUFuRCxDQUE5QztBQUNBOztBQUNELFFBQUk0QixRQUFKLEVBQWM7QUFDYixhQUFPa0IsY0FBUDtBQUNBLEtBdkNnRCxDQXdDakQ7OztBQUNBLFdBQU9kLGNBQWMsQ0FBQ2MsY0FBRCxDQUFyQjtBQUNBLEdBOUNNOzs7O0FBZ0RBLE1BQU1RLGVBQWUsR0FBRyxVQUM5QjNCLDRCQUQ4QixFQUU5QjNCLGtCQUY4QixFQVFGO0FBQUEsUUFMNUJ1RCxVQUs0Qix1RUFMTixLQUtNO0FBQUEsUUFKNUJDLGdCQUk0Qix1RUFKQSxLQUlBO0FBQUEsUUFINUJDLGlCQUc0QjtBQUFBLFFBRjVCQyxhQUU0QjtBQUFBLFFBRDVCQyxlQUM0Qix1RUFERCxLQUNDOztBQUM1QixRQUFJekIsZ0JBQWdCLENBQUNQLDRCQUE0QixDQUFDdkIsWUFBOUIsQ0FBaEIsSUFBK0R1Qiw0QkFBNEIsQ0FBQ3ZCLFlBQTdCLENBQTBDRSxPQUE3RyxFQUFzSDtBQUNySCxVQUFNNkIsUUFBUSxHQUFHUiw0QkFBNEIsQ0FBQ1MsZ0JBQTdCLENBQThDQyxXQUE5QyxDQUEwRFYsNEJBQTRCLENBQUN2QixZQUE3QixDQUEwQ1AsSUFBcEcsRUFBMEcsSUFBMUcsQ0FBakI7QUFDQThCLE1BQUFBLDRCQUE0QixDQUFDdkIsWUFBN0IsR0FBNEMrQixRQUFRLENBQUNHLE1BQXJEO0FBQ0FILE1BQUFBLFFBQVEsQ0FBQ0ksY0FBVCxDQUF3QkMsT0FBeEIsQ0FBZ0MsVUFBQ0MsT0FBRCxFQUFrQjtBQUNqRCxZQUFJQSxPQUFPLElBQUlBLE9BQU8sQ0FBQ0MsS0FBUixLQUFrQixvQkFBakMsRUFBdUQ7QUFDdERmLFVBQUFBLDRCQUE0QixDQUFDWCxvQkFBN0IsQ0FBa0QyQixJQUFsRCxDQUF1REYsT0FBdkQ7QUFDQTtBQUNELE9BSkQ7QUFLQTs7QUFFRCxRQUFNckMsWUFBWSxHQUFHdUIsNEJBQTRCLENBQUN2QixZQUFsRDs7QUFDQSxRQUFJd0QsVUFBVSxDQUFDeEQsWUFBRCxDQUFkLEVBQThCO0FBQUE7O0FBQzdCLFVBQUl3QyxrQkFBdUQsR0FBR3hELGlCQUFpQixDQUM5RXlELGtDQUFrQyxDQUFDbEIsNEJBQUQsQ0FENEMsQ0FBL0U7O0FBR0EsbUNBQUl2QixZQUFZLENBQUNNLFdBQWpCLDRFQUFJLHNCQUEwQm1ELGFBQTlCLG1EQUFJLHVCQUF5Q0MsY0FBN0MsRUFBNkQ7QUFDNURsQixRQUFBQSxrQkFBa0IsQ0FBQ3ZDLElBQW5CLEdBQTBCLHdCQUExQjtBQUNBLE9BRkQsTUFFTztBQUNOLFlBQU0wRCxhQUFhLEdBQUdDLHlCQUF5QixDQUFDckMsNEJBQTRCLENBQUN2QixZQUE5QixDQUEvQztBQUNBLFlBQU02RCxpQkFBaUIsR0FBR0MsNkJBQTZCLENBQUN2Qyw0QkFBNEIsQ0FBQ3ZCLFlBQTlCLENBQXZEOztBQUNBLFlBQUksQ0FBQ21ELFVBQUQsS0FBZ0JRLGFBQWEsSUFBSUUsaUJBQWpDLENBQUosRUFBeUQ7QUFDeERyQixVQUFBQSxrQkFBa0IsR0FBR00sNEJBQTRCLENBQUN2Qiw0QkFBRCxFQUErQmlCLGtCQUEvQixDQUFqRDs7QUFDQSxjQUNFbUIsYUFBYSxJQUFJLENBQUNJLFlBQVksQ0FBQ0osYUFBRCxDQUEvQixJQUNDRSxpQkFBaUIsSUFBSSxDQUFDRSxZQUFZLENBQUNGLGlCQUFELENBRG5DLElBRUEsQ0FBQWpFLGtCQUFrQixTQUFsQixJQUFBQSxrQkFBa0IsV0FBbEIsWUFBQUEsa0JBQWtCLENBQUVtRCxrQkFBcEIsTUFBMkMsUUFINUMsRUFJRTtBQUNEO0FBQ0E7QUFDQSxnQkFBSSxDQUFDUCxrQkFBa0IsQ0FBQ1EsYUFBeEIsRUFBdUM7QUFDdENSLGNBQUFBLGtCQUFrQixDQUFDUSxhQUFuQixHQUFtQyxFQUFuQztBQUNBOztBQUNELGdCQUFJTyxlQUFKLEVBQXFCO0FBQ3BCZixjQUFBQSxrQkFBa0IsQ0FBQ1EsYUFBbkIsQ0FBaUNnQixVQUFqQyxHQUE4QyxLQUE5QztBQUNBLGFBRkQsTUFFTztBQUNOeEIsY0FBQUEsa0JBQWtCLENBQUNRLGFBQW5CLENBQWlDQyxXQUFqQyxHQUErQyxLQUEvQztBQUNBO0FBQ0Q7QUFDRCxTQWxCRCxNQWtCTztBQUNOVCxVQUFBQSxrQkFBa0IsR0FBR3hCLHlCQUF5QixDQUFDaEIsWUFBRCxFQUFld0Msa0JBQWYsQ0FBOUM7O0FBQ0EsY0FBSUEsa0JBQWtCLENBQUN2QyxJQUFuQixLQUE0QixnQ0FBaEMsRUFBa0U7QUFDakV1QyxZQUFBQSxrQkFBa0IsQ0FBQ1EsYUFBbkIsR0FBbUM7QUFDbENpQixjQUFBQSxxQkFBcUIsRUFBRTtBQURXLGFBQW5DO0FBR0E7QUFDRDtBQUNEOztBQUNELFVBQUliLGdCQUFKLEVBQXNCO0FBQ3JCLGVBQU9aLGtCQUFrQixDQUFDUSxhQUExQjtBQUNBLGVBQU9SLGtCQUFrQixDQUFDMEIsV0FBMUI7QUFDQSxlQUFPMUIsa0JBQWtCLENBQUN2QyxJQUExQjtBQUNBOztBQUNELFVBQUlvRCxpQkFBSixFQUF1QjtBQUN0QmIsUUFBQUEsa0JBQWtCLENBQUMyQixVQUFuQixHQUFnQ2QsaUJBQWhDO0FBQ0E7O0FBQ0QsVUFBSUMsYUFBSixFQUFtQjtBQUNsQmQsUUFBQUEsa0JBQWtCLENBQUM0QixVQUFuQixHQUFnQyxLQUFoQztBQUNBOztBQUNELGFBQU94QyxjQUFjLENBQUNZLGtCQUFELENBQXJCO0FBQ0EsS0FoREQsTUFnRE87QUFDTixVQUNDLENBQUF4QyxZQUFZLFNBQVosSUFBQUEsWUFBWSxXQUFaLFlBQUFBLFlBQVksQ0FBRXlCLEtBQWQsdURBQ0EsQ0FBQXpCLFlBQVksU0FBWixJQUFBQSxZQUFZLFdBQVosWUFBQUEsWUFBWSxDQUFFeUIsS0FBZCw4REFGRCxFQUdFO0FBQ0QsZUFBT0csY0FBYyxDQUFDWCxvQkFBb0IsQ0FBRWpCLFlBQUQsQ0FBbUMyQixLQUFwQyxDQUFyQixDQUFyQjtBQUNBLE9BTEQsTUFLTztBQUNOLGVBQU8sRUFBUDtBQUNBO0FBQ0Q7QUFDRCxHQTlFTTs7OztBQWdGQSxNQUFNMEMsY0FBYyxHQUFHLFVBQzdCOUMsNEJBRDZCLEVBRTdCM0Isa0JBRjZCLEVBR0Q7QUFDNUIsUUFBTTBFLGlCQUFpQixHQUFHQyw2QkFBNkIsQ0FBQ2hELDRCQUE0QixDQUFDdkIsWUFBOUIsQ0FBdkQ7QUFDQSxRQUFNd0UscUJBQXFCLEdBQUdDLGlDQUFpQyxDQUFDbEQsNEJBQTRCLENBQUN2QixZQUE5QixDQUEvRDs7QUFDQSxRQUFJc0UsaUJBQWlCLElBQUlFLHFCQUF6QixFQUFnRDtBQUMvQyxVQUFNRSxrQkFBa0IsR0FBR0osaUJBQWlCLElBQUlFLHFCQUFoRDtBQUNBLFVBQU1HLCtCQUErQixHQUFHbkYsb0JBQW9CLENBQUMrQiw0QkFBRCxFQUErQm1ELGtCQUEvQixDQUE1RDtBQUNBLGFBQU94QixlQUFlLENBQUN5QiwrQkFBRCxFQUFrQy9FLGtCQUFsQyxDQUF0QjtBQUNBOztBQUNELFdBQU9OLFNBQVA7QUFDQSxHQVpNOzs7O0FBY0EsTUFBTXNGLHdCQUF3QixHQUFHLFVBQ3ZDckQsNEJBRHVDLEVBRXZDM0Isa0JBRnVDLEVBR1g7QUFDNUIsUUFBTWlGLGdCQUFnQixHQUFHQyw2QkFBNkIsQ0FBQ3ZELDRCQUE0QixDQUFDdkIsWUFBOUIsQ0FBdEQ7O0FBQ0EsUUFBSTZFLGdCQUFKLEVBQXNCO0FBQ3JCLFVBQU1FLGlCQUFpQixHQUFHdkYsb0JBQW9CLENBQUMrQiw0QkFBRCxFQUErQnNELGdCQUEvQixDQUE5QztBQUNBLFVBQU1HLGFBQWEsR0FBRzlCLGVBQWUsQ0FBQzZCLGlCQUFELEVBQW9CbkYsa0JBQXBCLEVBQXdDLElBQXhDLEVBQThDLElBQTlDLEVBQW9EO0FBQUVxRixRQUFBQSxTQUFTLEVBQUU7QUFBYixPQUFwRCxDQUFyQztBQUNBLGFBQU9ELGFBQVA7QUFDQTs7QUFDRCxXQUFPMUYsU0FBUDtBQUNBLEdBWE07Ozs7QUFhQSxNQUFNNEYsZUFBZSxHQUFHLFVBQzlCQyxhQUQ4QixFQUU5QkMsVUFGOEIsRUFHOUJDLGNBSDhCLEVBSTlCekYsa0JBSjhCLEVBSzlCMEYsY0FMOEIsRUFNZjtBQUFBOztBQUNmO0FBQ0EsUUFBTUMsU0FBbUIsR0FBSXpELGdCQUFnQixDQUFDcUQsYUFBRCxDQUFoQixJQUFtQ0EsYUFBYSxDQUFDakYsT0FBbEQsSUFBK0RpRixhQUEzRjs7QUFDQSxRQUNDRyxjQUFjLElBQ2QsMkJBQUNDLFNBQVMsQ0FBQ2pGLFdBQVgsNEVBQUMsc0JBQXVCa0YsRUFBeEIsbURBQUMsdUJBQTJCQyxVQUE1QixDQURBLElBRUEsRUFBRUYsU0FBUyxDQUFDdEYsSUFBVixLQUFtQixZQUFyQixDQUZBLElBR0EsRUFBRSwwQkFBQXNGLFNBQVMsQ0FBQ2pGLFdBQVYsb0dBQXVCbUQsYUFBdkIsMEVBQXNDQyxjQUF0Qyw4QkFBd0Q2QixTQUFTLENBQUNqRixXQUFsRSw2RUFBd0QsdUJBQXVCbUQsYUFBL0UsbURBQXdELHVCQUFzQ2lDLGFBQWhHLENBSkQsRUFLRTtBQUNELGFBQU8sdUJBQVA7QUFDQTs7QUFDRCxRQUFJLENBQUNQLGFBQUQsSUFBa0IsT0FBT0EsYUFBUCxLQUF5QixRQUEvQyxFQUF5RDtBQUN4RCxhQUFPLE1BQVA7QUFDQTs7QUFDRCxRQUFJSSxTQUFTLENBQUN0RixJQUFWLEtBQW1CLFlBQXZCLEVBQXFDO0FBQ3BDLGFBQU8sTUFBUDtBQUNBOztBQUNELGtDQUFJc0YsU0FBUyxDQUFDakYsV0FBZCw2RUFBSSx1QkFBdUJrRixFQUEzQixtREFBSSx1QkFBMkJDLFVBQS9CLEVBQTJDO0FBQzFDLGFBQU8sUUFBUDtBQUNBOztBQUNELFlBQVFMLFVBQVUsQ0FBQzNELEtBQW5CO0FBQ0MsV0FBSywwQ0FBTDtBQUNDLGVBQU8sV0FBUDs7QUFDRCxXQUFLLG1EQUFMO0FBQ0MsWUFBSSx1QkFBQTJELFVBQVUsQ0FBQ08sTUFBWCxtR0FBbUJ6RixPQUFuQixnRkFBNEJ1QixLQUE1QixNQUFzQywwQ0FBMUMsRUFBc0Y7QUFDckYsaUJBQU8sV0FBUDtBQUNBLFNBRkQsTUFFTyxJQUFJLHdCQUFBMkQsVUFBVSxDQUFDTyxNQUFYLHFHQUFtQnpGLE9BQW5CLGdGQUE0QnVCLEtBQTVCLE1BQXNDLG1EQUExQyxFQUErRjtBQUNyRyxpQkFBTyxTQUFQO0FBQ0E7O0FBQ0Q7O0FBQ0QsV0FBSywrQ0FBTDtBQUNBLFdBQUssOERBQUw7QUFDQyxlQUFPLFFBQVA7O0FBQ0QsV0FBSyx3REFBTDtBQUNDLGVBQU8sTUFBUDtBQWRGOztBQWdCQSxRQUFJNEQsY0FBSixhQUFJQSxjQUFKLHdDQUFJQSxjQUFjLENBQUVyRCxnQkFBcEIsNEVBQUksc0JBQWtDMUIsV0FBdEMsNkVBQUksdUJBQStDQyxNQUFuRCxtREFBSSx1QkFBdURxRixXQUEzRCxFQUF3RTtBQUN2RSxVQUFNQyxhQUFhLEdBQUdSLGNBQWMsQ0FBQ3JELGdCQUFmLENBQWdDMUIsV0FBaEMsQ0FBNENDLE1BQTVDLENBQW1EcUYsV0FBekU7QUFDQSxVQUFNRSxjQUFjLEdBQUcsQ0FBQ0QsYUFBYSxDQUFDRSxLQUFkLENBQW9CLFVBQVNDLElBQVQsRUFBZTtBQUFBOztBQUMxRCxlQUFPLENBQUFBLElBQUksU0FBSixJQUFBQSxJQUFJLFdBQUosNkJBQUFBLElBQUksQ0FBRTlGLE9BQU4sZ0VBQWVhLElBQWYsTUFBd0J3RSxTQUFTLENBQUN4RSxJQUF6QztBQUNBLE9BRnVCLENBQXhCOztBQUdBLFVBQUkrRSxjQUFjLElBQUlsRyxrQkFBa0IsQ0FBQ3FHLGdCQUF6QyxFQUEyRDtBQUFBOztBQUMxRCxzQ0FBSVosY0FBYyxDQUFDYSxlQUFuQiw2RUFBSSx1QkFBZ0M1RixXQUFwQyw2RUFBSSx1QkFBNkNDLE1BQWpELG1EQUFJLHVCQUFxRDRGLFNBQXpELEVBQW9FO0FBQ25FO0FBQ0E7QUFDQSxpQkFBTywrQkFBUDtBQUNBOztBQUNELGVBQU92RyxrQkFBa0IsQ0FBQ3FHLGdCQUFuQixLQUF3QyxrQkFBeEMsR0FBNkQsa0JBQTdELEdBQWtGLGtCQUF6RjtBQUNBO0FBQ0Q7O0FBQ0QsUUFBSWIsVUFBVSxDQUFDZ0IsV0FBZixFQUE0QjtBQUMzQixhQUFPLGNBQVA7QUFDQTs7QUFDRCxrQ0FBSWIsU0FBUyxDQUFDakYsV0FBZCw4RUFBSSx1QkFBdUJxQyxRQUEzQixvREFBSSx3QkFBaUNFLFdBQXJDLEVBQWtEO0FBQ2pELFVBQUlqRCxrQkFBa0IsQ0FBQ21ELGtCQUFuQixLQUEwQyxRQUE5QyxFQUF3RDtBQUN2RCxlQUFPLE1BQVA7QUFDQTs7QUFDRCxhQUFPLG9CQUFQO0FBQ0E7O0FBQ0QsUUFBSSwyQkFBQXdDLFNBQVMsQ0FBQ2pGLFdBQVYsdUdBQXVCbUQsYUFBdkIsNEVBQXNDQyxjQUF0QywrQkFBd0Q2QixTQUFTLENBQUNqRixXQUFsRSwrRUFBd0Qsd0JBQXVCbUQsYUFBL0Usb0RBQXdELHdCQUFzQ2lDLGFBQWxHLEVBQWlIO0FBQ2hILGFBQU8sTUFBUDtBQUNBOztBQUNELG1DQUFJSCxTQUFTLENBQUNqRixXQUFkLCtFQUFJLHdCQUF1QmtGLEVBQTNCLG9EQUFJLHdCQUEyQmEsYUFBL0IsRUFBOEM7QUFDN0MsYUFBTyxnQkFBUDtBQUNBOztBQUNELFFBQU1DLHFCQUFxQixHQUFHLENBQUFqQixjQUFjLFNBQWQsSUFBQUEsY0FBYyxXQUFkLHNDQUFBQSxjQUFjLENBQUVyRCxnQkFBaEIsa0ZBQWtDcEIsb0JBQWxDLEtBQTBELEVBQXhGO0FBQ0EsUUFBSTJGLHNDQUFzQyxHQUFHLEtBQTdDO0FBQ0FELElBQUFBLHFCQUFxQixDQUFDbEUsT0FBdEIsQ0FBOEIsVUFBQW9FLFFBQVEsRUFBSTtBQUN6QyxVQUFJQSxRQUFRLENBQUNDLHFCQUFULElBQWtDRCxRQUFRLENBQUNDLHFCQUFULENBQStCQyxNQUFyRSxFQUE2RTtBQUM1RUYsUUFBQUEsUUFBUSxDQUFDQyxxQkFBVCxDQUErQnJFLE9BQS9CLENBQXVDLFVBQUF1RSxjQUFjLEVBQUk7QUFDeEQsY0FBSSxDQUFBQSxjQUFjLFNBQWQsSUFBQUEsY0FBYyxXQUFkLFlBQUFBLGNBQWMsQ0FBRUMsY0FBaEIsTUFBbUNyQixTQUFTLENBQUN4RSxJQUFqRCxFQUF1RDtBQUFBOztBQUN0RCxnQkFBSXlGLFFBQUosYUFBSUEsUUFBSix1Q0FBSUEsUUFBUSxDQUFFcEMsVUFBZCwwRUFBSSxxQkFBc0I5RCxXQUExQiw0RUFBSSxzQkFBbUNrRixFQUF2QyxtREFBSSx1QkFBdUNxQixlQUEzQyxFQUE0RDtBQUMzRE4sY0FBQUEsc0NBQXNDLEdBQUcsSUFBekM7QUFDQTtBQUNEO0FBQ0QsU0FORDtBQU9BO0FBQ0QsS0FWRDs7QUFXQSxRQUFJQSxzQ0FBSixFQUE0QztBQUMzQyxhQUFPLHVCQUFQO0FBQ0E7O0FBQ0QsbUNBQUloQixTQUFTLENBQUNqRixXQUFkLCtFQUFJLHdCQUF1QkMsTUFBM0Isb0RBQUksd0JBQStCdUcsY0FBbkMsRUFBbUQ7QUFDbEQsYUFBTyxhQUFQO0FBQ0E7O0FBQ0QsUUFBSTFCLFVBQVUsQ0FBQzNELEtBQVgsS0FBcUIsNkNBQXpCLEVBQXdFO0FBQ3ZFLGFBQU8sTUFBUDtBQUNBOztBQUNELFdBQU8sTUFBUDtBQUNBLEdBOUZNOzs7O0FBZ0dBLE1BQU1zRixZQUFZLEdBQUcsVUFDM0I1QixhQUQyQixFQUUzQkMsVUFGMkIsRUFHM0I0QixtQkFIMkIsRUFJUjtBQUFBOztBQUNuQjtBQUNBLFFBQUksQ0FBQzdCLGFBQUQsSUFBa0IsT0FBT0EsYUFBUCxLQUF5QixRQUEvQyxFQUF5RDtBQUN4RCxhQUFPLElBQVA7QUFDQTs7QUFDRCxRQUFNSSxTQUFtQixHQUFJekQsZ0JBQWdCLENBQUNxRCxhQUFELENBQWhCLElBQW1DQSxhQUFhLENBQUNqRixPQUFsRCxJQUErRGlGLGFBQTNGOztBQUNBLFFBQUlJLFNBQVMsQ0FBQ3RGLElBQVYsS0FBbUIsWUFBdkIsRUFBcUM7QUFDcEMsYUFBTyxNQUFQO0FBQ0E7O0FBQ0QsWUFBUW1GLFVBQVUsQ0FBQzNELEtBQW5CO0FBQ0MsV0FBSyxtREFBTDtBQUNDLFlBQUksd0JBQUEyRCxVQUFVLENBQUNPLE1BQVgscUdBQW1CekYsT0FBbkIsZ0ZBQTRCdUIsS0FBNUIsTUFBc0MsbURBQTFDLEVBQStGO0FBQzlGLGlCQUFPLElBQVA7QUFDQSxTQUZELE1BRU8sSUFBSSx3QkFBQTJELFVBQVUsQ0FBQ08sTUFBWCxxR0FBbUJ6RixPQUFuQixnRkFBNEIrRyxhQUE1QixNQUE4Qyw2QkFBbEQsRUFBaUY7QUFDdkYsaUJBQU8saUJBQVA7QUFDQTs7QUFDRDs7QUFDRCxXQUFLLDBDQUFMO0FBQ0MsWUFBSSxDQUFBN0IsVUFBVSxTQUFWLElBQUFBLFVBQVUsV0FBVixZQUFBQSxVQUFVLENBQUU2QixhQUFaLE1BQThCLDZCQUFsQyxFQUFpRTtBQUNoRSxpQkFBTyxpQkFBUDtBQUNBOztBQUNEOztBQUNELFdBQUssK0NBQUw7QUFDQSxXQUFLLHdEQUFMO0FBQ0EsV0FBSyw4REFBTDtBQUNDLGVBQU8sSUFBUDtBQWhCRjs7QUFrQkEsUUFBTXRELGFBQWEsR0FBR0MseUJBQXlCLENBQUMyQixTQUFELENBQS9DO0FBQ0EsUUFBTTFCLGlCQUFpQixHQUFHQyw2QkFBNkIsQ0FBQ3lCLFNBQUQsQ0FBdkQ7O0FBQ0EsUUFDRTJCLGNBQWMsQ0FBQ25ELFlBQWYsQ0FBNEJ3QixTQUE1QixLQUEwQ0EsU0FBUyxDQUFDdEYsSUFBVixLQUFtQixhQUE5RCxJQUNDMEQsYUFBYSxJQUFJdUQsY0FBYyxDQUFDbkQsWUFBZixDQUE0QkosYUFBNUIsQ0FEbEIsSUFFQ0UsaUJBQWlCLElBQUlxRCxjQUFjLENBQUNuRCxZQUFmLENBQTRCRixpQkFBNUIsQ0FIdkIsRUFJRTtBQUNELFVBQUksQ0FBQW1ELG1CQUFtQixTQUFuQixJQUFBQSxtQkFBbUIsV0FBbkIsWUFBQUEsbUJBQW1CLENBQUVqRSxrQkFBckIsTUFBNEMsUUFBaEQsRUFBMEQ7QUFDekQsZUFBTyxPQUFQO0FBQ0E7O0FBQ0QsYUFBTyxvQkFBUDtBQUNBOztBQUNELFFBQUksMkJBQUF3QyxTQUFTLENBQUNqRixXQUFWLHVHQUF1QmtGLEVBQXZCLHVHQUEyQmEsYUFBM0IsNEVBQTBDYyxPQUExQyxNQUF1RDVCLFNBQVMsQ0FBQ3RGLElBQVYsS0FBbUIsWUFBOUUsRUFBNEY7QUFDM0YsYUFBTyxVQUFQO0FBQ0E7O0FBQ0QsWUFBUXNGLFNBQVMsQ0FBQ3RGLElBQWxCO0FBQ0MsV0FBSyxVQUFMO0FBQ0MsZUFBTyxZQUFQOztBQUNELFdBQUssVUFBTDtBQUNBLFdBQUssZUFBTDtBQUNDLGVBQU8sWUFBUDs7QUFDRCxXQUFLLGNBQUw7QUFDQSxXQUFLLG9CQUFMO0FBQ0MsZUFBTyxnQkFBUDs7QUFDRCxXQUFLLGFBQUw7QUFDQyxlQUFPLFVBQVA7QUFWRjs7QUFZQSxRQUFJLDJCQUFBc0YsU0FBUyxDQUFDakYsV0FBVix1R0FBdUJxQyxRQUF2Qiw0RUFBaUNFLFdBQWpDLCtCQUFnRDBDLFNBQVMsQ0FBQ2pGLFdBQTFELCtFQUFnRCx3QkFBdUJxQyxRQUF2RSxvREFBZ0Qsd0JBQWlDQyxJQUFyRixFQUEyRjtBQUMxRixhQUFPLGVBQVA7QUFDQTs7QUFDRCxXQUFPLE9BQVA7QUFDQSxHQTlETTtBQWdFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sTUFBTXdFLG9CQUFvQixHQUFHLFVBQ25DQyxrQkFEbUMsRUFFbkNyRSxhQUZtQyxFQUdQO0FBQUE7O0FBQzVCLFFBQU1oRCxZQUF5RCxHQUFHcUgsa0JBQWtCLENBQUNySCxZQUFyRjtBQUNBLFFBQUlzSCxhQUFKOztBQUNBLFFBQUl0SCxZQUFKLEVBQWtCO0FBQ2pCLGNBQVFBLFlBQVksQ0FBQ3lCLEtBQXJCO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0M2RixVQUFBQSxhQUFhLEdBQUd0SCxZQUFZLENBQUMyQixLQUFiLENBQW1CekIsT0FBbkM7QUFDQTs7QUFDRDtBQUNDO0FBQ0EsY0FBSSxDQUFBRixZQUFZLFNBQVosSUFBQUEsWUFBWSxXQUFaLG9DQUFBQSxZQUFZLENBQUUyRixNQUFkLHVHQUFzQnpGLE9BQXRCLGdGQUErQnVCLEtBQS9CLGdEQUFKLEVBQThFO0FBQUE7O0FBQzdFNkYsWUFBQUEsYUFBYSw2QkFBR3RILFlBQVksQ0FBQzJGLE1BQWIsQ0FBb0J6RixPQUF2QiwyREFBRyx1QkFBNkJ5QixLQUE3QixDQUFtQ3pCLE9BQW5EO0FBQ0E7QUFDQTs7QUFDRjs7QUFDQTtBQUNBO0FBQ0E7QUFDQ29ILFVBQUFBLGFBQWEsR0FBR2hJLFNBQWhCO0FBbkJGO0FBcUJBOztBQUNELFFBQU1pSSwrQkFBK0IsR0FBR3ZFLGFBQWEsU0FBYixJQUFBQSxhQUFhLFdBQWIsSUFBQUEsYUFBYSxDQUFFd0UsV0FBZixHQUE2QmhDLEVBQUUsQ0FBQ2lDLFVBQWhDLEdBQTZDNUYsUUFBUSxDQUFDLEtBQUQsQ0FBN0Y7QUFDQSxRQUFNNkYsZ0JBQWdCLEdBQUcxRSxhQUFhLFNBQWIsSUFBQUEsYUFBYSxXQUFiLElBQUFBLGFBQWEsQ0FBRXdFLFdBQWYsR0FBNkJHLEtBQUssQ0FBQ25DLEVBQUUsQ0FBQ29DLFNBQUosRUFBZSxDQUFmLENBQWxDLEdBQXNEL0YsUUFBUSxDQUFDLEtBQUQsQ0FBdkYsQ0EzQjRCLENBNkI1QjtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxXQUFPRCxjQUFjLENBQ3BCaUcsR0FBRyxNQUFILFNBQ0ksQ0FDRkMsR0FBRyxDQUFDSCxLQUFLLENBQUMxRyxvQkFBb0IsQ0FBQ2pCLFlBQUQsYUFBQ0EsWUFBRCxpREFBQ0EsWUFBWSxDQUFFTSxXQUFmLHFGQUFDLHVCQUEyQmtGLEVBQTVCLDJEQUFDLHVCQUErQnVDLE1BQWhDLENBQXJCLEVBQThELElBQTlELENBQU4sQ0FERCxFQUVGQyxNQUFNLENBQ0wsQ0FBQyxDQUFDVixhQURHLEVBRUxBLGFBQWEsSUFBSVEsR0FBRyxDQUFDSCxLQUFLLENBQUMxRyxvQkFBb0IsMEJBQUNxRyxhQUFhLENBQUNoSCxXQUFmLG9GQUFDLHNCQUEyQmtGLEVBQTVCLDJEQUFDLHVCQUErQnVDLE1BQWhDLENBQXJCLEVBQThELElBQTlELENBQU4sQ0FGZixFQUdMLElBSEssQ0FGSixFQU9GRSxFQUFFLENBQUNILEdBQUcsQ0FBQ1AsK0JBQUQsQ0FBSixFQUF1Q0csZ0JBQXZDLENBUEEsQ0FESixDQURvQixDQUFyQjtBQWFBLEdBakRNOzs7O0FBbURBLE1BQU1RLG1CQUFtQixHQUFHLFVBQ2xDL0MsYUFEa0MsRUFFbENnRCw0QkFGa0MsRUFHTjtBQUM1QixRQUFNNUMsU0FBUyxHQUFJekQsZ0JBQWdCLENBQUNxRCxhQUFELENBQWhCLElBQW1DQSxhQUFhLENBQUNqRixPQUFsRCxJQUErRGlGLGFBQWpGO0FBQ0EsUUFBTWlELFlBQVksR0FBR3RFLDZCQUE2QixDQUFDeUIsU0FBRCxDQUE3QixJQUE0QzNCLHlCQUF5QixDQUFDMkIsU0FBRCxDQUExRjs7QUFDQSxRQUFJLENBQUM2QyxZQUFMLEVBQW1CO0FBQ2xCLGFBQU94RyxjQUFjLENBQUMsRUFBRCxDQUFyQjtBQUNBOztBQUNELFFBQU15RyxrQkFBa0IsR0FBR1IsR0FBRyxDQUFDQyxHQUFHLENBQUNRLG9CQUFvQixDQUFDRixZQUFELENBQXJCLENBQUosRUFBMENOLEdBQUcsQ0FBQ1osY0FBYyxDQUFDcUIsVUFBZixDQUEwQkgsWUFBMUIsQ0FBRCxDQUE3QyxDQUE5QjtBQUNBLFdBQU94RyxjQUFjLENBQUNvRyxNQUFNLENBQUNLLGtCQUFELEVBQXFCLEVBQXJCLEVBQXlCRiw0QkFBekIsQ0FBUCxDQUFyQjtBQUNBLEdBWE07Ozs7QUFhQSxNQUFNSyxhQUFhLEdBQUcsVUFDNUJqSCw0QkFENEIsRUFFNUJrSCxpQ0FGNEIsRUFHNUI3SSxrQkFINEIsRUFLM0I7QUFBQSxRQURENEIsUUFDQyx1RUFEbUIsS0FDbkI7QUFDRCxRQUFJa0gsV0FBZ0IsR0FBR3hGLGVBQWUsQ0FBQzNCLDRCQUFELEVBQStCM0Isa0JBQS9CLEVBQW1ENEIsUUFBbkQsQ0FBdEM7O0FBQ0EsUUFBSWtILFdBQVcsS0FBSyxFQUFwQixFQUF3QjtBQUN2QkEsTUFBQUEsV0FBVyxHQUFHcEgsY0FBYyxDQUFDbUgsaUNBQUQsRUFBb0M3SSxrQkFBcEMsRUFBd0Q0QixRQUF4RCxDQUE1QjtBQUNBOztBQUNELFdBQU9rSCxXQUFQO0FBQ0EsR0FYTTs7OztBQWFBLE1BQU1DLGdCQUFnQixHQUFHLFVBQVNwSCw0QkFBVCxFQUFvRTtBQUFBOztBQUNuRyxRQUFNdkIsWUFBWSxHQUFHdUIsNEJBQTRCLENBQUN2QixZQUFsRDs7QUFDQSxRQUFJQSxZQUFKLGFBQUlBLFlBQUosd0NBQUlBLFlBQVksQ0FBRUUsT0FBbEIsNEVBQUksc0JBQXVCSSxXQUEzQiw2RUFBSSx1QkFBb0NtRCxhQUF4QyxtREFBSSx1QkFBbURDLGNBQXZELEVBQXVFO0FBQ3RFLGFBQU8sT0FBUDtBQUNBOztBQUNELFFBQUkxRCxZQUFKLGFBQUlBLFlBQUoseUNBQUlBLFlBQVksQ0FBRUUsT0FBbEIsNkVBQUksdUJBQXVCSSxXQUEzQiw2RUFBSSx1QkFBb0NtRCxhQUF4QyxtREFBSSx1QkFBbURpQyxhQUF2RCxFQUFzRTtBQUNyRSxhQUFPLE9BQVA7QUFDQTs7QUFDRCxXQUFPLE1BQVA7QUFDQSxHQVRNIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXREaXNwbGF5TW9kZSwgUHJvcGVydHlPclBhdGgsIERpc3BsYXlNb2RlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgeyBnZXRCaW5kaW5nV2l0aFVuaXRPckN1cnJlbmN5LCBmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQge1xuXHREYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRlbmhhbmNlRGF0YU1vZGVsUGF0aCxcblx0Z2V0UGF0aFJlbGF0aXZlTG9jYXRpb24sXG5cdGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGhcbn0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC9hbm5vdGF0aW9uLWNvbnZlcnRlclwiO1xuaW1wb3J0IHsgVUkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcbmltcG9ydCB7XG5cdEV4cHJlc3Npb24sXG5cdGFubm90YXRpb25FeHByZXNzaW9uLFxuXHRmb3JtYXRSZXN1bHQsXG5cdHRyYW5zZm9ybVJlY3Vyc2l2ZWx5LFxuXHRCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb24sXG5cdEJpbmRpbmdFeHByZXNzaW9uLFxuXHRjb21waWxlQmluZGluZyxcblx0Y29uc3RhbnQsXG5cdGJpbmRpbmdFeHByZXNzaW9uLFxuXHRhbmQsXG5cdG9yLFxuXHRpZkVsc2UsXG5cdGVxdWFsLFxuXHRub3QsXG5cdENvbXBsZXhUeXBlRXhwcmVzc2lvblxufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nRXhwcmVzc2lvblwiO1xuaW1wb3J0IHtcblx0aXNQYXRoRXhwcmVzc2lvbixcblx0Z2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eSxcblx0Z2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHksXG5cdGlzUHJvcGVydHksXG5cdGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHlQYXRoLFxuXHRnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eVBhdGgsXG5cdGhhc1ZhbHVlSGVscCxcblx0Z2V0QXNzb2NpYXRlZFRleHRQcm9wZXJ0eVBhdGhcbn0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCB2YWx1ZUZvcm1hdHRlcnMgZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvVmFsdWVGb3JtYXR0ZXJcIjtcbmltcG9ydCAqIGFzIFByb3BlcnR5SGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5SGVscGVyXCI7XG5pbXBvcnQgeyBpc1JlYWRPbmx5RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0ZpZWxkQ29udHJvbEhlbHBlclwiO1xuaW1wb3J0IHsgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcywgRGF0YUZpZWxkV2l0aFVybCwgRGF0YVBvaW50VHlwZVR5cGVzLCBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBGaWVsZEZvcm1hdE9wdGlvbnMgPSBQYXJ0aWFsPHtcblx0dmFsdWVGb3JtYXQ6IFN0cmluZztcblx0dGV4dEFsaWduTW9kZTogU3RyaW5nO1xuXHRkaXNwbGF5TW9kZTogRGlzcGxheU1vZGU7XG5cdG1lYXN1cmVEaXNwbGF5TW9kZTogU3RyaW5nO1xuXHR0ZXh0TGluZXNFZGl0OiBTdHJpbmc7XG5cdHRleHRNYXhMaW5lczogU3RyaW5nO1xuXHRzaG93RW1wdHlJbmRpY2F0b3I6IGJvb2xlYW47XG5cdHNlbWFudGljS2V5U3R5bGU6IFN0cmluZztcblx0c2hvd0ljb25Vcmw6IGJvb2xlYW47XG5cdGlzQW5hbHl0aWNzOiBib29sZWFuO1xuXHRoYXNEcmFmdEluZGljYXRvcjogYm9vbGVhbjtcblx0c2VtYW50aWNrZXlzOiBzdHJpbmdbXTtcbn0+O1xuXG5leHBvcnQgdHlwZSBFZGl0U3R5bGUgPVxuXHR8IFwiSW5wdXRXaXRoVmFsdWVIZWxwXCJcblx0fCBcIlRleHRBcmVhXCJcblx0fCBcIkZpbGVcIlxuXHR8IFwiRGF0ZVBpY2tlclwiXG5cdHwgXCJUaW1lUGlja2VyXCJcblx0fCBcIkRhdGVUaW1lUGlja2VyXCJcblx0fCBcIkNoZWNrQm94XCJcblx0fCBcIklucHV0V2l0aFVuaXRcIlxuXHR8IFwiSW5wdXRcIlxuXHR8IFwiUmF0aW5nSW5kaWNhdG9yXCI7XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlTdHlsZSA9XG5cdHwgXCJUZXh0XCJcblx0fCBcIkF2YXRhclwiXG5cdHwgXCJGaWxlXCJcblx0fCBcIkRhdGFQb2ludFwiXG5cdHwgXCJDb250YWN0XCJcblx0fCBcIkJ1dHRvblwiXG5cdHwgXCJMaW5rXCJcblx0fCBcIk9iamVjdFN0YXR1c1wiXG5cdHwgXCJBbW91bnRXaXRoQ3VycmVuY3lcIlxuXHR8IFwiU2VtYW50aWNLZXlXaXRoRHJhZnRJbmRpY2F0b3JcIlxuXHR8IFwiT2JqZWN0SWRlbnRpZmllclwiXG5cdHwgXCJMYWJlbFNlbWFudGljS2V5XCJcblx0fCBcIkxpbmtXaXRoUXVpY2tWaWV3Rm9ybVwiXG5cdHwgXCJMaW5rV3JhcHBlclwiXG5cdHwgXCJFeHBhbmRhYmxlVGV4dFwiO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGFkZCB0aGUgdGV4dCBhcnJhbmdlbWVudCB0byBhIGJpbmRpbmcgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gYmluZGluZ0V4cHJlc3Npb24gVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB0byBiZSBlbmhhbmNlZFxuICogQHBhcmFtIGZ1bGxDb250ZXh0UGF0aCBUaGUgY3VycmVudCBjb250ZXh0IHBhdGggd2UncmUgb24gKHRvIHByb3Blcmx5IHJlc29sdmUgdGhlIHRleHQgYXJyYW5nZW1lbnQgcHJvcGVydGllcylcbiAqIEByZXR1cm5zIEFuIHVwZGF0ZWQgZXhwcmVzc2lvbiBjb250YWluaW5nIHRoZSB0ZXh0IGFycmFuZ2VtZW50IGJpbmRpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uID0gZnVuY3Rpb24oXG5cdGJpbmRpbmdFeHByZXNzaW9uOiBFeHByZXNzaW9uPGFueT4sXG5cdGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aFxuKTogRXhwcmVzc2lvbjxhbnk+IHtcblx0cmV0dXJuIHRyYW5zZm9ybVJlY3Vyc2l2ZWx5KGJpbmRpbmdFeHByZXNzaW9uLCBcIkJpbmRpbmdcIiwgKGV4cHJlc3Npb246IEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbjxhbnk+KSA9PiB7XG5cdFx0bGV0IG91dEV4cHJlc3Npb246IEV4cHJlc3Npb248YW55PiA9IGV4cHJlc3Npb247XG5cdFx0aWYgKGV4cHJlc3Npb24ubW9kZWxOYW1lID09PSB1bmRlZmluZWQpIHtcblx0XHRcdC8vIEluIGNhc2Ugb2YgZGVmYXVsdCBtb2RlbCB3ZSB0aGVuIG5lZWQgdG8gcmVzb2x2ZSB0aGUgdGV4dCBhcnJhbmdlbWVudCBwcm9wZXJ0eVxuXHRcdFx0Y29uc3Qgb1Byb3BlcnR5RGF0YU1vZGVsUGF0aCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoKGZ1bGxDb250ZXh0UGF0aCwgZXhwcmVzc2lvbi5wYXRoKTtcblx0XHRcdG91dEV4cHJlc3Npb24gPSBnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudChvUHJvcGVydHlEYXRhTW9kZWxQYXRoLCBleHByZXNzaW9uKTtcblx0XHR9XG5cdFx0cmV0dXJuIG91dEV4cHJlc3Npb247XG5cdH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50ID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb246IEV4cHJlc3Npb248c3RyaW5nPixcblx0ZmllbGRGb3JtYXRPcHRpb25zPzogRmllbGRGb3JtYXRPcHRpb25zXG4pOiBFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCB0YXJnZXREaXNwbGF5TW9kZU92ZXJyaWRlID0gZmllbGRGb3JtYXRPcHRpb25zPy5kaXNwbGF5TW9kZTtcblx0bGV0IG91dEV4cHJlc3Npb24gPSBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uO1xuXHRjb25zdCBvUHJvcGVydHlEZWZpbml0aW9uID1cblx0XHRvUHJvcGVydHlEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdC50eXBlID09PSBcIlByb3BlcnR5UGF0aFwiXG5cdFx0XHQ/IChvUHJvcGVydHlEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdC4kdGFyZ2V0IGFzIFByb3BlcnR5KVxuXHRcdFx0OiAob1Byb3BlcnR5RGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3QgYXMgUHJvcGVydHkpO1xuXHRjb25zdCB0YXJnZXREaXNwbGF5TW9kZSA9IHRhcmdldERpc3BsYXlNb2RlT3ZlcnJpZGUgfHwgZ2V0RGlzcGxheU1vZGUob1Byb3BlcnR5RGVmaW5pdGlvbiwgb1Byb3BlcnR5RGF0YU1vZGVsUGF0aCk7XG5cdGNvbnN0IGNvbW1vblRleHQgPSBvUHJvcGVydHlEZWZpbml0aW9uLmFubm90YXRpb25zPy5Db21tb24/LlRleHQ7XG5cdGNvbnN0IHJlbGF0aXZlTG9jYXRpb24gPSBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbixcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzXG5cdCkubWFwKG5wID0+IG5wLm5hbWUpO1xuXHRwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uID0gZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbihvUHJvcGVydHlEZWZpbml0aW9uLCBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uKTtcblx0aWYgKHRhcmdldERpc3BsYXlNb2RlICE9PSBcIlZhbHVlXCIgJiYgY29tbW9uVGV4dCkge1xuXHRcdHN3aXRjaCAodGFyZ2V0RGlzcGxheU1vZGUpIHtcblx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblwiOlxuXHRcdFx0XHRvdXRFeHByZXNzaW9uID0gYW5ub3RhdGlvbkV4cHJlc3Npb24oY29tbW9uVGV4dCwgcmVsYXRpdmVMb2NhdGlvbikgYXMgRXhwcmVzc2lvbjxzdHJpbmc+O1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblZhbHVlXCI6XG5cdFx0XHRcdG91dEV4cHJlc3Npb24gPSBmb3JtYXRSZXN1bHQoXG5cdFx0XHRcdFx0W2Fubm90YXRpb25FeHByZXNzaW9uKGNvbW1vblRleHQsIHJlbGF0aXZlTG9jYXRpb24pIGFzIEV4cHJlc3Npb248c3RyaW5nPiwgcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbl0sXG5cdFx0XHRcdFx0dmFsdWVGb3JtYXR0ZXJzLmZvcm1hdFdpdGhCcmFja2V0c1xuXHRcdFx0XHQpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJWYWx1ZURlc2NyaXB0aW9uXCI6XG5cdFx0XHRcdG91dEV4cHJlc3Npb24gPSBmb3JtYXRSZXN1bHQoXG5cdFx0XHRcdFx0W3Byb3BlcnR5QmluZGluZ0V4cHJlc3Npb24sIGFubm90YXRpb25FeHByZXNzaW9uKGNvbW1vblRleHQsIHJlbGF0aXZlTG9jYXRpb24pIGFzIEV4cHJlc3Npb248c3RyaW5nPl0sXG5cdFx0XHRcdFx0dmFsdWVGb3JtYXR0ZXJzLmZvcm1hdFdpdGhCcmFja2V0c1xuXHRcdFx0XHQpO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblx0cmV0dXJuIG91dEV4cHJlc3Npb247XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0VmFsdWVSZWN1cnNpdmVseSA9IGZ1bmN0aW9uKGJpbmRpbmdFeHByZXNzaW9uOiBFeHByZXNzaW9uPGFueT4sIGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCk6IEV4cHJlc3Npb248YW55PiB7XG5cdHJldHVybiB0cmFuc2Zvcm1SZWN1cnNpdmVseShiaW5kaW5nRXhwcmVzc2lvbiwgXCJCaW5kaW5nXCIsIChleHByZXNzaW9uOiBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248YW55PikgPT4ge1xuXHRcdGxldCBvdXRFeHByZXNzaW9uOiBFeHByZXNzaW9uPGFueT4gPSBleHByZXNzaW9uO1xuXHRcdGlmIChleHByZXNzaW9uLm1vZGVsTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBJbiBjYXNlIG9mIGRlZmF1bHQgbW9kZWwgd2UgdGhlbiBuZWVkIHRvIHJlc29sdmUgdGhlIHRleHQgYXJyYW5nZW1lbnQgcHJvcGVydHlcblx0XHRcdGNvbnN0IG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aChmdWxsQ29udGV4dFBhdGgsIGV4cHJlc3Npb24ucGF0aCk7XG5cdFx0XHRvdXRFeHByZXNzaW9uID0gZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbihvUHJvcGVydHlEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdCwgZXhwcmVzc2lvbik7XG5cdFx0fVxuXHRcdHJldHVybiBvdXRFeHByZXNzaW9uO1xuXHR9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUZXh0QmluZGluZyA9IGZ1bmN0aW9uKFxuXHRvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRmaWVsZEZvcm1hdE9wdGlvbnM6IEZpZWxkRm9ybWF0T3B0aW9ucyxcblx0YXNPYmplY3Q6IGJvb2xlYW4gPSBmYWxzZVxuKTogRXhwcmVzc2lvbjxzdHJpbmc+IHwgQmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB7XG5cdGlmIChcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdD8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkXCIgfHxcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdD8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50VHlwZVwiIHx8XG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aFwiIHx8XG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFdpdGhVcmxcIlxuXHQpIHtcblx0XHQvLyBJZiB0aGVyZSBpcyBubyByZXNvbHZlZCBwcm9wZXJ0eSwgdGhlIHZhbHVlIGlzIHJldHVybmVkIGFzIGEgY29uc3RhbnRcblx0XHRjb25zdCBmaWVsZFZhbHVlID0gb1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuVmFsdWUgfHwgXCJcIjtcblx0XHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoY29uc3RhbnQoZmllbGRWYWx1ZSkpO1xuXHR9XG5cdGlmIChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KSAmJiBvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC4kdGFyZ2V0KSB7XG5cdFx0Y29uc3Qgb05hdlBhdGggPSBvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGUucmVzb2x2ZVBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QucGF0aCwgdHJ1ZSk7XG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgPSBvTmF2UGF0aC50YXJnZXQ7XG5cdFx0b05hdlBhdGgudmlzaXRlZE9iamVjdHMuZm9yRWFjaCgob05hdk9iajogYW55KSA9PiB7XG5cdFx0XHRpZiAob05hdk9iaj8uX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIpIHtcblx0XHRcdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5wdXNoKG9OYXZPYmopO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdGNvbnN0IG9CaW5kaW5nRXhwcmVzc2lvbiA9IGJpbmRpbmdFeHByZXNzaW9uKGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCkpO1xuXHRsZXQgb1RhcmdldEJpbmRpbmc7XG5cdGlmIChcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0IHx8XG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q/LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3lcblx0KSB7XG5cdFx0b1RhcmdldEJpbmRpbmcgPSBnZXRCaW5kaW5nV2l0aFVuaXRPckN1cnJlbmN5KG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgsIG9CaW5kaW5nRXhwcmVzc2lvbik7XG5cdFx0aWYgKGZpZWxkRm9ybWF0T3B0aW9ucz8ubWVhc3VyZURpc3BsYXlNb2RlID09PSBcIkhpZGRlblwiKSB7XG5cdFx0XHQvLyBUT0RPOiBSZWZhY3RvciBvbmNlIHR5cGVzIGFyZSBsZXNzIGdlbmVyaWMgaGVyZVxuXHRcdFx0KG9UYXJnZXRCaW5kaW5nIGFzIENvbXBsZXhUeXBlRXhwcmVzc2lvbjxTdHJpbmc+KS5mb3JtYXRPcHRpb25zID0ge1xuXHRcdFx0XHQuLi4ob1RhcmdldEJpbmRpbmcgYXMgQ29tcGxleFR5cGVFeHByZXNzaW9uPFN0cmluZz4pLmZvcm1hdE9wdGlvbnMsXG5cdFx0XHRcdHNob3dNZWFzdXJlOiBmYWxzZVxuXHRcdFx0fTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0b1RhcmdldEJpbmRpbmcgPSBnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudChvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLCBvQmluZGluZ0V4cHJlc3Npb24sIGZpZWxkRm9ybWF0T3B0aW9ucyk7XG5cdH1cblx0aWYgKGFzT2JqZWN0KSB7XG5cdFx0cmV0dXJuIG9UYXJnZXRCaW5kaW5nO1xuXHR9XG5cdC8vIFdlIGRvbid0IGluY2x1ZGUgJCRub3BhdGNoIGFuZCBwYXJzZUtlZXBFbXB0eVN0cmluZyBhcyB0aGV5IG1ha2Ugbm8gc2Vuc2UgaW4gdGhlIHRleHQgYmluZGluZyBjYXNlXG5cdHJldHVybiBjb21waWxlQmluZGluZyhvVGFyZ2V0QmluZGluZyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VmFsdWVCaW5kaW5nID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGZpZWxkRm9ybWF0T3B0aW9uczogRmllbGRGb3JtYXRPcHRpb25zLFxuXHRpZ25vcmVVbml0OiBib29sZWFuID0gZmFsc2UsXG5cdGlnbm9yZUZvcm1hdHRpbmc6IGJvb2xlYW4gPSBmYWxzZSxcblx0YmluZGluZ1BhcmFtZXRlcnM/OiBvYmplY3QsXG5cdHRhcmdldFR5cGVBbnk/OiBib29sZWFuLFxuXHRzaG93TWVhc3VyZU9ubHk6IGJvb2xlYW4gPSBmYWxzZVxuKTogQmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB7XG5cdGlmIChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KSAmJiBvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC4kdGFyZ2V0KSB7XG5cdFx0Y29uc3Qgb05hdlBhdGggPSBvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGUucmVzb2x2ZVBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QucGF0aCwgdHJ1ZSk7XG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgPSBvTmF2UGF0aC50YXJnZXQ7XG5cdFx0b05hdlBhdGgudmlzaXRlZE9iamVjdHMuZm9yRWFjaCgob05hdk9iajogYW55KSA9PiB7XG5cdFx0XHRpZiAob05hdk9iaiAmJiBvTmF2T2JqLl90eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiKSB7XG5cdFx0XHRcdG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMucHVzaChvTmF2T2JqKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGNvbnN0IHRhcmdldE9iamVjdCA9IG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0O1xuXHRpZiAoaXNQcm9wZXJ0eSh0YXJnZXRPYmplY3QpKSB7XG5cdFx0bGV0IG9CaW5kaW5nRXhwcmVzc2lvbjogQmluZGluZ0V4cHJlc3Npb25FeHByZXNzaW9uPHN0cmluZz4gPSBiaW5kaW5nRXhwcmVzc2lvbihcblx0XHRcdGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aClcblx0XHQpIGFzIEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbjxzdHJpbmc+O1xuXHRcdGlmICh0YXJnZXRPYmplY3QuYW5ub3RhdGlvbnM/LkNvbW11bmljYXRpb24/LklzRW1haWxBZGRyZXNzKSB7XG5cdFx0XHRvQmluZGluZ0V4cHJlc3Npb24udHlwZSA9IFwic2FwLmZlLmNvcmUudHlwZS5FbWFpbFwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBvUHJvcGVydHlVbml0ID0gZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eShvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCk7XG5cdFx0XHRjb25zdCBvUHJvcGVydHlDdXJyZW5jeSA9IGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5KG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KTtcblx0XHRcdGlmICghaWdub3JlVW5pdCAmJiAob1Byb3BlcnR5VW5pdCB8fCBvUHJvcGVydHlDdXJyZW5jeSkpIHtcblx0XHRcdFx0b0JpbmRpbmdFeHByZXNzaW9uID0gZ2V0QmluZGluZ1dpdGhVbml0T3JDdXJyZW5jeShvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLCBvQmluZGluZ0V4cHJlc3Npb24pIGFzIGFueTtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdChvUHJvcGVydHlVbml0ICYmICFoYXNWYWx1ZUhlbHAob1Byb3BlcnR5VW5pdCkpIHx8XG5cdFx0XHRcdFx0KG9Qcm9wZXJ0eUN1cnJlbmN5ICYmICFoYXNWYWx1ZUhlbHAob1Byb3BlcnR5Q3VycmVuY3kpKSB8fFxuXHRcdFx0XHRcdGZpZWxkRm9ybWF0T3B0aW9ucz8ubWVhc3VyZURpc3BsYXlNb2RlID09PSBcIkhpZGRlblwiXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdC8vIElmIHRoZXJlIGlzIGEgdW5pdCBvciBjdXJyZW5jeSB3aXRob3V0IGEgdmFsdWUgaGVscCwgb3IgaW4gY2FzZSB0aGUgY3VycmVuY3kgc2hvdWxkIGJlIGV4cGxpY2l0bHkgaGlkZGVuLFxuXHRcdFx0XHRcdC8vIHdlIG5lZWQgdG8gY29uZmlndXJlIHRoZSBiaW5kaW5nIHRvIG5vdCBzaG93IHRoZSBtZWFzdXJlLCBvdGhlcndpc2UgaXQncyBuZWVkZWQgZm9yIHRoZSBtZGMgZmllbGRcblx0XHRcdFx0XHRpZiAoIW9CaW5kaW5nRXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zKSB7XG5cdFx0XHRcdFx0XHRvQmluZGluZ0V4cHJlc3Npb24uZm9ybWF0T3B0aW9ucyA9IHt9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoc2hvd01lYXN1cmVPbmx5KSB7XG5cdFx0XHRcdFx0XHRvQmluZGluZ0V4cHJlc3Npb24uZm9ybWF0T3B0aW9ucy5zaG93TnVtYmVyID0gZmFsc2U7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG9CaW5kaW5nRXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zLnNob3dNZWFzdXJlID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRvQmluZGluZ0V4cHJlc3Npb24gPSBmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uKHRhcmdldE9iamVjdCwgb0JpbmRpbmdFeHByZXNzaW9uKSBhcyBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248c3RyaW5nPjtcblx0XHRcdFx0aWYgKG9CaW5kaW5nRXhwcmVzc2lvbi50eXBlID09PSBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZ1wiKSB7XG5cdFx0XHRcdFx0b0JpbmRpbmdFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMgPSB7XG5cdFx0XHRcdFx0XHRwYXJzZUtlZXBzRW1wdHlTdHJpbmc6IHRydWVcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChpZ25vcmVGb3JtYXR0aW5nKSB7XG5cdFx0XHRkZWxldGUgb0JpbmRpbmdFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnM7XG5cdFx0XHRkZWxldGUgb0JpbmRpbmdFeHByZXNzaW9uLmNvbnN0cmFpbnRzO1xuXHRcdFx0ZGVsZXRlIG9CaW5kaW5nRXhwcmVzc2lvbi50eXBlO1xuXHRcdH1cblx0XHRpZiAoYmluZGluZ1BhcmFtZXRlcnMpIHtcblx0XHRcdG9CaW5kaW5nRXhwcmVzc2lvbi5wYXJhbWV0ZXJzID0gYmluZGluZ1BhcmFtZXRlcnM7XG5cdFx0fVxuXHRcdGlmICh0YXJnZXRUeXBlQW55KSB7XG5cdFx0XHRvQmluZGluZ0V4cHJlc3Npb24udGFyZ2V0VHlwZSA9IFwiYW55XCI7XG5cdFx0fVxuXHRcdHJldHVybiBjb21waWxlQmluZGluZyhvQmluZGluZ0V4cHJlc3Npb24pO1xuXHR9IGVsc2Uge1xuXHRcdGlmIChcblx0XHRcdHRhcmdldE9iamVjdD8uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhVcmwgfHxcblx0XHRcdHRhcmdldE9iamVjdD8uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aFxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKGFubm90YXRpb25FeHByZXNzaW9uKCh0YXJnZXRPYmplY3QgYXMgRGF0YUZpZWxkV2l0aFVybCkuVmFsdWUpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VW5pdEJpbmRpbmcgPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0ZmllbGRGb3JtYXRPcHRpb25zOiBGaWVsZEZvcm1hdE9wdGlvbnNcbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCBzVW5pdFByb3BlcnR5UGF0aCA9IGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHlQYXRoKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KTtcblx0Y29uc3Qgc0N1cnJlbmN5UHJvcGVydHlQYXRoID0gZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHlQYXRoKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KTtcblx0aWYgKHNVbml0UHJvcGVydHlQYXRoIHx8IHNDdXJyZW5jeVByb3BlcnR5UGF0aCkge1xuXHRcdGNvbnN0IHRhcmdldFByb3BlcnR5UGF0aCA9IHNVbml0UHJvcGVydHlQYXRoIHx8IHNDdXJyZW5jeVByb3BlcnR5UGF0aDtcblx0XHRjb25zdCBvVU9NUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCwgdGFyZ2V0UHJvcGVydHlQYXRoKTtcblx0XHRyZXR1cm4gZ2V0VmFsdWVCaW5kaW5nKG9VT01Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgsIGZpZWxkRm9ybWF0T3B0aW9ucyk7XG5cdH1cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBc3NvY2lhdGVkVGV4dEJpbmRpbmcgPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0ZmllbGRGb3JtYXRPcHRpb25zOiBGaWVsZEZvcm1hdE9wdGlvbnNcbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCB0ZXh0UHJvcGVydHlQYXRoID0gZ2V0QXNzb2NpYXRlZFRleHRQcm9wZXJ0eVBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QpO1xuXHRpZiAodGV4dFByb3BlcnR5UGF0aCkge1xuXHRcdGNvbnN0IG9UZXh0UHJvcGVydHlQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCwgdGV4dFByb3BlcnR5UGF0aCk7XG5cdFx0Y29uc3Qgb1ZhbHVlQmluZGluZyA9IGdldFZhbHVlQmluZGluZyhvVGV4dFByb3BlcnR5UGF0aCwgZmllbGRGb3JtYXRPcHRpb25zLCB0cnVlLCB0cnVlLCB7ICQkbm9QYXRjaDogdHJ1ZSB9KTtcblx0XHRyZXR1cm4gb1ZhbHVlQmluZGluZztcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERpc3BsYXlTdHlsZSA9IGZ1bmN0aW9uKFxuXHRvUHJvcGVydHlQYXRoOiBQcm9wZXJ0eU9yUGF0aDxQcm9wZXJ0eT4sXG5cdG9EYXRhRmllbGQ6IGFueSxcblx0b0RhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGZpZWxkRm9ybWF0T3B0aW9uczogRmllbGRGb3JtYXRPcHRpb25zLFxuXHRzZW1hbnRpY09iamVjdDogc3RyaW5nXG4pOiBEaXNwbGF5U3R5bGUge1xuXHQvLyBhbGdvcml0aG0gdG8gZGV0ZXJtaW5lIHRoZSBmaWVsZCBmcmFnbWVudCB0byB1c2Vcblx0Y29uc3Qgb1Byb3BlcnR5OiBQcm9wZXJ0eSA9IChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpICYmIG9Qcm9wZXJ0eVBhdGguJHRhcmdldCkgfHwgKG9Qcm9wZXJ0eVBhdGggYXMgUHJvcGVydHkpO1xuXHRpZiAoXG5cdFx0c2VtYW50aWNPYmplY3QgJiZcblx0XHQhb1Byb3BlcnR5LmFubm90YXRpb25zPy5VST8uSXNJbWFnZVVSTCAmJlxuXHRcdCEob1Byb3BlcnR5LnR5cGUgPT09IFwiRWRtLlN0cmVhbVwiKSAmJlxuXHRcdCEob1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tdW5pY2F0aW9uPy5Jc0VtYWlsQWRkcmVzcyB8fCBvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW11bmljYXRpb24/LklzUGhvbmVOdW1iZXIpXG5cdCkge1xuXHRcdHJldHVybiBcIkxpbmtXaXRoUXVpY2tWaWV3Rm9ybVwiO1xuXHR9XG5cdGlmICghb1Byb3BlcnR5UGF0aCB8fCB0eXBlb2Ygb1Byb3BlcnR5UGF0aCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHJldHVybiBcIlRleHRcIjtcblx0fVxuXHRpZiAob1Byb3BlcnR5LnR5cGUgPT09IFwiRWRtLlN0cmVhbVwiKSB7XG5cdFx0cmV0dXJuIFwiRmlsZVwiO1xuXHR9XG5cdGlmIChvUHJvcGVydHkuYW5ub3RhdGlvbnM/LlVJPy5Jc0ltYWdlVVJMKSB7XG5cdFx0cmV0dXJuIFwiQXZhdGFyXCI7XG5cdH1cblx0c3dpdGNoIChvRGF0YUZpZWxkLiRUeXBlKSB7XG5cdFx0Y2FzZSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludFR5cGVcIjpcblx0XHRcdHJldHVybiBcIkRhdGFQb2ludFwiO1xuXHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBbm5vdGF0aW9uXCI6XG5cdFx0XHRpZiAob0RhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludFR5cGVcIikge1xuXHRcdFx0XHRyZXR1cm4gXCJEYXRhUG9pbnRcIjtcblx0XHRcdH0gZWxzZSBpZiAob0RhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuQ29udGFjdFR5cGVcIikge1xuXHRcdFx0XHRyZXR1cm4gXCJDb250YWN0XCI7XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCI6XG5cdFx0Y2FzZSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblwiOlxuXHRcdFx0cmV0dXJuIFwiQnV0dG9uXCI7XG5cdFx0Y2FzZSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aFwiOlxuXHRcdFx0cmV0dXJuIFwiTGlua1wiO1xuXHR9XG5cdGlmIChvRGF0YU1vZGVsUGF0aD8udGFyZ2V0RW50aXR5VHlwZT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uU2VtYW50aWNLZXkpIHtcblx0XHRjb25zdCBhU2VtYW50aWNLZXlzID0gb0RhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5VHlwZS5hbm5vdGF0aW9ucy5Db21tb24uU2VtYW50aWNLZXk7XG5cdFx0Y29uc3QgYklzU2VtYW50aWNLZXkgPSAhYVNlbWFudGljS2V5cy5ldmVyeShmdW5jdGlvbihvS2V5KSB7XG5cdFx0XHRyZXR1cm4gb0tleT8uJHRhcmdldD8ubmFtZSAhPT0gb1Byb3BlcnR5Lm5hbWU7XG5cdFx0fSk7XG5cdFx0aWYgKGJJc1NlbWFudGljS2V5ICYmIGZpZWxkRm9ybWF0T3B0aW9ucy5zZW1hbnRpY0tleVN0eWxlKSB7XG5cdFx0XHRpZiAob0RhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5U2V0Py5hbm5vdGF0aW9ucz8uQ29tbW9uPy5EcmFmdFJvb3QpIHtcblx0XHRcdFx0Ly8gJiYgZmllbGRGb3JtYXRPcHRpb25zLmhhc0RyYWZ0SW5kaWNhdG9yKSB7XG5cdFx0XHRcdC8vIHdlIHRoZW4gc3RpbGwgY2hlY2sgd2hldGhlciB0aGlzIGlzIGF2YWlsYWJsZSBhdCBkZXNpZ250aW1lIG9uIHRoZSBlbnRpdHlzZXRcblx0XHRcdFx0cmV0dXJuIFwiU2VtYW50aWNLZXlXaXRoRHJhZnRJbmRpY2F0b3JcIjtcblx0XHRcdH1cblx0XHRcdHJldHVybiBmaWVsZEZvcm1hdE9wdGlvbnMuc2VtYW50aWNLZXlTdHlsZSA9PT0gXCJPYmplY3RJZGVudGlmaWVyXCIgPyBcIk9iamVjdElkZW50aWZpZXJcIiA6IFwiTGFiZWxTZW1hbnRpY0tleVwiO1xuXHRcdH1cblx0fVxuXHRpZiAob0RhdGFGaWVsZC5Dcml0aWNhbGl0eSkge1xuXHRcdHJldHVybiBcIk9iamVjdFN0YXR1c1wiO1xuXHR9XG5cdGlmIChvUHJvcGVydHkuYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5JU09DdXJyZW5jeSkge1xuXHRcdGlmIChmaWVsZEZvcm1hdE9wdGlvbnMubWVhc3VyZURpc3BsYXlNb2RlID09PSBcIkhpZGRlblwiKSB7XG5cdFx0XHRyZXR1cm4gXCJUZXh0XCI7XG5cdFx0fVxuXHRcdHJldHVybiBcIkFtb3VudFdpdGhDdXJyZW5jeVwiO1xuXHR9XG5cdGlmIChvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW11bmljYXRpb24/LklzRW1haWxBZGRyZXNzIHx8IG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbXVuaWNhdGlvbj8uSXNQaG9uZU51bWJlcikge1xuXHRcdHJldHVybiBcIkxpbmtcIjtcblx0fVxuXHRpZiAob1Byb3BlcnR5LmFubm90YXRpb25zPy5VST8uTXVsdGlMaW5lVGV4dCkge1xuXHRcdHJldHVybiBcIkV4cGFuZGFibGVUZXh0XCI7XG5cdH1cblx0Y29uc3QgYU5hdmlnYXRpb25Qcm9wZXJ0aWVzID0gb0RhdGFNb2RlbFBhdGg/LnRhcmdldEVudGl0eVR5cGU/Lm5hdmlnYXRpb25Qcm9wZXJ0aWVzIHx8IFtdO1xuXHRsZXQgYklzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHMgPSBmYWxzZTtcblx0YU5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2gob05hdlByb3AgPT4ge1xuXHRcdGlmIChvTmF2UHJvcC5yZWZlcmVudGlhbENvbnN0cmFpbnQgJiYgb05hdlByb3AucmVmZXJlbnRpYWxDb25zdHJhaW50Lmxlbmd0aCkge1xuXHRcdFx0b05hdlByb3AucmVmZXJlbnRpYWxDb25zdHJhaW50LmZvckVhY2gob1JlZkNvbnN0cmFpbnQgPT4ge1xuXHRcdFx0XHRpZiAob1JlZkNvbnN0cmFpbnQ/LnNvdXJjZVByb3BlcnR5ID09PSBvUHJvcGVydHkubmFtZSkge1xuXHRcdFx0XHRcdGlmIChvTmF2UHJvcD8udGFyZ2V0VHlwZT8uYW5ub3RhdGlvbnM/LlVJPy5RdWlja1ZpZXdGYWNldHMpIHtcblx0XHRcdFx0XHRcdGJJc1VzZWRJbk5hdmlnYXRpb25XaXRoUXVpY2tWaWV3RmFjZXRzID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG5cdGlmIChiSXNVc2VkSW5OYXZpZ2F0aW9uV2l0aFF1aWNrVmlld0ZhY2V0cykge1xuXHRcdHJldHVybiBcIkxpbmtXaXRoUXVpY2tWaWV3Rm9ybVwiO1xuXHR9XG5cdGlmIChvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uU2VtYW50aWNPYmplY3QpIHtcblx0XHRyZXR1cm4gXCJMaW5rV3JhcHBlclwiO1xuXHR9XG5cdGlmIChvRGF0YUZpZWxkLiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFdpdGhVcmxcIikge1xuXHRcdHJldHVybiBcIkxpbmtcIjtcblx0fVxuXHRyZXR1cm4gXCJUZXh0XCI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWRpdFN0eWxlID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eVBhdGg6IFByb3BlcnR5T3JQYXRoPFByb3BlcnR5Pixcblx0b0RhdGFGaWVsZDogYW55LFxuXHRvRmllbGRGb3JtYXRPcHRpb25zOiBGaWVsZEZvcm1hdE9wdGlvbnNcbik6IEVkaXRTdHlsZSB8IG51bGwge1xuXHQvLyBhbGdvcml0aG0gdG8gZGV0ZXJtaW5lIHRoZSBmaWVsZCBmcmFnbWVudCB0byB1c2Vcblx0aWYgKCFvUHJvcGVydHlQYXRoIHx8IHR5cGVvZiBvUHJvcGVydHlQYXRoID09PSBcInN0cmluZ1wiKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblx0Y29uc3Qgb1Byb3BlcnR5OiBQcm9wZXJ0eSA9IChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpICYmIG9Qcm9wZXJ0eVBhdGguJHRhcmdldCkgfHwgKG9Qcm9wZXJ0eVBhdGggYXMgUHJvcGVydHkpO1xuXHRpZiAob1Byb3BlcnR5LnR5cGUgPT09IFwiRWRtLlN0cmVhbVwiKSB7XG5cdFx0cmV0dXJuIFwiRmlsZVwiO1xuXHR9XG5cdHN3aXRjaCAob0RhdGFGaWVsZC4kVHlwZSkge1xuXHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBbm5vdGF0aW9uXCI6XG5cdFx0XHRpZiAob0RhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuQ29udGFjdFR5cGVcIikge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH0gZWxzZSBpZiAob0RhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LlZpc3VhbGl6YXRpb24gPT09IFwiVUkuVmlzdWFsaXphdGlvblR5cGUvUmF0aW5nXCIpIHtcblx0XHRcdFx0cmV0dXJuIFwiUmF0aW5nSW5kaWNhdG9yXCI7XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50VHlwZVwiOlxuXHRcdFx0aWYgKG9EYXRhRmllbGQ/LlZpc3VhbGl6YXRpb24gPT09IFwiVUkuVmlzdWFsaXphdGlvblR5cGUvUmF0aW5nXCIpIHtcblx0XHRcdFx0cmV0dXJuIFwiUmF0aW5nSW5kaWNhdG9yXCI7XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCI6XG5cdFx0Y2FzZSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aFwiOlxuXHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIjpcblx0XHRcdHJldHVybiBudWxsO1xuXHR9XG5cdGNvbnN0IG9Qcm9wZXJ0eVVuaXQgPSBnZXRBc3NvY2lhdGVkVW5pdFByb3BlcnR5KG9Qcm9wZXJ0eSk7XG5cdGNvbnN0IG9Qcm9wZXJ0eUN1cnJlbmN5ID0gZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHkob1Byb3BlcnR5KTtcblx0aWYgKFxuXHRcdChQcm9wZXJ0eUhlbHBlci5oYXNWYWx1ZUhlbHAob1Byb3BlcnR5KSAmJiBvUHJvcGVydHkudHlwZSAhPT0gXCJFZG0uQm9vbGVhblwiKSB8fFxuXHRcdChvUHJvcGVydHlVbml0ICYmIFByb3BlcnR5SGVscGVyLmhhc1ZhbHVlSGVscChvUHJvcGVydHlVbml0KSkgfHxcblx0XHQob1Byb3BlcnR5Q3VycmVuY3kgJiYgUHJvcGVydHlIZWxwZXIuaGFzVmFsdWVIZWxwKG9Qcm9wZXJ0eUN1cnJlbmN5KSlcblx0KSB7XG5cdFx0aWYgKG9GaWVsZEZvcm1hdE9wdGlvbnM/Lm1lYXN1cmVEaXNwbGF5TW9kZSA9PT0gXCJIaWRkZW5cIikge1xuXHRcdFx0cmV0dXJuIFwiSW5wdXRcIjtcblx0XHR9XG5cdFx0cmV0dXJuIFwiSW5wdXRXaXRoVmFsdWVIZWxwXCI7XG5cdH1cblx0aWYgKG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVUk/Lk11bHRpTGluZVRleHQ/LnZhbHVlT2YoKSAmJiBvUHJvcGVydHkudHlwZSA9PT0gXCJFZG0uU3RyaW5nXCIpIHtcblx0XHRyZXR1cm4gXCJUZXh0QXJlYVwiO1xuXHR9XG5cdHN3aXRjaCAob1Byb3BlcnR5LnR5cGUpIHtcblx0XHRjYXNlIFwiRWRtLkRhdGVcIjpcblx0XHRcdHJldHVybiBcIkRhdGVQaWNrZXJcIjtcblx0XHRjYXNlIFwiRWRtLlRpbWVcIjpcblx0XHRjYXNlIFwiRWRtLlRpbWVPZkRheVwiOlxuXHRcdFx0cmV0dXJuIFwiVGltZVBpY2tlclwiO1xuXHRcdGNhc2UgXCJFZG0uRGF0ZVRpbWVcIjpcblx0XHRjYXNlIFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCI6XG5cdFx0XHRyZXR1cm4gXCJEYXRlVGltZVBpY2tlclwiO1xuXHRcdGNhc2UgXCJFZG0uQm9vbGVhblwiOlxuXHRcdFx0cmV0dXJuIFwiQ2hlY2tCb3hcIjtcblx0fVxuXHRpZiAob1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kgfHwgb1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdCkge1xuXHRcdHJldHVybiBcIklucHV0V2l0aFVuaXRcIjtcblx0fVxuXHRyZXR1cm4gXCJJbnB1dFwiO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gdG8gZXZhbHVhdGUgdGhlIHZpc2liaWxpdHkgb2YgYSBEYXRhRmllbGQgb3IgRGF0YVBvaW50IGFubm90YXRpb24uXG4gKlxuICogU0FQIEZpb3JpIGVsZW1lbnRzIHdpbGwgZXZhbHVhdGUgZWl0aGVyIHRoZSBVSS5IaWRkZW4gYW5ub3RhdGlvbiBkZWZpbmVkIG9uIHRoZSBhbm5vdGF0aW9uIGl0c2VsZiBvciBvbiB0aGUgdGFyZ2V0IHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSB7RGF0YU1vZGVsT2JqZWN0UGF0aH0gZGF0YUZpZWxkTW9kZWxQYXRoIFRoZSBtZXRhcGF0aCByZWZlcnJpbmcgdG8gdGhlIGFubm90YXRpb24gd2UgYXJlIGV2YWx1YXRpbmcuXG4gKiBAcGFyYW0ge0ZpZWxkRm9ybWF0T3B0aW9uc30gW2Zvcm1hdE9wdGlvbnNdIEZvcm1hdE9wdGlvbnMgb3B0aW9uYWwuXG4gKiBAcmV0dXJucyB7QmluZGluZ0V4cHJlc3Npb248c3RyaW5nPn0gQW4gZXhwcmVzc2lvbiB0aGF0IHlvdSBjYW4gYmluZCB0byB0aGUgVUkuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRWaXNpYmxlRXhwcmVzc2lvbiA9IGZ1bmN0aW9uKFxuXHRkYXRhRmllbGRNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGZvcm1hdE9wdGlvbnM/OiBGaWVsZEZvcm1hdE9wdGlvbnNcbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCB0YXJnZXRPYmplY3Q6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgfCBEYXRhUG9pbnRUeXBlVHlwZXMgPSBkYXRhRmllbGRNb2RlbFBhdGgudGFyZ2V0T2JqZWN0O1xuXHRsZXQgcHJvcGVydHlWYWx1ZTtcblx0aWYgKHRhcmdldE9iamVjdCkge1xuXHRcdHN3aXRjaCAodGFyZ2V0T2JqZWN0LiRUeXBlKSB7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZDpcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aFVybDpcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aE5hdmlnYXRpb25QYXRoOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoSW50ZW50QmFzZWROYXZpZ2F0aW9uOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoQWN0aW9uOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhUG9pbnRUeXBlOlxuXHRcdFx0XHRwcm9wZXJ0eVZhbHVlID0gdGFyZ2V0T2JqZWN0LlZhbHVlLiR0YXJnZXQ7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uOlxuXHRcdFx0XHQvLyBpZiBpdCBpcyBhIERhdGFGaWVsZEZvckFubm90YXRpb24gcG9pbnRpbmcgdG8gYSBEYXRhUG9pbnQgd2UgbG9vayBhdCB0aGUgZGF0YVBvaW50J3MgdmFsdWVcblx0XHRcdFx0aWYgKHRhcmdldE9iamVjdD8uVGFyZ2V0Py4kdGFyZ2V0Py4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YVBvaW50VHlwZSkge1xuXHRcdFx0XHRcdHByb3BlcnR5VmFsdWUgPSB0YXJnZXRPYmplY3QuVGFyZ2V0LiR0YXJnZXQ/LlZhbHVlLiR0YXJnZXQ7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb246XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckFjdGlvbjpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHByb3BlcnR5VmFsdWUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGlzQW5hbHl0aWNhbEdyb3VwSGVhZGVyRXhwYW5kZWQgPSBmb3JtYXRPcHRpb25zPy5pc0FuYWx5dGljcyA/IFVJLklzRXhwYW5kZWQgOiBjb25zdGFudChmYWxzZSk7XG5cdGNvbnN0IGlzQW5hbHl0aWNhbExlYWYgPSBmb3JtYXRPcHRpb25zPy5pc0FuYWx5dGljcyA/IGVxdWFsKFVJLk5vZGVMZXZlbCwgMCkgOiBjb25zdGFudChmYWxzZSk7XG5cblx0Ly8gQSBkYXRhIGZpZWxkIGlzIHZpc2libGUgaWY6XG5cdC8vIC0gdGhlIFVJLkhpZGRlbiBleHByZXNzaW9uIGluIHRoZSBvcmlnaW5hbCBhbm5vdGF0aW9uIGRvZXMgbm90IGV2YWx1YXRlIHRvICd0cnVlJ1xuXHQvLyAtIHRoZSBVSS5IaWRkZW4gZXhwcmVzc2lvbiBpbiB0aGUgdGFyZ2V0IHByb3BlcnR5IGRvZXMgbm90IGV2YWx1YXRlIHRvICd0cnVlJ1xuXHQvLyAtIGluIGNhc2Ugb2YgQW5hbHl0aWNzIGl0J3Mgbm90IHZpc2libGUgZm9yIGFuIGV4cGFuZGVkIEdyb3VwSGVhZGVyXG5cdHJldHVybiBjb21waWxlQmluZGluZyhcblx0XHRhbmQoXG5cdFx0XHQuLi5bXG5cdFx0XHRcdG5vdChlcXVhbChhbm5vdGF0aW9uRXhwcmVzc2lvbih0YXJnZXRPYmplY3Q/LmFubm90YXRpb25zPy5VST8uSGlkZGVuKSwgdHJ1ZSkpLFxuXHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0ISFwcm9wZXJ0eVZhbHVlLFxuXHRcdFx0XHRcdHByb3BlcnR5VmFsdWUgJiYgbm90KGVxdWFsKGFubm90YXRpb25FeHByZXNzaW9uKHByb3BlcnR5VmFsdWUuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSksXG5cdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRvcihub3QoaXNBbmFseXRpY2FsR3JvdXBIZWFkZXJFeHBhbmRlZCksIGlzQW5hbHl0aWNhbExlYWYpXG5cdFx0XHRdXG5cdFx0KVxuXHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldElucHV0RGVzY3JpcHRpb24gPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5UGF0aDogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+LFxuXHRkZXNjcmlwdGlvbkJpbmRpbmdFeHByZXNzaW9uOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+XG4pOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0Y29uc3Qgb1Byb3BlcnR5ID0gKGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5UGF0aCkgJiYgb1Byb3BlcnR5UGF0aC4kdGFyZ2V0KSB8fCAob1Byb3BlcnR5UGF0aCBhcyBQcm9wZXJ0eSk7XG5cdGNvbnN0IHVuaXRQcm9wZXJ0eSA9IGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5KG9Qcm9wZXJ0eSkgfHwgZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eShvUHJvcGVydHkpO1xuXHRpZiAoIXVuaXRQcm9wZXJ0eSkge1xuXHRcdHJldHVybiBjb21waWxlQmluZGluZyhcIlwiKTtcblx0fVxuXHRjb25zdCBlZGl0YWJsZUV4cHJlc3Npb24gPSBhbmQobm90KGlzUmVhZE9ubHlFeHByZXNzaW9uKHVuaXRQcm9wZXJ0eSkpLCBub3QoUHJvcGVydHlIZWxwZXIuaXNDb21wdXRlZCh1bml0UHJvcGVydHkpKSk7XG5cdHJldHVybiBjb21waWxlQmluZGluZyhpZkVsc2UoZWRpdGFibGVFeHByZXNzaW9uLCBcIlwiLCBkZXNjcmlwdGlvbkJpbmRpbmdFeHByZXNzaW9uKSk7XG59O1xuXG5leHBvcnQgY29uc3QgUVZUZXh0QmluZGluZyA9IGZ1bmN0aW9uKFxuXHRvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRvUHJvcGVydHlWYWx1ZURhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGZpZWxkRm9ybWF0T3B0aW9uczogRmllbGRGb3JtYXRPcHRpb25zLFxuXHRhc09iamVjdDogYm9vbGVhbiA9IGZhbHNlXG4pIHtcblx0bGV0IHJldHVyblZhbHVlOiBhbnkgPSBnZXRWYWx1ZUJpbmRpbmcob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCwgZmllbGRGb3JtYXRPcHRpb25zLCBhc09iamVjdCk7XG5cdGlmIChyZXR1cm5WYWx1ZSA9PT0gXCJcIikge1xuXHRcdHJldHVyblZhbHVlID0gZ2V0VGV4dEJpbmRpbmcob1Byb3BlcnR5VmFsdWVEYXRhTW9kZWxPYmplY3RQYXRoLCBmaWVsZEZvcm1hdE9wdGlvbnMsIGFzT2JqZWN0KTtcblx0fVxuXHRyZXR1cm4gcmV0dXJuVmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UXVpY2tWaWV3VHlwZSA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpOiBzdHJpbmcge1xuXHRjb25zdCB0YXJnZXRPYmplY3QgPSBvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdDtcblx0aWYgKHRhcmdldE9iamVjdD8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW11bmljYXRpb24/LklzRW1haWxBZGRyZXNzKSB7XG5cdFx0cmV0dXJuIFwiZW1haWxcIjtcblx0fVxuXHRpZiAodGFyZ2V0T2JqZWN0Py4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uQ29tbXVuaWNhdGlvbj8uSXNQaG9uZU51bWJlcikge1xuXHRcdHJldHVybiBcInBob25lXCI7XG5cdH1cblx0cmV0dXJuIFwidGV4dFwiO1xufTtcbiJdfQ==
|
|
573
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkVGVtcGxhdGluZy50cyJdLCJuYW1lcyI6WyJhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uIiwiYmluZGluZ0V4cHJlc3Npb24iLCJmdWxsQ29udGV4dFBhdGgiLCJ0cmFuc2Zvcm1SZWN1cnNpdmVseSIsImV4cHJlc3Npb24iLCJvdXRFeHByZXNzaW9uIiwibW9kZWxOYW1lIiwidW5kZWZpbmVkIiwib1Byb3BlcnR5RGF0YU1vZGVsUGF0aCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwicGF0aCIsImdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50IiwicHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbiIsImZpZWxkRm9ybWF0T3B0aW9ucyIsInRhcmdldERpc3BsYXlNb2RlT3ZlcnJpZGUiLCJkaXNwbGF5TW9kZSIsIm9Qcm9wZXJ0eURlZmluaXRpb24iLCJ0YXJnZXRPYmplY3QiLCJ0eXBlIiwiJHRhcmdldCIsInRhcmdldERpc3BsYXlNb2RlIiwiZ2V0RGlzcGxheU1vZGUiLCJjb21tb25UZXh0IiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJUZXh0IiwicmVsYXRpdmVMb2NhdGlvbiIsImdldFBhdGhSZWxhdGl2ZUxvY2F0aW9uIiwiY29udGV4dExvY2F0aW9uIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJtYXAiLCJucCIsIm5hbWUiLCJmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uIiwiYW5ub3RhdGlvbkV4cHJlc3Npb24iLCJmb3JtYXRSZXN1bHQiLCJ2YWx1ZUZvcm1hdHRlcnMiLCJmb3JtYXRXaXRoQnJhY2tldHMiLCJmb3JtYXRWYWx1ZVJlY3Vyc2l2ZWx5IiwiZ2V0VGV4dEJpbmRpbmciLCJvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoIiwiYXNPYmplY3QiLCIkVHlwZSIsImZpZWxkVmFsdWUiLCJWYWx1ZSIsImNvbXBpbGVCaW5kaW5nIiwiY29uc3RhbnQiLCJpc1BhdGhFeHByZXNzaW9uIiwib05hdlBhdGgiLCJ0YXJnZXRFbnRpdHlUeXBlIiwicmVzb2x2ZVBhdGgiLCJ0YXJnZXQiLCJ2aXNpdGVkT2JqZWN0cyIsImZvckVhY2giLCJvTmF2T2JqIiwiX3R5cGUiLCJwdXNoIiwib0JpbmRpbmdFeHByZXNzaW9uIiwiZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCIsIm9UYXJnZXRCaW5kaW5nIiwiTWVhc3VyZXMiLCJVbml0IiwiSVNPQ3VycmVuY3kiLCJnZXRCaW5kaW5nV2l0aFVuaXRPckN1cnJlbmN5IiwibWVhc3VyZURpc3BsYXlNb2RlIiwiZm9ybWF0T3B0aW9ucyIsInNob3dNZWFzdXJlIiwiZ2V0VmFsdWVCaW5kaW5nIiwiaWdub3JlVW5pdCIsImlnbm9yZUZvcm1hdHRpbmciLCJiaW5kaW5nUGFyYW1ldGVycyIsInRhcmdldFR5cGVBbnkiLCJzaG93TWVhc3VyZU9ubHkiLCJpc1Byb3BlcnR5IiwiQ29tbXVuaWNhdGlvbiIsIklzRW1haWxBZGRyZXNzIiwib1Byb3BlcnR5VW5pdCIsImdldEFzc29jaWF0ZWRVbml0UHJvcGVydHkiLCJvUHJvcGVydHlDdXJyZW5jeSIsImdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5IiwiaGFzVmFsdWVIZWxwIiwic2hvd051bWJlciIsInBhcnNlS2VlcHNFbXB0eVN0cmluZyIsImNvbnN0cmFpbnRzIiwicGFyYW1ldGVycyIsInRhcmdldFR5cGUiLCJnZXRVbml0QmluZGluZyIsInNVbml0UHJvcGVydHlQYXRoIiwiZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGgiLCJzQ3VycmVuY3lQcm9wZXJ0eVBhdGgiLCJnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eVBhdGgiLCJ0YXJnZXRQcm9wZXJ0eVBhdGgiLCJvVU9NUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoIiwiZ2V0QXNzb2NpYXRlZFRleHRCaW5kaW5nIiwidGV4dFByb3BlcnR5UGF0aCIsImdldEFzc29jaWF0ZWRUZXh0UHJvcGVydHlQYXRoIiwib1RleHRQcm9wZXJ0eVBhdGgiLCJvVmFsdWVCaW5kaW5nIiwiJCRub1BhdGNoIiwiZ2V0RGlzcGxheVN0eWxlIiwib1Byb3BlcnR5UGF0aCIsIm9EYXRhRmllbGQiLCJvRGF0YU1vZGVsUGF0aCIsInNlbWFudGljT2JqZWN0Iiwib1Byb3BlcnR5IiwiVUkiLCJJc0ltYWdlVVJMIiwiSXNQaG9uZU51bWJlciIsIlRhcmdldCIsIlNlbWFudGljS2V5IiwiYVNlbWFudGljS2V5cyIsImJJc1NlbWFudGljS2V5IiwiZXZlcnkiLCJvS2V5Iiwic2VtYW50aWNLZXlTdHlsZSIsInRhcmdldEVudGl0eVNldCIsIkRyYWZ0Um9vdCIsIkNyaXRpY2FsaXR5IiwiTXVsdGlMaW5lVGV4dCIsImFOYXZpZ2F0aW9uUHJvcGVydGllcyIsImJJc1VzZWRJbk5hdmlnYXRpb25XaXRoUXVpY2tWaWV3RmFjZXRzIiwib05hdlByb3AiLCJyZWZlcmVudGlhbENvbnN0cmFpbnQiLCJsZW5ndGgiLCJvUmVmQ29uc3RyYWludCIsInNvdXJjZVByb3BlcnR5IiwiUXVpY2tWaWV3RmFjZXRzIiwiU2VtYW50aWNPYmplY3QiLCJnZXRFZGl0U3R5bGUiLCJvRmllbGRGb3JtYXRPcHRpb25zIiwiVmlzdWFsaXphdGlvbiIsIlByb3BlcnR5SGVscGVyIiwidmFsdWVPZiIsImdldFZpc2libGVFeHByZXNzaW9uIiwiZGF0YUZpZWxkTW9kZWxQYXRoIiwicHJvcGVydHlWYWx1ZSIsImlzQW5hbHl0aWNhbEdyb3VwSGVhZGVyRXhwYW5kZWQiLCJpc0FuYWx5dGljcyIsIklzRXhwYW5kZWQiLCJpc0FuYWx5dGljYWxMZWFmIiwiZXF1YWwiLCJOb2RlTGV2ZWwiLCJhbmQiLCJub3QiLCJIaWRkZW4iLCJpZkVsc2UiLCJvciIsImdldElucHV0RGVzY3JpcHRpb24iLCJkZXNjcmlwdGlvbkJpbmRpbmdFeHByZXNzaW9uIiwidW5pdFByb3BlcnR5IiwiZWRpdGFibGVFeHByZXNzaW9uIiwiaXNSZWFkT25seUV4cHJlc3Npb24iLCJpc0NvbXB1dGVkIiwiUVZUZXh0QmluZGluZyIsIm9Qcm9wZXJ0eVZhbHVlRGF0YU1vZGVsT2JqZWN0UGF0aCIsInJldHVyblZhbHVlIiwiZ2V0UXVpY2tWaWV3VHlwZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUEscUNBQXFDLEdBQUcsVUFDcERDLGlCQURvRCxFQUVwREMsZUFGb0QsRUFHbEM7QUFDbEIsV0FBT0Msb0JBQW9CLENBQUNGLGlCQUFELEVBQW9CLFNBQXBCLEVBQStCLFVBQUNHLFVBQUQsRUFBa0Q7QUFDM0csVUFBSUMsYUFBOEIsR0FBR0QsVUFBckM7O0FBQ0EsVUFBSUEsVUFBVSxDQUFDRSxTQUFYLEtBQXlCQyxTQUE3QixFQUF3QztBQUN2QztBQUNBLFlBQU1DLHNCQUFzQixHQUFHQyxvQkFBb0IsQ0FBQ1AsZUFBRCxFQUFrQkUsVUFBVSxDQUFDTSxJQUE3QixDQUFuRDtBQUNBTCxRQUFBQSxhQUFhLEdBQUdNLDZCQUE2QixDQUFDSCxzQkFBRCxFQUF5QkosVUFBekIsQ0FBN0M7QUFDQTs7QUFDRCxhQUFPQyxhQUFQO0FBQ0EsS0FSMEIsQ0FBM0I7QUFTQSxHQWJNOzs7O0FBZUEsTUFBTU0sNkJBQTZCLEdBQUcsVUFDNUNILHNCQUQ0QyxFQUU1Q0kseUJBRjRDLEVBRzVDQyxrQkFINEMsRUFJdkI7QUFBQTs7QUFDckIsUUFBTUMseUJBQXlCLEdBQUdELGtCQUFILGFBQUdBLGtCQUFILHVCQUFHQSxrQkFBa0IsQ0FBRUUsV0FBdEQ7QUFDQSxRQUFJVixhQUFhLEdBQUdPLHlCQUFwQjtBQUNBLFFBQU1JLG1CQUFtQixHQUN4QlIsc0JBQXNCLENBQUNTLFlBQXZCLENBQW9DQyxJQUFwQyxLQUE2QyxjQUE3QyxHQUNJVixzQkFBc0IsQ0FBQ1MsWUFBdkIsQ0FBb0NFLE9BRHhDLEdBRUlYLHNCQUFzQixDQUFDUyxZQUg1QjtBQUlBLFFBQU1HLGlCQUFpQixHQUFHTix5QkFBeUIsSUFBSU8sY0FBYyxDQUFDTCxtQkFBRCxFQUFzQlIsc0JBQXRCLENBQXJFO0FBQ0EsUUFBTWMsVUFBVSw0QkFBR04sbUJBQW1CLENBQUNPLFdBQXZCLG9GQUFHLHNCQUFpQ0MsTUFBcEMsMkRBQUcsdUJBQXlDQyxJQUE1RDtBQUNBLFFBQU1DLGdCQUFnQixHQUFHQyx1QkFBdUIsQ0FDL0NuQixzQkFBc0IsQ0FBQ29CLGVBRHdCLEVBRS9DcEIsc0JBQXNCLENBQUNxQixvQkFGd0IsQ0FBdkIsQ0FHdkJDLEdBSHVCLENBR25CLFVBQUFDLEVBQUU7QUFBQSxhQUFJQSxFQUFFLENBQUNDLElBQVA7QUFBQSxLQUhpQixDQUF6QjtBQUlBcEIsSUFBQUEseUJBQXlCLEdBQUdxQix5QkFBeUIsQ0FBQ2pCLG1CQUFELEVBQXNCSix5QkFBdEIsQ0FBckQ7O0FBQ0EsUUFBSVEsaUJBQWlCLEtBQUssT0FBdEIsSUFBaUNFLFVBQXJDLEVBQWlEO0FBQ2hELGNBQVFGLGlCQUFSO0FBQ0MsYUFBSyxhQUFMO0FBQ0NmLFVBQUFBLGFBQWEsR0FBRzZCLG9CQUFvQixDQUFDWixVQUFELEVBQWFJLGdCQUFiLENBQXBDO0FBQ0E7O0FBQ0QsYUFBSyxrQkFBTDtBQUNDckIsVUFBQUEsYUFBYSxHQUFHOEIsWUFBWSxDQUMzQixDQUFDRCxvQkFBb0IsQ0FBQ1osVUFBRCxFQUFhSSxnQkFBYixDQUFyQixFQUEyRWQseUJBQTNFLENBRDJCLEVBRTNCd0IsZUFBZSxDQUFDQyxrQkFGVyxDQUE1QjtBQUlBOztBQUNELGFBQUssa0JBQUw7QUFDQ2hDLFVBQUFBLGFBQWEsR0FBRzhCLFlBQVksQ0FDM0IsQ0FBQ3ZCLHlCQUFELEVBQTRCc0Isb0JBQW9CLENBQUNaLFVBQUQsRUFBYUksZ0JBQWIsQ0FBaEQsQ0FEMkIsRUFFM0JVLGVBQWUsQ0FBQ0Msa0JBRlcsQ0FBNUI7QUFJQTtBQWZGO0FBaUJBOztBQUNELFdBQU9oQyxhQUFQO0FBQ0EsR0F0Q007Ozs7QUF3Q0EsTUFBTWlDLHNCQUFzQixHQUFHLFVBQVNyQyxpQkFBVCxFQUE2Q0MsZUFBN0MsRUFBb0c7QUFDekksV0FBT0Msb0JBQW9CLENBQUNGLGlCQUFELEVBQW9CLFNBQXBCLEVBQStCLFVBQUNHLFVBQUQsRUFBa0Q7QUFDM0csVUFBSUMsYUFBOEIsR0FBR0QsVUFBckM7O0FBQ0EsVUFBSUEsVUFBVSxDQUFDRSxTQUFYLEtBQXlCQyxTQUE3QixFQUF3QztBQUN2QztBQUNBLFlBQU1DLHNCQUFzQixHQUFHQyxvQkFBb0IsQ0FBQ1AsZUFBRCxFQUFrQkUsVUFBVSxDQUFDTSxJQUE3QixDQUFuRDtBQUNBTCxRQUFBQSxhQUFhLEdBQUc0Qix5QkFBeUIsQ0FBQ3pCLHNCQUFzQixDQUFDUyxZQUF4QixFQUFzQ2IsVUFBdEMsQ0FBekM7QUFDQTs7QUFDRCxhQUFPQyxhQUFQO0FBQ0EsS0FSMEIsQ0FBM0I7QUFTQSxHQVZNOzs7O0FBWUEsTUFBTWtDLGNBQWMsR0FBRyxVQUM3QkMsNEJBRDZCLEVBRTdCM0Isa0JBRjZCLEVBSW9CO0FBQUE7O0FBQUEsUUFEakQ0QixRQUNpRCx1RUFEN0IsS0FDNkI7O0FBQ2pELFFBQ0MsMEJBQUFELDRCQUE0QixDQUFDdkIsWUFBN0IsZ0ZBQTJDeUIsS0FBM0MsTUFBcUQsc0NBQXJELElBQ0EsMkJBQUFGLDRCQUE0QixDQUFDdkIsWUFBN0Isa0ZBQTJDeUIsS0FBM0MsTUFBcUQsMENBRHJELElBRUEsMkJBQUFGLDRCQUE0QixDQUFDdkIsWUFBN0Isa0ZBQTJDeUIsS0FBM0MsTUFBcUQsd0RBRnJELElBR0EsMkJBQUFGLDRCQUE0QixDQUFDdkIsWUFBN0Isa0ZBQTJDeUIsS0FBM0MsTUFBcUQsNkNBSnRELEVBS0U7QUFDRDtBQUNBLFVBQU1DLFVBQVUsR0FBR0gsNEJBQTRCLENBQUN2QixZQUE3QixDQUEwQzJCLEtBQTFDLElBQW1ELEVBQXRFO0FBQ0EsYUFBT0MsY0FBYyxDQUFDQyxRQUFRLENBQUNILFVBQUQsQ0FBVCxDQUFyQjtBQUNBOztBQUNELFFBQUlJLGdCQUFnQixDQUFDUCw0QkFBNEIsQ0FBQ3ZCLFlBQTlCLENBQWhCLElBQStEdUIsNEJBQTRCLENBQUN2QixZQUE3QixDQUEwQ0UsT0FBN0csRUFBc0g7QUFDckgsVUFBTTZCLFFBQVEsR0FBR1IsNEJBQTRCLENBQUNTLGdCQUE3QixDQUE4Q0MsV0FBOUMsQ0FBMERWLDRCQUE0QixDQUFDdkIsWUFBN0IsQ0FBMENQLElBQXBHLEVBQTBHLElBQTFHLENBQWpCO0FBQ0E4QixNQUFBQSw0QkFBNEIsQ0FBQ3ZCLFlBQTdCLEdBQTRDK0IsUUFBUSxDQUFDRyxNQUFyRDtBQUNBSCxNQUFBQSxRQUFRLENBQUNJLGNBQVQsQ0FBd0JDLE9BQXhCLENBQWdDLFVBQUNDLE9BQUQsRUFBa0I7QUFDakQsWUFBSSxDQUFBQSxPQUFPLFNBQVAsSUFBQUEsT0FBTyxXQUFQLFlBQUFBLE9BQU8sQ0FBRUMsS0FBVCxNQUFtQixvQkFBdkIsRUFBNkM7QUFDNUNmLFVBQUFBLDRCQUE0QixDQUFDWCxvQkFBN0IsQ0FBa0QyQixJQUFsRCxDQUF1REYsT0FBdkQ7QUFDQTtBQUNELE9BSkQ7QUFLQTs7QUFDRCxRQUFNRyxrQkFBa0IsR0FBR3hELGlCQUFpQixDQUFDeUQsa0NBQWtDLENBQUNsQiw0QkFBRCxDQUFuQyxDQUE1QztBQUNBLFFBQUltQixjQUFKOztBQUNBLFFBQ0MsMEJBQUFuQiw0QkFBNEIsQ0FBQ3ZCLFlBQTdCLG9HQUEyQ00sV0FBM0Msb0dBQXdEcUMsUUFBeEQsMEVBQWtFQyxJQUFsRSw4QkFDQXJCLDRCQUE0QixDQUFDdkIsWUFEN0IsNkVBQ0EsdUJBQTJDTSxXQUQzQyw4RUFDQSx1QkFBd0RxQyxRQUR4RCxvREFDQSx3QkFBa0VFLFdBRm5FLEVBR0U7QUFDREgsTUFBQUEsY0FBYyxHQUFHSSw0QkFBNEIsQ0FBQ3ZCLDRCQUFELEVBQStCaUIsa0JBQS9CLENBQTdDOztBQUNBLFVBQUksQ0FBQTVDLGtCQUFrQixTQUFsQixJQUFBQSxrQkFBa0IsV0FBbEIsWUFBQUEsa0JBQWtCLENBQUVtRCxrQkFBcEIsTUFBMkMsUUFBL0MsRUFBeUQ7QUFDeEQ7QUFDQ0wsUUFBQUEsY0FBRCxDQUFrRE0sYUFBbEQsbUNBQ0tOLGNBQUQsQ0FBa0RNLGFBRHREO0FBRUNDLFVBQUFBLFdBQVcsRUFBRTtBQUZkO0FBSUE7QUFDRCxLQVpELE1BWU87QUFDTlAsTUFBQUEsY0FBYyxHQUFHaEQsNkJBQTZCLENBQUM2Qiw0QkFBRCxFQUErQmlCLGtCQUEvQixFQUFtRDVDLGtCQUFuRCxDQUE5QztBQUNBOztBQUNELFFBQUk0QixRQUFKLEVBQWM7QUFDYixhQUFPa0IsY0FBUDtBQUNBLEtBdkNnRCxDQXdDakQ7OztBQUNBLFdBQU9kLGNBQWMsQ0FBQ2MsY0FBRCxDQUFyQjtBQUNBLEdBOUNNOzs7O0FBZ0RBLE1BQU1RLGVBQWUsR0FBRyxVQUM5QjNCLDRCQUQ4QixFQUU5QjNCLGtCQUY4QixFQVFGO0FBQUEsUUFMNUJ1RCxVQUs0Qix1RUFMTixLQUtNO0FBQUEsUUFKNUJDLGdCQUk0Qix1RUFKQSxLQUlBO0FBQUEsUUFINUJDLGlCQUc0QjtBQUFBLFFBRjVCQyxhQUU0QjtBQUFBLFFBRDVCQyxlQUM0Qix1RUFERCxLQUNDOztBQUM1QixRQUFJekIsZ0JBQWdCLENBQUNQLDRCQUE0QixDQUFDdkIsWUFBOUIsQ0FBaEIsSUFBK0R1Qiw0QkFBNEIsQ0FBQ3ZCLFlBQTdCLENBQTBDRSxPQUE3RyxFQUFzSDtBQUNySCxVQUFNNkIsUUFBUSxHQUFHUiw0QkFBNEIsQ0FBQ1MsZ0JBQTdCLENBQThDQyxXQUE5QyxDQUEwRFYsNEJBQTRCLENBQUN2QixZQUE3QixDQUEwQ1AsSUFBcEcsRUFBMEcsSUFBMUcsQ0FBakI7QUFDQThCLE1BQUFBLDRCQUE0QixDQUFDdkIsWUFBN0IsR0FBNEMrQixRQUFRLENBQUNHLE1BQXJEO0FBQ0FILE1BQUFBLFFBQVEsQ0FBQ0ksY0FBVCxDQUF3QkMsT0FBeEIsQ0FBZ0MsVUFBQ0MsT0FBRCxFQUFrQjtBQUNqRCxZQUFJQSxPQUFPLElBQUlBLE9BQU8sQ0FBQ0MsS0FBUixLQUFrQixvQkFBakMsRUFBdUQ7QUFDdERmLFVBQUFBLDRCQUE0QixDQUFDWCxvQkFBN0IsQ0FBa0QyQixJQUFsRCxDQUF1REYsT0FBdkQ7QUFDQTtBQUNELE9BSkQ7QUFLQTs7QUFFRCxRQUFNckMsWUFBWSxHQUFHdUIsNEJBQTRCLENBQUN2QixZQUFsRDs7QUFDQSxRQUFJd0QsVUFBVSxDQUFDeEQsWUFBRCxDQUFkLEVBQThCO0FBQUE7O0FBQzdCLFVBQUl3QyxrQkFBdUQsR0FBR3hELGlCQUFpQixDQUM5RXlELGtDQUFrQyxDQUFDbEIsNEJBQUQsQ0FENEMsQ0FBL0U7O0FBR0EsbUNBQUl2QixZQUFZLENBQUNNLFdBQWpCLDRFQUFJLHNCQUEwQm1ELGFBQTlCLG1EQUFJLHVCQUF5Q0MsY0FBN0MsRUFBNkQ7QUFDNURsQixRQUFBQSxrQkFBa0IsQ0FBQ3ZDLElBQW5CLEdBQTBCLHdCQUExQjtBQUNBLE9BRkQsTUFFTztBQUNOLFlBQU0wRCxhQUFhLEdBQUdDLHlCQUF5QixDQUFDckMsNEJBQTRCLENBQUN2QixZQUE5QixDQUEvQztBQUNBLFlBQU02RCxpQkFBaUIsR0FBR0MsNkJBQTZCLENBQUN2Qyw0QkFBNEIsQ0FBQ3ZCLFlBQTlCLENBQXZEOztBQUNBLFlBQUksQ0FBQ21ELFVBQUQsS0FBZ0JRLGFBQWEsSUFBSUUsaUJBQWpDLENBQUosRUFBeUQ7QUFDeERyQixVQUFBQSxrQkFBa0IsR0FBR00sNEJBQTRCLENBQUN2Qiw0QkFBRCxFQUErQmlCLGtCQUEvQixDQUFqRDs7QUFDQSxjQUNFbUIsYUFBYSxJQUFJLENBQUNJLFlBQVksQ0FBQ0osYUFBRCxDQUEvQixJQUNDRSxpQkFBaUIsSUFBSSxDQUFDRSxZQUFZLENBQUNGLGlCQUFELENBRG5DLElBRUEsQ0FBQWpFLGtCQUFrQixTQUFsQixJQUFBQSxrQkFBa0IsV0FBbEIsWUFBQUEsa0JBQWtCLENBQUVtRCxrQkFBcEIsTUFBMkMsUUFINUMsRUFJRTtBQUNEO0FBQ0E7QUFDQSxnQkFBSSxDQUFDUCxrQkFBa0IsQ0FBQ1EsYUFBeEIsRUFBdUM7QUFDdENSLGNBQUFBLGtCQUFrQixDQUFDUSxhQUFuQixHQUFtQyxFQUFuQztBQUNBOztBQUNELGdCQUFJTyxlQUFKLEVBQXFCO0FBQ3BCZixjQUFBQSxrQkFBa0IsQ0FBQ1EsYUFBbkIsQ0FBaUNnQixVQUFqQyxHQUE4QyxLQUE5QztBQUNBLGFBRkQsTUFFTztBQUNOeEIsY0FBQUEsa0JBQWtCLENBQUNRLGFBQW5CLENBQWlDQyxXQUFqQyxHQUErQyxLQUEvQztBQUNBO0FBQ0Q7QUFDRCxTQWxCRCxNQWtCTztBQUNOVCxVQUFBQSxrQkFBa0IsR0FBR3hCLHlCQUF5QixDQUFDaEIsWUFBRCxFQUFld0Msa0JBQWYsQ0FBOUM7O0FBQ0EsY0FBSUEsa0JBQWtCLENBQUN2QyxJQUFuQixLQUE0QixnQ0FBaEMsRUFBa0U7QUFDakV1QyxZQUFBQSxrQkFBa0IsQ0FBQ1EsYUFBbkIsR0FBbUM7QUFDbENpQixjQUFBQSxxQkFBcUIsRUFBRTtBQURXLGFBQW5DO0FBR0E7QUFDRDtBQUNEOztBQUNELFVBQUliLGdCQUFKLEVBQXNCO0FBQ3JCLGVBQU9aLGtCQUFrQixDQUFDUSxhQUExQjtBQUNBLGVBQU9SLGtCQUFrQixDQUFDMEIsV0FBMUI7QUFDQSxlQUFPMUIsa0JBQWtCLENBQUN2QyxJQUExQjtBQUNBOztBQUNELFVBQUlvRCxpQkFBSixFQUF1QjtBQUN0QmIsUUFBQUEsa0JBQWtCLENBQUMyQixVQUFuQixHQUFnQ2QsaUJBQWhDO0FBQ0E7O0FBQ0QsVUFBSUMsYUFBSixFQUFtQjtBQUNsQmQsUUFBQUEsa0JBQWtCLENBQUM0QixVQUFuQixHQUFnQyxLQUFoQztBQUNBOztBQUNELGFBQU94QyxjQUFjLENBQUNZLGtCQUFELENBQXJCO0FBQ0EsS0FoREQsTUFnRE87QUFDTixVQUNDLENBQUF4QyxZQUFZLFNBQVosSUFBQUEsWUFBWSxXQUFaLFlBQUFBLFlBQVksQ0FBRXlCLEtBQWQsdURBQ0EsQ0FBQXpCLFlBQVksU0FBWixJQUFBQSxZQUFZLFdBQVosWUFBQUEsWUFBWSxDQUFFeUIsS0FBZCw4REFGRCxFQUdFO0FBQ0QsZUFBT0csY0FBYyxDQUFDWCxvQkFBb0IsQ0FBRWpCLFlBQUQsQ0FBbUMyQixLQUFwQyxDQUFyQixDQUFyQjtBQUNBLE9BTEQsTUFLTztBQUNOLGVBQU8sRUFBUDtBQUNBO0FBQ0Q7QUFDRCxHQTlFTTs7OztBQWdGQSxNQUFNMEMsY0FBYyxHQUFHLFVBQzdCOUMsNEJBRDZCLEVBRTdCM0Isa0JBRjZCLEVBR0Q7QUFDNUIsUUFBTTBFLGlCQUFpQixHQUFHQyw2QkFBNkIsQ0FBQ2hELDRCQUE0QixDQUFDdkIsWUFBOUIsQ0FBdkQ7QUFDQSxRQUFNd0UscUJBQXFCLEdBQUdDLGlDQUFpQyxDQUFDbEQsNEJBQTRCLENBQUN2QixZQUE5QixDQUEvRDs7QUFDQSxRQUFJc0UsaUJBQWlCLElBQUlFLHFCQUF6QixFQUFnRDtBQUMvQyxVQUFNRSxrQkFBa0IsR0FBR0osaUJBQWlCLElBQUlFLHFCQUFoRDtBQUNBLFVBQU1HLCtCQUErQixHQUFHbkYsb0JBQW9CLENBQUMrQiw0QkFBRCxFQUErQm1ELGtCQUEvQixDQUE1RDtBQUNBLGFBQU94QixlQUFlLENBQUN5QiwrQkFBRCxFQUFrQy9FLGtCQUFsQyxDQUF0QjtBQUNBOztBQUNELFdBQU9OLFNBQVA7QUFDQSxHQVpNOzs7O0FBY0EsTUFBTXNGLHdCQUF3QixHQUFHLFVBQ3ZDckQsNEJBRHVDLEVBRXZDM0Isa0JBRnVDLEVBR1g7QUFDNUIsUUFBTWlGLGdCQUFnQixHQUFHQyw2QkFBNkIsQ0FBQ3ZELDRCQUE0QixDQUFDdkIsWUFBOUIsQ0FBdEQ7O0FBQ0EsUUFBSTZFLGdCQUFKLEVBQXNCO0FBQ3JCLFVBQU1FLGlCQUFpQixHQUFHdkYsb0JBQW9CLENBQUMrQiw0QkFBRCxFQUErQnNELGdCQUEvQixDQUE5QztBQUNBLFVBQU1HLGFBQWEsR0FBRzlCLGVBQWUsQ0FBQzZCLGlCQUFELEVBQW9CbkYsa0JBQXBCLEVBQXdDLElBQXhDLEVBQThDLElBQTlDLEVBQW9EO0FBQUVxRixRQUFBQSxTQUFTLEVBQUU7QUFBYixPQUFwRCxDQUFyQztBQUNBLGFBQU9ELGFBQVA7QUFDQTs7QUFDRCxXQUFPMUYsU0FBUDtBQUNBLEdBWE07Ozs7QUFhQSxNQUFNNEYsZUFBZSxHQUFHLFVBQzlCQyxhQUQ4QixFQUU5QkMsVUFGOEIsRUFHOUJDLGNBSDhCLEVBSTlCekYsa0JBSjhCLEVBSzlCMEYsY0FMOEIsRUFNZjtBQUFBOztBQUNmO0FBQ0EsUUFBTUMsU0FBbUIsR0FBSXpELGdCQUFnQixDQUFDcUQsYUFBRCxDQUFoQixJQUFtQ0EsYUFBYSxDQUFDakYsT0FBbEQsSUFBK0RpRixhQUEzRjs7QUFDQSxRQUNDRyxjQUFjLElBQ2QsMkJBQUNDLFNBQVMsQ0FBQ2pGLFdBQVgsNEVBQUMsc0JBQXVCa0YsRUFBeEIsbURBQUMsdUJBQTJCQyxVQUE1QixDQURBLElBRUEsRUFBRUYsU0FBUyxDQUFDdEYsSUFBVixLQUFtQixZQUFyQixDQUZBLElBR0EsRUFBRSwwQkFBQXNGLFNBQVMsQ0FBQ2pGLFdBQVYsb0dBQXVCbUQsYUFBdkIsMEVBQXNDQyxjQUF0Qyw4QkFBd0Q2QixTQUFTLENBQUNqRixXQUFsRSw2RUFBd0QsdUJBQXVCbUQsYUFBL0UsbURBQXdELHVCQUFzQ2lDLGFBQWhHLENBSkQsRUFLRTtBQUNELGFBQU8sdUJBQVA7QUFDQTs7QUFDRCxRQUFJLENBQUNQLGFBQUQsSUFBa0IsT0FBT0EsYUFBUCxLQUF5QixRQUEvQyxFQUF5RDtBQUN4RCxhQUFPLE1BQVA7QUFDQTs7QUFDRCxRQUFJSSxTQUFTLENBQUN0RixJQUFWLEtBQW1CLFlBQXZCLEVBQXFDO0FBQ3BDLGFBQU8sTUFBUDtBQUNBOztBQUNELGtDQUFJc0YsU0FBUyxDQUFDakYsV0FBZCw2RUFBSSx1QkFBdUJrRixFQUEzQixtREFBSSx1QkFBMkJDLFVBQS9CLEVBQTJDO0FBQzFDLGFBQU8sUUFBUDtBQUNBOztBQUNELFlBQVFMLFVBQVUsQ0FBQzNELEtBQW5CO0FBQ0MsV0FBSywwQ0FBTDtBQUNDLGVBQU8sV0FBUDs7QUFDRCxXQUFLLG1EQUFMO0FBQ0MsWUFBSSx1QkFBQTJELFVBQVUsQ0FBQ08sTUFBWCxtR0FBbUJ6RixPQUFuQixnRkFBNEJ1QixLQUE1QixNQUFzQywwQ0FBMUMsRUFBc0Y7QUFDckYsaUJBQU8sV0FBUDtBQUNBLFNBRkQsTUFFTyxJQUFJLHdCQUFBMkQsVUFBVSxDQUFDTyxNQUFYLHFHQUFtQnpGLE9BQW5CLGdGQUE0QnVCLEtBQTVCLE1BQXNDLG1EQUExQyxFQUErRjtBQUNyRyxpQkFBTyxTQUFQO0FBQ0E7O0FBQ0Q7O0FBQ0QsV0FBSywrQ0FBTDtBQUNBLFdBQUssOERBQUw7QUFDQyxlQUFPLFFBQVA7O0FBQ0QsV0FBSyx3REFBTDtBQUNDLGVBQU8sTUFBUDtBQWRGOztBQWdCQSxRQUFJNEQsY0FBSixhQUFJQSxjQUFKLHdDQUFJQSxjQUFjLENBQUVyRCxnQkFBcEIsNEVBQUksc0JBQWtDMUIsV0FBdEMsNkVBQUksdUJBQStDQyxNQUFuRCxtREFBSSx1QkFBdURxRixXQUEzRCxFQUF3RTtBQUN2RSxVQUFNQyxhQUFhLEdBQUdSLGNBQWMsQ0FBQ3JELGdCQUFmLENBQWdDMUIsV0FBaEMsQ0FBNENDLE1BQTVDLENBQW1EcUYsV0FBekU7QUFDQSxVQUFNRSxjQUFjLEdBQUcsQ0FBQ0QsYUFBYSxDQUFDRSxLQUFkLENBQW9CLFVBQVNDLElBQVQsRUFBZTtBQUFBOztBQUMxRCxlQUFPLENBQUFBLElBQUksU0FBSixJQUFBQSxJQUFJLFdBQUosNkJBQUFBLElBQUksQ0FBRTlGLE9BQU4sZ0VBQWVhLElBQWYsTUFBd0J3RSxTQUFTLENBQUN4RSxJQUF6QztBQUNBLE9BRnVCLENBQXhCOztBQUdBLFVBQUkrRSxjQUFjLElBQUlsRyxrQkFBa0IsQ0FBQ3FHLGdCQUF6QyxFQUEyRDtBQUFBOztBQUMxRCxzQ0FBSVosY0FBYyxDQUFDYSxlQUFuQiw2RUFBSSx1QkFBZ0M1RixXQUFwQyw2RUFBSSx1QkFBNkNDLE1BQWpELG1EQUFJLHVCQUFxRDRGLFNBQXpELEVBQW9FO0FBQ25FO0FBQ0E7QUFDQSxpQkFBTywrQkFBUDtBQUNBOztBQUNELGVBQU92RyxrQkFBa0IsQ0FBQ3FHLGdCQUFuQixLQUF3QyxrQkFBeEMsR0FBNkQsa0JBQTdELEdBQWtGLGtCQUF6RjtBQUNBO0FBQ0Q7O0FBQ0QsUUFBSWIsVUFBVSxDQUFDZ0IsV0FBZixFQUE0QjtBQUMzQixhQUFPLGNBQVA7QUFDQTs7QUFDRCxrQ0FBSWIsU0FBUyxDQUFDakYsV0FBZCw4RUFBSSx1QkFBdUJxQyxRQUEzQixvREFBSSx3QkFBaUNFLFdBQXJDLEVBQWtEO0FBQ2pELFVBQUlqRCxrQkFBa0IsQ0FBQ21ELGtCQUFuQixLQUEwQyxRQUE5QyxFQUF3RDtBQUN2RCxlQUFPLE1BQVA7QUFDQTs7QUFDRCxhQUFPLG9CQUFQO0FBQ0E7O0FBQ0QsUUFBSSwyQkFBQXdDLFNBQVMsQ0FBQ2pGLFdBQVYsdUdBQXVCbUQsYUFBdkIsNEVBQXNDQyxjQUF0QywrQkFBd0Q2QixTQUFTLENBQUNqRixXQUFsRSwrRUFBd0Qsd0JBQXVCbUQsYUFBL0Usb0RBQXdELHdCQUFzQ2lDLGFBQWxHLEVBQWlIO0FBQ2hILGFBQU8sTUFBUDtBQUNBOztBQUNELG1DQUFJSCxTQUFTLENBQUNqRixXQUFkLCtFQUFJLHdCQUF1QmtGLEVBQTNCLG9EQUFJLHdCQUEyQmEsYUFBL0IsRUFBOEM7QUFDN0MsYUFBTyxnQkFBUDtBQUNBOztBQUNELFFBQU1DLHFCQUFxQixHQUFHLENBQUFqQixjQUFjLFNBQWQsSUFBQUEsY0FBYyxXQUFkLHNDQUFBQSxjQUFjLENBQUVyRCxnQkFBaEIsa0ZBQWtDcEIsb0JBQWxDLEtBQTBELEVBQXhGO0FBQ0EsUUFBSTJGLHNDQUFzQyxHQUFHLEtBQTdDO0FBQ0FELElBQUFBLHFCQUFxQixDQUFDbEUsT0FBdEIsQ0FBOEIsVUFBQW9FLFFBQVEsRUFBSTtBQUN6QyxVQUFJQSxRQUFRLENBQUNDLHFCQUFULElBQWtDRCxRQUFRLENBQUNDLHFCQUFULENBQStCQyxNQUFyRSxFQUE2RTtBQUM1RUYsUUFBQUEsUUFBUSxDQUFDQyxxQkFBVCxDQUErQnJFLE9BQS9CLENBQXVDLFVBQUF1RSxjQUFjLEVBQUk7QUFDeEQsY0FBSSxDQUFBQSxjQUFjLFNBQWQsSUFBQUEsY0FBYyxXQUFkLFlBQUFBLGNBQWMsQ0FBRUMsY0FBaEIsTUFBbUNyQixTQUFTLENBQUN4RSxJQUFqRCxFQUF1RDtBQUFBOztBQUN0RCxnQkFBSXlGLFFBQUosYUFBSUEsUUFBSix1Q0FBSUEsUUFBUSxDQUFFcEMsVUFBZCwwRUFBSSxxQkFBc0I5RCxXQUExQiw0RUFBSSxzQkFBbUNrRixFQUF2QyxtREFBSSx1QkFBdUNxQixlQUEzQyxFQUE0RDtBQUMzRE4sY0FBQUEsc0NBQXNDLEdBQUcsSUFBekM7QUFDQTtBQUNEO0FBQ0QsU0FORDtBQU9BO0FBQ0QsS0FWRDs7QUFXQSxRQUFJQSxzQ0FBSixFQUE0QztBQUMzQyxhQUFPLHVCQUFQO0FBQ0E7O0FBQ0QsbUNBQUloQixTQUFTLENBQUNqRixXQUFkLCtFQUFJLHdCQUF1QkMsTUFBM0Isb0RBQUksd0JBQStCdUcsY0FBbkMsRUFBbUQ7QUFDbEQsYUFBTyxhQUFQO0FBQ0E7O0FBQ0QsUUFBSTFCLFVBQVUsQ0FBQzNELEtBQVgsS0FBcUIsNkNBQXpCLEVBQXdFO0FBQ3ZFLGFBQU8sTUFBUDtBQUNBOztBQUNELFdBQU8sTUFBUDtBQUNBLEdBOUZNOzs7O0FBZ0dBLE1BQU1zRixZQUFZLEdBQUcsVUFDM0I1QixhQUQyQixFQUUzQkMsVUFGMkIsRUFHM0I0QixtQkFIMkIsRUFJUjtBQUFBOztBQUNuQjtBQUNBLFFBQUksQ0FBQzdCLGFBQUQsSUFBa0IsT0FBT0EsYUFBUCxLQUF5QixRQUEvQyxFQUF5RDtBQUN4RCxhQUFPLElBQVA7QUFDQTs7QUFDRCxRQUFNSSxTQUFtQixHQUFJekQsZ0JBQWdCLENBQUNxRCxhQUFELENBQWhCLElBQW1DQSxhQUFhLENBQUNqRixPQUFsRCxJQUErRGlGLGFBQTNGOztBQUNBLFFBQUlJLFNBQVMsQ0FBQ3RGLElBQVYsS0FBbUIsWUFBdkIsRUFBcUM7QUFDcEMsYUFBTyxNQUFQO0FBQ0E7O0FBQ0QsWUFBUW1GLFVBQVUsQ0FBQzNELEtBQW5CO0FBQ0MsV0FBSyxtREFBTDtBQUNDLFlBQUksd0JBQUEyRCxVQUFVLENBQUNPLE1BQVgscUdBQW1CekYsT0FBbkIsZ0ZBQTRCdUIsS0FBNUIsTUFBc0MsbURBQTFDLEVBQStGO0FBQzlGLGlCQUFPLElBQVA7QUFDQSxTQUZELE1BRU8sSUFBSSx3QkFBQTJELFVBQVUsQ0FBQ08sTUFBWCxxR0FBbUJ6RixPQUFuQixnRkFBNEIrRyxhQUE1QixNQUE4Qyw2QkFBbEQsRUFBaUY7QUFDdkYsaUJBQU8saUJBQVA7QUFDQTs7QUFDRDs7QUFDRCxXQUFLLDBDQUFMO0FBQ0MsWUFBSSxDQUFBN0IsVUFBVSxTQUFWLElBQUFBLFVBQVUsV0FBVixZQUFBQSxVQUFVLENBQUU2QixhQUFaLE1BQThCLDZCQUFsQyxFQUFpRTtBQUNoRSxpQkFBTyxpQkFBUDtBQUNBOztBQUNEOztBQUNELFdBQUssK0NBQUw7QUFDQSxXQUFLLHdEQUFMO0FBQ0EsV0FBSyw4REFBTDtBQUNDLGVBQU8sSUFBUDtBQWhCRjs7QUFrQkEsUUFBTXRELGFBQWEsR0FBR0MseUJBQXlCLENBQUMyQixTQUFELENBQS9DO0FBQ0EsUUFBTTFCLGlCQUFpQixHQUFHQyw2QkFBNkIsQ0FBQ3lCLFNBQUQsQ0FBdkQ7O0FBQ0EsUUFDRTJCLGNBQWMsQ0FBQ25ELFlBQWYsQ0FBNEJ3QixTQUE1QixLQUEwQ0EsU0FBUyxDQUFDdEYsSUFBVixLQUFtQixhQUE5RCxJQUNDMEQsYUFBYSxJQUFJdUQsY0FBYyxDQUFDbkQsWUFBZixDQUE0QkosYUFBNUIsQ0FEbEIsSUFFQ0UsaUJBQWlCLElBQUlxRCxjQUFjLENBQUNuRCxZQUFmLENBQTRCRixpQkFBNUIsQ0FIdkIsRUFJRTtBQUNELFVBQUksQ0FBQW1ELG1CQUFtQixTQUFuQixJQUFBQSxtQkFBbUIsV0FBbkIsWUFBQUEsbUJBQW1CLENBQUVqRSxrQkFBckIsTUFBNEMsUUFBaEQsRUFBMEQ7QUFDekQsZUFBTyxPQUFQO0FBQ0E7O0FBQ0QsYUFBTyxvQkFBUDtBQUNBOztBQUNELFFBQUksMkJBQUF3QyxTQUFTLENBQUNqRixXQUFWLHVHQUF1QmtGLEVBQXZCLHVHQUEyQmEsYUFBM0IsNEVBQTBDYyxPQUExQyxNQUF1RDVCLFNBQVMsQ0FBQ3RGLElBQVYsS0FBbUIsWUFBOUUsRUFBNEY7QUFDM0YsYUFBTyxVQUFQO0FBQ0E7O0FBQ0QsWUFBUXNGLFNBQVMsQ0FBQ3RGLElBQWxCO0FBQ0MsV0FBSyxVQUFMO0FBQ0MsZUFBTyxZQUFQOztBQUNELFdBQUssVUFBTDtBQUNBLFdBQUssZUFBTDtBQUNDLGVBQU8sWUFBUDs7QUFDRCxXQUFLLGNBQUw7QUFDQSxXQUFLLG9CQUFMO0FBQ0MsZUFBTyxnQkFBUDs7QUFDRCxXQUFLLGFBQUw7QUFDQyxlQUFPLFVBQVA7QUFWRjs7QUFZQSxRQUFJLDJCQUFBc0YsU0FBUyxDQUFDakYsV0FBVix1R0FBdUJxQyxRQUF2Qiw0RUFBaUNFLFdBQWpDLCtCQUFnRDBDLFNBQVMsQ0FBQ2pGLFdBQTFELCtFQUFnRCx3QkFBdUJxQyxRQUF2RSxvREFBZ0Qsd0JBQWlDQyxJQUFyRixFQUEyRjtBQUMxRixhQUFPLGVBQVA7QUFDQTs7QUFDRCxXQUFPLE9BQVA7QUFDQSxHQTlETTtBQWdFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sTUFBTXdFLG9CQUFvQixHQUFHLFVBQ25DQyxrQkFEbUMsRUFFbkNyRSxhQUZtQyxFQUdQO0FBQUE7O0FBQzVCLFFBQU1oRCxZQUF5RCxHQUFHcUgsa0JBQWtCLENBQUNySCxZQUFyRjtBQUNBLFFBQUlzSCxhQUFKOztBQUNBLFFBQUl0SCxZQUFKLEVBQWtCO0FBQ2pCLGNBQVFBLFlBQVksQ0FBQ3lCLEtBQXJCO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0M2RixVQUFBQSxhQUFhLEdBQUd0SCxZQUFZLENBQUMyQixLQUFiLENBQW1CekIsT0FBbkM7QUFDQTs7QUFDRDtBQUNDO0FBQ0EsY0FBSSxDQUFBRixZQUFZLFNBQVosSUFBQUEsWUFBWSxXQUFaLG9DQUFBQSxZQUFZLENBQUUyRixNQUFkLHVHQUFzQnpGLE9BQXRCLGdGQUErQnVCLEtBQS9CLGdEQUFKLEVBQThFO0FBQUE7O0FBQzdFNkYsWUFBQUEsYUFBYSw2QkFBR3RILFlBQVksQ0FBQzJGLE1BQWIsQ0FBb0J6RixPQUF2QiwyREFBRyx1QkFBNkJ5QixLQUE3QixDQUFtQ3pCLE9BQW5EO0FBQ0E7QUFDQTs7QUFDRjs7QUFDQTtBQUNBO0FBQ0E7QUFDQ29ILFVBQUFBLGFBQWEsR0FBR2hJLFNBQWhCO0FBbkJGO0FBcUJBOztBQUNELFFBQU1pSSwrQkFBK0IsR0FBR3ZFLGFBQWEsU0FBYixJQUFBQSxhQUFhLFdBQWIsSUFBQUEsYUFBYSxDQUFFd0UsV0FBZixHQUE2QmhDLEVBQUUsQ0FBQ2lDLFVBQWhDLEdBQTZDNUYsUUFBUSxDQUFDLEtBQUQsQ0FBN0Y7QUFDQSxRQUFNNkYsZ0JBQWdCLEdBQUcxRSxhQUFhLFNBQWIsSUFBQUEsYUFBYSxXQUFiLElBQUFBLGFBQWEsQ0FBRXdFLFdBQWYsR0FBNkJHLEtBQUssQ0FBQ25DLEVBQUUsQ0FBQ29DLFNBQUosRUFBZSxDQUFmLENBQWxDLEdBQXNEL0YsUUFBUSxDQUFDLEtBQUQsQ0FBdkYsQ0EzQjRCLENBNkI1QjtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxXQUFPRCxjQUFjLENBQ3BCaUcsR0FBRyxNQUFILFNBQ0ksQ0FDRkMsR0FBRyxDQUFDSCxLQUFLLENBQUMxRyxvQkFBb0IsQ0FBQ2pCLFlBQUQsYUFBQ0EsWUFBRCxpREFBQ0EsWUFBWSxDQUFFTSxXQUFmLHFGQUFDLHVCQUEyQmtGLEVBQTVCLDJEQUFDLHVCQUErQnVDLE1BQWhDLENBQXJCLEVBQThELElBQTlELENBQU4sQ0FERCxFQUVGQyxNQUFNLENBQ0wsQ0FBQyxDQUFDVixhQURHLEVBRUxBLGFBQWEsSUFBSVEsR0FBRyxDQUFDSCxLQUFLLENBQUMxRyxvQkFBb0IsMEJBQUNxRyxhQUFhLENBQUNoSCxXQUFmLG9GQUFDLHNCQUEyQmtGLEVBQTVCLDJEQUFDLHVCQUErQnVDLE1BQWhDLENBQXJCLEVBQThELElBQTlELENBQU4sQ0FGZixFQUdMLElBSEssQ0FGSixFQU9GRSxFQUFFLENBQUNILEdBQUcsQ0FBQ1AsK0JBQUQsQ0FBSixFQUF1Q0csZ0JBQXZDLENBUEEsQ0FESixDQURvQixDQUFyQjtBQWFBLEdBakRNOzs7O0FBbURBLE1BQU1RLG1CQUFtQixHQUFHLFVBQ2xDL0MsYUFEa0MsRUFFbENnRCw0QkFGa0MsRUFHTjtBQUM1QixRQUFNNUMsU0FBUyxHQUFJekQsZ0JBQWdCLENBQUNxRCxhQUFELENBQWhCLElBQW1DQSxhQUFhLENBQUNqRixPQUFsRCxJQUErRGlGLGFBQWpGO0FBQ0EsUUFBTWlELFlBQVksR0FBR3RFLDZCQUE2QixDQUFDeUIsU0FBRCxDQUE3QixJQUE0QzNCLHlCQUF5QixDQUFDMkIsU0FBRCxDQUExRjs7QUFDQSxRQUFJLENBQUM2QyxZQUFMLEVBQW1CO0FBQ2xCLGFBQU94RyxjQUFjLENBQUMsRUFBRCxDQUFyQjtBQUNBOztBQUNELFFBQU15RyxrQkFBa0IsR0FBR1IsR0FBRyxDQUFDQyxHQUFHLENBQUNRLG9CQUFvQixDQUFDRixZQUFELENBQXJCLENBQUosRUFBMENOLEdBQUcsQ0FBQ1osY0FBYyxDQUFDcUIsVUFBZixDQUEwQkgsWUFBMUIsQ0FBRCxDQUE3QyxDQUE5QjtBQUNBLFdBQU94RyxjQUFjLENBQUNvRyxNQUFNLENBQUNLLGtCQUFELEVBQXFCLEVBQXJCLEVBQXlCRiw0QkFBekIsQ0FBUCxDQUFyQjtBQUNBLEdBWE07Ozs7QUFhQSxNQUFNSyxhQUFhLEdBQUcsVUFDNUJqSCw0QkFENEIsRUFFNUJrSCxpQ0FGNEIsRUFHNUI3SSxrQkFINEIsRUFLM0I7QUFBQSxRQURENEIsUUFDQyx1RUFEbUIsS0FDbkI7QUFDRCxRQUFJa0gsV0FBZ0IsR0FBR3hGLGVBQWUsQ0FBQzNCLDRCQUFELEVBQStCM0Isa0JBQS9CLEVBQW1ENEIsUUFBbkQsQ0FBdEM7O0FBQ0EsUUFBSWtILFdBQVcsS0FBSyxFQUFwQixFQUF3QjtBQUN2QkEsTUFBQUEsV0FBVyxHQUFHcEgsY0FBYyxDQUFDbUgsaUNBQUQsRUFBb0M3SSxrQkFBcEMsRUFBd0Q0QixRQUF4RCxDQUE1QjtBQUNBOztBQUNELFdBQU9rSCxXQUFQO0FBQ0EsR0FYTTs7OztBQWFBLE1BQU1DLGdCQUFnQixHQUFHLFVBQVNwSCw0QkFBVCxFQUFvRTtBQUFBOztBQUNuRyxRQUFNdkIsWUFBWSxHQUFHdUIsNEJBQTRCLENBQUN2QixZQUFsRDs7QUFDQSxRQUFJQSxZQUFKLGFBQUlBLFlBQUosd0NBQUlBLFlBQVksQ0FBRUUsT0FBbEIsNEVBQUksc0JBQXVCSSxXQUEzQiw2RUFBSSx1QkFBb0NtRCxhQUF4QyxtREFBSSx1QkFBbURDLGNBQXZELEVBQXVFO0FBQ3RFLGFBQU8sT0FBUDtBQUNBOztBQUNELFFBQUkxRCxZQUFKLGFBQUlBLFlBQUoseUNBQUlBLFlBQVksQ0FBRUUsT0FBbEIsNkVBQUksdUJBQXVCSSxXQUEzQiw2RUFBSSx1QkFBb0NtRCxhQUF4QyxtREFBSSx1QkFBbURpQyxhQUF2RCxFQUFzRTtBQUNyRSxhQUFPLE9BQVA7QUFDQTs7QUFDRCxXQUFPLE1BQVA7QUFDQSxHQVRNIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXREaXNwbGF5TW9kZSwgUHJvcGVydHlPclBhdGgsIERpc3BsYXlNb2RlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgeyBnZXRCaW5kaW5nV2l0aFVuaXRPckN1cnJlbmN5LCBmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQge1xuXHREYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRlbmhhbmNlRGF0YU1vZGVsUGF0aCxcblx0Z2V0UGF0aFJlbGF0aXZlTG9jYXRpb24sXG5cdGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGhcbn0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC9hbm5vdGF0aW9uLWNvbnZlcnRlclwiO1xuaW1wb3J0IHtcblx0RXhwcmVzc2lvbixcblx0YW5ub3RhdGlvbkV4cHJlc3Npb24sXG5cdGZvcm1hdFJlc3VsdCxcblx0dHJhbnNmb3JtUmVjdXJzaXZlbHksXG5cdEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbixcblx0QmluZGluZ0V4cHJlc3Npb24sXG5cdGNvbXBpbGVCaW5kaW5nLFxuXHRjb25zdGFudCxcblx0YmluZGluZ0V4cHJlc3Npb24sXG5cdGFuZCxcblx0aWZFbHNlLFxuXHRub3QsXG5cdENvbXBsZXhUeXBlRXhwcmVzc2lvbixcblx0ZXF1YWwsXG5cdG9yXG59IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdFeHByZXNzaW9uXCI7XG5pbXBvcnQge1xuXHRpc1BhdGhFeHByZXNzaW9uLFxuXHRnZXRBc3NvY2lhdGVkVW5pdFByb3BlcnR5LFxuXHRnZXRBc3NvY2lhdGVkQ3VycmVuY3lQcm9wZXJ0eSxcblx0aXNQcm9wZXJ0eSxcblx0Z2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGgsXG5cdGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5UGF0aCxcblx0aGFzVmFsdWVIZWxwLFxuXHRnZXRBc3NvY2lhdGVkVGV4dFByb3BlcnR5UGF0aFxufSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IHZhbHVlRm9ybWF0dGVycyBmcm9tIFwic2FwL2ZlL2NvcmUvZm9ybWF0dGVycy9WYWx1ZUZvcm1hdHRlclwiO1xuaW1wb3J0ICogYXMgUHJvcGVydHlIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCB7IGlzUmVhZE9ubHlFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRmllbGRDb250cm9sSGVscGVyXCI7XG5pbXBvcnQgeyBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBEYXRhRmllbGRXaXRoVXJsLCBEYXRhUG9pbnRUeXBlVHlwZXMsIFVJQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBVSSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuXG5leHBvcnQgdHlwZSBGaWVsZEZvcm1hdE9wdGlvbnMgPSBQYXJ0aWFsPHtcblx0dmFsdWVGb3JtYXQ6IFN0cmluZztcblx0dGV4dEFsaWduTW9kZTogU3RyaW5nO1xuXHRkaXNwbGF5TW9kZTogRGlzcGxheU1vZGU7XG5cdG1lYXN1cmVEaXNwbGF5TW9kZTogU3RyaW5nO1xuXHR0ZXh0TGluZXNFZGl0OiBTdHJpbmc7XG5cdHRleHRNYXhMaW5lczogU3RyaW5nO1xuXHRzaG93RW1wdHlJbmRpY2F0b3I6IGJvb2xlYW47XG5cdHNlbWFudGljS2V5U3R5bGU6IFN0cmluZztcblx0c2hvd0ljb25Vcmw6IGJvb2xlYW47XG5cdGlzQW5hbHl0aWNzOiBib29sZWFuO1xuXHRoYXNEcmFmdEluZGljYXRvcjogYm9vbGVhbjtcblx0c2VtYW50aWNrZXlzOiBzdHJpbmdbXTtcbn0+O1xuXG5leHBvcnQgdHlwZSBFZGl0U3R5bGUgPVxuXHR8IFwiSW5wdXRXaXRoVmFsdWVIZWxwXCJcblx0fCBcIlRleHRBcmVhXCJcblx0fCBcIkZpbGVcIlxuXHR8IFwiRGF0ZVBpY2tlclwiXG5cdHwgXCJUaW1lUGlja2VyXCJcblx0fCBcIkRhdGVUaW1lUGlja2VyXCJcblx0fCBcIkNoZWNrQm94XCJcblx0fCBcIklucHV0V2l0aFVuaXRcIlxuXHR8IFwiSW5wdXRcIlxuXHR8IFwiUmF0aW5nSW5kaWNhdG9yXCI7XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlTdHlsZSA9XG5cdHwgXCJUZXh0XCJcblx0fCBcIkF2YXRhclwiXG5cdHwgXCJGaWxlXCJcblx0fCBcIkRhdGFQb2ludFwiXG5cdHwgXCJDb250YWN0XCJcblx0fCBcIkJ1dHRvblwiXG5cdHwgXCJMaW5rXCJcblx0fCBcIk9iamVjdFN0YXR1c1wiXG5cdHwgXCJBbW91bnRXaXRoQ3VycmVuY3lcIlxuXHR8IFwiU2VtYW50aWNLZXlXaXRoRHJhZnRJbmRpY2F0b3JcIlxuXHR8IFwiT2JqZWN0SWRlbnRpZmllclwiXG5cdHwgXCJMYWJlbFNlbWFudGljS2V5XCJcblx0fCBcIkxpbmtXaXRoUXVpY2tWaWV3Rm9ybVwiXG5cdHwgXCJMaW5rV3JhcHBlclwiXG5cdHwgXCJFeHBhbmRhYmxlVGV4dFwiO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGFkZCB0aGUgdGV4dCBhcnJhbmdlbWVudCB0byBhIGJpbmRpbmcgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gYmluZGluZ0V4cHJlc3Npb24gVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB0byBiZSBlbmhhbmNlZFxuICogQHBhcmFtIGZ1bGxDb250ZXh0UGF0aCBUaGUgY3VycmVudCBjb250ZXh0IHBhdGggd2UncmUgb24gKHRvIHByb3Blcmx5IHJlc29sdmUgdGhlIHRleHQgYXJyYW5nZW1lbnQgcHJvcGVydGllcylcbiAqIEByZXR1cm5zIEFuIHVwZGF0ZWQgZXhwcmVzc2lvbiBjb250YWluaW5nIHRoZSB0ZXh0IGFycmFuZ2VtZW50IGJpbmRpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uID0gZnVuY3Rpb24oXG5cdGJpbmRpbmdFeHByZXNzaW9uOiBFeHByZXNzaW9uPGFueT4sXG5cdGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aFxuKTogRXhwcmVzc2lvbjxhbnk+IHtcblx0cmV0dXJuIHRyYW5zZm9ybVJlY3Vyc2l2ZWx5KGJpbmRpbmdFeHByZXNzaW9uLCBcIkJpbmRpbmdcIiwgKGV4cHJlc3Npb246IEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbjxhbnk+KSA9PiB7XG5cdFx0bGV0IG91dEV4cHJlc3Npb246IEV4cHJlc3Npb248YW55PiA9IGV4cHJlc3Npb247XG5cdFx0aWYgKGV4cHJlc3Npb24ubW9kZWxOYW1lID09PSB1bmRlZmluZWQpIHtcblx0XHRcdC8vIEluIGNhc2Ugb2YgZGVmYXVsdCBtb2RlbCB3ZSB0aGVuIG5lZWQgdG8gcmVzb2x2ZSB0aGUgdGV4dCBhcnJhbmdlbWVudCBwcm9wZXJ0eVxuXHRcdFx0Y29uc3Qgb1Byb3BlcnR5RGF0YU1vZGVsUGF0aCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoKGZ1bGxDb250ZXh0UGF0aCwgZXhwcmVzc2lvbi5wYXRoKTtcblx0XHRcdG91dEV4cHJlc3Npb24gPSBnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudChvUHJvcGVydHlEYXRhTW9kZWxQYXRoLCBleHByZXNzaW9uKTtcblx0XHR9XG5cdFx0cmV0dXJuIG91dEV4cHJlc3Npb247XG5cdH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50ID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb246IEV4cHJlc3Npb248c3RyaW5nPixcblx0ZmllbGRGb3JtYXRPcHRpb25zPzogRmllbGRGb3JtYXRPcHRpb25zXG4pOiBFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCB0YXJnZXREaXNwbGF5TW9kZU92ZXJyaWRlID0gZmllbGRGb3JtYXRPcHRpb25zPy5kaXNwbGF5TW9kZTtcblx0bGV0IG91dEV4cHJlc3Npb24gPSBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uO1xuXHRjb25zdCBvUHJvcGVydHlEZWZpbml0aW9uID1cblx0XHRvUHJvcGVydHlEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdC50eXBlID09PSBcIlByb3BlcnR5UGF0aFwiXG5cdFx0XHQ/IChvUHJvcGVydHlEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdC4kdGFyZ2V0IGFzIFByb3BlcnR5KVxuXHRcdFx0OiAob1Byb3BlcnR5RGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3QgYXMgUHJvcGVydHkpO1xuXHRjb25zdCB0YXJnZXREaXNwbGF5TW9kZSA9IHRhcmdldERpc3BsYXlNb2RlT3ZlcnJpZGUgfHwgZ2V0RGlzcGxheU1vZGUob1Byb3BlcnR5RGVmaW5pdGlvbiwgb1Byb3BlcnR5RGF0YU1vZGVsUGF0aCk7XG5cdGNvbnN0IGNvbW1vblRleHQgPSBvUHJvcGVydHlEZWZpbml0aW9uLmFubm90YXRpb25zPy5Db21tb24/LlRleHQ7XG5cdGNvbnN0IHJlbGF0aXZlTG9jYXRpb24gPSBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbixcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzXG5cdCkubWFwKG5wID0+IG5wLm5hbWUpO1xuXHRwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uID0gZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbihvUHJvcGVydHlEZWZpbml0aW9uLCBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uKTtcblx0aWYgKHRhcmdldERpc3BsYXlNb2RlICE9PSBcIlZhbHVlXCIgJiYgY29tbW9uVGV4dCkge1xuXHRcdHN3aXRjaCAodGFyZ2V0RGlzcGxheU1vZGUpIHtcblx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblwiOlxuXHRcdFx0XHRvdXRFeHByZXNzaW9uID0gYW5ub3RhdGlvbkV4cHJlc3Npb24oY29tbW9uVGV4dCwgcmVsYXRpdmVMb2NhdGlvbikgYXMgRXhwcmVzc2lvbjxzdHJpbmc+O1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblZhbHVlXCI6XG5cdFx0XHRcdG91dEV4cHJlc3Npb24gPSBmb3JtYXRSZXN1bHQoXG5cdFx0XHRcdFx0W2Fubm90YXRpb25FeHByZXNzaW9uKGNvbW1vblRleHQsIHJlbGF0aXZlTG9jYXRpb24pIGFzIEV4cHJlc3Npb248c3RyaW5nPiwgcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbl0sXG5cdFx0XHRcdFx0dmFsdWVGb3JtYXR0ZXJzLmZvcm1hdFdpdGhCcmFja2V0c1xuXHRcdFx0XHQpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJWYWx1ZURlc2NyaXB0aW9uXCI6XG5cdFx0XHRcdG91dEV4cHJlc3Npb24gPSBmb3JtYXRSZXN1bHQoXG5cdFx0XHRcdFx0W3Byb3BlcnR5QmluZGluZ0V4cHJlc3Npb24sIGFubm90YXRpb25FeHByZXNzaW9uKGNvbW1vblRleHQsIHJlbGF0aXZlTG9jYXRpb24pIGFzIEV4cHJlc3Npb248c3RyaW5nPl0sXG5cdFx0XHRcdFx0dmFsdWVGb3JtYXR0ZXJzLmZvcm1hdFdpdGhCcmFja2V0c1xuXHRcdFx0XHQpO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblx0cmV0dXJuIG91dEV4cHJlc3Npb247XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0VmFsdWVSZWN1cnNpdmVseSA9IGZ1bmN0aW9uKGJpbmRpbmdFeHByZXNzaW9uOiBFeHByZXNzaW9uPGFueT4sIGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCk6IEV4cHJlc3Npb248YW55PiB7XG5cdHJldHVybiB0cmFuc2Zvcm1SZWN1cnNpdmVseShiaW5kaW5nRXhwcmVzc2lvbiwgXCJCaW5kaW5nXCIsIChleHByZXNzaW9uOiBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248YW55PikgPT4ge1xuXHRcdGxldCBvdXRFeHByZXNzaW9uOiBFeHByZXNzaW9uPGFueT4gPSBleHByZXNzaW9uO1xuXHRcdGlmIChleHByZXNzaW9uLm1vZGVsTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBJbiBjYXNlIG9mIGRlZmF1bHQgbW9kZWwgd2UgdGhlbiBuZWVkIHRvIHJlc29sdmUgdGhlIHRleHQgYXJyYW5nZW1lbnQgcHJvcGVydHlcblx0XHRcdGNvbnN0IG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aChmdWxsQ29udGV4dFBhdGgsIGV4cHJlc3Npb24ucGF0aCk7XG5cdFx0XHRvdXRFeHByZXNzaW9uID0gZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbihvUHJvcGVydHlEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdCwgZXhwcmVzc2lvbik7XG5cdFx0fVxuXHRcdHJldHVybiBvdXRFeHByZXNzaW9uO1xuXHR9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUZXh0QmluZGluZyA9IGZ1bmN0aW9uKFxuXHRvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRmaWVsZEZvcm1hdE9wdGlvbnM6IEZpZWxkRm9ybWF0T3B0aW9ucyxcblx0YXNPYmplY3Q6IGJvb2xlYW4gPSBmYWxzZVxuKTogRXhwcmVzc2lvbjxzdHJpbmc+IHwgQmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB7XG5cdGlmIChcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdD8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkXCIgfHxcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdD8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50VHlwZVwiIHx8XG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aFwiIHx8XG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFdpdGhVcmxcIlxuXHQpIHtcblx0XHQvLyBJZiB0aGVyZSBpcyBubyByZXNvbHZlZCBwcm9wZXJ0eSwgdGhlIHZhbHVlIGlzIHJldHVybmVkIGFzIGEgY29uc3RhbnRcblx0XHRjb25zdCBmaWVsZFZhbHVlID0gb1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuVmFsdWUgfHwgXCJcIjtcblx0XHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoY29uc3RhbnQoZmllbGRWYWx1ZSkpO1xuXHR9XG5cdGlmIChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KSAmJiBvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC4kdGFyZ2V0KSB7XG5cdFx0Y29uc3Qgb05hdlBhdGggPSBvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGUucmVzb2x2ZVBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QucGF0aCwgdHJ1ZSk7XG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgPSBvTmF2UGF0aC50YXJnZXQ7XG5cdFx0b05hdlBhdGgudmlzaXRlZE9iamVjdHMuZm9yRWFjaCgob05hdk9iajogYW55KSA9PiB7XG5cdFx0XHRpZiAob05hdk9iaj8uX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIpIHtcblx0XHRcdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5wdXNoKG9OYXZPYmopO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdGNvbnN0IG9CaW5kaW5nRXhwcmVzc2lvbiA9IGJpbmRpbmdFeHByZXNzaW9uKGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCkpO1xuXHRsZXQgb1RhcmdldEJpbmRpbmc7XG5cdGlmIChcblx0XHRvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5Vbml0IHx8XG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q/LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3lcblx0KSB7XG5cdFx0b1RhcmdldEJpbmRpbmcgPSBnZXRCaW5kaW5nV2l0aFVuaXRPckN1cnJlbmN5KG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgsIG9CaW5kaW5nRXhwcmVzc2lvbik7XG5cdFx0aWYgKGZpZWxkRm9ybWF0T3B0aW9ucz8ubWVhc3VyZURpc3BsYXlNb2RlID09PSBcIkhpZGRlblwiKSB7XG5cdFx0XHQvLyBUT0RPOiBSZWZhY3RvciBvbmNlIHR5cGVzIGFyZSBsZXNzIGdlbmVyaWMgaGVyZVxuXHRcdFx0KG9UYXJnZXRCaW5kaW5nIGFzIENvbXBsZXhUeXBlRXhwcmVzc2lvbjxTdHJpbmc+KS5mb3JtYXRPcHRpb25zID0ge1xuXHRcdFx0XHQuLi4ob1RhcmdldEJpbmRpbmcgYXMgQ29tcGxleFR5cGVFeHByZXNzaW9uPFN0cmluZz4pLmZvcm1hdE9wdGlvbnMsXG5cdFx0XHRcdHNob3dNZWFzdXJlOiBmYWxzZVxuXHRcdFx0fTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0b1RhcmdldEJpbmRpbmcgPSBnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudChvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLCBvQmluZGluZ0V4cHJlc3Npb24sIGZpZWxkRm9ybWF0T3B0aW9ucyk7XG5cdH1cblx0aWYgKGFzT2JqZWN0KSB7XG5cdFx0cmV0dXJuIG9UYXJnZXRCaW5kaW5nO1xuXHR9XG5cdC8vIFdlIGRvbid0IGluY2x1ZGUgJCRub3BhdGNoIGFuZCBwYXJzZUtlZXBFbXB0eVN0cmluZyBhcyB0aGV5IG1ha2Ugbm8gc2Vuc2UgaW4gdGhlIHRleHQgYmluZGluZyBjYXNlXG5cdHJldHVybiBjb21waWxlQmluZGluZyhvVGFyZ2V0QmluZGluZyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VmFsdWVCaW5kaW5nID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGZpZWxkRm9ybWF0T3B0aW9uczogRmllbGRGb3JtYXRPcHRpb25zLFxuXHRpZ25vcmVVbml0OiBib29sZWFuID0gZmFsc2UsXG5cdGlnbm9yZUZvcm1hdHRpbmc6IGJvb2xlYW4gPSBmYWxzZSxcblx0YmluZGluZ1BhcmFtZXRlcnM/OiBvYmplY3QsXG5cdHRhcmdldFR5cGVBbnk/OiBib29sZWFuLFxuXHRzaG93TWVhc3VyZU9ubHk6IGJvb2xlYW4gPSBmYWxzZVxuKTogQmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB7XG5cdGlmIChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KSAmJiBvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC4kdGFyZ2V0KSB7XG5cdFx0Y29uc3Qgb05hdlBhdGggPSBvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGUucmVzb2x2ZVBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QucGF0aCwgdHJ1ZSk7XG5cdFx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgPSBvTmF2UGF0aC50YXJnZXQ7XG5cdFx0b05hdlBhdGgudmlzaXRlZE9iamVjdHMuZm9yRWFjaCgob05hdk9iajogYW55KSA9PiB7XG5cdFx0XHRpZiAob05hdk9iaiAmJiBvTmF2T2JqLl90eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiKSB7XG5cdFx0XHRcdG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMucHVzaChvTmF2T2JqKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGNvbnN0IHRhcmdldE9iamVjdCA9IG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0O1xuXHRpZiAoaXNQcm9wZXJ0eSh0YXJnZXRPYmplY3QpKSB7XG5cdFx0bGV0IG9CaW5kaW5nRXhwcmVzc2lvbjogQmluZGluZ0V4cHJlc3Npb25FeHByZXNzaW9uPHN0cmluZz4gPSBiaW5kaW5nRXhwcmVzc2lvbihcblx0XHRcdGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aClcblx0XHQpIGFzIEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbjxzdHJpbmc+O1xuXHRcdGlmICh0YXJnZXRPYmplY3QuYW5ub3RhdGlvbnM/LkNvbW11bmljYXRpb24/LklzRW1haWxBZGRyZXNzKSB7XG5cdFx0XHRvQmluZGluZ0V4cHJlc3Npb24udHlwZSA9IFwic2FwLmZlLmNvcmUudHlwZS5FbWFpbFwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBvUHJvcGVydHlVbml0ID0gZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eShvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCk7XG5cdFx0XHRjb25zdCBvUHJvcGVydHlDdXJyZW5jeSA9IGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5KG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KTtcblx0XHRcdGlmICghaWdub3JlVW5pdCAmJiAob1Byb3BlcnR5VW5pdCB8fCBvUHJvcGVydHlDdXJyZW5jeSkpIHtcblx0XHRcdFx0b0JpbmRpbmdFeHByZXNzaW9uID0gZ2V0QmluZGluZ1dpdGhVbml0T3JDdXJyZW5jeShvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLCBvQmluZGluZ0V4cHJlc3Npb24pIGFzIGFueTtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdChvUHJvcGVydHlVbml0ICYmICFoYXNWYWx1ZUhlbHAob1Byb3BlcnR5VW5pdCkpIHx8XG5cdFx0XHRcdFx0KG9Qcm9wZXJ0eUN1cnJlbmN5ICYmICFoYXNWYWx1ZUhlbHAob1Byb3BlcnR5Q3VycmVuY3kpKSB8fFxuXHRcdFx0XHRcdGZpZWxkRm9ybWF0T3B0aW9ucz8ubWVhc3VyZURpc3BsYXlNb2RlID09PSBcIkhpZGRlblwiXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdC8vIElmIHRoZXJlIGlzIGEgdW5pdCBvciBjdXJyZW5jeSB3aXRob3V0IGEgdmFsdWUgaGVscCwgb3IgaW4gY2FzZSB0aGUgY3VycmVuY3kgc2hvdWxkIGJlIGV4cGxpY2l0bHkgaGlkZGVuLFxuXHRcdFx0XHRcdC8vIHdlIG5lZWQgdG8gY29uZmlndXJlIHRoZSBiaW5kaW5nIHRvIG5vdCBzaG93IHRoZSBtZWFzdXJlLCBvdGhlcndpc2UgaXQncyBuZWVkZWQgZm9yIHRoZSBtZGMgZmllbGRcblx0XHRcdFx0XHRpZiAoIW9CaW5kaW5nRXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zKSB7XG5cdFx0XHRcdFx0XHRvQmluZGluZ0V4cHJlc3Npb24uZm9ybWF0T3B0aW9ucyA9IHt9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoc2hvd01lYXN1cmVPbmx5KSB7XG5cdFx0XHRcdFx0XHRvQmluZGluZ0V4cHJlc3Npb24uZm9ybWF0T3B0aW9ucy5zaG93TnVtYmVyID0gZmFsc2U7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG9CaW5kaW5nRXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zLnNob3dNZWFzdXJlID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRvQmluZGluZ0V4cHJlc3Npb24gPSBmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uKHRhcmdldE9iamVjdCwgb0JpbmRpbmdFeHByZXNzaW9uKSBhcyBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248c3RyaW5nPjtcblx0XHRcdFx0aWYgKG9CaW5kaW5nRXhwcmVzc2lvbi50eXBlID09PSBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZ1wiKSB7XG5cdFx0XHRcdFx0b0JpbmRpbmdFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMgPSB7XG5cdFx0XHRcdFx0XHRwYXJzZUtlZXBzRW1wdHlTdHJpbmc6IHRydWVcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChpZ25vcmVGb3JtYXR0aW5nKSB7XG5cdFx0XHRkZWxldGUgb0JpbmRpbmdFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnM7XG5cdFx0XHRkZWxldGUgb0JpbmRpbmdFeHByZXNzaW9uLmNvbnN0cmFpbnRzO1xuXHRcdFx0ZGVsZXRlIG9CaW5kaW5nRXhwcmVzc2lvbi50eXBlO1xuXHRcdH1cblx0XHRpZiAoYmluZGluZ1BhcmFtZXRlcnMpIHtcblx0XHRcdG9CaW5kaW5nRXhwcmVzc2lvbi5wYXJhbWV0ZXJzID0gYmluZGluZ1BhcmFtZXRlcnM7XG5cdFx0fVxuXHRcdGlmICh0YXJnZXRUeXBlQW55KSB7XG5cdFx0XHRvQmluZGluZ0V4cHJlc3Npb24udGFyZ2V0VHlwZSA9IFwiYW55XCI7XG5cdFx0fVxuXHRcdHJldHVybiBjb21waWxlQmluZGluZyhvQmluZGluZ0V4cHJlc3Npb24pO1xuXHR9IGVsc2Uge1xuXHRcdGlmIChcblx0XHRcdHRhcmdldE9iamVjdD8uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhVcmwgfHxcblx0XHRcdHRhcmdldE9iamVjdD8uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aFxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKGFubm90YXRpb25FeHByZXNzaW9uKCh0YXJnZXRPYmplY3QgYXMgRGF0YUZpZWxkV2l0aFVybCkuVmFsdWUpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VW5pdEJpbmRpbmcgPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0ZmllbGRGb3JtYXRPcHRpb25zOiBGaWVsZEZvcm1hdE9wdGlvbnNcbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCBzVW5pdFByb3BlcnR5UGF0aCA9IGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHlQYXRoKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KTtcblx0Y29uc3Qgc0N1cnJlbmN5UHJvcGVydHlQYXRoID0gZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHlQYXRoKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KTtcblx0aWYgKHNVbml0UHJvcGVydHlQYXRoIHx8IHNDdXJyZW5jeVByb3BlcnR5UGF0aCkge1xuXHRcdGNvbnN0IHRhcmdldFByb3BlcnR5UGF0aCA9IHNVbml0UHJvcGVydHlQYXRoIHx8IHNDdXJyZW5jeVByb3BlcnR5UGF0aDtcblx0XHRjb25zdCBvVU9NUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCwgdGFyZ2V0UHJvcGVydHlQYXRoKTtcblx0XHRyZXR1cm4gZ2V0VmFsdWVCaW5kaW5nKG9VT01Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgsIGZpZWxkRm9ybWF0T3B0aW9ucyk7XG5cdH1cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBc3NvY2lhdGVkVGV4dEJpbmRpbmcgPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0ZmllbGRGb3JtYXRPcHRpb25zOiBGaWVsZEZvcm1hdE9wdGlvbnNcbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCB0ZXh0UHJvcGVydHlQYXRoID0gZ2V0QXNzb2NpYXRlZFRleHRQcm9wZXJ0eVBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QpO1xuXHRpZiAodGV4dFByb3BlcnR5UGF0aCkge1xuXHRcdGNvbnN0IG9UZXh0UHJvcGVydHlQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGgob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCwgdGV4dFByb3BlcnR5UGF0aCk7XG5cdFx0Y29uc3Qgb1ZhbHVlQmluZGluZyA9IGdldFZhbHVlQmluZGluZyhvVGV4dFByb3BlcnR5UGF0aCwgZmllbGRGb3JtYXRPcHRpb25zLCB0cnVlLCB0cnVlLCB7ICQkbm9QYXRjaDogdHJ1ZSB9KTtcblx0XHRyZXR1cm4gb1ZhbHVlQmluZGluZztcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERpc3BsYXlTdHlsZSA9IGZ1bmN0aW9uKFxuXHRvUHJvcGVydHlQYXRoOiBQcm9wZXJ0eU9yUGF0aDxQcm9wZXJ0eT4sXG5cdG9EYXRhRmllbGQ6IGFueSxcblx0b0RhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGZpZWxkRm9ybWF0T3B0aW9uczogRmllbGRGb3JtYXRPcHRpb25zLFxuXHRzZW1hbnRpY09iamVjdDogc3RyaW5nXG4pOiBEaXNwbGF5U3R5bGUge1xuXHQvLyBhbGdvcml0aG0gdG8gZGV0ZXJtaW5lIHRoZSBmaWVsZCBmcmFnbWVudCB0byB1c2Vcblx0Y29uc3Qgb1Byb3BlcnR5OiBQcm9wZXJ0eSA9IChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpICYmIG9Qcm9wZXJ0eVBhdGguJHRhcmdldCkgfHwgKG9Qcm9wZXJ0eVBhdGggYXMgUHJvcGVydHkpO1xuXHRpZiAoXG5cdFx0c2VtYW50aWNPYmplY3QgJiZcblx0XHQhb1Byb3BlcnR5LmFubm90YXRpb25zPy5VST8uSXNJbWFnZVVSTCAmJlxuXHRcdCEob1Byb3BlcnR5LnR5cGUgPT09IFwiRWRtLlN0cmVhbVwiKSAmJlxuXHRcdCEob1Byb3BlcnR5LmFubm90YXRpb25zPy5Db21tdW5pY2F0aW9uPy5Jc0VtYWlsQWRkcmVzcyB8fCBvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW11bmljYXRpb24/LklzUGhvbmVOdW1iZXIpXG5cdCkge1xuXHRcdHJldHVybiBcIkxpbmtXaXRoUXVpY2tWaWV3Rm9ybVwiO1xuXHR9XG5cdGlmICghb1Byb3BlcnR5UGF0aCB8fCB0eXBlb2Ygb1Byb3BlcnR5UGF0aCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHJldHVybiBcIlRleHRcIjtcblx0fVxuXHRpZiAob1Byb3BlcnR5LnR5cGUgPT09IFwiRWRtLlN0cmVhbVwiKSB7XG5cdFx0cmV0dXJuIFwiRmlsZVwiO1xuXHR9XG5cdGlmIChvUHJvcGVydHkuYW5ub3RhdGlvbnM/LlVJPy5Jc0ltYWdlVVJMKSB7XG5cdFx0cmV0dXJuIFwiQXZhdGFyXCI7XG5cdH1cblx0c3dpdGNoIChvRGF0YUZpZWxkLiRUeXBlKSB7XG5cdFx0Y2FzZSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludFR5cGVcIjpcblx0XHRcdHJldHVybiBcIkRhdGFQb2ludFwiO1xuXHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBbm5vdGF0aW9uXCI6XG5cdFx0XHRpZiAob0RhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludFR5cGVcIikge1xuXHRcdFx0XHRyZXR1cm4gXCJEYXRhUG9pbnRcIjtcblx0XHRcdH0gZWxzZSBpZiAob0RhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuQ29udGFjdFR5cGVcIikge1xuXHRcdFx0XHRyZXR1cm4gXCJDb250YWN0XCI7XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCI6XG5cdFx0Y2FzZSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblwiOlxuXHRcdFx0cmV0dXJuIFwiQnV0dG9uXCI7XG5cdFx0Y2FzZSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aFwiOlxuXHRcdFx0cmV0dXJuIFwiTGlua1wiO1xuXHR9XG5cdGlmIChvRGF0YU1vZGVsUGF0aD8udGFyZ2V0RW50aXR5VHlwZT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uU2VtYW50aWNLZXkpIHtcblx0XHRjb25zdCBhU2VtYW50aWNLZXlzID0gb0RhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5VHlwZS5hbm5vdGF0aW9ucy5Db21tb24uU2VtYW50aWNLZXk7XG5cdFx0Y29uc3QgYklzU2VtYW50aWNLZXkgPSAhYVNlbWFudGljS2V5cy5ldmVyeShmdW5jdGlvbihvS2V5KSB7XG5cdFx0XHRyZXR1cm4gb0tleT8uJHRhcmdldD8ubmFtZSAhPT0gb1Byb3BlcnR5Lm5hbWU7XG5cdFx0fSk7XG5cdFx0aWYgKGJJc1NlbWFudGljS2V5ICYmIGZpZWxkRm9ybWF0T3B0aW9ucy5zZW1hbnRpY0tleVN0eWxlKSB7XG5cdFx0XHRpZiAob0RhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5U2V0Py5hbm5vdGF0aW9ucz8uQ29tbW9uPy5EcmFmdFJvb3QpIHtcblx0XHRcdFx0Ly8gJiYgZmllbGRGb3JtYXRPcHRpb25zLmhhc0RyYWZ0SW5kaWNhdG9yKSB7XG5cdFx0XHRcdC8vIHdlIHRoZW4gc3RpbGwgY2hlY2sgd2hldGhlciB0aGlzIGlzIGF2YWlsYWJsZSBhdCBkZXNpZ250aW1lIG9uIHRoZSBlbnRpdHlzZXRcblx0XHRcdFx0cmV0dXJuIFwiU2VtYW50aWNLZXlXaXRoRHJhZnRJbmRpY2F0b3JcIjtcblx0XHRcdH1cblx0XHRcdHJldHVybiBmaWVsZEZvcm1hdE9wdGlvbnMuc2VtYW50aWNLZXlTdHlsZSA9PT0gXCJPYmplY3RJZGVudGlmaWVyXCIgPyBcIk9iamVjdElkZW50aWZpZXJcIiA6IFwiTGFiZWxTZW1hbnRpY0tleVwiO1xuXHRcdH1cblx0fVxuXHRpZiAob0RhdGFGaWVsZC5Dcml0aWNhbGl0eSkge1xuXHRcdHJldHVybiBcIk9iamVjdFN0YXR1c1wiO1xuXHR9XG5cdGlmIChvUHJvcGVydHkuYW5ub3RhdGlvbnM/Lk1lYXN1cmVzPy5JU09DdXJyZW5jeSkge1xuXHRcdGlmIChmaWVsZEZvcm1hdE9wdGlvbnMubWVhc3VyZURpc3BsYXlNb2RlID09PSBcIkhpZGRlblwiKSB7XG5cdFx0XHRyZXR1cm4gXCJUZXh0XCI7XG5cdFx0fVxuXHRcdHJldHVybiBcIkFtb3VudFdpdGhDdXJyZW5jeVwiO1xuXHR9XG5cdGlmIChvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW11bmljYXRpb24/LklzRW1haWxBZGRyZXNzIHx8IG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uQ29tbXVuaWNhdGlvbj8uSXNQaG9uZU51bWJlcikge1xuXHRcdHJldHVybiBcIkxpbmtcIjtcblx0fVxuXHRpZiAob1Byb3BlcnR5LmFubm90YXRpb25zPy5VST8uTXVsdGlMaW5lVGV4dCkge1xuXHRcdHJldHVybiBcIkV4cGFuZGFibGVUZXh0XCI7XG5cdH1cblx0Y29uc3QgYU5hdmlnYXRpb25Qcm9wZXJ0aWVzID0gb0RhdGFNb2RlbFBhdGg/LnRhcmdldEVudGl0eVR5cGU/Lm5hdmlnYXRpb25Qcm9wZXJ0aWVzIHx8IFtdO1xuXHRsZXQgYklzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHMgPSBmYWxzZTtcblx0YU5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2gob05hdlByb3AgPT4ge1xuXHRcdGlmIChvTmF2UHJvcC5yZWZlcmVudGlhbENvbnN0cmFpbnQgJiYgb05hdlByb3AucmVmZXJlbnRpYWxDb25zdHJhaW50Lmxlbmd0aCkge1xuXHRcdFx0b05hdlByb3AucmVmZXJlbnRpYWxDb25zdHJhaW50LmZvckVhY2gob1JlZkNvbnN0cmFpbnQgPT4ge1xuXHRcdFx0XHRpZiAob1JlZkNvbnN0cmFpbnQ/LnNvdXJjZVByb3BlcnR5ID09PSBvUHJvcGVydHkubmFtZSkge1xuXHRcdFx0XHRcdGlmIChvTmF2UHJvcD8udGFyZ2V0VHlwZT8uYW5ub3RhdGlvbnM/LlVJPy5RdWlja1ZpZXdGYWNldHMpIHtcblx0XHRcdFx0XHRcdGJJc1VzZWRJbk5hdmlnYXRpb25XaXRoUXVpY2tWaWV3RmFjZXRzID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG5cdGlmIChiSXNVc2VkSW5OYXZpZ2F0aW9uV2l0aFF1aWNrVmlld0ZhY2V0cykge1xuXHRcdHJldHVybiBcIkxpbmtXaXRoUXVpY2tWaWV3Rm9ybVwiO1xuXHR9XG5cdGlmIChvUHJvcGVydHkuYW5ub3RhdGlvbnM/LkNvbW1vbj8uU2VtYW50aWNPYmplY3QpIHtcblx0XHRyZXR1cm4gXCJMaW5rV3JhcHBlclwiO1xuXHR9XG5cdGlmIChvRGF0YUZpZWxkLiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFdpdGhVcmxcIikge1xuXHRcdHJldHVybiBcIkxpbmtcIjtcblx0fVxuXHRyZXR1cm4gXCJUZXh0XCI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWRpdFN0eWxlID0gZnVuY3Rpb24oXG5cdG9Qcm9wZXJ0eVBhdGg6IFByb3BlcnR5T3JQYXRoPFByb3BlcnR5Pixcblx0b0RhdGFGaWVsZDogYW55LFxuXHRvRmllbGRGb3JtYXRPcHRpb25zOiBGaWVsZEZvcm1hdE9wdGlvbnNcbik6IEVkaXRTdHlsZSB8IG51bGwge1xuXHQvLyBhbGdvcml0aG0gdG8gZGV0ZXJtaW5lIHRoZSBmaWVsZCBmcmFnbWVudCB0byB1c2Vcblx0aWYgKCFvUHJvcGVydHlQYXRoIHx8IHR5cGVvZiBvUHJvcGVydHlQYXRoID09PSBcInN0cmluZ1wiKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblx0Y29uc3Qgb1Byb3BlcnR5OiBQcm9wZXJ0eSA9IChpc1BhdGhFeHByZXNzaW9uKG9Qcm9wZXJ0eVBhdGgpICYmIG9Qcm9wZXJ0eVBhdGguJHRhcmdldCkgfHwgKG9Qcm9wZXJ0eVBhdGggYXMgUHJvcGVydHkpO1xuXHRpZiAob1Byb3BlcnR5LnR5cGUgPT09IFwiRWRtLlN0cmVhbVwiKSB7XG5cdFx0cmV0dXJuIFwiRmlsZVwiO1xuXHR9XG5cdHN3aXRjaCAob0RhdGFGaWVsZC4kVHlwZSkge1xuXHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBbm5vdGF0aW9uXCI6XG5cdFx0XHRpZiAob0RhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuQ29udGFjdFR5cGVcIikge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH0gZWxzZSBpZiAob0RhdGFGaWVsZC5UYXJnZXQ/LiR0YXJnZXQ/LlZpc3VhbGl6YXRpb24gPT09IFwiVUkuVmlzdWFsaXphdGlvblR5cGUvUmF0aW5nXCIpIHtcblx0XHRcdFx0cmV0dXJuIFwiUmF0aW5nSW5kaWNhdG9yXCI7XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50VHlwZVwiOlxuXHRcdFx0aWYgKG9EYXRhRmllbGQ/LlZpc3VhbGl6YXRpb24gPT09IFwiVUkuVmlzdWFsaXphdGlvblR5cGUvUmF0aW5nXCIpIHtcblx0XHRcdFx0cmV0dXJuIFwiUmF0aW5nSW5kaWNhdG9yXCI7XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCI6XG5cdFx0Y2FzZSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aFwiOlxuXHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIjpcblx0XHRcdHJldHVybiBudWxsO1xuXHR9XG5cdGNvbnN0IG9Qcm9wZXJ0eVVuaXQgPSBnZXRBc3NvY2lhdGVkVW5pdFByb3BlcnR5KG9Qcm9wZXJ0eSk7XG5cdGNvbnN0IG9Qcm9wZXJ0eUN1cnJlbmN5ID0gZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHkob1Byb3BlcnR5KTtcblx0aWYgKFxuXHRcdChQcm9wZXJ0eUhlbHBlci5oYXNWYWx1ZUhlbHAob1Byb3BlcnR5KSAmJiBvUHJvcGVydHkudHlwZSAhPT0gXCJFZG0uQm9vbGVhblwiKSB8fFxuXHRcdChvUHJvcGVydHlVbml0ICYmIFByb3BlcnR5SGVscGVyLmhhc1ZhbHVlSGVscChvUHJvcGVydHlVbml0KSkgfHxcblx0XHQob1Byb3BlcnR5Q3VycmVuY3kgJiYgUHJvcGVydHlIZWxwZXIuaGFzVmFsdWVIZWxwKG9Qcm9wZXJ0eUN1cnJlbmN5KSlcblx0KSB7XG5cdFx0aWYgKG9GaWVsZEZvcm1hdE9wdGlvbnM/Lm1lYXN1cmVEaXNwbGF5TW9kZSA9PT0gXCJIaWRkZW5cIikge1xuXHRcdFx0cmV0dXJuIFwiSW5wdXRcIjtcblx0XHR9XG5cdFx0cmV0dXJuIFwiSW5wdXRXaXRoVmFsdWVIZWxwXCI7XG5cdH1cblx0aWYgKG9Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVUk/Lk11bHRpTGluZVRleHQ/LnZhbHVlT2YoKSAmJiBvUHJvcGVydHkudHlwZSA9PT0gXCJFZG0uU3RyaW5nXCIpIHtcblx0XHRyZXR1cm4gXCJUZXh0QXJlYVwiO1xuXHR9XG5cdHN3aXRjaCAob1Byb3BlcnR5LnR5cGUpIHtcblx0XHRjYXNlIFwiRWRtLkRhdGVcIjpcblx0XHRcdHJldHVybiBcIkRhdGVQaWNrZXJcIjtcblx0XHRjYXNlIFwiRWRtLlRpbWVcIjpcblx0XHRjYXNlIFwiRWRtLlRpbWVPZkRheVwiOlxuXHRcdFx0cmV0dXJuIFwiVGltZVBpY2tlclwiO1xuXHRcdGNhc2UgXCJFZG0uRGF0ZVRpbWVcIjpcblx0XHRjYXNlIFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCI6XG5cdFx0XHRyZXR1cm4gXCJEYXRlVGltZVBpY2tlclwiO1xuXHRcdGNhc2UgXCJFZG0uQm9vbGVhblwiOlxuXHRcdFx0cmV0dXJuIFwiQ2hlY2tCb3hcIjtcblx0fVxuXHRpZiAob1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kgfHwgb1Byb3BlcnR5LmFubm90YXRpb25zPy5NZWFzdXJlcz8uVW5pdCkge1xuXHRcdHJldHVybiBcIklucHV0V2l0aFVuaXRcIjtcblx0fVxuXHRyZXR1cm4gXCJJbnB1dFwiO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gdG8gZXZhbHVhdGUgdGhlIHZpc2liaWxpdHkgb2YgYSBEYXRhRmllbGQgb3IgRGF0YVBvaW50IGFubm90YXRpb24uXG4gKlxuICogU0FQIEZpb3JpIGVsZW1lbnRzIHdpbGwgZXZhbHVhdGUgZWl0aGVyIHRoZSBVSS5IaWRkZW4gYW5ub3RhdGlvbiBkZWZpbmVkIG9uIHRoZSBhbm5vdGF0aW9uIGl0c2VsZiBvciBvbiB0aGUgdGFyZ2V0IHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSB7RGF0YU1vZGVsT2JqZWN0UGF0aH0gZGF0YUZpZWxkTW9kZWxQYXRoIFRoZSBtZXRhcGF0aCByZWZlcnJpbmcgdG8gdGhlIGFubm90YXRpb24gd2UgYXJlIGV2YWx1YXRpbmcuXG4gKiBAcGFyYW0ge0ZpZWxkRm9ybWF0T3B0aW9uc30gW2Zvcm1hdE9wdGlvbnNdIEZvcm1hdE9wdGlvbnMgb3B0aW9uYWwuXG4gKiBAcmV0dXJucyB7QmluZGluZ0V4cHJlc3Npb248c3RyaW5nPn0gQW4gZXhwcmVzc2lvbiB0aGF0IHlvdSBjYW4gYmluZCB0byB0aGUgVUkuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRWaXNpYmxlRXhwcmVzc2lvbiA9IGZ1bmN0aW9uKFxuXHRkYXRhRmllbGRNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGZvcm1hdE9wdGlvbnM/OiBGaWVsZEZvcm1hdE9wdGlvbnNcbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCB0YXJnZXRPYmplY3Q6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgfCBEYXRhUG9pbnRUeXBlVHlwZXMgPSBkYXRhRmllbGRNb2RlbFBhdGgudGFyZ2V0T2JqZWN0O1xuXHRsZXQgcHJvcGVydHlWYWx1ZTtcblx0aWYgKHRhcmdldE9iamVjdCkge1xuXHRcdHN3aXRjaCAodGFyZ2V0T2JqZWN0LiRUeXBlKSB7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZDpcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aFVybDpcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aE5hdmlnYXRpb25QYXRoOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoSW50ZW50QmFzZWROYXZpZ2F0aW9uOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoQWN0aW9uOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhUG9pbnRUeXBlOlxuXHRcdFx0XHRwcm9wZXJ0eVZhbHVlID0gdGFyZ2V0T2JqZWN0LlZhbHVlLiR0YXJnZXQ7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uOlxuXHRcdFx0XHQvLyBpZiBpdCBpcyBhIERhdGFGaWVsZEZvckFubm90YXRpb24gcG9pbnRpbmcgdG8gYSBEYXRhUG9pbnQgd2UgbG9vayBhdCB0aGUgZGF0YVBvaW50J3MgdmFsdWVcblx0XHRcdFx0aWYgKHRhcmdldE9iamVjdD8uVGFyZ2V0Py4kdGFyZ2V0Py4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YVBvaW50VHlwZSkge1xuXHRcdFx0XHRcdHByb3BlcnR5VmFsdWUgPSB0YXJnZXRPYmplY3QuVGFyZ2V0LiR0YXJnZXQ/LlZhbHVlLiR0YXJnZXQ7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb246XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckFjdGlvbjpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHByb3BlcnR5VmFsdWUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGlzQW5hbHl0aWNhbEdyb3VwSGVhZGVyRXhwYW5kZWQgPSBmb3JtYXRPcHRpb25zPy5pc0FuYWx5dGljcyA/IFVJLklzRXhwYW5kZWQgOiBjb25zdGFudChmYWxzZSk7XG5cdGNvbnN0IGlzQW5hbHl0aWNhbExlYWYgPSBmb3JtYXRPcHRpb25zPy5pc0FuYWx5dGljcyA/IGVxdWFsKFVJLk5vZGVMZXZlbCwgMCkgOiBjb25zdGFudChmYWxzZSk7XG5cblx0Ly8gQSBkYXRhIGZpZWxkIGlzIHZpc2libGUgaWY6XG5cdC8vIC0gdGhlIFVJLkhpZGRlbiBleHByZXNzaW9uIGluIHRoZSBvcmlnaW5hbCBhbm5vdGF0aW9uIGRvZXMgbm90IGV2YWx1YXRlIHRvICd0cnVlJ1xuXHQvLyAtIHRoZSBVSS5IaWRkZW4gZXhwcmVzc2lvbiBpbiB0aGUgdGFyZ2V0IHByb3BlcnR5IGRvZXMgbm90IGV2YWx1YXRlIHRvICd0cnVlJ1xuXHQvLyAtIGluIGNhc2Ugb2YgQW5hbHl0aWNzIGl0J3Mgbm90IHZpc2libGUgZm9yIGFuIGV4cGFuZGVkIEdyb3VwSGVhZGVyXG5cdHJldHVybiBjb21waWxlQmluZGluZyhcblx0XHRhbmQoXG5cdFx0XHQuLi5bXG5cdFx0XHRcdG5vdChlcXVhbChhbm5vdGF0aW9uRXhwcmVzc2lvbih0YXJnZXRPYmplY3Q/LmFubm90YXRpb25zPy5VST8uSGlkZGVuKSwgdHJ1ZSkpLFxuXHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0ISFwcm9wZXJ0eVZhbHVlLFxuXHRcdFx0XHRcdHByb3BlcnR5VmFsdWUgJiYgbm90KGVxdWFsKGFubm90YXRpb25FeHByZXNzaW9uKHByb3BlcnR5VmFsdWUuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSksXG5cdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRvcihub3QoaXNBbmFseXRpY2FsR3JvdXBIZWFkZXJFeHBhbmRlZCksIGlzQW5hbHl0aWNhbExlYWYpXG5cdFx0XHRdXG5cdFx0KVxuXHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldElucHV0RGVzY3JpcHRpb24gPSBmdW5jdGlvbihcblx0b1Byb3BlcnR5UGF0aDogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+LFxuXHRkZXNjcmlwdGlvbkJpbmRpbmdFeHByZXNzaW9uOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+XG4pOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0Y29uc3Qgb1Byb3BlcnR5ID0gKGlzUGF0aEV4cHJlc3Npb24ob1Byb3BlcnR5UGF0aCkgJiYgb1Byb3BlcnR5UGF0aC4kdGFyZ2V0KSB8fCAob1Byb3BlcnR5UGF0aCBhcyBQcm9wZXJ0eSk7XG5cdGNvbnN0IHVuaXRQcm9wZXJ0eSA9IGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5KG9Qcm9wZXJ0eSkgfHwgZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eShvUHJvcGVydHkpO1xuXHRpZiAoIXVuaXRQcm9wZXJ0eSkge1xuXHRcdHJldHVybiBjb21waWxlQmluZGluZyhcIlwiKTtcblx0fVxuXHRjb25zdCBlZGl0YWJsZUV4cHJlc3Npb24gPSBhbmQobm90KGlzUmVhZE9ubHlFeHByZXNzaW9uKHVuaXRQcm9wZXJ0eSkpLCBub3QoUHJvcGVydHlIZWxwZXIuaXNDb21wdXRlZCh1bml0UHJvcGVydHkpKSk7XG5cdHJldHVybiBjb21waWxlQmluZGluZyhpZkVsc2UoZWRpdGFibGVFeHByZXNzaW9uLCBcIlwiLCBkZXNjcmlwdGlvbkJpbmRpbmdFeHByZXNzaW9uKSk7XG59O1xuXG5leHBvcnQgY29uc3QgUVZUZXh0QmluZGluZyA9IGZ1bmN0aW9uKFxuXHRvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRvUHJvcGVydHlWYWx1ZURhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGZpZWxkRm9ybWF0T3B0aW9uczogRmllbGRGb3JtYXRPcHRpb25zLFxuXHRhc09iamVjdDogYm9vbGVhbiA9IGZhbHNlXG4pIHtcblx0bGV0IHJldHVyblZhbHVlOiBhbnkgPSBnZXRWYWx1ZUJpbmRpbmcob1Byb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCwgZmllbGRGb3JtYXRPcHRpb25zLCBhc09iamVjdCk7XG5cdGlmIChyZXR1cm5WYWx1ZSA9PT0gXCJcIikge1xuXHRcdHJldHVyblZhbHVlID0gZ2V0VGV4dEJpbmRpbmcob1Byb3BlcnR5VmFsdWVEYXRhTW9kZWxPYmplY3RQYXRoLCBmaWVsZEZvcm1hdE9wdGlvbnMsIGFzT2JqZWN0KTtcblx0fVxuXHRyZXR1cm4gcmV0dXJuVmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UXVpY2tWaWV3VHlwZSA9IGZ1bmN0aW9uKG9Qcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpOiBzdHJpbmcge1xuXHRjb25zdCB0YXJnZXRPYmplY3QgPSBvUHJvcGVydHlEYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdDtcblx0aWYgKHRhcmdldE9iamVjdD8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW11bmljYXRpb24/LklzRW1haWxBZGRyZXNzKSB7XG5cdFx0cmV0dXJuIFwiZW1haWxcIjtcblx0fVxuXHRpZiAodGFyZ2V0T2JqZWN0Py4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uQ29tbXVuaWNhdGlvbj8uSXNQaG9uZU51bWJlcikge1xuXHRcdHJldHVybiBcInBob25lXCI7XG5cdH1cblx0cmV0dXJuIFwidGV4dFwiO1xufTtcbiJdfQ==
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/templating/UIFormatters","sap/fe/core/templating/DataModelPathHelper","sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/helpers/BindingExpression","sap/fe/core/templating/PropertyHelper","sap/fe/core/formatters/ValueFormatter","sap/fe/core/templating/FieldControlHelper"],function(U,D,B,a,P,v,F){"use strict";var _={};var b=F.isReadOnlyExpression;var g=P.getAssociatedTextPropertyPath;var h=P.hasValueHelp;var c=P.getAssociatedCurrencyPropertyPath;var d=P.getAssociatedUnitPropertyPath;var e=P.isProperty;var f=P.getAssociatedCurrencyProperty;var j=P.getAssociatedUnitProperty;var k=P.isPathExpression;var n=a.not;var l=a.equal;var m=a.ifElse;var o=a.or;var p=a.and;var q=a.bindingExpression;var r=a.constant;var s=a.compileBinding;var t=a.transformRecursively;var u=a.formatResult;var w=a.annotationExpression;var x=B.UI;var y=D.getContextRelativeTargetObjectPath;var z=D.getPathRelativeLocation;var A=D.enhanceDataModelPath;var C=U.formatWithTypeInformation;var E=U.getBindingWithUnitOrCurrency;var G=U.getDisplayMode;function H(i,Z){var $=Object.keys(i);if(Object.getOwnPropertySymbols){var a1=Object.getOwnPropertySymbols(i);if(Z){a1=a1.filter(function(b1){return Object.getOwnPropertyDescriptor(i,b1).enumerable;});}$.push.apply($,a1);}return $;}function I(Z){for(var i=1;i<arguments.length;i++){var $=arguments[i]!=null?arguments[i]:{};if(i%2){H(Object($),true).forEach(function(a1){J(Z,a1,$[a1]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(Z,Object.getOwnPropertyDescriptors($));}else{H(Object($)).forEach(function(a1){Object.defineProperty(Z,a1,Object.getOwnPropertyDescriptor($,a1));});}}return Z;}function J(i,Z,$){if(Z in i){Object.defineProperty(i,Z,{value:$,enumerable:true,configurable:true,writable:true});}else{i[Z]=$;}return i;}var K=function(q,i){return t(q,"Binding",function(Z){var $=Z;if(Z.modelName===undefined){var a1=A(i,Z.path);$=L(a1,Z);}return $;});};_.addTextArrangementToBindingExpression=K;var L=function(i,Z,$){var a1,b1;var c1=$===null||$===void 0?void 0:$.displayMode;var d1=Z;var e1=i.targetObject.type==="PropertyPath"?i.targetObject.$target:i.targetObject;var f1=c1||G(e1,i);var g1=(a1=e1.annotations)===null||a1===void 0?void 0:(b1=a1.Common)===null||b1===void 0?void 0:b1.Text;var h1=z(i.contextLocation,i.navigationProperties).map(function(np){return np.name;});Z=C(e1,Z);if(f1!=="Value"&&g1){switch(f1){case"Description":d1=w(g1,h1);break;case"DescriptionValue":d1=u([w(g1,h1),Z],v.formatWithBrackets);break;case"ValueDescription":d1=u([Z,w(g1,h1)],v.formatWithBrackets);break;}}return d1;};_.getBindingWithTextArrangement=L;var M=function(q,i){return t(q,"Binding",function(Z){var $=Z;if(Z.modelName===undefined){var a1=A(i,Z.path);$=C(a1.targetObject,Z);}return $;});};_.formatValueRecursively=M;var N=function(i,Z){var $,a1,b1,c1,d1,e1,f1,g1,h1,i1;var j1=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if((($=i.targetObject)===null||$===void 0?void 0:$.$Type)==="com.sap.vocabularies.UI.v1.DataField"||((a1=i.targetObject)===null||a1===void 0?void 0:a1.$Type)==="com.sap.vocabularies.UI.v1.DataPointType"||((b1=i.targetObject)===null||b1===void 0?void 0:b1.$Type)==="com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath"||((c1=i.targetObject)===null||c1===void 0?void 0:c1.$Type)==="com.sap.vocabularies.UI.v1.DataFieldWithUrl"){var k1=i.targetObject.Value||"";return s(r(k1));}if(k(i.targetObject)&&i.targetObject.$target){var l1=i.targetEntityType.resolvePath(i.targetObject.path,true);i.targetObject=l1.target;l1.visitedObjects.forEach(function(o1){if((o1===null||o1===void 0?void 0:o1._type)==="NavigationProperty"){i.navigationProperties.push(o1);}});}var m1=q(y(i));var n1;if((d1=i.targetObject)!==null&&d1!==void 0&&(e1=d1.annotations)!==null&&e1!==void 0&&(f1=e1.Measures)!==null&&f1!==void 0&&f1.Unit||(g1=i.targetObject)!==null&&g1!==void 0&&(h1=g1.annotations)!==null&&h1!==void 0&&(i1=h1.Measures)!==null&&i1!==void 0&&i1.ISOCurrency){n1=E(i,m1);if((Z===null||Z===void 0?void 0:Z.measureDisplayMode)==="Hidden"){n1.formatOptions=I(I({},n1.formatOptions),{},{showMeasure:false});}}else{n1=L(i,m1,Z);}if(j1){return n1;}return s(n1);};_.getTextBinding=N;var O=function(i,Z){var $=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var a1=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var b1=arguments.length>4?arguments[4]:undefined;var c1=arguments.length>5?arguments[5]:undefined;var d1=arguments.length>6&&arguments[6]!==undefined?arguments[6]:false;if(k(i.targetObject)&&i.targetObject.$target){var e1=i.targetEntityType.resolvePath(i.targetObject.path,true);i.targetObject=e1.target;e1.visitedObjects.forEach(function(l1){if(l1&&l1._type==="NavigationProperty"){i.navigationProperties.push(l1);}});}var f1=i.targetObject;if(e(f1)){var g1,h1;var i1=q(y(i));if((g1=f1.annotations)!==null&&g1!==void 0&&(h1=g1.Communication)!==null&&h1!==void 0&&h1.IsEmailAddress){i1.type="sap.fe.core.type.Email";}else{var j1=j(i.targetObject);var k1=f(i.targetObject);if(!$&&(j1||k1)){i1=E(i,i1);if(j1&&!h(j1)||k1&&!h(k1)||(Z===null||Z===void 0?void 0:Z.measureDisplayMode)==="Hidden"){if(!i1.formatOptions){i1.formatOptions={};}if(d1){i1.formatOptions.showNumber=false;}else{i1.formatOptions.showMeasure=false;}}}else{i1=C(f1,i1);if(i1.type==="sap.ui.model.odata.type.String"){i1.formatOptions={parseKeepsEmptyString:true};}}}if(a1){delete i1.formatOptions;delete i1.constraints;delete i1.type;}if(b1){i1.parameters=b1;}if(c1){i1.targetType="any";}return s(i1);}else{if((f1===null||f1===void 0?void 0:f1.$Type)==="com.sap.vocabularies.UI.v1.DataFieldWithUrl"||(f1===null||f1===void 0?void 0:f1.$Type)==="com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath"){return s(w(f1.Value));}else{return"";}}};_.getValueBinding=O;var Q=function(i,Z){var $=d(i.targetObject);var a1=c(i.targetObject);if($||a1){var b1=$||a1;var c1=A(i,b1);return O(c1,Z);}return undefined;};_.getUnitBinding=Q;var R=function(i,Z){var $=g(i.targetObject);if($){var a1=A(i,$);var b1=O(a1,Z,true,true,{$$noPatch:true});return b1;}return undefined;};_.getAssociatedTextBinding=R;var S=function(i,Z,$,a1,b1){var c1,d1,e1,f1,g1,h1,i1,j1,k1,l1,m1,n1,o1,p1,q1,r1,s1,t1,u1,v1,w1,x1,y1,z1,A1,B1;var C1=k(i)&&i.$target||i;if(b1&&!((c1=C1.annotations)!==null&&c1!==void 0&&(d1=c1.UI)!==null&&d1!==void 0&&d1.IsImageURL)&&!(C1.type==="Edm.Stream")&&!((e1=C1.annotations)!==null&&e1!==void 0&&(f1=e1.Communication)!==null&&f1!==void 0&&f1.IsEmailAddress||(g1=C1.annotations)!==null&&g1!==void 0&&(h1=g1.Communication)!==null&&h1!==void 0&&h1.IsPhoneNumber)){return"LinkWithQuickViewForm";}if(!i||typeof i==="string"){return"Text";}if(C1.type==="Edm.Stream"){return"File";}if((i1=C1.annotations)!==null&&i1!==void 0&&(j1=i1.UI)!==null&&j1!==void 0&&j1.IsImageURL){return"Avatar";}switch(Z.$Type){case"com.sap.vocabularies.UI.v1.DataPointType":return"DataPoint";case"com.sap.vocabularies.UI.v1.DataFieldForAnnotation":if(((k1=Z.Target)===null||k1===void 0?void 0:(l1=k1.$target)===null||l1===void 0?void 0:l1.$Type)==="com.sap.vocabularies.UI.v1.DataPointType"){return"DataPoint";}else if(((m1=Z.Target)===null||m1===void 0?void 0:(n1=m1.$target)===null||n1===void 0?void 0:n1.$Type)==="com.sap.vocabularies.Communication.v1.ContactType"){return"Contact";}break;case"com.sap.vocabularies.UI.v1.DataFieldForAction":case"com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation":return"Button";case"com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath":return"Link";}if($!==null&&$!==void 0&&(o1=$.targetEntityType)!==null&&o1!==void 0&&(p1=o1.annotations)!==null&&p1!==void 0&&(q1=p1.Common)!==null&&q1!==void 0&&q1.SemanticKey){var D1=$.targetEntityType.annotations.Common.SemanticKey;var E1=!D1.every(function(K1){var L1;return(K1===null||K1===void 0?void 0:(L1=K1.$target)===null||L1===void 0?void 0:L1.name)!==C1.name;});if(E1&&a1.semanticKeyStyle){var F1,G1,H1;if((F1=$.targetEntitySet)!==null&&F1!==void 0&&(G1=F1.annotations)!==null&&G1!==void 0&&(H1=G1.Common)!==null&&H1!==void 0&&H1.DraftRoot){return"SemanticKeyWithDraftIndicator";}return a1.semanticKeyStyle==="ObjectIdentifier"?"ObjectIdentifier":"LabelSemanticKey";}}if(Z.Criticality){return"ObjectStatus";}if((r1=C1.annotations)!==null&&r1!==void 0&&(s1=r1.Measures)!==null&&s1!==void 0&&s1.ISOCurrency){if(a1.measureDisplayMode==="Hidden"){return"Text";}return"AmountWithCurrency";}if((t1=C1.annotations)!==null&&t1!==void 0&&(u1=t1.Communication)!==null&&u1!==void 0&&u1.IsEmailAddress||(v1=C1.annotations)!==null&&v1!==void 0&&(w1=v1.Communication)!==null&&w1!==void 0&&w1.IsPhoneNumber){return"Link";}if((x1=C1.annotations)!==null&&x1!==void 0&&(y1=x1.UI)!==null&&y1!==void 0&&y1.MultiLineText){return"ExpandableText";}var I1=($===null||$===void 0?void 0:(z1=$.targetEntityType)===null||z1===void 0?void 0:z1.navigationProperties)||[];var J1=false;I1.forEach(function(K1){if(K1.referentialConstraint&&K1.referentialConstraint.length){K1.referentialConstraint.forEach(function(L1){if((L1===null||L1===void 0?void 0:L1.sourceProperty)===C1.name){var M1,N1,O1;if(K1!==null&&K1!==void 0&&(M1=K1.targetType)!==null&&M1!==void 0&&(N1=M1.annotations)!==null&&N1!==void 0&&(O1=N1.UI)!==null&&O1!==void 0&&O1.QuickViewFacets){J1=true;}}});}});if(J1){return"LinkWithQuickViewForm";}if((A1=C1.annotations)!==null&&A1!==void 0&&(B1=A1.Common)!==null&&B1!==void 0&&B1.SemanticObject){return"LinkWrapper";}if(Z.$Type==="com.sap.vocabularies.UI.v1.DataFieldWithUrl"){return"Link";}return"Text";};_.getDisplayStyle=S;var T=function(i,Z,$){var a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1;if(!i||typeof i==="string"){return null;}var l1=k(i)&&i.$target||i;if(l1.type==="Edm.Stream"){return"File";}switch(Z.$Type){case"com.sap.vocabularies.UI.v1.DataFieldForAnnotation":if(((a1=Z.Target)===null||a1===void 0?void 0:(b1=a1.$target)===null||b1===void 0?void 0:b1.$Type)==="com.sap.vocabularies.Communication.v1.ContactType"){return null;}else if(((c1=Z.Target)===null||c1===void 0?void 0:(d1=c1.$target)===null||d1===void 0?void 0:d1.Visualization)==="UI.VisualizationType/Rating"){return"RatingIndicator";}break;case"com.sap.vocabularies.UI.v1.DataPointType":if((Z===null||Z===void 0?void 0:Z.Visualization)==="UI.VisualizationType/Rating"){return"RatingIndicator";}break;case"com.sap.vocabularies.UI.v1.DataFieldForAction":case"com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath":case"com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation":return null;}var m1=j(l1);var n1=f(l1);if(P.hasValueHelp(l1)&&l1.type!=="Edm.Boolean"||m1&&P.hasValueHelp(m1)||n1&&P.hasValueHelp(n1)){if(($===null||$===void 0?void 0:$.measureDisplayMode)==="Hidden"){return"Input";}return"InputWithValueHelp";}if((e1=l1.annotations)!==null&&e1!==void 0&&(f1=e1.UI)!==null&&f1!==void 0&&(g1=f1.MultiLineText)!==null&&g1!==void 0&&g1.valueOf()&&l1.type==="Edm.String"){return"TextArea";}switch(l1.type){case"Edm.Date":return"DatePicker";case"Edm.Time":case"Edm.TimeOfDay":return"TimePicker";case"Edm.DateTime":case"Edm.DateTimeOffset":return"DateTimePicker";case"Edm.Boolean":return"CheckBox";}if((h1=l1.annotations)!==null&&h1!==void 0&&(i1=h1.Measures)!==null&&i1!==void 0&&i1.ISOCurrency||(j1=l1.annotations)!==null&&j1!==void 0&&(k1=j1.Measures)!==null&&k1!==void 0&&k1.Unit){return"InputWithUnit";}return"Input";};_.getEditStyle=T;var V=function(i,Z){var $,a1,b1,c1,d1,e1;var f1=i.targetObject;var g1;if(f1){switch(f1.$Type){case"com.sap.vocabularies.UI.v1.DataField":case"com.sap.vocabularies.UI.v1.DataFieldWithUrl":case"com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath":case"com.sap.vocabularies.UI.v1.DataFieldWithIntentBasedNavigation":case"com.sap.vocabularies.UI.v1.DataFieldWithAction":case"com.sap.vocabularies.UI.v1.DataPointType":g1=f1.Value.$target;break;case"com.sap.vocabularies.UI.v1.DataFieldForAnnotation":if((f1===null||f1===void 0?void 0:($=f1.Target)===null||$===void 0?void 0:(a1=$.$target)===null||a1===void 0?void 0:a1.$Type)==="com.sap.vocabularies.UI.v1.DataPointType"){var h1;g1=(h1=f1.Target.$target)===null||h1===void 0?void 0:h1.Value.$target;break;}case"com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation":case"com.sap.vocabularies.UI.v1.DataFieldForAction":default:g1=undefined;}}var i1=Z!==null&&Z!==void 0&&Z.isAnalytics?x.IsExpanded:r(false);var j1=Z!==null&&Z!==void 0&&Z.isAnalytics?l(x.NodeLevel,0):r(false);return s(p.apply(void 0,[n(l(w(f1===null||f1===void 0?void 0:(b1=f1.annotations)===null||b1===void 0?void 0:(c1=b1.UI)===null||c1===void 0?void 0:c1.Hidden),true)),m(!!g1,g1&&n(l(w((d1=g1.annotations)===null||d1===void 0?void 0:(e1=d1.UI)===null||e1===void 0?void 0:e1.Hidden),true)),true),o(n(i1),j1)]));};_.getVisibleExpression=V;var W=function(i,Z){var $=k(i)&&i.$target||i;var a1=f($)||j($);if(!a1){return s("");}var b1=p(n(b(a1)),n(P.isComputed(a1)));return s(m(b1,"",Z));};_.getInputDescription=W;var X=function(i,Z,$){var a1=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var b1=O(i,$,a1);if(b1===""){b1=N(Z,$,a1);}return b1;};_.QVTextBinding=X;var Y=function(i){var Z,$,a1,b1,c1,d1;var e1=i.targetObject;if(e1!==null&&e1!==void 0&&(Z=e1.$target)!==null&&Z!==void 0&&($=Z.annotations)!==null&&$!==void 0&&(a1=$.Communication)!==null&&a1!==void 0&&a1.IsEmailAddress){return"email";}if(e1!==null&&e1!==void 0&&(b1=e1.$target)!==null&&b1!==void 0&&(c1=b1.annotations)!==null&&c1!==void 0&&(d1=c1.Communication)!==null&&d1!==void 0&&d1.IsPhoneNumber){return"phone";}return"text";};_.getQuickViewType=Y;return _;},false);
|
|
5
|
+
sap.ui.define(["sap/fe/core/templating/UIFormatters","sap/fe/core/templating/DataModelPathHelper","sap/fe/core/helpers/BindingExpression","sap/fe/core/templating/PropertyHelper","sap/fe/core/formatters/ValueFormatter","sap/fe/core/templating/FieldControlHelper","sap/fe/core/converters/helpers/BindingHelper"],function(U,D,B,P,v,F,a){"use strict";var _={};var b=a.UI;var c=F.isReadOnlyExpression;var g=P.getAssociatedTextPropertyPath;var h=P.hasValueHelp;var d=P.getAssociatedCurrencyPropertyPath;var e=P.getAssociatedUnitPropertyPath;var f=P.isProperty;var j=P.getAssociatedCurrencyProperty;var k=P.getAssociatedUnitProperty;var l=P.isPathExpression;var o=B.or;var m=B.equal;var n=B.not;var p=B.ifElse;var q=B.and;var r=B.bindingExpression;var s=B.constant;var t=B.compileBinding;var u=B.transformRecursively;var w=B.formatResult;var x=B.annotationExpression;var y=D.getContextRelativeTargetObjectPath;var z=D.getPathRelativeLocation;var A=D.enhanceDataModelPath;var C=U.formatWithTypeInformation;var E=U.getBindingWithUnitOrCurrency;var G=U.getDisplayMode;function H(i,Z){var $=Object.keys(i);if(Object.getOwnPropertySymbols){var a1=Object.getOwnPropertySymbols(i);if(Z){a1=a1.filter(function(b1){return Object.getOwnPropertyDescriptor(i,b1).enumerable;});}$.push.apply($,a1);}return $;}function I(Z){for(var i=1;i<arguments.length;i++){var $=arguments[i]!=null?arguments[i]:{};if(i%2){H(Object($),true).forEach(function(a1){J(Z,a1,$[a1]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(Z,Object.getOwnPropertyDescriptors($));}else{H(Object($)).forEach(function(a1){Object.defineProperty(Z,a1,Object.getOwnPropertyDescriptor($,a1));});}}return Z;}function J(i,Z,$){if(Z in i){Object.defineProperty(i,Z,{value:$,enumerable:true,configurable:true,writable:true});}else{i[Z]=$;}return i;}var K=function(r,i){return u(r,"Binding",function(Z){var $=Z;if(Z.modelName===undefined){var a1=A(i,Z.path);$=L(a1,Z);}return $;});};_.addTextArrangementToBindingExpression=K;var L=function(i,Z,$){var a1,b1;var c1=$===null||$===void 0?void 0:$.displayMode;var d1=Z;var e1=i.targetObject.type==="PropertyPath"?i.targetObject.$target:i.targetObject;var f1=c1||G(e1,i);var g1=(a1=e1.annotations)===null||a1===void 0?void 0:(b1=a1.Common)===null||b1===void 0?void 0:b1.Text;var h1=z(i.contextLocation,i.navigationProperties).map(function(np){return np.name;});Z=C(e1,Z);if(f1!=="Value"&&g1){switch(f1){case"Description":d1=x(g1,h1);break;case"DescriptionValue":d1=w([x(g1,h1),Z],v.formatWithBrackets);break;case"ValueDescription":d1=w([Z,x(g1,h1)],v.formatWithBrackets);break;}}return d1;};_.getBindingWithTextArrangement=L;var M=function(r,i){return u(r,"Binding",function(Z){var $=Z;if(Z.modelName===undefined){var a1=A(i,Z.path);$=C(a1.targetObject,Z);}return $;});};_.formatValueRecursively=M;var N=function(i,Z){var $,a1,b1,c1,d1,e1,f1,g1,h1,i1;var j1=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if((($=i.targetObject)===null||$===void 0?void 0:$.$Type)==="com.sap.vocabularies.UI.v1.DataField"||((a1=i.targetObject)===null||a1===void 0?void 0:a1.$Type)==="com.sap.vocabularies.UI.v1.DataPointType"||((b1=i.targetObject)===null||b1===void 0?void 0:b1.$Type)==="com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath"||((c1=i.targetObject)===null||c1===void 0?void 0:c1.$Type)==="com.sap.vocabularies.UI.v1.DataFieldWithUrl"){var k1=i.targetObject.Value||"";return t(s(k1));}if(l(i.targetObject)&&i.targetObject.$target){var l1=i.targetEntityType.resolvePath(i.targetObject.path,true);i.targetObject=l1.target;l1.visitedObjects.forEach(function(o1){if((o1===null||o1===void 0?void 0:o1._type)==="NavigationProperty"){i.navigationProperties.push(o1);}});}var m1=r(y(i));var n1;if((d1=i.targetObject)!==null&&d1!==void 0&&(e1=d1.annotations)!==null&&e1!==void 0&&(f1=e1.Measures)!==null&&f1!==void 0&&f1.Unit||(g1=i.targetObject)!==null&&g1!==void 0&&(h1=g1.annotations)!==null&&h1!==void 0&&(i1=h1.Measures)!==null&&i1!==void 0&&i1.ISOCurrency){n1=E(i,m1);if((Z===null||Z===void 0?void 0:Z.measureDisplayMode)==="Hidden"){n1.formatOptions=I(I({},n1.formatOptions),{},{showMeasure:false});}}else{n1=L(i,m1,Z);}if(j1){return n1;}return t(n1);};_.getTextBinding=N;var O=function(i,Z){var $=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var a1=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var b1=arguments.length>4?arguments[4]:undefined;var c1=arguments.length>5?arguments[5]:undefined;var d1=arguments.length>6&&arguments[6]!==undefined?arguments[6]:false;if(l(i.targetObject)&&i.targetObject.$target){var e1=i.targetEntityType.resolvePath(i.targetObject.path,true);i.targetObject=e1.target;e1.visitedObjects.forEach(function(l1){if(l1&&l1._type==="NavigationProperty"){i.navigationProperties.push(l1);}});}var f1=i.targetObject;if(f(f1)){var g1,h1;var i1=r(y(i));if((g1=f1.annotations)!==null&&g1!==void 0&&(h1=g1.Communication)!==null&&h1!==void 0&&h1.IsEmailAddress){i1.type="sap.fe.core.type.Email";}else{var j1=k(i.targetObject);var k1=j(i.targetObject);if(!$&&(j1||k1)){i1=E(i,i1);if(j1&&!h(j1)||k1&&!h(k1)||(Z===null||Z===void 0?void 0:Z.measureDisplayMode)==="Hidden"){if(!i1.formatOptions){i1.formatOptions={};}if(d1){i1.formatOptions.showNumber=false;}else{i1.formatOptions.showMeasure=false;}}}else{i1=C(f1,i1);if(i1.type==="sap.ui.model.odata.type.String"){i1.formatOptions={parseKeepsEmptyString:true};}}}if(a1){delete i1.formatOptions;delete i1.constraints;delete i1.type;}if(b1){i1.parameters=b1;}if(c1){i1.targetType="any";}return t(i1);}else{if((f1===null||f1===void 0?void 0:f1.$Type)==="com.sap.vocabularies.UI.v1.DataFieldWithUrl"||(f1===null||f1===void 0?void 0:f1.$Type)==="com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath"){return t(x(f1.Value));}else{return"";}}};_.getValueBinding=O;var Q=function(i,Z){var $=e(i.targetObject);var a1=d(i.targetObject);if($||a1){var b1=$||a1;var c1=A(i,b1);return O(c1,Z);}return undefined;};_.getUnitBinding=Q;var R=function(i,Z){var $=g(i.targetObject);if($){var a1=A(i,$);var b1=O(a1,Z,true,true,{$$noPatch:true});return b1;}return undefined;};_.getAssociatedTextBinding=R;var S=function(i,Z,$,a1,b1){var c1,d1,e1,f1,g1,h1,i1,j1,k1,l1,m1,n1,o1,p1,q1,r1,s1,t1,u1,v1,w1,x1,y1,z1,A1,B1;var C1=l(i)&&i.$target||i;if(b1&&!((c1=C1.annotations)!==null&&c1!==void 0&&(d1=c1.UI)!==null&&d1!==void 0&&d1.IsImageURL)&&!(C1.type==="Edm.Stream")&&!((e1=C1.annotations)!==null&&e1!==void 0&&(f1=e1.Communication)!==null&&f1!==void 0&&f1.IsEmailAddress||(g1=C1.annotations)!==null&&g1!==void 0&&(h1=g1.Communication)!==null&&h1!==void 0&&h1.IsPhoneNumber)){return"LinkWithQuickViewForm";}if(!i||typeof i==="string"){return"Text";}if(C1.type==="Edm.Stream"){return"File";}if((i1=C1.annotations)!==null&&i1!==void 0&&(j1=i1.UI)!==null&&j1!==void 0&&j1.IsImageURL){return"Avatar";}switch(Z.$Type){case"com.sap.vocabularies.UI.v1.DataPointType":return"DataPoint";case"com.sap.vocabularies.UI.v1.DataFieldForAnnotation":if(((k1=Z.Target)===null||k1===void 0?void 0:(l1=k1.$target)===null||l1===void 0?void 0:l1.$Type)==="com.sap.vocabularies.UI.v1.DataPointType"){return"DataPoint";}else if(((m1=Z.Target)===null||m1===void 0?void 0:(n1=m1.$target)===null||n1===void 0?void 0:n1.$Type)==="com.sap.vocabularies.Communication.v1.ContactType"){return"Contact";}break;case"com.sap.vocabularies.UI.v1.DataFieldForAction":case"com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation":return"Button";case"com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath":return"Link";}if($!==null&&$!==void 0&&(o1=$.targetEntityType)!==null&&o1!==void 0&&(p1=o1.annotations)!==null&&p1!==void 0&&(q1=p1.Common)!==null&&q1!==void 0&&q1.SemanticKey){var D1=$.targetEntityType.annotations.Common.SemanticKey;var E1=!D1.every(function(K1){var L1;return(K1===null||K1===void 0?void 0:(L1=K1.$target)===null||L1===void 0?void 0:L1.name)!==C1.name;});if(E1&&a1.semanticKeyStyle){var F1,G1,H1;if((F1=$.targetEntitySet)!==null&&F1!==void 0&&(G1=F1.annotations)!==null&&G1!==void 0&&(H1=G1.Common)!==null&&H1!==void 0&&H1.DraftRoot){return"SemanticKeyWithDraftIndicator";}return a1.semanticKeyStyle==="ObjectIdentifier"?"ObjectIdentifier":"LabelSemanticKey";}}if(Z.Criticality){return"ObjectStatus";}if((r1=C1.annotations)!==null&&r1!==void 0&&(s1=r1.Measures)!==null&&s1!==void 0&&s1.ISOCurrency){if(a1.measureDisplayMode==="Hidden"){return"Text";}return"AmountWithCurrency";}if((t1=C1.annotations)!==null&&t1!==void 0&&(u1=t1.Communication)!==null&&u1!==void 0&&u1.IsEmailAddress||(v1=C1.annotations)!==null&&v1!==void 0&&(w1=v1.Communication)!==null&&w1!==void 0&&w1.IsPhoneNumber){return"Link";}if((x1=C1.annotations)!==null&&x1!==void 0&&(y1=x1.UI)!==null&&y1!==void 0&&y1.MultiLineText){return"ExpandableText";}var I1=($===null||$===void 0?void 0:(z1=$.targetEntityType)===null||z1===void 0?void 0:z1.navigationProperties)||[];var J1=false;I1.forEach(function(K1){if(K1.referentialConstraint&&K1.referentialConstraint.length){K1.referentialConstraint.forEach(function(L1){if((L1===null||L1===void 0?void 0:L1.sourceProperty)===C1.name){var M1,N1,O1;if(K1!==null&&K1!==void 0&&(M1=K1.targetType)!==null&&M1!==void 0&&(N1=M1.annotations)!==null&&N1!==void 0&&(O1=N1.UI)!==null&&O1!==void 0&&O1.QuickViewFacets){J1=true;}}});}});if(J1){return"LinkWithQuickViewForm";}if((A1=C1.annotations)!==null&&A1!==void 0&&(B1=A1.Common)!==null&&B1!==void 0&&B1.SemanticObject){return"LinkWrapper";}if(Z.$Type==="com.sap.vocabularies.UI.v1.DataFieldWithUrl"){return"Link";}return"Text";};_.getDisplayStyle=S;var T=function(i,Z,$){var a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1;if(!i||typeof i==="string"){return null;}var l1=l(i)&&i.$target||i;if(l1.type==="Edm.Stream"){return"File";}switch(Z.$Type){case"com.sap.vocabularies.UI.v1.DataFieldForAnnotation":if(((a1=Z.Target)===null||a1===void 0?void 0:(b1=a1.$target)===null||b1===void 0?void 0:b1.$Type)==="com.sap.vocabularies.Communication.v1.ContactType"){return null;}else if(((c1=Z.Target)===null||c1===void 0?void 0:(d1=c1.$target)===null||d1===void 0?void 0:d1.Visualization)==="UI.VisualizationType/Rating"){return"RatingIndicator";}break;case"com.sap.vocabularies.UI.v1.DataPointType":if((Z===null||Z===void 0?void 0:Z.Visualization)==="UI.VisualizationType/Rating"){return"RatingIndicator";}break;case"com.sap.vocabularies.UI.v1.DataFieldForAction":case"com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath":case"com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation":return null;}var m1=k(l1);var n1=j(l1);if(P.hasValueHelp(l1)&&l1.type!=="Edm.Boolean"||m1&&P.hasValueHelp(m1)||n1&&P.hasValueHelp(n1)){if(($===null||$===void 0?void 0:$.measureDisplayMode)==="Hidden"){return"Input";}return"InputWithValueHelp";}if((e1=l1.annotations)!==null&&e1!==void 0&&(f1=e1.UI)!==null&&f1!==void 0&&(g1=f1.MultiLineText)!==null&&g1!==void 0&&g1.valueOf()&&l1.type==="Edm.String"){return"TextArea";}switch(l1.type){case"Edm.Date":return"DatePicker";case"Edm.Time":case"Edm.TimeOfDay":return"TimePicker";case"Edm.DateTime":case"Edm.DateTimeOffset":return"DateTimePicker";case"Edm.Boolean":return"CheckBox";}if((h1=l1.annotations)!==null&&h1!==void 0&&(i1=h1.Measures)!==null&&i1!==void 0&&i1.ISOCurrency||(j1=l1.annotations)!==null&&j1!==void 0&&(k1=j1.Measures)!==null&&k1!==void 0&&k1.Unit){return"InputWithUnit";}return"Input";};_.getEditStyle=T;var V=function(i,Z){var $,a1,b1,c1,d1,e1;var f1=i.targetObject;var g1;if(f1){switch(f1.$Type){case"com.sap.vocabularies.UI.v1.DataField":case"com.sap.vocabularies.UI.v1.DataFieldWithUrl":case"com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath":case"com.sap.vocabularies.UI.v1.DataFieldWithIntentBasedNavigation":case"com.sap.vocabularies.UI.v1.DataFieldWithAction":case"com.sap.vocabularies.UI.v1.DataPointType":g1=f1.Value.$target;break;case"com.sap.vocabularies.UI.v1.DataFieldForAnnotation":if((f1===null||f1===void 0?void 0:($=f1.Target)===null||$===void 0?void 0:(a1=$.$target)===null||a1===void 0?void 0:a1.$Type)==="com.sap.vocabularies.UI.v1.DataPointType"){var h1;g1=(h1=f1.Target.$target)===null||h1===void 0?void 0:h1.Value.$target;break;}case"com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation":case"com.sap.vocabularies.UI.v1.DataFieldForAction":default:g1=undefined;}}var i1=Z!==null&&Z!==void 0&&Z.isAnalytics?b.IsExpanded:s(false);var j1=Z!==null&&Z!==void 0&&Z.isAnalytics?m(b.NodeLevel,0):s(false);return t(q.apply(void 0,[n(m(x(f1===null||f1===void 0?void 0:(b1=f1.annotations)===null||b1===void 0?void 0:(c1=b1.UI)===null||c1===void 0?void 0:c1.Hidden),true)),p(!!g1,g1&&n(m(x((d1=g1.annotations)===null||d1===void 0?void 0:(e1=d1.UI)===null||e1===void 0?void 0:e1.Hidden),true)),true),o(n(i1),j1)]));};_.getVisibleExpression=V;var W=function(i,Z){var $=l(i)&&i.$target||i;var a1=j($)||k($);if(!a1){return t("");}var b1=q(n(c(a1)),n(P.isComputed(a1)));return t(p(b1,"",Z));};_.getInputDescription=W;var X=function(i,Z,$){var a1=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var b1=O(i,$,a1);if(b1===""){b1=N(Z,$,a1);}return b1;};_.QVTextBinding=X;var Y=function(i){var Z,$,a1,b1,c1,d1;var e1=i.targetObject;if(e1!==null&&e1!==void 0&&(Z=e1.$target)!==null&&Z!==void 0&&($=Z.annotations)!==null&&$!==void 0&&(a1=$.Communication)!==null&&a1!==void 0&&a1.IsEmailAddress){return"email";}if(e1!==null&&e1!==void 0&&(b1=e1.$target)!==null&&b1!==void 0&&(c1=b1.annotations)!==null&&c1!==void 0&&(d1=c1.Communication)!==null&&d1!==void 0&&d1.IsPhoneNumber){return"phone";}return"text";};_.getQuickViewType=Y;return _;},false);
|
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
getContextRelativeTargetObjectPath
|
|
8
8
|
} from "sap/fe/core/templating/DataModelPathHelper";
|
|
9
9
|
import { Property } from "@sap-ux/annotation-converter";
|
|
10
|
-
import { UI } from "sap/fe/core/converters/helpers/BindingHelper";
|
|
11
10
|
import {
|
|
12
11
|
Expression,
|
|
13
12
|
annotationExpression,
|
|
@@ -19,11 +18,11 @@ import {
|
|
|
19
18
|
constant,
|
|
20
19
|
bindingExpression,
|
|
21
20
|
and,
|
|
22
|
-
or,
|
|
23
21
|
ifElse,
|
|
24
|
-
equal,
|
|
25
22
|
not,
|
|
26
|
-
ComplexTypeExpression
|
|
23
|
+
ComplexTypeExpression,
|
|
24
|
+
equal,
|
|
25
|
+
or
|
|
27
26
|
} from "sap/fe/core/helpers/BindingExpression";
|
|
28
27
|
import {
|
|
29
28
|
isPathExpression,
|
|
@@ -39,6 +38,7 @@ import valueFormatters from "sap/fe/core/formatters/ValueFormatter";
|
|
|
39
38
|
import * as PropertyHelper from "sap/fe/core/templating/PropertyHelper";
|
|
40
39
|
import { isReadOnlyExpression } from "sap/fe/core/templating/FieldControlHelper";
|
|
41
40
|
import { DataFieldAbstractTypes, DataFieldWithUrl, DataPointTypeTypes, UIAnnotationTypes } from "@sap-ux/vocabularies-types";
|
|
41
|
+
import { UI } from "sap/fe/core/converters/helpers/BindingHelper";
|
|
42
42
|
|
|
43
43
|
export type FieldFormatOptions = Partial<{
|
|
44
44
|
valueFormat: String;
|
package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml
CHANGED
|
@@ -3,16 +3,10 @@
|
|
|
3
3
|
xmlns:core="sap.ui.core"
|
|
4
4
|
xmlns="sap.m"
|
|
5
5
|
template:require="{
|
|
6
|
-
|
|
6
|
+
CONTACT: 'sap/fe/macros/ContactHelper'
|
|
7
7
|
}"
|
|
8
8
|
>
|
|
9
9
|
<QuickViewGroup heading="{= CONTACT.getContactTitle(${contact>fn}) }">
|
|
10
|
-
<QuickViewGroupElement
|
|
11
|
-
label="{= CONTACT.computeLabel('role', ${contact>role})}"
|
|
12
|
-
value="{contact>role@@MODEL.format}"
|
|
13
|
-
type="text"
|
|
14
|
-
visible="{= !!${contact>role}}"
|
|
15
|
-
/>
|
|
16
10
|
<QuickViewGroupElement
|
|
17
11
|
label="{= CONTACT.computeLabel('title', ${contact>title}) }"
|
|
18
12
|
value="{contact>title@@MODEL.format}"
|
|
@@ -26,7 +26,8 @@ sap.ui.define(
|
|
|
26
26
|
"sap/ui/model/json/JSONModel",
|
|
27
27
|
"sap/ui/fl/Utils",
|
|
28
28
|
"sap/ui/util/openWindow",
|
|
29
|
-
"sap/fe/macros/CommonHelper"
|
|
29
|
+
"sap/fe/macros/CommonHelper",
|
|
30
|
+
"sap/fe/core/helpers/KeepAliveHelper"
|
|
30
31
|
],
|
|
31
32
|
function(
|
|
32
33
|
Panel,
|
|
@@ -50,7 +51,8 @@ sap.ui.define(
|
|
|
50
51
|
JSONModel,
|
|
51
52
|
Utils,
|
|
52
53
|
openWindow,
|
|
53
|
-
CommonHelper
|
|
54
|
+
CommonHelper,
|
|
55
|
+
KeepAliveHelper
|
|
54
56
|
) {
|
|
55
57
|
"use strict";
|
|
56
58
|
var SimpleLinkDelegate = Object.assign({}, LinkDelegate);
|
|
@@ -568,7 +570,7 @@ sap.ui.define(
|
|
|
568
570
|
oURLParsing = Factory.getService("URLParsing"),
|
|
569
571
|
oHash = sHref && oURLParsing.parseShellHash(sHref);
|
|
570
572
|
|
|
571
|
-
|
|
573
|
+
KeepAliveHelper.storeControlRefreshStrategyForHash(oSource, oHash);
|
|
572
574
|
|
|
573
575
|
return Promise.resolve(true);
|
|
574
576
|
};
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
|
|
5
5
|
*/
|
|
6
|
-
sap.ui.define(["sap/ui/mdc/link/Panel","sap/ui/mdc/link/PanelItem","sap/ui/mdc/LinkDelegate","sap/ui/mdc/link/LinkItem","sap/ui/mdc/link/Factory","sap/ui/mdc/link/Log","sap/base/Log","sap/ui/core/util/XMLPreprocessor","sap/ui/core/XMLTemplateProcessor","sap/ui/core/Fragment","sap/fe/macros/field/FieldHelper","sap/base/util/isPlainObject","sap/ui/mdc/link/SemanticObjectMapping","sap/ui/mdc/link/SemanticObjectMappingItem","sap/ui/mdc/link/SemanticObjectUnavailableAction","sap/base/util/merge","sap/fe/navigation/SelectionVariant","sap/fe/core/CommonUtils","sap/ui/model/json/JSONModel","sap/ui/fl/Utils","sap/ui/util/openWindow","sap/fe/macros/CommonHelper"],function(P,a,L,b,F,c,S,X,d,e,f,g,h,k,l,m,o,C,J,U,p,q){"use strict";var r=Object.assign({},L);var s={iLinksShownInPopup:3};r.getConstants=function(){return s;};r._getEntityType=function(i,M){if(M){return M.createBindingContext(i.entityType);}};r._getSemanticsModel=function(i,M){if(M){var j=new J(i);return j;}};r._getDataField=function(i,M){return M.createBindingContext(i.dataField);};r._getContact=function(i,M){return M.createBindingContext(i.contact);};r.fnTemplateFragment=function(){var t=this;var i;var j={};var n;if(this.resolvedpayload){n=this.resolvedpayload;}else{n=this.payLoad;}if(n&&!n.LinkId){n.LinkId=this.oControl&&this.oControl.isA("sap.ui.mdc.Link")?this.oControl.getId():undefined;}var u=this._getSemanticsModel(n,this.oMetaModel);if(n.entityType&&this._getEntityType(n,this.oMetaModel)){i="sap.fe.macros.field.QuickViewLinkForEntity";j.bindingContexts={"entityType":this._getEntityType(n,this.oMetaModel),"semantic":u.createBindingContext("/")};j.models={"entityType":this.oMetaModel,"semantic":u};}else if(n.dataField&&this._getDataField(n,this.oMetaModel)){i="sap.fe.macros.field.QuickViewLinkForDataField";j.bindingContexts={"dataField":this._getDataField(n,this.oMetaModel),"semantic":u.createBindingContext("/")};j.models={"dataField":this.oMetaModel,"semantic":u};}else if(n.contact&&this._getContact(n,this.oMetaModel)){i="sap.fe.macros.field.QuickViewLinkForContact";j.bindingContexts={"contact":this._getContact(n,this.oMetaModel)};j.models={"contact":this.oMetaModel};}j.models.entitySet=this.oMetaModel;j.models.metaModel=this.oMetaModel;if(this.oControl&&this.oControl.getModel("viewData")){j.models.viewData=this.oControl.getModel("viewData");j.bindingContexts.viewData=this.oControl.getModel("viewData").createBindingContext("/");}var v=d.loadTemplate(i,"fragment");return Promise.resolve(X.process(v,{name:i},j)).then(function(v){return e.load({definition:v,controller:t});}).then(function(w){if(w){if(j.models&&j.models.semantic){w.setModel(j.models.semantic,"semantic");w.setBindingContext(j.bindingContexts.semantic,"semantic");}if(j.bindingContexts&&j.bindingContexts.entityType){w.setModel(j.models.entityType,"entityType");w.setBindingContext(j.bindingContexts.entityType,"entityType");}}t.resolvedpayload=undefined;return w;});};r.onPressTitleLink=function(E){if(E.getParameter("target")!=="_blank"){var H=E.getSource().getHref();var u=F.getService("URLParsing");var t=E.getSource();var H=t.getHref();var T=H&&u.parseShellHash(H);var I=T&&T.semanticObject&&T.action&&T.semanticObject+"-"+T.action;var j=E.getSource().getCustomData()[0].getValue();for(var i=0;i<j.length;i++){if(j[i].key===I){t.setHref(j[i].href);break;}}H=t.getHref();var v=sap.ui.fl.Utils.getViewForControl(t);var A=C.getAppComponent(v);var n=v.getController();var w=n&&n.getView(),B=w&&w.getBindingContext();if(!B){B=t.getBindingContext();}E.preventDefault();this.beforeNavigationCallback(E).then(function(N){if(N){var x=u.parseShellHash(H);var y=A.getShellServices();var z={target:{semanticObject:x.semanticObject,action:x.action},params:x.params};if(C.isStickyEditMode(w)!==true){y.toExternal(z,A);}else{var D=y.hrefForExternal(z,A,false);p(D);}}}).catch(function(x){S.error("Error while resolving field value",x);});}};r.fetchAdditionalContent=function(i,B,j){this.oControl=j||B;this.payLoad=i;if(B&&(B.isA("sap.ui.model.odata.v4.Context")||B.isA("sap.ui.mdc.Link"))){this.oMetaModel=B.getModel().getMetaModel();return this.fnTemplateFragment().then(function(n){return[n];});}return Promise.resolve([]);};r.fetchLinkItems=function(i,B,I){if(B&&r._getSemanticObjects(i)){var j=B.getObject();var n=[];if(I){I.initialize(r._getSemanticObjects(i));n.forEach(function(w){I.addIntent(c.IntentType.API,{text:w.getText(),intent:w.getHref()});});}this.aLinkCustomData=this._link&&this._link.isA("sap.ui.mdc.Link")&&this._link.getParent()&&this._link.getParent().isA("sap.m.Link")&&this._link.getParent().getCustomData().map(function(w){return w.mProperties.value;});var t=r._calculateSemanticAttributes(j,i,I,this._link);var u=t.results;var v=t.payload;return r._retrieveNavigationTargets("",u,v,I,this._link).then(function(w,O){return w.length===0?null:w;});}else{return Promise.resolve(null);}};r.fetchLinkType=function(j,n){var t=this;var _=n;var u=[];var v={semanticObjects:[],semanticObjectsResolved:[]};var w=Object.assign({},j);return new Promise(function(x){if(w){if(w.semanticObjects){t._link=n;var y,z,A,B={};var D=function(H){v.semanticObjects.push(H);return v;};var E=n.getParent().getCustomData();for(var G=0;G<E.length;G++){y=E[G].getKey();B[y]={value:E[G].getValue()};}for(var i=0;i<w.semanticObjects.length;i++){A=w.semanticObjects[i];if(A&&A.indexOf("{")===0&&A.indexOf("}")===A.length-1){z=A.substr(1,A.indexOf("}")-1);if(B[z]){A=B[z].value;u.push(Promise.resolve(A));}}u.push(Promise.resolve(A));}return Promise.all(u).then(function(H){if(H&&H.length>0){H.forEach(D);}return _.retrieveLinkItems();}).then(function(H){var I=H;var K;var M=2;if(I&&I.length===1){K=new b({text:I[0].getText(),href:I[0].getHref()});}if(I.length===1&&K){M=1;}else if(w.entityType&&w.navigationPath){M=2;}else if(I.length===0){M=0;}else{M=2;}x({initialType:{type:M,directLink:K?K:undefined},runtimeType:undefined});});}else if(w.contact&&w.contact.length>0){x({initialType:{type:2,directLink:undefined},runtimeType:undefined});}else if(w.entityType&&w.navigationPath){x({initialType:{type:2,directLink:undefined},runtimeType:undefined});}}else{throw new Error("no payload or semanticObjects found");}}).catch(function(E){S.error("Error in SimpleLinkDelegate.fetchLinkType",E);});};r.modifyLinkItems=function(i,B,j){if(j.length!==0){var n=j[0].getParent();var v=sap.ui.fl.Utils.getViewForControl(n);var M=v.getModel().getMetaModel();var A=C.getAppComponent(v);var t=n.getBindingContext();var u;var T={semanticObject:i.mainSemanticObject,action:""};var w=this;return new Promise(function(x){var y=Promise.resolve(j);var N=n&&n.isA("sap.ui.mdc.Link")&&n.getParent()&&n.getParent().isA("sap.m.Link")&&n.getParent().getCustomData().map(function(G){return G.mProperties.value;});if(N&&w.aLinkCustomData&&w.aLinkCustomData.filter(function(G){return(N.filter(function(H){return H!=G;}).length>0);}).length>0){var z=r._calculateSemanticAttributes(B.getObject(),i,undefined,w._link);var D=z.results;var E=z.payload;y=r._retrieveNavigationTargets("",D,E,undefined,w._link);}return y.then(function(G){j=G;var H=A.getNavigationService();var I=v.getController();var K;u=A.getShellServices();if(!u.hasUShell()){S.error("QuickViewLinkDelegate: Service 'URLParsing' could not be obtained");return Promise.reject();}if(v.getAggregation("content")[0]&&v.getAggregation("content")[0].getBindingContext()){var O=v.getAggregation("content")[0].getBindingContext();}var Q=t.getObject();var R=M.getMetaPath(t.getPath());Q=I._intentBasedNavigation.removeSensitiveData(t.getObject(),R);Q=I._intentBasedNavigation.prepareContextForExternalNavigation(Q,t);K=H.mixAttributesAndSelectionVariant(Q.semanticAttributes,new o());T.propertiesWithoutConflict=Q.propertiesWithoutConflict;v.getController().intentBasedNavigation.adaptNavigationContext(K,T);r._removeTechnicalParameters(K);if(v.getViewData().entitySet&&K){var V=H.constructContextUrl(v.getViewData().entitySet,v.getModel());K.setFilterContextUrl(V);}return H.getAppStateKeyAndUrlParameters(K.toJSONString()).then(function(W,Y){var Z=Y;i.aSemanticLinks=[];var $,_;x(Promise.all(j.map(function(a1){return u.expandCompactHash(a1.getHref()).then(function(b1){$=u.parseShellHash(b1);var c1=O===undefined?t:O;var d1=[{contextData:$.params,entitySet:M.getMetaPath(c1.getPath()).replace(/^\/*/,"")}];d1=C.removeSensitiveData(d1,M);_={target:{semanticObject:$.semanticObject,action:$.action},params:Object.assign(W,d1[0]),appStateKey:Z};delete _.params["sap-xapp-state"];a1.setHref("#"+u.constructShellHash(_));i.aSemanticLinks.push(a1.getHref());return a1;});})));});});}).catch(function(E){S.error("Error while getting the navigation service",E);});}else{return Promise.resolve(j);}};r.beforeNavigationCallback=function(i,E){var j=E.getSource(),H=E.getParameter("href"),u=F.getService("URLParsing"),n=H&&u.parseShellHash(H);C.storeControlRefreshStrategyForHash(j,n);return Promise.resolve(true);};r._removeTechnicalParameters=function(i){i.removeSelectOption("@odata.context");i.removeSelectOption("@odata.metadataEtag");i.removeSelectOption("SAP__Messages");};r._calculateSemanticAttributes=function(n,t,I,u){var v,w,_,x={};var y={semanticObjects:[],semanticObjectsResolved:[]};var O,z;var A=u&&u.isA("sap.ui.mdc.Link")&&u.getParent()&&u.getParent().isA("sap.m.Link")&&u.getParent().getCustomData();if(t.semanticObjects){if(A&&A.length>0){for(var B=0;B<A.length;B++){v=A[B].getKey();z=A[B].getValue();x[v]={value:z};}for(var i=0;i<t.semanticObjects.length;i++){w=t.semanticObjects[i];if(w&&w.indexOf("{")===0&&w.indexOf("}")===w.length-1){_=w.substr(1,w.indexOf("}")-1);w=x[_].value;if(t.mainSemanticObject&&t.mainSemanticObject.split(_).length===2&&t.mainSemanticObject.split(_)[0]==="{"&&t.mainSemanticObject.split(_)[1]==="}"){if(w){y.mainSemanticObject=w;}else{y.mainSemanticObject=undefined;}}if(w&&typeof w==="string"){y.semanticObjectsResolved.push(w?w:undefined);y.semanticObjects.push(w?w:undefined);}else if(Array.isArray(w)){for(var j=0;j<w.length;j++){y.semanticObjectsResolved.push(w[j]?w[j]:undefined);y.semanticObjects.push(w[j]?w[j]:undefined);}}}else{y.semanticObjects.push(w);}}if(y.semanticObjectsResolved.length>0){O={};O.entityType=t.entityType;O.dataField=t.dataField;O.contact=t.contact;O.mainSemanticObject=t.mainSemanticObject;O.navigationPath=t.navigationPath;O.propertyPathLabel=t.propertyPathLabel;O.semanticObjectMappings=t.semanticObjectMappings.slice();O.semanticObjectUnavailableActions=t.semanticObjectUnavailableActions.slice();O.semanticObjects=y.semanticObjects;O.semanticPrimaryActions=t.semanticPrimaryActions.slice();if(y.mainSemanticObject){O.mainSemanticObject=y.mainSemanticObject;}else{O.mainSemanticObject=undefined;}for(var N=0;N<y.semanticObjects.length;N++){if(O.mainSemanticObject===y.semanticObjectsResolved[N]){O.mainSemanticObject=y.semanticObjects[N];}if(!!O.semanticObjectMappings&&O.semanticObjectMappings.length>0){O.semanticObjectMappings[N]={semanticObject:y.semanticObjects[N],items:O.semanticObjectMappings[N].items};}if(O.semanticObjects[N]){O.semanticObjects[N]=y.semanticObjects[N];}else{O.semanticObjects.splice(N,1);}}for(var M=0;M<O.semanticObjectMappings.length;M++){if(O.semanticObjectMappings[M]&&O.semanticObjectMappings[M].semanticObject===undefined){O.semanticObjectMappings.splice(M,1);}}this.resolvedpayload=Object.assign({},O);}}}var D=O?O:t;var E=r._getSemanticObjects(D);var G=r._convertSemanticObjectMapping(r._getSemanticObjectMappings(D));if(!E.length){E.push("");}var R={};E.forEach(function(H){if(I){I.addContextObject(H,n);}R[H]={};for(var K in n){var Q=null,T=null;if(I){Q=I.getSemanticObjectAttribute(H,K);if(!Q){Q=I.createAttributeStructure();I.addSemanticObjectAttribute(H,K,Q);}}if(n[K]===undefined||n[K]===null){if(Q){Q.transformations.push({value:undefined,description:"\u2139 Undefined and null values have been removed in SimpleLinkDelegate."});}continue;}if(g(n[K])){if(G&&G[H]){var V=Object.keys(G[H]);var W,Y,Z,$;for(var i=0;i<V.length;i++){$=V[i];if($.indexOf(K)===0){W=G[H][$];Y=$.split("/")[$.split("/").length-1];Z=n[K][Y];if(W&&Y&&Z){R[H][W]=Z;}}}}if(Q){Q.transformations.push({value:undefined,description:"\u2139 Plain objects has been removed in SimpleLinkDelegate."});}continue;}var a1=G&&G[H]&&G[H][K]?G[H][K]:K;if(Q&&K!==a1){T={value:undefined,description:"\u2139 The attribute "+K+" has been renamed to "+a1+" in SimpleLinkDelegate.",reason:"\ud83d\udd34 A com.sap.vocabularies.Common.v1.SemanticObjectMapping annotation is defined for semantic object "+H+" with source attribute "+K+" and target attribute "+a1+". You can modify the annotation if the mapping result is not what you expected."};}if(R[H][a1]){S.error("SimpleLinkDelegate: The attribute "+K+" can not be renamed to the attribute "+a1+" due to a clash situation. This can lead to wrong navigation later on.");}R[H][a1]=n[K];if(Q){if(T){Q.transformations.push(T);var b1=I.createAttributeStructure();b1.transformations.push({value:n[K],description:"\u2139 The attribute "+a1+" with the value "+n[K]+" has been added due to a mapping rule regarding the attribute "+K+" in SimpleLinkDelegate."});I.addSemanticObjectAttribute(H,a1,b1);}}}});return{payload:D,results:R};};r._retrieveNavigationTargets=function(A,t,u,I,v){if(!u.semanticObjects){return new Promise(function(i){i([]);});}var T=this;var w=u.semanticObjects;var N={ownNavigation:undefined,availableActions:[]};var x=0;return sap.ui.getCore().loadLibrary("sap.ui.fl",{async:true}).then(function(){return new Promise(function(y){sap.ui.require(["sap/ui/fl/Utils"],function(U){var z=U.getAppComponentForControl(v===undefined?T.oControl:v);var B=z?z.getShellServices():null;if(!B){return y(N.availableActions,N.ownNavigation);}if(!B.hasUShell()){S.error("SimpleLinkDelegate: Service 'CrossApplicationNavigation' or 'URLParsing' could not be obtained");return y(N.availableActions,N.ownNavigation);}var D=w.map(function(i){return[{semanticObject:i,params:t?t[i]:undefined,appStateKey:A,sortResultsBy:"text"}];});return B.getLinks(D).then(function(E){var H=false;for(var i=0;i<E.length;i++){for(var j=0;j<E[i].length;j++){if(E[i][j].length>0){H=true;break;}if(H){break;}}}if(!E||!E.length||!H){return y(N.availableActions,N.ownNavigation);}var G=r._getSemanticObjectUnavailableActions(u);var K=r._convertSemanticObjectUnavailableAction(G);var M=B.hrefForExternal();if(M&&M.indexOf("?")!==-1){M=M.split("?")[0];}if(M){M+="?";}var O=function(V,W){return(!!K&&!!K[V]&&K[V].indexOf(W)>-1);};var Q=function(v){var V=B.parseShellHash(v.intent);if(O(V.semanticObject,V.action)){return;}var W="#"+B.constructShellHash({target:{shellHash:v.intent}});if(v.intent&&v.intent.indexOf(M)===0){N.ownNavigation=new b({href:W,text:v.text});return;}var Y=new b({key:V.semanticObject&&V.action?V.semanticObject+"-"+V.action:undefined,text:v.text,description:undefined,href:W,icon:undefined,initiallyVisible:v.tags&&v.tags.indexOf("superiorAction")>-1});if(Y.getProperty("initiallyVisible")){x++;}N.availableActions.push(Y);if(I){I.addSemanticObjectIntent(V.semanticObject,{intent:Y.getHref(),text:Y.getText()});}};for(var n=0;n<w.length;n++){E[n][0].forEach(Q);}if(x===0){for(var R=0;R<N.availableActions.length;R++){if(R<T.getConstants().iLinksShownInPopup){N.availableActions[R].setProperty("initiallyVisible",true);}else{break;}}}return y(N.availableActions,N.ownNavigation);},function(){S.error("SimpleLinkDelegate: '_retrieveNavigationTargets' failed executing getLinks method");return y(N.availableActions,N.ownNavigation);});});});});};r._getSemanticObjects=function(i){return i.semanticObjects?i.semanticObjects:[];};r._getSemanticObjectUnavailableActions=function(i){var j=[];if(i.semanticObjectUnavailableActions){i.semanticObjectUnavailableActions.forEach(function(n){j.push(new l({semanticObject:n.semanticObject,actions:n.actions}));});}return j;};r._getSemanticObjectMappings=function(i){var j=[];var n=[];if(i.semanticObjectMappings){i.semanticObjectMappings.forEach(function(t){n=[];if(t.items){t.items.forEach(function(u){n.push(new k({key:u.key,value:u.value}));});}j.push(new h({semanticObject:t.semanticObject,items:n}));});}return j;};r._convertSemanticObjectMapping=function(i){if(!i.length){return undefined;}var j={};i.forEach(function(n){if(!n.getSemanticObject()){throw Error("SimpleLinkDelegate: 'semanticObject' property with value '"+n.getSemanticObject()+"' is not valid");}j[n.getSemanticObject()]=n.getItems().reduce(function(M,I){M[I.getKey()]=I.getValue();return M;},{});});return j;};r._convertSemanticObjectUnavailableAction=function(i){if(!i.length){return undefined;}var j={};i.forEach(function(n){if(!n.getSemanticObject()){throw Error("SimpleLinkDelegate: 'semanticObject' property with value '"+n.getSemanticObject()+"' is not valid");}j[n.getSemanticObject()]=n.getActions();});return j;};return r;},true);
|
|
6
|
+
sap.ui.define(["sap/ui/mdc/link/Panel","sap/ui/mdc/link/PanelItem","sap/ui/mdc/LinkDelegate","sap/ui/mdc/link/LinkItem","sap/ui/mdc/link/Factory","sap/ui/mdc/link/Log","sap/base/Log","sap/ui/core/util/XMLPreprocessor","sap/ui/core/XMLTemplateProcessor","sap/ui/core/Fragment","sap/fe/macros/field/FieldHelper","sap/base/util/isPlainObject","sap/ui/mdc/link/SemanticObjectMapping","sap/ui/mdc/link/SemanticObjectMappingItem","sap/ui/mdc/link/SemanticObjectUnavailableAction","sap/base/util/merge","sap/fe/navigation/SelectionVariant","sap/fe/core/CommonUtils","sap/ui/model/json/JSONModel","sap/ui/fl/Utils","sap/ui/util/openWindow","sap/fe/macros/CommonHelper","sap/fe/core/helpers/KeepAliveHelper"],function(P,a,L,b,F,c,S,X,d,e,f,g,h,k,l,m,o,C,J,U,p,q,K){"use strict";var r=Object.assign({},L);var s={iLinksShownInPopup:3};r.getConstants=function(){return s;};r._getEntityType=function(i,M){if(M){return M.createBindingContext(i.entityType);}};r._getSemanticsModel=function(i,M){if(M){var j=new J(i);return j;}};r._getDataField=function(i,M){return M.createBindingContext(i.dataField);};r._getContact=function(i,M){return M.createBindingContext(i.contact);};r.fnTemplateFragment=function(){var t=this;var i;var j={};var n;if(this.resolvedpayload){n=this.resolvedpayload;}else{n=this.payLoad;}if(n&&!n.LinkId){n.LinkId=this.oControl&&this.oControl.isA("sap.ui.mdc.Link")?this.oControl.getId():undefined;}var u=this._getSemanticsModel(n,this.oMetaModel);if(n.entityType&&this._getEntityType(n,this.oMetaModel)){i="sap.fe.macros.field.QuickViewLinkForEntity";j.bindingContexts={"entityType":this._getEntityType(n,this.oMetaModel),"semantic":u.createBindingContext("/")};j.models={"entityType":this.oMetaModel,"semantic":u};}else if(n.dataField&&this._getDataField(n,this.oMetaModel)){i="sap.fe.macros.field.QuickViewLinkForDataField";j.bindingContexts={"dataField":this._getDataField(n,this.oMetaModel),"semantic":u.createBindingContext("/")};j.models={"dataField":this.oMetaModel,"semantic":u};}else if(n.contact&&this._getContact(n,this.oMetaModel)){i="sap.fe.macros.field.QuickViewLinkForContact";j.bindingContexts={"contact":this._getContact(n,this.oMetaModel)};j.models={"contact":this.oMetaModel};}j.models.entitySet=this.oMetaModel;j.models.metaModel=this.oMetaModel;if(this.oControl&&this.oControl.getModel("viewData")){j.models.viewData=this.oControl.getModel("viewData");j.bindingContexts.viewData=this.oControl.getModel("viewData").createBindingContext("/");}var v=d.loadTemplate(i,"fragment");return Promise.resolve(X.process(v,{name:i},j)).then(function(v){return e.load({definition:v,controller:t});}).then(function(w){if(w){if(j.models&&j.models.semantic){w.setModel(j.models.semantic,"semantic");w.setBindingContext(j.bindingContexts.semantic,"semantic");}if(j.bindingContexts&&j.bindingContexts.entityType){w.setModel(j.models.entityType,"entityType");w.setBindingContext(j.bindingContexts.entityType,"entityType");}}t.resolvedpayload=undefined;return w;});};r.onPressTitleLink=function(E){if(E.getParameter("target")!=="_blank"){var H=E.getSource().getHref();var u=F.getService("URLParsing");var t=E.getSource();var H=t.getHref();var T=H&&u.parseShellHash(H);var I=T&&T.semanticObject&&T.action&&T.semanticObject+"-"+T.action;var j=E.getSource().getCustomData()[0].getValue();for(var i=0;i<j.length;i++){if(j[i].key===I){t.setHref(j[i].href);break;}}H=t.getHref();var v=sap.ui.fl.Utils.getViewForControl(t);var A=C.getAppComponent(v);var n=v.getController();var w=n&&n.getView(),B=w&&w.getBindingContext();if(!B){B=t.getBindingContext();}E.preventDefault();this.beforeNavigationCallback(E).then(function(N){if(N){var x=u.parseShellHash(H);var y=A.getShellServices();var z={target:{semanticObject:x.semanticObject,action:x.action},params:x.params};if(C.isStickyEditMode(w)!==true){y.toExternal(z,A);}else{var D=y.hrefForExternal(z,A,false);p(D);}}}).catch(function(x){S.error("Error while resolving field value",x);});}};r.fetchAdditionalContent=function(i,B,j){this.oControl=j||B;this.payLoad=i;if(B&&(B.isA("sap.ui.model.odata.v4.Context")||B.isA("sap.ui.mdc.Link"))){this.oMetaModel=B.getModel().getMetaModel();return this.fnTemplateFragment().then(function(n){return[n];});}return Promise.resolve([]);};r.fetchLinkItems=function(i,B,I){if(B&&r._getSemanticObjects(i)){var j=B.getObject();var n=[];if(I){I.initialize(r._getSemanticObjects(i));n.forEach(function(w){I.addIntent(c.IntentType.API,{text:w.getText(),intent:w.getHref()});});}this.aLinkCustomData=this._link&&this._link.isA("sap.ui.mdc.Link")&&this._link.getParent()&&this._link.getParent().isA("sap.m.Link")&&this._link.getParent().getCustomData().map(function(w){return w.mProperties.value;});var t=r._calculateSemanticAttributes(j,i,I,this._link);var u=t.results;var v=t.payload;return r._retrieveNavigationTargets("",u,v,I,this._link).then(function(w,O){return w.length===0?null:w;});}else{return Promise.resolve(null);}};r.fetchLinkType=function(j,n){var t=this;var _=n;var u=[];var v={semanticObjects:[],semanticObjectsResolved:[]};var w=Object.assign({},j);return new Promise(function(x){if(w){if(w.semanticObjects){t._link=n;var y,z,A,B={};var D=function(H){v.semanticObjects.push(H);return v;};var E=n.getParent().getCustomData();for(var G=0;G<E.length;G++){y=E[G].getKey();B[y]={value:E[G].getValue()};}for(var i=0;i<w.semanticObjects.length;i++){A=w.semanticObjects[i];if(A&&A.indexOf("{")===0&&A.indexOf("}")===A.length-1){z=A.substr(1,A.indexOf("}")-1);if(B[z]){A=B[z].value;u.push(Promise.resolve(A));}}u.push(Promise.resolve(A));}return Promise.all(u).then(function(H){if(H&&H.length>0){H.forEach(D);}return _.retrieveLinkItems();}).then(function(H){var I=H;var M;var N=2;if(I&&I.length===1){M=new b({text:I[0].getText(),href:I[0].getHref()});}if(I.length===1&&M){N=1;}else if(w.entityType&&w.navigationPath){N=2;}else if(I.length===0){N=0;}else{N=2;}x({initialType:{type:N,directLink:M?M:undefined},runtimeType:undefined});});}else if(w.contact&&w.contact.length>0){x({initialType:{type:2,directLink:undefined},runtimeType:undefined});}else if(w.entityType&&w.navigationPath){x({initialType:{type:2,directLink:undefined},runtimeType:undefined});}}else{throw new Error("no payload or semanticObjects found");}}).catch(function(E){S.error("Error in SimpleLinkDelegate.fetchLinkType",E);});};r.modifyLinkItems=function(i,B,j){if(j.length!==0){var n=j[0].getParent();var v=sap.ui.fl.Utils.getViewForControl(n);var M=v.getModel().getMetaModel();var A=C.getAppComponent(v);var t=n.getBindingContext();var u;var T={semanticObject:i.mainSemanticObject,action:""};var w=this;return new Promise(function(x){var y=Promise.resolve(j);var N=n&&n.isA("sap.ui.mdc.Link")&&n.getParent()&&n.getParent().isA("sap.m.Link")&&n.getParent().getCustomData().map(function(G){return G.mProperties.value;});if(N&&w.aLinkCustomData&&w.aLinkCustomData.filter(function(G){return(N.filter(function(H){return H!=G;}).length>0);}).length>0){var z=r._calculateSemanticAttributes(B.getObject(),i,undefined,w._link);var D=z.results;var E=z.payload;y=r._retrieveNavigationTargets("",D,E,undefined,w._link);}return y.then(function(G){j=G;var H=A.getNavigationService();var I=v.getController();var O;u=A.getShellServices();if(!u.hasUShell()){S.error("QuickViewLinkDelegate: Service 'URLParsing' could not be obtained");return Promise.reject();}if(v.getAggregation("content")[0]&&v.getAggregation("content")[0].getBindingContext()){var Q=v.getAggregation("content")[0].getBindingContext();}var R=t.getObject();var V=M.getMetaPath(t.getPath());R=I._intentBasedNavigation.removeSensitiveData(t.getObject(),V);R=I._intentBasedNavigation.prepareContextForExternalNavigation(R,t);O=H.mixAttributesAndSelectionVariant(R.semanticAttributes,new o());T.propertiesWithoutConflict=R.propertiesWithoutConflict;v.getController().intentBasedNavigation.adaptNavigationContext(O,T);r._removeTechnicalParameters(O);if(v.getViewData().entitySet&&O){var W=H.constructContextUrl(v.getViewData().entitySet,v.getModel());O.setFilterContextUrl(W);}return H.getAppStateKeyAndUrlParameters(O.toJSONString()).then(function(Y,Z){var $=Z;i.aSemanticLinks=[];var _,a1;x(Promise.all(j.map(function(b1){return u.expandCompactHash(b1.getHref()).then(function(c1){_=u.parseShellHash(c1);var d1=Q===undefined?t:Q;var e1=[{contextData:_.params,entitySet:M.getMetaPath(d1.getPath()).replace(/^\/*/,"")}];e1=C.removeSensitiveData(e1,M);a1={target:{semanticObject:_.semanticObject,action:_.action},params:Object.assign(Y,e1[0]),appStateKey:$};delete a1.params["sap-xapp-state"];b1.setHref("#"+u.constructShellHash(a1));i.aSemanticLinks.push(b1.getHref());return b1;});})));});});}).catch(function(E){S.error("Error while getting the navigation service",E);});}else{return Promise.resolve(j);}};r.beforeNavigationCallback=function(i,E){var j=E.getSource(),H=E.getParameter("href"),u=F.getService("URLParsing"),n=H&&u.parseShellHash(H);K.storeControlRefreshStrategyForHash(j,n);return Promise.resolve(true);};r._removeTechnicalParameters=function(i){i.removeSelectOption("@odata.context");i.removeSelectOption("@odata.metadataEtag");i.removeSelectOption("SAP__Messages");};r._calculateSemanticAttributes=function(n,t,I,u){var v,w,_,x={};var y={semanticObjects:[],semanticObjectsResolved:[]};var O,z;var A=u&&u.isA("sap.ui.mdc.Link")&&u.getParent()&&u.getParent().isA("sap.m.Link")&&u.getParent().getCustomData();if(t.semanticObjects){if(A&&A.length>0){for(var B=0;B<A.length;B++){v=A[B].getKey();z=A[B].getValue();x[v]={value:z};}for(var i=0;i<t.semanticObjects.length;i++){w=t.semanticObjects[i];if(w&&w.indexOf("{")===0&&w.indexOf("}")===w.length-1){_=w.substr(1,w.indexOf("}")-1);w=x[_].value;if(t.mainSemanticObject&&t.mainSemanticObject.split(_).length===2&&t.mainSemanticObject.split(_)[0]==="{"&&t.mainSemanticObject.split(_)[1]==="}"){if(w){y.mainSemanticObject=w;}else{y.mainSemanticObject=undefined;}}if(w&&typeof w==="string"){y.semanticObjectsResolved.push(w?w:undefined);y.semanticObjects.push(w?w:undefined);}else if(Array.isArray(w)){for(var j=0;j<w.length;j++){y.semanticObjectsResolved.push(w[j]?w[j]:undefined);y.semanticObjects.push(w[j]?w[j]:undefined);}}}else{y.semanticObjects.push(w);}}if(y.semanticObjectsResolved.length>0){O={};O.entityType=t.entityType;O.dataField=t.dataField;O.contact=t.contact;O.mainSemanticObject=t.mainSemanticObject;O.navigationPath=t.navigationPath;O.propertyPathLabel=t.propertyPathLabel;O.semanticObjectMappings=t.semanticObjectMappings.slice();O.semanticObjectUnavailableActions=t.semanticObjectUnavailableActions.slice();O.semanticObjects=y.semanticObjects;O.semanticPrimaryActions=t.semanticPrimaryActions.slice();if(y.mainSemanticObject){O.mainSemanticObject=y.mainSemanticObject;}else{O.mainSemanticObject=undefined;}for(var N=0;N<y.semanticObjects.length;N++){if(O.mainSemanticObject===y.semanticObjectsResolved[N]){O.mainSemanticObject=y.semanticObjects[N];}if(!!O.semanticObjectMappings&&O.semanticObjectMappings.length>0){O.semanticObjectMappings[N]={semanticObject:y.semanticObjects[N],items:O.semanticObjectMappings[N].items};}if(O.semanticObjects[N]){O.semanticObjects[N]=y.semanticObjects[N];}else{O.semanticObjects.splice(N,1);}}for(var M=0;M<O.semanticObjectMappings.length;M++){if(O.semanticObjectMappings[M]&&O.semanticObjectMappings[M].semanticObject===undefined){O.semanticObjectMappings.splice(M,1);}}this.resolvedpayload=Object.assign({},O);}}}var D=O?O:t;var E=r._getSemanticObjects(D);var G=r._convertSemanticObjectMapping(r._getSemanticObjectMappings(D));if(!E.length){E.push("");}var R={};E.forEach(function(H){if(I){I.addContextObject(H,n);}R[H]={};for(var Q in n){var T=null,V=null;if(I){T=I.getSemanticObjectAttribute(H,Q);if(!T){T=I.createAttributeStructure();I.addSemanticObjectAttribute(H,Q,T);}}if(n[Q]===undefined||n[Q]===null){if(T){T.transformations.push({value:undefined,description:"\u2139 Undefined and null values have been removed in SimpleLinkDelegate."});}continue;}if(g(n[Q])){if(G&&G[H]){var W=Object.keys(G[H]);var Y,Z,$,a1;for(var i=0;i<W.length;i++){a1=W[i];if(a1.indexOf(Q)===0){Y=G[H][a1];Z=a1.split("/")[a1.split("/").length-1];$=n[Q][Z];if(Y&&Z&&$){R[H][Y]=$;}}}}if(T){T.transformations.push({value:undefined,description:"\u2139 Plain objects has been removed in SimpleLinkDelegate."});}continue;}var b1=G&&G[H]&&G[H][Q]?G[H][Q]:Q;if(T&&Q!==b1){V={value:undefined,description:"\u2139 The attribute "+Q+" has been renamed to "+b1+" in SimpleLinkDelegate.",reason:"\ud83d\udd34 A com.sap.vocabularies.Common.v1.SemanticObjectMapping annotation is defined for semantic object "+H+" with source attribute "+Q+" and target attribute "+b1+". You can modify the annotation if the mapping result is not what you expected."};}if(R[H][b1]){S.error("SimpleLinkDelegate: The attribute "+Q+" can not be renamed to the attribute "+b1+" due to a clash situation. This can lead to wrong navigation later on.");}R[H][b1]=n[Q];if(T){if(V){T.transformations.push(V);var c1=I.createAttributeStructure();c1.transformations.push({value:n[Q],description:"\u2139 The attribute "+b1+" with the value "+n[Q]+" has been added due to a mapping rule regarding the attribute "+Q+" in SimpleLinkDelegate."});I.addSemanticObjectAttribute(H,b1,c1);}}}});return{payload:D,results:R};};r._retrieveNavigationTargets=function(A,t,u,I,v){if(!u.semanticObjects){return new Promise(function(i){i([]);});}var T=this;var w=u.semanticObjects;var N={ownNavigation:undefined,availableActions:[]};var x=0;return sap.ui.getCore().loadLibrary("sap.ui.fl",{async:true}).then(function(){return new Promise(function(y){sap.ui.require(["sap/ui/fl/Utils"],function(U){var z=U.getAppComponentForControl(v===undefined?T.oControl:v);var B=z?z.getShellServices():null;if(!B){return y(N.availableActions,N.ownNavigation);}if(!B.hasUShell()){S.error("SimpleLinkDelegate: Service 'CrossApplicationNavigation' or 'URLParsing' could not be obtained");return y(N.availableActions,N.ownNavigation);}var D=w.map(function(i){return[{semanticObject:i,params:t?t[i]:undefined,appStateKey:A,sortResultsBy:"text"}];});return B.getLinks(D).then(function(E){var H=false;for(var i=0;i<E.length;i++){for(var j=0;j<E[i].length;j++){if(E[i][j].length>0){H=true;break;}if(H){break;}}}if(!E||!E.length||!H){return y(N.availableActions,N.ownNavigation);}var G=r._getSemanticObjectUnavailableActions(u);var M=r._convertSemanticObjectUnavailableAction(G);var O=B.hrefForExternal();if(O&&O.indexOf("?")!==-1){O=O.split("?")[0];}if(O){O+="?";}var Q=function(W,Y){return(!!M&&!!M[W]&&M[W].indexOf(Y)>-1);};var R=function(v){var W=B.parseShellHash(v.intent);if(Q(W.semanticObject,W.action)){return;}var Y="#"+B.constructShellHash({target:{shellHash:v.intent}});if(v.intent&&v.intent.indexOf(O)===0){N.ownNavigation=new b({href:Y,text:v.text});return;}var Z=new b({key:W.semanticObject&&W.action?W.semanticObject+"-"+W.action:undefined,text:v.text,description:undefined,href:Y,icon:undefined,initiallyVisible:v.tags&&v.tags.indexOf("superiorAction")>-1});if(Z.getProperty("initiallyVisible")){x++;}N.availableActions.push(Z);if(I){I.addSemanticObjectIntent(W.semanticObject,{intent:Z.getHref(),text:Z.getText()});}};for(var n=0;n<w.length;n++){E[n][0].forEach(R);}if(x===0){for(var V=0;V<N.availableActions.length;V++){if(V<T.getConstants().iLinksShownInPopup){N.availableActions[V].setProperty("initiallyVisible",true);}else{break;}}}return y(N.availableActions,N.ownNavigation);},function(){S.error("SimpleLinkDelegate: '_retrieveNavigationTargets' failed executing getLinks method");return y(N.availableActions,N.ownNavigation);});});});});};r._getSemanticObjects=function(i){return i.semanticObjects?i.semanticObjects:[];};r._getSemanticObjectUnavailableActions=function(i){var j=[];if(i.semanticObjectUnavailableActions){i.semanticObjectUnavailableActions.forEach(function(n){j.push(new l({semanticObject:n.semanticObject,actions:n.actions}));});}return j;};r._getSemanticObjectMappings=function(i){var j=[];var n=[];if(i.semanticObjectMappings){i.semanticObjectMappings.forEach(function(t){n=[];if(t.items){t.items.forEach(function(u){n.push(new k({key:u.key,value:u.value}));});}j.push(new h({semanticObject:t.semanticObject,items:n}));});}return j;};r._convertSemanticObjectMapping=function(i){if(!i.length){return undefined;}var j={};i.forEach(function(n){if(!n.getSemanticObject()){throw Error("SimpleLinkDelegate: 'semanticObject' property with value '"+n.getSemanticObject()+"' is not valid");}j[n.getSemanticObject()]=n.getItems().reduce(function(M,I){M[I.getKey()]=I.getValue();return M;},{});});return j;};r._convertSemanticObjectUnavailableAction=function(i){if(!i.length){return undefined;}var j={};i.forEach(function(n){if(!n.getSemanticObject()){throw Error("SimpleLinkDelegate: 'semanticObject' property with value '"+n.getSemanticObject()+"' is not valid");}j[n.getSemanticObject()]=n.getActions();});return j;};return r;},true);
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
icon="{= ${contact>photo@@MODEL.format} ? ${contact>photo@@MODEL.format} : 'sap-icon://person-placeholder' }"
|
|
17
17
|
fallbackIcon="sap-icon://person-placeholder"
|
|
18
18
|
title="{contact>fn@@MODEL.format}"
|
|
19
|
-
description="{contact>
|
|
19
|
+
description="{contact>role@@MODEL.format}"
|
|
20
20
|
crossAppNavCallback=""
|
|
21
21
|
>
|
|
22
22
|
<core:Fragment fragmentName="sap.fe.macros.field.QuickViewLinkContactContent" type="XML" />
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// ---------------------------------------------------------------------------------------
|
|
8
|
+
// Static class used by FormContainer used during runtime
|
|
9
|
+
// ---------------------------------------------------------------------------------------
|
|
10
|
+
// ---------------------------------------------------------------------------------------
|
|
11
|
+
sap.ui.define(
|
|
12
|
+
["sap/fe/macros/ResourceModel"],
|
|
13
|
+
function(ResourceModel, Log) {
|
|
14
|
+
"use strict";
|
|
15
|
+
var FormContainerRuntime = {
|
|
16
|
+
toggleDetails: function(oEvent) {
|
|
17
|
+
var oButton = oEvent.getSource(),
|
|
18
|
+
oInternalModelContext = oEvent.getSource().getBindingContext("internal"),
|
|
19
|
+
SHOW_DETAILS = "showDetails";
|
|
20
|
+
// The internal model context of FormContainers is initialized
|
|
21
|
+
// in method ObjectPageController.controller.js#onAfterBinding()
|
|
22
|
+
if (
|
|
23
|
+
!oInternalModelContext ||
|
|
24
|
+
!(oInternalModelContext.getProperty instanceof Function) ||
|
|
25
|
+
oInternalModelContext.getProperty(SHOW_DETAILS) === undefined
|
|
26
|
+
) {
|
|
27
|
+
Log.error(
|
|
28
|
+
"FormContainerRuntime: No internal model context / property found: Cannot execute 'Show Details' in FormContainer.",
|
|
29
|
+
"sap.fe.macros.formcontainer.FormContainerRuntime",
|
|
30
|
+
"toggleDetails"
|
|
31
|
+
);
|
|
32
|
+
} else {
|
|
33
|
+
oInternalModelContext.setProperty(SHOW_DETAILS, !oInternalModelContext.getProperty(SHOW_DETAILS));
|
|
34
|
+
oButton.setProperty(
|
|
35
|
+
"text",
|
|
36
|
+
oInternalModelContext.getProperty(SHOW_DETAILS)
|
|
37
|
+
? ResourceModel.getText("T_COMMON_OBJECT_PAGE_HIDE_FORM_CONTAINER_DETAILS")
|
|
38
|
+
: ResourceModel.getText("T_COMMON_OBJECT_PAGE_SHOW_FORM_CONTAINER_DETAILS")
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
return FormContainerRuntime;
|
|
44
|
+
},
|
|
45
|
+
/* bExport= */ false
|
|
46
|
+
);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
5
|
+
*/
|
|
6
|
+
sap.ui.define(["sap/fe/macros/ResourceModel"],function(R,L){"use strict";var F={toggleDetails:function(e){var b=e.getSource(),i=e.getSource().getBindingContext("internal"),S="showDetails";if(!i||!(i.getProperty instanceof Function)||i.getProperty(S)===undefined){L.error("FormContainerRuntime: No internal model context / property found: Cannot execute 'Show Details' in FormContainer.","sap.fe.macros.formcontainer.FormContainerRuntime","toggleDetails");}else{i.setProperty(S,!i.getProperty(S));b.setProperty("text",i.getProperty(S)?R.getText("T_COMMON_OBJECT_PAGE_HIDE_FORM_CONTAINER_DETAILS"):R.getText("T_COMMON_OBJECT_PAGE_SHOW_FORM_CONTAINER_DETAILS"));}}};return F;},false);
|