@grafana/scenes 6.7.0 → 6.8.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/CHANGELOG.md +13 -0
- package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +33 -0
- package/dist/esm/dist/esm/behaviors/CursorSync.js +76 -0
- package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +44 -0
- package/dist/esm/dist/esm/behaviors/SceneQueryController.js +14 -0
- package/dist/esm/dist/esm/components/EmbeddedScene.js +59 -0
- package/dist/esm/dist/esm/components/NestedScene.js +95 -0
- package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +27 -0
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +176 -0
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +104 -0
- package/dist/esm/dist/esm/components/SceneApp/utils.js +42 -0
- package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +41 -0
- package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +55 -0
- package/dist/esm/dist/esm/components/SceneCanvasText.js +32 -0
- package/dist/esm/dist/esm/components/SceneControlsSpacer.js +17 -0
- package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +82 -0
- package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +72 -0
- package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +77 -0
- package/dist/esm/dist/esm/components/SceneReactObject.js +34 -0
- package/dist/esm/dist/esm/components/SceneRefreshPicker.js +205 -0
- package/dist/esm/dist/esm/components/SceneTimePicker.js +139 -0
- package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +240 -0
- package/dist/esm/dist/esm/components/SceneToolbarButton.js +33 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +406 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +44 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +59 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +285 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +45 -0
- package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +72 -0
- package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +11 -0
- package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
- package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
- package/dist/esm/dist/esm/components/layout/LazyLoader.js +103 -0
- package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +135 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +30 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +283 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +190 -0
- package/dist/esm/dist/esm/components/layout/grid/constants.js +7 -0
- package/dist/esm/dist/esm/components/layout/grid/utils.js +36 -0
- package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +17 -0
- package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +29 -0
- package/dist/esm/dist/esm/components/layout/split/Splitter.js +386 -0
- package/dist/esm/dist/esm/core/SceneComponentWrapper.js +57 -0
- package/dist/esm/dist/esm/core/SceneDataNode.js +43 -0
- package/dist/esm/dist/esm/core/SceneObjectBase.js +286 -0
- package/dist/esm/dist/esm/core/SceneObjectRef.js +32 -0
- package/dist/esm/dist/esm/core/SceneTimeRange.js +231 -0
- package/dist/esm/dist/esm/core/events.js +11 -0
- package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +10 -0
- package/dist/esm/dist/esm/core/sceneGraph/index.js +25 -0
- package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +178 -0
- package/dist/esm/dist/esm/core/sceneGraph/utils.js +64 -0
- package/dist/esm/dist/esm/core/types.js +15 -0
- package/dist/esm/dist/esm/querying/DataLayersMerger.js +46 -0
- package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +6 -0
- package/dist/esm/dist/esm/querying/RuntimeDataSource.js +6 -0
- package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +100 -0
- package/dist/esm/dist/esm/querying/SceneQueryRunner.js +468 -0
- package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +46 -0
- package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +12 -0
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +112 -0
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +51 -0
- package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
- package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +85 -0
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +121 -0
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
- package/dist/esm/dist/esm/querying/layers/annotations/utils.js +77 -0
- package/dist/esm/dist/esm/querying/registerQueryWithController.js +41 -0
- package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +30 -0
- package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +45 -0
- package/dist/esm/dist/esm/services/UrlSyncManager.js +167 -0
- package/dist/esm/dist/esm/services/useUrlSync.js +29 -0
- package/dist/esm/dist/esm/services/utils.js +71 -0
- package/dist/esm/dist/esm/utils/ControlsLabel.js +107 -0
- package/dist/esm/dist/esm/utils/LoadingIndicator.js +19 -0
- package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +39 -0
- package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
- package/dist/esm/dist/esm/utils/date.js +15 -0
- package/dist/esm/dist/esm/utils/evaluateTimeRange.js +16 -0
- package/dist/esm/dist/esm/utils/explore.js +47 -0
- package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +4 -0
- package/dist/esm/dist/esm/utils/getDataSource.js +18 -0
- package/dist/esm/dist/esm/utils/getMessageFromError.js +24 -0
- package/dist/esm/dist/esm/utils/metricTree.js +53 -0
- package/dist/esm/dist/esm/utils/parseUrlParam.js +41 -0
- package/dist/esm/dist/esm/utils/utils.js +11 -0
- package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +30 -0
- package/dist/esm/dist/esm/utils/writeSceneLog.js +12 -0
- package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +150 -0
- package/dist/esm/dist/esm/variables/VariableValueRecorder.js +71 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +24 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +303 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +289 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
- package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +13 -0
- package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +47 -0
- package/dist/esm/dist/esm/variables/components/VariableValueControl.js +23 -0
- package/dist/esm/dist/esm/variables/components/VariableValueInput.js +33 -0
- package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +228 -0
- package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +72 -0
- package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +15 -0
- package/dist/esm/dist/esm/variables/constants.js +9 -0
- package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +12 -0
- package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +259 -0
- package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
- package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
- package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +40 -0
- package/dist/esm/dist/esm/variables/interpolation/defaults.js +21 -0
- package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +13 -0
- package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +296 -0
- package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +87 -0
- package/dist/esm/dist/esm/variables/lookupVariable.js +20 -0
- package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +57 -0
- package/dist/esm/dist/esm/variables/macros/contextMacros.js +43 -0
- package/dist/esm/dist/esm/variables/macros/dataMacros.js +134 -0
- package/dist/esm/dist/esm/variables/macros/index.js +26 -0
- package/dist/esm/dist/esm/variables/macros/templateProxies.js +51 -0
- package/dist/esm/dist/esm/variables/macros/timeMacros.js +86 -0
- package/dist/esm/dist/esm/variables/macros/types.js +11 -0
- package/dist/esm/dist/esm/variables/macros/urlMacros.js +56 -0
- package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +254 -0
- package/dist/esm/dist/esm/variables/types.js +11 -0
- package/dist/esm/dist/esm/variables/utils.js +172 -0
- package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +38 -0
- package/dist/esm/dist/esm/variables/variants/CustomVariable.js +60 -0
- package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +88 -0
- package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +117 -0
- package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +295 -0
- package/dist/esm/dist/esm/variables/variants/TestVariable.js +117 -0
- package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +61 -0
- package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +139 -0
- package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +129 -0
- package/dist/esm/dist/esm/variables/variants/query/guards.js +28 -0
- package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +96 -0
- package/dist/esm/dist/esm/variables/variants/query/utils.js +124 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/querying/DataProviderSharer.js +39 -0
- package/dist/esm/src/behaviors/ActWhenVariableChanged.js +27 -0
- package/dist/esm/src/behaviors/CursorSync.js +76 -0
- package/dist/esm/src/behaviors/LiveNowTimer.js +44 -0
- package/dist/esm/src/behaviors/SceneQueryController.js +60 -0
- package/dist/esm/src/behaviors/index.js +5 -0
- package/dist/esm/src/components/EmbeddedScene.js +59 -0
- package/dist/esm/src/components/NestedScene.js +95 -0
- package/dist/esm/src/components/SceneApp/SceneApp.js +37 -0
- package/dist/esm/src/components/SceneApp/SceneAppPage.js +176 -0
- package/dist/esm/src/components/SceneApp/SceneAppPageView.js +104 -0
- package/dist/esm/src/components/SceneApp/utils.js +42 -0
- package/dist/esm/src/components/SceneByFrameRepeater.js +41 -0
- package/dist/esm/src/components/SceneByVariableRepeater.js +55 -0
- package/dist/esm/src/components/SceneCanvasText.js +32 -0
- package/dist/esm/src/components/SceneControlsSpacer.js +17 -0
- package/dist/esm/src/components/SceneDebugger/DebugDetails.js +82 -0
- package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +72 -0
- package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +77 -0
- package/dist/esm/src/components/SceneReactObject.js +34 -0
- package/dist/esm/src/components/SceneRefreshPicker.js +205 -0
- package/dist/esm/src/components/SceneTimePicker.js +139 -0
- package/dist/esm/src/components/SceneTimeRangeCompare.js +240 -0
- package/dist/esm/src/components/SceneToolbarButton.js +33 -0
- package/dist/esm/src/components/VizPanel/VizPanel.js +406 -0
- package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +44 -0
- package/dist/esm/src/components/VizPanel/VizPanelMenu.js +59 -0
- package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +285 -0
- package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +45 -0
- package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +72 -0
- package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +56 -0
- package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
- package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
- package/dist/esm/src/components/layout/LazyLoader.js +103 -0
- package/dist/esm/src/components/layout/SceneFlexLayout.js +135 -0
- package/dist/esm/src/components/layout/grid/SceneGridItem.js +30 -0
- package/dist/esm/src/components/layout/grid/SceneGridLayout.js +283 -0
- package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
- package/dist/esm/src/components/layout/grid/SceneGridRow.js +190 -0
- package/dist/esm/src/components/layout/grid/constants.js +7 -0
- package/dist/esm/src/components/layout/grid/utils.js +36 -0
- package/dist/esm/src/components/layout/split/SplitLayout.js +17 -0
- package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +29 -0
- package/dist/esm/src/components/layout/split/Splitter.js +386 -0
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +100 -0
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +75 -0
- package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +75 -0
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +22 -0
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +85 -0
- package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +52 -0
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +78 -0
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +114 -0
- package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +162 -0
- package/dist/esm/src/core/PanelBuilders/index.js +116 -0
- package/dist/esm/src/core/SceneComponentWrapper.js +57 -0
- package/dist/esm/src/core/SceneDataNode.js +43 -0
- package/dist/esm/src/core/SceneObjectBase.js +286 -0
- package/dist/esm/src/core/SceneObjectRef.js +32 -0
- package/dist/esm/src/core/SceneTimeRange.js +231 -0
- package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +35 -0
- package/dist/esm/src/core/SceneTimeZoneOverride.js +63 -0
- package/dist/esm/src/core/events.js +11 -0
- package/dist/esm/src/core/sceneGraph/getTimeRange.js +10 -0
- package/dist/esm/src/core/sceneGraph/index.js +25 -0
- package/dist/esm/src/core/sceneGraph/sceneGraph.js +178 -0
- package/dist/esm/src/core/sceneGraph/utils.js +64 -0
- package/dist/esm/src/core/types.js +15 -0
- package/dist/esm/src/index.js +108 -0
- package/dist/esm/src/querying/DataLayersMerger.js +46 -0
- package/dist/esm/src/querying/DataProviderProxy.js +37 -0
- package/dist/esm/src/querying/DataProviderSharer.js +108 -0
- package/dist/esm/src/querying/ExtraQueryProvider.js +6 -0
- package/dist/esm/src/querying/RuntimeDataSource.js +49 -0
- package/dist/esm/src/querying/SceneDataLayerSet.js +100 -0
- package/dist/esm/src/querying/SceneDataTransformer.js +178 -0
- package/dist/esm/src/querying/SceneQueryRunner.js +468 -0
- package/dist/esm/src/querying/extraQueryProcessingOperator.js +46 -0
- package/dist/esm/src/querying/getEnrichedDataRequest.js +12 -0
- package/dist/esm/src/querying/layers/SceneDataLayerBase.js +112 -0
- package/dist/esm/src/querying/layers/SceneDataLayerControls.js +51 -0
- package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
- package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +85 -0
- package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +121 -0
- package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
- package/dist/esm/src/querying/layers/annotations/utils.js +77 -0
- package/dist/esm/src/querying/layers/index.js +2 -0
- package/dist/esm/src/querying/registerQueryWithController.js +41 -0
- package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +30 -0
- package/dist/esm/src/services/UniqueUrlKeyMapper.js +45 -0
- package/dist/esm/src/services/UrlSyncContextProvider.js +17 -0
- package/dist/esm/src/services/UrlSyncManager.js +167 -0
- package/dist/esm/src/services/useUrlSync.js +29 -0
- package/dist/esm/src/services/utils.js +75 -0
- package/dist/esm/src/utils/ControlsLabel.js +107 -0
- package/dist/esm/src/utils/LoadingIndicator.js +19 -0
- package/dist/esm/src/utils/SafeSerializableSceneObject.js +39 -0
- package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
- package/dist/esm/src/utils/date.js +15 -0
- package/dist/esm/src/utils/evaluateTimeRange.js +16 -0
- package/dist/esm/src/utils/explore.js +47 -0
- package/dist/esm/src/utils/getCompareSeriesRefId.js +4 -0
- package/dist/esm/src/utils/getDataSource.js +18 -0
- package/dist/esm/src/utils/getMessageFromError.js +24 -0
- package/dist/esm/src/utils/metricTree.js +53 -0
- package/dist/esm/src/utils/parseUrlParam.js +41 -0
- package/dist/esm/src/utils/utils.js +11 -0
- package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +30 -0
- package/dist/esm/src/utils/writeSceneLog.js +12 -0
- package/dist/esm/src/variables/VariableDependencyConfig.js +150 -0
- package/dist/esm/src/variables/VariableValueRecorder.js +71 -0
- package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +24 -0
- package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +303 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +289 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
- package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +13 -0
- package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +47 -0
- package/dist/esm/src/variables/components/VariableValueControl.js +23 -0
- package/dist/esm/src/variables/components/VariableValueInput.js +33 -0
- package/dist/esm/src/variables/components/VariableValueSelect.js +228 -0
- package/dist/esm/src/variables/components/VariableValueSelectors.js +72 -0
- package/dist/esm/src/variables/components/getOptionSearcher.js +15 -0
- package/dist/esm/src/variables/constants.js +9 -0
- package/dist/esm/src/variables/getEnrichedFiltersRequest.js +12 -0
- package/dist/esm/src/variables/groupby/GroupByVariable.js +259 -0
- package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
- package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
- package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +40 -0
- package/dist/esm/src/variables/interpolation/defaults.js +21 -0
- package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +13 -0
- package/dist/esm/src/variables/interpolation/formatRegistry.js +296 -0
- package/dist/esm/src/variables/interpolation/sceneInterpolator.js +87 -0
- package/dist/esm/src/variables/lookupVariable.js +20 -0
- package/dist/esm/src/variables/macros/AllVariablesMacro.js +57 -0
- package/dist/esm/src/variables/macros/contextMacros.js +43 -0
- package/dist/esm/src/variables/macros/dataMacros.js +134 -0
- package/dist/esm/src/variables/macros/index.js +35 -0
- package/dist/esm/src/variables/macros/templateProxies.js +51 -0
- package/dist/esm/src/variables/macros/timeMacros.js +86 -0
- package/dist/esm/src/variables/macros/types.js +11 -0
- package/dist/esm/src/variables/macros/urlMacros.js +56 -0
- package/dist/esm/src/variables/sets/SceneVariableSet.js +254 -0
- package/dist/esm/src/variables/types.js +11 -0
- package/dist/esm/src/variables/utils.js +172 -0
- package/dist/esm/src/variables/variants/ConstantVariable.js +38 -0
- package/dist/esm/src/variables/variants/CustomVariable.js +60 -0
- package/dist/esm/src/variables/variants/DataSourceVariable.js +88 -0
- package/dist/esm/src/variables/variants/IntervalVariable.js +117 -0
- package/dist/esm/src/variables/variants/JsonVariable.js +193 -0
- package/dist/esm/src/variables/variants/LocalValueVariable.js +56 -0
- package/dist/esm/src/variables/variants/MultiValueVariable.js +295 -0
- package/dist/esm/src/variables/variants/TestVariable.js +117 -0
- package/dist/esm/src/variables/variants/TextBoxVariable.js +61 -0
- package/dist/esm/src/variables/variants/guards.js +27 -0
- package/dist/esm/src/variables/variants/query/QueryVariable.js +139 -0
- package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +129 -0
- package/dist/esm/src/variables/variants/query/guards.js +28 -0
- package/dist/esm/src/variables/variants/query/toMetricFindValues.js +96 -0
- package/dist/esm/src/variables/variants/query/utils.js +124 -0
- package/dist/esm/variables/components/VariableValueSelect.js +13 -9
- package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
- package/dist/esm/variables/variants/ConstantVariable.js +22 -0
- package/dist/esm/variables/variants/ConstantVariable.js.map +1 -1
- package/dist/esm/variables/variants/CustomVariable.js +3 -2
- package/dist/esm/variables/variants/CustomVariable.js.map +1 -1
- package/dist/esm/variables/variants/DataSourceVariable.js +3 -2
- package/dist/esm/variables/variants/DataSourceVariable.js.map +1 -1
- package/dist/esm/variables/variants/JsonVariable.js +96 -0
- package/dist/esm/variables/variants/TestVariable.js +3 -2
- package/dist/esm/variables/variants/TestVariable.js.map +1 -1
- package/dist/esm/variables/variants/json/JsonVariable.js +95 -0
- package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +70 -0
- package/dist/esm/variables/variants/query/QueryVariable.js +3 -2
- package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
- package/dist/index.d.ts +14 -6
- package/dist/index.js +35 -13
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { getTimeZone, rangeUtil, toUtc } from '@grafana/data';
|
|
2
|
+
import { SceneObjectUrlSyncConfig } from '../services/SceneObjectUrlSyncConfig.js';
|
|
3
|
+
import { SceneObjectBase } from './SceneObjectBase.js';
|
|
4
|
+
import { getClosest } from './sceneGraph/utils.js';
|
|
5
|
+
import { parseUrlParam } from '../utils/parseUrlParam.js';
|
|
6
|
+
import { evaluateTimeRange } from '../utils/evaluateTimeRange.js';
|
|
7
|
+
import { RefreshEvent, locationService } from '@grafana/runtime';
|
|
8
|
+
import { isValid } from '../utils/date.js';
|
|
9
|
+
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
13
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
14
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
15
|
+
var __spreadValues = (a, b) => {
|
|
16
|
+
for (var prop in b || (b = {}))
|
|
17
|
+
if (__hasOwnProp.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
if (__getOwnPropSymbols)
|
|
20
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
21
|
+
if (__propIsEnum.call(b, prop))
|
|
22
|
+
__defNormalProp(a, prop, b[prop]);
|
|
23
|
+
}
|
|
24
|
+
return a;
|
|
25
|
+
};
|
|
26
|
+
class SceneTimeRange extends SceneObjectBase {
|
|
27
|
+
constructor(state = {}) {
|
|
28
|
+
var _a;
|
|
29
|
+
const from = state.from && isValid(state.from) ? state.from : "now-6h";
|
|
30
|
+
const to = state.to && isValid(state.to) ? state.to : "now";
|
|
31
|
+
const timeZone = state.timeZone;
|
|
32
|
+
const value = evaluateTimeRange(
|
|
33
|
+
from,
|
|
34
|
+
to,
|
|
35
|
+
timeZone || getTimeZone(),
|
|
36
|
+
state.fiscalYearStartMonth,
|
|
37
|
+
state.UNSAFE_nowDelay
|
|
38
|
+
);
|
|
39
|
+
const refreshOnActivate = (_a = state.refreshOnActivate) != null ? _a : { percent: 10 };
|
|
40
|
+
super(__spreadValues({ from, to, timeZone, value, refreshOnActivate }, state));
|
|
41
|
+
this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: ["from", "to", "timezone", "time", "time.window"] });
|
|
42
|
+
this.onTimeRangeChange = (timeRange) => {
|
|
43
|
+
const update = {};
|
|
44
|
+
if (typeof timeRange.raw.from === "string") {
|
|
45
|
+
update.from = timeRange.raw.from;
|
|
46
|
+
} else {
|
|
47
|
+
update.from = timeRange.raw.from.toISOString();
|
|
48
|
+
}
|
|
49
|
+
if (typeof timeRange.raw.to === "string") {
|
|
50
|
+
update.to = timeRange.raw.to;
|
|
51
|
+
} else {
|
|
52
|
+
update.to = timeRange.raw.to.toISOString();
|
|
53
|
+
}
|
|
54
|
+
update.value = evaluateTimeRange(
|
|
55
|
+
update.from,
|
|
56
|
+
update.to,
|
|
57
|
+
this.getTimeZone(),
|
|
58
|
+
this.state.fiscalYearStartMonth,
|
|
59
|
+
this.state.UNSAFE_nowDelay
|
|
60
|
+
);
|
|
61
|
+
if (update.from !== this.state.from || update.to !== this.state.to) {
|
|
62
|
+
this._urlSync.performBrowserHistoryAction(() => {
|
|
63
|
+
this.setState(update);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
this.onTimeZoneChange = (timeZone2) => {
|
|
68
|
+
this._urlSync.performBrowserHistoryAction(() => {
|
|
69
|
+
this.setState({ timeZone: timeZone2 });
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
this.onRefresh = () => {
|
|
73
|
+
this.setState({
|
|
74
|
+
value: evaluateTimeRange(
|
|
75
|
+
this.state.from,
|
|
76
|
+
this.state.to,
|
|
77
|
+
this.getTimeZone(),
|
|
78
|
+
this.state.fiscalYearStartMonth,
|
|
79
|
+
this.state.UNSAFE_nowDelay
|
|
80
|
+
)
|
|
81
|
+
});
|
|
82
|
+
this.publishEvent(new RefreshEvent(), true);
|
|
83
|
+
};
|
|
84
|
+
this.addActivationHandler(this._onActivate.bind(this));
|
|
85
|
+
}
|
|
86
|
+
_onActivate() {
|
|
87
|
+
if (!this.state.timeZone) {
|
|
88
|
+
const timeZoneSource = this.getTimeZoneSource();
|
|
89
|
+
if (timeZoneSource !== this) {
|
|
90
|
+
this._subs.add(
|
|
91
|
+
timeZoneSource.subscribeToState((n, p) => {
|
|
92
|
+
if (n.timeZone !== void 0 && n.timeZone !== p.timeZone) {
|
|
93
|
+
this.setState({
|
|
94
|
+
value: evaluateTimeRange(
|
|
95
|
+
this.state.from,
|
|
96
|
+
this.state.to,
|
|
97
|
+
timeZoneSource.getTimeZone(),
|
|
98
|
+
this.state.fiscalYearStartMonth,
|
|
99
|
+
this.state.UNSAFE_nowDelay
|
|
100
|
+
)
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
})
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (rangeUtil.isRelativeTimeRange(this.state.value.raw)) {
|
|
108
|
+
this.refreshIfStale();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
refreshIfStale() {
|
|
112
|
+
var _a, _b, _c, _d;
|
|
113
|
+
let ms;
|
|
114
|
+
if (((_b = (_a = this.state) == null ? void 0 : _a.refreshOnActivate) == null ? void 0 : _b.percent) !== void 0) {
|
|
115
|
+
ms = this.calculatePercentOfInterval(this.state.refreshOnActivate.percent);
|
|
116
|
+
}
|
|
117
|
+
if (((_d = (_c = this.state) == null ? void 0 : _c.refreshOnActivate) == null ? void 0 : _d.afterMs) !== void 0) {
|
|
118
|
+
ms = Math.min(this.state.refreshOnActivate.afterMs, ms != null ? ms : Infinity);
|
|
119
|
+
}
|
|
120
|
+
if (ms !== void 0) {
|
|
121
|
+
this.refreshRange(ms);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
getTimeZoneSource() {
|
|
125
|
+
if (!this.parent || !this.parent.parent) {
|
|
126
|
+
return this;
|
|
127
|
+
}
|
|
128
|
+
const source = getClosest(this.parent.parent, (o) => {
|
|
129
|
+
if (o.state.$timeRange && o.state.$timeRange.state.timeZone) {
|
|
130
|
+
return o.state.$timeRange;
|
|
131
|
+
}
|
|
132
|
+
return void 0;
|
|
133
|
+
});
|
|
134
|
+
if (!source) {
|
|
135
|
+
return this;
|
|
136
|
+
}
|
|
137
|
+
return source;
|
|
138
|
+
}
|
|
139
|
+
refreshRange(refreshAfterMs) {
|
|
140
|
+
var _a;
|
|
141
|
+
const value = evaluateTimeRange(
|
|
142
|
+
this.state.from,
|
|
143
|
+
this.state.to,
|
|
144
|
+
(_a = this.state.timeZone) != null ? _a : getTimeZone(),
|
|
145
|
+
this.state.fiscalYearStartMonth,
|
|
146
|
+
this.state.UNSAFE_nowDelay
|
|
147
|
+
);
|
|
148
|
+
const diff = value.to.diff(this.state.value.to, "milliseconds");
|
|
149
|
+
if (diff >= refreshAfterMs) {
|
|
150
|
+
this.setState({
|
|
151
|
+
value
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
calculatePercentOfInterval(percent) {
|
|
156
|
+
const intervalMs = this.state.value.to.diff(this.state.value.from, "milliseconds");
|
|
157
|
+
return Math.ceil(intervalMs / percent);
|
|
158
|
+
}
|
|
159
|
+
getTimeZone() {
|
|
160
|
+
if (this.state.timeZone) {
|
|
161
|
+
return this.state.timeZone;
|
|
162
|
+
}
|
|
163
|
+
const timeZoneSource = this.getTimeZoneSource();
|
|
164
|
+
if (timeZoneSource !== this) {
|
|
165
|
+
return timeZoneSource.state.timeZone;
|
|
166
|
+
}
|
|
167
|
+
return getTimeZone();
|
|
168
|
+
}
|
|
169
|
+
getUrlState() {
|
|
170
|
+
const params = locationService.getSearchObject();
|
|
171
|
+
const urlValues = { from: this.state.from, to: this.state.to, timezone: this.getTimeZone() };
|
|
172
|
+
if (params.time && params["time.window"]) {
|
|
173
|
+
urlValues.time = null;
|
|
174
|
+
urlValues["time.window"] = null;
|
|
175
|
+
}
|
|
176
|
+
return urlValues;
|
|
177
|
+
}
|
|
178
|
+
updateFromUrl(values) {
|
|
179
|
+
var _a, _b, _c;
|
|
180
|
+
const update = {};
|
|
181
|
+
let from = parseUrlParam(values.from);
|
|
182
|
+
let to = parseUrlParam(values.to);
|
|
183
|
+
if (values.time && values["time.window"]) {
|
|
184
|
+
const time = Array.isArray(values.time) ? values.time[0] : values.time;
|
|
185
|
+
const timeWindow = Array.isArray(values["time.window"]) ? values["time.window"][0] : values["time.window"];
|
|
186
|
+
const timeRange = getTimeWindow(time, timeWindow);
|
|
187
|
+
if (timeRange.from && isValid(timeRange.from)) {
|
|
188
|
+
from = timeRange.from;
|
|
189
|
+
}
|
|
190
|
+
if (timeRange.to && isValid(timeRange.to)) {
|
|
191
|
+
to = timeRange.to;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (from && isValid(from)) {
|
|
195
|
+
update.from = from;
|
|
196
|
+
}
|
|
197
|
+
if (to && isValid(to)) {
|
|
198
|
+
update.to = to;
|
|
199
|
+
}
|
|
200
|
+
if (typeof values.timezone === "string") {
|
|
201
|
+
update.timeZone = values.timezone !== "" ? values.timezone : void 0;
|
|
202
|
+
}
|
|
203
|
+
if (Object.keys(update).length === 0) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
update.value = evaluateTimeRange(
|
|
207
|
+
(_a = update.from) != null ? _a : this.state.from,
|
|
208
|
+
(_b = update.to) != null ? _b : this.state.to,
|
|
209
|
+
(_c = update.timeZone) != null ? _c : this.getTimeZone(),
|
|
210
|
+
this.state.fiscalYearStartMonth,
|
|
211
|
+
this.state.UNSAFE_nowDelay
|
|
212
|
+
);
|
|
213
|
+
return this.setState(update);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function getTimeWindow(time, timeWindow) {
|
|
217
|
+
const valueTime = isNaN(Date.parse(time)) ? parseInt(time, 10) : Date.parse(time);
|
|
218
|
+
let timeWindowMs;
|
|
219
|
+
if (timeWindow.match(/^\d+$/) && parseInt(timeWindow, 10)) {
|
|
220
|
+
timeWindowMs = parseInt(timeWindow, 10);
|
|
221
|
+
} else {
|
|
222
|
+
timeWindowMs = rangeUtil.intervalToMs(timeWindow);
|
|
223
|
+
}
|
|
224
|
+
return {
|
|
225
|
+
from: toUtc(valueTime - timeWindowMs / 2).toISOString(),
|
|
226
|
+
to: toUtc(valueTime + timeWindowMs / 2).toISOString()
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export { SceneTimeRange };
|
|
231
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVUaW1lUmFuZ2UuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvcmUvU2NlbmVUaW1lUmFuZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VGltZVpvbmUsIHJhbmdlVXRpbCwgdG9VdGMgfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcbmltcG9ydCB7IFNjZW5lT2JqZWN0VXJsU3luY0NvbmZpZyB9IGZyb20gJy4uL3NlcnZpY2VzL1NjZW5lT2JqZWN0VXJsU3luY0NvbmZpZy5qcyc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuL1NjZW5lT2JqZWN0QmFzZS5qcyc7XG5pbXBvcnQgeyBnZXRDbG9zZXN0IH0gZnJvbSAnLi9zY2VuZUdyYXBoL3V0aWxzLmpzJztcbmltcG9ydCB7IHBhcnNlVXJsUGFyYW0gfSBmcm9tICcuLi91dGlscy9wYXJzZVVybFBhcmFtLmpzJztcbmltcG9ydCB7IGV2YWx1YXRlVGltZVJhbmdlIH0gZnJvbSAnLi4vdXRpbHMvZXZhbHVhdGVUaW1lUmFuZ2UuanMnO1xuaW1wb3J0IHsgUmVmcmVzaEV2ZW50LCBsb2NhdGlvblNlcnZpY2UgfSBmcm9tICdAZ3JhZmFuYS9ydW50aW1lJztcbmltcG9ydCB7IGlzVmFsaWQgfSBmcm9tICcuLi91dGlscy9kYXRlLmpzJztcblxudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2dldE93blByb3BTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fcHJvcElzRW51bSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG52YXIgX19kZWZOb3JtYWxQcm9wID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA/IF9fZGVmUHJvcChvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19zcHJlYWRWYWx1ZXMgPSAoYSwgYikgPT4ge1xuICBmb3IgKHZhciBwcm9wIGluIGIgfHwgKGIgPSB7fSkpXG4gICAgaWYgKF9faGFzT3duUHJvcC5jYWxsKGIsIHByb3ApKVxuICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICBpZiAoX19nZXRPd25Qcm9wU3ltYm9scylcbiAgICBmb3IgKHZhciBwcm9wIG9mIF9fZ2V0T3duUHJvcFN5bWJvbHMoYikpIHtcbiAgICAgIGlmIChfX3Byb3BJc0VudW0uY2FsbChiLCBwcm9wKSlcbiAgICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICAgIH1cbiAgcmV0dXJuIGE7XG59O1xuY2xhc3MgU2NlbmVUaW1lUmFuZ2UgZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2Uge1xuICBjb25zdHJ1Y3RvcihzdGF0ZSA9IHt9KSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGZyb20gPSBzdGF0ZS5mcm9tICYmIGlzVmFsaWQoc3RhdGUuZnJvbSkgPyBzdGF0ZS5mcm9tIDogXCJub3ctNmhcIjtcbiAgICBjb25zdCB0byA9IHN0YXRlLnRvICYmIGlzVmFsaWQoc3RhdGUudG8pID8gc3RhdGUudG8gOiBcIm5vd1wiO1xuICAgIGNvbnN0IHRpbWVab25lID0gc3RhdGUudGltZVpvbmU7XG4gICAgY29uc3QgdmFsdWUgPSBldmFsdWF0ZVRpbWVSYW5nZShcbiAgICAgIGZyb20sXG4gICAgICB0byxcbiAgICAgIHRpbWVab25lIHx8IGdldFRpbWVab25lKCksXG4gICAgICBzdGF0ZS5maXNjYWxZZWFyU3RhcnRNb250aCxcbiAgICAgIHN0YXRlLlVOU0FGRV9ub3dEZWxheVxuICAgICk7XG4gICAgY29uc3QgcmVmcmVzaE9uQWN0aXZhdGUgPSAoX2EgPSBzdGF0ZS5yZWZyZXNoT25BY3RpdmF0ZSkgIT0gbnVsbCA/IF9hIDogeyBwZXJjZW50OiAxMCB9O1xuICAgIHN1cGVyKF9fc3ByZWFkVmFsdWVzKHsgZnJvbSwgdG8sIHRpbWVab25lLCB2YWx1ZSwgcmVmcmVzaE9uQWN0aXZhdGUgfSwgc3RhdGUpKTtcbiAgICB0aGlzLl91cmxTeW5jID0gbmV3IFNjZW5lT2JqZWN0VXJsU3luY0NvbmZpZyh0aGlzLCB7IGtleXM6IFtcImZyb21cIiwgXCJ0b1wiLCBcInRpbWV6b25lXCIsIFwidGltZVwiLCBcInRpbWUud2luZG93XCJdIH0pO1xuICAgIHRoaXMub25UaW1lUmFuZ2VDaGFuZ2UgPSAodGltZVJhbmdlKSA9PiB7XG4gICAgICBjb25zdCB1cGRhdGUgPSB7fTtcbiAgICAgIGlmICh0eXBlb2YgdGltZVJhbmdlLnJhdy5mcm9tID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHVwZGF0ZS5mcm9tID0gdGltZVJhbmdlLnJhdy5mcm9tO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlLmZyb20gPSB0aW1lUmFuZ2UucmF3LmZyb20udG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdGltZVJhbmdlLnJhdy50byA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB1cGRhdGUudG8gPSB0aW1lUmFuZ2UucmF3LnRvO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlLnRvID0gdGltZVJhbmdlLnJhdy50by50b0lTT1N0cmluZygpO1xuICAgICAgfVxuICAgICAgdXBkYXRlLnZhbHVlID0gZXZhbHVhdGVUaW1lUmFuZ2UoXG4gICAgICAgIHVwZGF0ZS5mcm9tLFxuICAgICAgICB1cGRhdGUudG8sXG4gICAgICAgIHRoaXMuZ2V0VGltZVpvbmUoKSxcbiAgICAgICAgdGhpcy5zdGF0ZS5maXNjYWxZZWFyU3RhcnRNb250aCxcbiAgICAgICAgdGhpcy5zdGF0ZS5VTlNBRkVfbm93RGVsYXlcbiAgICAgICk7XG4gICAgICBpZiAodXBkYXRlLmZyb20gIT09IHRoaXMuc3RhdGUuZnJvbSB8fCB1cGRhdGUudG8gIT09IHRoaXMuc3RhdGUudG8pIHtcbiAgICAgICAgdGhpcy5fdXJsU3luYy5wZXJmb3JtQnJvd3Nlckhpc3RvcnlBY3Rpb24oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUodXBkYXRlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLm9uVGltZVpvbmVDaGFuZ2UgPSAodGltZVpvbmUpID0+IHtcbiAgICAgIHRoaXMuX3VybFN5bmMucGVyZm9ybUJyb3dzZXJIaXN0b3J5QWN0aW9uKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHRpbWVab25lIH0pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICB0aGlzLm9uUmVmcmVzaCA9ICgpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICB2YWx1ZTogZXZhbHVhdGVUaW1lUmFuZ2UoXG4gICAgICAgICAgdGhpcy5zdGF0ZS5mcm9tLFxuICAgICAgICAgIHRoaXMuc3RhdGUudG8sXG4gICAgICAgICAgdGhpcy5nZXRUaW1lWm9uZSgpLFxuICAgICAgICAgIHRoaXMuc3RhdGUuZmlzY2FsWWVhclN0YXJ0TW9udGgsXG4gICAgICAgICAgdGhpcy5zdGF0ZS5VTlNBRkVfbm93RGVsYXlcbiAgICAgICAgKVxuICAgICAgfSk7XG4gICAgICB0aGlzLnB1Ymxpc2hFdmVudChuZXcgUmVmcmVzaEV2ZW50KCksIHRydWUpO1xuICAgIH07XG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcih0aGlzLl9vbkFjdGl2YXRlLmJpbmQodGhpcykpO1xuICB9XG4gIF9vbkFjdGl2YXRlKCkge1xuICAgIGlmICghdGhpcy5zdGF0ZS50aW1lWm9uZSkge1xuICAgICAgY29uc3QgdGltZVpvbmVTb3VyY2UgPSB0aGlzLmdldFRpbWVab25lU291cmNlKCk7XG4gICAgICBpZiAodGltZVpvbmVTb3VyY2UgIT09IHRoaXMpIHtcbiAgICAgICAgdGhpcy5fc3Vicy5hZGQoXG4gICAgICAgICAgdGltZVpvbmVTb3VyY2Uuc3Vic2NyaWJlVG9TdGF0ZSgobiwgcCkgPT4ge1xuICAgICAgICAgICAgaWYgKG4udGltZVpvbmUgIT09IHZvaWQgMCAmJiBuLnRpbWVab25lICE9PSBwLnRpbWVab25lKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBldmFsdWF0ZVRpbWVSYW5nZShcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZnJvbSxcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUudG8sXG4gICAgICAgICAgICAgICAgICB0aW1lWm9uZVNvdXJjZS5nZXRUaW1lWm9uZSgpLFxuICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maXNjYWxZZWFyU3RhcnRNb250aCxcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuVU5TQUZFX25vd0RlbGF5XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocmFuZ2VVdGlsLmlzUmVsYXRpdmVUaW1lUmFuZ2UodGhpcy5zdGF0ZS52YWx1ZS5yYXcpKSB7XG4gICAgICB0aGlzLnJlZnJlc2hJZlN0YWxlKCk7XG4gICAgfVxuICB9XG4gIHJlZnJlc2hJZlN0YWxlKCkge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICBsZXQgbXM7XG4gICAgaWYgKCgoX2IgPSAoX2EgPSB0aGlzLnN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX2EucmVmcmVzaE9uQWN0aXZhdGUpID09IG51bGwgPyB2b2lkIDAgOiBfYi5wZXJjZW50KSAhPT0gdm9pZCAwKSB7XG4gICAgICBtcyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudE9mSW50ZXJ2YWwodGhpcy5zdGF0ZS5yZWZyZXNoT25BY3RpdmF0ZS5wZXJjZW50KTtcbiAgICB9XG4gICAgaWYgKCgoX2QgPSAoX2MgPSB0aGlzLnN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX2MucmVmcmVzaE9uQWN0aXZhdGUpID09IG51bGwgPyB2b2lkIDAgOiBfZC5hZnRlck1zKSAhPT0gdm9pZCAwKSB7XG4gICAgICBtcyA9IE1hdGgubWluKHRoaXMuc3RhdGUucmVmcmVzaE9uQWN0aXZhdGUuYWZ0ZXJNcywgbXMgIT0gbnVsbCA/IG1zIDogSW5maW5pdHkpO1xuICAgIH1cbiAgICBpZiAobXMgIT09IHZvaWQgMCkge1xuICAgICAgdGhpcy5yZWZyZXNoUmFuZ2UobXMpO1xuICAgIH1cbiAgfVxuICBnZXRUaW1lWm9uZVNvdXJjZSgpIHtcbiAgICBpZiAoIXRoaXMucGFyZW50IHx8ICF0aGlzLnBhcmVudC5wYXJlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBjb25zdCBzb3VyY2UgPSBnZXRDbG9zZXN0KHRoaXMucGFyZW50LnBhcmVudCwgKG8pID0+IHtcbiAgICAgIGlmIChvLnN0YXRlLiR0aW1lUmFuZ2UgJiYgby5zdGF0ZS4kdGltZVJhbmdlLnN0YXRlLnRpbWVab25lKSB7XG4gICAgICAgIHJldHVybiBvLnN0YXRlLiR0aW1lUmFuZ2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH0pO1xuICAgIGlmICghc291cmNlKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuICByZWZyZXNoUmFuZ2UocmVmcmVzaEFmdGVyTXMpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgdmFsdWUgPSBldmFsdWF0ZVRpbWVSYW5nZShcbiAgICAgIHRoaXMuc3RhdGUuZnJvbSxcbiAgICAgIHRoaXMuc3RhdGUudG8sXG4gICAgICAoX2EgPSB0aGlzLnN0YXRlLnRpbWVab25lKSAhPSBudWxsID8gX2EgOiBnZXRUaW1lWm9uZSgpLFxuICAgICAgdGhpcy5zdGF0ZS5maXNjYWxZZWFyU3RhcnRNb250aCxcbiAgICAgIHRoaXMuc3RhdGUuVU5TQUZFX25vd0RlbGF5XG4gICAgKTtcbiAgICBjb25zdCBkaWZmID0gdmFsdWUudG8uZGlmZih0aGlzLnN0YXRlLnZhbHVlLnRvLCBcIm1pbGxpc2Vjb25kc1wiKTtcbiAgICBpZiAoZGlmZiA+PSByZWZyZXNoQWZ0ZXJNcykge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHZhbHVlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgY2FsY3VsYXRlUGVyY2VudE9mSW50ZXJ2YWwocGVyY2VudCkge1xuICAgIGNvbnN0IGludGVydmFsTXMgPSB0aGlzLnN0YXRlLnZhbHVlLnRvLmRpZmYodGhpcy5zdGF0ZS52YWx1ZS5mcm9tLCBcIm1pbGxpc2Vjb25kc1wiKTtcbiAgICByZXR1cm4gTWF0aC5jZWlsKGludGVydmFsTXMgLyBwZXJjZW50KTtcbiAgfVxuICBnZXRUaW1lWm9uZSgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS50aW1lWm9uZSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUudGltZVpvbmU7XG4gICAgfVxuICAgIGNvbnN0IHRpbWVab25lU291cmNlID0gdGhpcy5nZXRUaW1lWm9uZVNvdXJjZSgpO1xuICAgIGlmICh0aW1lWm9uZVNvdXJjZSAhPT0gdGhpcykge1xuICAgICAgcmV0dXJuIHRpbWVab25lU291cmNlLnN0YXRlLnRpbWVab25lO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0VGltZVpvbmUoKTtcbiAgfVxuICBnZXRVcmxTdGF0ZSgpIHtcbiAgICBjb25zdCBwYXJhbXMgPSBsb2NhdGlvblNlcnZpY2UuZ2V0U2VhcmNoT2JqZWN0KCk7XG4gICAgY29uc3QgdXJsVmFsdWVzID0geyBmcm9tOiB0aGlzLnN0YXRlLmZyb20sIHRvOiB0aGlzLnN0YXRlLnRvLCB0aW1lem9uZTogdGhpcy5nZXRUaW1lWm9uZSgpIH07XG4gICAgaWYgKHBhcmFtcy50aW1lICYmIHBhcmFtc1tcInRpbWUud2luZG93XCJdKSB7XG4gICAgICB1cmxWYWx1ZXMudGltZSA9IG51bGw7XG4gICAgICB1cmxWYWx1ZXNbXCJ0aW1lLndpbmRvd1wiXSA9IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB1cmxWYWx1ZXM7XG4gIH1cbiAgdXBkYXRlRnJvbVVybCh2YWx1ZXMpIHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBjb25zdCB1cGRhdGUgPSB7fTtcbiAgICBsZXQgZnJvbSA9IHBhcnNlVXJsUGFyYW0odmFsdWVzLmZyb20pO1xuICAgIGxldCB0byA9IHBhcnNlVXJsUGFyYW0odmFsdWVzLnRvKTtcbiAgICBpZiAodmFsdWVzLnRpbWUgJiYgdmFsdWVzW1widGltZS53aW5kb3dcIl0pIHtcbiAgICAgIGNvbnN0IHRpbWUgPSBBcnJheS5pc0FycmF5KHZhbHVlcy50aW1lKSA/IHZhbHVlcy50aW1lWzBdIDogdmFsdWVzLnRpbWU7XG4gICAgICBjb25zdCB0aW1lV2luZG93ID0gQXJyYXkuaXNBcnJheSh2YWx1ZXNbXCJ0aW1lLndpbmRvd1wiXSkgPyB2YWx1ZXNbXCJ0aW1lLndpbmRvd1wiXVswXSA6IHZhbHVlc1tcInRpbWUud2luZG93XCJdO1xuICAgICAgY29uc3QgdGltZVJhbmdlID0gZ2V0VGltZVdpbmRvdyh0aW1lLCB0aW1lV2luZG93KTtcbiAgICAgIGlmICh0aW1lUmFuZ2UuZnJvbSAmJiBpc1ZhbGlkKHRpbWVSYW5nZS5mcm9tKSkge1xuICAgICAgICBmcm9tID0gdGltZVJhbmdlLmZyb207XG4gICAgICB9XG4gICAgICBpZiAodGltZVJhbmdlLnRvICYmIGlzVmFsaWQodGltZVJhbmdlLnRvKSkge1xuICAgICAgICB0byA9IHRpbWVSYW5nZS50bztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZyb20gJiYgaXNWYWxpZChmcm9tKSkge1xuICAgICAgdXBkYXRlLmZyb20gPSBmcm9tO1xuICAgIH1cbiAgICBpZiAodG8gJiYgaXNWYWxpZCh0bykpIHtcbiAgICAgIHVwZGF0ZS50byA9IHRvO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlcy50aW1lem9uZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdXBkYXRlLnRpbWVab25lID0gdmFsdWVzLnRpbWV6b25lICE9PSBcIlwiID8gdmFsdWVzLnRpbWV6b25lIDogdm9pZCAwO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LmtleXModXBkYXRlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdXBkYXRlLnZhbHVlID0gZXZhbHVhdGVUaW1lUmFuZ2UoXG4gICAgICAoX2EgPSB1cGRhdGUuZnJvbSkgIT0gbnVsbCA/IF9hIDogdGhpcy5zdGF0ZS5mcm9tLFxuICAgICAgKF9iID0gdXBkYXRlLnRvKSAhPSBudWxsID8gX2IgOiB0aGlzLnN0YXRlLnRvLFxuICAgICAgKF9jID0gdXBkYXRlLnRpbWVab25lKSAhPSBudWxsID8gX2MgOiB0aGlzLmdldFRpbWVab25lKCksXG4gICAgICB0aGlzLnN0YXRlLmZpc2NhbFllYXJTdGFydE1vbnRoLFxuICAgICAgdGhpcy5zdGF0ZS5VTlNBRkVfbm93RGVsYXlcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnNldFN0YXRlKHVwZGF0ZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGdldFRpbWVXaW5kb3codGltZSwgdGltZVdpbmRvdykge1xuICBjb25zdCB2YWx1ZVRpbWUgPSBpc05hTihEYXRlLnBhcnNlKHRpbWUpKSA/IHBhcnNlSW50KHRpbWUsIDEwKSA6IERhdGUucGFyc2UodGltZSk7XG4gIGxldCB0aW1lV2luZG93TXM7XG4gIGlmICh0aW1lV2luZG93Lm1hdGNoKC9eXFxkKyQvKSAmJiBwYXJzZUludCh0aW1lV2luZG93LCAxMCkpIHtcbiAgICB0aW1lV2luZG93TXMgPSBwYXJzZUludCh0aW1lV2luZG93LCAxMCk7XG4gIH0gZWxzZSB7XG4gICAgdGltZVdpbmRvd01zID0gcmFuZ2VVdGlsLmludGVydmFsVG9Ncyh0aW1lV2luZG93KTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGZyb206IHRvVXRjKHZhbHVlVGltZSAtIHRpbWVXaW5kb3dNcyAvIDIpLnRvSVNPU3RyaW5nKCksXG4gICAgdG86IHRvVXRjKHZhbHVlVGltZSArIHRpbWVXaW5kb3dNcyAvIDIpLnRvSVNPU3RyaW5nKClcbiAgfTtcbn1cblxuZXhwb3J0IHsgU2NlbmVUaW1lUmFuZ2UgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVTJObGJtVlVhVzFsVW1GdVoyVXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwzTnlZeTlqYjNKbEwxTmpaVzVsVkdsdFpWSmhibWRsTG5SemVDSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJuWlhSVWFXMWxXbTl1WlN3Z2NtRnVaMlZWZEdsc0xDQlVhVzFsVW1GdVoyVXNJSFJ2VlhSaklIMGdabkp2YlNBblFHZHlZV1poYm1FdlpHRjBZU2M3WEc1cGJYQnZjblFnZXlCVWFXMWxXbTl1WlNCOUlHWnliMjBnSjBCbmNtRm1ZVzVoTDNOamFHVnRZU2M3WEc1Y2JtbHRjRzl5ZENCN0lGTmpaVzVsVDJKcVpXTjBWWEpzVTNsdVkwTnZibVpwWnlCOUlHWnliMjBnSnk0dUwzTmxjblpwWTJWekwxTmpaVzVsVDJKcVpXTjBWWEpzVTNsdVkwTnZibVpwWnljN1hHNWNibWx0Y0c5eWRDQjdJRk5qWlc1bFQySnFaV04wUW1GelpTQjlJR1p5YjIwZ0p5NHZVMk5sYm1WUFltcGxZM1JDWVhObEp6dGNibWx0Y0c5eWRDQjdJRk5qWlc1bFZHbHRaVkpoYm1kbFRHbHJaU3dnVTJObGJtVlVhVzFsVW1GdVoyVlRkR0YwWlN3Z1UyTmxibVZQWW1wbFkzUlZjbXhXWVd4MVpYTWdmU0JtY205dElDY3VMM1I1Y0dWekp6dGNibWx0Y0c5eWRDQjdJR2RsZEVOc2IzTmxjM1FnZlNCbWNtOXRJQ2N1TDNOalpXNWxSM0poY0dndmRYUnBiSE1uTzF4dWFXMXdiM0owSUhzZ2NHRnljMlZWY214UVlYSmhiU0I5SUdaeWIyMGdKeTR1TDNWMGFXeHpMM0JoY25ObFZYSnNVR0Z5WVcwbk8xeHVhVzF3YjNKMElIc2daWFpoYkhWaGRHVlVhVzFsVW1GdVoyVWdmU0JtY205dElDY3VMaTkxZEdsc2N5OWxkbUZzZFdGMFpWUnBiV1ZTWVc1blpTYzdYRzVwYlhCdmNuUWdleUJzYjJOaGRHbHZibE5sY25acFkyVXNJRkpsWm5KbGMyaEZkbVZ1ZENCOUlHWnliMjBnSjBCbmNtRm1ZVzVoTDNKMWJuUnBiV1VuTzF4dWFXMXdiM0owSUhzZ2FYTldZV3hwWkNCOUlHWnliMjBnSnk0dUwzVjBhV3h6TDJSaGRHVW5PMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdVMk5sYm1WVWFXMWxVbUZ1WjJVZ1pYaDBaVzVrY3lCVFkyVnVaVTlpYW1WamRFSmhjMlU4VTJObGJtVlVhVzFsVW1GdVoyVlRkR0YwWlQ0Z2FXMXdiR1Z0Wlc1MGN5QlRZMlZ1WlZScGJXVlNZVzVuWlV4cGEyVWdlMXh1SUNCd2NtOTBaV04wWldRZ1gzVnliRk41Ym1NZ1BTQnVaWGNnVTJObGJtVlBZbXBsWTNSVmNteFRlVzVqUTI5dVptbG5LSFJvYVhNc0lIc2dhMlY1Y3pvZ1d5ZG1jbTl0Snl3Z0ozUnZKeXdnSjNScGJXVjZiMjVsSnl3Z0ozUnBiV1VuTENBbmRHbHRaUzUzYVc1a2IzY25YU0I5S1R0Y2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvYzNSaGRHVTZJRkJoY25ScFlXdzhVMk5sYm1WVWFXMWxVbUZ1WjJWVGRHRjBaVDRnUFNCN2ZTa2dlMXh1SUNBZ0lHTnZibk4wSUdaeWIyMGdQU0J6ZEdGMFpTNW1jbTl0SUNZbUlHbHpWbUZzYVdRb2MzUmhkR1V1Wm5KdmJTa2dQeUJ6ZEdGMFpTNW1jbTl0SURvZ0oyNXZkeTAyYUNjN1hHNGdJQ0FnWTI5dWMzUWdkRzhnUFNCemRHRjBaUzUwYnlBbUppQnBjMVpoYkdsa0tITjBZWFJsTG5SdktTQS9JSE4wWVhSbExuUnZJRG9nSjI1dmR5YzdYRzVjYmlBZ0lDQmpiMjV6ZENCMGFXMWxXbTl1WlNBOUlITjBZWFJsTG5ScGJXVmFiMjVsTzF4dUlDQWdJR052Ym5OMElIWmhiSFZsSUQwZ1pYWmhiSFZoZEdWVWFXMWxVbUZ1WjJVb1hHNGdJQ0FnSUNCbWNtOXRMRnh1SUNBZ0lDQWdkRzhzWEc0Z0lDQWdJQ0IwYVcxbFdtOXVaU0I4ZkNCblpYUlVhVzFsV205dVpTZ3BMRnh1SUNBZ0lDQWdjM1JoZEdVdVptbHpZMkZzV1dWaGNsTjBZWEowVFc5dWRHZ3NYRzRnSUNBZ0lDQnpkR0YwWlM1VlRsTkJSa1ZmYm05M1JHVnNZWGxjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUhKbFpuSmxjMmhQYmtGamRHbDJZWFJsSUQwZ2MzUmhkR1V1Y21WbWNtVnphRTl1UVdOMGFYWmhkR1VnUHo4Z2V5QndaWEpqWlc1ME9pQXhNQ0I5TzF4dUlDQWdJSE4xY0dWeUtIc2dabkp2YlN3Z2RHOHNJSFJwYldWYWIyNWxMQ0IyWVd4MVpTd2djbVZtY21WemFFOXVRV04wYVhaaGRHVXNJQzR1TG5OMFlYUmxJSDBwTzF4dVhHNGdJQ0FnZEdocGN5NWhaR1JCWTNScGRtRjBhVzl1U0dGdVpHeGxjaWgwYUdsekxsOXZia0ZqZEdsMllYUmxMbUpwYm1Rb2RHaHBjeWtwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCZmIyNUJZM1JwZG1GMFpTZ3BJSHRjYmlBZ0lDQXZMeUJYYUdWdUlGTmpaVzVsVkdsdFpWSmhibWRsSUdoaGN5QnVieUIwYVcxbElIcHZibVVnY0hKdmRtbGtaV1FzSUdacGJtUWdZMnh2YzJWemRDQnpiM1Z5WTJVZ2IyWWdkR2x0WlNCNmIyNWxJR0Z1WkNCemRXSnpZM0pwWW1VZ2RHOGdhWFJjYmlBZ0lDQnBaaUFvSVhSb2FYTXVjM1JoZEdVdWRHbHRaVnB2Ym1VcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhScGJXVmFiMjVsVTI5MWNtTmxJRDBnZEdocGN5NW5aWFJVYVcxbFdtOXVaVk52ZFhKalpTZ3BPMXh1SUNBZ0lDQWdhV1lnS0hScGJXVmFiMjVsVTI5MWNtTmxJQ0U5UFNCMGFHbHpLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYM04xWW5NdVlXUmtLRnh1SUNBZ0lDQWdJQ0FnSUhScGJXVmFiMjVsVTI5MWNtTmxMbk4xWW5OamNtbGlaVlJ2VTNSaGRHVW9LRzRzSUhBcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h1TG5ScGJXVmFiMjVsSUNFOVBTQjFibVJsWm1sdVpXUWdKaVlnYmk1MGFXMWxXbTl1WlNBaFBUMGdjQzUwYVcxbFdtOXVaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZV3gxWlRvZ1pYWmhiSFZoZEdWVWFXMWxVbUZ1WjJVb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMbVp5YjIwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMblJ2TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHbHRaVnB2Ym1WVGIzVnlZMlV1WjJWMFZHbHRaVnB2Ym1Vb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMzUmhkR1V1Wm1selkyRnNXV1ZoY2xOMFlYSjBUVzl1ZEdnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMbFZPVTBGR1JWOXViM2RFWld4aGVWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSDBwWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tISmhibWRsVlhScGJDNXBjMUpsYkdGMGFYWmxWR2x0WlZKaGJtZGxLSFJvYVhNdWMzUmhkR1V1ZG1Gc2RXVXVjbUYzS1NrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV5WldaeVpYTm9TV1pUZEdGc1pTZ3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjbVZtY21WemFFbG1VM1JoYkdVb0tTQjdYRzRnSUNBZ2JHVjBJRzF6TzF4dUlDQWdJR2xtSUNoMGFHbHpMbk4wWVhSbFB5NXlaV1p5WlhOb1QyNUJZM1JwZG1GMFpUOHVjR1Z5WTJWdWRDQWhQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNCdGN5QTlJSFJvYVhNdVkyRnNZM1ZzWVhSbFVHVnlZMlZ1ZEU5bVNXNTBaWEoyWVd3b2RHaHBjeTV6ZEdGMFpTNXlaV1p5WlhOb1QyNUJZM1JwZG1GMFpTNXdaWEpqWlc1MEtUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIUm9hWE11YzNSaGRHVS9MbkpsWm5KbGMyaFBia0ZqZEdsMllYUmxQeTVoWm5SbGNrMXpJQ0U5UFNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lHMXpJRDBnVFdGMGFDNXRhVzRvZEdocGN5NXpkR0YwWlM1eVpXWnlaWE5vVDI1QlkzUnBkbUYwWlM1aFpuUmxjazF6TENCdGN5QS9QeUJKYm1acGJtbDBlU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2h0Y3lBaFBUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuSmxabkpsYzJoU1lXNW5aU2h0Y3lrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGZHBiR3dnZEhKaGRtVnljMlVnZFhBZ2RHaGxJSE5qWlc1bElHZHlZWEJvSUhSdklHWnBibVFnZEdobElHTnNiM05sYzNRZ1UyTmxibVZVYVcxbFVtRnVaMlZNYVd0bElIZHBkR2dnZEdsdFpTQjZiMjVsSUhObGRGeHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQm5aWFJVYVcxbFdtOXVaVk52ZFhKalpTZ3BJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVjR0Z5Wlc1MElIeDhJQ0YwYUdsekxuQmhjbVZ1ZEM1d1lYSmxiblFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUgxY2JpQWdJQ0F2THlCR2FXNWtJSFJvWlNCamJHOXpaWE4wSUhOdmRYSmpaU0J2WmlCMGFXMWxJSHB2Ym1WY2JpQWdJQ0JqYjI1emRDQnpiM1Z5WTJVZ1BTQm5aWFJEYkc5elpYTjBQRk5qWlc1bFZHbHRaVkpoYm1kbFRHbHJaVDRvZEdocGN5NXdZWEpsYm5RdWNHRnlaVzUwTENBb2J5a2dQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tHOHVjM1JoZEdVdUpIUnBiV1ZTWVc1blpTQW1KaUJ2TG5OMFlYUmxMaVIwYVcxbFVtRnVaMlV1YzNSaGRHVXVkR2x0WlZwdmJtVXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzh1YzNSaGRHVXVKSFJwYldWU1lXNW5aVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnBaaUFvSVhOdmRYSmpaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSE52ZFhKalpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWldaeVpYTm9aWE1nZEdsdFpTQnlZVzVuWlNCcFppQnBkQ0JwY3lCdmJHUmxjaUIwYUdGdUlIUm9aU0JwYm5aaGJHbGtZWFJwYjI0Z2FXNTBaWEoyWVd4Y2JpQWdJQ29nUUhCaGNtRnRJSEpsWm5KbGMyaEJablJsY2sxeklHbHVkbUZzYVdSaGRHbHZiaUJwYm5SbGNuWmhiQ0FvYldsc2JHbHpaV052Ym1SektWeHVJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCeVpXWnlaWE5vVW1GdVoyVW9jbVZtY21WemFFRm1kR1Z5VFhNNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUdOdmJuTjBJSFpoYkhWbElEMGdaWFpoYkhWaGRHVlVhVzFsVW1GdVoyVW9YRzRnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMbVp5YjIwc1hHNGdJQ0FnSUNCMGFHbHpMbk4wWVhSbExuUnZMRnh1SUNBZ0lDQWdkR2hwY3k1emRHRjBaUzUwYVcxbFdtOXVaU0EvUHlCblpYUlVhVzFsV205dVpTZ3BMRnh1SUNBZ0lDQWdkR2hwY3k1emRHRjBaUzVtYVhOallXeFpaV0Z5VTNSaGNuUk5iMjUwYUN4Y2JpQWdJQ0FnSUhSb2FYTXVjM1JoZEdVdVZVNVRRVVpGWDI1dmQwUmxiR0Y1WEc0Z0lDQWdLVHRjYmx4dUlDQWdJR052Ym5OMElHUnBabVlnUFNCMllXeDFaUzUwYnk1a2FXWm1LSFJvYVhNdWMzUmhkR1V1ZG1Gc2RXVXVkRzhzSUNkdGFXeHNhWE5sWTI5dVpITW5LVHRjYmlBZ0lDQnBaaUFvWkdsbVppQStQU0J5WldaeVpYTm9RV1owWlhKTmN5a2dlMXh1SUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lIWmhiSFZsTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCallXeGpkV3hoZEdWUVpYSmpaVzUwVDJaSmJuUmxjblpoYkNod1pYSmpaVzUwT2lCdWRXMWlaWElwT2lCdWRXMWlaWElnZTF4dUlDQWdJR052Ym5OMElHbHVkR1Z5ZG1Gc1RYTWdQU0IwYUdsekxuTjBZWFJsTG5aaGJIVmxMblJ2TG1ScFptWW9kR2hwY3k1emRHRjBaUzUyWVd4MVpTNW1jbTl0TENBbmJXbHNiR2x6WldOdmJtUnpKeWs3WEc0Z0lDQWdjbVYwZFhKdUlFMWhkR2d1WTJWcGJDaHBiblJsY25aaGJFMXpJQzhnY0dWeVkyVnVkQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMFZHbHRaVnB2Ym1Vb0tUb2dWR2x0WlZwdmJtVWdlMXh1SUNBZ0lDOHZJRkpsZEhWeWJpQnNiMk5oYkNCMGFXMWxJSHB2Ym1VZ2FXWWdjSEp2ZG1sa1pXUmNiaUFnSUNCcFppQW9kR2hwY3k1emRHRjBaUzUwYVcxbFdtOXVaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWMzUmhkR1V1ZEdsdFpWcHZibVU3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnVW1WemIyeDJaU0JvYVdkb1pYSWdiR1YyWld3Z2RHbHRaU0I2YjI1bElITnZkWEpqWlZ4dUlDQWdJR052Ym5OMElIUnBiV1ZhYjI1bFUyOTFjbU5sSUQwZ2RHaHBjeTVuWlhSVWFXMWxXbTl1WlZOdmRYSmpaU2dwTzF4dUlDQWdJR2xtSUNoMGFXMWxXbTl1WlZOdmRYSmpaU0FoUFQwZ2RHaHBjeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJwYldWYWIyNWxVMjkxY21ObExuTjBZWFJsTG5ScGJXVmFiMjVsSVR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCU1pYUjFjbTRnWkdWbVlYVnNkQ0IwYVcxbElIcHZibVZjYmlBZ0lDQnlaWFIxY200Z1oyVjBWR2x0WlZwdmJtVW9LVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ2YmxScGJXVlNZVzVuWlVOb1lXNW5aU0E5SUNoMGFXMWxVbUZ1WjJVNklGUnBiV1ZTWVc1blpTa2dQVDRnZTF4dUlDQWdJR052Ym5OMElIVndaR0YwWlRvZ1VHRnlkR2xoYkR4VFkyVnVaVlJwYldWU1lXNW5aVk4wWVhSbFBpQTlJSHQ5TzF4dVhHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCMGFXMWxVbUZ1WjJVdWNtRjNMbVp5YjIwZ1BUMDlJQ2R6ZEhKcGJtY25LU0I3WEc0Z0lDQWdJQ0IxY0dSaGRHVXVabkp2YlNBOUlIUnBiV1ZTWVc1blpTNXlZWGN1Wm5KdmJUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnZFhCa1lYUmxMbVp5YjIwZ1BTQjBhVzFsVW1GdVoyVXVjbUYzTG1aeWIyMHVkRzlKVTA5VGRISnBibWNvS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUhScGJXVlNZVzVuWlM1eVlYY3VkRzhnUFQwOUlDZHpkSEpwYm1jbktTQjdYRzRnSUNBZ0lDQjFjR1JoZEdVdWRHOGdQU0IwYVcxbFVtRnVaMlV1Y21GM0xuUnZPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCMWNHUmhkR1V1ZEc4Z1BTQjBhVzFsVW1GdVoyVXVjbUYzTG5SdkxuUnZTVk5QVTNSeWFXNW5LQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkWEJrWVhSbExuWmhiSFZsSUQwZ1pYWmhiSFZoZEdWVWFXMWxVbUZ1WjJVb1hHNGdJQ0FnSUNCMWNHUmhkR1V1Wm5KdmJTeGNiaUFnSUNBZ0lIVndaR0YwWlM1MGJ5eGNiaUFnSUNBZ0lIUm9hWE11WjJWMFZHbHRaVnB2Ym1Vb0tTeGNiaUFnSUNBZ0lIUm9hWE11YzNSaGRHVXVabWx6WTJGc1dXVmhjbE4wWVhKMFRXOXVkR2dzWEc0Z0lDQWdJQ0IwYUdsekxuTjBZWFJsTGxWT1UwRkdSVjl1YjNkRVpXeGhlVnh1SUNBZ0lDazdYRzVjYmlBZ0lDQXZMeUJQYm14NUlIVndaR0YwWlNCcFppQjBhVzFsSUhKaGJtZGxJR0ZqZEhWaGJHeDVJR05vWVc1blpXUmNiaUFnSUNCcFppQW9kWEJrWVhSbExtWnliMjBnSVQwOUlIUm9hWE11YzNSaGRHVXVabkp2YlNCOGZDQjFjR1JoZEdVdWRHOGdJVDA5SUhSb2FYTXVjM1JoZEdVdWRHOHBJSHRjYmlBZ0lDQWdJSFJvYVhNdVgzVnliRk41Ym1NdWNHVnlabTl5YlVKeWIzZHpaWEpJYVhOMGIzSjVRV04wYVc5dUtDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2gxY0dSaGRHVXBPMXh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1SUNCOU8xeHVYRzRnSUhCMVlteHBZeUJ2YmxScGJXVmFiMjVsUTJoaGJtZGxJRDBnS0hScGJXVmFiMjVsT2lCVWFXMWxXbTl1WlNrZ1BUNGdlMXh1SUNBZ0lIUm9hWE11WDNWeWJGTjVibU11Y0dWeVptOXliVUp5YjNkelpYSklhWE4wYjNKNVFXTjBhVzl1S0NncElEMCtJSHRjYmlBZ0lDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2V5QjBhVzFsV205dVpTQjlLVHRjYmlBZ0lDQjlLVHRjYmlBZ2ZUdGNibHh1SUNCd2RXSnNhV01nYjI1U1pXWnlaWE5vSUQwZ0tDa2dQVDRnZTF4dUlDQWdJSFJvYVhNdWMyVjBVM1JoZEdVb2UxeHVJQ0FnSUNBZ2RtRnNkV1U2SUdWMllXeDFZWFJsVkdsdFpWSmhibWRsS0Z4dUlDQWdJQ0FnSUNCMGFHbHpMbk4wWVhSbExtWnliMjBzWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM1JoZEdVdWRHOHNYRzRnSUNBZ0lDQWdJSFJvYVhNdVoyVjBWR2x0WlZwdmJtVW9LU3hjYmlBZ0lDQWdJQ0FnZEdocGN5NXpkR0YwWlM1bWFYTmpZV3haWldGeVUzUmhjblJOYjI1MGFDeGNiaUFnSUNBZ0lDQWdkR2hwY3k1emRHRjBaUzVWVGxOQlJrVmZibTkzUkdWc1lYbGNiaUFnSUNBZ0lDa3NYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQjBhR2x6TG5CMVlteHBjMmhGZG1WdWRDaHVaWGNnVW1WbWNtVnphRVYyWlc1MEtDa3NJSFJ5ZFdVcE8xeHVJQ0I5TzF4dVhHNGdJSEIxWW14cFl5Qm5aWFJWY214VGRHRjBaU2dwSUh0Y2JpQWdJQ0JqYjI1emRDQndZWEpoYlhNZ1BTQnNiMk5oZEdsdmJsTmxjblpwWTJVdVoyVjBVMlZoY21Ob1QySnFaV04wS0NrN1hHNGdJQ0FnWTI5dWMzUWdkWEpzVm1Gc2RXVnpPaUJUWTJWdVpVOWlhbVZqZEZWeWJGWmhiSFZsY3lBOUlIc2dabkp2YlRvZ2RHaHBjeTV6ZEdGMFpTNW1jbTl0TENCMGJ6b2dkR2hwY3k1emRHRjBaUzUwYnl3Z2RHbHRaWHB2Ym1VNklIUm9hWE11WjJWMFZHbHRaVnB2Ym1Vb0tTQjlPMXh1WEc0Z0lDQWdMeThnUTJ4bFlYSWdkR2x0WlNCaGJtUWdkR2x0WlM1M2FXNWtiM2NnYjI1alpTQjBhR1Y1SUdGeVpTQmpiMjUyWlhKMFpXUWdkRzhnWm5KdmJTQmhibVFnZEc5Y2JpQWdJQ0JwWmlBb2NHRnlZVzF6TG5ScGJXVWdKaVlnY0dGeVlXMXpXeWQwYVcxbExuZHBibVJ2ZHlkZEtTQjdYRzRnSUNBZ0lDQjFjbXhXWVd4MVpYTXVkR2x0WlNBOUlHNTFiR3c3WEc0Z0lDQWdJQ0IxY214V1lXeDFaWE5iSjNScGJXVXVkMmx1Wkc5M0oxMGdQU0J1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUIxY214V1lXeDFaWE03WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nZFhCa1lYUmxSbkp2YlZWeWJDaDJZV3gxWlhNNklGTmpaVzVsVDJKcVpXTjBWWEpzVm1Gc2RXVnpLU0I3WEc0Z0lDQWdZMjl1YzNRZ2RYQmtZWFJsT2lCUVlYSjBhV0ZzUEZOalpXNWxWR2x0WlZKaGJtZGxVM1JoZEdVK0lEMGdlMzA3WEc1Y2JpQWdJQ0JzWlhRZ1puSnZiU0E5SUhCaGNuTmxWWEpzVUdGeVlXMG9kbUZzZFdWekxtWnliMjBwTzF4dUlDQWdJR3hsZENCMGJ5QTlJSEJoY25ObFZYSnNVR0Z5WVcwb2RtRnNkV1Z6TG5SdktUdGNibHh1SUNBZ0lHbG1JQ2gyWVd4MVpYTXVkR2x0WlNBbUppQjJZV3gxWlhOYkozUnBiV1V1ZDJsdVpHOTNKMTBwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSFJwYldVZ1BTQkJjbkpoZVM1cGMwRnljbUY1S0haaGJIVmxjeTUwYVcxbEtTQS9JSFpoYkhWbGN5NTBhVzFsV3pCZElEb2dkbUZzZFdWekxuUnBiV1U3WEc0Z0lDQWdJQ0JqYjI1emRDQjBhVzFsVjJsdVpHOTNJRDBnUVhKeVlYa3VhWE5CY25KaGVTaDJZV3gxWlhOYkozUnBiV1V1ZDJsdVpHOTNKMTBwSUQ4Z2RtRnNkV1Z6V3lkMGFXMWxMbmRwYm1SdmR5ZGRXekJkSURvZ2RtRnNkV1Z6V3lkMGFXMWxMbmRwYm1SdmR5ZGRPMXh1SUNBZ0lDQWdZMjl1YzNRZ2RHbHRaVkpoYm1kbElEMGdaMlYwVkdsdFpWZHBibVJ2ZHloMGFXMWxMQ0IwYVcxbFYybHVaRzkzS1R0Y2JpQWdJQ0FnSUdsbUlDaDBhVzFsVW1GdVoyVXVabkp2YlNBbUppQnBjMVpoYkdsa0tIUnBiV1ZTWVc1blpTNW1jbTl0S1NrZ2UxeHVJQ0FnSUNBZ0lDQm1jbTl0SUQwZ2RHbHRaVkpoYm1kbExtWnliMjA3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdsbUlDaDBhVzFsVW1GdVoyVXVkRzhnSmlZZ2FYTldZV3hwWkNoMGFXMWxVbUZ1WjJVdWRHOHBLU0I3WEc0Z0lDQWdJQ0FnSUhSdklEMGdkR2x0WlZKaGJtZGxMblJ2TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNobWNtOXRJQ1ltSUdselZtRnNhV1FvWm5KdmJTa3BJSHRjYmlBZ0lDQWdJSFZ3WkdGMFpTNW1jbTl0SUQwZ1puSnZiVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvZEc4Z0ppWWdhWE5XWVd4cFpDaDBieWtwSUh0Y2JpQWdJQ0FnSUhWd1pHRjBaUzUwYnlBOUlIUnZPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdkbUZzZFdWekxuUnBiV1Y2YjI1bElEMDlQU0FuYzNSeWFXNW5KeWtnZTF4dUlDQWdJQ0FnZFhCa1lYUmxMblJwYldWYWIyNWxJRDBnZG1Gc2RXVnpMblJwYldWNmIyNWxJQ0U5UFNBbkp5QS9JSFpoYkhWbGN5NTBhVzFsZW05dVpTQTZJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvVDJKcVpXTjBMbXRsZVhNb2RYQmtZWFJsS1M1c1pXNW5kR2dnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCMWNHUmhkR1V1ZG1Gc2RXVWdQU0JsZG1Gc2RXRjBaVlJwYldWU1lXNW5aU2hjYmlBZ0lDQWdJSFZ3WkdGMFpTNW1jbTl0SUQ4L0lIUm9hWE11YzNSaGRHVXVabkp2YlN4Y2JpQWdJQ0FnSUhWd1pHRjBaUzUwYnlBL1B5QjBhR2x6TG5OMFlYUmxMblJ2TEZ4dUlDQWdJQ0FnZFhCa1lYUmxMblJwYldWYWIyNWxJRDgvSUhSb2FYTXVaMlYwVkdsdFpWcHZibVVvS1N4Y2JpQWdJQ0FnSUhSb2FYTXVjM1JoZEdVdVptbHpZMkZzV1dWaGNsTjBZWEowVFc5dWRHZ3NYRzRnSUNBZ0lDQjBhR2x6TG5OMFlYUmxMbFZPVTBGR1JWOXViM2RFWld4aGVWeHVJQ0FnSUNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpaWFJUZEdGMFpTaDFjR1JoZEdVcE8xeHVJQ0I5WEc1OVhHNWNiaThxS2x4dUlDb2dRMkZzWTNWc1lYUmxjeUIwYUdVZ1pIVnlZWFJwYjI0Z2IyWWdkR2hsSUhScGJXVWdjbUZ1WjJVZ1puSnZiU0IwYVcxbExYUnBiV1V1ZDJsdVpHOTNMeklnZEc4Z2RHbHRaU3QwYVcxbExuZHBibVJ2ZHk4eUxpQkNiM1JvSUdKbElITndaV05wWm1sbFpDQnBiaUJ0Y3k0Z1JtOXlJR1Y0WVcxd2JHVWdQM1JwYldVOU1UVXdNREF3TURBd01EQXdNQ1owYVcxbExuZHBibVJ2ZHoweE1EQXdNQ0J5WlhOMWJIUnpJR2x1SUdFZ01UQXRjMlZqYjI1a0lIUnBiV1VnY21GdVoyVWdabkp2YlNBeE5EazVPVGs1T1RrMU1EQXdJSFJ2SURFMU1EQXdNREF3TURVd01EQmdMbHh1SUNvZ1FIQmhjbUZ0SUhScGJXVWdMU0IwYVcxbElHbHVJRzF6WEc0Z0tpQkFjR0Z5WVcwZ2RHbHRaVmRwYm1SdmR5QXRJSFJwYldVZ2QybHVaRzkzSUdsdUlHMXpJRzl5SUdsdWRHVnlkbUZzSUhOMGNtbHVaMXh1SUNvdlhHNW1kVzVqZEdsdmJpQm5aWFJVYVcxbFYybHVaRzkzS0hScGJXVTZJSE4wY21sdVp5d2dkR2x0WlZkcGJtUnZkem9nYzNSeWFXNW5LU0I3WEc0Z0lDOHZJRkJoY25ObElIUm9aU0IwYVcxbExDQmhjM04xYldsdVp5QnBkQ0JqYjNWc1pDQmlaU0JoYmlCSlUwOGdjM1J5YVc1bklHOXlJR0VnYm5WdFltVnlJR2x1SUcxcGJHeHBjMlZqYjI1a2MxeHVJQ0JqYjI1emRDQjJZV3gxWlZScGJXVWdQU0JwYzA1aFRpaEVZWFJsTG5CaGNuTmxLSFJwYldVcEtTQS9JSEJoY25ObFNXNTBLSFJwYldVc0lERXdLU0E2SUVSaGRHVXVjR0Z5YzJVb2RHbHRaU2s3WEc1Y2JpQWdiR1YwSUhScGJXVlhhVzVrYjNkTmN6dGNibHh1SUNCcFppQW9kR2x0WlZkcGJtUnZkeTV0WVhSamFDZ3ZYbHhjWkNza0x5a2dKaVlnY0dGeWMyVkpiblFvZEdsdFpWZHBibVJ2ZHl3Z01UQXBLU0I3WEc0Z0lDQWdMeThnZDJobGJpQjBhVzFsSUhkcGJtUnZkeUJwY3lCemNHVmphV1pwWldRZ2FXNGdiWE5jYmlBZ0lDQjBhVzFsVjJsdVpHOTNUWE1nUFNCd1lYSnpaVWx1ZENoMGFXMWxWMmx1Wkc5M0xDQXhNQ2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnZEdsdFpWZHBibVJ2ZDAxeklEMGdjbUZ1WjJWVmRHbHNMbWx1ZEdWeWRtRnNWRzlOY3loMGFXMWxWMmx1Wkc5M0tUdGNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQjdYRzRnSUNBZ1puSnZiVG9nZEc5VmRHTW9kbUZzZFdWVWFXMWxJQzBnZEdsdFpWZHBibVJ2ZDAxeklDOGdNaWt1ZEc5SlUwOVRkSEpwYm1jb0tTeGNiaUFnSUNCMGJ6b2dkRzlWZEdNb2RtRnNkV1ZVYVcxbElDc2dkR2x0WlZkcGJtUnZkMDF6SUM4Z01pa3VkRzlKVTA5VGRISnBibWNvS1N4Y2JpQWdmVHRjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBGQllVOHNUVUZCVFN4MVFrRkJkVUlzWlVGQmJVVXNRMEZCUVR0QlFVRkJMRVZCUnpsR0xGZEJRVUVzUTBGQldTeExRVUZ6UXl4SFFVRkJMRVZCUVVrc1JVRkJRVHRCUVdoQ0wwUXNTVUZCUVN4SlFVRkJMRVZCUVVFc1EwRkJRVHRCUVdsQ1NTeEpRVUZOTEUxQlFVRXNTVUZCUVN4SFFVRlBMRTFCUVUwc1NVRkJVU3hKUVVGQkxFOUJRVUVzUTBGQlVTeE5RVUZOTEVsQlFVa3NRMEZCUVN4SFFVRkpMRTFCUVUwc1NVRkJUeXhIUVVGQkxGRkJRVUVzUTBGQlFUdEJRVU01UkN4SlFVRk5MRTFCUVVFc1JVRkJRU3hIUVVGTExFMUJRVTBzUlVGQlRTeEpRVUZCTEU5QlFVRXNRMEZCVVN4TlFVRk5MRVZCUVVVc1EwRkJRU3hIUVVGSkxFMUJRVTBzUlVGQlN5eEhRVUZCTEV0QlFVRXNRMEZCUVR0QlFVVjBSQ3hKUVVGQkxFMUJRVTBzVjBGQlZ5eExRVUZOTEVOQlFVRXNVVUZCUVN4RFFVRkJPMEZCUTNaQ0xFbEJRVUVzVFVGQlRTeExRVUZSTEVkQlFVRXNhVUpCUVVFN1FVRkJRU3hOUVVOYUxFbEJRVUU3UVVGQlFTeE5RVU5CTEVWQlFVRTdRVUZCUVN4TlFVTkJMRmxCUVZrc1YwRkJXU3hGUVVGQk8wRkJRVUVzVFVGRGVFSXNTMEZCVFN4RFFVRkJMRzlDUVVGQk8wRkJRVUVzVFVGRFRpeExRVUZOTEVOQlFVRXNaVUZCUVR0QlFVRkJMRXRCUTFJc1EwRkJRVHRCUVVOQkxFbEJRVUVzVFVGQlRTeHhRa0ZCYjBJc1JVRkJUU3hIUVVGQkxFdEJRVUVzUTBGQlFTeHBRa0ZCUVN4TFFVRk9MRWxCUVRKQ0xFZEJRVUVzUlVGQlFTeEhRVUZCTEVWQlFVVXNVMEZCVXl4RlFVRkhMRVZCUVVFc1EwRkJRVHRCUVVOdVJTeEpRVUZCTEV0QlFVRXNRMEZCVFN4cFFrRkJSU3hKUVVGTkxFVkJRVUVzUlVGQlFTeEZRVUZKTEZGQlFWVXNSVUZCUVN4TFFVRkJMRVZCUVU4c2NVSkJRWE5DTEV0QlFVOHNRMEZCUVN4RFFVRkJMRU5CUVVFN1FVRm1iRVVzU1VGQlFTeEpRVUZCTEVOQlFWVXNVVUZCVnl4SFFVRkJMRWxCUVVrc2QwSkJRWGxDTEVOQlFVRXNTVUZCUVN4RlFVRk5MRVZCUVVVc1NVRkJRU3hGUVVGTkxFTkJRVU1zVFVGQlFTeEZRVUZSTEVsQlFVMHNSVUZCUVN4VlFVRkJMRVZCUVZrc1RVRkJVU3hGUVVGQkxHRkJRV0VzUjBGQlJ5eERRVUZCTEVOQlFVRTdRVUU0U0c1SUxFbEJRVThzU1VGQlFTeERRVUZCTEdsQ1FVRkJMRWRCUVc5Q0xFTkJRVU1zVTBGQmVVSXNTMEZCUVR0QlFVTnVSQ3hOUVVGQkxFMUJRVTBzVTBGQmRVTXNSVUZCUXl4RFFVRkJPMEZCUlRsRExFMUJRVUVzU1VGQlNTeFBRVUZQTEZOQlFVRXNRMEZCVlN4SFFVRkpMRU5CUVVFc1NVRkJRU3hMUVVGVExGRkJRVlVzUlVGQlFUdEJRVU14UXl4UlFVRlBMRTFCUVVFc1EwRkJRU3hKUVVGQkxFZEJRVThzVlVGQlZTeEhRVUZKTEVOQlFVRXNTVUZCUVN4RFFVRkJPMEZCUVVFc1QwRkRka0lzVFVGQlFUdEJRVU5NTEZGQlFVRXNUVUZCUVN4RFFVRlBMRWxCUVU4c1IwRkJRU3hUUVVGQkxFTkJRVlVzUjBGQlNTeERRVUZCTEVsQlFVRXNRMEZCU3l4WFFVRlpMRVZCUVVFc1EwRkJRVHRCUVVGQkxFOUJReTlETzBGQlJVRXNUVUZCUVN4SlFVRkpMRTlCUVU4c1UwRkJRU3hEUVVGVkxFZEJRVWtzUTBGQlFTeEZRVUZCTEV0QlFVOHNVVUZCVlN4RlFVRkJPMEZCUTNoRExGRkJRVThzVFVGQlFTeERRVUZCTEVWQlFVRXNSMEZCU3l4VlFVRlZMRWRCUVVrc1EwRkJRU3hGUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU55UWl4TlFVRkJPMEZCUTB3c1VVRkJRU3hOUVVGQkxFTkJRVThzUlVGQlN5eEhRVUZCTEZOQlFVRXNRMEZCVlN4SFFVRkpMRU5CUVVFc1JVRkJRU3hEUVVGSExGZEJRVmtzUlVGQlFTeERRVUZCTzBGQlFVRXNUMEZETTBNN1FVRkZRU3hOUVVGQkxFMUJRVUVzUTBGQlR5eExRVUZSTEVkQlFVRXNhVUpCUVVFN1FVRkJRU3hSUVVOaUxFMUJRVThzUTBGQlFTeEpRVUZCTzBGQlFVRXNVVUZEVUN4TlFVRlBMRU5CUVVFc1JVRkJRVHRCUVVGQkxGRkJRMUFzUzBGQlN5eFhRVUZaTEVWQlFVRTdRVUZCUVN4UlFVTnFRaXhMUVVGTExFdEJRVTBzUTBGQlFTeHZRa0ZCUVR0QlFVRkJMRkZCUTFnc1MwRkJTeXhMUVVGTkxFTkJRVUVzWlVGQlFUdEJRVUZCTEU5QlEySXNRMEZCUVR0QlFVZEJMRTFCUVVrc1NVRkJRU3hOUVVGQkxFTkJRVThzVTBGQlV5eEpRVUZMTEVOQlFVRXNTMEZCUVN4RFFVRk5MRkZCUVZFc1RVRkJUeXhEUVVGQkxFVkJRVUVzUzBGQlR5eEpRVUZMTEVOQlFVRXNTMEZCUVN4RFFVRk5MRVZCUVVrc1JVRkJRVHRCUVVOc1JTeFJRVUZMTEVsQlFVRXNRMEZCUVN4UlFVRkJMRU5CUVZNc05FSkJRVFJDTEUxQlFVMDdRVUZET1VNc1ZVRkJRU3hKUVVGQkxFTkJRVXNzVTBGQlV5eE5RVUZOTEVOQlFVRXNRMEZCUVR0QlFVRkJMRk5CUTNKQ0xFTkJRVUVzUTBGQlFUdEJRVUZCTEU5QlEwZzdRVUZCUVN4TFFVTkdMRU5CUVVFN1FVRkZRU3hKUVVGUExFbEJRVUVzUTBGQlFTeG5Ra0ZCUVN4SFFVRnRRaXhEUVVGRExGRkJRWFZDTEV0QlFVRTdRVUZEYUVRc1RVRkJTeXhKUVVGQkxFTkJRVUVzVVVGQlFTeERRVUZUTERSQ1FVRTBRaXhOUVVGTk8wRkJRemxETEZGQlFVc3NTVUZCUVN4RFFVRkJMRkZCUVVFc1EwRkJVeXhGUVVGRkxGRkJRVUVzUlVGQlZTeERRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTXpRaXhEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5JTEVOQlFVRTdRVUZGUVN4SlFVRkJMRWxCUVVFc1EwRkJUeXhaUVVGWkxFMUJRVTA3UVVGRGRrSXNUVUZCUVN4SlFVRkJMRU5CUVVzc1VVRkJVeXhEUVVGQk8wRkJRVUVzVVVGRFdpeExRVUZQTEVWQlFVRXNhVUpCUVVFN1FVRkJRU3hWUVVOTUxFdEJRVXNzUzBGQlRTeERRVUZCTEVsQlFVRTdRVUZCUVN4VlFVTllMRXRCUVVzc1MwRkJUU3hEUVVGQkxFVkJRVUU3UVVGQlFTeFZRVU5ZTEV0QlFVc3NWMEZCV1N4RlFVRkJPMEZCUVVFc1ZVRkRha0lzUzBGQlN5eExRVUZOTEVOQlFVRXNiMEpCUVVFN1FVRkJRU3hWUVVOWUxFdEJRVXNzUzBGQlRTeERRVUZCTEdWQlFVRTdRVUZCUVN4VFFVTmlPMEZCUVVFc1QwRkRSQ3hEUVVGQkxFTkJRVUU3UVVGRlJDeE5RVUZCTEVsQlFVRXNRMEZCU3l4WlFVRmhMRU5CUVVFc1NVRkJTU3haUVVGaExFVkJRVUVzUlVGQlJ5eEpRVUZKTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUXpWRExFTkJRVUU3UVVFNVNrVXNTVUZCUVN4SlFVRkJMRU5CUVVzc2IwSkJRWEZDTEVOQlFVRXNTVUZCUVN4RFFVRkxMRmRCUVZrc1EwRkJRU3hKUVVGQkxFTkJRVXNzU1VGQlNTeERRVUZETEVOQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTNaRU8wRkJRVUVzUlVGRlVTeFhRVUZqTEVkQlFVRTdRVUZGY0VJc1NVRkJTU3hKUVVGQkxFTkJRVU1zU1VGQlN5eERRVUZCTEV0QlFVRXNRMEZCVFN4UlFVRlZMRVZCUVVFN1FVRkRlRUlzVFVGQlRTeE5RVUZCTEdOQlFVRXNSMEZCYVVJc1MwRkJTeXhwUWtGQmEwSXNSVUZCUVN4RFFVRkJPMEZCUXpsRExFMUJRVUVzU1VGQlNTeHRRa0ZCYlVJc1NVRkJUU3hGUVVGQk8wRkJRek5DTEZGQlFVRXNTVUZCUVN4RFFVRkxMRXRCUVUwc1EwRkJRU3hIUVVGQk8wRkJRVUVzVlVGRFZDeGpRVUZsTEVOQlFVRXNaMEpCUVVFc1EwRkJhVUlzUTBGQlF5eERRVUZCTEVWQlFVY3NRMEZCVFN4TFFVRkJPMEZCUTNoRExGbEJRVUVzU1VGQlNTeEZRVUZGTEZGQlFXRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1NVRkJZU3hEUVVGRkxFTkJRVUVzVVVGQlFTeExRVUZoTEVWQlFVVXNVVUZCVlN4RlFVRkJPMEZCUTNwRUxHTkJRVUVzU1VGQlFTeERRVUZMTEZGQlFWTXNRMEZCUVR0QlFVRkJMR2RDUVVOYUxFdEJRVThzUlVGQlFTeHBRa0ZCUVR0QlFVRkJMR3RDUVVOTUxFdEJRVXNzUzBGQlRTeERRVUZCTEVsQlFVRTdRVUZCUVN4clFrRkRXQ3hMUVVGTExFdEJRVTBzUTBGQlFTeEZRVUZCTzBGQlFVRXNhMEpCUTFnc1pVRkJaU3hYUVVGWkxFVkJRVUU3UVVGQlFTeHJRa0ZETTBJc1MwRkJTeXhMUVVGTkxFTkJRVUVzYjBKQlFVRTdRVUZCUVN4clFrRkRXQ3hMUVVGTExFdEJRVTBzUTBGQlFTeGxRVUZCTzBGQlFVRXNhVUpCUTJJN1FVRkJRU3hsUVVORUxFTkJRVUVzUTBGQlFUdEJRVUZCTEdGQlEwZzdRVUZCUVN4WFFVTkVMRU5CUVVFN1FVRkJRU3hUUVVOSUxFTkJRVUU3UVVGQlFTeFBRVU5HTzBGQlFVRXNTMEZEUmp0QlFVVkJMRWxCUVVFc1NVRkJTU3hWUVVGVkxHMUNRVUZ2UWl4RFFVRkJMRWxCUVVFc1EwRkJTeXhMUVVGTkxFTkJRVUVzUzBGQlFTeERRVUZOTEVkQlFVY3NRMEZCUnl4RlFVRkJPMEZCUTNaRUxFMUJRVUVzU1VGQlFTeERRVUZMTEdOQlFXVXNSVUZCUVN4RFFVRkJPMEZCUVVFc1MwRkRkRUk3UVVGQlFTeEhRVU5HTzBGQlFVRXNSVUZGVVN4alFVRnBRaXhIUVVGQk8wRkJPVVF6UWl4SlFVRkJMRWxCUVVFc1JVRkJRU3hGUVVGQkxFVkJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RFFVRkJPMEZCSzBSSkxFbEJRVWtzU1VGQlFTeEZRVUZCTEVOQlFVRTdRVUZEU2l4SlFVRkJMRWxCUVVFc1EwRkJRU3hEUVVGSkxHZENRVUZMTEV0QlFVd3NTMEZCUVN4SlFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZaTEdsQ1FVRmFMRXRCUVVFc1NVRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCSzBJc1lVRkJXU3hMUVVGWExFTkJRVUVzUlVGQlFUdEJRVU40UkN4TlFVRkJMRVZCUVVFc1IwRkJTeXhKUVVGTExFTkJRVUVzTUVKQlFVRXNRMEZCTWtJc1NVRkJTeXhEUVVGQkxFdEJRVUVzUTBGQlRTeHJRa0ZCYTBJc1QwRkJUeXhEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU16UlR0QlFVTkJMRWxCUVVFc1NVRkJRU3hEUVVGQkxFTkJRVWtzWjBKQlFVc3NTMEZCVEN4TFFVRkJMRWxCUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVOQlFWa3NhVUpCUVZvc1MwRkJRU3hKUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRXJRaXhoUVVGWkxFdEJRVmNzUTBGQlFTeEZRVUZCTzBGQlEzaEVMRTFCUVVFc1JVRkJRU3hIUVVGTExFdEJRVXNzUjBGQlNTeERRVUZCTEVsQlFVRXNRMEZCU3l4TlFVRk5MR2xDUVVGclFpeERRVUZCTEU5QlFVRXNSVUZCVXl4clFrRkJUU3hSUVVGUkxFTkJRVUVzUTBGQlFUdEJRVUZCTEV0QlEzQkZPMEZCUTBFc1NVRkJRU3hKUVVGSkxFOUJRVThzUzBGQlZ5eERRVUZCTEVWQlFVRTdRVUZEY0VJc1RVRkJRU3hKUVVGQkxFTkJRVXNzWVVGQllTeEZRVUZGTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTNSQ08wRkJRVUVzUjBGRFJqdEJRVUZCTEVWQlMxRXNhVUpCUVc5Q0xFZEJRVUU3UVVGRE1VSXNTVUZCUVN4SlFVRkpMRU5CUVVNc1NVRkJTeXhEUVVGQkxFMUJRVUVzU1VGQlZTeERRVUZETEVsQlFVRXNRMEZCU3l4UFFVRlBMRTFCUVZFc1JVRkJRVHRCUVVOMlF5eE5RVUZQTEU5QlFVRXNTVUZCUVN4RFFVRkJPMEZCUVVFc1MwRkRWRHRCUVVWQkxFbEJRVUVzVFVGQlRTeFRRVUZUTEZWQlFTdENMRU5CUVVFc1NVRkJRU3hEUVVGTExFMUJRVThzUTBGQlFTeE5RVUZCTEVWQlFWRXNRMEZCUXl4RFFVRk5MRXRCUVVFN1FVRkRka1VzVFVGQlFTeEpRVUZKTEVWQlFVVXNTMEZCVFN4RFFVRkJMRlZCUVVFc1NVRkJZeXhGUVVGRkxFdEJRVTBzUTBGQlFTeFZRVUZCTEVOQlFWY3NUVUZCVFN4UlFVRlZMRVZCUVVFN1FVRkRNMFFzVVVGQlFTeFBRVUZQTEVWQlFVVXNTMEZCVFN4RFFVRkJMRlZCUVVFc1EwRkJRVHRCUVVGQkxFOUJRMnBDTzBGQlEwRXNUVUZCVHl4UFFVRkJMRXRCUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFVpeERRVUZCTEVOQlFVRTdRVUZGUkN4SlFVRkJMRWxCUVVrc1EwRkJReXhOUVVGUkxFVkJRVUU3UVVGRFdDeE5RVUZQTEU5QlFVRXNTVUZCUVN4RFFVRkJPMEZCUVVFc1MwRkRWRHRCUVVWQkxFbEJRVThzVDBGQlFTeE5RVUZCTEVOQlFVRTdRVUZCUVN4SFFVTlVPMEZCUVVFc1JVRlBVU3hoUVVGaExHTkJRWGRDTEVWQlFVRTdRVUYwUnk5RExFbEJRVUVzU1VGQlFTeEZRVUZCTEVOQlFVRTdRVUYxUjBrc1NVRkJRU3hOUVVGTkxFdEJRVkVzUjBGQlFTeHBRa0ZCUVR0QlFVRkJMRTFCUTFvc1MwRkJTeXhMUVVGTkxFTkJRVUVzU1VGQlFUdEJRVUZCTEUxQlExZ3NTMEZCU3l4TFFVRk5MRU5CUVVFc1JVRkJRVHRCUVVGQkxFMUJRVUVzUTBGRFdDeEZRVUZMTEVkQlFVRXNTVUZCUVN4RFFVRkJMRXRCUVVFc1EwRkJUU3hSUVVGWUxFdEJRVUVzU1VGQlFTeEhRVUZCTEVWQlFVRXNSMEZCZFVJc1YwRkJXU3hGUVVGQk8wRkJRVUVzVFVGRGJrTXNTMEZCU3l4TFFVRk5MRU5CUVVFc2IwSkJRVUU3UVVGQlFTeE5RVU5ZTEV0QlFVc3NTMEZCVFN4RFFVRkJMR1ZCUVVFN1FVRkJRU3hMUVVOaUxFTkJRVUU3UVVGRlFTeEpRVUZOTEUxQlFVRXNTVUZCUVN4SFFVRlBMRTFCUVUwc1JVRkJSeXhEUVVGQkxFbEJRVUVzUTBGQlN5eExRVUZMTEV0QlFVMHNRMEZCUVN4TFFVRkJMRU5CUVUwc1NVRkJTU3hqUVVGakxFTkJRVUVzUTBGQlFUdEJRVU01UkN4SlFVRkJMRWxCUVVrc1VVRkJVU3hqUVVGblFpeEZRVUZCTzBGQlF6RkNMRTFCUVVFc1NVRkJRU3hEUVVGTExGRkJRVk1zUTBGQlFUdEJRVUZCTEZGQlExb3NTMEZCUVR0QlFVRkJMRTlCUTBRc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFNEdEJRVUZCTEVkQlEwWTdRVUZCUVN4RlFVVlJMREpDUVVFeVFpeFBRVUY1UWl4RlFVRkJPMEZCUXpGRUxFbEJRVTBzVFVGQlFTeFZRVUZCTEVkQlFXRXNTVUZCU3l4RFFVRkJMRXRCUVVFc1EwRkJUU3hMUVVGTkxFTkJRVUVzUlVGQlFTeERRVUZITEV0QlFVc3NTVUZCU3l4RFFVRkJMRXRCUVVFc1EwRkJUU3hMUVVGTkxFTkJRVUVzU1VGQlFTeEZRVUZOTEdOQlFXTXNRMEZCUVN4RFFVRkJPMEZCUTJwR0xFbEJRVThzVDBGQlFTeEpRVUZCTEVOQlFVc3NTVUZCU3l4RFFVRkJMRlZCUVVFc1IwRkJZU3hQUVVGUExFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEzWkRPMEZCUVVFc1JVRkZUeXhYUVVGM1FpeEhRVUZCTzBGQlJUZENMRWxCUVVrc1NVRkJRU3hKUVVGQkxFTkJRVXNzVFVGQlRTeFJRVUZWTEVWQlFVRTdRVUZEZGtJc1RVRkJRU3hQUVVGUExFdEJRVXNzUzBGQlRTeERRVUZCTEZGQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTNCQ08wRkJSMEVzU1VGQlRTeE5RVUZCTEdOQlFVRXNSMEZCYVVJc1MwRkJTeXhwUWtGQmEwSXNSVUZCUVN4RFFVRkJPMEZCUXpsRExFbEJRVUVzU1VGQlNTeHRRa0ZCYlVJc1NVRkJUU3hGUVVGQk8wRkJRek5DTEUxQlFVRXNUMEZCVHl4bFFVRmxMRXRCUVUwc1EwRkJRU3hSUVVGQkxFTkJRVUU3UVVGQlFTeExRVU01UWp0QlFVZEJMRWxCUVVFc1QwRkJUeXhYUVVGWkxFVkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEzSkNPMEZCUVVFc1JVRnhSRThzVjBGQll5eEhRVUZCTzBGQlEyNUNMRWxCUVUwc1RVRkJRU3hOUVVGQkxFZEJRVk1zWjBKQlFXZENMR1ZCUVdkQ0xFVkJRVUVzUTBGQlFUdEJRVU12UXl4SlFVRkJMRTFCUVUwc1UwRkJhME1zUjBGQlFTeEZRVUZGTEVsQlFVMHNSVUZCUVN4SlFVRkJMRU5CUVVzc1MwRkJUU3hEUVVGQkxFbEJRVUVzUlVGQlRTeEZRVUZKTEVWQlFVRXNTVUZCUVN4RFFVRkxMRXRCUVUwc1EwRkJRU3hGUVVGQkxFVkJRVWtzVVVGQlZTeEZRVUZCTEVsQlFVRXNRMEZCU3l4aFFVRmpMRVZCUVVFc1EwRkJRVHRCUVVkcVNDeEpRVUZKTEVsQlFVRXNUVUZCUVN4RFFVRlBMRWxCUVZFc1NVRkJRU3hOUVVGQkxFTkJRVThzWVVGQlowSXNRMEZCUVN4RlFVRkJPMEZCUTNoRExFMUJRVUVzVTBGQlFTeERRVUZWTEVsQlFVOHNSMEZCUVN4SlFVRkJMRU5CUVVFN1FVRkRha0lzVFVGQlFTeFRRVUZCTEVOQlFWVXNZVUZCYVVJc1EwRkJRU3hIUVVGQkxFbEJRVUVzUTBGQlFUdEJRVUZCTEV0QlF6ZENPMEZCUlVFc1NVRkJUeXhQUVVGQkxGTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlExUTdRVUZCUVN4RlFVVlBMR05CUVdNc1RVRkJPRUlzUlVGQlFUdEJRVFZOY2tRc1NVRkJRU3hKUVVGQkxFVkJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RFFVRkJPMEZCTmsxSkxFbEJRVUVzVFVGQlRTeFRRVUYxUXl4RlFVRkRMRU5CUVVFN1FVRkZPVU1zU1VGQlNTeEpRVUZCTEVsQlFVRXNSMEZCVHl4aFFVRmpMRU5CUVVFc1RVRkJRU3hEUVVGUExFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlEzQkRMRWxCUVVrc1NVRkJRU3hGUVVGQkxFZEJRVXNzWVVGQll5eERRVUZCTEUxQlFVRXNRMEZCVHl4RlFVRkZMRU5CUVVFc1EwRkJRVHRCUVVWb1F5eEpRVUZKTEVsQlFVRXNUVUZCUVN4RFFVRlBMRWxCUVZFc1NVRkJRU3hOUVVGQkxFTkJRVThzWVVGQlowSXNRMEZCUVN4RlFVRkJPMEZCUTNoRExFMUJRVTBzVFVGQlFTeEpRVUZCTEVkQlFVOHNUVUZCVFN4UFFVRlJMRU5CUVVFc1RVRkJRU3hEUVVGUExFbEJRVWtzUTBGQlNTeEhRVUZCTEUxQlFVRXNRMEZCVHl4SlFVRkxMRU5CUVVFc1EwRkJRU3hEUVVGQkxFZEJRVXNzVFVGQlR5eERRVUZCTEVsQlFVRXNRMEZCUVR0QlFVTnNSU3hOUVVGTkxFMUJRVUVzVlVGQlFTeEhRVUZoTEUxQlFVMHNUMEZCVVN4RFFVRkJMRTFCUVVFc1EwRkJUeXhqUVVGakxFTkJRVWtzUjBGQlFTeE5RVUZCTEVOQlFVOHNZVUZCWlN4RFFVRkJMRU5CUVVFc1EwRkJRU3hEUVVGQkxFZEJRVXNzVFVGQlR5eERRVUZCTEdGQlFVRXNRMEZCUVN4RFFVRkJPMEZCUXpWR0xFMUJRVTBzVFVGQlFTeFRRVUZCTEVkQlFWa3NZVUZCWXl4RFFVRkJMRWxCUVVFc1JVRkJUU3hWUVVGVkxFTkJRVUVzUTBGQlFUdEJRVU5vUkN4TlFVRkJMRWxCUVVrc1UwRkJWU3hEUVVGQkxFbEJRVUVzU1VGQlVTeFBRVUZSTEVOQlFVRXNVMEZCUVN4RFFVRlZMRWxCUVVrc1EwRkJSeXhGUVVGQk8wRkJRemRETEZGQlFVRXNTVUZCUVN4SFFVRlBMRk5CUVZVc1EwRkJRU3hKUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU51UWp0QlFVVkJMRTFCUVVFc1NVRkJTU3hUUVVGVkxFTkJRVUVzUlVGQlFTeEpRVUZOTEU5QlFWRXNRMEZCUVN4VFFVRkJMRU5CUVZVc1JVRkJSU3hEUVVGSExFVkJRVUU3UVVGRGVrTXNVVUZCUVN4RlFVRkJMRWRCUVVzc1UwRkJWU3hEUVVGQkxFVkJRVUVzUTBGQlFUdEJRVUZCTEU5QlEycENPMEZCUVVFc1MwRkRSanRCUVVWQkxFbEJRVWtzU1VGQlFTeEpRVUZCTEVsQlFWRXNUMEZCVVN4RFFVRkJMRWxCUVVrc1EwRkJSeXhGUVVGQk8wRkJRM3BDTEUxQlFVRXNUVUZCUVN4RFFVRlBMRWxCUVU4c1IwRkJRU3hKUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5vUWp0QlFVVkJMRWxCUVVrc1NVRkJRU3hGUVVGQkxFbEJRVTBzVDBGQlVTeERRVUZCTEVWQlFVVXNRMEZCUnl4RlFVRkJPMEZCUTNKQ0xFMUJRVUVzVFVGQlFTeERRVUZQTEVWQlFVc3NSMEZCUVN4RlFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOa08wRkJSVUVzU1VGQlNTeEpRVUZCTEU5QlFVOHNUVUZCVHl4RFFVRkJMRkZCUVVFc1MwRkJZU3hSUVVGVkxFVkJRVUU3UVVGRGRrTXNUVUZCUVN4TlFVRkJMRU5CUVU4c1VVRkJWeXhIUVVGQkxFMUJRVUVzUTBGQlR5eFJRVUZoTEV0QlFVRXNSVUZCUVN4SFFVRkxMRTlCUVU4c1VVRkJWeXhIUVVGQkxFdEJRVUVzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZETDBRN1FVRkZRU3hKUVVGQkxFbEJRVWtzVFVGQlR5eERRVUZCTEVsQlFVRXNRMEZCU3l4TlFVRk5MRU5CUVVFc1EwRkJSU3hYUVVGWExFTkJRVWNzUlVGQlFUdEJRVU53UXl4TlFVRkJMRTlCUVVFN1FVRkJRU3hMUVVOR08wRkJSVUVzU1VGQlFTeE5RVUZCTEVOQlFVOHNTMEZCVVN4SFFVRkJMR2xDUVVGQk8wRkJRVUVzVFVGQlFTeERRVU5pTEVWQlFVOHNSMEZCUVN4TlFVRkJMRU5CUVVFc1NVRkJRU3hMUVVGUUxFbEJRV1VzUjBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCUVN4RFFVRkxMRXRCUVUwc1EwRkJRU3hKUVVGQk8wRkJRVUVzVFVGQlFTeERRVU14UWl4RlFVRlBMRWRCUVVFc1RVRkJRU3hEUVVGQkxFVkJRVUVzUzBGQlVDeEpRVUZoTEVkQlFVRXNSVUZCUVN4SFFVRkJMRWxCUVVFc1EwRkJTeXhMUVVGTkxFTkJRVUVzUlVGQlFUdEJRVUZCTEUxQlFVRXNRMEZEZUVJc1JVRkJUeXhIUVVGQkxFMUJRVUVzUTBGQlFTeFJRVUZCTEV0QlFWQXNTVUZCYlVJc1IwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlFTeERRVUZMTEZkQlFWa3NSVUZCUVR0QlFVRkJMRTFCUTNCRExFdEJRVXNzUzBGQlRTeERRVUZCTEc5Q1FVRkJPMEZCUVVFc1RVRkRXQ3hMUVVGTExFdEJRVTBzUTBGQlFTeGxRVUZCTzBGQlFVRXNTMEZEWWl4RFFVRkJPMEZCUlVFc1NVRkJUeXhQUVVGQkxFbEJRVUVzUTBGQlN5eFRRVUZUTEUxQlFVMHNRMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkROMEk3UVVGRFJpeERRVUZCTzBGQlQwRXNVMEZCVXl4aFFVRkJMRU5CUVdNc1RVRkJZeXhWUVVGdlFpeEZRVUZCTzBGQlJYWkVMRVZCUVVFc1RVRkJUU3hUUVVGWkxFZEJRVUVzUzBGQlFTeERRVUZOTEVsQlFVc3NRMEZCUVN4TFFVRkJMRU5CUVUwc1NVRkJTU3hEUVVGRExFTkJRVWtzUjBGQlFTeFJRVUZCTEVOQlFWTXNTVUZCVFN4RlFVRkJMRVZCUVVVc1EwRkJTU3hIUVVGQkxFbEJRVUVzUTBGQlN5eE5RVUZOTEVsQlFVa3NRMEZCUVN4RFFVRkJPMEZCUldoR0xFVkJRVWtzU1VGQlFTeFpRVUZCTEVOQlFVRTdRVUZGU2l4RlFVRkJMRWxCUVVrc1YwRkJWeXhMUVVGTkxFTkJRVUVzVDBGQlR5eExRVUZMTEZGQlFWTXNRMEZCUVN4VlFVRkJMRVZCUVZrc1JVRkJSU3hEUVVGSExFVkJRVUU3UVVGRmVrUXNTVUZCWlN4WlFVRkJMRWRCUVVFc1VVRkJRU3hEUVVGVExGbEJRVmtzUlVGQlJTeERRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTnFReXhOUVVGQk8wRkJRMHdzU1VGQlpTeFpRVUZCTEVkQlFVRXNVMEZCUVN4RFFVRlZMR0ZCUVdFc1ZVRkJWU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5zUkR0QlFVVkJMRVZCUVU4c1QwRkJRVHRCUVVGQkxFbEJRMHdzVFVGQlRTeExRVUZOTEVOQlFVRXNVMEZCUVN4SFFVRlpMRmxCUVdVc1IwRkJRU3hEUVVGRExFVkJRVVVzVjBGQldTeEZRVUZCTzBGQlFVRXNTVUZEZEVRc1NVRkJTU3hMUVVGTkxFTkJRVUVzVTBGQlFTeEhRVUZaTEZsQlFXVXNSMEZCUVN4RFFVRkRMRVZCUVVVc1YwRkJXU3hGUVVGQk8wRkJRVUVzUjBGRGRFUXNRMEZCUVR0QlFVTkdPenM3T3lKOVxuIl0sIm5hbWVzIjpbInRpbWVab25lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYU8sTUFBTSx1QkFBdUIsZUFBbUUsQ0FBQTtFQUc5RixXQUFZLENBQUEsS0FBQSxHQUFzQyxFQUFJLEVBQUE7QUFoQi9ELElBQUEsSUFBQSxFQUFBLENBQUE7QUFpQlUsSUFBQSxNQUFBLElBQUEsR0FBTyxNQUFNLElBQVEsSUFBQSxPQUFBLENBQVEsTUFBTSxJQUFJLENBQUEsR0FBSSxNQUFNLElBQU8sR0FBQSxRQUFBLENBQUE7QUFDeEQsSUFBQSxNQUFBLEVBQUEsR0FBSyxNQUFNLEVBQU0sSUFBQSxPQUFBLENBQVEsTUFBTSxFQUFFLENBQUEsR0FBSSxNQUFNLEVBQUssR0FBQSxLQUFBLENBQUE7QUFFdEQsSUFBQSxNQUFNLFdBQVcsS0FBTSxDQUFBLFFBQUEsQ0FBQTtBQUN2QixJQUFBLE1BQU0sS0FBUSxHQUFBLGlCQUFBO0FBQ1osTUFBQSxJQUFBO0FBQ0EsTUFBQSxFQUFBO0FBQ0EsTUFBQSxRQUFBLElBQVksV0FBWSxFQUFBO01BQ3hCLEtBQU0sQ0FBQSxvQkFBQTtNQUNOLEtBQU0sQ0FBQSxlQUFBO0FBQUEsS0FBQSxDQUFBO0FBRVIsSUFBTSxNQUFBLGlCQUFBLEdBQUEsQ0FBb0IsS0FBTSxLQUFBLENBQUEsaUJBQUEsS0FBTixPQUEyQixFQUFBLEdB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
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BusEventWithPayload } from '@grafana/data';
|
|
2
|
+
|
|
3
|
+
class SceneObjectStateChangedEvent extends BusEventWithPayload {
|
|
4
|
+
}
|
|
5
|
+
SceneObjectStateChangedEvent.type = "scene-object-state-change";
|
|
6
|
+
class UserActionEvent extends BusEventWithPayload {
|
|
7
|
+
}
|
|
8
|
+
UserActionEvent.type = "scene-object-user-action";
|
|
9
|
+
|
|
10
|
+
export { SceneObjectStateChangedEvent, UserActionEvent };
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb3JlL2V2ZW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdXNFdmVudFdpdGhQYXlsb2FkIH0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5cbmNsYXNzIFNjZW5lT2JqZWN0U3RhdGVDaGFuZ2VkRXZlbnQgZXh0ZW5kcyBCdXNFdmVudFdpdGhQYXlsb2FkIHtcbn1cblNjZW5lT2JqZWN0U3RhdGVDaGFuZ2VkRXZlbnQudHlwZSA9IFwic2NlbmUtb2JqZWN0LXN0YXRlLWNoYW5nZVwiO1xuY2xhc3MgVXNlckFjdGlvbkV2ZW50IGV4dGVuZHMgQnVzRXZlbnRXaXRoUGF5bG9hZCB7XG59XG5Vc2VyQWN0aW9uRXZlbnQudHlwZSA9IFwic2NlbmUtb2JqZWN0LXVzZXItYWN0aW9uXCI7XG5cbmV4cG9ydCB7IFNjZW5lT2JqZWN0U3RhdGVDaGFuZ2VkRXZlbnQsIFVzZXJBY3Rpb25FdmVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laWFpsYm5SekxtcHpJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZZMjl5WlM5bGRtVnVkSE11ZEhNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dRblZ6UlhabGJuUlhhWFJvVUdGNWJHOWhaQ0I5SUdaeWIyMGdKMEJuY21GbVlXNWhMMlJoZEdFbk8xeHVYRzVwYlhCdmNuUWdleUJUWTJWdVpVOWlhbVZqZEN3Z1UyTmxibVZQWW1wbFkzUlRkR0YwWlNCOUlHWnliMjBnSnk0dmRIbHdaWE1uTzF4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElGTmpaVzVsVDJKcVpXTjBVM1JoZEdWRGFHRnVaMlZrVUdGNWJHOWhaRHhVVTNSaGRHVWdaWGgwWlc1a2N5QlRZMlZ1WlU5aWFtVmpkRk4wWVhSbElEMGdVMk5sYm1WUFltcGxZM1JUZEdGMFpUNGdlMXh1SUNCd2NtVjJVM1JoZEdVNklGUlRkR0YwWlR0Y2JpQWdibVYzVTNSaGRHVTZJRlJUZEdGMFpUdGNiaUFnY0dGeWRHbGhiRlZ3WkdGMFpUb2dVR0Z5ZEdsaGJEeFVVM1JoZEdVK08xeHVJQ0JqYUdGdVoyVmtUMkpxWldOME9pQlRZMlZ1WlU5aWFtVmpkRHhVVTNSaGRHVStPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVTJObGJtVlBZbXBsWTNSVGRHRjBaVU5vWVc1blpXUkZkbVZ1ZENCbGVIUmxibVJ6SUVKMWMwVjJaVzUwVjJsMGFGQmhlV3h2WVdROFUyTmxibVZQWW1wbFkzUlRkR0YwWlVOb1lXNW5aV1JRWVhsc2IyRmtQaUI3WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nY21WaFpHOXViSGtnZEhsd1pTQTlJQ2R6WTJWdVpTMXZZbXBsWTNRdGMzUmhkR1V0WTJoaGJtZGxKenRjYm4xY2JseHVkSGx3WlNCVmMyVnlRV04wYVc5dVJYWmxiblJVZVhCbElEMWNiaUFnZkNBbmNHRnVaV3d0WkdWelkzSnBjSFJwYjI0dGMyaHZkMjRuWEc0Z0lId2dKM0JoYm1Wc0xYTjBZWFIxY3kxdFpYTnpZV2RsTFdOc2FXTnJaV1FuWEc0Z0lId2dKM0JoYm1Wc0xXTmhibU5sYkMxeGRXVnllUzFqYkdsamEyVmtKMXh1SUNCOElDZHdZVzVsYkMxdFpXNTFMWE5vYjNkdUp6dGNibHh1YVc1MFpYSm1ZV05sSUZWelpYSkJZM1JwYjI1RmRtVnVkRkJoZVd4dllXUWdlMXh1SUNCdmNtbG5hVzQ2SUZOalpXNWxUMkpxWldOME8xeHVJQ0JwYm5SbGNtRmpkR2x2YmpvZ1ZYTmxja0ZqZEdsdmJrVjJaVzUwVkhsd1pUdGNibjFjYm1WNGNHOXlkQ0JqYkdGemN5QlZjMlZ5UVdOMGFXOXVSWFpsYm5RZ1pYaDBaVzVrY3lCQ2RYTkZkbVZ1ZEZkcGRHaFFZWGxzYjJGa1BGVnpaWEpCWTNScGIyNUZkbVZ1ZEZCaGVXeHZZV1ErSUh0Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCeVpXRmtiMjVzZVNCMGVYQmxJRDBnSjNOalpXNWxMVzlpYW1WamRDMTFjMlZ5TFdGamRHbHZiaWM3WEc1OVhHNGlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdRVUZYVHl4TlFVRk5MSEZEUVVGeFF5eHRRa0ZCYjBRc1EwRkJRVHRCUVVWMFJ5eERRVUZCTzBGQlJtRXNORUpCUVVFc1EwRkRXU3hKUVVGUExFZEJRVUVzTWtKQlFVRXNRMEZCUVR0QlFXRjZRaXhOUVVGTkxIZENRVUYzUWl4dFFrRkJORU1zUTBGQlFUdEJRVVZxUml4RFFVRkJPMEZCUm1Fc1pVRkJRU3hEUVVOWkxFbEJRVThzUjBGQlFTd3dRa0ZCUVRzN096c2lmUT09XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXTyxNQUFNLHFDQUFxQyxtQkFBb0QsQ0FBQTtBQUV0RyxDQUFBO0FBRmEsNEJBQUEsQ0FDWSxJQUFPLEdBQUEsMkJBQUEsQ0FBQTtBQWF6QixNQUFNLHdCQUF3QixtQkFBNEMsQ0FBQTtBQUVqRixDQUFBO0FBRmEsZUFBQSxDQUNZLElBQU8sR0FBQSwwQkFBQTs7OzsifQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DefaultTimeRange } from '../../variables/interpolation/defaults.js';
|
|
2
|
+
import { getClosest } from './utils.js';
|
|
3
|
+
|
|
4
|
+
function getTimeRange(sceneObject) {
|
|
5
|
+
var _a;
|
|
6
|
+
return (_a = getClosest(sceneObject, (s) => s.state.$timeRange)) != null ? _a : DefaultTimeRange;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { getTimeRange };
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VGltZVJhbmdlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NjZW5lR3JhcGgvZ2V0VGltZVJhbmdlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZmF1bHRUaW1lUmFuZ2UgfSBmcm9tICcuLi8uLi92YXJpYWJsZXMvaW50ZXJwb2xhdGlvbi9kZWZhdWx0cy5qcyc7XG5pbXBvcnQgeyBnZXRDbG9zZXN0IH0gZnJvbSAnLi91dGlscy5qcyc7XG5cbmZ1bmN0aW9uIGdldFRpbWVSYW5nZShzY2VuZU9iamVjdCkge1xuICB2YXIgX2E7XG4gIHJldHVybiAoX2EgPSBnZXRDbG9zZXN0KHNjZW5lT2JqZWN0LCAocykgPT4gcy5zdGF0ZS4kdGltZVJhbmdlKSkgIT0gbnVsbCA/IF9hIDogRGVmYXVsdFRpbWVSYW5nZTtcbn1cblxuZXhwb3J0IHsgZ2V0VGltZVJhbmdlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVoyVjBWR2x0WlZKaGJtZGxMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdlkyOXlaUzl6WTJWdVpVZHlZWEJvTDJkbGRGUnBiV1ZTWVc1blpTNTBjeUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCRVpXWmhkV3gwVkdsdFpWSmhibWRsSUgwZ1puSnZiU0FuTGk0dkxpNHZkbUZ5YVdGaWJHVnpMMmx1ZEdWeWNHOXNZWFJwYjI0dlpHVm1ZWFZzZEhNbk8xeHVhVzF3YjNKMElIc2dVMk5sYm1WUFltcGxZM1FzSUZOalpXNWxWR2x0WlZKaGJtZGxUR2xyWlNCOUlHWnliMjBnSnk0dUwzUjVjR1Z6Snp0Y2JtbHRjRzl5ZENCN0lHZGxkRU5zYjNObGMzUWdmU0JtY205dElDY3VMM1YwYVd4ekp6dGNibHh1THlvcVhHNGdLaUJYYVd4c0lIZGhiR3NnZFhBZ2RHaGxJSE5qWlc1bElHOWlhbVZqZENCbmNtRndhQ0IwYnlCMGFHVWdZMnh2YzJWemRDQWtkR2x0WlZKaGJtZGxJSE5qWlc1bElHOWlhbVZqZEZ4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwVkdsdFpWSmhibWRsS0hOalpXNWxUMkpxWldOME9pQlRZMlZ1WlU5aWFtVmpkQ2s2SUZOalpXNWxWR2x0WlZKaGJtZGxUR2xyWlNCN1hHNGdJSEpsZEhWeWJpQm5aWFJEYkc5elpYTjBLSE5qWlc1bFQySnFaV04wTENBb2N5a2dQVDRnY3k1emRHRjBaUzRrZEdsdFpWSmhibWRsS1NBL1B5QkVaV1poZFd4MFZHbHRaVkpoYm1kbE8xeHVmVnh1SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3p0QlFVOVBMRk5CUVZNc1lVRkJZU3hYUVVFNFF5eEZRVUZCTzBGQlVETkZMRVZCUVVFc1NVRkJRU3hGUVVGQkxFTkJRVUU3UVVGUlJTeEZRVUZQTEU5QlFVRXNRMEZCUVN4RlFVRkJMRWRCUVVFc1ZVRkJRU3hEUVVGWExHRkJRV0VzUTBGQlF5eERRVUZCTEV0QlFVMHNSVUZCUlN4TFFVRk5MRU5CUVVFc1ZVRkJWU3hOUVVGcVJDeEpRVUZ6UkN4SFFVRkJMRVZCUVVFc1IwRkJRU3huUWtGQlFTeERRVUZCTzBGQlF5OUVPenM3T3lKOVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9PLFNBQVMsYUFBYSxXQUE4QyxFQUFBO0FBUDNFLEVBQUEsSUFBQSxFQUFBLENBQUE7QUFRUyxFQUFBLE9BQUEsQ0FBQSxFQUFBLEdBQUEsVUFBVyxDQUFBLFdBQUEsRUFBYSxDQUFDLENBQUEsS0FBTSxFQUFFLEtBQU0sQ0FBQSxVQUFVLENBQWpELEtBQUEsSUFBQSxHQUFzRCxFQUFBLEdBQUEsZ0JBQUEsQ0FBQTtBQUMvRDs7OzsifQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { lookupVariable } from '../../variables/lookupVariable.js';
|
|
2
|
+
import { getTimeRange } from './getTimeRange.js';
|
|
3
|
+
import { getVariables, getData, getLayout, getDataLayers, interpolate, hasVariableDependencyInLoadingState, findByKey, findByKeyAndType, findObject, findAllObjects, getAncestor, findDescendents, getQueryController, getUrlSyncManager } from './sceneGraph.js';
|
|
4
|
+
|
|
5
|
+
const sceneGraph = {
|
|
6
|
+
getVariables,
|
|
7
|
+
getData,
|
|
8
|
+
getTimeRange,
|
|
9
|
+
getLayout,
|
|
10
|
+
getDataLayers,
|
|
11
|
+
interpolate,
|
|
12
|
+
lookupVariable,
|
|
13
|
+
hasVariableDependencyInLoadingState,
|
|
14
|
+
findByKey,
|
|
15
|
+
findByKeyAndType,
|
|
16
|
+
findObject,
|
|
17
|
+
findAllObjects,
|
|
18
|
+
getAncestor,
|
|
19
|
+
findDescendents,
|
|
20
|
+
getQueryController,
|
|
21
|
+
getUrlSyncManager
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { sceneGraph };
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2NlbmVHcmFwaC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb29rdXBWYXJpYWJsZSB9IGZyb20gJy4uLy4uL3ZhcmlhYmxlcy9sb29rdXBWYXJpYWJsZS5qcyc7XG5pbXBvcnQgeyBnZXRUaW1lUmFuZ2UgfSBmcm9tICcuL2dldFRpbWVSYW5nZS5qcyc7XG5pbXBvcnQgeyBnZXRWYXJpYWJsZXMsIGdldERhdGEsIGdldExheW91dCwgZ2V0RGF0YUxheWVycywgaW50ZXJwb2xhdGUsIGhhc1ZhcmlhYmxlRGVwZW5kZW5jeUluTG9hZGluZ1N0YXRlLCBmaW5kQnlLZXksIGZpbmRCeUtleUFuZFR5cGUsIGZpbmRPYmplY3QsIGZpbmRBbGxPYmplY3RzLCBnZXRBbmNlc3RvciwgZmluZERlc2NlbmRlbnRzLCBnZXRRdWVyeUNvbnRyb2xsZXIsIGdldFVybFN5bmNNYW5hZ2VyIH0gZnJvbSAnLi9zY2VuZUdyYXBoLmpzJztcblxuY29uc3Qgc2NlbmVHcmFwaCA9IHtcbiAgZ2V0VmFyaWFibGVzLFxuICBnZXREYXRhLFxuICBnZXRUaW1lUmFuZ2UsXG4gIGdldExheW91dCxcbiAgZ2V0RGF0YUxheWVycyxcbiAgaW50ZXJwb2xhdGUsXG4gIGxvb2t1cFZhcmlhYmxlLFxuICBoYXNWYXJpYWJsZURlcGVuZGVuY3lJbkxvYWRpbmdTdGF0ZSxcbiAgZmluZEJ5S2V5LFxuICBmaW5kQnlLZXlBbmRUeXBlLFxuICBmaW5kT2JqZWN0LFxuICBmaW5kQWxsT2JqZWN0cyxcbiAgZ2V0QW5jZXN0b3IsXG4gIGZpbmREZXNjZW5kZW50cyxcbiAgZ2V0UXVlcnlDb250cm9sbGVyLFxuICBnZXRVcmxTeW5jTWFuYWdlclxufTtcblxuZXhwb3J0IHsgc2NlbmVHcmFwaCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlqYjNKbEwzTmpaVzVsUjNKaGNHZ3ZhVzVrWlhndWRITWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnYkc5dmEzVndWbUZ5YVdGaWJHVWdmU0JtY205dElDY3VMaTh1TGk5MllYSnBZV0pzWlhNdmJHOXZhM1Z3Vm1GeWFXRmliR1VuTzF4dWFXMXdiM0owSUhzZ1oyVjBWR2x0WlZKaGJtZGxJSDBnWm5KdmJTQW5MaTluWlhSVWFXMWxVbUZ1WjJVbk8xeHVhVzF3YjNKMElIdGNiaUFnWm1sdVpFSjVTMlY1TEZ4dUlDQm1hVzVrUW5sTFpYbEJibVJVZVhCbExGeHVJQ0JtYVc1a1QySnFaV04wTEZ4dUlDQm1hVzVrUVd4c1QySnFaV04wY3l4Y2JpQWdaMlYwUkdGMFlTeGNiaUFnWjJWMFRHRjViM1YwTEZ4dUlDQm5aWFJXWVhKcFlXSnNaWE1zWEc0Z0lHZGxkRVJoZEdGTVlYbGxjbk1zWEc0Z0lHaGhjMVpoY21saFlteGxSR1Z3Wlc1a1pXNWplVWx1VEc5aFpHbHVaMU4wWVhSbExGeHVJQ0JwYm5SbGNuQnZiR0YwWlN4Y2JpQWdaMlYwUVc1alpYTjBiM0lzWEc0Z0lHWnBibVJFWlhOalpXNWtaVzUwY3l4Y2JpQWdaMlYwVVhWbGNubERiMjUwY205c2JHVnlMRnh1SUNCblpYUlZjbXhUZVc1alRXRnVZV2RsY2l4Y2JuMGdabkp2YlNBbkxpOXpZMlZ1WlVkeVlYQm9KenRjYmx4dVpYaHdiM0owSUdOdmJuTjBJSE5qWlc1bFIzSmhjR2dnUFNCN1hHNGdJR2RsZEZaaGNtbGhZbXhsY3l4Y2JpQWdaMlYwUkdGMFlTeGNiaUFnWjJWMFZHbHRaVkpoYm1kbExGeHVJQ0JuWlhSTVlYbHZkWFFzWEc0Z0lHZGxkRVJoZEdGTVlYbGxjbk1zWEc0Z0lHbHVkR1Z5Y0c5c1lYUmxMRnh1SUNCc2IyOXJkWEJXWVhKcFlXSnNaU3hjYmlBZ2FHRnpWbUZ5YVdGaWJHVkVaWEJsYm1SbGJtTjVTVzVNYjJGa2FXNW5VM1JoZEdVc1hHNGdJR1pwYm1SQ2VVdGxlU3hjYmlBZ1ptbHVaRUo1UzJWNVFXNWtWSGx3WlN4Y2JpQWdabWx1WkU5aWFtVmpkQ3hjYmlBZ1ptbHVaRUZzYkU5aWFtVmpkSE1zWEc0Z0lHZGxkRUZ1WTJWemRHOXlMRnh1SUNCbWFXNWtSR1Z6WTJWdVpHVnVkSE1zWEc0Z0lHZGxkRkYxWlhKNVEyOXVkSEp2Ykd4bGNpeGNiaUFnWjJWMFZYSnNVM2x1WTAxaGJtRm5aWElzWEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3UVVGdFFrOHNUVUZCVFN4VlFVRmhMRWRCUVVFN1FVRkJRU3hGUVVONFFpeFpRVUZCTzBGQlFVRXNSVUZEUVN4UFFVRkJPMEZCUVVFc1JVRkRRU3haUVVGQk8wRkJRVUVzUlVGRFFTeFRRVUZCTzBGQlFVRXNSVUZEUVN4aFFVRkJPMEZCUVVFc1JVRkRRU3hYUVVGQk8wRkJRVUVzUlVGRFFTeGpRVUZCTzBGQlFVRXNSVUZEUVN4dFEwRkJRVHRCUVVGQkxFVkJRMEVzVTBGQlFUdEJRVUZCTEVWQlEwRXNaMEpCUVVFN1FVRkJRU3hGUVVOQkxGVkJRVUU3UVVGQlFTeEZRVU5CTEdOQlFVRTdRVUZCUVN4RlFVTkJMRmRCUVVFN1FVRkJRU3hGUVVOQkxHVkJRVUU3UVVGQlFTeEZRVU5CTEd0Q1FVRkJPMEZCUVVFc1JVRkRRU3hwUWtGQlFUdEJRVU5HT3pzN095SjlcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBbUJPLE1BQU0sVUFBYSxHQUFBO0FBQ3hCLEVBQUEsWUFBQTtBQUNBLEVBQUEsT0FBQTtBQUNBLEVBQUEsWUFBQTtBQUNBLEVBQUEsU0FBQTtBQUNBLEVBQUEsYUFBQTtBQUNBLEVBQUEsV0FBQTtBQUNBLEVBQUEsY0FBQTtBQUNBLEVBQUEsbUNBQUE7QUFDQSxFQUFBLFNBQUE7QUFDQSxFQUFBLGdCQUFBO0FBQ0EsRUFBQSxVQUFBO0FBQ0EsRUFBQSxjQUFBO0FBQ0EsRUFBQSxXQUFBO0FBQ0EsRUFBQSxlQUFBO0FBQ0EsRUFBQSxrQkFBQTtBQUNBLEVBQUEsaUJBQUE7QUFDRjs7OzsifQ==
|