@sap/open.fe 1.98.0 → 1.99.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 +10 -8
- 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 +3 -3
- 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.common/test/sap/fe/common/relnotes/changes-1.99.json +18 -0
- 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 +376 -405
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.ts +385 -0
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +228 -181
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.ts +171 -0
- package/packages/sap.fe.core/src/sap/fe/core/BusyLocker-dbg.js +104 -121
- package/packages/sap.fe.core/src/sap/fe/core/BusyLocker.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/BusyLocker.ts +98 -0
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +2072 -2399
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.ts +2078 -0
- package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +83 -125
- package/packages/sap.fe.core/src/sap/fe/core/PageController.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/PageController.ts +101 -0
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +985 -823
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.ts +838 -0
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization-dbg.js +50 -35
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization.ts +29 -0
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +172 -164
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.ts +166 -0
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel-dbg.js +96 -54
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.ts +63 -0
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +1575 -1664
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.ts +1706 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +558 -608
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft.ts +593 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +544 -514
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.ts +532 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft-dbg.js +16 -19
- package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft.ts +12 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +1073 -1215
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.ts +1162 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky-dbg.js +101 -105
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.ts +102 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +51 -209
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +276 -9
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +5 -4
- 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 +44 -43
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +29 -26
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +98 -6
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +14 -6
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.ts +12 -8
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +6 -2
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +18 -18
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +8 -20
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +4 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +1 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +39 -26
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +11 -8
- 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 +16 -16
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.ts +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +17 -13
- 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 +2 -2
- 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 +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +5 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +4 -2
- 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 +16 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +250 -146
- 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 +300 -167
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +115 -56
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +120 -74
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +467 -32
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +483 -54
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +6 -6
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +9 -15
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +13 -5
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.ts +20 -5
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +4 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.ts +3 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +4 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +13 -6
- 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 +26 -15
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
- package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +39 -28
- 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 +43 -28
- package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.ts +7 -6
- package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.ts +7 -4
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +314 -355
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +317 -391
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport-dbg.js +27 -15
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.ts +31 -20
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +62 -59
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +56 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState-dbg.js +80 -84
- package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState.ts +81 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +61 -48
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper-dbg.js +51 -56
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +3 -4
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +9 -9
- package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper-dbg.js +24 -16
- package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +228 -225
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.ts +227 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper-dbg.js +209 -132
- package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +331 -313
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.ts +330 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +65 -67
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper-dbg.js +1 -5
- package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
- package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx.ts +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 +23 -26
- 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 +630 -649
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +17 -5
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +2 -2
- 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/manifestMerger/ChangePageConfiguration-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +23 -10
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +10 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +13 -4
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +10 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +14 -5
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +11 -2
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/resources.json +427 -341
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +268 -202
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +7 -6
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +405 -300
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.ts +316 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +148 -81
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.ts +80 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +986 -899
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +15 -10
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +35 -81
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +46 -94
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +460 -487
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +453 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +9 -8
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
- package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
- package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper-dbg.js +8 -8
- package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +138 -72
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +139 -71
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +31 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +33 -2
- package/packages/sap.fe.core/src/sap/fe/core/type/Email-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/type/Email.ts +4 -6
- 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.jsmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.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/controls/FileEditor.js +15 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +90 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +2 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/chartFilterBar.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/chartFilterBar.view.xml +22 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/ChildEntity.json +686 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/CreditLimitDetails.json +154 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/RootEntity.json +252 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/service.cds +141 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/status.json +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/manifest.json +69 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartFilterBar.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.view.xml +186 -122
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/FieldFormatOptions.cds +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/RootEntity.json +2 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/service.cds +15 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/service.cds +36 -5
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/Component.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/FormSample.view.xml +10 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/localService/FormSample.cds +72 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/localService/RootEntity.json +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formSample.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.controller.js +72 -43
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.controller.ts +90 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.view.xml +12 -3
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +4 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +9 -3
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/TableFilterBar.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/TableFilterBar.view.xml +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/localService/RootEntity.json +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/localService/ValueHelpEntity.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/localService/service.cds +94 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/manifest.json +79 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableFilterBar.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.js +694 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.ts +819 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/AppStateHandler.spec.js +51 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/AppStateHandler.spec.ts +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.js +26 -15
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.ts +28 -15
- package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.ts +202 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.js +54 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.ts +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.js +5 -11
- package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.ts +8 -8
- package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.js +736 -619
- package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.ts +703 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +89 -85
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.js +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.ts +97 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.js +492 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.ts +509 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.js +895 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.ts +908 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.js +209 -353
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.ts +222 -362
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.js +508 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.ts +440 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.ts +90 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.ts +10 -10
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.js +286 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.ts +179 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +200 -21
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +168 -17
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.js +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.ts +26 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.js +355 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.ts +287 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.js +542 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.ts +588 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.js +1 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.ts +1 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +371 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +469 -6
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageAvatar.spec.js +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageAvatar.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.js +12 -8
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.ts +8 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +436 -45
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +565 -33
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.js +136 -78
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.ts +315 -199
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Filter.spec.ts.snap +307 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +49 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Table.spec.ts.snap +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService.cds +51 -4
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService2.cds +107 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/ComplexType.cds +39 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/Filter.cds +187 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/MassEditHelper.cds +226 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/SideEffects.cds +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/computedDefaultValueService.cds +99 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +25 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +18 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.ts +4 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/DynamicAnnotationPathHelper.spec.js +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/DynamicAnnotationPathHelper.spec.ts +39 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ExcelFormatHelper.spec.js +20 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ExcelFormatHelper.spec.ts +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.ts +3 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.js +712 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.ts +613 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +344 -225
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.ts +347 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.js +439 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.ts +378 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.js +123 -0
- package/packages/sap.fe.core/test/sap/fe/core/{qunit/helpers/SemanticDateOperators.qunit.js → jest/helpers/SemanticDateOperators.spec.ts} +10 -21
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticKeyHelper.spec.js +215 -0
- package/packages/sap.fe.core/test/sap/fe/core/{qunit/helpers/SemanticKeyHelper.qunit.js → jest/helpers/SemanticKeyHelper.spec.ts} +58 -55
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.js +125 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.ts +142 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/MassEditHelper.spec.ts.snap +263 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/CacheHandlerTest.spec.js +871 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/CacheHandlerTest.spec.ts +899 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/NavigationServiceFactory.spec.js +46 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/NavigationServiceFactory.spec.ts +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +120 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.ts +96 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/ShellServicesFactory.spec.js +86 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/ShellServicesFactory.spec.ts +72 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +16 -44
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +22 -60
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.js +4 -4
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.ts +9 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/type/ComplexType.spec.js +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/type/ComplexType.spec.ts +51 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +0 -105
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.98.json +0 -11
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.99.json +534 -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/Chart.metadata-dbg.js +14 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI-dbg.js +15 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.ts +9 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +37 -3
- 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 +27 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.fragment.xml +4 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata-dbg.js +17 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.ts +17 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +35 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +41 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.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 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +50 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.fragment.xml +65 -75
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +55 -51
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI-dbg.js +83 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI.ts +29 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +11 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata-dbg.js +2 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI-dbg.js +99 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI.ts +32 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +67 -7
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.ts +60 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +26 -34
- 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 +6 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +38 -4
- 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 +78 -92
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +55 -68
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +41 -39
- 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 +125 -31
- 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 +16 -42
- 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 +13 -39
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +0 -7
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper-dbg.js +142 -129
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +120 -61
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/form/AddressSection.fragment.xml +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/form/DataFieldCollection.fragment.xml +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper-dbg.js +1 -14
- package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +23 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +29 -17
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +45 -54
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +16 -22
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +14 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/FilterField.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator-dbg.js +3 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.ts +4 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +4 -145
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectStatus.fragment.xml +32 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TextArea.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/fragments/ObjectIdentifierContent.fragment.xml +81 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +64 -30
- 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 +58 -36
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter-dbg.js +4 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.ts +19 -20
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime-dbg.js +2 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.ts +13 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpContent.fragment.xml +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating-dbg.js +17 -7
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.ts +10 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +53 -62
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +2 -2
- 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 +16 -14
- 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 +157 -178
- 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/messagebundle.properties +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +16 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper-dbg.js +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/BulletMicroChart.fragment.xml +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/ComparisonMicroChart.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +277 -209
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +5 -16
- package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +17 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +0 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime-dbg.js +27 -18
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +196 -139
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper-dbg.js +12 -14
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime-dbg.js +13 -15
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +113 -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.jsmeta.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 +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.js +32 -20
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.ts +24 -12
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.js +15 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.ts +18 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonHelper.spec.js +69 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonHelper.spec.ts +32 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +6 -180
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +6 -177
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.ts +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.ts +1 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.js +51 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.ts +48 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterUtils.spec.js +133 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormContainerAPI.spec.js +34 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormContainerAPI.spec.ts +23 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormMacro.spec.js +49 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormMacro.spec.ts +41 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.js +105 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.ts +53 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.ts +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.js +15 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.ts +13 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.ts +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.js +2 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.ts +3 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +14 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +18 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.js +140 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.ts +144 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.js +445 -635
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.ts +528 -719
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.js +83 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.ts +101 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.ts +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartMacro.spec.ts.snap +75 -7
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/CollectionField.spec.ts.snap +26 -11
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +42 -304
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +6 -6
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterBarMacro.spec.ts.snap +12 -12
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +3 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FormMacro.spec.ts.snap +150 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/KPITag.spec.ts.snap +4 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/MicroChart.spec.ts.snap +39 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +4 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +125 -51
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/Table.spec.ts.snap +1455 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Chart.cds +56 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +12 -59
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Form.cds +129 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/MicroChart.cds +14 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +55 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/simpleFieldMacro.cds +10 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +2 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +15 -8
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +12 -34
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +21 -38
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +2 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/__snapshots__/columnWidth.spec.ts.snap +54 -14
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.js +17 -7
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.ts +18 -11
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/data/columnWidth.cds +26 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +145 -17
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +176 -18
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +813 -111
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/data/tabledelegate.cds +9 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +0 -56
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +0 -321
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormContainerTemplating.qunit.js +1 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplating.qunit.js +10 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartHelperForTemplate.qunit.js +1 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableRuntime.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +130 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.99.json +343 -0
- 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/NavigationHandler-dbg.js +0 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler.js +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 +3 -3
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +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/src/sap/fe/navigation/resources.json +4 -4
- 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 +2 -2
- 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/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/Component-dbg.js +8 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +8 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +11 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +114 -29
- 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/IntentBasedNavigation-dbg.js +10 -10
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share-dbg.js +7 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +75 -53
- 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 +14 -23
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +8 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +3 -3
- 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 +1 -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/ObjectPage.view.xml +8 -45
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +17 -67
- 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/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +24 -12
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +5 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +33 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeadingAvatar.fragment.xml +17 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +18 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +3 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +3 -3
- 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 +7 -5
- 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 +24 -22
- 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/messagebundle.properties +14 -30
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ar.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_bg.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ca.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cs.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cy.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_da.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_de.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_el.properties +25 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_GB.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es_MX.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_et.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fi.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr_CA.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hi.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hr.properties +25 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hu.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_id.properties +26 -8
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_it.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_iw.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_kk.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ko.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lt.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lv.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ms.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_nl.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_no.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pl.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt.properties +27 -9
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt_PT.properties +25 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ro.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ru.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sh.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sk.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sl.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sv.properties +25 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_th.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_uk.properties +25 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_vi.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_CN.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_TW.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +127 -113
- 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/ListReport/overrides/IntentBasedNavigation.spec.js +59 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.ts +54 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.js +85 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.ts +89 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.js +482 -259
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.ts +442 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/AnnotationHelper.spec.js +99 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/AnnotationHelper.spec.ts +82 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Heading.spec.js +50 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Heading.spec.ts +32 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/Heading.spec.ts.snap +43 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/Sections.spec.ts.snap +9 -7
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.js +2 -2
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.ts +4 -3
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.99.json +335 -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/FeMocks-dbg.js +66 -0
- package/packages/sap.fe.test/src/sap/fe/test/FeMocks.js +5 -0
- package/packages/sap.fe.test/src/sap/fe/test/FeMocks.ts +77 -0
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +78 -22
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +66 -22
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +6 -4
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +44 -21
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +28 -8
- package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +1 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +14 -2
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions-dbg.js +16 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +0 -19
- package/packages/sap.fe.test/src/sap/fe/test/api/TableActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions-dbg.js +3 -4
- package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder-dbg.js +4 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner-dbg.js +6 -3
- package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner.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 -2
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +39 -20
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +4 -4
- 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 +65 -28
- 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.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.js +0 -115
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.ts +0 -95
- package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/ExcelFormatHelper.qunit.js +0 -19
- package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/StableIdHelper.qunit.js +0 -301
- package/packages/sap.fe.core/test/sap/fe/core/qunit/services/CacheHandlerTest.qunit.js +0 -924
- package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime-dbg.js +0 -46
- package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime.js +0 -6
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +0 -94
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +0 -70
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.js +0 -68
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.ts +0 -65
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +0 -607
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit-dbg.js +0 -96
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit.js +0 -6
|
@@ -109,7 +109,18 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/ui/base/BindingPars
|
|
|
109
109
|
|
|
110
110
|
expect(dualNEqualityExpression.formatter(123, 136)).toEqual(true); // (123 === 137) !== (137 === 137) -> false !== true -> true
|
|
111
111
|
|
|
112
|
-
expect(dualNEqualityExpression.formatter(137, 137)).toEqual(true);
|
|
112
|
+
expect(dualNEqualityExpression.formatter(137, 137)).toEqual(true); // comparing with boolean constants
|
|
113
|
+
|
|
114
|
+
var equalCompare = "{= 123 === %{foo}}";
|
|
115
|
+
var notEqualCompare = "{= 123 !== %{foo}}";
|
|
116
|
+
expect(compileBinding(equal(equal(123, bindingExpression("foo")), constant(true)))).toEqual(equalCompare);
|
|
117
|
+
expect(compileBinding(equal(equal(123, bindingExpression("foo")), constant(false)))).toEqual(notEqualCompare);
|
|
118
|
+
expect(compileBinding(equal(constant(true), equal(123, bindingExpression("foo"))))).toEqual(equalCompare);
|
|
119
|
+
expect(compileBinding(equal(constant(false), equal(123, bindingExpression("foo"))))).toEqual(notEqualCompare);
|
|
120
|
+
expect(compileBinding(notEqual(equal(123, bindingExpression("foo")), constant(true)))).toEqual(notEqualCompare);
|
|
121
|
+
expect(compileBinding(notEqual(equal(123, bindingExpression("foo")), constant(false)))).toEqual(equalCompare);
|
|
122
|
+
expect(compileBinding(notEqual(constant(true), equal(123, bindingExpression("foo"))))).toEqual(notEqualCompare);
|
|
123
|
+
expect(compileBinding(notEqual(constant(false), equal(123, bindingExpression("foo"))))).toEqual(equalCompare);
|
|
113
124
|
});
|
|
114
125
|
it("Data model definition", function () {
|
|
115
126
|
expect(compileBinding(bindingExpression("editMode", "ui"))).toEqual("{ui>editMode}");
|
|
@@ -228,11 +239,11 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/ui/base/BindingPars
|
|
|
228
239
|
};
|
|
229
240
|
|
|
230
241
|
fakeFormatter.__functionName = "MyFormatterName";
|
|
231
|
-
expect(compileBinding(formatResult([bindingExpression("editMode", "ui")], fakeFormatter))).toEqual("{path:'ui>editMode', targetType
|
|
242
|
+
expect(compileBinding(formatResult([bindingExpression("editMode", "ui")], fakeFormatter))).toEqual("{path: 'ui>editMode', targetType: 'any', formatter: 'MyFormatterName'}");
|
|
232
243
|
expect(compileBinding(formatResult(["Yellow"], fakeFormatter))).toEqual("{value: 'Yellow', formatter: 'MyFormatterName'}"); //??
|
|
233
244
|
|
|
234
|
-
expect(compileBinding(formatResult(["Yellow"], fakeFormatter, fakeEntityType))).toEqual("{parts:[{value: 'Yellow'},{path:'ID', targetType
|
|
235
|
-
expect(compileBinding(formatResult([bindingExpression("Hello")], fakeFormatter, fakeEntityType))).toEqual("{path:'Hello', targetType
|
|
245
|
+
expect(compileBinding(formatResult(["Yellow"], fakeFormatter, fakeEntityType))).toEqual("{parts: [{value: 'Yellow'}, {path: 'ID', targetType: 'any'}, {path: 'Toto', targetType: 'any'}], formatter: 'MyFormatterName'}");
|
|
246
|
+
expect(compileBinding(formatResult([bindingExpression("Hello")], fakeFormatter, fakeEntityType))).toEqual("{path: 'Hello', targetType: 'any', formatter: 'MyFormatterName'}");
|
|
236
247
|
|
|
237
248
|
var fakeFormatter2 = function (isEditable, bool, number) {
|
|
238
249
|
// Do Nothing
|
|
@@ -240,7 +251,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/ui/base/BindingPars
|
|
|
240
251
|
};
|
|
241
252
|
|
|
242
253
|
fakeFormatter2.__functionName = "MyFormatterName";
|
|
243
|
-
expect(compileBinding(formatResult(["Yellow", false, 42], fakeFormatter2))).toEqual("{parts:[{value: 'Yellow'},{value: 'false'},{value: 42}], formatter: 'MyFormatterName'}");
|
|
254
|
+
expect(compileBinding(formatResult(["Yellow", false, 42], fakeFormatter2))).toEqual("{parts: [{value: 'Yellow'}, {value: 'false'}, {value: 42}], formatter: 'MyFormatterName'}");
|
|
244
255
|
|
|
245
256
|
var fakeFormatter3 = function (bool, number) {
|
|
246
257
|
// Do Nothing
|
|
@@ -248,14 +259,14 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/ui/base/BindingPars
|
|
|
248
259
|
};
|
|
249
260
|
|
|
250
261
|
fakeFormatter3.__functionName = "MyFormatterName3";
|
|
251
|
-
expect(compileBinding(formatResult([bindingExpression("somethingBoolean"), 42], fakeFormatter3, fakeEntityType))).toEqual("{parts:[{path:'somethingBoolean', targetType
|
|
262
|
+
expect(compileBinding(formatResult([bindingExpression("somethingBoolean"), 42], fakeFormatter3, fakeEntityType))).toEqual("{parts: [{path: 'somethingBoolean', targetType: 'any'}, {value: 42}], formatter: 'MyFormatterName3'}");
|
|
252
263
|
expect(compileBinding(formatResult([bindingExpression("somethingBoolean"), unresolveableExpression], fakeFormatter3, fakeEntityType))).toEqual(undefined);
|
|
253
264
|
});
|
|
254
265
|
it("Complex type call", function () {
|
|
255
|
-
expect(compileBinding(addTypeInformation([bindingExpression("value")], "sap.ui.model.odata.type.Unit"))).toEqual("{path:'value', targetType
|
|
256
|
-
expect(compileBinding(addTypeInformation([bindingExpression("value"), bindingExpression("unit")], "sap.ui.model.odata.type.Unit"))).toEqual("{mode:'TwoWay', parts:[{path:'value', targetType
|
|
257
|
-
expect(compileBinding(addTypeInformation([bindingExpression("value"), bindingExpression("currency")], "sap.ui.model.odata.type.Currency"))).toEqual("{mode:'TwoWay', parts:[{path:'value', targetType
|
|
258
|
-
expect(compileBinding(addTypeInformation([bindingExpression("value"), bindingExpression("currency")], "defaultType"))).toEqual("{mode:'TwoWay', parts:[{path:'value', targetType
|
|
266
|
+
expect(compileBinding(addTypeInformation([bindingExpression("value")], "sap.ui.model.odata.type.Unit"))).toEqual("{path: 'value', targetType: 'any', type: 'sap.ui.model.odata.type.Unit'}");
|
|
267
|
+
expect(compileBinding(addTypeInformation([bindingExpression("value"), bindingExpression("unit")], "sap.ui.model.odata.type.Unit"))).toEqual("{mode:'TwoWay', parts:[{path: 'value', targetType: 'any'},{path: 'unit', targetType: 'any'},{mode:'OneTime',path:'/##@@requestUnitsOfMeasure',targetType:'any'}],type:'sap.ui.model.odata.type.Unit'}");
|
|
268
|
+
expect(compileBinding(addTypeInformation([bindingExpression("value"), bindingExpression("currency")], "sap.ui.model.odata.type.Currency"))).toEqual("{mode:'TwoWay', parts:[{path: 'value', targetType: 'any'},{path: 'currency', targetType: 'any'},{mode:'OneTime',path:'/##@@requestCurrencyCodes',targetType:'any'}],type:'sap.ui.model.odata.type.Currency'}");
|
|
269
|
+
expect(compileBinding(addTypeInformation([bindingExpression("value"), bindingExpression("currency")], "defaultType"))).toEqual("{mode:'TwoWay', parts:[{path: 'value', targetType: 'any'},{path: 'currency', targetType: 'any'}], type: 'defaultType'}");
|
|
259
270
|
expect(compileBinding(addTypeInformation([bindingExpression("value"), bindingExpression("currency"), unresolveableExpression], "defaultType"))).toEqual(undefined);
|
|
260
271
|
});
|
|
261
272
|
it("If-Else operator", function () {
|
|
@@ -269,10 +280,10 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/ui/base/BindingPars
|
|
|
269
280
|
it("If-Else operator can simplify some calls", function () {
|
|
270
281
|
expect(compileBinding(ifElse(equal(bindingExpression("/editMode", "ui"), constant("Editable")), constant(true), constant(false)))).toEqual("{= %{ui>/editMode} === 'Editable'}");
|
|
271
282
|
expect(compileBinding(ifElse(equal(bindingExpression("/editMode", "ui"), constant("Editable")), constant(false), constant(true)))).toEqual("{= %{ui>/editMode} !== 'Editable'}");
|
|
272
|
-
expect(compileBinding(ifElse(bindingExpression("isEditable"), constant(true), bindingExpression("BoolValue")))).toEqual("{= %{isEditable}
|
|
283
|
+
expect(compileBinding(ifElse(bindingExpression("isEditable"), constant(true), bindingExpression("BoolValue")))).toEqual("{= %{isEditable} || %{BoolValue}}");
|
|
273
284
|
expect(compileBinding(ifElse(bindingExpression("isEditable"), constant(false), bindingExpression("BoolValue")))).toEqual("{= !%{isEditable} && %{BoolValue}}");
|
|
274
285
|
expect(compileBinding(ifElse(not(bindingExpression("condition")), constant("a"), constant("b")))).toEqual("{= %{condition} ? 'b' : 'a'}");
|
|
275
|
-
expect(compileBinding(ifElse(bindingExpression("isEditable"), bindingExpression("BoolValue"), constant(true)))).toEqual("{=
|
|
286
|
+
expect(compileBinding(ifElse(bindingExpression("isEditable"), bindingExpression("BoolValue"), constant(true)))).toEqual("{= !%{isEditable} || %{BoolValue}}");
|
|
276
287
|
expect(compileBinding(ifElse(bindingExpression("isEditable"), bindingExpression("BoolValue"), constant(false)))).toEqual("{= %{isEditable} && %{BoolValue}}"); // "Optimize nested if-else (condition)"
|
|
277
288
|
|
|
278
289
|
expect(compileBinding(ifElse(ifElse(bindingExpression("condition"), true, false), constant("a"), constant("b")))).toEqual("{= %{condition} ? 'a' : 'b'}"); //"Optimize nested if-else (condition)"
|
|
@@ -536,8 +547,8 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/ui/base/BindingPars
|
|
|
536
547
|
};
|
|
537
548
|
|
|
538
549
|
fakeFormatter.__functionName = "MyFormatterName";
|
|
539
|
-
expect(compileBinding(transformRecursively(formatResult([bindingExpression("editMode", "ui")], fakeFormatter), "Binding", transformBinding))).toEqual("{path:'newModel>editMode', targetType
|
|
540
|
-
expect(compileBinding(transformRecursively(addTypeInformation([bindingExpression("value", "ui"), bindingExpression("unit", "ui")], "sap.ui.model.odata.type.Unit"), "Binding", transformBinding))).toEqual("{mode:'TwoWay', parts:[{path:'newModel>value', targetType
|
|
550
|
+
expect(compileBinding(transformRecursively(formatResult([bindingExpression("editMode", "ui")], fakeFormatter), "Binding", transformBinding))).toEqual("{path: 'newModel>editMode', targetType: 'any', formatter: 'MyFormatterName'}");
|
|
551
|
+
expect(compileBinding(transformRecursively(addTypeInformation([bindingExpression("value", "ui"), bindingExpression("unit", "ui")], "sap.ui.model.odata.type.Unit"), "Binding", transformBinding))).toEqual("{mode:'TwoWay', parts:[{path: 'newModel>value', targetType: 'any'},{path: 'newModel>unit', targetType: 'any'},{mode:'OneTime',path:'/##@@requestUnitsOfMeasure',targetType:'any'}],type:'sap.ui.model.odata.type.Unit'}");
|
|
541
552
|
expect(compileBinding(transformRecursively(equal(ifElse(bindingExpression("isEditable"), bindingExpression("A"), bindingExpression("B")), constant("A")), "Binding", transformBinding))).toEqual("{= (%{isEditable} ? %{A} : %{B}) === 'A'}");
|
|
542
553
|
expect(compileBinding(transformRecursively(equal(ifElse(bindingExpression("isEditable"), bindingExpression("A"), bindingExpression("B")), constant("A")), "Binding", transformBinding, true))).toEqual("{= (%{newModel>isEditable} ? %{newModel>A} : %{newModel>B}) === 'A'}");
|
|
543
554
|
expect(compileBinding(transformRecursively(ifElse(bindingExpression("isEditable"), bindingExpression("A"), bindingExpression("B")), "Binding", transformBinding))).toEqual("{= %{isEditable} ? %{newModel>A} : %{newModel>B}}"); // Transformation also can trigger simplification
|
|
@@ -556,4 +567,4 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/ui/base/BindingPars
|
|
|
556
567
|
});
|
|
557
568
|
});
|
|
558
569
|
}, false);
|
|
559
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJpbmRpbmdFeHByZXNzaW9uLnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsImV4cGVjdCIsImNvbXBpbGVCaW5kaW5nIiwiY29uc3RhbnQiLCJ0b0VxdWFsIiwidW5yZXNvbHZlYWJsZUV4cHJlc3Npb24iLCJ1bmRlZmluZWQiLCJiaW5kaW5nRXhwcmVzc2lvbiIsIm15QmluZGluZ0V4cHJlc3Npb24iLCJ0YXJnZXRUeXBlIiwiZm9ybWF0T3B0aW9ucyIsInBhcnNlS2VlcHNFbXB0eVN0cmluZyIsImNvbnN0cmFpbnRzIiwic2NhbGUiLCJwcmVjaXNpb24iLCJlcXVhbCIsImlmRWxzZSIsImEiLCJiIiwibm90Iiwibm90RXF1YWwiLCJkdWFsRXF1YWxpdHkiLCJkdWFsTkVxdWFsaXR5IiwiZHVhbEVxdWFsaXR5RXhwcmVzc2lvbiIsIkJpbmRpbmdQYXJzZXIiLCJjb21wbGV4UGFyc2VyIiwiZm9ybWF0dGVyIiwiZHVhbE5FcXVhbGl0eUV4cHJlc3Npb24iLCJfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsIiwiaXNUcnV0aHkiLCJhbmQiLCJmYWtlRm9ybWF0dGVyIiwiaXNFZGl0YWJsZSIsIl9fZnVuY3Rpb25OYW1lIiwiZm9ybWF0UmVzdWx0IiwiYWRkVHlwZUluZm9ybWF0aW9uIiwib3IiLCJncmVhdGVyVGhhbiIsImdyZWF0ZXJPckVxdWFsIiwibGVzc09yRXF1YWwiLCJsZXNzVGhhbiIsImZha2VFbnRpdHlUeXBlIiwia2V5cyIsIm5hbWUiLCJmYWtlRm9ybWF0dGVyMiIsImJvb2wiLCJudW1iZXIiLCJmYWtlRm9ybWF0dGVyMyIsImNvbmRpdGlvbiIsIm9uVHJ1ZSIsIm9uRmFsc2UiLCJyZWYiLCJmb28iLCJiYXIiLCJvYmoiLCJjb250ZXh0cyIsImZuIiwiaW52b2NhdGlvbkdyb3VwaW5nIiwibGFiZWwiLCJtb2RlbCIsImlzTmF2aWdhYmxlIiwibXlIYW5kbGVyIiwiYyIsIm15SGFuZGxlck9iaiIsImNvbnRleHQiLCJleHByZXNzaW9uIiwiY29uY2F0IiwibGVuZ3RoIiwiaXNFbXB0eSIsInRyYW5zZm9ybUJpbmRpbmciLCJiaW5kaW5nIiwibW9kZWxOYW1lIiwidHJhbnNmb3JtQmluZGluZ1RvU2FtZVZhbHVlIiwicGF0aCIsInRyYW5zZm9ybVJlY3Vyc2l2ZWx5IiwicmVzb2x2ZUJpbmRpbmdTdHJpbmciXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdDQUEsRUFBQUEsUUFBUSxDQUFDLDZCQUFELEVBQWdDLFlBQVc7QUFDbERDLElBQUFBLEVBQUUsQ0FBQyxXQUFELEVBQWMsWUFBTTtBQUNyQkMsTUFBQUEsTUFBTSxDQUFDQyxjQUFjLENBQUNDLFFBQVEsQ0FBQyxHQUFELENBQVQsQ0FBZixDQUFOLENBQXNDQyxPQUF0QyxDQUE4QyxHQUE5QztBQUNBSCxNQUFBQSxNQUFNLENBQUNDLGNBQWMsQ0FBQ0MsUUFBUSxDQUFDLENBQUQsQ0FBVCxDQUFmLENBQU4sQ0FBb0NDLE9BQXBDLENBQTRDLEdBQTVDO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDQyxRQUFRLENBQUMsSUFBRCxDQUFULENBQWYsQ0FBTixDQUF1Q0MsT0FBdkMsQ0FBK0MsTUFBL0M7QUFDQUgsTUFBQUEsTUFBTSxDQUFDQyxjQUFjLENBQUMsSUFBRCxDQUFmLENBQU4sQ0FBNkJFLE9BQTdCLENBQXFDLE1BQXJDO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDRyx1QkFBRCxDQUFmLENBQU4sQ0FBZ0RELE9BQWhELENBQXdERSxTQUF4RDtBQUNBLEtBTkMsQ0FBRjtBQVFBTixJQUFBQSxFQUFFLENBQUMscUJBQUQsRUFBd0IsWUFBTTtBQUMvQkMsTUFBQUEsTUFBTSxDQUFDQyxjQUFjLENBQUNLLGlCQUFpQixDQUFDLFFBQUQsQ0FBbEIsQ0FBZixDQUFOLENBQW9ESCxPQUFwRCxDQUE0RCxVQUE1RDtBQUNBSCxNQUFBQSxNQUFNLENBQUNDLGNBQWMsQ0FBQ0ssaUJBQWlCLENB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QUEsRUFBRSxDQUFDLGlDQUFELEVBQW9DLFlBQU07QUFDM0M7QUFDQUMsTUFBQUEsTUFBTSxDQUFDQyxjQUFjLENBQUN5RSxvQkFBb0IsQ0FBQyxNQUFELEVBQVMsU0FBVCxDQUFyQixDQUFmLENBQU4sQ0FBZ0V2RSxPQUFoRSxDQUF3RSxNQUF4RTtBQUNBSCxNQUFBQSxNQUFNLENBQUNDLGNBQWMsQ0FBQ3lFLG9CQUFvQixDQUFDLE9BQUQsRUFBVSxTQUFWLENBQXJCLENBQWYsQ0FBTixDQUFpRXZFLE9BQWpFLENBQXlFLE9BQXpFO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDeUUsb0JBQW9CLENBQUMsSUFBRCxFQUFPLFNBQVAsQ0FBckIsQ0FBZixDQUFOLENBQThEdkUsT0FBOUQsQ0FBc0UsTUFBdEU7QUFDQUgsTUFBQUEsTUFBTSxDQUFDQyxjQUFjLENBQUN5RSxvQkFBb0IsQ0FBQyxLQUFELEVBQVEsU0FBUixDQUFyQixDQUFmLENBQU4sQ0FBK0R2RSxPQUEvRCxDQUF1RSxPQUF2RTtBQUNBSCxNQUFBQSxNQUFNLENBQUNDLGNBQWMsQ0FBQ3lFLG9CQUFvQixDQUFDLE1BQUQsQ0FBckIsQ0FBZixDQUFOLENBQXFEdkUsT0FBckQsQ0FBNkQsTUFBN0Q7QUFDQUgsTUFBQUEsTUFBTSxDQUFDQyxjQUFjLENBQUN5RSxvQkFBb0IsQ0FBQyxrQkFBRCxFQUFxQixTQUFyQixDQUFyQixDQUFmLENBQU4sQ0FBNEV2RSxPQUE1RSxDQUFvRixrQkFBcEY7QUFDQSxLQVJDLENBQUY7QUFTQSxHQWp5Qk8sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0YW5kLFxuXHRiaW5kaW5nRXhwcmVzc2lvbixcblx0Y29tcGlsZUJpbmRpbmcsXG5cdGNvbnN0YW50LFxuXHRlcXVhbCxcblx0RXhwcmVzc2lvbixcblx0X2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbCxcblx0Zm4sXG5cdGZvcm1hdFJlc3VsdCxcblx0YWRkVHlwZUluZm9ybWF0aW9uLFxuXHRncmVhdGVyT3JFcXVhbCxcblx0Z3JlYXRlclRoYW4sXG5cdGlmRWxzZSxcblx0bGVzc09yRXF1YWwsXG5cdGxlc3NUaGFuLFxuXHRub3QsXG5cdG5vdEVxdWFsLFxuXHRvcixcblx0cmVmLFxuXHRjb25jYXQsXG5cdGxlbmd0aCxcblx0aXNFbXB0eSxcblx0dHJhbnNmb3JtUmVjdXJzaXZlbHksXG5cdEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbixcblx0cmVzb2x2ZUJpbmRpbmdTdHJpbmcsXG5cdHVucmVzb2x2ZWFibGVFeHByZXNzaW9uLFxuXHRpc1RydXRoeSxcblx0YW5ub3RhdGlvbkV4cHJlc3Npb25cbn0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCB7IEVudGl0eVR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0XCI7XG5pbXBvcnQgeyBCaW5kaW5nUGFyc2VyIH0gZnJvbSBcInNhcC91aS9iYXNlXCI7XG5cbmRlc2NyaWJlKFwiQmluZGluZyBFeHByZXNzaW9ucyBTdXBwb3J0XCIsIGZ1bmN0aW9uKCkge1xuXHRpdChcIkNvbnN0YW50c1wiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGNvbnN0YW50KFwiMVwiKSkpLnRvRXF1YWwoXCIxXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhjb25zdGFudCgxKSkpLnRvRXF1YWwoXCIxXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhjb25zdGFudCh0cnVlKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0cnVlKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHVucmVzb2x2ZWFibGVFeHByZXNzaW9uKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHR9KTtcblxuXHRpdChcIkJpbmRpbmcgRXhwcmVzc2lvbnNcIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhiaW5kaW5nRXhwcmVzc2lvbihcIm15UGF0aFwiKSkpLnRvRXF1YWwoXCJ7bXlQYXRofVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYmluZGluZ0V4cHJlc3Npb24oXCJteVBhdGhcIiksIHRydWUpKS50b0VxdWFsKFwiJXtteVBhdGh9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhiaW5kaW5nRXhwcmVzc2lvbihcIm15UGF0aFwiKSwgdHJ1ZSwgdHJ1ZSkpLnRvRXF1YWwoXCIke215UGF0aH1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGJpbmRpbmdFeHByZXNzaW9uKFwibXlQYXRoXCIsIFwibXlNb2RlbFwiKSkpLnRvRXF1YWwoXCJ7bXlNb2RlbD5teVBhdGh9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhiaW5kaW5nRXhwcmVzc2lvbihcIm15UGF0aFwiLCBcIm15TW9kZWxcIiksIHRydWUpKS50b0VxdWFsKFwiJXtteU1vZGVsPm15UGF0aH1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGJpbmRpbmdFeHByZXNzaW9uKFwibXlQYXRoXCIsIFwibXlNb2RlbFwiKSwgdHJ1ZSwgdHJ1ZSkpLnRvRXF1YWwoXCIke215TW9kZWw+bXlQYXRofVwiKTtcblx0XHQvLyBOb3Qgc28gZ3JlYXQgdXNhZ2UgdGhhdCB3ZSB1c2UgaW4gc29tZSBwbGFjZVxuXHRcdGNvbnN0IG15QmluZGluZ0V4cHJlc3Npb246IEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbjxhbnk+ID0gYmluZGluZ0V4cHJlc3Npb24oXCJteVBhdGhcIiwgXCJteU1vZGVsXCIpIGFzIEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbjxcblx0XHRcdGFueVxuXHRcdD47XG5cdFx0bXlCaW5kaW5nRXhwcmVzc2lvbi50YXJnZXRUeXBlID0gXCJib29sZWFuXCI7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG15QmluZGluZ0V4cHJlc3Npb24pKS50b0VxdWFsKFwie3BhdGg6ICdteU1vZGVsPm15UGF0aCcsIHRhcmdldFR5cGU6ICdib29sZWFuJ31cIik7XG5cdFx0ZGVsZXRlIG15QmluZGluZ0V4cHJlc3Npb24udGFyZ2V0VHlwZTtcblx0XHRteUJpbmRpbmdFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnMgPSB7XG5cdFx0XHRwYXJzZUtlZXBzRW1wdHlTdHJpbmc6IHRydWVcblx0XHR9O1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhteUJpbmRpbmdFeHByZXNzaW9uKSkudG9FcXVhbChcIntwYXRoOiAnbXlNb2RlbD5teVBhdGgnLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VLZWVwc0VtcHR5U3RyaW5nOiB0cnVlfX1cIik7XG5cdFx0ZGVsZXRlIG15QmluZGluZ0V4cHJlc3Npb24uZm9ybWF0T3B0aW9ucztcblx0XHRteUJpbmRpbmdFeHByZXNzaW9uLmNvbnN0cmFpbnRzID0ge307XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG15QmluZGluZ0V4cHJlc3Npb24pKS50b0VxdWFsKFwie3BhdGg6ICdteU1vZGVsPm15UGF0aCd9XCIpO1xuXHRcdG15QmluZGluZ0V4cHJlc3Npb24uY29uc3RyYWludHMuc2NhbGUgPSAxO1xuXHRcdG15QmluZGluZ0V4cHJlc3Npb24uY29uc3RyYWludHMucHJlY2lzaW9uID0gNTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobXlCaW5kaW5nRXhwcmVzc2lvbikpLnRvRXF1YWwoXCJ7cGF0aDogJ215TW9kZWw+bXlQYXRoJywgY29uc3RyYWludHM6IHtzY2FsZTogMSwgcHJlY2lzaW9uOiA1fX1cIik7XG5cdH0pO1xuXG5cdGl0KFwiQ29tcGFyaXNvblwiLCAoKSA9PiB7XG5cdFx0Ly8gXCJlcXVhbChpZkVsc2UoeCwgYSwgYSksIGEpIC0tPiB0cnVlXCJcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiaXNFZGl0YWJsZVwiKSwgY29uc3RhbnQoXCJBXCIpLCBjb25zdGFudChcIkFcIikpLCBjb25zdGFudChcIkFcIikpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0Ly9cImVxdWFsKGlmRWxzZSh4LCBiLCBiKSwgYSkgLS0+IGZhbHNlXCI7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiksIGNvbnN0YW50KFwiQlwiKSwgY29uc3RhbnQoXCJCXCIpKSwgY29uc3RhbnQoXCJBXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcImZhbHNlXCJcblx0XHQpO1xuXHRcdC8vXCIodXNpbmcgY29uc3RhbnRzKSBlcXVhbChpZkVsc2UoeCwgYSwgYiksIGEpIC0tPiB4XCI7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiksIGNvbnN0YW50KFwiQVwiKSwgY29uc3RhbnQoXCJCXCIpKSwgY29uc3RhbnQoXCJBXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIntpc0VkaXRhYmxlfVwiXG5cdFx0KTtcblx0XHQvL1wiKHVzaW5nIGJpbmRpbmcgZXhwcmVzc2lvbnMpIGVxdWFsKGlmRWxzZSh4LCBhLCBiKSwgYSkgLS0+IHggfHwgYiA9PT0gYVwiO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHRlcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSksIGJpbmRpbmdFeHByZXNzaW9uKFwiQVwiKSlcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXCJ7PSAle2lzRWRpdGFibGV9IHx8ICV7Qn0gPT09ICV7QX19XCIpO1xuXG5cdFx0Ly9cImVxdWFsKGlmRWxzZSh4LCBhLCBiKSwgYykgLS0+IG5vIHJlZHVjdGlvblwiO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKGVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJCXCIpKSwgY29uc3RhbnQoXCJBXCIpKSlcblx0XHQpLnRvRXF1YWwoXCJ7PSAoJXtpc0VkaXRhYmxlfSA/ICV7QX0gOiAle0J9KSA9PT0gJ0EnfVwiKTtcblxuXHRcdGNvbnN0IGEgPSBpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSk7XG5cdFx0Y29uc3QgYiA9IGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJCXCIpKTtcblx0XHQvL1wiZXF1YWwoYSwgYSkgLS0+IHRydWVcIlxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChhLCBiKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdC8vIFwiZXF1YWwobnVsbCwgbnVsbCkgLS0+IHRydWVcIlxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChjb25zdGFudChudWxsKSwgY29uc3RhbnQobnVsbCkpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0Ly8gc2ltcGxpZnkgaWYgZWxzZSB3aGVuIG9uVHJ1ZSBhbmQgb25GYWxzZSBjYW5ub3QgYmUgZXF1YWwgdG8gcmlnaHRFeHByZXNzaW9uIGluIGNhc2Vcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBjb25zdGFudChcIjBcIiksIGNvbnN0YW50KFwiMVwiKSksIGNvbnN0YW50KFwiMlwiKSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoZXF1YWwoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSksIGJpbmRpbmdFeHByZXNzaW9uKFwiQ1wiKSkpXG5cdFx0KS5ub3QudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIGNvbnN0YW50KFwiMFwiKSwgY29uc3RhbnQoXCIxXCIpKSwgYmluZGluZ0V4cHJlc3Npb24oXCJiYXJcIikpKSkudG9FcXVhbChcblx0XHRcdFwiez0gKCV7Zm9vfSA/ICcwJyA6ICcxJykgPT09ICV7YmFyfX1cIlxuXHRcdCk7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBjb25zdGFudChcIjBcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSksIGNvbnN0YW50KFwiMFwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle2Zvb30gfHwgJXtCfSA9PT0gJzAnfVwiXG5cdFx0KTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIiksIGNvbnN0YW50KFwiMVwiKSksIGNvbnN0YW50KFwiMVwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAhJXtmb299IHx8ICV7Qn0gPT09ICcxJ31cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgY29uc3RhbnQoXCIxXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIikpLCBjb25zdGFudChcIjFcIikpKSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtmb299IHx8ICV7Qn0gPT09ICcxJ31cIlxuXHRcdCk7XG5cblx0XHQvLyBcIm5vdEVxdWFsKGEsIGEpIC0tPiBmYWxzZVwiXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdEVxdWFsKGEsIGIpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdC8vIFwibm90RXF1YWwobnVsbCwgbnVsbCkgLS0+IGZhbHNlXCJcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90RXF1YWwoY29uc3RhbnQobnVsbCksIGNvbnN0YW50KG51bGwpKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhub3RFcXVhbCh1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiwgY29uc3RhbnQoMykpKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdEVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgY29uc3RhbnQoXCIwXCIpLCBjb25zdGFudChcIjFcIikpLCBjb25zdGFudChcIjJcIikpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdG5vdEVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJBXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIikpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkNcIikpXG5cdFx0XHQpXG5cdFx0KS5ub3QudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdEVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgY29uc3RhbnQoXCIwXCIpLCBjb25zdGFudChcIjFcIikpLCBiaW5kaW5nRXhwcmVzc2lvbihcImJhclwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAoJXtmb299ID8gJzAnIDogJzEnKSAhPT0gJXtiYXJ9fVwiXG5cdFx0KTtcblxuXHRcdGNvbnN0IGR1YWxFcXVhbGl0eSA9IGNvbXBpbGVCaW5kaW5nKGVxdWFsKGVxdWFsKDEyMywgYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpLCBlcXVhbCgxMzcsIGJpbmRpbmdFeHByZXNzaW9uKFwiYmFyXCIpKSkpO1xuXHRcdGNvbnN0IGR1YWxORXF1YWxpdHkgPSBjb21waWxlQmluZGluZyhub3RFcXVhbChlcXVhbCgxMjMsIGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSwgZXF1YWwoMTM3LCBiaW5kaW5nRXhwcmVzc2lvbihcImJhclwiKSkpKTtcblx0XHRleHBlY3QoZHVhbEVxdWFsaXR5KS50b0VxdWFsKFwiez0gKDEyMyA9PT0gJXtmb299KSA9PT0gKDEzNyA9PT0gJXtiYXJ9KX1cIik7XG5cdFx0ZXhwZWN0KGR1YWxORXF1YWxpdHkpLnRvRXF1YWwoXCJ7PSAoMTIzID09PSAle2Zvb30pICE9PSAoMTM3ID09PSAle2Jhcn0pfVwiKTtcblxuXHRcdGNvbnN0IGR1YWxFcXVhbGl0eUV4cHJlc3Npb24gPSBCaW5kaW5nUGFyc2VyLmNvbXBsZXhQYXJzZXIoZHVhbEVxdWFsaXR5KTtcblx0XHQvLyAoMTIzID09PSAxMjMpID09PSAoMTM3ID09PSAxMzcpIC0+IHRydWUgPT09IHRydWUgLT4gdHJ1ZVxuXHRcdGV4cGVjdChkdWFsRXF1YWxpdHlFeHByZXNzaW9uLmZvcm1hdHRlcigxMjMsIDEzNykpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0Ly8gKDEyMyA9PT0gMTIzKSA9PT0gKDEzNyA9PT0gMTM2KSAtPiB0cnVlID09PSBmYWxzZSAtPiBmYWxzZVxuXHRcdGV4cGVjdChkdWFsRXF1YWxpdHlFeHByZXNzaW9uLmZvcm1hdHRlcigxMjMsIDEzNikpLnRvRXF1YWwoZmFsc2UpO1xuXG5cdFx0Y29uc3QgZHVhbE5FcXVhbGl0eUV4cHJlc3Npb24gPSBCaW5kaW5nUGFyc2VyLmNvbXBsZXhQYXJzZXIoZHVhbE5FcXVhbGl0eSk7XG5cdFx0Ly8gKDEyMyA9PT0gMTIzKSAhPT0gKDEzNyA9PT0gMTM3KSAtPiB0cnVlICE9PSB0cnVlIC0+IGZhbHNlXG5cdFx0ZXhwZWN0KGR1YWxORXF1YWxpdHlFeHByZXNzaW9uLmZvcm1hdHRlcigxMjMsIDEzNykpLnRvRXF1YWwoZmFsc2UpO1xuXHRcdC8vICgxMjMgPT09IDEyMykgIT09ICgxMzcgPT09IDEzNikgLT4gdHJ1ZSAhPT0gZmFsc2UgLT4gdHJ1ZVxuXHRcdGV4cGVjdChkdWFsTkVxdWFsaXR5RXhwcmVzc2lvbi5mb3JtYXR0ZXIoMTIzLCAxMzYpKS50b0VxdWFsKHRydWUpO1xuXHRcdC8vICgxMjMgPT09IDEzNykgIT09ICgxMzcgPT09IDEzNykgLT4gZmFsc2UgIT09IHRydWUgLT4gdHJ1ZVxuXHRcdGV4cGVjdChkdWFsTkVxdWFsaXR5RXhwcmVzc2lvbi5mb3JtYXR0ZXIoMTM3LCAxMzcpKS50b0VxdWFsKHRydWUpO1xuXHR9KTtcblxuXHRpdChcIkRhdGEgbW9kZWwgZGVmaW5pdGlvblwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGJpbmRpbmdFeHByZXNzaW9uKFwiZWRpdE1vZGVcIiwgXCJ1aVwiKSkpLnRvRXF1YWwoXCJ7dWk+ZWRpdE1vZGV9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhiaW5kaW5nRXhwcmVzc2lvbihcIlNhbGVzT3JkZXJcIikpKS50b0VxdWFsKFwie1NhbGVzT3JkZXJ9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhiaW5kaW5nRXhwcmVzc2lvbih1bmRlZmluZWQpKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHR9KTtcblxuXHRpdChcIkNvbnN0YW50IEVxdWFsaXR5XCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoY29uc3RhbnQoXCIxXCIpLCBjb25zdGFudChcIjFcIikpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGNvbnN0YW50KDEpLCBjb25zdGFudCgxKSkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoY29uc3RhbnQoMSksIGNvbnN0YW50KDE1KSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGNvbnN0YW50KHRydWUpLCBjb25zdGFudChmYWxzZSkpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdEVxdWFsKGNvbnN0YW50KFwiMVwiKSwgY29uc3RhbnQoXCIxXCIpKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90RXF1YWwoY29uc3RhbnQoMSksIGNvbnN0YW50KDEpKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90RXF1YWwoY29uc3RhbnQoMSksIGNvbnN0YW50KDE1KSkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90RXF1YWwoY29uc3RhbnQodHJ1ZSksIGNvbnN0YW50KGZhbHNlKSkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwodW5kZWZpbmVkLCB1bmRlZmluZWQpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKHVuZGVmaW5lZCwgdHJ1ZSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKHVuZGVmaW5lZCwgZmFsc2UpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbCh1bmRlZmluZWQsIDEpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbCh1bmRlZmluZWQsIFwiZm9vXCIpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbCh1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiwgXCJmb29cIikpKS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdH0pO1xuXG5cdGl0KFwiRXhwcmVzc2lvbiBFcXVhbGl0eVwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoY29uc3RhbnQodHJ1ZSkgYXMgRXhwcmVzc2lvbjxhbnk+LCBjb25zdGFudCg0KSBhcyBFeHByZXNzaW9uPGFueT4pKS50b0VxdWFsKGZhbHNlKTtcblx0XHRleHBlY3QoX2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbChjb25zdGFudChcIjFcIiksIGNvbnN0YW50KFwiMVwiKSkpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0ZXhwZWN0KF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoY29uc3RhbnQoXCIxXCIpLCBjb25zdGFudChcIjJcIikpKS50b0VxdWFsKGZhbHNlKTtcblx0XHRleHBlY3QoX2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbChjb25zdGFudChcIjFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSkudG9FcXVhbChmYWxzZSk7XG5cdFx0ZXhwZWN0KF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwobm90KGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSwgbm90KGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSkpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0ZXhwZWN0KF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoaXNUcnV0aHkoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpLCBpc1RydXRoeShiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSkpKS50b0VxdWFsKHRydWUpO1xuXHRcdGV4cGVjdChfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsKGlzVHJ1dGh5KGNvbnN0YW50KFwiZm9vXCIpKSwgY29uc3RhbnQodHJ1ZSkpKS50b0VxdWFsKHRydWUpO1xuXHRcdGV4cGVjdChfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSkpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0X2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbChcblx0XHRcdFx0YW5kKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcImJhclwiKSksXG5cdFx0XHRcdGFuZChiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJiYXJcIikpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKHRydWUpO1xuXHRcdGV4cGVjdChcblx0XHRcdF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoXG5cdFx0XHRcdGFuZChiaW5kaW5nRXhwcmVzc2lvbihcImJhclwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpLFxuXHRcdFx0XHRhbmQoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiYmFyXCIpKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbCh0cnVlKTtcblxuXHRcdGNvbnN0IGZha2VGb3JtYXR0ZXIgPSBmdW5jdGlvbihpc0VkaXRhYmxlOiBzdHJpbmcpIHtcblx0XHRcdC8vIERvIE5vdGhpbmdcblx0XHRcdHJldHVybiBcIk5vdGhpbmdcIjtcblx0XHR9O1xuXHRcdGZha2VGb3JtYXR0ZXIuX19mdW5jdGlvbk5hbWUgPSBcIk15Rm9ybWF0dGVyTmFtZVwiO1xuXHRcdGV4cGVjdChcblx0XHRcdF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoXG5cdFx0XHRcdGZvcm1hdFJlc3VsdChbYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpXSwgZmFrZUZvcm1hdHRlciksXG5cdFx0XHRcdGZvcm1hdFJlc3VsdChbYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpXSwgZmFrZUZvcm1hdHRlcilcblx0XHRcdClcblx0XHQpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0X2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbChcblx0XHRcdFx0Zm9ybWF0UmVzdWx0KFtiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwiWFhcIildLCBmYWtlRm9ybWF0dGVyKSxcblx0XHRcdFx0Zm9ybWF0UmVzdWx0KFtiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwidWlcIildLCBmYWtlRm9ybWF0dGVyKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChmYWxzZSk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0X2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbChcblx0XHRcdFx0Zm9ybWF0UmVzdWx0KFtjb25zdGFudChcIiV7dWk+L2VkaXRNb2RlfVwiKV0sIGZha2VGb3JtYXR0ZXIpLFxuXHRcdFx0XHRmb3JtYXRSZXN1bHQoW2JpbmRpbmdFeHByZXNzaW9uKFwiZWRpdE1vZGVcIiwgXCJ1aVwiKV0sIGZha2VGb3JtYXR0ZXIpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKGZhbHNlKTtcblxuXHRcdGV4cGVjdChcblx0XHRcdF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoXG5cdFx0XHRcdGFkZFR5cGVJbmZvcm1hdGlvbihbYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpXSwgXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0XCIpLFxuXHRcdFx0XHRhZGRUeXBlSW5mb3JtYXRpb24oW2JpbmRpbmdFeHByZXNzaW9uKFwiZWRpdE1vZGVcIiwgXCJ1aVwiKV0sIFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdFwiKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbCh0cnVlKTtcblx0XHRleHBlY3QoXG5cdFx0XHRfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsKFxuXHRcdFx0XHRhZGRUeXBlSW5mb3JtYXRpb24oW2JpbmRpbmdFeHByZXNzaW9uKFwiZWRpdE1vZGVcIiwgXCJYWFwiKV0sIFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdFwiKSxcblx0XHRcdFx0YWRkVHlwZUluZm9ybWF0aW9uKFtiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwidWlcIildLCBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlVuaXRcIilcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoZmFsc2UpO1xuXHRcdGV4cGVjdChcblx0XHRcdF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoXG5cdFx0XHRcdGFkZFR5cGVJbmZvcm1hdGlvbihbY29uc3RhbnQoXCIle3VpPi9lZGl0TW9kZX1cIildLCBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlVuaXRcIiksXG5cdFx0XHRcdGFkZFR5cGVJbmZvcm1hdGlvbihbYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpXSwgXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0XCIpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKGZhbHNlKTtcblx0XHRleHBlY3QoXG5cdFx0XHRfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsKFxuXHRcdFx0XHRhZGRUeXBlSW5mb3JtYXRpb24oW2JpbmRpbmdFeHByZXNzaW9uKFwiZWRpdE1vZGVcIiwgXCJ1aVwiKV0sIFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdFwiKSxcblx0XHRcdFx0YWRkVHlwZUluZm9ybWF0aW9uKFtiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwidWlcIildLCBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkN1cnJlbmN5XCIpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKGZhbHNlKTtcblx0fSk7XG5cblx0aXQoXCJBbmQgb3BlcmF0b3JcIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhhbmQoY29uc3RhbnQodHJ1ZSksIGNvbnN0YW50KGZhbHNlKSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFuZChjb25zdGFudCh0cnVlKSwgY29uc3RhbnQodHJ1ZSkpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFuZChjb25zdGFudCh0cnVlKSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpLnRvRXF1YWwoXCJ7U2FsZXNPcmRlcn1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFuZChjb25zdGFudChmYWxzZSksIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFuZChiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiwgXCJ1aVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7dWk+aXNFZGl0YWJsZX0gJiYgJXtTYWxlc09yZGVyfX1cIlxuXHRcdCk7XG5cblx0XHRjb25zdCBhID0gYW5kKGJpbmRpbmdFeHByZXNzaW9uKFwiYTFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiYTJcIikpO1xuXHRcdGNvbnN0IGIgPSBhbmQoYmluZGluZ0V4cHJlc3Npb24oXCJiMVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJiMlwiKSk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFuZChhLCBiKSkpLnRvRXF1YWwoXCJ7PSAle2ExfSAmJiAle2EyfSAmJiAle2IxfSAmJiAle2IyfX1cIik7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYW5kKGEsIGEpKSkudG9FcXVhbChcIns9ICV7YTF9ICYmICV7YTJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYW5kKGEsIGFuZChhLCBhKSkpKS50b0VxdWFsKFwiez0gJXthMX0gJiYgJXthMn19XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhhbmQoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIG5vdChiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSkpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhhbmQoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIG5vdChiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSksIHVucmVzb2x2ZWFibGVFeHByZXNzaW9uKSkpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0fSk7XG5cblx0aXQoXCJPciBvcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG9yKGNvbnN0YW50KHRydWUpLCBjb25zdGFudChmYWxzZSkpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG9yKGNvbnN0YW50KGZhbHNlKSwgY29uc3RhbnQoZmFsc2UpKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcob3IoY29uc3RhbnQodHJ1ZSksIGNvbnN0YW50KHRydWUpKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvcihjb25zdGFudChmYWxzZSksIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKS50b0VxdWFsKFwie1NhbGVzT3JkZXJ9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvcihjb25zdGFudCh0cnVlKSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvcihiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiwgXCJ1aVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7dWk+aXNFZGl0YWJsZX0gfHwgJXtTYWxlc09yZGVyfX1cIlxuXHRcdCk7XG5cblx0XHRjb25zdCBhID0gb3IoYmluZGluZ0V4cHJlc3Npb24oXCJhMVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJhMlwiKSk7XG5cdFx0Y29uc3QgYiA9IG9yKGJpbmRpbmdFeHByZXNzaW9uKFwiYjFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiYjJcIikpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvcihhLCBiKSkpLnRvRXF1YWwoXCJ7PSAle2ExfSB8fCAle2EyfSB8fCAle2IxfSB8fCAle2IyfX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG9yKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBub3QoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvcihiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgbm90KGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSwgdW5yZXNvbHZlYWJsZUV4cHJlc3Npb24pKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHR9KTtcblxuXHRpdChcIk5vdCBvcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdChjb25zdGFudCh0cnVlKSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdChiaW5kaW5nRXhwcmVzc2lvbihcIlNhbGVzT3JkZXJcIikpKSkudG9FcXVhbChcIns9ICEle1NhbGVzT3JkZXJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KHVucmVzb2x2ZWFibGVFeHByZXNzaW9uKSkpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KGFuZChiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiwgXCJ1aVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAhKCV7dWk+aXNFZGl0YWJsZX0gJiYgJXtTYWxlc09yZGVyfSl9XCJcblx0XHQpO1xuXHR9KTtcblxuXHRpdChcIk5vdCBvcGVyYXRvciBjYW4gc2ltcGxpZnkgc29tZSBleHByZXNzaW9uc1wiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdChhbmQoZXF1YWwoMSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSwgZXF1YWwoMiwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpKSkudG9FcXVhbChcblx0XHRcdFwiez0gMSAhPT0gJXtTYWxlc09yZGVyfSB8fCAyICE9PSAle1NhbGVzT3JkZXJ9fVwiXG5cdFx0KTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KG9yKGVxdWFsKDEsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSksIGVxdWFsKDIsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9IDEgIT09ICV7U2FsZXNPcmRlcn0gJiYgMiAhPT0gJXtTYWxlc09yZGVyfX1cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdChlcXVhbCgxLCBiaW5kaW5nRXhwcmVzc2lvbihcIlNhbGVzT3JkZXJcIikpKSkpLnRvRXF1YWwoXCJ7PSAxICE9PSAle1NhbGVzT3JkZXJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KG5vdEVxdWFsKDEsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKSkudG9FcXVhbChcIns9IDEgPT09ICV7U2FsZXNPcmRlcn19XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhub3QoZ3JlYXRlclRoYW4oMSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpKS50b0VxdWFsKFwiez0gMSA8PSAle1NhbGVzT3JkZXJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KGdyZWF0ZXJPckVxdWFsKDEsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKSkudG9FcXVhbChcIns9IDEgPCAle1NhbGVzT3JkZXJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KGxlc3NPckVxdWFsKDEsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKSkudG9FcXVhbChcIns9IDEgPiAle1NhbGVzT3JkZXJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KGxlc3NUaGFuKDEsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKSkudG9FcXVhbChcIns9IDEgPj0gJXtTYWxlc09yZGVyfX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGxlc3NUaGFuKFwiYVwiLCBcImJcIikpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KG5vdChiaW5kaW5nRXhwcmVzc2lvbihcIlNhbGVzT3JkZXJcIikpKSkpLnRvRXF1YWwoXCJ7U2FsZXNPcmRlcn1cIik7XG5cblx0XHQvLyBcIk9wdGltaXplIG5lc3RlZCBpZi1lbHNlIChjb25kaXRpb24pXCJcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhpZkVsc2Uobm90RXF1YWwoaWZFbHNlKGVxdWFsKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCA1KSwgMCwgMyksIDEpLCBjb25zdGFudChcImFcIiksIGNvbnN0YW50KFwiYlwiKSkpXG5cdFx0KS50b0VxdWFsKFwiYVwiKTtcblx0fSk7XG5cblx0aXQoXCJpc1RydXRoeSBvcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGlzVHJ1dGh5KGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSkpLnRvRXF1YWwoXCJ7PSAhISV7Zm9vfX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGlzVHJ1dGh5KGNvbnN0YW50KFwiYVwiKSkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0fSk7XG5cblx0aXQoXCJDb21wbGV4IEVxdWFsaXR5XCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpLCBjb25zdGFudChcIkVkaXRhYmxlXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7dWk+ZWRpdE1vZGV9ID09PSAnRWRpdGFibGUnfVwiXG5cdFx0KTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoY29uc3RhbnQoMzQpLCBiaW5kaW5nRXhwcmVzc2lvbihcIlNhbGVzT3JkZXJcIikpKSkudG9FcXVhbChcIns9IDM0ID09PSAle1NhbGVzT3JkZXJ9fVwiKTtcblx0fSk7XG5cblx0aXQoXCJGb3JtYXR0ZXIgY2FsbFwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgZmFrZUVudGl0eVR5cGUgPSB7XG5cdFx0XHRrZXlzOiBbeyBuYW1lOiBcIklEXCIgfSwgeyBuYW1lOiBcIlRvdG9cIiB9XVxuXHRcdH0gYXMgRW50aXR5VHlwZTtcblx0XHRjb25zdCBmYWtlRm9ybWF0dGVyID0gZnVuY3Rpb24oaXNFZGl0YWJsZTogc3RyaW5nKSB7XG5cdFx0XHQvLyBEbyBOb3RoaW5nXG5cdFx0XHRyZXR1cm4gXCJOb3RoaW5nXCI7XG5cdFx0fTtcblx0XHRmYWtlRm9ybWF0dGVyLl9fZnVuY3Rpb25OYW1lID0gXCJNeUZvcm1hdHRlck5hbWVcIjtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZm9ybWF0UmVzdWx0KFtiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwidWlcIildLCBmYWtlRm9ybWF0dGVyKSkpLnRvRXF1YWwoXG5cdFx0XHRcIntwYXRoOid1aT5lZGl0TW9kZScsIHRhcmdldFR5cGUgOiAnYW55JywgZm9ybWF0dGVyOiAnTXlGb3JtYXR0ZXJOYW1lJ31cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZvcm1hdFJlc3VsdChbXCJZZWxsb3dcIl0sIGZha2VGb3JtYXR0ZXIpKSkudG9FcXVhbChcInt2YWx1ZTogJ1llbGxvdycsIGZvcm1hdHRlcjogJ015Rm9ybWF0dGVyTmFtZSd9XCIpO1xuXHRcdC8vPz9cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZm9ybWF0UmVzdWx0KFtcIlllbGxvd1wiXSwgZmFrZUZvcm1hdHRlciwgZmFrZUVudGl0eVR5cGUpKSkudG9FcXVhbChcblx0XHRcdFwie3BhcnRzOlt7dmFsdWU6ICdZZWxsb3cnfSx7cGF0aDonSUQnLCB0YXJnZXRUeXBlIDogJ2FueSd9LHtwYXRoOidUb3RvJywgdGFyZ2V0VHlwZSA6ICdhbnknfV0sIGZvcm1hdHRlcjogJ015Rm9ybWF0dGVyTmFtZSd9XCJcblx0XHQpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmb3JtYXRSZXN1bHQoW2JpbmRpbmdFeHByZXNzaW9uKFwiSGVsbG9cIildLCBmYWtlRm9ybWF0dGVyLCBmYWtlRW50aXR5VHlwZSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7cGF0aDonSGVsbG8nLCB0YXJnZXRUeXBlIDogJ2FueScsIGZvcm1hdHRlcjogJ015Rm9ybWF0dGVyTmFtZSd9XCJcblx0XHQpO1xuXG5cdFx0Y29uc3QgZmFrZUZvcm1hdHRlcjIgPSBmdW5jdGlvbihpc0VkaXRhYmxlOiBzdHJpbmcsIGJvb2w6IGJvb2xlYW4sIG51bWJlcjogbnVtYmVyKSB7XG5cdFx0XHQvLyBEbyBOb3RoaW5nXG5cdFx0XHRyZXR1cm4gXCJOb3RoaW5nXCI7XG5cdFx0fTtcblx0XHRmYWtlRm9ybWF0dGVyMi5fX2Z1bmN0aW9uTmFtZSA9IFwiTXlGb3JtYXR0ZXJOYW1lXCI7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZvcm1hdFJlc3VsdChbXCJZZWxsb3dcIiwgZmFsc2UsIDQyXSwgZmFrZUZvcm1hdHRlcjIpKSkudG9FcXVhbChcblx0XHRcdFwie3BhcnRzOlt7dmFsdWU6ICdZZWxsb3cnfSx7dmFsdWU6ICdmYWxzZSd9LHt2YWx1ZTogNDJ9XSwgZm9ybWF0dGVyOiAnTXlGb3JtYXR0ZXJOYW1lJ31cIlxuXHRcdCk7XG5cblx0XHRjb25zdCBmYWtlRm9ybWF0dGVyMyA9IGZ1bmN0aW9uKGJvb2w6IGJvb2xlYW4sIG51bWJlcjogbnVtYmVyKSB7XG5cdFx0XHQvLyBEbyBOb3RoaW5nXG5cdFx0XHRyZXR1cm4gXCJOb3RoaW5nXCI7XG5cdFx0fTtcblx0XHRmYWtlRm9ybWF0dGVyMy5fX2Z1bmN0aW9uTmFtZSA9IFwiTXlGb3JtYXR0ZXJOYW1lM1wiO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmb3JtYXRSZXN1bHQoW2JpbmRpbmdFeHByZXNzaW9uKFwic29tZXRoaW5nQm9vbGVhblwiKSwgNDJdLCBmYWtlRm9ybWF0dGVyMywgZmFrZUVudGl0eVR5cGUpKSkudG9FcXVhbChcblx0XHRcdFwie3BhcnRzOlt7cGF0aDonc29tZXRoaW5nQm9vbGVhbicsIHRhcmdldFR5cGUgOiAnYW55J30se3ZhbHVlOiA0Mn1dLCBmb3JtYXR0ZXI6ICdNeUZvcm1hdHRlck5hbWUzJ31cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoZm9ybWF0UmVzdWx0KFtiaW5kaW5nRXhwcmVzc2lvbihcInNvbWV0aGluZ0Jvb2xlYW5cIiksIHVucmVzb2x2ZWFibGVFeHByZXNzaW9uXSwgZmFrZUZvcm1hdHRlcjMsIGZha2VFbnRpdHlUeXBlKSlcblx0XHQpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0fSk7XG5cblx0aXQoXCJDb21wbGV4IHR5cGUgY2FsbFwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFkZFR5cGVJbmZvcm1hdGlvbihbYmluZGluZ0V4cHJlc3Npb24oXCJ2YWx1ZVwiKV0sIFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdFwiKSkpLnRvRXF1YWwoXG5cdFx0XHRcIntwYXRoOid2YWx1ZScsIHRhcmdldFR5cGUgOiAnYW55JywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLlVuaXQnfVwiXG5cdFx0KTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhhZGRUeXBlSW5mb3JtYXRpb24oW2JpbmRpbmdFeHByZXNzaW9uKFwidmFsdWVcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwidW5pdFwiKV0sIFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdFwiKSlcblx0XHQpLnRvRXF1YWwoXG5cdFx0XHRcInttb2RlOidUd29XYXknLCBwYXJ0czpbe3BhdGg6J3ZhbHVlJywgdGFyZ2V0VHlwZSA6ICdhbnknfSx7cGF0aDondW5pdCcsIHRhcmdldFR5cGUgOiAnYW55J30se21vZGU6J09uZVRpbWUnLHBhdGg6Jy8jI0BAcmVxdWVzdFVuaXRzT2ZNZWFzdXJlJyx0YXJnZXRUeXBlOidhbnknfV0sdHlwZTonc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdCd9XCJcblx0XHQpO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHRhZGRUeXBlSW5mb3JtYXRpb24oW2JpbmRpbmdFeHByZXNzaW9uKFwidmFsdWVcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiY3VycmVuY3lcIildLCBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkN1cnJlbmN5XCIpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFxuXHRcdFx0XCJ7bW9kZTonVHdvV2F5JywgcGFydHM6W3twYXRoOid2YWx1ZScsIHRhcmdldFR5cGUgOiAnYW55J30se3BhdGg6J2N1cnJlbmN5JywgdGFyZ2V0VHlwZSA6ICdhbnknfSx7bW9kZTonT25lVGltZScscGF0aDonLyMjQEByZXF1ZXN0Q3VycmVuY3lDb2RlcycsdGFyZ2V0VHlwZTonYW55J31dLHR5cGU6J3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLkN1cnJlbmN5J31cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFkZFR5cGVJbmZvcm1hdGlvbihbYmluZGluZ0V4cHJlc3Npb24oXCJ2YWx1ZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJjdXJyZW5jeVwiKV0sIFwiZGVmYXVsdFR5cGVcIikpKS50b0VxdWFsKFxuXHRcdFx0XCJ7bW9kZTonVHdvV2F5JywgcGFydHM6W3twYXRoOid2YWx1ZScsIHRhcmdldFR5cGUgOiAnYW55J30se3BhdGg6J2N1cnJlbmN5JywgdGFyZ2V0VHlwZSA6ICdhbnknfV0sIHR5cGU6ICdkZWZhdWx0VHlwZSd9XCJcblx0XHQpO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHRhZGRUeXBlSW5mb3JtYXRpb24oW2JpbmRpbmdFeHByZXNzaW9uKFwidmFsdWVcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiY3VycmVuY3lcIiksIHVucmVzb2x2ZWFibGVFeHByZXNzaW9uXSwgXCJkZWZhdWx0VHlwZVwiKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHR9KTtcblxuXHRpdChcIklmLUVsc2Ugb3BlcmF0b3JcIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHRpZkVsc2UoZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCIvZWRpdE1vZGVcIiwgXCJ1aVwiKSwgY29uc3RhbnQoXCJFZGl0YWJsZVwiKSksIGNvbnN0YW50KFwiU2luZ2xlU2VsZWN0XCIpLCBjb25zdGFudChcIk5vbmVcIikpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFwiez0gJXt1aT4vZWRpdE1vZGV9ID09PSAnRWRpdGFibGUnID8gJ1NpbmdsZVNlbGVjdCcgOiAnTm9uZSd9XCIpO1xuXHRcdC8vIEJpbmRpbmcgc2ltcGxpZmljYXRpb25cblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhpZkVsc2UoZXF1YWwoY29uc3RhbnQoXCJFZGl0YWJsZVwiKSwgY29uc3RhbnQoXCJFZGl0YWJsZVwiKSksIGNvbnN0YW50KFwiU2luZ2xlU2VsZWN0XCIpLCBjb25zdGFudChcIk5vbmVcIikpKVxuXHRcdCkudG9FcXVhbChcIlNpbmdsZVNlbGVjdFwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhpZkVsc2UoZXF1YWwoY29uc3RhbnQoXCJFZGl0YWJsZVwiKSwgdW5yZXNvbHZlYWJsZUV4cHJlc3Npb24pLCBjb25zdGFudChcIlNpbmdsZVNlbGVjdFwiKSwgY29uc3RhbnQoXCJOb25lXCIpKSlcblx0XHQpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhpZkVsc2UoZXF1YWwoY29uc3RhbnQoXCJFZGl0YWJsZVwiKSwgY29uc3RhbnQoXCJFZGl0YWJsZVwiKSksIHVucmVzb2x2ZWFibGVFeHByZXNzaW9uLCBjb25zdGFudChcIk5vbmVcIikpKVxuXHRcdCkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKGlmRWxzZShlcXVhbChjb25zdGFudChcIkVkaXRhYmxlXCIpLCBjb25zdGFudChcIkVkaXRhYmxlXCIpKSwgY29uc3RhbnQoXCJTaW5nbGVTZWxlY3RcIiksIHVucmVzb2x2ZWFibGVFeHByZXNzaW9uKSlcblx0XHQpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0fSk7XG5cblx0aXQoXCJJZi1FbHNlIG9wZXJhdG9yIGNhbiBzaW1wbGlmeSBzb21lIGNhbGxzXCIsICgpID0+IHtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhpZkVsc2UoZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCIvZWRpdE1vZGVcIiwgXCJ1aVwiKSwgY29uc3RhbnQoXCJFZGl0YWJsZVwiKSksIGNvbnN0YW50KHRydWUpLCBjb25zdGFudChmYWxzZSkpKVxuXHRcdCkudG9FcXVhbChcIns9ICV7dWk+L2VkaXRNb2RlfSA9PT0gJ0VkaXRhYmxlJ31cIik7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoaWZFbHNlKGVxdWFsKGJpbmRpbmdFeHByZXNzaW9uKFwiL2VkaXRNb2RlXCIsIFwidWlcIiksIGNvbnN0YW50KFwiRWRpdGFibGVcIikpLCBjb25zdGFudChmYWxzZSksIGNvbnN0YW50KHRydWUpKSlcblx0XHQpLnRvRXF1YWwoXCJ7PSAle3VpPi9lZGl0TW9kZX0gIT09ICdFZGl0YWJsZSd9XCIpO1xuXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiksIGNvbnN0YW50KHRydWUpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJvb2xWYWx1ZVwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle2lzRWRpdGFibGV9ID8gdHJ1ZSA6ICV7Qm9vbFZhbHVlfX1cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiksIGNvbnN0YW50KGZhbHNlKSwgYmluZGluZ0V4cHJlc3Npb24oXCJCb29sVmFsdWVcIikpKSkudG9FcXVhbChcblx0XHRcdFwiez0gISV7aXNFZGl0YWJsZX0gJiYgJXtCb29sVmFsdWV9fVwiXG5cdFx0KTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoaWZFbHNlKG5vdChiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSksIGNvbnN0YW50KFwiYVwiKSwgY29uc3RhbnQoXCJiXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7Y29uZGl0aW9ufSA/ICdiJyA6ICdhJ31cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQm9vbFZhbHVlXCIpLCBjb25zdGFudCh0cnVlKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle2lzRWRpdGFibGV9ID8gJXtCb29sVmFsdWV9IDogdHJ1ZX1cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQm9vbFZhbHVlXCIpLCBjb25zdGFudChmYWxzZSkpKSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtpc0VkaXRhYmxlfSAmJiAle0Jvb2xWYWx1ZX19XCJcblx0XHQpO1xuXHRcdC8vIFwiT3B0aW1pemUgbmVzdGVkIGlmLWVsc2UgKGNvbmRpdGlvbilcIlxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpZkVsc2UoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCB0cnVlLCBmYWxzZSksIGNvbnN0YW50KFwiYVwiKSwgY29uc3RhbnQoXCJiXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7Y29uZGl0aW9ufSA/ICdhJyA6ICdiJ31cIlxuXHRcdCk7XG5cdFx0Ly9cIk9wdGltaXplIG5lc3RlZCBpZi1lbHNlIChjb25kaXRpb24pXCJcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoaWZFbHNlKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSwgZmFsc2UsIHRydWUpLCBjb25zdGFudChcImFcIiksIGNvbnN0YW50KFwiYlwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle2NvbmRpdGlvbn0gPyAnYicgOiAnYSd9XCJcblx0XHQpO1xuXHRcdC8vXCJPcHRpbWl6ZSBuZXN0ZWQgaWYtZWxzZSAoY29uZGl0aW9uKVwiXG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdGlmRWxzZShpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJjb25kaXRpb25cIiksIGZhbHNlLCBiaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPihcImFcIikpLCBjb25zdGFudChcImJcIiksIGNvbnN0YW50KFwiY1wiKSlcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXCJ7PSAoISV7Y29uZGl0aW9ufSAmJiAle2F9KSA/ICdiJyA6ICdjJ31cIik7XG5cdFx0Ly9cIk9wdGltaXplIG5lc3RlZCBpZi1lbHNlIChvblRydWUgYnJhbmNoKVwiXG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSwgaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCBjb25zdGFudChcImFcIiksIGNvbnN0YW50KFwiYlwiKSksIGNvbnN0YW50KFwiY1wiKSlcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXCJ7PSAle2NvbmRpdGlvbn0gPyAnYScgOiAnYyd9XCIpO1xuXHRcdC8vXCJPcHRpbWl6ZSBuZXN0ZWQgaWYtZWxzZSAob25GYWxzZSBicmFuY2gpXCJcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0aWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCBjb25zdGFudChcImFcIiksIGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSwgY29uc3RhbnQoXCJiXCIpLCBjb25zdGFudChcImNcIikpKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcIns9ICV7Y29uZGl0aW9ufSA/ICdhJyA6ICdjJ31cIik7XG5cdFx0Ly9cIk9wdGltaXplIG5lc3RlZCBpZi1lbHNlIChvbkZhbHNlIGJyYW5jaClcIlxuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0bm90KGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpKSxcblx0XHRcdFx0XHRjb25zdGFudChcImFcIiksXG5cdFx0XHRcdFx0aWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCBjb25zdGFudChcImJcIiksIGNvbnN0YW50KFwiY1wiKSlcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcIns9ICV7Y29uZGl0aW9ufSA/ICdiJyA6ICdhJ31cIik7XG5cblx0XHQvLyBldmVyeXRoaW5nIG5lc3RlZCAtIGNvbmRpdGlvbiwgb25UcnVlLCBvbkZhbHNlXG5cdFx0Y29uc3QgY29uZGl0aW9uID0gaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCBmYWxzZSwgYmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj4oXCJhXCIpKTtcblx0XHRjb25zdCBvblRydWUgPSBpZkVsc2UoXG5cdFx0XHRiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSxcblx0XHRcdGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSwgY29uc3RhbnQoXCJhXCIpLCBjb25zdGFudChcImJcIikpLFxuXHRcdFx0Y29uc3RhbnQoXCJjXCIpXG5cdFx0KTtcblx0XHRjb25zdCBvbkZhbHNlID0gaWZFbHNlKFxuXHRcdFx0YmluZGluZ0V4cHJlc3Npb24oXCJjb25kaXRpb25cIiksXG5cdFx0XHRjb25zdGFudChcImFcIiksXG5cdFx0XHRpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJjb25kaXRpb25cIiksIGNvbnN0YW50KFwiYlwiKSwgY29uc3RhbnQoXCJjXCIpKVxuXHRcdCk7XG5cblx0XHQvL1wiT3B0aW1pemUgbmVzdGVkIGlmLWVsc2UgKGNvbmRpdGlvbiBhbmQgYm90aCBicmFuY2hlcylcIlxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpZkVsc2UoY29uZGl0aW9uLCBvblRydWUsIG9uRmFsc2UpKSkudG9FcXVhbChcIns9ICV7Y29uZGl0aW9ufSA/ICdhJyA6ICdjJ31cIik7XG5cdH0pO1xuXG5cdGl0KFwiZGVhbHMgd2l0aCBwcm9wZXIgZXNjYXBpbmcgb2YgdGhlIGFwb3N0cm9waGVcIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKGlmRWxzZShlcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcIi9lZGl0TW9kZVwiLCBcInVpXCIpLCBjb25zdGFudChcIkVkJ2l0YWJsZVwiKSksIGNvbnN0YW50KHRydWUpLCBjb25zdGFudChmYWxzZSkpKVxuXHRcdCkudG9FcXVhbChcIns9ICV7dWk+L2VkaXRNb2RlfSA9PT0gJ0VkXFxcXCdpdGFibGUnfVwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhpZkVsc2UoZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCIvZWRpdE1vZGVcIiwgXCJ1aVwiKSwgY29uc3RhbnQoJ0VkaVwidGFibGUnKSksIGNvbnN0YW50KHRydWUpLCBjb25zdGFudChmYWxzZSkpKVxuXHRcdCkudG9FcXVhbChcIns9ICV7dWk+L2VkaXRNb2RlfSA9PT0gJ0VkaVxcXCJ0YWJsZSd9XCIpO1xuXHRcdC8vIEluIGNhc2UgdGhlIHN0cmluZyBpcyB1c2VkIGRpcmVjdGx5IC0+IG5vIHByb2JsZW1cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29uc3RhbnQoXCI7YTthJztkbGFzZHdxbz48KihcIikpKS50b0VxdWFsKFwiO2E7YSc7ZGxhc2R3cW8+PCooXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhjb25zdGFudCgnQW5kIHdoYXQgaWYgaSB1c2UgXCJkb3VibGUgcXVvdGVzXCInKSkpLnRvRXF1YWwoJ0FuZCB3aGF0IGlmIGkgdXNlIFwiZG91YmxlIHF1b3Rlc1wiJyk7XG5cdH0pO1xuXG5cdGl0KFwiUmVmZXJlbmNlXCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcocmVmKFwiZm9vXCIpKSkudG9FcXVhbChcImZvb1wiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcocmVmKG51bGwpKSkudG9FcXVhbChcIm51bGxcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHJlZihcIm51bGxcIikpKS50b0VxdWFsKFwibnVsbFwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcocmVmKFwiXCIpKSkudG9FcXVhbChcIm51bGxcIik7XG5cdH0pO1xuXG5cdGl0KFwiT2JqZWN0XCIsICgpID0+IHtcblx0XHQvLyBjb21wYXJpc29uczogQXJyYXlcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc1RoYW4oW10sIFtdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc09yRXF1YWwoW10sIFtdKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChbXSwgW10pKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhncmVhdGVyT3JFcXVhbChbXSwgW10pKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGdyZWF0ZXJUaGFuKFtdLCBbXSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGxlc3NUaGFuKFswXSwgWzBdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc09yRXF1YWwoWzBdLCBbMF0pKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKFswXSwgWzBdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZ3JlYXRlck9yRXF1YWwoWzBdLCBbMF0pKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGdyZWF0ZXJUaGFuKFswXSwgWzBdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc1RoYW4oWzBdLCBbMCwgMV0pKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGxlc3NPckVxdWFsKFswXSwgWzAsIDFdKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChbMF0sIFswLCAxXSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGdyZWF0ZXJPckVxdWFsKFswXSwgWzAsIDFdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZ3JlYXRlclRoYW4oWzBdLCBbMCwgMV0pKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhsZXNzVGhhbihbMCwgMV0sIFswXSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGxlc3NPckVxdWFsKFswLCAxXSwgWzBdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoWzAsIDFdLCBbMF0pKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhncmVhdGVyT3JFcXVhbChbMCwgMV0sIFswXSkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZ3JlYXRlclRoYW4oWzAsIDFdLCBbMF0pKSkudG9FcXVhbChcInRydWVcIik7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc1RoYW4oe30sIHt9KSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc09yRXF1YWwoe30sIHt9KSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbCh7fSwge30pKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhncmVhdGVyT3JFcXVhbCh7fSwge30pKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGdyZWF0ZXJUaGFuKHt9LCB7fSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cblx0XHQvLyBpbXBsaWNpdCBjb25zdGFudCgpXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHt9KSkudG9FcXVhbChcInt9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogXCJiYXJcIiB9KSkudG9FcXVhbChcIntmb286ICdiYXInfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IDEgfSkpLnRvRXF1YWwoXCJ7Zm9vOiAxfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IHRydWUgfSkpLnRvRXF1YWwoXCJ7Zm9vOiB0cnVlfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IG51bGwgfSkpLnRvRXF1YWwoXCJ7Zm9vOiBudWxsfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IHVuZGVmaW5lZCB9KSkudG9FcXVhbChcInt9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogeyBiYXI6IFwiYmF6XCIgfSB9KSkudG9FcXVhbChcIntmb286IHtiYXI6ICdiYXonfX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHsgMTogXCJiYXJcIiB9KSkudG9FcXVhbChcInsxOiAnYmFyJ31cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKFtdKSkudG9FcXVhbChcIltdXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhbdW5kZWZpbmVkLCBudWxsXSkpLnRvRXF1YWwoXCJbdW5kZWZpbmVkLCBudWxsXVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoWzEsIDIsIDNdKSkudG9FcXVhbChcIlsxLCAyLCAzXVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IFsxLCAyLCAzXSB9KSkudG9FcXVhbChcIntmb286IFsxLCAyLCAzXX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHt9LCB0cnVlKSkudG9FcXVhbChcInt9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogXCJiYXJcIiB9LCB0cnVlKSkudG9FcXVhbChcIntmb286ICdiYXInfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IDEgfSwgdHJ1ZSkpLnRvRXF1YWwoXCJ7Zm9vOiAxfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IHRydWUgfSwgdHJ1ZSkpLnRvRXF1YWwoXCJ7Zm9vOiB0cnVlfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IG51bGwgfSwgdHJ1ZSkpLnRvRXF1YWwoXCJ7Zm9vOiBudWxsfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IHVuZGVmaW5lZCB9LCB0cnVlKSkudG9FcXVhbChcInt9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogeyBiYXI6IFwiYmF6XCIgfSB9LCB0cnVlKSkudG9FcXVhbChcIntmb286IHtiYXI6ICdiYXonfX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHsgMTogXCJiYXJcIiB9LCB0cnVlKSkudG9FcXVhbChcInsxOiAnYmFyJ31cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKFtdLCB0cnVlKSkudG9FcXVhbChcIltdXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhbdW5kZWZpbmVkLCBudWxsXSwgdHJ1ZSkpLnRvRXF1YWwoXCJbdW5kZWZpbmVkLCBudWxsXVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoWzEsIDIsIDNdLCB0cnVlKSkudG9FcXVhbChcIlsxLCAyLCAzXVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IFsxLCAyLCAzXSB9LCB0cnVlKSkudG9FcXVhbChcIntmb286IFsxLCAyLCAzXX1cIik7XG5cblx0XHQvLyBleHBsaWNpdCBjb25zdGFudCgpXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHsgZm9vOiBjb25zdGFudChcImJhclwiKSB9KSkudG9FcXVhbChcIntmb286ICdiYXInfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IGNvbnN0YW50KDEpIH0pKS50b0VxdWFsKFwie2ZvbzogMX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHsgZm9vOiBjb25zdGFudCh0cnVlKSB9KSkudG9FcXVhbChcIntmb286IHRydWV9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogY29uc3RhbnQobnVsbCkgfSkpLnRvRXF1YWwoXCJ7Zm9vOiBudWxsfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IGNvbnN0YW50KHVuZGVmaW5lZCkgfSkpLnRvRXF1YWwoXCJ7fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyAxOiBjb25zdGFudChcImJhclwiKSB9KSkudG9FcXVhbChcInsxOiAnYmFyJ31cIik7XG5cblx0XHQvLyBvdGhlciB0eXBlc1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogYmluZGluZ0V4cHJlc3Npb24oXCJiYXJcIikgfSkpLnRvRXF1YWwoXCJ7Zm9vOiAle2Jhcn19XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogY29uc3RhbnQoXCJiYXJcIikgfSkpLnRvRXF1YWwoXCJ7Zm9vOiAnYmFyJ31cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHsgZm9vOiB7IGJhcjogY29uc3RhbnQoXCJiYXpcIikgfSB9KSkudG9FcXVhbChcIntmb286IHtiYXI6ICdiYXonfX1cIik7XG5cblx0XHRjb25zdCBvYmogPSB7XG5cdFx0XHRjb250ZXh0czogZm4oXCJnZXRCaW5kaW5nQ29udGV4dFwiLCBbXSwgYmluZGluZ0V4cHJlc3Npb24oXCIvI2ZlOjpPYmplY3RQYWdlL1wiLCBcIiR2aWV3XCIpKSxcblx0XHRcdGludm9jYXRpb25Hcm91cGluZzogY29uc3RhbnQoXCJDaGFuZ2VTZXRcIiksXG5cdFx0XHRsYWJlbDogY29uc3RhbnQoXCJUZXN0XCIpLFxuXHRcdFx0bW9kZWw6IGZuKFwiZ2V0TW9kZWxcIiwgW10sIGJpbmRpbmdFeHByZXNzaW9uKFwiL1wiLCBcIiRzb3VyY2VcIikpLFxuXHRcdFx0aXNOYXZpZ2FibGU6IHRydWVcblx0XHR9O1xuXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG9iaikpLnRvRXF1YWwoXG5cdFx0XHRcIntjb250ZXh0czogJXskdmlldz4vI2ZlOjpPYmplY3RQYWdlL30uZ2V0QmluZGluZ0NvbnRleHQoKSwgaW52b2NhdGlvbkdyb3VwaW5nOiAnQ2hhbmdlU2V0JywgbGFiZWw6ICdUZXN0JywgbW9kZWw6ICV7JHNvdXJjZT4vfS5nZXRNb2RlbCgpLCBpc05hdmlnYWJsZTogdHJ1ZX1cIlxuXHRcdCk7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoeyBmb286IFwiYmFyXCIgfSwgbnVsbCkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKHsgZm9vOiBcImJhclwiIH0sIHsgZm9vOiBcImJhclwiIH0pKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHR9KTtcblxuXHRpdChcIkZ1bmN0aW9uXCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZm4oXCJmb29cIiwgW10pKSkudG9FcXVhbChcImZvbygpXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImZvb1wiLCBbMV0pKSkudG9FcXVhbChcImZvbygxKVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZm4oXCJmb29cIiwgW1wiYmFyXCJdKSkpLnRvRXF1YWwoXCJmb28oJ2JhcicpXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImZvb1wiLCBbY29uc3RhbnQoXCJiYXJcIildKSkpLnRvRXF1YWwoXCJmb28oJ2JhcicpXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImZvb1wiLCBbcmVmKFwiYmFyXCIpXSkpKS50b0VxdWFsKFwiZm9vKGJhcilcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZuKFwiZm9vXCIsIFt7IGJhcjogXCJiYXpcIiB9XSkpKS50b0VxdWFsKFwiZm9vKHtiYXI6ICdiYXonfSlcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZuKFwiZm9vXCIsIFtudWxsXSkpKS50b0VxdWFsKFwiZm9vKG51bGwpXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImZvb1wiLCBbdW5kZWZpbmVkXSkpKS50b0VxdWFsKFwiZm9vKHVuZGVmaW5lZClcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZuKFwiZm9vXCIsIFsxLCAyLCAzLCA0XSkpKS50b0VxdWFsKFwiZm9vKDEsIDIsIDMsIDQpXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImZvb1wiLCBbMSwgMiwgdW5kZWZpbmVkLCA0LCB1bmRlZmluZWRdKSkpLnRvRXF1YWwoXCJmb28oMSwgMiwgdW5kZWZpbmVkLCA0LCB1bmRlZmluZWQpXCIpO1xuXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZuKFwiZm9vXCIsIFtyZWYoXCIkY29udHJvbGxlclwiKSwgZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCJiYXJcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiYmF6XCIpKV0pKSkudG9FcXVhbChcblx0XHRcdFwiZm9vKCRjb250cm9sbGVyLCAle2Jhcn0gPT09ICV7YmF6fSlcIlxuXHRcdCk7XG5cblx0XHRjb25zdCBvYmogPSBmbihcIk15RnVuY3Rpb25cIiwgW1xuXHRcdFx0e1xuXHRcdFx0XHRjb250ZXh0czogZm4oXCJnZXRCaW5kaW5nQ29udGV4dFwiLCBbXSwgYmluZGluZ0V4cHJlc3Npb24oXCIvI2ZlOjpPYmplY3RQYWdlL1wiLCBcIiR2aWV3XCIpKSxcblx0XHRcdFx0aW52b2NhdGlvbkdyb3VwaW5nOiBcIkNoYW5nZVNldFwiLFxuXHRcdFx0XHRsYWJlbDogXCJUZXN0XCIsXG5cdFx0XHRcdG1vZGVsOiBmbihcImdldE1vZGVsXCIsIFtdLCBiaW5kaW5nRXhwcmVzc2lvbihcIi9cIiwgXCIkc291cmNlXCIpKSxcblx0XHRcdFx0aXNOYXZpZ2FibGU6IHRydWVcblx0XHRcdH0sXG5cdFx0XHQxXG5cdFx0XSk7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcob2JqKSkudG9FcXVhbChcblx0XHRcdFwiTXlGdW5jdGlvbih7Y29udGV4dHM6ICV7JHZpZXc+LyNmZTo6T2JqZWN0UGFnZS99LmdldEJpbmRpbmdDb250ZXh0KCksIGludm9jYXRpb25Hcm91cGluZzogJ0NoYW5nZVNldCcsIGxhYmVsOiAnVGVzdCcsIG1vZGVsOiAleyRzb3VyY2U+L30uZ2V0TW9kZWwoKSwgaXNOYXZpZ2FibGU6IHRydWV9LCAxKVwiXG5cdFx0KTtcblxuXHRcdC8vIGZsYXQgcGFyYW1ldGVyIGxpc3Rcblx0XHRmdW5jdGlvbiBteUhhbmRsZXIoYTogbnVtYmVyLCBiOiBzdHJpbmcsIGM6IGJvb2xlYW4pOiBzdHJpbmcge1xuXHRcdFx0cmV0dXJuIFwiSGkhXCI7XG5cdFx0fVxuXG5cdFx0bXlIYW5kbGVyLl9fZnVuY3Rpb25OYW1lID0gXCJjYWxsTXlIYW5kbGVyXCI7XG5cblx0XHQvL1wiVHlwZWQgZnVuY3Rpb24sIGZsYXQgc2lnbmF0dXJlXCJcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZm4obXlIYW5kbGVyLCBbMSwgYmluZGluZ0V4cHJlc3Npb24oXCJuYW1lXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcImlzVmFsaWRcIildKSkpLnRvRXF1YWwoXG5cdFx0XHRcImNhbGxNeUhhbmRsZXIoMSwgJXtuYW1lfSwgJXtpc1ZhbGlkfSlcIlxuXHRcdCk7XG5cblx0XHQvLyBPYmplY3QgYXMgcGFyYW1ldGVyXG5cdFx0ZnVuY3Rpb24gbXlIYW5kbGVyT2JqKGM6IHsgY29udGV4dDogQ29udGV4dCB9KTogc3RyaW5nIHtcblx0XHRcdHJldHVybiBcIkhpIVwiO1xuXHRcdH1cblxuXHRcdG15SGFuZGxlck9iai5fX2Z1bmN0aW9uTmFtZSA9IFwiY2FsbE15SGFuZGxlclwiO1xuXG5cdFx0Ly8gXCJUeXBlZCBmdW5jdGlvbiwgb2JqZWN0LXR5cGVkIHNpZ25hdHVyZVwiXG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoZm4obXlIYW5kbGVyT2JqLCBbeyBjb250ZXh0OiBmbihcImdldEJpbmRpbmdDb250ZXh0XCIsIFtdLCBiaW5kaW5nRXhwcmVzc2lvbihcIi8jZmU6Ok9iamVjdFBhZ2UvXCIsIFwiJHZpZXdcIikpIH1dKSlcblx0XHQpLnRvRXF1YWwoXCJjYWxsTXlIYW5kbGVyKHtjb250ZXh0OiAleyR2aWV3Pi8jZmU6Ok9iamVjdFBhZ2UvfS5nZXRCaW5kaW5nQ29udGV4dCgpfSlcIik7XG5cdH0pO1xuXG5cdGl0KFwiQXBwbHkgRnVuY3Rpb25cIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImJhclwiLCBbXSwgcmVmKFwiZm9vXCIpKSkpLnRvRXF1YWwoXCJmb28uYmFyKClcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZuKFwiYmFyXCIsIFtdLCBiaW5kaW5nRXhwcmVzc2lvbihcIi8jZmU6Ok9iamVjdFBhZ2UvXCIsIFwiJHZpZXdcIikpKSkudG9FcXVhbChcIiV7JHZpZXc+LyNmZTo6T2JqZWN0UGFnZS99LmJhcigpXCIpO1xuXHR9KTtcblxuXHRpdChcIkZ1bmN0aW9uIGFzIHBhcnQgb2YgZXhwcmVzc2lvblwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgZXhwcmVzc2lvbiA9IGVxdWFsKGZuKFwiZm9vXCIsIFtyZWYoXCIkY29udHJvbGxlclwiKSwgY29uc3RhbnQoNSldKSwgY29uc3RhbnQoNikpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhleHByZXNzaW9uKSkudG9FcXVhbChcIns9IGZvbygkY29udHJvbGxlciwgNSkgPT09IDZ9XCIpO1xuXHR9KTtcblxuXHRpdChcIkNvbmNhdCBPcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGNvbmNhdChcImFcIiwgXCJiXCIpKSkudG9FcXVhbChcImFiXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhjb25jYXQoXCJhXCIsIGJpbmRpbmdFeHByZXNzaW9uKFwiQmluZGluZ1BhdGhcIikpKSkudG9FcXVhbChcIns9ICdhJyArICR7QmluZGluZ1BhdGh9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29uY2F0KFwiYVwiLCB1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiwgYmluZGluZ0V4cHJlc3Npb24oXCJCaW5kaW5nUGF0aFwiKSkpKS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdH0pO1xuXG5cdGl0KFwiTGVuZ3RoXCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVuZ3RoKGJpbmRpbmdFeHByZXNzaW9uKFwibXlQcm9wZXJ0eVwiLCBcImludGVybmFsXCIpKSkpLnRvRXF1YWwoXCJ7PSAle2ludGVybmFsPm15UHJvcGVydHl9Lmxlbmd0aH1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGxlbmd0aChiaW5kaW5nRXhwcmVzc2lvbih1bmRlZmluZWQpKSkpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhlcXVhbChsZW5ndGgoYmluZGluZ0V4cHJlc3Npb24oXCJteVByb3BlcnR5XCIsIFwiaW50ZXJuYWxcIikpLCBsZW5ndGgoYmluZGluZ0V4cHJlc3Npb24oXCJteVByb3BlcnR5XCIsIFwiaW50ZXJuYWxcIikpKSlcblx0XHQpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhsZXNzT3JFcXVhbChsZW5ndGgoYmluZGluZ0V4cHJlc3Npb24oXCJteVByb3BlcnR5XCIsIFwiaW50ZXJuYWxcIikpLCAyKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICgle2ludGVybmFsPm15UHJvcGVydHl9Lmxlbmd0aCkgPD0gMn1cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdGFuZChcblx0XHRcdFx0XHRsZXNzT3JFcXVhbChsZW5ndGgoYmluZGluZ0V4cHJlc3Npb24oXCJteVByb3BlcnR5XCIsIFwiaW50ZXJuYWxcIikpLCAyKSxcblx0XHRcdFx0XHRsZXNzT3JFcXVhbChsZW5ndGgoYmluZGluZ0V4cHJlc3Npb24oXCJteVByb3BlcnR5XCIsIFwiaW50ZXJuYWxcIikpLCAyKVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFwiez0gKCV7aW50ZXJuYWw+bXlQcm9wZXJ0eX0ubGVuZ3RoKSA8PSAyfVwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0YW5kKFxuXHRcdFx0XHRcdGxlc3NPckVxdWFsKGxlbmd0aChiaW5kaW5nRXhwcmVzc2lvbihcIm15UHJvcGVydHlcIiwgXCJpbnRlcm5hbFwiKSksIDIpLFxuXHRcdFx0XHRcdG5vdEVxdWFsKGxlbmd0aChiaW5kaW5nRXhwcmVzc2lvbihcIm15UHJvcGVydHlcIiwgXCJpbnRlcm5hbFwiKSksIDUpXG5cdFx0XHRcdClcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXCJ7PSAoJXtpbnRlcm5hbD5teVByb3BlcnR5fS5sZW5ndGgpIDw9IDIgJiYgKCV7aW50ZXJuYWw+bXlQcm9wZXJ0eX0ubGVuZ3RoKSAhPT0gNX1cIik7XG5cdH0pO1xuXG5cdGl0KFwiSXMgRW1wdHkgU2hvcnRjdXRcIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpc0VtcHR5KGJpbmRpbmdFeHByZXNzaW9uKFwiQmluZGluZ1BhdGhcIikpKSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtCaW5kaW5nUGF0aH0gPT09ICcnIHx8ICV7QmluZGluZ1BhdGh9ID09PSB1bmRlZmluZWQgfHwgJXtCaW5kaW5nUGF0aH0gPT09IG51bGx9XCJcblx0XHQpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpc0VtcHR5KGNvbmNhdChcImFcIiwgYmluZGluZ0V4cHJlc3Npb24oXCJCaW5kaW5nUGF0aFwiKSkpKSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtCaW5kaW5nUGF0aH0gPT09ICcnIHx8ICV7QmluZGluZ1BhdGh9ID09PSB1bmRlZmluZWQgfHwgJXtCaW5kaW5nUGF0aH0gPT09IG51bGx9XCJcblx0XHQpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpc0VtcHR5KGNvbmNhdChiaW5kaW5nRXhwcmVzc2lvbihcIkJpbmRpbmdQYXRoMVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJCaW5kaW5nUGF0aDJcIikpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7QmluZGluZ1BhdGgxfSA9PT0gJycgfHwgJXtCaW5kaW5nUGF0aDF9ID09PSB1bmRlZmluZWQgfHwgJXtCaW5kaW5nUGF0aDF9ID09PSBudWxsIHx8ICV7QmluZGluZ1BhdGgyfSA9PT0gJycgfHwgJXtCaW5kaW5nUGF0aDJ9ID09PSB1bmRlZmluZWQgfHwgJXtCaW5kaW5nUGF0aDJ9ID09PSBudWxsfVwiXG5cdFx0KTtcblx0fSk7XG5cblx0aXQoXCJTdXBwb3J0IHJlY3Vyc2l2ZSB0cmFuc2Zvcm1hdGlvblwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgdHJhbnNmb3JtQmluZGluZyA9IChiaW5kaW5nOiBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248YW55PikgPT4ge1xuXHRcdFx0YmluZGluZy5tb2RlbE5hbWUgPSBcIm5ld01vZGVsXCI7XG5cdFx0XHRyZXR1cm4gYmluZGluZztcblx0XHR9O1xuXHRcdGNvbnN0IHRyYW5zZm9ybUJpbmRpbmdUb1NhbWVWYWx1ZSA9IChiaW5kaW5nOiBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248YW55PikgPT4ge1xuXHRcdFx0aWYgKGJpbmRpbmcucGF0aCA9PT0gXCJpc0VkaXRhYmxlXCIpIHtcblx0XHRcdFx0cmV0dXJuIGJpbmRpbmc7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY29uc3RhbnQoXCJBXCIpIGFzIEV4cHJlc3Npb248YW55Pjtcblx0XHR9O1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0cmFuc2Zvcm1SZWN1cnNpdmVseShpc0VtcHR5KGJpbmRpbmdFeHByZXNzaW9uKFwiQmluZGluZ1BhdGhcIikpLCBcIkJpbmRpbmdcIiwgdHJhbnNmb3JtQmluZGluZykpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle0JpbmRpbmdQYXRofSA9PT0gJycgfHwgJXtCaW5kaW5nUGF0aH0gPT09IHVuZGVmaW5lZCB8fCAle0JpbmRpbmdQYXRofSA9PT0gbnVsbH1cIlxuXHRcdCk7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29uY2F0KGJpbmRpbmdFeHByZXNzaW9uKFwiQmluZGluZ1BhdGhcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQnVidVwiKSkpKS50b0VxdWFsKFwiez0gJHtCaW5kaW5nUGF0aH0gKyAke0J1YnV9fVwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0dHJhbnNmb3JtUmVjdXJzaXZlbHkoY29uY2F0KGJpbmRpbmdFeHByZXNzaW9uKFwiQmluZGluZ1BhdGhcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQnVidVwiKSksIFwiQmluZGluZ1wiLCB0cmFuc2Zvcm1CaW5kaW5nKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcIns9ICR7bmV3TW9kZWw+QmluZGluZ1BhdGh9ICsgJHtuZXdNb2RlbD5CdWJ1fX1cIik7XG5cblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0dHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0Zm4oXCJmb29cIiwgW3JlZihcIiRjb250cm9sbGVyXCIpLCBlcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcImJhclwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJiYXpcIikpXSksXG5cdFx0XHRcdFx0XCJCaW5kaW5nXCIsXG5cdFx0XHRcdFx0dHJhbnNmb3JtQmluZGluZ1xuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFwiZm9vKCRjb250cm9sbGVyLCAle2Jhcn0gPT09ICV7YmF6fSlcIik7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcodHJhbnNmb3JtUmVjdXJzaXZlbHkobm90KGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSksIFwiQmluZGluZ1wiLCB0cmFuc2Zvcm1CaW5kaW5nKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICEle1NhbGVzT3JkZXJ9fVwiXG5cdFx0KTtcblxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0cmFuc2Zvcm1SZWN1cnNpdmVseShub3QoYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSwgXCJCaW5kaW5nXCIsIHRyYW5zZm9ybUJpbmRpbmcsIHRydWUpKSkudG9FcXVhbChcblx0XHRcdFwiez0gISV7bmV3TW9kZWw+U2FsZXNPcmRlcn19XCJcblx0XHQpO1xuXG5cdFx0Y29uc3QgZmFrZUZvcm1hdHRlciA9IGZ1bmN0aW9uKGlzRWRpdGFibGU6IHN0cmluZykge1xuXHRcdFx0Ly8gRG8gTm90aGluZ1xuXHRcdFx0cmV0dXJuIFwiTm90aGluZ1wiO1xuXHRcdH07XG5cdFx0ZmFrZUZvcm1hdHRlci5fX2Z1bmN0aW9uTmFtZSA9IFwiTXlGb3JtYXR0ZXJOYW1lXCI7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdHRyYW5zZm9ybVJlY3Vyc2l2ZWx5KGZvcm1hdFJlc3VsdChbYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpXSwgZmFrZUZvcm1hdHRlciksIFwiQmluZGluZ1wiLCB0cmFuc2Zvcm1CaW5kaW5nKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcIntwYXRoOiduZXdNb2RlbD5lZGl0TW9kZScsIHRhcmdldFR5cGUgOiAnYW55JywgZm9ybWF0dGVyOiAnTXlGb3JtYXR0ZXJOYW1lJ31cIik7XG5cblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0dHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0YWRkVHlwZUluZm9ybWF0aW9uKFtiaW5kaW5nRXhwcmVzc2lvbihcInZhbHVlXCIsIFwidWlcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwidW5pdFwiLCBcInVpXCIpXSwgXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0XCIpLFxuXHRcdFx0XHRcdFwiQmluZGluZ1wiLFxuXHRcdFx0XHRcdHRyYW5zZm9ybUJpbmRpbmdcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcblx0XHRcdFwie21vZGU6J1R3b1dheScsIHBhcnRzOlt7cGF0aDonbmV3TW9kZWw+dmFsdWUnLCB0YXJnZXRUeXBlIDogJ2FueSd9LHtwYXRoOiduZXdNb2RlbD51bml0JywgdGFyZ2V0VHlwZSA6ICdhbnknfSx7bW9kZTonT25lVGltZScscGF0aDonLyMjQEByZXF1ZXN0VW5pdHNPZk1lYXN1cmUnLHRhcmdldFR5cGU6J2FueSd9XSx0eXBlOidzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0J31cIlxuXHRcdCk7XG5cblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0dHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0ZXF1YWwoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiaXNFZGl0YWJsZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJBXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIikpLCBjb25zdGFudChcIkFcIikpLFxuXHRcdFx0XHRcdFwiQmluZGluZ1wiLFxuXHRcdFx0XHRcdHRyYW5zZm9ybUJpbmRpbmdcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcIns9ICgle2lzRWRpdGFibGV9ID8gJXtBfSA6ICV7Qn0pID09PSAnQSd9XCIpO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHR0cmFuc2Zvcm1SZWN1cnNpdmVseShcblx0XHRcdFx0XHRlcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSksIGNvbnN0YW50KFwiQVwiKSksXG5cdFx0XHRcdFx0XCJCaW5kaW5nXCIsXG5cdFx0XHRcdFx0dHJhbnNmb3JtQmluZGluZyxcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdClcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXCJ7PSAoJXtuZXdNb2RlbD5pc0VkaXRhYmxlfSA/ICV7bmV3TW9kZWw+QX0gOiAle25ld01vZGVsPkJ9KSA9PT0gJ0EnfVwiKTtcblxuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHR0cmFuc2Zvcm1SZWN1cnNpdmVseShcblx0XHRcdFx0XHRpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSksXG5cdFx0XHRcdFx0XCJCaW5kaW5nXCIsXG5cdFx0XHRcdFx0dHJhbnNmb3JtQmluZGluZ1xuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFwiez0gJXtpc0VkaXRhYmxlfSA/ICV7bmV3TW9kZWw+QX0gOiAle25ld01vZGVsPkJ9fVwiKTtcblxuXHRcdC8vIFRyYW5zZm9ybWF0aW9uIGFsc28gY2FuIHRyaWdnZXIgc2ltcGxpZmljYXRpb25cblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0dHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0aWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiaXNFZGl0YWJsZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJBXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIikpLFxuXHRcdFx0XHRcdFwiQmluZGluZ1wiLFxuXHRcdFx0XHRcdHRyYW5zZm9ybUJpbmRpbmdUb1NhbWVWYWx1ZVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFwiQVwiKTtcblxuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHR0cmFuc2Zvcm1SZWN1cnNpdmVseShcblx0XHRcdFx0XHRlcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSksIGNvbnN0YW50KFwiQVwiKSksXG5cdFx0XHRcdFx0XCJCaW5kaW5nXCIsXG5cdFx0XHRcdFx0dHJhbnNmb3JtQmluZGluZ1RvU2FtZVZhbHVlLFxuXHRcdFx0XHRcdHRydWVcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcInRydWVcIik7XG5cdH0pO1xuXG5cdGl0KFwiU3VwcG9ydHMgQmluZGluZ1N0cmluZyBPcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0Ly8gQm9vbGVhbiBjYXNlXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHJlc29sdmVCaW5kaW5nU3RyaW5nKFwidHJ1ZVwiLCBcImJvb2xlYW5cIikpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcocmVzb2x2ZUJpbmRpbmdTdHJpbmcoXCJmYWxzZVwiLCBcImJvb2xlYW5cIikpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHJlc29sdmVCaW5kaW5nU3RyaW5nKHRydWUsIFwiYm9vbGVhblwiKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhyZXNvbHZlQmluZGluZ1N0cmluZyhmYWxzZSwgXCJib29sZWFuXCIpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhyZXNvbHZlQmluZGluZ1N0cmluZyhcIllvbG9cIikpKS50b0VxdWFsKFwiWW9sb1wiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcocmVzb2x2ZUJpbmRpbmdTdHJpbmcoXCJ7c29tZXRoaW5nPmVsc2V9XCIsIFwiYm9vbGVhblwiKSkpLnRvRXF1YWwoXCJ7c29tZXRoaW5nPmVsc2V9XCIpO1xuXHR9KTtcbn0pO1xuIl19
|
|
570
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJpbmRpbmdFeHByZXNzaW9uLnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsImV4cGVjdCIsImNvbXBpbGVCaW5kaW5nIiwiY29uc3RhbnQiLCJ0b0VxdWFsIiwidW5yZXNvbHZlYWJsZUV4cHJlc3Npb24iLCJ1bmRlZmluZWQiLCJiaW5kaW5nRXhwcmVzc2lvbiIsIm15QmluZGluZ0V4cHJlc3Npb24iLCJ0YXJnZXRUeXBlIiwiZm9ybWF0T3B0aW9ucyIsInBhcnNlS2VlcHNFbXB0eVN0cmluZyIsImNvbnN0cmFpbnRzIiwic2NhbGUiLCJwcmVjaXNpb24iLCJlcXVhbCIsImlmRWxzZSIsImEiLCJiIiwibm90Iiwibm90RXF1YWwiLCJkdWFsRXF1YWxpdHkiLCJkdWFsTkVxdWFsaXR5IiwiZHVhbEVxdWFsaXR5RXhwcmVzc2lvbiIsIkJpbmRpbmdQYXJzZXIiLCJjb21wbGV4UGFyc2VyIiwiZm9ybWF0dGVyIiwiZHVhbE5FcXVhbGl0eUV4cHJlc3Npb24iLCJlcXVhbENvbXBhcmUiLCJub3RFcXVhbENvbXBhcmUiLCJfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsIiwiaXNUcnV0aHkiLCJhbmQiLCJmYWtlRm9ybWF0dGVyIiwiaXNFZGl0YWJsZSIsIl9fZnVuY3Rpb25OYW1lIiwiZm9ybWF0UmVzdWx0IiwiYWRkVHlwZUluZm9ybWF0aW9uIiwib3IiLCJncmVhdGVyVGhhbiIsImdyZWF0ZXJPckVxdWFsIiwibGVzc09yRXF1YWwiLCJsZXNzVGhhbiIsImZha2VFbnRpdHlUeXBlIiwia2V5cyIsIm5hbWUiLCJmYWtlRm9ybWF0dGVyMiIsImJvb2wiLCJudW1iZXIiLCJmYWtlRm9ybWF0dGVyMyIsImNvbmRpdGlvbiIsIm9uVHJ1ZSIsIm9uRmFsc2UiLCJyZWYiLCJmb28iLCJiYXIiLCJvYmoiLCJjb250ZXh0cyIsImZuIiwiaW52b2NhdGlvbkdyb3VwaW5nIiwibGFiZWwiLCJtb2RlbCIsImlzTmF2aWdhYmxlIiwibXlIYW5kbGVyIiwiYyIsIm15SGFuZGxlck9iaiIsImNvbnRleHQiLCJleHByZXNzaW9uIiwiY29uY2F0IiwibGVuZ3RoIiwiaXNFbXB0eSIsInRyYW5zZm9ybUJpbmRpbmciLCJiaW5kaW5nIiwibW9kZWxOYW1lIiwidHJhbnNmb3JtQmluZGluZ1RvU2FtZVZhbHVlIiwicGF0aCIsInRyYW5zZm9ybVJlY3Vyc2l2ZWx5IiwicmVzb2x2ZUJpbmRpbmdTdHJpbmciXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdDQUEsRUFBQUEsUUFBUSxDQUFDLDZCQUFELEVBQWdDLFlBQVc7QUFDbERDLElBQUFBLEVBQUUsQ0FBQyxXQUFELEVBQWMsWUFBTTtBQUNyQkMsTUFBQUEsTUFBTSxDQUFDQyxjQUFjLENBQUNDLFFBQVEsQ0FBQyxHQUFELENBQVQsQ0FBZixDQUFOLENBQXNDQyxPQUF0QyxDQUE4QyxHQUE5QztBQUNBSCxNQUFBQSxNQUFNLENBQUNDLGNBQWMsQ0FBQ0MsUUFBUSxDQUFDLENBQUQsQ0FBVCxDQUFmLENBQU4sQ0FBb0NDLE9BQXBDLENBQTRDLEdBQTVDO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDQyxRQUFRLENBQUMsSUFBRCxDQUFULENBQWYsQ0FBTixDQUF1Q0MsT0FBdkMsQ0FBK0MsTUFBL0M7QUFDQUgsTUFBQUEsTUFBTSxDQUFDQyxjQUFjLENBQUMsSUFBRCxDQUFmLENBQU4sQ0FBNkJFLE9BQTdCLENBQXFDLE1BQXJDO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDRyx1QkFBRCxDQUFmLENBQU4sQ0FBZ0RELE9BQWhELENBQXdERSxTQUF4RDtBQUNBLEtBTkMsQ0FBRjtBQVFBTixJQUFBQSxFQUFFLENBQUMscUJBQUQsRUFBd0IsWUFBTTtBQUMvQkMsTUFBQUEsTUFBTSxDQUFDQyxjQUFjLENBQUNLLGlCQUFpQixDQUFDLFFBQUQsQ0FBbEIsQ0FBZixDQUFOLENBQW9ESCxPQUFwRCxDQUE0RCxVQUE1RDtBQUNBSCxNQUFB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QUNDLGNBQWMsQ0FBQzJFLG9CQUFvQixDQUFDLEtBQUQsRUFBUSxTQUFSLENBQXJCLENBQWYsQ0FBTixDQUErRHpFLE9BQS9ELENBQXVFLE9BQXZFO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDMkUsb0JBQW9CLENBQUMsTUFBRCxDQUFyQixDQUFmLENBQU4sQ0FBcUR6RSxPQUFyRCxDQUE2RCxNQUE3RDtBQUNBSCxNQUFBQSxNQUFNLENBQUNDLGNBQWMsQ0FBQzJFLG9CQUFvQixDQUFDLGtCQUFELEVBQXFCLFNBQXJCLENBQXJCLENBQWYsQ0FBTixDQUE0RXpFLE9BQTVFLENBQW9GLGtCQUFwRjtBQUNBLEtBUkMsQ0FBRjtBQVNBLEdBOXlCTyxDQUFSIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRhbmQsXG5cdGJpbmRpbmdFeHByZXNzaW9uLFxuXHRjb21waWxlQmluZGluZyxcblx0Y29uc3RhbnQsXG5cdGVxdWFsLFxuXHRFeHByZXNzaW9uLFxuXHRfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsLFxuXHRmbixcblx0Zm9ybWF0UmVzdWx0LFxuXHRhZGRUeXBlSW5mb3JtYXRpb24sXG5cdGdyZWF0ZXJPckVxdWFsLFxuXHRncmVhdGVyVGhhbixcblx0aWZFbHNlLFxuXHRsZXNzT3JFcXVhbCxcblx0bGVzc1RoYW4sXG5cdG5vdCxcblx0bm90RXF1YWwsXG5cdG9yLFxuXHRyZWYsXG5cdGNvbmNhdCxcblx0bGVuZ3RoLFxuXHRpc0VtcHR5LFxuXHR0cmFuc2Zvcm1SZWN1cnNpdmVseSxcblx0QmluZGluZ0V4cHJlc3Npb25FeHByZXNzaW9uLFxuXHRyZXNvbHZlQmluZGluZ1N0cmluZyxcblx0dW5yZXNvbHZlYWJsZUV4cHJlc3Npb24sXG5cdGlzVHJ1dGh5LFxuXHRhbm5vdGF0aW9uRXhwcmVzc2lvblxufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgRW50aXR5VHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgQmluZGluZ1BhcnNlciBmcm9tIFwic2FwL3VpL2Jhc2UvQmluZGluZ1BhcnNlclwiO1xuXG5kZXNjcmliZShcIkJpbmRpbmcgRXhwcmVzc2lvbnMgU3VwcG9ydFwiLCBmdW5jdGlvbigpIHtcblx0aXQoXCJDb25zdGFudHNcIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhjb25zdGFudChcIjFcIikpKS50b0VxdWFsKFwiMVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29uc3RhbnQoMSkpKS50b0VxdWFsKFwiMVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29uc3RhbnQodHJ1ZSkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcodHJ1ZSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh1bnJlc29sdmVhYmxlRXhwcmVzc2lvbikpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0fSk7XG5cblx0aXQoXCJCaW5kaW5nIEV4cHJlc3Npb25zXCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYmluZGluZ0V4cHJlc3Npb24oXCJteVBhdGhcIikpKS50b0VxdWFsKFwie215UGF0aH1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGJpbmRpbmdFeHByZXNzaW9uKFwibXlQYXRoXCIpLCB0cnVlKSkudG9FcXVhbChcIiV7bXlQYXRofVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYmluZGluZ0V4cHJlc3Npb24oXCJteVBhdGhcIiksIHRydWUsIHRydWUpKS50b0VxdWFsKFwiJHtteVBhdGh9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhiaW5kaW5nRXhwcmVzc2lvbihcIm15UGF0aFwiLCBcIm15TW9kZWxcIikpKS50b0VxdWFsKFwie215TW9kZWw+bXlQYXRofVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYmluZGluZ0V4cHJlc3Npb24oXCJteVBhdGhcIiwgXCJteU1vZGVsXCIpLCB0cnVlKSkudG9FcXVhbChcIiV7bXlNb2RlbD5teVBhdGh9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhiaW5kaW5nRXhwcmVzc2lvbihcIm15UGF0aFwiLCBcIm15TW9kZWxcIiksIHRydWUsIHRydWUpKS50b0VxdWFsKFwiJHtteU1vZGVsPm15UGF0aH1cIik7XG5cdFx0Ly8gTm90IHNvIGdyZWF0IHVzYWdlIHRoYXQgd2UgdXNlIGluIHNvbWUgcGxhY2Vcblx0XHRjb25zdCBteUJpbmRpbmdFeHByZXNzaW9uOiBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248YW55PiA9IGJpbmRpbmdFeHByZXNzaW9uKFwibXlQYXRoXCIsIFwibXlNb2RlbFwiKSBhcyBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248XG5cdFx0XHRhbnlcblx0XHQ+O1xuXHRcdG15QmluZGluZ0V4cHJlc3Npb24udGFyZ2V0VHlwZSA9IFwiYm9vbGVhblwiO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhteUJpbmRpbmdFeHByZXNzaW9uKSkudG9FcXVhbChcIntwYXRoOiAnbXlNb2RlbD5teVBhdGgnLCB0YXJnZXRUeXBlOiAnYm9vbGVhbid9XCIpO1xuXHRcdGRlbGV0ZSBteUJpbmRpbmdFeHByZXNzaW9uLnRhcmdldFR5cGU7XG5cdFx0bXlCaW5kaW5nRXhwcmVzc2lvbi5mb3JtYXRPcHRpb25zID0ge1xuXHRcdFx0cGFyc2VLZWVwc0VtcHR5U3RyaW5nOiB0cnVlXG5cdFx0fTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobXlCaW5kaW5nRXhwcmVzc2lvbikpLnRvRXF1YWwoXCJ7cGF0aDogJ215TW9kZWw+bXlQYXRoJywgZm9ybWF0T3B0aW9uczoge3BhcnNlS2VlcHNFbXB0eVN0cmluZzogdHJ1ZX19XCIpO1xuXHRcdGRlbGV0ZSBteUJpbmRpbmdFeHByZXNzaW9uLmZvcm1hdE9wdGlvbnM7XG5cdFx0bXlCaW5kaW5nRXhwcmVzc2lvbi5jb25zdHJhaW50cyA9IHt9O1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhteUJpbmRpbmdFeHByZXNzaW9uKSkudG9FcXVhbChcIntwYXRoOiAnbXlNb2RlbD5teVBhdGgnfVwiKTtcblx0XHRteUJpbmRpbmdFeHByZXNzaW9uLmNvbnN0cmFpbnRzLnNjYWxlID0gMTtcblx0XHRteUJpbmRpbmdFeHByZXNzaW9uLmNvbnN0cmFpbnRzLnByZWNpc2lvbiA9IDU7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG15QmluZGluZ0V4cHJlc3Npb24pKS50b0VxdWFsKFwie3BhdGg6ICdteU1vZGVsPm15UGF0aCcsIGNvbnN0cmFpbnRzOiB7c2NhbGU6IDEsIHByZWNpc2lvbjogNX19XCIpO1xuXHR9KTtcblxuXHRpdChcIkNvbXBhcmlzb25cIiwgKCkgPT4ge1xuXHRcdC8vIFwiZXF1YWwoaWZFbHNlKHgsIGEsIGEpLCBhKSAtLT4gdHJ1ZVwiXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiksIGNvbnN0YW50KFwiQVwiKSwgY29uc3RhbnQoXCJBXCIpKSwgY29uc3RhbnQoXCJBXCIpKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdC8vXCJlcXVhbChpZkVsc2UoeCwgYiwgYiksIGEpIC0tPiBmYWxzZVwiO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBjb25zdGFudChcIkJcIiksIGNvbnN0YW50KFwiQlwiKSksIGNvbnN0YW50KFwiQVwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJmYWxzZVwiXG5cdFx0KTtcblx0XHQvL1wiKHVzaW5nIGNvbnN0YW50cykgZXF1YWwoaWZFbHNlKHgsIGEsIGIpLCBhKSAtLT4geFwiO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBjb25zdGFudChcIkFcIiksIGNvbnN0YW50KFwiQlwiKSksIGNvbnN0YW50KFwiQVwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7aXNFZGl0YWJsZX1cIlxuXHRcdCk7XG5cdFx0Ly9cIih1c2luZyBiaW5kaW5nIGV4cHJlc3Npb25zKSBlcXVhbChpZkVsc2UoeCwgYSwgYiksIGEpIC0tPiB4IHx8IGIgPT09IGFcIjtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0ZXF1YWwoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiaXNFZGl0YWJsZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJBXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIikpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIikpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFwiez0gJXtpc0VkaXRhYmxlfSB8fCAle0J9ID09PSAle0F9fVwiKTtcblxuXHRcdC8vXCJlcXVhbChpZkVsc2UoeCwgYSwgYiksIGMpIC0tPiBubyByZWR1Y3Rpb25cIjtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhlcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSksIGNvbnN0YW50KFwiQVwiKSkpXG5cdFx0KS50b0VxdWFsKFwiez0gKCV7aXNFZGl0YWJsZX0gPyAle0F9IDogJXtCfSkgPT09ICdBJ31cIik7XG5cblx0XHRjb25zdCBhID0gaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiaXNFZGl0YWJsZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJBXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIikpO1xuXHRcdGNvbnN0IGIgPSBpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSk7XG5cdFx0Ly9cImVxdWFsKGEsIGEpIC0tPiB0cnVlXCJcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoYSwgYikpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHQvLyBcImVxdWFsKG51bGwsIG51bGwpIC0tPiB0cnVlXCJcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoY29uc3RhbnQobnVsbCksIGNvbnN0YW50KG51bGwpKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdC8vIHNpbXBsaWZ5IGlmIGVsc2Ugd2hlbiBvblRydWUgYW5kIG9uRmFsc2UgY2Fubm90IGJlIGVxdWFsIHRvIHJpZ2h0RXhwcmVzc2lvbiBpbiBjYXNlXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgY29uc3RhbnQoXCIwXCIpLCBjb25zdGFudChcIjFcIikpLCBjb25zdGFudChcIjJcIikpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKGVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJBXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIikpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkNcIikpKVxuXHRcdCkubm90LnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBjb25zdGFudChcIjBcIiksIGNvbnN0YW50KFwiMVwiKSksIGJpbmRpbmdFeHByZXNzaW9uKFwiYmFyXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICgle2Zvb30gPyAnMCcgOiAnMScpID09PSAle2Jhcn19XCJcblx0XHQpO1xuXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgY29uc3RhbnQoXCIwXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIikpLCBjb25zdGFudChcIjBcIikpKSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtmb299IHx8ICV7Qn0gPT09ICcwJ31cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJCXCIpLCBjb25zdGFudChcIjFcIikpLCBjb25zdGFudChcIjFcIikpKSkudG9FcXVhbChcblx0XHRcdFwiez0gISV7Zm9vfSB8fCAle0J9ID09PSAnMSd9XCJcblx0XHQpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIGNvbnN0YW50KFwiMVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJCXCIpKSwgY29uc3RhbnQoXCIxXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7Zm9vfSB8fCAle0J9ID09PSAnMSd9XCJcblx0XHQpO1xuXG5cdFx0Ly8gXCJub3RFcXVhbChhLCBhKSAtLT4gZmFsc2VcIlxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhub3RFcXVhbChhLCBiKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHQvLyBcIm5vdEVxdWFsKG51bGwsIG51bGwpIC0tPiBmYWxzZVwiXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdEVxdWFsKGNvbnN0YW50KG51bGwpLCBjb25zdGFudChudWxsKSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90RXF1YWwodW5yZXNvbHZlYWJsZUV4cHJlc3Npb24sIGNvbnN0YW50KDMpKSkpLnRvRXF1YWwodW5kZWZpbmVkKTtcblxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhub3RFcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIGNvbnN0YW50KFwiMFwiKSwgY29uc3RhbnQoXCIxXCIpKSwgY29uc3RhbnQoXCIyXCIpKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHRub3RFcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJCXCIpKSwgYmluZGluZ0V4cHJlc3Npb24oXCJDXCIpKVxuXHRcdFx0KVxuXHRcdCkubm90LnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhub3RFcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIGNvbnN0YW50KFwiMFwiKSwgY29uc3RhbnQoXCIxXCIpKSwgYmluZGluZ0V4cHJlc3Npb24oXCJiYXJcIikpKSkudG9FcXVhbChcblx0XHRcdFwiez0gKCV7Zm9vfSA/ICcwJyA6ICcxJykgIT09ICV7YmFyfX1cIlxuXHRcdCk7XG5cblx0XHRjb25zdCBkdWFsRXF1YWxpdHkgPSBjb21waWxlQmluZGluZyhlcXVhbChlcXVhbCgxMjMsIGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSwgZXF1YWwoMTM3LCBiaW5kaW5nRXhwcmVzc2lvbihcImJhclwiKSkpKTtcblx0XHRjb25zdCBkdWFsTkVxdWFsaXR5ID0gY29tcGlsZUJpbmRpbmcobm90RXF1YWwoZXF1YWwoMTIzLCBiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSksIGVxdWFsKDEzNywgYmluZGluZ0V4cHJlc3Npb24oXCJiYXJcIikpKSk7XG5cdFx0ZXhwZWN0KGR1YWxFcXVhbGl0eSkudG9FcXVhbChcIns9ICgxMjMgPT09ICV7Zm9vfSkgPT09ICgxMzcgPT09ICV7YmFyfSl9XCIpO1xuXHRcdGV4cGVjdChkdWFsTkVxdWFsaXR5KS50b0VxdWFsKFwiez0gKDEyMyA9PT0gJXtmb299KSAhPT0gKDEzNyA9PT0gJXtiYXJ9KX1cIik7XG5cblx0XHRjb25zdCBkdWFsRXF1YWxpdHlFeHByZXNzaW9uID0gQmluZGluZ1BhcnNlci5jb21wbGV4UGFyc2VyKGR1YWxFcXVhbGl0eSk7XG5cdFx0Ly8gKDEyMyA9PT0gMTIzKSA9PT0gKDEzNyA9PT0gMTM3KSAtPiB0cnVlID09PSB0cnVlIC0+IHRydWVcblx0XHRleHBlY3QoZHVhbEVxdWFsaXR5RXhwcmVzc2lvbi5mb3JtYXR0ZXIoMTIzLCAxMzcpKS50b0VxdWFsKHRydWUpO1xuXHRcdC8vICgxMjMgPT09IDEyMykgPT09ICgxMzcgPT09IDEzNikgLT4gdHJ1ZSA9PT0gZmFsc2UgLT4gZmFsc2Vcblx0XHRleHBlY3QoZHVhbEVxdWFsaXR5RXhwcmVzc2lvbi5mb3JtYXR0ZXIoMTIzLCAxMzYpKS50b0VxdWFsKGZhbHNlKTtcblxuXHRcdGNvbnN0IGR1YWxORXF1YWxpdHlFeHByZXNzaW9uID0gQmluZGluZ1BhcnNlci5jb21wbGV4UGFyc2VyKGR1YWxORXF1YWxpdHkpO1xuXHRcdC8vICgxMjMgPT09IDEyMykgIT09ICgxMzcgPT09IDEzNykgLT4gdHJ1ZSAhPT0gdHJ1ZSAtPiBmYWxzZVxuXHRcdGV4cGVjdChkdWFsTkVxdWFsaXR5RXhwcmVzc2lvbi5mb3JtYXR0ZXIoMTIzLCAxMzcpKS50b0VxdWFsKGZhbHNlKTtcblx0XHQvLyAoMTIzID09PSAxMjMpICE9PSAoMTM3ID09PSAxMzYpIC0+IHRydWUgIT09IGZhbHNlIC0+IHRydWVcblx0XHRleHBlY3QoZHVhbE5FcXVhbGl0eUV4cHJlc3Npb24uZm9ybWF0dGVyKDEyMywgMTM2KSkudG9FcXVhbCh0cnVlKTtcblx0XHQvLyAoMTIzID09PSAxMzcpICE9PSAoMTM3ID09PSAxMzcpIC0+IGZhbHNlICE9PSB0cnVlIC0+IHRydWVcblx0XHRleHBlY3QoZHVhbE5FcXVhbGl0eUV4cHJlc3Npb24uZm9ybWF0dGVyKDEzNywgMTM3KSkudG9FcXVhbCh0cnVlKTtcblxuXHRcdC8vIGNvbXBhcmluZyB3aXRoIGJvb2xlYW4gY29uc3RhbnRzXG5cdFx0Y29uc3QgZXF1YWxDb21wYXJlID0gXCJ7PSAxMjMgPT09ICV7Zm9vfX1cIjtcblx0XHRjb25zdCBub3RFcXVhbENvbXBhcmUgPSBcIns9IDEyMyAhPT0gJXtmb299fVwiO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChlcXVhbCgxMjMsIGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSwgY29uc3RhbnQodHJ1ZSkpKSkudG9FcXVhbChlcXVhbENvbXBhcmUpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChlcXVhbCgxMjMsIGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSwgY29uc3RhbnQoZmFsc2UpKSkpLnRvRXF1YWwobm90RXF1YWxDb21wYXJlKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoY29uc3RhbnQodHJ1ZSksIGVxdWFsKDEyMywgYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpKSkpLnRvRXF1YWwoZXF1YWxDb21wYXJlKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoY29uc3RhbnQoZmFsc2UpLCBlcXVhbCgxMjMsIGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSkpKS50b0VxdWFsKG5vdEVxdWFsQ29tcGFyZSk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdEVxdWFsKGVxdWFsKDEyMywgYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpLCBjb25zdGFudCh0cnVlKSkpKS50b0VxdWFsKG5vdEVxdWFsQ29tcGFyZSk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdEVxdWFsKGVxdWFsKDEyMywgYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpLCBjb25zdGFudChmYWxzZSkpKSkudG9FcXVhbChlcXVhbENvbXBhcmUpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhub3RFcXVhbChjb25zdGFudCh0cnVlKSwgZXF1YWwoMTIzLCBiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSkpKSkudG9FcXVhbChub3RFcXVhbENvbXBhcmUpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhub3RFcXVhbChjb25zdGFudChmYWxzZSksIGVxdWFsKDEyMywgYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpKSkpLnRvRXF1YWwoZXF1YWxDb21wYXJlKTtcblx0fSk7XG5cblx0aXQoXCJEYXRhIG1vZGVsIGRlZmluaXRpb25cIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwidWlcIikpKS50b0VxdWFsKFwie3VpPmVkaXRNb2RlfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkudG9FcXVhbChcIntTYWxlc09yZGVyfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYmluZGluZ0V4cHJlc3Npb24odW5kZWZpbmVkKSkpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0fSk7XG5cblx0aXQoXCJDb25zdGFudCBFcXVhbGl0eVwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGNvbnN0YW50KFwiMVwiKSwgY29uc3RhbnQoXCIxXCIpKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChjb25zdGFudCgxKSwgY29uc3RhbnQoMSkpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGNvbnN0YW50KDEpLCBjb25zdGFudCgxNSkpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKGNvbnN0YW50KHRydWUpLCBjb25zdGFudChmYWxzZSkpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdEVxdWFsKGNvbnN0YW50KFwiMVwiKSwgY29uc3RhbnQoXCIxXCIpKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90RXF1YWwoY29uc3RhbnQoMSksIGNvbnN0YW50KDEpKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90RXF1YWwoY29uc3RhbnQoMSksIGNvbnN0YW50KDE1KSkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90RXF1YWwoY29uc3RhbnQodHJ1ZSksIGNvbnN0YW50KGZhbHNlKSkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwodW5kZWZpbmVkLCB1bmRlZmluZWQpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKHVuZGVmaW5lZCwgdHJ1ZSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKHVuZGVmaW5lZCwgZmFsc2UpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbCh1bmRlZmluZWQsIDEpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbCh1bmRlZmluZWQsIFwiZm9vXCIpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbCh1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiwgXCJmb29cIikpKS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdH0pO1xuXG5cdGl0KFwiRXhwcmVzc2lvbiBFcXVhbGl0eVwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoY29uc3RhbnQodHJ1ZSkgYXMgRXhwcmVzc2lvbjxhbnk+LCBjb25zdGFudCg0KSBhcyBFeHByZXNzaW9uPGFueT4pKS50b0VxdWFsKGZhbHNlKTtcblx0XHRleHBlY3QoX2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbChjb25zdGFudChcIjFcIiksIGNvbnN0YW50KFwiMVwiKSkpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0ZXhwZWN0KF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoY29uc3RhbnQoXCIxXCIpLCBjb25zdGFudChcIjJcIikpKS50b0VxdWFsKGZhbHNlKTtcblx0XHRleHBlY3QoX2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbChjb25zdGFudChcIjFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSkudG9FcXVhbChmYWxzZSk7XG5cdFx0ZXhwZWN0KF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwobm90KGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSwgbm90KGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSkpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0ZXhwZWN0KF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoaXNUcnV0aHkoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpLCBpc1RydXRoeShiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSkpKS50b0VxdWFsKHRydWUpO1xuXHRcdGV4cGVjdChfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsKGlzVHJ1dGh5KGNvbnN0YW50KFwiZm9vXCIpKSwgY29uc3RhbnQodHJ1ZSkpKS50b0VxdWFsKHRydWUpO1xuXHRcdGV4cGVjdChfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSkpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0X2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbChcblx0XHRcdFx0YW5kKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcImJhclwiKSksXG5cdFx0XHRcdGFuZChiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJiYXJcIikpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKHRydWUpO1xuXHRcdGV4cGVjdChcblx0XHRcdF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoXG5cdFx0XHRcdGFuZChiaW5kaW5nRXhwcmVzc2lvbihcImJhclwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpLFxuXHRcdFx0XHRhbmQoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiYmFyXCIpKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbCh0cnVlKTtcblxuXHRcdGNvbnN0IGZha2VGb3JtYXR0ZXIgPSBmdW5jdGlvbihpc0VkaXRhYmxlOiBzdHJpbmcpIHtcblx0XHRcdC8vIERvIE5vdGhpbmdcblx0XHRcdHJldHVybiBcIk5vdGhpbmdcIjtcblx0XHR9O1xuXHRcdGZha2VGb3JtYXR0ZXIuX19mdW5jdGlvbk5hbWUgPSBcIk15Rm9ybWF0dGVyTmFtZVwiO1xuXHRcdGV4cGVjdChcblx0XHRcdF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoXG5cdFx0XHRcdGZvcm1hdFJlc3VsdChbYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpXSwgZmFrZUZvcm1hdHRlciksXG5cdFx0XHRcdGZvcm1hdFJlc3VsdChbYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpXSwgZmFrZUZvcm1hdHRlcilcblx0XHRcdClcblx0XHQpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0X2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbChcblx0XHRcdFx0Zm9ybWF0UmVzdWx0KFtiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwiWFhcIildLCBmYWtlRm9ybWF0dGVyKSxcblx0XHRcdFx0Zm9ybWF0UmVzdWx0KFtiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwidWlcIildLCBmYWtlRm9ybWF0dGVyKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChmYWxzZSk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0X2NoZWNrRXhwcmVzc2lvbnNBcmVFcXVhbChcblx0XHRcdFx0Zm9ybWF0UmVzdWx0KFtjb25zdGFudChcIiV7dWk+L2VkaXRNb2RlfVwiKV0sIGZha2VGb3JtYXR0ZXIpLFxuXHRcdFx0XHRmb3JtYXRSZXN1bHQoW2JpbmRpbmdFeHByZXNzaW9uKFwiZWRpdE1vZGVcIiwgXCJ1aVwiKV0sIGZha2VGb3JtYXR0ZXIpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKGZhbHNlKTtcblxuXHRcdGV4cGVjdChcblx0XHRcdF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoXG5cdFx0XHRcdGFkZFR5cGVJbmZvcm1hdGlvbihbYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpXSwgXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0XCIpLFxuXHRcdFx0XHRhZGRUeXBlSW5mb3JtYXRpb24oW2JpbmRpbmdFeHByZXNzaW9uKFwiZWRpdE1vZGVcIiwgXCJ1aVwiKV0sIFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdFwiKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbCh0cnVlKTtcblx0XHRleHBlY3QoXG5cdFx0XHRfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsKFxuXHRcdFx0XHRhZGRUeXBlSW5mb3JtYXRpb24oW2JpbmRpbmdFeHByZXNzaW9uKFwiZWRpdE1vZGVcIiwgXCJYWFwiKV0sIFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdFwiKSxcblx0XHRcdFx0YWRkVHlwZUluZm9ybWF0aW9uKFtiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwidWlcIildLCBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlVuaXRcIilcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoZmFsc2UpO1xuXHRcdGV4cGVjdChcblx0XHRcdF9jaGVja0V4cHJlc3Npb25zQXJlRXF1YWwoXG5cdFx0XHRcdGFkZFR5cGVJbmZvcm1hdGlvbihbY29uc3RhbnQoXCIle3VpPi9lZGl0TW9kZX1cIildLCBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlVuaXRcIiksXG5cdFx0XHRcdGFkZFR5cGVJbmZvcm1hdGlvbihbYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpXSwgXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0XCIpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKGZhbHNlKTtcblx0XHRleHBlY3QoXG5cdFx0XHRfY2hlY2tFeHByZXNzaW9uc0FyZUVxdWFsKFxuXHRcdFx0XHRhZGRUeXBlSW5mb3JtYXRpb24oW2JpbmRpbmdFeHByZXNzaW9uKFwiZWRpdE1vZGVcIiwgXCJ1aVwiKV0sIFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdFwiKSxcblx0XHRcdFx0YWRkVHlwZUluZm9ybWF0aW9uKFtiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwidWlcIildLCBcInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLkN1cnJlbmN5XCIpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKGZhbHNlKTtcblx0fSk7XG5cblx0aXQoXCJBbmQgb3BlcmF0b3JcIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhhbmQoY29uc3RhbnQodHJ1ZSksIGNvbnN0YW50KGZhbHNlKSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFuZChjb25zdGFudCh0cnVlKSwgY29uc3RhbnQodHJ1ZSkpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFuZChjb25zdGFudCh0cnVlKSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpLnRvRXF1YWwoXCJ7U2FsZXNPcmRlcn1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFuZChjb25zdGFudChmYWxzZSksIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFuZChiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiwgXCJ1aVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7dWk+aXNFZGl0YWJsZX0gJiYgJXtTYWxlc09yZGVyfX1cIlxuXHRcdCk7XG5cblx0XHRjb25zdCBhID0gYW5kKGJpbmRpbmdFeHByZXNzaW9uKFwiYTFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiYTJcIikpO1xuXHRcdGNvbnN0IGIgPSBhbmQoYmluZGluZ0V4cHJlc3Npb24oXCJiMVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJiMlwiKSk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFuZChhLCBiKSkpLnRvRXF1YWwoXCJ7PSAle2ExfSAmJiAle2EyfSAmJiAle2IxfSAmJiAle2IyfX1cIik7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYW5kKGEsIGEpKSkudG9FcXVhbChcIns9ICV7YTF9ICYmICV7YTJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYW5kKGEsIGFuZChhLCBhKSkpKS50b0VxdWFsKFwiez0gJXthMX0gJiYgJXthMn19XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhhbmQoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIG5vdChiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSkpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhhbmQoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIiksIG5vdChiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSksIHVucmVzb2x2ZWFibGVFeHByZXNzaW9uKSkpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0fSk7XG5cblx0aXQoXCJPciBvcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG9yKGNvbnN0YW50KHRydWUpLCBjb25zdGFudChmYWxzZSkpKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG9yKGNvbnN0YW50KGZhbHNlKSwgY29uc3RhbnQoZmFsc2UpKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcob3IoY29uc3RhbnQodHJ1ZSksIGNvbnN0YW50KHRydWUpKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvcihjb25zdGFudChmYWxzZSksIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKS50b0VxdWFsKFwie1NhbGVzT3JkZXJ9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvcihjb25zdGFudCh0cnVlKSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvcihiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiwgXCJ1aVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7dWk+aXNFZGl0YWJsZX0gfHwgJXtTYWxlc09yZGVyfX1cIlxuXHRcdCk7XG5cblx0XHRjb25zdCBhID0gb3IoYmluZGluZ0V4cHJlc3Npb24oXCJhMVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJhMlwiKSk7XG5cdFx0Y29uc3QgYiA9IG9yKGJpbmRpbmdFeHByZXNzaW9uKFwiYjFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiYjJcIikpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvcihhLCBiKSkpLnRvRXF1YWwoXCJ7PSAle2ExfSB8fCAle2EyfSB8fCAle2IxfSB8fCAle2IyfX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG9yKGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpLCBub3QoYmluZGluZ0V4cHJlc3Npb24oXCJmb29cIikpKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvcihiaW5kaW5nRXhwcmVzc2lvbihcImZvb1wiKSwgbm90KGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSwgdW5yZXNvbHZlYWJsZUV4cHJlc3Npb24pKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHR9KTtcblxuXHRpdChcIk5vdCBvcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdChjb25zdGFudCh0cnVlKSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdChiaW5kaW5nRXhwcmVzc2lvbihcIlNhbGVzT3JkZXJcIikpKSkudG9FcXVhbChcIns9ICEle1NhbGVzT3JkZXJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KHVucmVzb2x2ZWFibGVFeHByZXNzaW9uKSkpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KGFuZChiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiwgXCJ1aVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAhKCV7dWk+aXNFZGl0YWJsZX0gJiYgJXtTYWxlc09yZGVyfSl9XCJcblx0XHQpO1xuXHR9KTtcblxuXHRpdChcIk5vdCBvcGVyYXRvciBjYW4gc2ltcGxpZnkgc29tZSBleHByZXNzaW9uc1wiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdChhbmQoZXF1YWwoMSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSwgZXF1YWwoMiwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpKSkudG9FcXVhbChcblx0XHRcdFwiez0gMSAhPT0gJXtTYWxlc09yZGVyfSB8fCAyICE9PSAle1NhbGVzT3JkZXJ9fVwiXG5cdFx0KTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KG9yKGVxdWFsKDEsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSksIGVxdWFsKDIsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9IDEgIT09ICV7U2FsZXNPcmRlcn0gJiYgMiAhPT0gJXtTYWxlc09yZGVyfX1cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vdChlcXVhbCgxLCBiaW5kaW5nRXhwcmVzc2lvbihcIlNhbGVzT3JkZXJcIikpKSkpLnRvRXF1YWwoXCJ7PSAxICE9PSAle1NhbGVzT3JkZXJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KG5vdEVxdWFsKDEsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKSkudG9FcXVhbChcIns9IDEgPT09ICV7U2FsZXNPcmRlcn19XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhub3QoZ3JlYXRlclRoYW4oMSwgYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSkpKS50b0VxdWFsKFwiez0gMSA8PSAle1NhbGVzT3JkZXJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KGdyZWF0ZXJPckVxdWFsKDEsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKSkudG9FcXVhbChcIns9IDEgPCAle1NhbGVzT3JkZXJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KGxlc3NPckVxdWFsKDEsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKSkudG9FcXVhbChcIns9IDEgPiAle1NhbGVzT3JkZXJ9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KGxlc3NUaGFuKDEsIGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSkpKSkudG9FcXVhbChcIns9IDEgPj0gJXtTYWxlc09yZGVyfX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGxlc3NUaGFuKFwiYVwiLCBcImJcIikpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm90KG5vdChiaW5kaW5nRXhwcmVzc2lvbihcIlNhbGVzT3JkZXJcIikpKSkpLnRvRXF1YWwoXCJ7U2FsZXNPcmRlcn1cIik7XG5cblx0XHQvLyBcIk9wdGltaXplIG5lc3RlZCBpZi1lbHNlIChjb25kaXRpb24pXCJcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhpZkVsc2Uobm90RXF1YWwoaWZFbHNlKGVxdWFsKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCA1KSwgMCwgMyksIDEpLCBjb25zdGFudChcImFcIiksIGNvbnN0YW50KFwiYlwiKSkpXG5cdFx0KS50b0VxdWFsKFwiYVwiKTtcblx0fSk7XG5cblx0aXQoXCJpc1RydXRoeSBvcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGlzVHJ1dGh5KGJpbmRpbmdFeHByZXNzaW9uKFwiZm9vXCIpKSkpLnRvRXF1YWwoXCJ7PSAhISV7Zm9vfX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGlzVHJ1dGh5KGNvbnN0YW50KFwiYVwiKSkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0fSk7XG5cblx0aXQoXCJDb21wbGV4IEVxdWFsaXR5XCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpLCBjb25zdGFudChcIkVkaXRhYmxlXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7dWk+ZWRpdE1vZGV9ID09PSAnRWRpdGFibGUnfVwiXG5cdFx0KTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoY29uc3RhbnQoMzQpLCBiaW5kaW5nRXhwcmVzc2lvbihcIlNhbGVzT3JkZXJcIikpKSkudG9FcXVhbChcIns9IDM0ID09PSAle1NhbGVzT3JkZXJ9fVwiKTtcblx0fSk7XG5cblx0aXQoXCJGb3JtYXR0ZXIgY2FsbFwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgZmFrZUVudGl0eVR5cGUgPSB7XG5cdFx0XHRrZXlzOiBbeyBuYW1lOiBcIklEXCIgfSwgeyBuYW1lOiBcIlRvdG9cIiB9XVxuXHRcdH0gYXMgRW50aXR5VHlwZTtcblx0XHRjb25zdCBmYWtlRm9ybWF0dGVyID0gZnVuY3Rpb24oaXNFZGl0YWJsZTogc3RyaW5nKSB7XG5cdFx0XHQvLyBEbyBOb3RoaW5nXG5cdFx0XHRyZXR1cm4gXCJOb3RoaW5nXCI7XG5cdFx0fTtcblx0XHRmYWtlRm9ybWF0dGVyLl9fZnVuY3Rpb25OYW1lID0gXCJNeUZvcm1hdHRlck5hbWVcIjtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZm9ybWF0UmVzdWx0KFtiaW5kaW5nRXhwcmVzc2lvbihcImVkaXRNb2RlXCIsIFwidWlcIildLCBmYWtlRm9ybWF0dGVyKSkpLnRvRXF1YWwoXG5cdFx0XHRcIntwYXRoOiAndWk+ZWRpdE1vZGUnLCB0YXJnZXRUeXBlOiAnYW55JywgZm9ybWF0dGVyOiAnTXlGb3JtYXR0ZXJOYW1lJ31cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZvcm1hdFJlc3VsdChbXCJZZWxsb3dcIl0sIGZha2VGb3JtYXR0ZXIpKSkudG9FcXVhbChcInt2YWx1ZTogJ1llbGxvdycsIGZvcm1hdHRlcjogJ015Rm9ybWF0dGVyTmFtZSd9XCIpO1xuXHRcdC8vPz9cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZm9ybWF0UmVzdWx0KFtcIlllbGxvd1wiXSwgZmFrZUZvcm1hdHRlciwgZmFrZUVudGl0eVR5cGUpKSkudG9FcXVhbChcblx0XHRcdFwie3BhcnRzOiBbe3ZhbHVlOiAnWWVsbG93J30sIHtwYXRoOiAnSUQnLCB0YXJnZXRUeXBlOiAnYW55J30sIHtwYXRoOiAnVG90bycsIHRhcmdldFR5cGU6ICdhbnknfV0sIGZvcm1hdHRlcjogJ015Rm9ybWF0dGVyTmFtZSd9XCJcblx0XHQpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmb3JtYXRSZXN1bHQoW2JpbmRpbmdFeHByZXNzaW9uKFwiSGVsbG9cIildLCBmYWtlRm9ybWF0dGVyLCBmYWtlRW50aXR5VHlwZSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7cGF0aDogJ0hlbGxvJywgdGFyZ2V0VHlwZTogJ2FueScsIGZvcm1hdHRlcjogJ015Rm9ybWF0dGVyTmFtZSd9XCJcblx0XHQpO1xuXG5cdFx0Y29uc3QgZmFrZUZvcm1hdHRlcjIgPSBmdW5jdGlvbihpc0VkaXRhYmxlOiBzdHJpbmcsIGJvb2w6IGJvb2xlYW4sIG51bWJlcjogbnVtYmVyKSB7XG5cdFx0XHQvLyBEbyBOb3RoaW5nXG5cdFx0XHRyZXR1cm4gXCJOb3RoaW5nXCI7XG5cdFx0fTtcblx0XHRmYWtlRm9ybWF0dGVyMi5fX2Z1bmN0aW9uTmFtZSA9IFwiTXlGb3JtYXR0ZXJOYW1lXCI7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZvcm1hdFJlc3VsdChbXCJZZWxsb3dcIiwgZmFsc2UsIDQyXSwgZmFrZUZvcm1hdHRlcjIpKSkudG9FcXVhbChcblx0XHRcdFwie3BhcnRzOiBbe3ZhbHVlOiAnWWVsbG93J30sIHt2YWx1ZTogJ2ZhbHNlJ30sIHt2YWx1ZTogNDJ9XSwgZm9ybWF0dGVyOiAnTXlGb3JtYXR0ZXJOYW1lJ31cIlxuXHRcdCk7XG5cblx0XHRjb25zdCBmYWtlRm9ybWF0dGVyMyA9IGZ1bmN0aW9uKGJvb2w6IGJvb2xlYW4sIG51bWJlcjogbnVtYmVyKSB7XG5cdFx0XHQvLyBEbyBOb3RoaW5nXG5cdFx0XHRyZXR1cm4gXCJOb3RoaW5nXCI7XG5cdFx0fTtcblx0XHRmYWtlRm9ybWF0dGVyMy5fX2Z1bmN0aW9uTmFtZSA9IFwiTXlGb3JtYXR0ZXJOYW1lM1wiO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmb3JtYXRSZXN1bHQoW2JpbmRpbmdFeHByZXNzaW9uKFwic29tZXRoaW5nQm9vbGVhblwiKSwgNDJdLCBmYWtlRm9ybWF0dGVyMywgZmFrZUVudGl0eVR5cGUpKSkudG9FcXVhbChcblx0XHRcdFwie3BhcnRzOiBbe3BhdGg6ICdzb21ldGhpbmdCb29sZWFuJywgdGFyZ2V0VHlwZTogJ2FueSd9LCB7dmFsdWU6IDQyfV0sIGZvcm1hdHRlcjogJ015Rm9ybWF0dGVyTmFtZTMnfVwiXG5cdFx0KTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhmb3JtYXRSZXN1bHQoW2JpbmRpbmdFeHByZXNzaW9uKFwic29tZXRoaW5nQm9vbGVhblwiKSwgdW5yZXNvbHZlYWJsZUV4cHJlc3Npb25dLCBmYWtlRm9ybWF0dGVyMywgZmFrZUVudGl0eVR5cGUpKVxuXHRcdCkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHR9KTtcblxuXHRpdChcIkNvbXBsZXggdHlwZSBjYWxsXCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYWRkVHlwZUluZm9ybWF0aW9uKFtiaW5kaW5nRXhwcmVzc2lvbihcInZhbHVlXCIpXSwgXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0XCIpKSkudG9FcXVhbChcblx0XHRcdFwie3BhdGg6ICd2YWx1ZScsIHRhcmdldFR5cGU6ICdhbnknLCB0eXBlOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuVW5pdCd9XCJcblx0XHQpO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKGFkZFR5cGVJbmZvcm1hdGlvbihbYmluZGluZ0V4cHJlc3Npb24oXCJ2YWx1ZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJ1bml0XCIpXSwgXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0XCIpKVxuXHRcdCkudG9FcXVhbChcblx0XHRcdFwie21vZGU6J1R3b1dheScsIHBhcnRzOlt7cGF0aDogJ3ZhbHVlJywgdGFyZ2V0VHlwZTogJ2FueSd9LHtwYXRoOiAndW5pdCcsIHRhcmdldFR5cGU6ICdhbnknfSx7bW9kZTonT25lVGltZScscGF0aDonLyMjQEByZXF1ZXN0VW5pdHNPZk1lYXN1cmUnLHRhcmdldFR5cGU6J2FueSd9XSx0eXBlOidzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0J31cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdGFkZFR5cGVJbmZvcm1hdGlvbihbYmluZGluZ0V4cHJlc3Npb24oXCJ2YWx1ZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJjdXJyZW5jeVwiKV0sIFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuQ3VycmVuY3lcIilcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXG5cdFx0XHRcInttb2RlOidUd29XYXknLCBwYXJ0czpbe3BhdGg6ICd2YWx1ZScsIHRhcmdldFR5cGU6ICdhbnknfSx7cGF0aDogJ2N1cnJlbmN5JywgdGFyZ2V0VHlwZTogJ2FueSd9LHttb2RlOidPbmVUaW1lJyxwYXRoOicvIyNAQHJlcXVlc3RDdXJyZW5jeUNvZGVzJyx0YXJnZXRUeXBlOidhbnknfV0sdHlwZTonc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuQ3VycmVuY3knfVwiXG5cdFx0KTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYWRkVHlwZUluZm9ybWF0aW9uKFtiaW5kaW5nRXhwcmVzc2lvbihcInZhbHVlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcImN1cnJlbmN5XCIpXSwgXCJkZWZhdWx0VHlwZVwiKSkpLnRvRXF1YWwoXG5cdFx0XHRcInttb2RlOidUd29XYXknLCBwYXJ0czpbe3BhdGg6ICd2YWx1ZScsIHRhcmdldFR5cGU6ICdhbnknfSx7cGF0aDogJ2N1cnJlbmN5JywgdGFyZ2V0VHlwZTogJ2FueSd9XSwgdHlwZTogJ2RlZmF1bHRUeXBlJ31cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdGFkZFR5cGVJbmZvcm1hdGlvbihbYmluZGluZ0V4cHJlc3Npb24oXCJ2YWx1ZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJjdXJyZW5jeVwiKSwgdW5yZXNvbHZlYWJsZUV4cHJlc3Npb25dLCBcImRlZmF1bHRUeXBlXCIpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdH0pO1xuXG5cdGl0KFwiSWYtRWxzZSBvcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdGlmRWxzZShlcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcIi9lZGl0TW9kZVwiLCBcInVpXCIpLCBjb25zdGFudChcIkVkaXRhYmxlXCIpKSwgY29uc3RhbnQoXCJTaW5nbGVTZWxlY3RcIiksIGNvbnN0YW50KFwiTm9uZVwiKSlcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXCJ7PSAle3VpPi9lZGl0TW9kZX0gPT09ICdFZGl0YWJsZScgPyAnU2luZ2xlU2VsZWN0JyA6ICdOb25lJ31cIik7XG5cdFx0Ly8gQmluZGluZyBzaW1wbGlmaWNhdGlvblxuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKGlmRWxzZShlcXVhbChjb25zdGFudChcIkVkaXRhYmxlXCIpLCBjb25zdGFudChcIkVkaXRhYmxlXCIpKSwgY29uc3RhbnQoXCJTaW5nbGVTZWxlY3RcIiksIGNvbnN0YW50KFwiTm9uZVwiKSkpXG5cdFx0KS50b0VxdWFsKFwiU2luZ2xlU2VsZWN0XCIpO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKGlmRWxzZShlcXVhbChjb25zdGFudChcIkVkaXRhYmxlXCIpLCB1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiksIGNvbnN0YW50KFwiU2luZ2xlU2VsZWN0XCIpLCBjb25zdGFudChcIk5vbmVcIikpKVxuXHRcdCkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKGlmRWxzZShlcXVhbChjb25zdGFudChcIkVkaXRhYmxlXCIpLCBjb25zdGFudChcIkVkaXRhYmxlXCIpKSwgdW5yZXNvbHZlYWJsZUV4cHJlc3Npb24sIGNvbnN0YW50KFwiTm9uZVwiKSkpXG5cdFx0KS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoaWZFbHNlKGVxdWFsKGNvbnN0YW50KFwiRWRpdGFibGVcIiksIGNvbnN0YW50KFwiRWRpdGFibGVcIikpLCBjb25zdGFudChcIlNpbmdsZVNlbGVjdFwiKSwgdW5yZXNvbHZlYWJsZUV4cHJlc3Npb24pKVxuXHRcdCkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHR9KTtcblxuXHRpdChcIklmLUVsc2Ugb3BlcmF0b3IgY2FuIHNpbXBsaWZ5IHNvbWUgY2FsbHNcIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKGlmRWxzZShlcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcIi9lZGl0TW9kZVwiLCBcInVpXCIpLCBjb25zdGFudChcIkVkaXRhYmxlXCIpKSwgY29uc3RhbnQodHJ1ZSksIGNvbnN0YW50KGZhbHNlKSkpXG5cdFx0KS50b0VxdWFsKFwiez0gJXt1aT4vZWRpdE1vZGV9ID09PSAnRWRpdGFibGUnfVwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhpZkVsc2UoZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCIvZWRpdE1vZGVcIiwgXCJ1aVwiKSwgY29uc3RhbnQoXCJFZGl0YWJsZVwiKSksIGNvbnN0YW50KGZhbHNlKSwgY29uc3RhbnQodHJ1ZSkpKVxuXHRcdCkudG9FcXVhbChcIns9ICV7dWk+L2VkaXRNb2RlfSAhPT0gJ0VkaXRhYmxlJ31cIik7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiaXNFZGl0YWJsZVwiKSwgY29uc3RhbnQodHJ1ZSksIGJpbmRpbmdFeHByZXNzaW9uKFwiQm9vbFZhbHVlXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7aXNFZGl0YWJsZX0gfHwgJXtCb29sVmFsdWV9fVwiXG5cdFx0KTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiaXNFZGl0YWJsZVwiKSwgY29uc3RhbnQoZmFsc2UpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJvb2xWYWx1ZVwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAhJXtpc0VkaXRhYmxlfSAmJiAle0Jvb2xWYWx1ZX19XCJcblx0XHQpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpZkVsc2Uobm90KGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpKSwgY29uc3RhbnQoXCJhXCIpLCBjb25zdGFudChcImJcIikpKSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtjb25kaXRpb259ID8gJ2InIDogJ2EnfVwiXG5cdFx0KTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiaXNFZGl0YWJsZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJCb29sVmFsdWVcIiksIGNvbnN0YW50KHRydWUpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICEle2lzRWRpdGFibGV9IHx8ICV7Qm9vbFZhbHVlfX1cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImlzRWRpdGFibGVcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQm9vbFZhbHVlXCIpLCBjb25zdGFudChmYWxzZSkpKSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtpc0VkaXRhYmxlfSAmJiAle0Jvb2xWYWx1ZX19XCJcblx0XHQpO1xuXHRcdC8vIFwiT3B0aW1pemUgbmVzdGVkIGlmLWVsc2UgKGNvbmRpdGlvbilcIlxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpZkVsc2UoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCB0cnVlLCBmYWxzZSksIGNvbnN0YW50KFwiYVwiKSwgY29uc3RhbnQoXCJiXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7Y29uZGl0aW9ufSA/ICdhJyA6ICdiJ31cIlxuXHRcdCk7XG5cdFx0Ly9cIk9wdGltaXplIG5lc3RlZCBpZi1lbHNlIChjb25kaXRpb24pXCJcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoaWZFbHNlKGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSwgZmFsc2UsIHRydWUpLCBjb25zdGFudChcImFcIiksIGNvbnN0YW50KFwiYlwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle2NvbmRpdGlvbn0gPyAnYicgOiAnYSd9XCJcblx0XHQpO1xuXHRcdC8vXCJPcHRpbWl6ZSBuZXN0ZWQgaWYtZWxzZSAoY29uZGl0aW9uKVwiXG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdGlmRWxzZShpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJjb25kaXRpb25cIiksIGZhbHNlLCBiaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPihcImFcIikpLCBjb25zdGFudChcImJcIiksIGNvbnN0YW50KFwiY1wiKSlcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXCJ7PSAoISV7Y29uZGl0aW9ufSAmJiAle2F9KSA/ICdiJyA6ICdjJ31cIik7XG5cdFx0Ly9cIk9wdGltaXplIG5lc3RlZCBpZi1lbHNlIChvblRydWUgYnJhbmNoKVwiXG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSwgaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCBjb25zdGFudChcImFcIiksIGNvbnN0YW50KFwiYlwiKSksIGNvbnN0YW50KFwiY1wiKSlcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXCJ7PSAle2NvbmRpdGlvbn0gPyAnYScgOiAnYyd9XCIpO1xuXHRcdC8vXCJPcHRpbWl6ZSBuZXN0ZWQgaWYtZWxzZSAob25GYWxzZSBicmFuY2gpXCJcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0aWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCBjb25zdGFudChcImFcIiksIGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSwgY29uc3RhbnQoXCJiXCIpLCBjb25zdGFudChcImNcIikpKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcIns9ICV7Y29uZGl0aW9ufSA/ICdhJyA6ICdjJ31cIik7XG5cdFx0Ly9cIk9wdGltaXplIG5lc3RlZCBpZi1lbHNlIChvbkZhbHNlIGJyYW5jaClcIlxuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0bm90KGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpKSxcblx0XHRcdFx0XHRjb25zdGFudChcImFcIiksXG5cdFx0XHRcdFx0aWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCBjb25zdGFudChcImJcIiksIGNvbnN0YW50KFwiY1wiKSlcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcIns9ICV7Y29uZGl0aW9ufSA/ICdiJyA6ICdhJ31cIik7XG5cblx0XHQvLyBldmVyeXRoaW5nIG5lc3RlZCAtIGNvbmRpdGlvbiwgb25UcnVlLCBvbkZhbHNlXG5cdFx0Y29uc3QgY29uZGl0aW9uID0gaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiY29uZGl0aW9uXCIpLCBmYWxzZSwgYmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj4oXCJhXCIpKTtcblx0XHRjb25zdCBvblRydWUgPSBpZkVsc2UoXG5cdFx0XHRiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSxcblx0XHRcdGlmRWxzZShiaW5kaW5nRXhwcmVzc2lvbihcImNvbmRpdGlvblwiKSwgY29uc3RhbnQoXCJhXCIpLCBjb25zdGFudChcImJcIikpLFxuXHRcdFx0Y29uc3RhbnQoXCJjXCIpXG5cdFx0KTtcblx0XHRjb25zdCBvbkZhbHNlID0gaWZFbHNlKFxuXHRcdFx0YmluZGluZ0V4cHJlc3Npb24oXCJjb25kaXRpb25cIiksXG5cdFx0XHRjb25zdGFudChcImFcIiksXG5cdFx0XHRpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJjb25kaXRpb25cIiksIGNvbnN0YW50KFwiYlwiKSwgY29uc3RhbnQoXCJjXCIpKVxuXHRcdCk7XG5cblx0XHQvL1wiT3B0aW1pemUgbmVzdGVkIGlmLWVsc2UgKGNvbmRpdGlvbiBhbmQgYm90aCBicmFuY2hlcylcIlxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpZkVsc2UoY29uZGl0aW9uLCBvblRydWUsIG9uRmFsc2UpKSkudG9FcXVhbChcIns9ICV7Y29uZGl0aW9ufSA/ICdhJyA6ICdjJ31cIik7XG5cdH0pO1xuXG5cdGl0KFwiZGVhbHMgd2l0aCBwcm9wZXIgZXNjYXBpbmcgb2YgdGhlIGFwb3N0cm9waGVcIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKGlmRWxzZShlcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcIi9lZGl0TW9kZVwiLCBcInVpXCIpLCBjb25zdGFudChcIkVkJ2l0YWJsZVwiKSksIGNvbnN0YW50KHRydWUpLCBjb25zdGFudChmYWxzZSkpKVxuXHRcdCkudG9FcXVhbChcIns9ICV7dWk+L2VkaXRNb2RlfSA9PT0gJ0VkXFxcXCdpdGFibGUnfVwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhpZkVsc2UoZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCIvZWRpdE1vZGVcIiwgXCJ1aVwiKSwgY29uc3RhbnQoJ0VkaVwidGFibGUnKSksIGNvbnN0YW50KHRydWUpLCBjb25zdGFudChmYWxzZSkpKVxuXHRcdCkudG9FcXVhbChcIns9ICV7dWk+L2VkaXRNb2RlfSA9PT0gJ0VkaVxcXCJ0YWJsZSd9XCIpO1xuXHRcdC8vIEluIGNhc2UgdGhlIHN0cmluZyBpcyB1c2VkIGRpcmVjdGx5IC0+IG5vIHByb2JsZW1cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29uc3RhbnQoXCI7YTthJztkbGFzZHdxbz48KihcIikpKS50b0VxdWFsKFwiO2E7YSc7ZGxhc2R3cW8+PCooXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhjb25zdGFudCgnQW5kIHdoYXQgaWYgaSB1c2UgXCJkb3VibGUgcXVvdGVzXCInKSkpLnRvRXF1YWwoJ0FuZCB3aGF0IGlmIGkgdXNlIFwiZG91YmxlIHF1b3Rlc1wiJyk7XG5cdH0pO1xuXG5cdGl0KFwiUmVmZXJlbmNlXCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcocmVmKFwiZm9vXCIpKSkudG9FcXVhbChcImZvb1wiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcocmVmKG51bGwpKSkudG9FcXVhbChcIm51bGxcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHJlZihcIm51bGxcIikpKS50b0VxdWFsKFwibnVsbFwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcocmVmKFwiXCIpKSkudG9FcXVhbChcIm51bGxcIik7XG5cdH0pO1xuXG5cdGl0KFwiT2JqZWN0XCIsICgpID0+IHtcblx0XHQvLyBjb21wYXJpc29uczogQXJyYXlcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc1RoYW4oW10sIFtdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc09yRXF1YWwoW10sIFtdKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChbXSwgW10pKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhncmVhdGVyT3JFcXVhbChbXSwgW10pKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGdyZWF0ZXJUaGFuKFtdLCBbXSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGxlc3NUaGFuKFswXSwgWzBdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc09yRXF1YWwoWzBdLCBbMF0pKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKFswXSwgWzBdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZ3JlYXRlck9yRXF1YWwoWzBdLCBbMF0pKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGdyZWF0ZXJUaGFuKFswXSwgWzBdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc1RoYW4oWzBdLCBbMCwgMV0pKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGxlc3NPckVxdWFsKFswXSwgWzAsIDFdKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbChbMF0sIFswLCAxXSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGdyZWF0ZXJPckVxdWFsKFswXSwgWzAsIDFdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZ3JlYXRlclRoYW4oWzBdLCBbMCwgMV0pKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhsZXNzVGhhbihbMCwgMV0sIFswXSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGxlc3NPckVxdWFsKFswLCAxXSwgWzBdKSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoWzAsIDFdLCBbMF0pKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhncmVhdGVyT3JFcXVhbChbMCwgMV0sIFswXSkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZ3JlYXRlclRoYW4oWzAsIDFdLCBbMF0pKSkudG9FcXVhbChcInRydWVcIik7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc1RoYW4oe30sIHt9KSkpLnRvRXF1YWwoXCJmYWxzZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVzc09yRXF1YWwoe30sIHt9KSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhlcXVhbCh7fSwge30pKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhncmVhdGVyT3JFcXVhbCh7fSwge30pKSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGdyZWF0ZXJUaGFuKHt9LCB7fSkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cblx0XHQvLyBpbXBsaWNpdCBjb25zdGFudCgpXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHt9KSkudG9FcXVhbChcInt9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogXCJiYXJcIiB9KSkudG9FcXVhbChcIntmb286ICdiYXInfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IDEgfSkpLnRvRXF1YWwoXCJ7Zm9vOiAxfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IHRydWUgfSkpLnRvRXF1YWwoXCJ7Zm9vOiB0cnVlfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IG51bGwgfSkpLnRvRXF1YWwoXCJ7Zm9vOiBudWxsfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IHVuZGVmaW5lZCB9KSkudG9FcXVhbChcInt9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogeyBiYXI6IFwiYmF6XCIgfSB9KSkudG9FcXVhbChcIntmb286IHtiYXI6ICdiYXonfX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHsgMTogXCJiYXJcIiB9KSkudG9FcXVhbChcInsxOiAnYmFyJ31cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKFtdKSkudG9FcXVhbChcIltdXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhbdW5kZWZpbmVkLCBudWxsXSkpLnRvRXF1YWwoXCJbdW5kZWZpbmVkLCBudWxsXVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoWzEsIDIsIDNdKSkudG9FcXVhbChcIlsxLCAyLCAzXVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IFsxLCAyLCAzXSB9KSkudG9FcXVhbChcIntmb286IFsxLCAyLCAzXX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHt9LCB0cnVlKSkudG9FcXVhbChcInt9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogXCJiYXJcIiB9LCB0cnVlKSkudG9FcXVhbChcIntmb286ICdiYXInfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IDEgfSwgdHJ1ZSkpLnRvRXF1YWwoXCJ7Zm9vOiAxfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IHRydWUgfSwgdHJ1ZSkpLnRvRXF1YWwoXCJ7Zm9vOiB0cnVlfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IG51bGwgfSwgdHJ1ZSkpLnRvRXF1YWwoXCJ7Zm9vOiBudWxsfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IHVuZGVmaW5lZCB9LCB0cnVlKSkudG9FcXVhbChcInt9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogeyBiYXI6IFwiYmF6XCIgfSB9LCB0cnVlKSkudG9FcXVhbChcIntmb286IHtiYXI6ICdiYXonfX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHsgMTogXCJiYXJcIiB9LCB0cnVlKSkudG9FcXVhbChcInsxOiAnYmFyJ31cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKFtdLCB0cnVlKSkudG9FcXVhbChcIltdXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhbdW5kZWZpbmVkLCBudWxsXSwgdHJ1ZSkpLnRvRXF1YWwoXCJbdW5kZWZpbmVkLCBudWxsXVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoWzEsIDIsIDNdLCB0cnVlKSkudG9FcXVhbChcIlsxLCAyLCAzXVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IFsxLCAyLCAzXSB9LCB0cnVlKSkudG9FcXVhbChcIntmb286IFsxLCAyLCAzXX1cIik7XG5cblx0XHQvLyBleHBsaWNpdCBjb25zdGFudCgpXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHsgZm9vOiBjb25zdGFudChcImJhclwiKSB9KSkudG9FcXVhbChcIntmb286ICdiYXInfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IGNvbnN0YW50KDEpIH0pKS50b0VxdWFsKFwie2ZvbzogMX1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHsgZm9vOiBjb25zdGFudCh0cnVlKSB9KSkudG9FcXVhbChcIntmb286IHRydWV9XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogY29uc3RhbnQobnVsbCkgfSkpLnRvRXF1YWwoXCJ7Zm9vOiBudWxsfVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyBmb286IGNvbnN0YW50KHVuZGVmaW5lZCkgfSkpLnRvRXF1YWwoXCJ7fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoeyAxOiBjb25zdGFudChcImJhclwiKSB9KSkudG9FcXVhbChcInsxOiAnYmFyJ31cIik7XG5cblx0XHQvLyBvdGhlciB0eXBlc1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogYmluZGluZ0V4cHJlc3Npb24oXCJiYXJcIikgfSkpLnRvRXF1YWwoXCJ7Zm9vOiAle2Jhcn19XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh7IGZvbzogY29uc3RhbnQoXCJiYXJcIikgfSkpLnRvRXF1YWwoXCJ7Zm9vOiAnYmFyJ31cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHsgZm9vOiB7IGJhcjogY29uc3RhbnQoXCJiYXpcIikgfSB9KSkudG9FcXVhbChcIntmb286IHtiYXI6ICdiYXonfX1cIik7XG5cblx0XHRjb25zdCBvYmogPSB7XG5cdFx0XHRjb250ZXh0czogZm4oXCJnZXRCaW5kaW5nQ29udGV4dFwiLCBbXSwgYmluZGluZ0V4cHJlc3Npb24oXCIvI2ZlOjpPYmplY3RQYWdlL1wiLCBcIiR2aWV3XCIpKSxcblx0XHRcdGludm9jYXRpb25Hcm91cGluZzogY29uc3RhbnQoXCJDaGFuZ2VTZXRcIiksXG5cdFx0XHRsYWJlbDogY29uc3RhbnQoXCJUZXN0XCIpLFxuXHRcdFx0bW9kZWw6IGZuKFwiZ2V0TW9kZWxcIiwgW10sIGJpbmRpbmdFeHByZXNzaW9uKFwiL1wiLCBcIiRzb3VyY2VcIikpLFxuXHRcdFx0aXNOYXZpZ2FibGU6IHRydWVcblx0XHR9O1xuXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG9iaikpLnRvRXF1YWwoXG5cdFx0XHRcIntjb250ZXh0czogJXskdmlldz4vI2ZlOjpPYmplY3RQYWdlL30uZ2V0QmluZGluZ0NvbnRleHQoKSwgaW52b2NhdGlvbkdyb3VwaW5nOiAnQ2hhbmdlU2V0JywgbGFiZWw6ICdUZXN0JywgbW9kZWw6ICV7JHNvdXJjZT4vfS5nZXRNb2RlbCgpLCBpc05hdmlnYWJsZTogdHJ1ZX1cIlxuXHRcdCk7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZXF1YWwoeyBmb286IFwiYmFyXCIgfSwgbnVsbCkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGVxdWFsKHsgZm9vOiBcImJhclwiIH0sIHsgZm9vOiBcImJhclwiIH0pKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHR9KTtcblxuXHRpdChcIkZ1bmN0aW9uXCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZm4oXCJmb29cIiwgW10pKSkudG9FcXVhbChcImZvbygpXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImZvb1wiLCBbMV0pKSkudG9FcXVhbChcImZvbygxKVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZm4oXCJmb29cIiwgW1wiYmFyXCJdKSkpLnRvRXF1YWwoXCJmb28oJ2JhcicpXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImZvb1wiLCBbY29uc3RhbnQoXCJiYXJcIildKSkpLnRvRXF1YWwoXCJmb28oJ2JhcicpXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImZvb1wiLCBbcmVmKFwiYmFyXCIpXSkpKS50b0VxdWFsKFwiZm9vKGJhcilcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZuKFwiZm9vXCIsIFt7IGJhcjogXCJiYXpcIiB9XSkpKS50b0VxdWFsKFwiZm9vKHtiYXI6ICdiYXonfSlcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZuKFwiZm9vXCIsIFtudWxsXSkpKS50b0VxdWFsKFwiZm9vKG51bGwpXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImZvb1wiLCBbdW5kZWZpbmVkXSkpKS50b0VxdWFsKFwiZm9vKHVuZGVmaW5lZClcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZuKFwiZm9vXCIsIFsxLCAyLCAzLCA0XSkpKS50b0VxdWFsKFwiZm9vKDEsIDIsIDMsIDQpXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImZvb1wiLCBbMSwgMiwgdW5kZWZpbmVkLCA0LCB1bmRlZmluZWRdKSkpLnRvRXF1YWwoXCJmb28oMSwgMiwgdW5kZWZpbmVkLCA0LCB1bmRlZmluZWQpXCIpO1xuXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZuKFwiZm9vXCIsIFtyZWYoXCIkY29udHJvbGxlclwiKSwgZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCJiYXJcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiYmF6XCIpKV0pKSkudG9FcXVhbChcblx0XHRcdFwiZm9vKCRjb250cm9sbGVyLCAle2Jhcn0gPT09ICV7YmF6fSlcIlxuXHRcdCk7XG5cblx0XHRjb25zdCBvYmogPSBmbihcIk15RnVuY3Rpb25cIiwgW1xuXHRcdFx0e1xuXHRcdFx0XHRjb250ZXh0czogZm4oXCJnZXRCaW5kaW5nQ29udGV4dFwiLCBbXSwgYmluZGluZ0V4cHJlc3Npb24oXCIvI2ZlOjpPYmplY3RQYWdlL1wiLCBcIiR2aWV3XCIpKSxcblx0XHRcdFx0aW52b2NhdGlvbkdyb3VwaW5nOiBcIkNoYW5nZVNldFwiLFxuXHRcdFx0XHRsYWJlbDogXCJUZXN0XCIsXG5cdFx0XHRcdG1vZGVsOiBmbihcImdldE1vZGVsXCIsIFtdLCBiaW5kaW5nRXhwcmVzc2lvbihcIi9cIiwgXCIkc291cmNlXCIpKSxcblx0XHRcdFx0aXNOYXZpZ2FibGU6IHRydWVcblx0XHRcdH0sXG5cdFx0XHQxXG5cdFx0XSk7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcob2JqKSkudG9FcXVhbChcblx0XHRcdFwiTXlGdW5jdGlvbih7Y29udGV4dHM6ICV7JHZpZXc+LyNmZTo6T2JqZWN0UGFnZS99LmdldEJpbmRpbmdDb250ZXh0KCksIGludm9jYXRpb25Hcm91cGluZzogJ0NoYW5nZVNldCcsIGxhYmVsOiAnVGVzdCcsIG1vZGVsOiAleyRzb3VyY2U+L30uZ2V0TW9kZWwoKSwgaXNOYXZpZ2FibGU6IHRydWV9LCAxKVwiXG5cdFx0KTtcblxuXHRcdC8vIGZsYXQgcGFyYW1ldGVyIGxpc3Rcblx0XHRmdW5jdGlvbiBteUhhbmRsZXIoYTogbnVtYmVyLCBiOiBzdHJpbmcsIGM6IGJvb2xlYW4pOiBzdHJpbmcge1xuXHRcdFx0cmV0dXJuIFwiSGkhXCI7XG5cdFx0fVxuXG5cdFx0bXlIYW5kbGVyLl9fZnVuY3Rpb25OYW1lID0gXCJjYWxsTXlIYW5kbGVyXCI7XG5cblx0XHQvL1wiVHlwZWQgZnVuY3Rpb24sIGZsYXQgc2lnbmF0dXJlXCJcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoZm4obXlIYW5kbGVyLCBbMSwgYmluZGluZ0V4cHJlc3Npb24oXCJuYW1lXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcImlzVmFsaWRcIildKSkpLnRvRXF1YWwoXG5cdFx0XHRcImNhbGxNeUhhbmRsZXIoMSwgJXtuYW1lfSwgJXtpc1ZhbGlkfSlcIlxuXHRcdCk7XG5cblx0XHQvLyBPYmplY3QgYXMgcGFyYW1ldGVyXG5cdFx0ZnVuY3Rpb24gbXlIYW5kbGVyT2JqKGM6IHsgY29udGV4dDogQ29udGV4dCB9KTogc3RyaW5nIHtcblx0XHRcdHJldHVybiBcIkhpIVwiO1xuXHRcdH1cblxuXHRcdG15SGFuZGxlck9iai5fX2Z1bmN0aW9uTmFtZSA9IFwiY2FsbE15SGFuZGxlclwiO1xuXG5cdFx0Ly8gXCJUeXBlZCBmdW5jdGlvbiwgb2JqZWN0LXR5cGVkIHNpZ25hdHVyZVwiXG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoZm4obXlIYW5kbGVyT2JqLCBbeyBjb250ZXh0OiBmbihcImdldEJpbmRpbmdDb250ZXh0XCIsIFtdLCBiaW5kaW5nRXhwcmVzc2lvbihcIi8jZmU6Ok9iamVjdFBhZ2UvXCIsIFwiJHZpZXdcIikpIH1dKSlcblx0XHQpLnRvRXF1YWwoXCJjYWxsTXlIYW5kbGVyKHtjb250ZXh0OiAleyR2aWV3Pi8jZmU6Ok9iamVjdFBhZ2UvfS5nZXRCaW5kaW5nQ29udGV4dCgpfSlcIik7XG5cdH0pO1xuXG5cdGl0KFwiQXBwbHkgRnVuY3Rpb25cIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhmbihcImJhclwiLCBbXSwgcmVmKFwiZm9vXCIpKSkpLnRvRXF1YWwoXCJmb28uYmFyKClcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZuKFwiYmFyXCIsIFtdLCBiaW5kaW5nRXhwcmVzc2lvbihcIi8jZmU6Ok9iamVjdFBhZ2UvXCIsIFwiJHZpZXdcIikpKSkudG9FcXVhbChcIiV7JHZpZXc+LyNmZTo6T2JqZWN0UGFnZS99LmJhcigpXCIpO1xuXHR9KTtcblxuXHRpdChcIkZ1bmN0aW9uIGFzIHBhcnQgb2YgZXhwcmVzc2lvblwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgZXhwcmVzc2lvbiA9IGVxdWFsKGZuKFwiZm9vXCIsIFtyZWYoXCIkY29udHJvbGxlclwiKSwgY29uc3RhbnQoNSldKSwgY29uc3RhbnQoNikpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhleHByZXNzaW9uKSkudG9FcXVhbChcIns9IGZvbygkY29udHJvbGxlciwgNSkgPT09IDZ9XCIpO1xuXHR9KTtcblxuXHRpdChcIkNvbmNhdCBPcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGNvbmNhdChcImFcIiwgXCJiXCIpKSkudG9FcXVhbChcImFiXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhjb25jYXQoXCJhXCIsIGJpbmRpbmdFeHByZXNzaW9uKFwiQmluZGluZ1BhdGhcIikpKSkudG9FcXVhbChcIns9ICdhJyArICR7QmluZGluZ1BhdGh9fVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29uY2F0KFwiYVwiLCB1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiwgYmluZGluZ0V4cHJlc3Npb24oXCJCaW5kaW5nUGF0aFwiKSkpKS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdH0pO1xuXG5cdGl0KFwiTGVuZ3RoXCIsICgpID0+IHtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobGVuZ3RoKGJpbmRpbmdFeHByZXNzaW9uKFwibXlQcm9wZXJ0eVwiLCBcImludGVybmFsXCIpKSkpLnRvRXF1YWwoXCJ7PSAle2ludGVybmFsPm15UHJvcGVydHl9Lmxlbmd0aH1cIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGxlbmd0aChiaW5kaW5nRXhwcmVzc2lvbih1bmRlZmluZWQpKSkpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhlcXVhbChsZW5ndGgoYmluZGluZ0V4cHJlc3Npb24oXCJteVByb3BlcnR5XCIsIFwiaW50ZXJuYWxcIikpLCBsZW5ndGgoYmluZGluZ0V4cHJlc3Npb24oXCJteVByb3BlcnR5XCIsIFwiaW50ZXJuYWxcIikpKSlcblx0XHQpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhsZXNzT3JFcXVhbChsZW5ndGgoYmluZGluZ0V4cHJlc3Npb24oXCJteVByb3BlcnR5XCIsIFwiaW50ZXJuYWxcIikpLCAyKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICgle2ludGVybmFsPm15UHJvcGVydHl9Lmxlbmd0aCkgPD0gMn1cIlxuXHRcdCk7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdGFuZChcblx0XHRcdFx0XHRsZXNzT3JFcXVhbChsZW5ndGgoYmluZGluZ0V4cHJlc3Npb24oXCJteVByb3BlcnR5XCIsIFwiaW50ZXJuYWxcIikpLCAyKSxcblx0XHRcdFx0XHRsZXNzT3JFcXVhbChsZW5ndGgoYmluZGluZ0V4cHJlc3Npb24oXCJteVByb3BlcnR5XCIsIFwiaW50ZXJuYWxcIikpLCAyKVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFwiez0gKCV7aW50ZXJuYWw+bXlQcm9wZXJ0eX0ubGVuZ3RoKSA8PSAyfVwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0YW5kKFxuXHRcdFx0XHRcdGxlc3NPckVxdWFsKGxlbmd0aChiaW5kaW5nRXhwcmVzc2lvbihcIm15UHJvcGVydHlcIiwgXCJpbnRlcm5hbFwiKSksIDIpLFxuXHRcdFx0XHRcdG5vdEVxdWFsKGxlbmd0aChiaW5kaW5nRXhwcmVzc2lvbihcIm15UHJvcGVydHlcIiwgXCJpbnRlcm5hbFwiKSksIDUpXG5cdFx0XHRcdClcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXCJ7PSAoJXtpbnRlcm5hbD5teVByb3BlcnR5fS5sZW5ndGgpIDw9IDIgJiYgKCV7aW50ZXJuYWw+bXlQcm9wZXJ0eX0ubGVuZ3RoKSAhPT0gNX1cIik7XG5cdH0pO1xuXG5cdGl0KFwiSXMgRW1wdHkgU2hvcnRjdXRcIiwgKCkgPT4ge1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpc0VtcHR5KGJpbmRpbmdFeHByZXNzaW9uKFwiQmluZGluZ1BhdGhcIikpKSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtCaW5kaW5nUGF0aH0gPT09ICcnIHx8ICV7QmluZGluZ1BhdGh9ID09PSB1bmRlZmluZWQgfHwgJXtCaW5kaW5nUGF0aH0gPT09IG51bGx9XCJcblx0XHQpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpc0VtcHR5KGNvbmNhdChcImFcIiwgYmluZGluZ0V4cHJlc3Npb24oXCJCaW5kaW5nUGF0aFwiKSkpKSkudG9FcXVhbChcblx0XHRcdFwiez0gJXtCaW5kaW5nUGF0aH0gPT09ICcnIHx8ICV7QmluZGluZ1BhdGh9ID09PSB1bmRlZmluZWQgfHwgJXtCaW5kaW5nUGF0aH0gPT09IG51bGx9XCJcblx0XHQpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhpc0VtcHR5KGNvbmNhdChiaW5kaW5nRXhwcmVzc2lvbihcIkJpbmRpbmdQYXRoMVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJCaW5kaW5nUGF0aDJcIikpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7QmluZGluZ1BhdGgxfSA9PT0gJycgfHwgJXtCaW5kaW5nUGF0aDF9ID09PSB1bmRlZmluZWQgfHwgJXtCaW5kaW5nUGF0aDF9ID09PSBudWxsIHx8ICV7QmluZGluZ1BhdGgyfSA9PT0gJycgfHwgJXtCaW5kaW5nUGF0aDJ9ID09PSB1bmRlZmluZWQgfHwgJXtCaW5kaW5nUGF0aDJ9ID09PSBudWxsfVwiXG5cdFx0KTtcblx0fSk7XG5cblx0aXQoXCJTdXBwb3J0IHJlY3Vyc2l2ZSB0cmFuc2Zvcm1hdGlvblwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgdHJhbnNmb3JtQmluZGluZyA9IChiaW5kaW5nOiBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248YW55PikgPT4ge1xuXHRcdFx0YmluZGluZy5tb2RlbE5hbWUgPSBcIm5ld01vZGVsXCI7XG5cdFx0XHRyZXR1cm4gYmluZGluZztcblx0XHR9O1xuXHRcdGNvbnN0IHRyYW5zZm9ybUJpbmRpbmdUb1NhbWVWYWx1ZSA9IChiaW5kaW5nOiBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248YW55PikgPT4ge1xuXHRcdFx0aWYgKGJpbmRpbmcucGF0aCA9PT0gXCJpc0VkaXRhYmxlXCIpIHtcblx0XHRcdFx0cmV0dXJuIGJpbmRpbmc7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY29uc3RhbnQoXCJBXCIpIGFzIEV4cHJlc3Npb248YW55Pjtcblx0XHR9O1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0cmFuc2Zvcm1SZWN1cnNpdmVseShpc0VtcHR5KGJpbmRpbmdFeHByZXNzaW9uKFwiQmluZGluZ1BhdGhcIikpLCBcIkJpbmRpbmdcIiwgdHJhbnNmb3JtQmluZGluZykpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle0JpbmRpbmdQYXRofSA9PT0gJycgfHwgJXtCaW5kaW5nUGF0aH0gPT09IHVuZGVmaW5lZCB8fCAle0JpbmRpbmdQYXRofSA9PT0gbnVsbH1cIlxuXHRcdCk7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29uY2F0KGJpbmRpbmdFeHByZXNzaW9uKFwiQmluZGluZ1BhdGhcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQnVidVwiKSkpKS50b0VxdWFsKFwiez0gJHtCaW5kaW5nUGF0aH0gKyAke0J1YnV9fVwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0dHJhbnNmb3JtUmVjdXJzaXZlbHkoY29uY2F0KGJpbmRpbmdFeHByZXNzaW9uKFwiQmluZGluZ1BhdGhcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQnVidVwiKSksIFwiQmluZGluZ1wiLCB0cmFuc2Zvcm1CaW5kaW5nKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcIns9ICR7bmV3TW9kZWw+QmluZGluZ1BhdGh9ICsgJHtuZXdNb2RlbD5CdWJ1fX1cIik7XG5cblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0dHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0Zm4oXCJmb29cIiwgW3JlZihcIiRjb250cm9sbGVyXCIpLCBlcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcImJhclwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJiYXpcIikpXSksXG5cdFx0XHRcdFx0XCJCaW5kaW5nXCIsXG5cdFx0XHRcdFx0dHJhbnNmb3JtQmluZGluZ1xuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFwiZm9vKCRjb250cm9sbGVyLCAle2Jhcn0gPT09ICV7YmF6fSlcIik7XG5cblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcodHJhbnNmb3JtUmVjdXJzaXZlbHkobm90KGJpbmRpbmdFeHByZXNzaW9uKFwiU2FsZXNPcmRlclwiKSksIFwiQmluZGluZ1wiLCB0cmFuc2Zvcm1CaW5kaW5nKSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICEle1NhbGVzT3JkZXJ9fVwiXG5cdFx0KTtcblxuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0cmFuc2Zvcm1SZWN1cnNpdmVseShub3QoYmluZGluZ0V4cHJlc3Npb24oXCJTYWxlc09yZGVyXCIpKSwgXCJCaW5kaW5nXCIsIHRyYW5zZm9ybUJpbmRpbmcsIHRydWUpKSkudG9FcXVhbChcblx0XHRcdFwiez0gISV7bmV3TW9kZWw+U2FsZXNPcmRlcn19XCJcblx0XHQpO1xuXG5cdFx0Y29uc3QgZmFrZUZvcm1hdHRlciA9IGZ1bmN0aW9uKGlzRWRpdGFibGU6IHN0cmluZykge1xuXHRcdFx0Ly8gRG8gTm90aGluZ1xuXHRcdFx0cmV0dXJuIFwiTm90aGluZ1wiO1xuXHRcdH07XG5cdFx0ZmFrZUZvcm1hdHRlci5fX2Z1bmN0aW9uTmFtZSA9IFwiTXlGb3JtYXR0ZXJOYW1lXCI7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0Y29tcGlsZUJpbmRpbmcoXG5cdFx0XHRcdHRyYW5zZm9ybVJlY3Vyc2l2ZWx5KGZvcm1hdFJlc3VsdChbYmluZGluZ0V4cHJlc3Npb24oXCJlZGl0TW9kZVwiLCBcInVpXCIpXSwgZmFrZUZvcm1hdHRlciksIFwiQmluZGluZ1wiLCB0cmFuc2Zvcm1CaW5kaW5nKVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcIntwYXRoOiAnbmV3TW9kZWw+ZWRpdE1vZGUnLCB0YXJnZXRUeXBlOiAnYW55JywgZm9ybWF0dGVyOiAnTXlGb3JtYXR0ZXJOYW1lJ31cIik7XG5cblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0dHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0YWRkVHlwZUluZm9ybWF0aW9uKFtiaW5kaW5nRXhwcmVzc2lvbihcInZhbHVlXCIsIFwidWlcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwidW5pdFwiLCBcInVpXCIpXSwgXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0XCIpLFxuXHRcdFx0XHRcdFwiQmluZGluZ1wiLFxuXHRcdFx0XHRcdHRyYW5zZm9ybUJpbmRpbmdcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcblx0XHRcdFwie21vZGU6J1R3b1dheScsIHBhcnRzOlt7cGF0aDogJ25ld01vZGVsPnZhbHVlJywgdGFyZ2V0VHlwZTogJ2FueSd9LHtwYXRoOiAnbmV3TW9kZWw+dW5pdCcsIHRhcmdldFR5cGU6ICdhbnknfSx7bW9kZTonT25lVGltZScscGF0aDonLyMjQEByZXF1ZXN0VW5pdHNPZk1lYXN1cmUnLHRhcmdldFR5cGU6J2FueSd9XSx0eXBlOidzYXAudWkubW9kZWwub2RhdGEudHlwZS5Vbml0J31cIlxuXHRcdCk7XG5cblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0dHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0ZXF1YWwoaWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiaXNFZGl0YWJsZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJBXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIikpLCBjb25zdGFudChcIkFcIikpLFxuXHRcdFx0XHRcdFwiQmluZGluZ1wiLFxuXHRcdFx0XHRcdHRyYW5zZm9ybUJpbmRpbmdcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcIns9ICgle2lzRWRpdGFibGV9ID8gJXtBfSA6ICV7Qn0pID09PSAnQSd9XCIpO1xuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHR0cmFuc2Zvcm1SZWN1cnNpdmVseShcblx0XHRcdFx0XHRlcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSksIGNvbnN0YW50KFwiQVwiKSksXG5cdFx0XHRcdFx0XCJCaW5kaW5nXCIsXG5cdFx0XHRcdFx0dHJhbnNmb3JtQmluZGluZyxcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdClcblx0XHRcdClcblx0XHQpLnRvRXF1YWwoXCJ7PSAoJXtuZXdNb2RlbD5pc0VkaXRhYmxlfSA/ICV7bmV3TW9kZWw+QX0gOiAle25ld01vZGVsPkJ9KSA9PT0gJ0EnfVwiKTtcblxuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHR0cmFuc2Zvcm1SZWN1cnNpdmVseShcblx0XHRcdFx0XHRpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSksXG5cdFx0XHRcdFx0XCJCaW5kaW5nXCIsXG5cdFx0XHRcdFx0dHJhbnNmb3JtQmluZGluZ1xuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFwiez0gJXtpc0VkaXRhYmxlfSA/ICV7bmV3TW9kZWw+QX0gOiAle25ld01vZGVsPkJ9fVwiKTtcblxuXHRcdC8vIFRyYW5zZm9ybWF0aW9uIGFsc28gY2FuIHRyaWdnZXIgc2ltcGxpZmljYXRpb25cblx0XHRleHBlY3QoXG5cdFx0XHRjb21waWxlQmluZGluZyhcblx0XHRcdFx0dHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0aWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwiaXNFZGl0YWJsZVwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJBXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkJcIikpLFxuXHRcdFx0XHRcdFwiQmluZGluZ1wiLFxuXHRcdFx0XHRcdHRyYW5zZm9ybUJpbmRpbmdUb1NhbWVWYWx1ZVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KS50b0VxdWFsKFwiQVwiKTtcblxuXHRcdGV4cGVjdChcblx0XHRcdGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHR0cmFuc2Zvcm1SZWN1cnNpdmVseShcblx0XHRcdFx0XHRlcXVhbChpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJpc0VkaXRhYmxlXCIpLCBiaW5kaW5nRXhwcmVzc2lvbihcIkFcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwiQlwiKSksIGNvbnN0YW50KFwiQVwiKSksXG5cdFx0XHRcdFx0XCJCaW5kaW5nXCIsXG5cdFx0XHRcdFx0dHJhbnNmb3JtQmluZGluZ1RvU2FtZVZhbHVlLFxuXHRcdFx0XHRcdHRydWVcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCkudG9FcXVhbChcInRydWVcIik7XG5cdH0pO1xuXG5cdGl0KFwiU3VwcG9ydHMgQmluZGluZ1N0cmluZyBPcGVyYXRvclwiLCAoKSA9PiB7XG5cdFx0Ly8gQm9vbGVhbiBjYXNlXG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHJlc29sdmVCaW5kaW5nU3RyaW5nKFwidHJ1ZVwiLCBcImJvb2xlYW5cIikpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcocmVzb2x2ZUJpbmRpbmdTdHJpbmcoXCJmYWxzZVwiLCBcImJvb2xlYW5cIikpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHJlc29sdmVCaW5kaW5nU3RyaW5nKHRydWUsIFwiYm9vbGVhblwiKSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhyZXNvbHZlQmluZGluZ1N0cmluZyhmYWxzZSwgXCJib29sZWFuXCIpKSkudG9FcXVhbChcImZhbHNlXCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhyZXNvbHZlQmluZGluZ1N0cmluZyhcIllvbG9cIikpKS50b0VxdWFsKFwiWW9sb1wiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcocmVzb2x2ZUJpbmRpbmdTdHJpbmcoXCJ7c29tZXRoaW5nPmVsc2V9XCIsIFwiYm9vbGVhblwiKSkpLnRvRXF1YWwoXCJ7c29tZXRoaW5nPmVsc2V9XCIpO1xuXHR9KTtcbn0pO1xuIl19
|