@grafana/scenes 6.8.0 → 6.9.0--canary.1093.14409340532.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 +20 -0
- package/dist/esm/components/VizPanel/VizPanelRenderer.js +4 -3
- package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +0 -33
- package/dist/esm/dist/esm/behaviors/CursorSync.js +0 -76
- package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +0 -44
- package/dist/esm/dist/esm/behaviors/SceneQueryController.js +0 -14
- package/dist/esm/dist/esm/components/EmbeddedScene.js +0 -59
- package/dist/esm/dist/esm/components/NestedScene.js +0 -95
- package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +0 -27
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +0 -176
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +0 -104
- package/dist/esm/dist/esm/components/SceneApp/utils.js +0 -42
- package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +0 -41
- package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +0 -55
- package/dist/esm/dist/esm/components/SceneCanvasText.js +0 -32
- package/dist/esm/dist/esm/components/SceneControlsSpacer.js +0 -17
- package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +0 -82
- package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +0 -72
- package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +0 -77
- package/dist/esm/dist/esm/components/SceneReactObject.js +0 -34
- package/dist/esm/dist/esm/components/SceneRefreshPicker.js +0 -205
- package/dist/esm/dist/esm/components/SceneTimePicker.js +0 -139
- package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +0 -240
- package/dist/esm/dist/esm/components/SceneToolbarButton.js +0 -33
- package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +0 -406
- package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +0 -44
- package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +0 -59
- package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +0 -285
- package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +0 -45
- package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +0 -72
- package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +0 -11
- package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
- package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
- package/dist/esm/dist/esm/components/layout/LazyLoader.js +0 -103
- package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +0 -135
- package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +0 -30
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +0 -283
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
- package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +0 -190
- package/dist/esm/dist/esm/components/layout/grid/constants.js +0 -7
- package/dist/esm/dist/esm/components/layout/grid/utils.js +0 -36
- package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +0 -17
- package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +0 -29
- package/dist/esm/dist/esm/components/layout/split/Splitter.js +0 -386
- package/dist/esm/dist/esm/core/SceneComponentWrapper.js +0 -57
- package/dist/esm/dist/esm/core/SceneDataNode.js +0 -43
- package/dist/esm/dist/esm/core/SceneObjectBase.js +0 -286
- package/dist/esm/dist/esm/core/SceneObjectRef.js +0 -32
- package/dist/esm/dist/esm/core/SceneTimeRange.js +0 -231
- package/dist/esm/dist/esm/core/events.js +0 -11
- package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +0 -10
- package/dist/esm/dist/esm/core/sceneGraph/index.js +0 -25
- package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +0 -178
- package/dist/esm/dist/esm/core/sceneGraph/utils.js +0 -64
- package/dist/esm/dist/esm/core/types.js +0 -15
- package/dist/esm/dist/esm/querying/DataLayersMerger.js +0 -46
- package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +0 -6
- package/dist/esm/dist/esm/querying/RuntimeDataSource.js +0 -6
- package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +0 -100
- package/dist/esm/dist/esm/querying/SceneQueryRunner.js +0 -468
- package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +0 -46
- package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +0 -12
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +0 -112
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +0 -51
- package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
- package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +0 -85
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -121
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
- package/dist/esm/dist/esm/querying/layers/annotations/utils.js +0 -77
- package/dist/esm/dist/esm/querying/registerQueryWithController.js +0 -41
- package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +0 -30
- package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +0 -45
- package/dist/esm/dist/esm/services/UrlSyncManager.js +0 -167
- package/dist/esm/dist/esm/services/useUrlSync.js +0 -29
- package/dist/esm/dist/esm/services/utils.js +0 -71
- package/dist/esm/dist/esm/utils/ControlsLabel.js +0 -107
- package/dist/esm/dist/esm/utils/LoadingIndicator.js +0 -19
- package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +0 -39
- package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
- package/dist/esm/dist/esm/utils/date.js +0 -15
- package/dist/esm/dist/esm/utils/evaluateTimeRange.js +0 -16
- package/dist/esm/dist/esm/utils/explore.js +0 -47
- package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +0 -4
- package/dist/esm/dist/esm/utils/getDataSource.js +0 -18
- package/dist/esm/dist/esm/utils/getMessageFromError.js +0 -24
- package/dist/esm/dist/esm/utils/metricTree.js +0 -53
- package/dist/esm/dist/esm/utils/parseUrlParam.js +0 -41
- package/dist/esm/dist/esm/utils/utils.js +0 -11
- package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +0 -30
- package/dist/esm/dist/esm/utils/writeSceneLog.js +0 -12
- package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +0 -150
- package/dist/esm/dist/esm/variables/VariableValueRecorder.js +0 -71
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +0 -24
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +0 -303
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +0 -289
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
- package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +0 -13
- package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +0 -47
- package/dist/esm/dist/esm/variables/components/VariableValueControl.js +0 -23
- package/dist/esm/dist/esm/variables/components/VariableValueInput.js +0 -33
- package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +0 -228
- package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +0 -72
- package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +0 -15
- package/dist/esm/dist/esm/variables/constants.js +0 -9
- package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +0 -12
- package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +0 -259
- package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
- package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
- package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +0 -40
- package/dist/esm/dist/esm/variables/interpolation/defaults.js +0 -21
- package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +0 -13
- package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +0 -296
- package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +0 -87
- package/dist/esm/dist/esm/variables/lookupVariable.js +0 -20
- package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +0 -57
- package/dist/esm/dist/esm/variables/macros/contextMacros.js +0 -43
- package/dist/esm/dist/esm/variables/macros/dataMacros.js +0 -134
- package/dist/esm/dist/esm/variables/macros/index.js +0 -26
- package/dist/esm/dist/esm/variables/macros/templateProxies.js +0 -51
- package/dist/esm/dist/esm/variables/macros/timeMacros.js +0 -86
- package/dist/esm/dist/esm/variables/macros/types.js +0 -11
- package/dist/esm/dist/esm/variables/macros/urlMacros.js +0 -56
- package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +0 -254
- package/dist/esm/dist/esm/variables/types.js +0 -11
- package/dist/esm/dist/esm/variables/utils.js +0 -172
- package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +0 -38
- package/dist/esm/dist/esm/variables/variants/CustomVariable.js +0 -60
- package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +0 -88
- package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +0 -117
- package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +0 -295
- package/dist/esm/dist/esm/variables/variants/TestVariable.js +0 -117
- package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +0 -61
- package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +0 -139
- package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +0 -129
- package/dist/esm/dist/esm/variables/variants/query/guards.js +0 -28
- package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +0 -96
- package/dist/esm/dist/esm/variables/variants/query/utils.js +0 -124
- package/dist/esm/querying/DataProviderSharer.js +0 -39
- package/dist/esm/src/behaviors/ActWhenVariableChanged.js +0 -27
- package/dist/esm/src/behaviors/CursorSync.js +0 -76
- package/dist/esm/src/behaviors/LiveNowTimer.js +0 -44
- package/dist/esm/src/behaviors/SceneQueryController.js +0 -60
- package/dist/esm/src/behaviors/index.js +0 -5
- package/dist/esm/src/components/EmbeddedScene.js +0 -59
- package/dist/esm/src/components/NestedScene.js +0 -95
- package/dist/esm/src/components/SceneApp/SceneApp.js +0 -37
- package/dist/esm/src/components/SceneApp/SceneAppPage.js +0 -176
- package/dist/esm/src/components/SceneApp/SceneAppPageView.js +0 -104
- package/dist/esm/src/components/SceneApp/utils.js +0 -42
- package/dist/esm/src/components/SceneByFrameRepeater.js +0 -41
- package/dist/esm/src/components/SceneByVariableRepeater.js +0 -55
- package/dist/esm/src/components/SceneCanvasText.js +0 -32
- package/dist/esm/src/components/SceneControlsSpacer.js +0 -17
- package/dist/esm/src/components/SceneDebugger/DebugDetails.js +0 -82
- package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +0 -72
- package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +0 -77
- package/dist/esm/src/components/SceneReactObject.js +0 -34
- package/dist/esm/src/components/SceneRefreshPicker.js +0 -205
- package/dist/esm/src/components/SceneTimePicker.js +0 -139
- package/dist/esm/src/components/SceneTimeRangeCompare.js +0 -240
- package/dist/esm/src/components/SceneToolbarButton.js +0 -33
- package/dist/esm/src/components/VizPanel/VizPanel.js +0 -406
- package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +0 -44
- package/dist/esm/src/components/VizPanel/VizPanelMenu.js +0 -59
- package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +0 -285
- package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +0 -45
- package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +0 -72
- package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +0 -56
- package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
- package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
- package/dist/esm/src/components/layout/LazyLoader.js +0 -103
- package/dist/esm/src/components/layout/SceneFlexLayout.js +0 -135
- package/dist/esm/src/components/layout/grid/SceneGridItem.js +0 -30
- package/dist/esm/src/components/layout/grid/SceneGridLayout.js +0 -283
- package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
- package/dist/esm/src/components/layout/grid/SceneGridRow.js +0 -190
- package/dist/esm/src/components/layout/grid/constants.js +0 -7
- package/dist/esm/src/components/layout/grid/utils.js +0 -36
- package/dist/esm/src/components/layout/split/SplitLayout.js +0 -17
- package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +0 -29
- package/dist/esm/src/components/layout/split/Splitter.js +0 -386
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +0 -100
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +0 -75
- package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +0 -75
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +0 -22
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +0 -85
- package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +0 -52
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +0 -78
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +0 -114
- package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +0 -162
- package/dist/esm/src/core/PanelBuilders/index.js +0 -116
- package/dist/esm/src/core/SceneComponentWrapper.js +0 -57
- package/dist/esm/src/core/SceneDataNode.js +0 -43
- package/dist/esm/src/core/SceneObjectBase.js +0 -286
- package/dist/esm/src/core/SceneObjectRef.js +0 -32
- package/dist/esm/src/core/SceneTimeRange.js +0 -231
- package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +0 -35
- package/dist/esm/src/core/SceneTimeZoneOverride.js +0 -63
- package/dist/esm/src/core/events.js +0 -11
- package/dist/esm/src/core/sceneGraph/getTimeRange.js +0 -10
- package/dist/esm/src/core/sceneGraph/index.js +0 -25
- package/dist/esm/src/core/sceneGraph/sceneGraph.js +0 -178
- package/dist/esm/src/core/sceneGraph/utils.js +0 -64
- package/dist/esm/src/core/types.js +0 -15
- package/dist/esm/src/index.js +0 -108
- package/dist/esm/src/querying/DataLayersMerger.js +0 -46
- package/dist/esm/src/querying/DataProviderProxy.js +0 -37
- package/dist/esm/src/querying/DataProviderSharer.js +0 -108
- package/dist/esm/src/querying/ExtraQueryProvider.js +0 -6
- package/dist/esm/src/querying/RuntimeDataSource.js +0 -49
- package/dist/esm/src/querying/SceneDataLayerSet.js +0 -100
- package/dist/esm/src/querying/SceneDataTransformer.js +0 -178
- package/dist/esm/src/querying/SceneQueryRunner.js +0 -468
- package/dist/esm/src/querying/extraQueryProcessingOperator.js +0 -46
- package/dist/esm/src/querying/getEnrichedDataRequest.js +0 -12
- package/dist/esm/src/querying/layers/SceneDataLayerBase.js +0 -112
- package/dist/esm/src/querying/layers/SceneDataLayerControls.js +0 -51
- package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
- package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +0 -85
- package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +0 -121
- package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
- package/dist/esm/src/querying/layers/annotations/utils.js +0 -77
- package/dist/esm/src/querying/layers/index.js +0 -2
- package/dist/esm/src/querying/registerQueryWithController.js +0 -41
- package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +0 -30
- package/dist/esm/src/services/UniqueUrlKeyMapper.js +0 -45
- package/dist/esm/src/services/UrlSyncContextProvider.js +0 -17
- package/dist/esm/src/services/UrlSyncManager.js +0 -167
- package/dist/esm/src/services/useUrlSync.js +0 -29
- package/dist/esm/src/services/utils.js +0 -75
- package/dist/esm/src/utils/ControlsLabel.js +0 -107
- package/dist/esm/src/utils/LoadingIndicator.js +0 -19
- package/dist/esm/src/utils/SafeSerializableSceneObject.js +0 -39
- package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
- package/dist/esm/src/utils/date.js +0 -15
- package/dist/esm/src/utils/evaluateTimeRange.js +0 -16
- package/dist/esm/src/utils/explore.js +0 -47
- package/dist/esm/src/utils/getCompareSeriesRefId.js +0 -4
- package/dist/esm/src/utils/getDataSource.js +0 -18
- package/dist/esm/src/utils/getMessageFromError.js +0 -24
- package/dist/esm/src/utils/metricTree.js +0 -53
- package/dist/esm/src/utils/parseUrlParam.js +0 -41
- package/dist/esm/src/utils/utils.js +0 -11
- package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +0 -30
- package/dist/esm/src/utils/writeSceneLog.js +0 -12
- package/dist/esm/src/variables/VariableDependencyConfig.js +0 -150
- package/dist/esm/src/variables/VariableValueRecorder.js +0 -71
- package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +0 -24
- package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +0 -303
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +0 -289
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
- package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +0 -13
- package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +0 -47
- package/dist/esm/src/variables/components/VariableValueControl.js +0 -23
- package/dist/esm/src/variables/components/VariableValueInput.js +0 -33
- package/dist/esm/src/variables/components/VariableValueSelect.js +0 -228
- package/dist/esm/src/variables/components/VariableValueSelectors.js +0 -72
- package/dist/esm/src/variables/components/getOptionSearcher.js +0 -15
- package/dist/esm/src/variables/constants.js +0 -9
- package/dist/esm/src/variables/getEnrichedFiltersRequest.js +0 -12
- package/dist/esm/src/variables/groupby/GroupByVariable.js +0 -259
- package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
- package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
- package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +0 -40
- package/dist/esm/src/variables/interpolation/defaults.js +0 -21
- package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +0 -13
- package/dist/esm/src/variables/interpolation/formatRegistry.js +0 -296
- package/dist/esm/src/variables/interpolation/sceneInterpolator.js +0 -87
- package/dist/esm/src/variables/lookupVariable.js +0 -20
- package/dist/esm/src/variables/macros/AllVariablesMacro.js +0 -57
- package/dist/esm/src/variables/macros/contextMacros.js +0 -43
- package/dist/esm/src/variables/macros/dataMacros.js +0 -134
- package/dist/esm/src/variables/macros/index.js +0 -35
- package/dist/esm/src/variables/macros/templateProxies.js +0 -51
- package/dist/esm/src/variables/macros/timeMacros.js +0 -86
- package/dist/esm/src/variables/macros/types.js +0 -11
- package/dist/esm/src/variables/macros/urlMacros.js +0 -56
- package/dist/esm/src/variables/sets/SceneVariableSet.js +0 -254
- package/dist/esm/src/variables/types.js +0 -11
- package/dist/esm/src/variables/utils.js +0 -172
- package/dist/esm/src/variables/variants/ConstantVariable.js +0 -38
- package/dist/esm/src/variables/variants/CustomVariable.js +0 -60
- package/dist/esm/src/variables/variants/DataSourceVariable.js +0 -88
- package/dist/esm/src/variables/variants/IntervalVariable.js +0 -117
- package/dist/esm/src/variables/variants/JsonVariable.js +0 -193
- package/dist/esm/src/variables/variants/LocalValueVariable.js +0 -56
- package/dist/esm/src/variables/variants/MultiValueVariable.js +0 -295
- package/dist/esm/src/variables/variants/TestVariable.js +0 -117
- package/dist/esm/src/variables/variants/TextBoxVariable.js +0 -61
- package/dist/esm/src/variables/variants/guards.js +0 -27
- package/dist/esm/src/variables/variants/query/QueryVariable.js +0 -139
- package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +0 -129
- package/dist/esm/src/variables/variants/query/guards.js +0 -28
- package/dist/esm/src/variables/variants/query/toMetricFindValues.js +0 -96
- package/dist/esm/src/variables/variants/query/utils.js +0 -124
- package/dist/esm/variables/variants/JsonVariable.js +0 -96
- package/dist/esm/variables/variants/json/JsonVariable.js +0 -95
- package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +0 -70
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
class SceneObjectUrlSyncConfig {
|
|
2
|
-
constructor(_sceneObject, _options) {
|
|
3
|
-
this._sceneObject = _sceneObject;
|
|
4
|
-
this._nextChangeShouldAddHistoryStep = false;
|
|
5
|
-
this._keys = _options.keys;
|
|
6
|
-
}
|
|
7
|
-
getKeys() {
|
|
8
|
-
if (typeof this._keys === "function") {
|
|
9
|
-
return this._keys();
|
|
10
|
-
}
|
|
11
|
-
return this._keys;
|
|
12
|
-
}
|
|
13
|
-
getUrlState() {
|
|
14
|
-
return this._sceneObject.getUrlState();
|
|
15
|
-
}
|
|
16
|
-
updateFromUrl(values) {
|
|
17
|
-
this._sceneObject.updateFromUrl(values);
|
|
18
|
-
}
|
|
19
|
-
performBrowserHistoryAction(callback) {
|
|
20
|
-
this._nextChangeShouldAddHistoryStep = true;
|
|
21
|
-
callback();
|
|
22
|
-
this._nextChangeShouldAddHistoryStep = false;
|
|
23
|
-
}
|
|
24
|
-
shouldCreateHistoryStep(values) {
|
|
25
|
-
return this._nextChangeShouldAddHistoryStep;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export { SceneObjectUrlSyncConfig };
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVPYmplY3RVcmxTeW5jQ29uZmlnLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zZXJ2aWNlcy9TY2VuZU9iamVjdFVybFN5bmNDb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgU2NlbmVPYmplY3RVcmxTeW5jQ29uZmlnIHtcbiAgY29uc3RydWN0b3IoX3NjZW5lT2JqZWN0LCBfb3B0aW9ucykge1xuICAgIHRoaXMuX3NjZW5lT2JqZWN0ID0gX3NjZW5lT2JqZWN0O1xuICAgIHRoaXMuX25leHRDaGFuZ2VTaG91bGRBZGRIaXN0b3J5U3RlcCA9IGZhbHNlO1xuICAgIHRoaXMuX2tleXMgPSBfb3B0aW9ucy5rZXlzO1xuICB9XG4gIGdldEtleXMoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLl9rZXlzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9rZXlzKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9rZXlzO1xuICB9XG4gIGdldFVybFN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9zY2VuZU9iamVjdC5nZXRVcmxTdGF0ZSgpO1xuICB9XG4gIHVwZGF0ZUZyb21VcmwodmFsdWVzKSB7XG4gICAgdGhpcy5fc2NlbmVPYmplY3QudXBkYXRlRnJvbVVybCh2YWx1ZXMpO1xuICB9XG4gIHBlcmZvcm1Ccm93c2VySGlzdG9yeUFjdGlvbihjYWxsYmFjaykge1xuICAgIHRoaXMuX25leHRDaGFuZ2VTaG91bGRBZGRIaXN0b3J5U3RlcCA9IHRydWU7XG4gICAgY2FsbGJhY2soKTtcbiAgICB0aGlzLl9uZXh0Q2hhbmdlU2hvdWxkQWRkSGlzdG9yeVN0ZXAgPSBmYWxzZTtcbiAgfVxuICBzaG91bGRDcmVhdGVIaXN0b3J5U3RlcCh2YWx1ZXMpIHtcbiAgICByZXR1cm4gdGhpcy5fbmV4dENoYW5nZVNob3VsZEFkZEhpc3RvcnlTdGVwO1xuICB9XG59XG5cbmV4cG9ydCB7IFNjZW5lT2JqZWN0VXJsU3luY0NvbmZpZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lVMk5sYm1WUFltcGxZM1JWY214VGVXNWpRMjl1Wm1sbkxtcHpJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZjMlZ5ZG1salpYTXZVMk5sYm1WUFltcGxZM1JWY214VGVXNWpRMjl1Wm1sbkxuUnpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUZOalpXNWxUMkpxWldOMFZYSnNVM2x1WTBoaGJtUnNaWElzSUZOalpXNWxUMkpxWldOMFYybDBhRlZ5YkZONWJtTXNJRk5qWlc1bFQySnFaV04wVlhKc1ZtRnNkV1Z6SUgwZ1puSnZiU0FuTGk0dlkyOXlaUzkwZVhCbGN5YzdYRzVjYm1sdWRHVnlabUZqWlNCVFkyVnVaVTlpYW1WamRGVnliRk41Ym1ORGIyNW1hV2RQY0hScGIyNXpJSHRjYmlBZ2EyVjVjem9nYzNSeWFXNW5XMTBnZkNBb0tDa2dQVDRnYzNSeWFXNW5XMTBwTzF4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1UyTmxibVZQWW1wbFkzUlZjbXhUZVc1alEyOXVabWxuSUdsdGNHeGxiV1Z1ZEhNZ1UyTmxibVZQWW1wbFkzUlZjbXhUZVc1alNHRnVaR3hsY2lCN1hHNGdJSEJ5YVhaaGRHVWdYMnRsZVhNNklITjBjbWx1WjF0ZElId2dLQ2dwSUQwK0lITjBjbWx1WjF0ZEtUdGNiaUFnY0hKcGRtRjBaU0JmYm1WNGRFTm9ZVzVuWlZOb2IzVnNaRUZrWkVocGMzUnZjbmxUZEdWd0lEMGdabUZzYzJVN1hHNWNiaUFnY0hWaWJHbGpJR052Ym5OMGNuVmpkRzl5S0hCeWFYWmhkR1VnWDNOalpXNWxUMkpxWldOME9pQlRZMlZ1WlU5aWFtVmpkRmRwZEdoVmNteFRlVzVqTENCZmIzQjBhVzl1Y3pvZ1UyTmxibVZQWW1wbFkzUlZjbXhUZVc1alEyOXVabWxuVDNCMGFXOXVjeWtnZTF4dUlDQWdJSFJvYVhNdVgydGxlWE1nUFNCZmIzQjBhVzl1Y3k1clpYbHpPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZEV0bGVYTW9LVG9nYzNSeWFXNW5XMTBnZTF4dUlDQWdJR2xtSUNoMGVYQmxiMllnZEdocGN5NWZhMlY1Y3lBOVBUMGdKMloxYm1OMGFXOXVKeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgydGxlWE1vS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmEyVjVjenRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhSVmNteFRkR0YwWlNncE9pQlRZMlZ1WlU5aWFtVmpkRlZ5YkZaaGJIVmxjeUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNOalpXNWxUMkpxWldOMExtZGxkRlZ5YkZOMFlYUmxLQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nZFhCa1lYUmxSbkp2YlZWeWJDaDJZV3gxWlhNNklGTmpaVzVsVDJKcVpXTjBWWEpzVm1Gc2RXVnpLVG9nZG05cFpDQjdYRzRnSUNBZ2RHaHBjeTVmYzJObGJtVlBZbXBsWTNRdWRYQmtZWFJsUm5KdmJWVnliQ2gyWVd4MVpYTXBPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJSEJsY21admNtMUNjbTkzYzJWeVNHbHpkRzl5ZVVGamRHbHZiaWhqWVd4c1ltRmphem9nS0NrZ1BUNGdkbTlwWkNrZ2UxeHVJQ0FnSUhSb2FYTXVYMjVsZUhSRGFHRnVaMlZUYUc5MWJHUkJaR1JJYVhOMGIzSjVVM1JsY0NBOUlIUnlkV1U3WEc0Z0lDQWdZMkZzYkdKaFkyc29LVHRjYmlBZ0lDQjBhR2x6TGw5dVpYaDBRMmhoYm1kbFUyaHZkV3hrUVdSa1NHbHpkRzl5ZVZOMFpYQWdQU0JtWVd4elpUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QnphRzkxYkdSRGNtVmhkR1ZJYVhOMGIzSjVVM1JsY0NoMllXeDFaWE02SUZOalpXNWxUMkpxWldOMFZYSnNWbUZzZFdWektUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYMjVsZUhSRGFHRnVaMlZUYUc5MWJHUkJaR1JJYVhOMGIzSjVVM1JsY0R0Y2JpQWdmVnh1ZlZ4dUlsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVMVBMRTFCUVUwc2QwSkJRVGhFTEVOQlFVRTdRVUZCUVN4RlFVbHNSU3hYUVVGQkxFTkJRVzlDTEdOQlFYTkRMRkZCUVRKRExFVkJRVUU3UVVGQmFrWXNTVUZCUVN4SlFVRkJMRU5CUVVFc1dVRkJRU3hIUVVGQkxGbEJRVUVzUTBGQlFUdEJRVVl6UWl4SlFVRkJMRWxCUVVFc1EwRkJVU3dyUWtGQmEwTXNSMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkhlRU1zU1VGQlFTeEpRVUZCTEVOQlFVc3NVVUZCVVN4UlFVRlRMRU5CUVVFc1NVRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGVFSTdRVUZCUVN4RlFVVlBMRTlCUVc5Q0xFZEJRVUU3UVVGRGVrSXNTVUZCU1N4SlFVRkJMRTlCUVU4c1NVRkJTeXhEUVVGQkxFdEJRVUVzUzBGQlZTeFZRVUZaTEVWQlFVRTdRVUZEY0VNc1RVRkJRU3hQUVVGUExFdEJRVXNzUzBGQlRTeEZRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTndRanRCUVVWQkxFbEJRVUVzVDBGQlR5eEpRVUZMTEVOQlFVRXNTMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRaRHRCUVVGQkxFVkJSVThzVjBGQmIwTXNSMEZCUVR0QlFVTjZReXhKUVVGUExFOUJRVUVzU1VGQlFTeERRVUZMTEdGQlFXRXNWMEZCV1N4RlFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOMlF6dEJRVUZCTEVWQlJVOHNZMEZCWXl4TlFVRnZReXhGUVVGQk8wRkJRM1pFTEVsQlFVc3NTVUZCUVN4RFFVRkJMRmxCUVVFc1EwRkJZU3hqUVVGakxFMUJRVTBzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZEZUVNN1FVRkJRU3hGUVVWUExEUkNRVUUwUWl4UlFVRnpRaXhGUVVGQk8wRkJRM1pFTEVsQlFVRXNTVUZCUVN4RFFVRkxMQ3RDUVVGclF5eEhRVUZCTEVsQlFVRXNRMEZCUVR0QlFVTjJReXhKUVVGVExGRkJRVUVzUlVGQlFTeERRVUZCTzBGQlExUXNTVUZCUVN4SlFVRkJMRU5CUVVzc0swSkJRV3RETEVkQlFVRXNTMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRla003UVVGQlFTeEZRVVZQTEhkQ1FVRjNRaXhOUVVGMVF5eEZRVUZCTzBGQlEzQkZMRWxCUVVFc1QwRkJUeXhKUVVGTExFTkJRVUVzSzBKQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTJRN1FVRkRSanM3T3pzaWZRPT1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNTyxNQUFNLHdCQUE4RCxDQUFBO0FBSWxFLEVBQUEsV0FBQSxDQUFvQixjQUFzQyxRQUEyQyxFQUFBO0FBQWpGLElBQUEsSUFBQSxDQUFBLFlBQUEsR0FBQSxZQUFBLENBQUE7QUFGM0IsSUFBQSxJQUFBLENBQVEsK0JBQWtDLEdBQUEsS0FBQSxDQUFBO0FBR3hDLElBQUEsSUFBQSxDQUFLLFFBQVEsUUFBUyxDQUFBLElBQUEsQ0FBQTtBQUFBLEdBQUE7RUFHakIsT0FBb0IsR0FBQTtBQUNyQixJQUFBLElBQUEsT0FBTyxJQUFLLENBQUEsS0FBQSxLQUFVLFVBQVksRUFBQTtBQUNwQyxNQUFBLE9BQU8sS0FBSyxLQUFNLEVBQUEsQ0FBQTtBQUFBLEtBQUE7QUFHcEIsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBLENBQUE7QUFBQSxHQUFBO0VBR1AsV0FBb0MsR0FBQTtBQUNsQyxJQUFBLE9BQUEsSUFBQSxDQUFLLGFBQWEsV0FBWSxFQUFBLENBQUE7QUFBQSxHQUFBO0FBR2hDLEVBQUEsYUFBQSxDQUFjLE1BQW9DLEVBQUE7QUFDbEQsSUFBQSxJQUFBLENBQUEsWUFBQSxDQUFhLGNBQWMsTUFBTSxDQUFBLENBQUE7QUFBQSxHQUFBO0FBR2pDLEVBQUEsMkJBQUEsQ0FBNEIsUUFBc0IsRUFBQTtBQUN2RCxJQUFBLElBQUEsQ0FBSywrQkFBa0MsR0FBQSxJQUFBLENBQUE7QUFDOUIsSUFBQSxRQUFBLEVBQUEsQ0FBQTtBQUNULElBQUEsSUFBQSxDQUFLLCtCQUFrQyxHQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQUE7QUFHbEMsRUFBQSx1QkFBQSxDQUF3QixNQUF1QyxFQUFBO0FBQ3BFLElBQUEsT0FBTyxJQUFLLENBQUEsK0JBQUEsQ0FBQTtBQUFBLEdBQUE7QUFFaEI7Ozs7In0=
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { sceneGraph } from '../core/sceneGraph/index.js';
|
|
2
|
-
|
|
3
|
-
class UniqueUrlKeyMapper {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.index = /* @__PURE__ */ new Map();
|
|
6
|
-
}
|
|
7
|
-
getUniqueKey(key, obj) {
|
|
8
|
-
const objectsWithKey = this.index.get(key);
|
|
9
|
-
if (!objectsWithKey) {
|
|
10
|
-
this.index.set(key, [obj]);
|
|
11
|
-
return key;
|
|
12
|
-
}
|
|
13
|
-
let address = objectsWithKey.findIndex((o) => o === obj);
|
|
14
|
-
if (address === -1) {
|
|
15
|
-
filterOutOrphanedObjects(objectsWithKey);
|
|
16
|
-
objectsWithKey.push(obj);
|
|
17
|
-
address = objectsWithKey.length - 1;
|
|
18
|
-
}
|
|
19
|
-
if (address > 0) {
|
|
20
|
-
return `${key}-${address + 1}`;
|
|
21
|
-
}
|
|
22
|
-
return key;
|
|
23
|
-
}
|
|
24
|
-
clear() {
|
|
25
|
-
this.index.clear();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function filterOutOrphanedObjects(sceneObjects) {
|
|
29
|
-
for (const obj of sceneObjects) {
|
|
30
|
-
if (isOrphanOrInActive(obj)) {
|
|
31
|
-
const index = sceneObjects.indexOf(obj);
|
|
32
|
-
sceneObjects.splice(index, 1);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
function isOrphanOrInActive(obj) {
|
|
37
|
-
const root = obj.getRoot();
|
|
38
|
-
if (!sceneGraph.findObject(root, (child) => child === obj)) {
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export { UniqueUrlKeyMapper };
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVW5pcXVlVXJsS2V5TWFwcGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zZXJ2aWNlcy9VbmlxdWVVcmxLZXlNYXBwZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2NlbmVHcmFwaCB9IGZyb20gJy4uL2NvcmUvc2NlbmVHcmFwaC9pbmRleC5qcyc7XG5cbmNsYXNzIFVuaXF1ZVVybEtleU1hcHBlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW5kZXggPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICB9XG4gIGdldFVuaXF1ZUtleShrZXksIG9iaikge1xuICAgIGNvbnN0IG9iamVjdHNXaXRoS2V5ID0gdGhpcy5pbmRleC5nZXQoa2V5KTtcbiAgICBpZiAoIW9iamVjdHNXaXRoS2V5KSB7XG4gICAgICB0aGlzLmluZGV4LnNldChrZXksIFtvYmpdKTtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICAgIGxldCBhZGRyZXNzID0gb2JqZWN0c1dpdGhLZXkuZmluZEluZGV4KChvKSA9PiBvID09PSBvYmopO1xuICAgIGlmIChhZGRyZXNzID09PSAtMSkge1xuICAgICAgZmlsdGVyT3V0T3JwaGFuZWRPYmplY3RzKG9iamVjdHNXaXRoS2V5KTtcbiAgICAgIG9iamVjdHNXaXRoS2V5LnB1c2gob2JqKTtcbiAgICAgIGFkZHJlc3MgPSBvYmplY3RzV2l0aEtleS5sZW5ndGggLSAxO1xuICAgIH1cbiAgICBpZiAoYWRkcmVzcyA+IDApIHtcbiAgICAgIHJldHVybiBgJHtrZXl9LSR7YWRkcmVzcyArIDF9YDtcbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbiAgfVxuICBjbGVhcigpIHtcbiAgICB0aGlzLmluZGV4LmNsZWFyKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGZpbHRlck91dE9ycGhhbmVkT2JqZWN0cyhzY2VuZU9iamVjdHMpIHtcbiAgZm9yIChjb25zdCBvYmogb2Ygc2NlbmVPYmplY3RzKSB7XG4gICAgaWYgKGlzT3JwaGFuT3JJbkFjdGl2ZShvYmopKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHNjZW5lT2JqZWN0cy5pbmRleE9mKG9iaik7XG4gICAgICBzY2VuZU9iamVjdHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGlzT3JwaGFuT3JJbkFjdGl2ZShvYmopIHtcbiAgY29uc3Qgcm9vdCA9IG9iai5nZXRSb290KCk7XG4gIGlmICghc2NlbmVHcmFwaC5maW5kT2JqZWN0KHJvb3QsIChjaGlsZCkgPT4gY2hpbGQgPT09IG9iaikpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCB7IFVuaXF1ZVVybEtleU1hcHBlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lWVzVwY1hWbFZYSnNTMlY1VFdGd2NHVnlMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12YzJWeWRtbGpaWE12Vlc1cGNYVmxWWEpzUzJWNVRXRndjR1Z5TG5SeklsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJSE5qWlc1bFIzSmhjR2dnZlNCbWNtOXRJQ2N1TGk5amIzSmxMM05qWlc1bFIzSmhjR2duTzF4dWFXMXdiM0owSUhzZ1UyTmxibVZQWW1wbFkzUWdmU0JtY205dElDY3VMaTlqYjNKbEwzUjVjR1Z6Snp0Y2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQlRZMlZ1WlU5aWFtVmpkRmRwZEdoRVpYQjBhQ0I3WEc0Z0lITmpaVzVsVDJKcVpXTjBPaUJUWTJWdVpVOWlhbVZqZER0Y2JpQWdaR1Z3ZEdnNklHNTFiV0psY2p0Y2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGVnVhWEYxWlZWeWJFdGxlVTFoY0hCbGNpQjdYRzRnSUhCeWFYWmhkR1VnYVc1a1pYZ2dQU0J1WlhjZ1RXRndQSE4wY21sdVp5d2dVMk5sYm1WUFltcGxZM1JiWFQ0b0tUdGNibHh1SUNCd2RXSnNhV01nWjJWMFZXNXBjWFZsUzJWNUtHdGxlVG9nYzNSeWFXNW5MQ0J2WW1vNklGTmpaVzVsVDJKcVpXTjBLU0I3WEc0Z0lDQWdZMjl1YzNRZ2IySnFaV04wYzFkcGRHaExaWGtnUFNCMGFHbHpMbWx1WkdWNExtZGxkQ2hyWlhrcE8xeHVYRzRnSUNBZ2FXWWdLQ0Z2WW1wbFkzUnpWMmwwYUV0bGVTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1cGJtUmxlQzV6WlhRb2EyVjVMQ0JiYjJKcVhTazdYRzRnSUNBZ0lDQnlaWFIxY200Z2EyVjVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0JoWkdSeVpYTnpJRDBnYjJKcVpXTjBjMWRwZEdoTFpYa3VabWx1WkVsdVpHVjRLQ2h2S1NBOVBpQnZJRDA5UFNCdlltb3BPMXh1SUNBZ0lHbG1JQ2hoWkdSeVpYTnpJRDA5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdabWxzZEdWeVQzVjBUM0p3YUdGdVpXUlBZbXBsWTNSektHOWlhbVZqZEhOWGFYUm9TMlY1S1R0Y2JpQWdJQ0FnSUc5aWFtVmpkSE5YYVhSb1MyVjVMbkIxYzJnb2IySnFLVHRjYmx4dUlDQWdJQ0FnWVdSa2NtVnpjeUE5SUc5aWFtVmpkSE5YYVhSb1MyVjVMbXhsYm1kMGFDQXRJREU3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0dGa1pISmxjM01nUGlBd0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lDUjdhMlY1ZlMwa2UyRmtaSEpsYzNNZ0t5QXhmV0E3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHdGxlVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJqYkdWaGNpZ3BJSHRjYmlBZ0lDQjBhR2x6TG1sdVpHVjRMbU5zWldGeUtDazdYRzRnSUgxY2JuMWNibHh1Wm5WdVkzUnBiMjRnWm1sc2RHVnlUM1YwVDNKd2FHRnVaV1JQWW1wbFkzUnpLSE5qWlc1bFQySnFaV04wY3pvZ1UyTmxibVZQWW1wbFkzUmJYU2tnZTF4dUlDQm1iM0lnS0dOdmJuTjBJRzlpYWlCdlppQnpZMlZ1WlU5aWFtVmpkSE1wSUh0Y2JpQWdJQ0JwWmlBb2FYTlBjbkJvWVc1UGNrbHVRV04wYVhabEtHOWlhaWtwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR2x1WkdWNElEMGdjMk5sYm1WUFltcGxZM1J6TG1sdVpHVjRUMllvYjJKcUtUdGNiaUFnSUNBZ0lITmpaVzVsVDJKcVpXTjBjeTV6Y0d4cFkyVW9hVzVrWlhnc0lERXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dWZWeHVYRzVtZFc1amRHbHZiaUJwYzA5eWNHaGhiazl5U1c1QlkzUnBkbVVvYjJKcU9pQlRZMlZ1WlU5aWFtVmpkQ2tnZTF4dUlDQmpiMjV6ZENCeWIyOTBJRDBnYjJKcUxtZGxkRkp2YjNRb0tUdGNibHh1SUNBdkx5QkpaaUIzWlNCallXNXViM1FnWm1sdVpDQnBkQ0JtY205dElIUm9aU0J5YjI5MElHbDBKM01nWVc0Z2IzSndhR0Z1WEc0Z0lHbG1JQ2doYzJObGJtVkhjbUZ3YUM1bWFXNWtUMkpxWldOMEtISnZiM1FzSUNoamFHbHNaQ2tnUFQ0Z1kyaHBiR1FnUFQwOUlHOWlhaWtwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCbVlXeHpaVHRjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96dEJRVkZQTEUxQlFVMHNhMEpCUVcxQ0xFTkJRVUU3UVVGQlFTeEZRVUY2UWl4WFFVRkJMRWRCUVVFN1FVRkRUQ3hKUVVGUkxFbEJRVUVzUTBGQlFTeExRVUZCTEhWQ1FVRlpMRWRCUVRKQ0xFVkJRVUVzUTBGQlFUdEJRVUZCTEVkQlFVRTdRVUZCUVN4RlFVVjRReXhaUVVGQkxFTkJRV0VzUzBGQllTeEhRVUZyUWl4RlFVRkJPMEZCUTJwRUxFbEJRVUVzVFVGQlRTeGpRVUZwUWl4SFFVRkJMRWxCUVVFc1EwRkJTeXhMUVVGTkxFTkJRVUVzUjBGQlFTeERRVUZKTEVkQlFVY3NRMEZCUVN4RFFVRkJPMEZCUlhwRExFbEJRVUVzU1VGQlNTeERRVUZETEdOQlFXZENMRVZCUVVFN1FVRkRia0lzVFVGQlFTeEpRVUZCTEVOQlFVc3NTMEZCVFN4RFFVRkJMRWRCUVVFc1EwRkJTU3hIUVVGTExFVkJRVUVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUVN4RFFVRkJPMEZCUTNwQ0xFMUJRVThzVDBGQlFTeEhRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTlVPMEZCUlVFc1NVRkJRU3hKUVVGSkxGVkJRVlVzWTBGQlpTeERRVUZCTEZOQlFVRXNRMEZCVlN4RFFVRkRMRU5CUVVFc1MwRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlFTeERRVUZCTzBGQlEzWkVMRWxCUVVFc1NVRkJTU3haUVVGWkxFTkJRVWtzUTBGQlFTeEZRVUZCTzBGQlEyeENMRTFCUVVFc2QwSkJRVUVzUTBGQmVVSXNZMEZCWXl4RFFVRkJMRU5CUVVFN1FVRkRka01zVFVGQlFTeGpRVUZCTEVOQlFXVXNTMEZCU3l4SFFVRkhMRU5CUVVFc1EwRkJRVHRCUVVWMlFpeE5RVUZCTEU5QlFVRXNSMEZCVlN4bFFVRmxMRTFCUVZNc1IwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU53UXp0QlFVVkJMRWxCUVVFc1NVRkJTU3hWUVVGVkxFTkJRVWNzUlVGQlFUdEJRVU5tTEUxQlFVOHNUMEZCUVN4RFFVRkJMRVZCUVVjc1QwRkJUeXhQUVVGVkxFZEJRVUVzUTBGQlFTeERRVUZCTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUXpkQ08wRkJSVUVzU1VGQlR5eFBRVUZCTEVkQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTFRN1FVRkJRU3hGUVVWUExFdEJRVkVzUjBGQlFUdEJRVU5pTEVsQlFVRXNTVUZCUVN4RFFVRkxMRTFCUVUwc1MwRkJUU3hGUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU51UWp0QlFVTkdMRU5CUVVFN1FVRkZRU3hUUVVGVExIbENRVUY1UWl4WlFVRTJRaXhGUVVGQk8wRkJRemRFTEVWQlFVRXNTMEZCUVN4TlFVRlhMRTlCUVU4c1dVRkJZeXhGUVVGQk8wRkJRemxDTEVsQlFVa3NTVUZCUVN4clFrRkJRU3hEUVVGdFFpeEhRVUZITEVOQlFVY3NSVUZCUVR0QlFVTXpRaXhOUVVGTkxFMUJRVUVzUzBGQlFTeEhRVUZSTEZsQlFXRXNRMEZCUVN4UFFVRkJMRU5CUVZFc1IwRkJSeXhEUVVGQkxFTkJRVUU3UVVGRGRFTXNUVUZCWVN4WlFVRkJMRU5CUVVFc1RVRkJRU3hEUVVGUExFOUJRVThzUTBGQlF5eERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTTVRanRCUVVGQkxFZEJRMFk3UVVGRFJpeERRVUZCTzBGQlJVRXNVMEZCVXl4dFFrRkJiVUlzUjBGQmEwSXNSVUZCUVR0QlFVTTFReXhGUVVGTkxFMUJRVUVzU1VGQlFTeEhRVUZQTEVsQlFVa3NUMEZCVVN4RlFVRkJMRU5CUVVFN1FVRkhla0lzUlVGQlNTeEpRVUZCTEVOQlFVTXNWMEZCVnl4VlFVRlhMRU5CUVVFc1NVRkJRU3hGUVVGTkxFTkJRVU1zUzBGQlZTeExRVUZCTEV0QlFVRXNTMEZCVlN4SFFVRkhMRU5CUVVjc1JVRkJRVHRCUVVNeFJDeEpRVUZQTEU5QlFVRXNTVUZCUVN4RFFVRkJPMEZCUVVFc1IwRkRWRHRCUVVWQkxFVkJRVThzVDBGQlFTeExRVUZCTEVOQlFVRTdRVUZEVkRzN096c2lmUT09XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRTyxNQUFNLGtCQUFtQixDQUFBO0VBQXpCLFdBQUEsR0FBQTtBQUNHLElBQUEsSUFBQSxDQUFBLEtBQUEsdUJBQVksR0FBMkIsRUFBQSxDQUFBO0FBQUEsR0FBQTtBQUV4QyxFQUFBLFlBQUEsQ0FBYSxLQUFhLEdBQWtCLEVBQUE7QUFDakQsSUFBQSxNQUFNLGNBQWlCLEdBQUEsSUFBQSxDQUFLLEtBQU0sQ0FBQSxHQUFBLENBQUksR0FBRyxDQUFBLENBQUE7QUFFekMsSUFBQSxJQUFJLENBQUMsY0FBZ0IsRUFBQTtBQUNuQixNQUFBLElBQUEsQ0FBSyxLQUFNLENBQUEsR0FBQSxDQUFJLEdBQUssRUFBQSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUE7QUFDbEIsTUFBQSxPQUFBLEdBQUEsQ0FBQTtBQUFBLEtBQUE7QUFHVCxJQUFBLElBQUksVUFBVSxjQUFlLENBQUEsU0FBQSxDQUFVLENBQUMsQ0FBQSxLQUFNLE1BQU0sR0FBRyxDQUFBLENBQUE7QUFDdkQsSUFBQSxJQUFJLFlBQVksQ0FBSSxDQUFBLEVBQUE7QUFDbEIsTUFBQSx3QkFBQSxDQUF5QixjQUFjLENBQUEsQ0FBQTtBQUN2QyxNQUFBLGNBQUEsQ0FBZSxLQUFLLEdBQUcsQ0FBQSxDQUFBO0FBRXZCLE1BQUEsT0FBQSxHQUFVLGVBQWUsTUFBUyxHQUFBLENBQUEsQ0FBQTtBQUFBLEtBQUE7QUFHcEMsSUFBQSxJQUFJLFVBQVUsQ0FBRyxFQUFBO0FBQ1IsTUFBQSxPQUFBLENBQUEsRUFBRyxPQUFPLE9BQVUsR0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsS0FBQTtBQUd0QixJQUFBLE9BQUEsR0FBQSxDQUFBO0FBQUEsR0FBQTtFQUdGLEtBQVEsR0FBQTtBQUNiLElBQUEsSUFBQSxDQUFLLE1BQU0sS0FBTSxFQUFBLENBQUE7QUFBQSxHQUFBO0FBRXJCLENBQUE7QUFFQSxTQUFTLHlCQUF5QixZQUE2QixFQUFBO0FBQzdELEVBQUEsS0FBQSxNQUFXLE9BQU8sWUFBYyxFQUFBO0FBQzFCLElBQUEsSUFBQSxrQkFBQSxDQUFtQixHQUFHLENBQUcsRUFBQTtBQUNyQixNQUFBLE1BQUEsS0FBQSxHQUFRLFlBQWEsQ0FBQSxPQUFBLENBQVEsR0FBRyxDQUFBLENBQUE7QUFDekIsTUFBQSxZQUFBLENBQUEsTUFBQSxDQUFPLE9BQU8sQ0FBQyxDQUFBLENBQUE7QUFBQSxLQUFBO0FBQzlCLEdBQUE7QUFFSixDQUFBO0FBRUEsU0FBUyxtQkFBbUIsR0FBa0IsRUFBQTtBQUN0QyxFQUFBLE1BQUEsSUFBQSxHQUFPLElBQUksT0FBUSxFQUFBLENBQUE7QUFHckIsRUFBQSxJQUFBLENBQUMsV0FBVyxVQUFXLENBQUEsSUFBQSxFQUFNLENBQUMsS0FBVSxLQUFBLEtBQUEsS0FBVSxHQUFHLENBQUcsRUFBQTtBQUNuRCxJQUFBLE9BQUEsSUFBQSxDQUFBO0FBQUEsR0FBQTtBQUdGLEVBQUEsT0FBQSxLQUFBLENBQUE7QUFDVDs7OzsifQ==
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { locationService } from '@grafana/runtime';
|
|
2
|
-
import { SceneObjectStateChangedEvent } from '../core/events.js';
|
|
3
|
-
import { writeSceneLog } from '../utils/writeSceneLog.js';
|
|
4
|
-
import { Subscription } from 'rxjs';
|
|
5
|
-
import { UniqueUrlKeyMapper } from './UniqueUrlKeyMapper.js';
|
|
6
|
-
import { getUrlState, syncStateFromUrl, isUrlValueEqual } from './utils.js';
|
|
7
|
-
import { BusEventWithPayload } from '@grafana/data';
|
|
8
|
-
import { useMemo } from 'react';
|
|
9
|
-
|
|
10
|
-
var __accessCheck = (obj, member, msg) => {
|
|
11
|
-
if (!member.has(obj))
|
|
12
|
-
throw TypeError("Cannot " + msg);
|
|
13
|
-
};
|
|
14
|
-
var __privateGet = (obj, member, getter) => {
|
|
15
|
-
__accessCheck(obj, member, "read from private field");
|
|
16
|
-
return getter ? getter.call(obj) : member.get(obj);
|
|
17
|
-
};
|
|
18
|
-
var __privateAdd = (obj, member, value) => {
|
|
19
|
-
if (member.has(obj))
|
|
20
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
21
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
22
|
-
};
|
|
23
|
-
var __privateSet = (obj, member, value, setter) => {
|
|
24
|
-
__accessCheck(obj, member, "write to private field");
|
|
25
|
-
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
26
|
-
return value;
|
|
27
|
-
};
|
|
28
|
-
var _cache, _location;
|
|
29
|
-
class NewSceneObjectAddedEvent extends BusEventWithPayload {
|
|
30
|
-
}
|
|
31
|
-
NewSceneObjectAddedEvent.type = "new-scene-object-added";
|
|
32
|
-
class UrlSyncManager {
|
|
33
|
-
constructor(_options = {}, locationService$1 = locationService) {
|
|
34
|
-
this._urlKeyMapper = new UniqueUrlKeyMapper();
|
|
35
|
-
this._options = _options;
|
|
36
|
-
this._locationService = locationService$1;
|
|
37
|
-
this._paramsCache = new UrlParamsCache(locationService$1);
|
|
38
|
-
}
|
|
39
|
-
initSync(root) {
|
|
40
|
-
var _a;
|
|
41
|
-
if (this._subs) {
|
|
42
|
-
writeSceneLog("UrlSyncManager", "Unregister previous scene state subscription", (_a = this._sceneRoot) == null ? void 0 : _a.state.key);
|
|
43
|
-
this._subs.unsubscribe();
|
|
44
|
-
}
|
|
45
|
-
writeSceneLog("UrlSyncManager", "init", root.state.key);
|
|
46
|
-
this._sceneRoot = root;
|
|
47
|
-
this._subs = new Subscription();
|
|
48
|
-
this._subs.add(
|
|
49
|
-
root.subscribeToEvent(SceneObjectStateChangedEvent, (evt) => {
|
|
50
|
-
this.handleSceneObjectStateChanged(evt.payload.changedObject);
|
|
51
|
-
})
|
|
52
|
-
);
|
|
53
|
-
this._subs.add(
|
|
54
|
-
root.subscribeToEvent(NewSceneObjectAddedEvent, (evt) => {
|
|
55
|
-
this.handleNewObject(evt.payload);
|
|
56
|
-
})
|
|
57
|
-
);
|
|
58
|
-
this._urlKeyMapper.clear();
|
|
59
|
-
this._lastLocation = this._locationService.getLocation();
|
|
60
|
-
this.handleNewObject(this._sceneRoot);
|
|
61
|
-
if (this._options.updateUrlOnInit) {
|
|
62
|
-
const urlState = getUrlState(root);
|
|
63
|
-
if (isUrlStateDifferent(urlState, this._paramsCache.getParams())) {
|
|
64
|
-
this._locationService.partial(urlState, true);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
cleanUp(root) {
|
|
69
|
-
if (this._sceneRoot !== root) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
writeSceneLog("UrlSyncManager", "Clean up");
|
|
73
|
-
if (this._subs) {
|
|
74
|
-
this._subs.unsubscribe();
|
|
75
|
-
this._subs = void 0;
|
|
76
|
-
writeSceneLog(
|
|
77
|
-
"UrlSyncManager",
|
|
78
|
-
"Root deactived, unsub to state",
|
|
79
|
-
"same key",
|
|
80
|
-
this._sceneRoot.state.key === root.state.key
|
|
81
|
-
);
|
|
82
|
-
}
|
|
83
|
-
this._sceneRoot = void 0;
|
|
84
|
-
this._lastLocation = void 0;
|
|
85
|
-
}
|
|
86
|
-
handleNewLocation(location) {
|
|
87
|
-
if (!this._sceneRoot || this._lastLocation === location) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
writeSceneLog("UrlSyncManager", "handleNewLocation");
|
|
91
|
-
this._lastLocation = location;
|
|
92
|
-
syncStateFromUrl(this._sceneRoot, this._paramsCache.getParams(), this._urlKeyMapper);
|
|
93
|
-
}
|
|
94
|
-
handleNewObject(sceneObj) {
|
|
95
|
-
if (!this._sceneRoot) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
syncStateFromUrl(sceneObj, this._paramsCache.getParams(), this._urlKeyMapper);
|
|
99
|
-
}
|
|
100
|
-
handleSceneObjectStateChanged(changedObject) {
|
|
101
|
-
var _a, _b;
|
|
102
|
-
if (!changedObject.urlSync) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
const newUrlState = changedObject.urlSync.getUrlState();
|
|
106
|
-
const searchParams = this._locationService.getSearch();
|
|
107
|
-
const mappedUpdated = {};
|
|
108
|
-
for (const [key, newUrlValue] of Object.entries(newUrlState)) {
|
|
109
|
-
const uniqueKey = this._urlKeyMapper.getUniqueKey(key, changedObject);
|
|
110
|
-
const currentUrlValue = searchParams.getAll(uniqueKey);
|
|
111
|
-
if (!isUrlValueEqual(currentUrlValue, newUrlValue)) {
|
|
112
|
-
mappedUpdated[uniqueKey] = newUrlValue;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
if (Object.keys(mappedUpdated).length > 0) {
|
|
116
|
-
const shouldCreateHistoryEntry = (_b = (_a = changedObject.urlSync).shouldCreateHistoryStep) == null ? void 0 : _b.call(_a, newUrlState);
|
|
117
|
-
const shouldReplace = shouldCreateHistoryEntry !== true;
|
|
118
|
-
writeSceneLog("UrlSyncManager", "onStateChange updating URL");
|
|
119
|
-
this._locationService.partial(mappedUpdated, shouldReplace);
|
|
120
|
-
this._lastLocation = this._locationService.getLocation();
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
getUrlState(root) {
|
|
124
|
-
return getUrlState(root);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
class UrlParamsCache {
|
|
128
|
-
constructor(locationService2) {
|
|
129
|
-
this.locationService = locationService2;
|
|
130
|
-
__privateAdd(this, _cache, void 0);
|
|
131
|
-
__privateAdd(this, _location, void 0);
|
|
132
|
-
}
|
|
133
|
-
getParams() {
|
|
134
|
-
const location = this.locationService.getLocation();
|
|
135
|
-
if (__privateGet(this, _location) === location) {
|
|
136
|
-
return __privateGet(this, _cache);
|
|
137
|
-
}
|
|
138
|
-
__privateSet(this, _location, location);
|
|
139
|
-
__privateSet(this, _cache, new URLSearchParams(location.search));
|
|
140
|
-
return __privateGet(this, _cache);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
_cache = /* @__PURE__ */ new WeakMap();
|
|
144
|
-
_location = /* @__PURE__ */ new WeakMap();
|
|
145
|
-
function isUrlStateDifferent(sceneUrlState, currentParams) {
|
|
146
|
-
for (let key in sceneUrlState) {
|
|
147
|
-
if (!isUrlValueEqual(currentParams.getAll(key), sceneUrlState[key])) {
|
|
148
|
-
return true;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return false;
|
|
152
|
-
}
|
|
153
|
-
function useUrlSyncManager(options, locationService2) {
|
|
154
|
-
return useMemo(
|
|
155
|
-
() => new UrlSyncManager(
|
|
156
|
-
{
|
|
157
|
-
updateUrlOnInit: options.updateUrlOnInit,
|
|
158
|
-
createBrowserHistorySteps: options.createBrowserHistorySteps
|
|
159
|
-
},
|
|
160
|
-
locationService2
|
|
161
|
-
),
|
|
162
|
-
[options.updateUrlOnInit, options.createBrowserHistorySteps, locationService2]
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
export { NewSceneObjectAddedEvent, UrlSyncManager, useUrlSyncManager };
|
|
167
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXJsU3luY01hbmFnZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NlcnZpY2VzL1VybFN5bmNNYW5hZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvY2F0aW9uU2VydmljZSB9IGZyb20gJ0BncmFmYW5hL3J1bnRpbWUnO1xuaW1wb3J0IHsgU2NlbmVPYmplY3RTdGF0ZUNoYW5nZWRFdmVudCB9IGZyb20gJy4uL2NvcmUvZXZlbnRzLmpzJztcbmltcG9ydCB7IHdyaXRlU2NlbmVMb2cgfSBmcm9tICcuLi91dGlscy93cml0ZVNjZW5lTG9nLmpzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVW5pcXVlVXJsS2V5TWFwcGVyIH0gZnJvbSAnLi9VbmlxdWVVcmxLZXlNYXBwZXIuanMnO1xuaW1wb3J0IHsgZ2V0VXJsU3RhdGUsIHN5bmNTdGF0ZUZyb21VcmwsIGlzVXJsVmFsdWVFcXVhbCB9IGZyb20gJy4vdXRpbHMuanMnO1xuaW1wb3J0IHsgQnVzRXZlbnRXaXRoUGF5bG9hZCB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcblxudmFyIF9fYWNjZXNzQ2hlY2sgPSAob2JqLCBtZW1iZXIsIG1zZykgPT4ge1xuICBpZiAoIW1lbWJlci5oYXMob2JqKSlcbiAgICB0aHJvdyBUeXBlRXJyb3IoXCJDYW5ub3QgXCIgKyBtc2cpO1xufTtcbnZhciBfX3ByaXZhdGVHZXQgPSAob2JqLCBtZW1iZXIsIGdldHRlcikgPT4ge1xuICBfX2FjY2Vzc0NoZWNrKG9iaiwgbWVtYmVyLCBcInJlYWQgZnJvbSBwcml2YXRlIGZpZWxkXCIpO1xuICByZXR1cm4gZ2V0dGVyID8gZ2V0dGVyLmNhbGwob2JqKSA6IG1lbWJlci5nZXQob2JqKTtcbn07XG52YXIgX19wcml2YXRlQWRkID0gKG9iaiwgbWVtYmVyLCB2YWx1ZSkgPT4ge1xuICBpZiAobWVtYmVyLmhhcyhvYmopKVxuICAgIHRocm93IFR5cGVFcnJvcihcIkNhbm5vdCBhZGQgdGhlIHNhbWUgcHJpdmF0ZSBtZW1iZXIgbW9yZSB0aGFuIG9uY2VcIik7XG4gIG1lbWJlciBpbnN0YW5jZW9mIFdlYWtTZXQgPyBtZW1iZXIuYWRkKG9iaikgOiBtZW1iZXIuc2V0KG9iaiwgdmFsdWUpO1xufTtcbnZhciBfX3ByaXZhdGVTZXQgPSAob2JqLCBtZW1iZXIsIHZhbHVlLCBzZXR0ZXIpID0+IHtcbiAgX19hY2Nlc3NDaGVjayhvYmosIG1lbWJlciwgXCJ3cml0ZSB0byBwcml2YXRlIGZpZWxkXCIpO1xuICBzZXR0ZXIgPyBzZXR0ZXIuY2FsbChvYmosIHZhbHVlKSA6IG1lbWJlci5zZXQob2JqLCB2YWx1ZSk7XG4gIHJldHVybiB2YWx1ZTtcbn07XG52YXIgX2NhY2hlLCBfbG9jYXRpb247XG5jbGFzcyBOZXdTY2VuZU9iamVjdEFkZGVkRXZlbnQgZXh0ZW5kcyBCdXNFdmVudFdpdGhQYXlsb2FkIHtcbn1cbk5ld1NjZW5lT2JqZWN0QWRkZWRFdmVudC50eXBlID0gXCJuZXctc2NlbmUtb2JqZWN0LWFkZGVkXCI7XG5jbGFzcyBVcmxTeW5jTWFuYWdlciB7XG4gIGNvbnN0cnVjdG9yKF9vcHRpb25zID0ge30sIGxvY2F0aW9uU2VydmljZSQxID0gbG9jYXRpb25TZXJ2aWNlKSB7XG4gICAgdGhpcy5fdXJsS2V5TWFwcGVyID0gbmV3IFVuaXF1ZVVybEtleU1hcHBlcigpO1xuICAgIHRoaXMuX29wdGlvbnMgPSBfb3B0aW9ucztcbiAgICB0aGlzLl9sb2NhdGlvblNlcnZpY2UgPSBsb2NhdGlvblNlcnZpY2UkMTtcbiAgICB0aGlzLl9wYXJhbXNDYWNoZSA9IG5ldyBVcmxQYXJhbXNDYWNoZShsb2NhdGlvblNlcnZpY2UkMSk7XG4gIH1cbiAgaW5pdFN5bmMocm9vdCkge1xuICAgIHZhciBfYTtcbiAgICBpZiAodGhpcy5fc3Vicykge1xuICAgICAgd3JpdGVTY2VuZUxvZyhcIlVybFN5bmNNYW5hZ2VyXCIsIFwiVW5yZWdpc3RlciBwcmV2aW91cyBzY2VuZSBzdGF0ZSBzdWJzY3JpcHRpb25cIiwgKF9hID0gdGhpcy5fc2NlbmVSb290KSA9PSBudWxsID8gdm9pZCAwIDogX2Euc3RhdGUua2V5KTtcbiAgICAgIHRoaXMuX3N1YnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgd3JpdGVTY2VuZUxvZyhcIlVybFN5bmNNYW5hZ2VyXCIsIFwiaW5pdFwiLCByb290LnN0YXRlLmtleSk7XG4gICAgdGhpcy5fc2NlbmVSb290ID0gcm9vdDtcbiAgICB0aGlzLl9zdWJzID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMuX3N1YnMuYWRkKFxuICAgICAgcm9vdC5zdWJzY3JpYmVUb0V2ZW50KFNjZW5lT2JqZWN0U3RhdGVDaGFuZ2VkRXZlbnQsIChldnQpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVTY2VuZU9iamVjdFN0YXRlQ2hhbmdlZChldnQucGF5bG9hZC5jaGFuZ2VkT2JqZWN0KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLl9zdWJzLmFkZChcbiAgICAgIHJvb3Quc3Vic2NyaWJlVG9FdmVudChOZXdTY2VuZU9iamVjdEFkZGVkRXZlbnQsIChldnQpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVOZXdPYmplY3QoZXZ0LnBheWxvYWQpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuX3VybEtleU1hcHBlci5jbGVhcigpO1xuICAgIHRoaXMuX2xhc3RMb2NhdGlvbiA9IHRoaXMuX2xvY2F0aW9uU2VydmljZS5nZXRMb2NhdGlvbigpO1xuICAgIHRoaXMuaGFuZGxlTmV3T2JqZWN0KHRoaXMuX3NjZW5lUm9vdCk7XG4gICAgaWYgKHRoaXMuX29wdGlvbnMudXBkYXRlVXJsT25Jbml0KSB7XG4gICAgICBjb25zdCB1cmxTdGF0ZSA9IGdldFVybFN0YXRlKHJvb3QpO1xuICAgICAgaWYgKGlzVXJsU3RhdGVEaWZmZXJlbnQodXJsU3RhdGUsIHRoaXMuX3BhcmFtc0NhY2hlLmdldFBhcmFtcygpKSkge1xuICAgICAgICB0aGlzLl9sb2NhdGlvblNlcnZpY2UucGFydGlhbCh1cmxTdGF0ZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNsZWFuVXAocm9vdCkge1xuICAgIGlmICh0aGlzLl9zY2VuZVJvb3QgIT09IHJvb3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgd3JpdGVTY2VuZUxvZyhcIlVybFN5bmNNYW5hZ2VyXCIsIFwiQ2xlYW4gdXBcIik7XG4gICAgaWYgKHRoaXMuX3N1YnMpIHtcbiAgICAgIHRoaXMuX3N1YnMudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX3N1YnMgPSB2b2lkIDA7XG4gICAgICB3cml0ZVNjZW5lTG9nKFxuICAgICAgICBcIlVybFN5bmNNYW5hZ2VyXCIsXG4gICAgICAgIFwiUm9vdCBkZWFjdGl2ZWQsIHVuc3ViIHRvIHN0YXRlXCIsXG4gICAgICAgIFwic2FtZSBrZXlcIixcbiAgICAgICAgdGhpcy5fc2NlbmVSb290LnN0YXRlLmtleSA9PT0gcm9vdC5zdGF0ZS5rZXlcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX3NjZW5lUm9vdCA9IHZvaWQgMDtcbiAgICB0aGlzLl9sYXN0TG9jYXRpb24gPSB2b2lkIDA7XG4gIH1cbiAgaGFuZGxlTmV3TG9jYXRpb24obG9jYXRpb24pIHtcbiAgICBpZiAoIXRoaXMuX3NjZW5lUm9vdCB8fCB0aGlzLl9sYXN0TG9jYXRpb24gPT09IGxvY2F0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdyaXRlU2NlbmVMb2coXCJVcmxTeW5jTWFuYWdlclwiLCBcImhhbmRsZU5ld0xvY2F0aW9uXCIpO1xuICAgIHRoaXMuX2xhc3RMb2NhdGlvbiA9IGxvY2F0aW9uO1xuICAgIHN5bmNTdGF0ZUZyb21VcmwodGhpcy5fc2NlbmVSb290LCB0aGlzLl9wYXJhbXNDYWNoZS5nZXRQYXJhbXMoKSwgdGhpcy5fdXJsS2V5TWFwcGVyKTtcbiAgfVxuICBoYW5kbGVOZXdPYmplY3Qoc2NlbmVPYmopIHtcbiAgICBpZiAoIXRoaXMuX3NjZW5lUm9vdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzeW5jU3RhdGVGcm9tVXJsKHNjZW5lT2JqLCB0aGlzLl9wYXJhbXNDYWNoZS5nZXRQYXJhbXMoKSwgdGhpcy5fdXJsS2V5TWFwcGVyKTtcbiAgfVxuICBoYW5kbGVTY2VuZU9iamVjdFN0YXRlQ2hhbmdlZChjaGFuZ2VkT2JqZWN0KSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBpZiAoIWNoYW5nZWRPYmplY3QudXJsU3luYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdVcmxTdGF0ZSA9IGNoYW5nZWRPYmplY3QudXJsU3luYy5nZXRVcmxTdGF0ZSgpO1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHRoaXMuX2xvY2F0aW9uU2VydmljZS5nZXRTZWFyY2goKTtcbiAgICBjb25zdCBtYXBwZWRVcGRhdGVkID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCBuZXdVcmxWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobmV3VXJsU3RhdGUpKSB7XG4gICAgICBjb25zdCB1bmlxdWVLZXkgPSB0aGlzLl91cmxLZXlNYXBwZXIuZ2V0VW5pcXVlS2V5KGtleSwgY2hhbmdlZE9iamVjdCk7XG4gICAgICBjb25zdCBjdXJyZW50VXJsVmFsdWUgPSBzZWFyY2hQYXJhbXMuZ2V0QWxsKHVuaXF1ZUtleSk7XG4gICAgICBpZiAoIWlzVXJsVmFsdWVFcXVhbChjdXJyZW50VXJsVmFsdWUsIG5ld1VybFZhbHVlKSkge1xuICAgICAgICBtYXBwZWRVcGRhdGVkW3VuaXF1ZUtleV0gPSBuZXdVcmxWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKG1hcHBlZFVwZGF0ZWQpLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNob3VsZENyZWF0ZUhpc3RvcnlFbnRyeSA9IChfYiA9IChfYSA9IGNoYW5nZWRPYmplY3QudXJsU3luYykuc2hvdWxkQ3JlYXRlSGlzdG9yeVN0ZXApID09IG51bGwgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBuZXdVcmxTdGF0ZSk7XG4gICAgICBjb25zdCBzaG91bGRSZXBsYWNlID0gc2hvdWxkQ3JlYXRlSGlzdG9yeUVudHJ5ICE9PSB0cnVlO1xuICAgICAgd3JpdGVTY2VuZUxvZyhcIlVybFN5bmNNYW5hZ2VyXCIsIFwib25TdGF0ZUNoYW5nZSB1cGRhdGluZyBVUkxcIik7XG4gICAgICB0aGlzLl9sb2NhdGlvblNlcnZpY2UucGFydGlhbChtYXBwZWRVcGRhdGVkLCBzaG91bGRSZXBsYWNlKTtcbiAgICAgIHRoaXMuX2xhc3RMb2NhdGlvbiA9IHRoaXMuX2xvY2F0aW9uU2VydmljZS5nZXRMb2NhdGlvbigpO1xuICAgIH1cbiAgfVxuICBnZXRVcmxTdGF0ZShyb290KSB7XG4gICAgcmV0dXJuIGdldFVybFN0YXRlKHJvb3QpO1xuICB9XG59XG5jbGFzcyBVcmxQYXJhbXNDYWNoZSB7XG4gIGNvbnN0cnVjdG9yKGxvY2F0aW9uU2VydmljZSkge1xuICAgIHRoaXMubG9jYXRpb25TZXJ2aWNlID0gbG9jYXRpb25TZXJ2aWNlO1xuICAgIF9fcHJpdmF0ZUFkZCh0aGlzLCBfY2FjaGUsIHZvaWQgMCk7XG4gICAgX19wcml2YXRlQWRkKHRoaXMsIF9sb2NhdGlvbiwgdm9pZCAwKTtcbiAgfVxuICBnZXRQYXJhbXMoKSB7XG4gICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLmxvY2F0aW9uU2VydmljZS5nZXRMb2NhdGlvbigpO1xuICAgIGlmIChfX3ByaXZhdGVHZXQodGhpcywgX2xvY2F0aW9uKSA9PT0gbG9jYXRpb24pIHtcbiAgICAgIHJldHVybiBfX3ByaXZhdGVHZXQodGhpcywgX2NhY2hlKTtcbiAgICB9XG4gICAgX19wcml2YXRlU2V0KHRoaXMsIF9sb2NhdGlvbiwgbG9jYXRpb24pO1xuICAgIF9fcHJpdmF0ZVNldCh0aGlzLCBfY2FjaGUsIG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKSk7XG4gICAgcmV0dXJuIF9fcHJpdmF0ZUdldCh0aGlzLCBfY2FjaGUpO1xuICB9XG59XG5fY2FjaGUgPSBuZXcgV2Vha01hcCgpO1xuX2xvY2F0aW9uID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIGlzVXJsU3RhdGVEaWZmZXJlbnQoc2NlbmVVcmxTdGF0ZSwgY3VycmVudFBhcmFtcykge1xuICBmb3IgKGxldCBrZXkgaW4gc2NlbmVVcmxTdGF0ZSkge1xuICAgIGlmICghaXNVcmxWYWx1ZUVxdWFsKGN1cnJlbnRQYXJhbXMuZ2V0QWxsKGtleSksIHNjZW5lVXJsU3RhdGVba2V5XSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiB1c2VVcmxTeW5jTWFuYWdlcihvcHRpb25zLCBsb2NhdGlvblNlcnZpY2UpIHtcbiAgcmV0dXJuIHVzZU1lbW8oXG4gICAgKCkgPT4gbmV3IFVybFN5bmNNYW5hZ2VyKFxuICAgICAge1xuICAgICAgICB1cGRhdGVVcmxPbkluaXQ6IG9wdGlvbnMudXBkYXRlVXJsT25Jbml0LFxuICAgICAgICBjcmVhdGVCcm93c2VySGlzdG9yeVN0ZXBzOiBvcHRpb25zLmNyZWF0ZUJyb3dzZXJIaXN0b3J5U3RlcHNcbiAgICAgIH0sXG4gICAgICBsb2NhdGlvblNlcnZpY2VcbiAgICApLFxuICAgIFtvcHRpb25zLnVwZGF0ZVVybE9uSW5pdCwgb3B0aW9ucy5jcmVhdGVCcm93c2VySGlzdG9yeVN0ZXBzLCBsb2NhdGlvblNlcnZpY2VdXG4gICk7XG59XG5cbmV4cG9ydCB7IE5ld1NjZW5lT2JqZWN0QWRkZWRFdmVudCwgVXJsU3luY01hbmFnZXIsIHVzZVVybFN5bmNNYW5hZ2VyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVZYSnNVM2x1WTAxaGJtRm5aWEl1YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMM055WXk5elpYSjJhV05sY3k5VmNteFRlVzVqVFdGdVlXZGxjaTUwY3lKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5Qk1iMk5oZEdsdmJpQjlJR1p5YjIwZ0oyaHBjM1J2Y25rbk8xeHVYRzVwYlhCdmNuUWdleUJNYjJOaGRHbHZibE5sY25acFkyVXNJR3h2WTJGMGFXOXVVMlZ5ZG1salpTQmhjeUJzYjJOaGRHbHZibE5sY25acFkyVlNkVzUwYVcxbElIMGdabkp2YlNBblFHZHlZV1poYm1FdmNuVnVkR2x0WlNjN1hHNWNibWx0Y0c5eWRDQjdJRk5qWlc1bFQySnFaV04wVTNSaGRHVkRhR0Z1WjJWa1JYWmxiblFnZlNCbWNtOXRJQ2N1TGk5amIzSmxMMlYyWlc1MGN5YzdYRzVwYlhCdmNuUWdleUJUWTJWdVpVOWlhbVZqZEN3Z1UyTmxibVZQWW1wbFkzUlZjbXhXWVd4MVpYTXNJRk5qWlc1bFZYSnNVM2x1WTA5d2RHbHZibk1nZlNCbWNtOXRJQ2N1TGk5amIzSmxMM1I1Y0dWekp6dGNibWx0Y0c5eWRDQjdJSGR5YVhSbFUyTmxibVZNYjJjZ2ZTQm1jbTl0SUNjdUxpOTFkR2xzY3k5M2NtbDBaVk5qWlc1bFRHOW5KenRjYm1sdGNHOXlkQ0I3SUZOMVluTmpjbWx3ZEdsdmJpQjlJR1p5YjIwZ0ozSjRhbk1uTzF4dWFXMXdiM0owSUhzZ1ZXNXBjWFZsVlhKc1MyVjVUV0Z3Y0dWeUlIMGdabkp2YlNBbkxpOVZibWx4ZFdWVmNteExaWGxOWVhCd1pYSW5PMXh1YVcxd2IzSjBJSHNnWjJWMFZYSnNVM1JoZEdVc0lHbHpWWEpzVm1Gc2RXVkZjWFZoYkN3Z2MzbHVZMU4wWVhSbFJuSnZiVlZ5YkNCOUlHWnliMjBnSnk0dmRYUnBiSE1uTzF4dWFXMXdiM0owSUhzZ1FuVnpSWFpsYm5SWGFYUm9VR0Y1Ykc5aFpDQjlJR1p5YjIwZ0owQm5jbUZtWVc1aEwyUmhkR0VuTzF4dWFXMXdiM0owSUhzZ2RYTmxUV1Z0YnlCOUlHWnliMjBnSjNKbFlXTjBKenRjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCVmNteFRlVzVqVFdGdVlXZGxja3hwYTJVZ2UxeHVJQ0JwYm1sMFUzbHVZeWh5YjI5ME9pQlRZMlZ1WlU5aWFtVmpkQ2s2SUhadmFXUTdYRzRnSUdOc1pXRnVWWEFvY205dmREb2dVMk5sYm1WUFltcGxZM1FwT2lCMmIybGtPMXh1SUNCb1lXNWtiR1ZPWlhkTWIyTmhkR2x2Ymloc2IyTmhkR2x2YmpvZ1RHOWpZWFJwYjI0cE9pQjJiMmxrTzF4dUlDQm9ZVzVrYkdWT1pYZFBZbXBsWTNRb2MyTmxibVZQWW1vNklGTmpaVzVsVDJKcVpXTjBLVG9nZG05cFpEdGNibjFjYmx4dUx5b3FYRzRnS2lCT2IzUnBabmtnZEdobElIVnliQ0J6ZVc1aklHMWhibUZuWlhJZ2IyWWdZU0J1WlhjZ2IySnFaV04wSUhSb1lYUWdhR0Z6SUdKbFpXNGdZV1JrWldRZ2RHOGdkR2hsSUhOalpXNWxYRzRnS2lCMGFHRjBJRzVsWldSeklIUnZJR2x1YVhRZ2MzUmhkR1VnWm5KdmJTQlZVa3d1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCT1pYZFRZMlZ1WlU5aWFtVmpkRUZrWkdWa1JYWmxiblFnWlhoMFpXNWtjeUJDZFhORmRtVnVkRmRwZEdoUVlYbHNiMkZrUEZOalpXNWxUMkpxWldOMFBpQjdYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjbVZoWkc5dWJIa2dkSGx3WlNBOUlDZHVaWGN0YzJObGJtVXRiMkpxWldOMExXRmtaR1ZrSnp0Y2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGVnliRk41Ym1OTllXNWhaMlZ5SUdsdGNHeGxiV1Z1ZEhNZ1ZYSnNVM2x1WTAxaGJtRm5aWEpNYVd0bElIdGNiaUFnY0hKcGRtRjBaU0JmZFhKc1MyVjVUV0Z3Y0dWeUlEMGdibVYzSUZWdWFYRjFaVlZ5YkV0bGVVMWhjSEJsY2lncE8xeHVJQ0J3Y21sMllYUmxJRjl6WTJWdVpWSnZiM1EvT2lCVFkyVnVaVTlpYW1WamREdGNiaUFnY0hKcGRtRjBaU0JmYzNWaWN6b2dVM1ZpYzJOeWFYQjBhVzl1SUh3Z2RXNWtaV1pwYm1Wa08xeHVJQ0J3Y21sMllYUmxJRjlzWVhOMFRHOWpZWFJwYjI0NklFeHZZMkYwYVc5dUlId2dkVzVrWldacGJtVmtPMXh1SUNCd2NtbDJZWFJsSUY5c2IyTmhkR2x2YmxObGNuWnBZMlU2SUV4dlkyRjBhVzl1VTJWeWRtbGpaVHRjYmlBZ2NISnBkbUYwWlNCZmNHRnlZVzF6UTJGamFHVTZJRlZ5YkZCaGNtRnRjME5oWTJobE8xeHVJQ0J3Y21sMllYUmxJRjl2Y0hScGIyNXpPaUJUWTJWdVpWVnliRk41Ym1OUGNIUnBiMjV6TzF4dVhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWhmYjNCMGFXOXVjem9nVTJObGJtVlZjbXhUZVc1alQzQjBhVzl1Y3lBOUlIdDlMQ0JzYjJOaGRHbHZibE5sY25acFkyVTZJRXh2WTJGMGFXOXVVMlZ5ZG1salpTQTlJR3h2WTJGMGFXOXVVMlZ5ZG1salpWSjFiblJwYldVcElIdGNiaUFnSUNCMGFHbHpMbDl2Y0hScGIyNXpJRDBnWDI5d2RHbHZibk03WEc0Z0lDQWdkR2hwY3k1ZmJHOWpZWFJwYjI1VFpYSjJhV05sSUQwZ2JHOWpZWFJwYjI1VFpYSjJhV05sTzF4dUlDQWdJSFJvYVhNdVgzQmhjbUZ0YzBOaFkyaGxJRDBnYm1WM0lGVnliRkJoY21GdGMwTmhZMmhsS0d4dlkyRjBhVzl1VTJWeWRtbGpaU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZYQmtZWFJsY3lCMGFHVWdZM1Z5Y21WdWRDQnpZMlZ1WlNCemRHRjBaU0IwYnlCdFlYUmphQ0JWVWt3Z2MzUmhkR1V1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYVc1cGRGTjVibU1vY205dmREb2dVMk5sYm1WUFltcGxZM1FwSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVmYzNWaWN5a2dlMXh1SUNBZ0lDQWdkM0pwZEdWVFkyVnVaVXh2WnlnblZYSnNVM2x1WTAxaGJtRm5aWEluTENBblZXNXlaV2RwYzNSbGNpQndjbVYyYVc5MWN5QnpZMlZ1WlNCemRHRjBaU0J6ZFdKelkzSnBjSFJwYjI0bkxDQjBhR2x6TGw5elkyVnVaVkp2YjNRL0xuTjBZWFJsTG10bGVTazdYRzRnSUNBZ0lDQjBhR2x6TGw5emRXSnpMblZ1YzNWaWMyTnlhV0psS0NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZDNKcGRHVlRZMlZ1WlV4dlp5Z25WWEpzVTNsdVkwMWhibUZuWlhJbkxDQW5hVzVwZENjc0lISnZiM1F1YzNSaGRHVXVhMlY1S1R0Y2JseHVJQ0FnSUhSb2FYTXVYM05qWlc1bFVtOXZkQ0E5SUhKdmIzUTdYRzRnSUNBZ2RHaHBjeTVmYzNWaWN5QTlJRzVsZHlCVGRXSnpZM0pwY0hScGIyNG9LVHRjYmx4dUlDQWdJSFJvYVhNdVgzTjFZbk11WVdSa0tGeHVJQ0FnSUNBZ2NtOXZkQzV6ZFdKelkzSnBZbVZVYjBWMlpXNTBLRk5qWlc1bFQySnFaV04wVTNSaGRHVkRhR0Z1WjJWa1JYWmxiblFzSUNobGRuUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVvWVc1a2JHVlRZMlZ1WlU5aWFtVmpkRk4wWVhSbFEyaGhibWRsWkNobGRuUXVjR0Y1Ykc5aFpDNWphR0Z1WjJWa1QySnFaV04wS1R0Y2JpQWdJQ0FnSUgwcFhHNGdJQ0FnS1R0Y2JseHVJQ0FnSUhSb2FYTXVYM04xWW5NdVlXUmtLRnh1SUNBZ0lDQWdjbTl2ZEM1emRXSnpZM0pwWW1WVWIwVjJaVzUwS0U1bGQxTmpaVzVsVDJKcVpXTjBRV1JrWldSRmRtVnVkQ3dnS0dWMmRDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbWhoYm1Sc1pVNWxkMDlpYW1WamRDaGxkblF1Y0dGNWJHOWhaQ2s3WEc0Z0lDQWdJQ0I5S1Z4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0IwYUdsekxsOTFjbXhMWlhsTllYQndaWEl1WTJ4bFlYSW9LVHRjYmlBZ0lDQjBhR2x6TGw5c1lYTjBURzlqWVhScGIyNGdQU0IwYUdsekxsOXNiMk5oZEdsdmJsTmxjblpwWTJVdVoyVjBURzlqWVhScGIyNG9LVHRjYmx4dUlDQWdJQzh2SUZONWJtTWdZM1Z5Y21WdWRDQjFjbXdnZDJsMGFDQnpkR0YwWlZ4dUlDQWdJSFJvYVhNdWFHRnVaR3hsVG1WM1QySnFaV04wS0hSb2FYTXVYM05qWlc1bFVtOXZkQ2s3WEc1Y2JpQWdJQ0JwWmlBb2RHaHBjeTVmYjNCMGFXOXVjeTUxY0dSaGRHVlZjbXhQYmtsdWFYUXBJSHRjYmlBZ0lDQWdJQzh2SUVkbGRDQmpkWEp5Wlc1MElIVnliQ0J6ZEdGMFpTQmhibVFnZFhCa1lYUmxJSFZ5YkNCMGJ5QnRZWFJqYUZ4dUlDQWdJQ0FnWTI5dWMzUWdkWEpzVTNSaGRHVWdQU0JuWlhSVmNteFRkR0YwWlNoeWIyOTBLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tHbHpWWEpzVTNSaGRHVkVhV1ptWlhKbGJuUW9kWEpzVTNSaGRHVXNJSFJvYVhNdVgzQmhjbUZ0YzBOaFkyaGxMbWRsZEZCaGNtRnRjeWdwS1NrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TGw5c2IyTmhkR2x2YmxObGNuWnBZMlV1Y0dGeWRHbGhiQ2gxY214VGRHRjBaU3dnZEhKMVpTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHTnNaV0Z1VlhBb2NtOXZkRG9nVTJObGJtVlBZbXBsWTNRcElIdGNiaUFnSUNBdkx5QkpaMjV2Y21VZ2RHaHBjeUJwWmlCM1pTQm9ZWFpsSUdFZ2JtVjNJRzl5SUdScFptWmxjbVZ1ZENCeWIyOTBYRzRnSUNBZ2FXWWdLSFJvYVhNdVgzTmpaVzVsVW05dmRDQWhQVDBnY205dmRDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhkeWFYUmxVMk5sYm1WTWIyY29KMVZ5YkZONWJtTk5ZVzVoWjJWeUp5d2dKME5zWldGdUlIVndKeWs3WEc1Y2JpQWdJQ0JwWmlBb2RHaHBjeTVmYzNWaWN5a2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZmMzVmljeTUxYm5OMVluTmpjbWxpWlNncE8xeHVJQ0FnSUNBZ2RHaHBjeTVmYzNWaWN5QTlJSFZ1WkdWbWFXNWxaRHRjYmx4dUlDQWdJQ0FnZDNKcGRHVlRZMlZ1WlV4dlp5aGNiaUFnSUNBZ0lDQWdKMVZ5YkZONWJtTk5ZVzVoWjJWeUp5eGNiaUFnSUNBZ0lDQWdKMUp2YjNRZ1pHVmhZM1JwZG1Wa0xDQjFibk4xWWlCMGJ5QnpkR0YwWlNjc1hHNGdJQ0FnSUNBZ0lDZHpZVzFsSUd0bGVTY3NYRzRnSUNBZ0lDQWdJSFJvYVhNdVgzTmpaVzVsVW05dmRDNXpkR0YwWlM1clpYa2dQVDA5SUhKdmIzUXVjM1JoZEdVdWEyVjVYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIUm9hWE11WDNOalpXNWxVbTl2ZENBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCMGFHbHpMbDlzWVhOMFRHOWpZWFJwYjI0Z1BTQjFibVJsWm1sdVpXUTdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdhR0Z1Wkd4bFRtVjNURzlqWVhScGIyNG9iRzlqWVhScGIyNDZJRXh2WTJGMGFXOXVLU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbDl6WTJWdVpWSnZiM1FnZkh3Z2RHaHBjeTVmYkdGemRFeHZZMkYwYVc5dUlEMDlQU0JzYjJOaGRHbHZiaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIZHlhWFJsVTJObGJtVk1iMmNvSjFWeWJGTjVibU5OWVc1aFoyVnlKeXdnSjJoaGJtUnNaVTVsZDB4dlkyRjBhVzl1SnlrN1hHNWNiaUFnSUNCMGFHbHpMbDlzWVhOMFRHOWpZWFJwYjI0Z1BTQnNiMk5oZEdsdmJqdGNibHh1SUNBZ0lDOHZJRk41Ym1NZ2MyTmxibVVnYzNSaGRHVWdkSEpsWlNCbWNtOXRJSFZ5YkZ4dUlDQWdJSE41Ym1OVGRHRjBaVVp5YjIxVmNtd29kR2hwY3k1ZmMyTmxibVZTYjI5MElTd2dkR2hwY3k1ZmNHRnlZVzF6UTJGamFHVXVaMlYwVUdGeVlXMXpLQ2tzSUhSb2FYTXVYM1Z5YkV0bGVVMWhjSEJsY2lrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2FHRnVaR3hsVG1WM1QySnFaV04wS0hOalpXNWxUMkpxT2lCVFkyVnVaVTlpYW1WamRDa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NWZjMk5sYm1WU2IyOTBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2MzbHVZMU4wWVhSbFJuSnZiVlZ5YkNoelkyVnVaVTlpYWl3Z2RHaHBjeTVmY0dGeVlXMXpRMkZqYUdVdVoyVjBVR0Z5WVcxektDa3NJSFJvYVhNdVgzVnliRXRsZVUxaGNIQmxjaWs3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdoaGJtUnNaVk5qWlc1bFQySnFaV04wVTNSaGRHVkRhR0Z1WjJWa0tHTm9ZVzVuWldSUFltcGxZM1E2SUZOalpXNWxUMkpxWldOMEtTQjdYRzRnSUNBZ2FXWWdLQ0ZqYUdGdVoyVmtUMkpxWldOMExuVnliRk41Ym1NcElIdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnVaWGRWY214VGRHRjBaU0E5SUdOb1lXNW5aV1JQWW1wbFkzUXVkWEpzVTNsdVl5NW5aWFJWY214VGRHRjBaU2dwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjMlZoY21Ob1VHRnlZVzF6SUQwZ2RHaHBjeTVmYkc5allYUnBiMjVUWlhKMmFXTmxMbWRsZEZObFlYSmphQ2dwTzF4dUlDQWdJR052Ym5OMElHMWhjSEJsWkZWd1pHRjBaV1E2SUZOalpXNWxUMkpxWldOMFZYSnNWbUZzZFdWeklEMGdlMzA3WEc1Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUZ0clpYa3NJRzVsZDFWeWJGWmhiSFZsWFNCdlppQlBZbXBsWTNRdVpXNTBjbWxsY3lodVpYZFZjbXhUZEdGMFpTa3BJSHRjYmlBZ0lDQWdJR052Ym5OMElIVnVhWEYxWlV0bGVTQTlJSFJvYVhNdVgzVnliRXRsZVUxaGNIQmxjaTVuWlhSVmJtbHhkV1ZMWlhrb2EyVjVMQ0JqYUdGdVoyVmtUMkpxWldOMEtUdGNiaUFnSUNBZ0lHTnZibk4wSUdOMWNuSmxiblJWY214V1lXeDFaU0E5SUhObFlYSmphRkJoY21GdGN5NW5aWFJCYkd3b2RXNXBjWFZsUzJWNUtUdGNibHh1SUNBZ0lDQWdhV1lnS0NGcGMxVnliRlpoYkhWbFJYRjFZV3dvWTNWeWNtVnVkRlZ5YkZaaGJIVmxMQ0J1WlhkVmNteFdZV3gxWlNrcElIdGNiaUFnSUNBZ0lDQWdiV0Z3Y0dWa1ZYQmtZWFJsWkZ0MWJtbHhkV1ZMWlhsZElEMGdibVYzVlhKc1ZtRnNkV1U3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0U5aWFtVmpkQzVyWlhsektHMWhjSEJsWkZWd1pHRjBaV1FwTG14bGJtZDBhQ0ErSURBcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhOb2IzVnNaRU55WldGMFpVaHBjM1J2Y25sRmJuUnllU0E5SUdOb1lXNW5aV1JQWW1wbFkzUXVkWEpzVTNsdVl5NXphRzkxYkdSRGNtVmhkR1ZJYVhOMGIzSjVVM1JsY0Q4dUtHNWxkMVZ5YkZOMFlYUmxLVHRjYmlBZ0lDQWdJR052Ym5OMElITm9iM1ZzWkZKbGNHeGhZMlVnUFNCemFHOTFiR1JEY21WaGRHVklhWE4wYjNKNVJXNTBjbmtnSVQwOUlIUnlkV1U3WEc1Y2JpQWdJQ0FnSUhkeWFYUmxVMk5sYm1WTWIyY29KMVZ5YkZONWJtTk5ZVzVoWjJWeUp5d2dKMjl1VTNSaGRHVkRhR0Z1WjJVZ2RYQmtZWFJwYm1jZ1ZWSk1KeWs3WEc0Z0lDQWdJQ0IwYUdsekxsOXNiMk5oZEdsdmJsTmxjblpwWTJVdWNHRnlkR2xoYkNodFlYQndaV1JWY0dSaGRHVmtMQ0J6YUc5MWJHUlNaWEJzWVdObEtUdGNibHh1SUNBZ0lDQWdMeTh2SUUxaGNtc2dkR2hsSUd4dlkyRjBhVzl1SUdGc2NtVmhaSGtnYUdGdVpHeGxaRnh1SUNBZ0lDQWdkR2hwY3k1ZmJHRnpkRXh2WTJGMGFXOXVJRDBnZEdocGN5NWZiRzlqWVhScGIyNVRaWEoyYVdObExtZGxkRXh2WTJGMGFXOXVLQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZEZWeWJGTjBZWFJsS0hKdmIzUTZJRk5qWlc1bFQySnFaV04wS1RvZ1UyTmxibVZQWW1wbFkzUlZjbXhXWVd4MVpYTWdlMXh1SUNBZ0lISmxkSFZ5YmlCblpYUlZjbXhUZEdGMFpTaHliMjkwS1R0Y2JpQWdmVnh1ZlZ4dVhHNWpiR0Z6Y3lCVmNteFFZWEpoYlhORFlXTm9aU0I3WEc0Z0lDTmpZV05vWlRvZ1ZWSk1VMlZoY21Ob1VHRnlZVzF6SUh3Z2RXNWtaV1pwYm1Wa08xeHVJQ0FqYkc5allYUnBiMjQ2SUV4dlkyRjBhVzl1SUh3Z2RXNWtaV1pwYm1Wa08xeHVYRzRnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2lod2NtbDJZWFJsSUd4dlkyRjBhVzl1VTJWeWRtbGpaVG9nVEc5allYUnBiMjVUWlhKMmFXTmxLU0I3ZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFJRWVhKaGJYTW9LVG9nVlZKTVUyVmhjbU5vVUdGeVlXMXpJSHRjYmlBZ0lDQmpiMjV6ZENCc2IyTmhkR2x2YmlBOUlIUm9hWE11Ykc5allYUnBiMjVUWlhKMmFXTmxMbWRsZEV4dlkyRjBhVzl1S0NrN1hHNWNiaUFnSUNCcFppQW9kR2hwY3k0amJHOWpZWFJwYjI0Z1BUMDlJR3h2WTJGMGFXOXVLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k0alkyRmphR1VoTzF4dUlDQWdJSDFjYmx4dUlDQWdJSFJvYVhNdUkyeHZZMkYwYVc5dUlEMGdiRzlqWVhScGIyNDdYRzRnSUNBZ2RHaHBjeTRqWTJGamFHVWdQU0J1WlhjZ1ZWSk1VMlZoY21Ob1VHRnlZVzF6S0d4dlkyRjBhVzl1TG5ObFlYSmphQ2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k0alkyRmphR1U3WEc0Z0lIMWNibjFjYmx4dVpuVnVZM1JwYjI0Z2FYTlZjbXhUZEdGMFpVUnBabVpsY21WdWRDaHpZMlZ1WlZWeWJGTjBZWFJsT2lCVFkyVnVaVTlpYW1WamRGVnliRlpoYkhWbGN5d2dZM1Z5Y21WdWRGQmhjbUZ0Y3pvZ1ZWSk1VMlZoY21Ob1VHRnlZVzF6S1NCN1hHNGdJR1p2Y2lBb2JHVjBJR3RsZVNCcGJpQnpZMlZ1WlZWeWJGTjBZWFJsS1NCN1hHNGdJQ0FnYVdZZ0tDRnBjMVZ5YkZaaGJIVmxSWEYxWVd3b1kzVnljbVZ1ZEZCaGNtRnRjeTVuWlhSQmJHd29hMlY1S1N3Z2MyTmxibVZWY214VGRHRjBaVnRyWlhsZEtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY21WMGRYSnVJR1poYkhObE8xeHVmVnh1WEc0dktpcGNiaUFxSUVOeVpXRjBaWE1nWVNCdVpYY2diV1Z0YjJsNlpXUWdhVzV6ZEdGdVkyVWdiMllnZEdobElGVnliRk41Ym1OTllXNWhaMlZ5SUdKaGMyVmtJRzl1SUc5d2RHbHZibk5jYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlIVnpaVlZ5YkZONWJtTk5ZVzVoWjJWeUtHOXdkR2x2Ym5NNklGTmpaVzVsVlhKc1UzbHVZMDl3ZEdsdmJuTXNJR3h2WTJGMGFXOXVVMlZ5ZG1salpUb2dURzlqWVhScGIyNVRaWEoyYVdObEtUb2dWWEpzVTNsdVkwMWhibUZuWlhKTWFXdGxJSHRjYmlBZ2NtVjBkWEp1SUhWelpVMWxiVzhvWEc0Z0lDQWdLQ2tnUFQ1Y2JpQWdJQ0FnSUc1bGR5QlZjbXhUZVc1alRXRnVZV2RsY2loY2JpQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJSFZ3WkdGMFpWVnliRTl1U1c1cGREb2diM0IwYVc5dWN5NTFjR1JoZEdWVmNteFBia2x1YVhRc1hHNGdJQ0FnSUNBZ0lDQWdZM0psWVhSbFFuSnZkM05sY2tocGMzUnZjbmxUZEdWd2N6b2diM0IwYVc5dWN5NWpjbVZoZEdWQ2NtOTNjMlZ5U0dsemRHOXllVk4wWlhCekxGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0JzYjJOaGRHbHZibE5sY25acFkyVmNiaUFnSUNBZ0lDa3NYRzRnSUNBZ1cyOXdkR2x2Ym5NdWRYQmtZWFJsVlhKc1QyNUpibWwwTENCdmNIUnBiMjV6TG1OeVpXRjBaVUp5YjNkelpYSklhWE4wYjNKNVUzUmxjSE1zSUd4dlkyRjBhVzl1VTJWeWRtbGpaVjFjYmlBZ0tUdGNibjFjYmlKZExDSnVZVzFsY3lJNld5SnNiMk5oZEdsdmJsTmxjblpwWTJVaUxDSnNiMk5oZEdsdmJsTmxjblpwWTJWU2RXNTBhVzFsSWwwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdRVUZCUVN4SlFVRkJMRTFCUVVFc1JVRkJRU3hUUVVGQkxFTkJRVUU3UVVGM1FrOHNUVUZCVFN4cFEwRkJhVU1zYlVKQlFXbERMRU5CUVVFN1FVRkZMMFVzUTBGQlFUdEJRVVpoTEhkQ1FVRkJMRU5CUTFrc1NVRkJUeXhIUVVGQkxIZENRVUZCTEVOQlFVRTdRVUZIZWtJc1RVRkJUU3hqUVVFMlF5eERRVUZCTzBGQlFVRXNSVUZUYWtRc1YwRkJXU3hEUVVGQkxGRkJRVUVzUjBGQlowTXNSVUZCUXl4RlFVRkhRU3h2UWtGQmJVTkRMR1ZCUVhkQ0xFVkJRVUU3UVVGU2JFZ3NTVUZCVVN4SlFVRkJMRU5CUVVFc1lVRkJRU3hIUVVGblFpeEpRVUZKTEd0Q1FVRnRRaXhGUVVGQkxFTkJRVUU3UVVGVE4wTXNTVUZCUVN4SlFVRkJMRU5CUVVzc1VVRkJWeXhIUVVGQkxGRkJRVUVzUTBGQlFUdEJRVU5vUWl4SlFVRkJMRWxCUVVFc1EwRkJTeXhuUWtGQmJVSXNSMEZCUVVRc2FVSkJRVUVzUTBGQlFUdEJRVU40UWl4SlFVRkxMRWxCUVVFc1EwRkJRU3haUVVGQkxFZEJRV1VzU1VGQlNTeGpRVUZCTEVOQlFXVkJMR2xDUVVGbExFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEzaEVPMEZCUVVFc1JVRkxUeXhUUVVGVExFbEJRVzFDTEVWQlFVRTdRVUU1UTNKRExFbEJRVUVzU1VGQlFTeEZRVUZCTEVOQlFVRTdRVUVyUTBrc1NVRkJRU3hKUVVGSkxFdEJRVXNzUzBGQlR5eEZRVUZCTzBGQlEyUXNUVUZCUVN4aFFVRkJMRU5CUVdNc2EwSkJRV3RDTERoRFFVRm5SQ3hGUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVRXNRMEZCU3l4VlFVRk1MRXRCUVVFc1NVRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCYVVJc1RVRkJUU3hIUVVGSExFTkJRVUVzUTBGQlFUdEJRVU14Unl4TlFVRkJMRWxCUVVFc1EwRkJTeXhOUVVGTkxGZEJRVmtzUlVGQlFTeERRVUZCTzBGQlFVRXNTMEZEZWtJN1FVRkZRU3hKUVVGQkxHRkJRVUVzUTBGQll5eG5Ra0ZCYTBJc1JVRkJRU3hOUVVGQkxFVkJRVkVzU1VGQlN5eERRVUZCTEV0QlFVRXNRMEZCVFN4SFFVRkhMRU5CUVVFc1EwRkJRVHRCUVVWMFJDeEpRVUZCTEVsQlFVRXNRMEZCU3l4VlFVRmhMRWRCUVVFc1NVRkJRU3hEUVVGQk8wRkJRMnhDTEVsQlFVc3NTVUZCUVN4RFFVRkJMRXRCUVVFc1IwRkJVU3hKUVVGSkxGbEJRV0VzUlVGQlFTeERRVUZCTzBGQlJUbENMRWxCUVVFc1NVRkJRU3hEUVVGTExFdEJRVTBzUTBGQlFTeEhRVUZCTzBGQlFVRXNUVUZEVkN4SlFVRkxMRU5CUVVFc1owSkJRVUVzUTBGQmFVSXNORUpCUVRoQ0xFVkJRVUVzUTBGQlF5eEhRVUZSTEV0QlFVRTdRVUZETTBRc1VVRkJTeXhKUVVGQkxFTkJRVUVzTmtKQlFVRXNRMEZCT0VJc1IwRkJTU3hEUVVGQkxFOUJRVUVzUTBGQlVTeGhRVUZoTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUXpkRUxFTkJRVUU3UVVGQlFTeExRVU5JTEVOQlFVRTdRVUZGUVN4SlFVRkJMRWxCUVVFc1EwRkJTeXhMUVVGTkxFTkJRVUVzUjBGQlFUdEJRVUZCTEUxQlExUXNTVUZCU3l4RFFVRkJMR2RDUVVGQkxFTkJRV2xDTEhkQ1FVRXdRaXhGUVVGQkxFTkJRVU1zUjBGQlVTeExRVUZCTzBGQlEzWkVMRkZCUVVzc1NVRkJRU3hEUVVGQkxHVkJRVUVzUTBGQlowSXNTVUZCU1N4UFFVRlBMRU5CUVVFc1EwRkJRVHRCUVVGQkxFOUJRMnBETEVOQlFVRTdRVUZCUVN4TFFVTklMRU5CUVVFN1FVRkZRU3hKUVVGQkxFbEJRVUVzUTBGQlN5eGpRVUZqTEV0QlFVMHNSVUZCUVN4RFFVRkJPMEZCUTNwQ0xFbEJRVXNzU1VGQlFTeERRVUZCTEdGQlFVRXNSMEZCWjBJc1NVRkJTeXhEUVVGQkxHZENRVUZCTEVOQlFXbENMRmRCUVZrc1JVRkJRU3hEUVVGQk8wRkJSM1pFTEVsQlFVc3NTVUZCUVN4RFFVRkJMR1ZCUVVFc1EwRkJaMElzUzBGQlN5eFZRVUZWTEVOQlFVRXNRMEZCUVR0QlFVVndReXhKUVVGSkxFbEJRVUVzU1VGQlFTeERRVUZMTEZOQlFWTXNaVUZCYVVJc1JVRkJRVHRCUVVWcVF5eE5RVUZOTEUxQlFVRXNVVUZCUVN4SFFVRlhMRmxCUVZrc1NVRkJTU3hEUVVGQkxFTkJRVUU3UVVGRmFrTXNUVUZCUVN4SlFVRkpMRzlDUVVGdlFpeFJRVUZWTEVWQlFVRXNTVUZCUVN4RFFVRkxMRmxCUVdFc1EwRkJRU3hUUVVGQkxFVkJRVmNzUTBGQlJ5eEZRVUZCTzBGQlEyaEZMRkZCUVVzc1NVRkJRU3hEUVVGQkxHZENRVUZCTEVOQlFXbENMRTlCUVZFc1EwRkJRU3hSUVVGQkxFVkJRVlVzU1VGQlNTeERRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTTVRenRCUVVGQkxFdEJRMFk3UVVGQlFTeEhRVU5HTzBGQlFVRXNSVUZGVHl4UlFVRlJMRWxCUVcxQ0xFVkJRVUU3UVVGRmFFTXNTVUZCU1N4SlFVRkJMRWxCUVVFc1EwRkJTeXhsUVVGbExFbEJRVTBzUlVGQlFUdEJRVU0xUWl4TlFVRkJMRTlCUVVFN1FVRkJRU3hMUVVOR08wRkJSVUVzU1VGQlFTeGhRVUZCTEVOQlFXTXNhMEpCUVd0Q0xGVkJRVlVzUTBGQlFTeERRVUZCTzBGQlJURkRMRWxCUVVFc1NVRkJTU3hMUVVGTExFdEJRVThzUlVGQlFUdEJRVU5rTEUxQlFVRXNTVUZCUVN4RFFVRkxMRTFCUVUwc1YwRkJXU3hGUVVGQkxFTkJRVUU3UVVGRGRrSXNUVUZCUVN4SlFVRkJMRU5CUVVzc1MwRkJVU3hIUVVGQkxFdEJRVUVzUTBGQlFTeERRVUZCTzBGQlJXSXNUVUZCUVN4aFFVRkJPMEZCUVVFc1VVRkRSU3huUWtGQlFUdEJRVUZCTEZGQlEwRXNaME5CUVVFN1FVRkJRU3hSUVVOQkxGVkJRVUU3UVVGQlFTeFJRVU5CTEVsQlFVc3NRMEZCUVN4VlFVRkJMRU5CUVZjc1MwRkJUU3hEUVVGQkxFZEJRVUVzUzBGQlVTeExRVUZMTEV0QlFVMHNRMEZCUVN4SFFVRkJPMEZCUVVFc1QwRkRNME1zUTBGQlFUdEJRVUZCTEV0QlEwWTdRVUZGUVN4SlFVRkJMRWxCUVVFc1EwRkJTeXhWUVVGaExFZEJRVUVzUzBGQlFTeERRVUZCTEVOQlFVRTdRVUZEYkVJc1NVRkJRU3hKUVVGQkxFTkJRVXNzWVVGQlowSXNSMEZCUVN4TFFVRkJMRU5CUVVFc1EwRkJRVHRCUVVGQkxFZEJRM1pDTzBGQlFVRXNSVUZGVHl4clFrRkJhMElzVVVGQmIwSXNSVUZCUVR0QlFVTXpReXhKUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZCTEVOQlFVc3NWVUZCWXl4SlFVRkJMRWxCUVVFc1EwRkJTeXhyUWtGQmEwSXNVVUZCVlN4RlFVRkJPMEZCUTNaRUxFMUJRVUVzVDBGQlFUdEJRVUZCTEV0QlEwWTdRVUZGUVN4SlFVRkJMR0ZCUVVFc1EwRkJZeXhyUWtGQmEwSXNiVUpCUVcxQ0xFTkJRVUVzUTBGQlFUdEJRVVZ1UkN4SlFVRkJMRWxCUVVFc1EwRkJTeXhoUVVGblFpeEhRVUZCTEZGQlFVRXNRMEZCUVR0QlFVZHlRaXhKUVVGQkxHZENRVUZCTEVOQlFXbENMRXRCUVVzc1ZVRkJZU3hGUVVGQkxFbEJRVUVzUTBGQlN5eGhRVUZoTEZOQlFWVXNSVUZCUVN4RlFVRkhMRXRCUVVzc1lVRkJZU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU4wUmp0QlFVRkJMRVZCUlU4c1owSkJRV2RDTEZGQlFYVkNMRVZCUVVFN1FVRkROVU1zU1VGQlNTeEpRVUZCTEVOQlFVTXNTMEZCU3l4VlFVRlpMRVZCUVVFN1FVRkRjRUlzVFVGQlFTeFBRVUZCTzBGQlFVRXNTMEZEUmp0QlFVVkJMRWxCUVVFc1owSkJRVUVzUTBGQmFVSXNWVUZCVlN4SlFVRkxMRU5CUVVFc1dVRkJRU3hEUVVGaExGTkJRVlVzUlVGQlFTeEZRVUZITEV0QlFVc3NZVUZCWVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVNNVJUdEJRVUZCTEVWQlJWRXNPRUpCUVRoQ0xHRkJRVFJDTEVWQlFVRTdRVUZzU1hCRkxFbEJRVUVzU1VGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RFFVRkJPMEZCYlVsSkxFbEJRVWtzU1VGQlFTeERRVUZETEdOQlFXTXNUMEZCVXl4RlFVRkJPMEZCUXpGQ0xFMUJRVUVzVDBGQlFUdEJRVUZCTEV0QlEwWTdRVUZGUVN4SlFVRk5MRTFCUVVFc1YwRkJRU3hIUVVGakxHRkJRV01zUTBGQlFTeFBRVUZCTEVOQlFWRXNWMEZCV1N4RlFVRkJMRU5CUVVFN1FVRkZkRVFzU1VGQlRTeE5RVUZCTEZsQlFVRXNSMEZCWlN4SlFVRkxMRU5CUVVFc1owSkJRVUVzUTBGQmFVSXNVMEZCVlN4RlFVRkJMRU5CUVVFN1FVRkRja1FzU1VGQlFTeE5RVUZOTEdkQ1FVRnpReXhGUVVGRExFTkJRVUU3UVVGRk4wTXNTVUZCUVN4TFFVRkJMRTFCUVZjc1EwRkJReXhIUVVGTExFVkJRVUVzVjBGQlZ5eExRVUZMTEUxQlFVOHNRMEZCUVN4UFFVRkJMRU5CUVZFc1YwRkJWeXhEUVVGSExFVkJRVUU3UVVGRE5VUXNUVUZCUVN4TlFVRk5MRk5CUVZrc1IwRkJRU3hKUVVGQkxFTkJRVXNzWVVGQll5eERRVUZCTEZsQlFVRXNRMEZCWVN4TFFVRkxMR0ZCUVdFc1EwRkJRU3hEUVVGQk8wRkJRM0JGTEUxQlFVMHNUVUZCUVN4bFFVRkJMRWRCUVd0Q0xGbEJRV0VzUTBGQlFTeE5RVUZCTEVOQlFVOHNVMEZCVXl4RFFVRkJMRU5CUVVFN1FVRkZja1FzVFVGQlFTeEpRVUZKTEVOQlFVTXNaVUZCUVN4RFFVRm5RaXhsUVVGcFFpeEZRVUZCTEZkQlFWY3NRMEZCUnl4RlFVRkJPMEZCUTJ4RUxGRkJRVUVzWVVGQlFTeERRVUZqTEZOQlFXRXNRMEZCUVN4SFFVRkJMRmRCUVVFc1EwRkJRVHRCUVVGQkxFOUJRemRDTzBGQlFVRXNTMEZEUmp0QlFVVkJMRWxCUVVFc1NVRkJTU3hOUVVGUExFTkJRVUVzU1VGQlFTeERRVUZMTEdGQlFXRXNRMEZCUVN4RFFVRkZMRk5CUVZNc1EwRkJSeXhGUVVGQk8wRkJRM3BETEUxQlFVRXNUVUZCVFN4M1FrRkJNa0lzUjBGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hoUVVGQkxFTkJRV01zVDBGQlVTeEZRVUZCTEhWQ1FVRkJMRXRCUVhSQ0xFbEJRV2RFTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxFbEJRVUVzUTBGQlFTeEZRVUZCTEVWQlFVRXNWMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkRha1lzVFVGQlFTeE5RVUZOTEdkQ1FVRm5RaXgzUWtGQk5rSXNTMEZCUVN4SlFVRkJMRU5CUVVFN1FVRkZia1FzVFVGQlFTeGhRVUZCTEVOQlFXTXNhMEpCUVd0Q0xEUkNRVUUwUWl4RFFVRkJMRU5CUVVFN1FVRkROVVFzVFVGQlN5eEpRVUZCTEVOQlFVRXNaMEpCUVVFc1EwRkJhVUlzVDBGQlVTeERRVUZCTEdGQlFVRXNSVUZCWlN4aFFVRmhMRU5CUVVFc1EwRkJRVHRCUVVjeFJDeE5RVUZMTEVsQlFVRXNRMEZCUVN4aFFVRkJMRWRCUVdkQ0xFbEJRVXNzUTBGQlFTeG5Ra0ZCUVN4RFFVRnBRaXhYUVVGWkxFVkJRVUVzUTBGQlFUdEJRVUZCTEV0QlEzcEVPMEZCUVVFc1IwRkRSanRCUVVGQkxFVkJSVThzV1VGQldTeEpRVUY1UXl4RlFVRkJPMEZCUXpGRUxFbEJRVUVzVDBGQlR5eFpRVUZaTEVsQlFVa3NRMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRla0k3UVVGRFJpeERRVUZCTzBGQlJVRXNUVUZCVFN4alFVRmxMRU5CUVVFN1FVRkJRU3hGUVVsYUxGbEJRVzlDTEdWQlFXdERMRVZCUVVFN1FVRkJiRU1zU1VGQlFTeEpRVUZCTEVOQlFVRXNaVUZCUVN4SFFVRkJMR1ZCUVVFc1EwRkJRVHRCUVVnelFpeEpRVUZCTEZsQlFVRXNRMEZCUVN4SlFVRkJMRVZCUVVFc1RVRkJRU3hGUVVGQkxFdEJRVUVzUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZEUVN4SlFVRkJMRmxCUVVFc1EwRkJRU3hKUVVGQkxFVkJRVUVzVTBGQlFTeEZRVUZCTEV0QlFVRXNRMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVVNFJEdEJRVUZCTEVWQlJYWkVMRk5CUVRaQ0xFZEJRVUU3UVVGRGJFTXNTVUZCVFN4TlFVRkJMRkZCUVVFc1IwRkJWeXhKUVVGTExFTkJRVUVzWlVGQlFTeERRVUZuUWl4WFFVRlpMRVZCUVVFc1EwRkJRVHRCUVVWc1JDeEpRVUZKTEVsQlFVRXNXVUZCUVN4RFFVRkJMRWxCUVVFc1JVRkJTeXhsUVVGakxGRkJRVlVzUlVGQlFUdEJRVU12UWl4TlFVRkJMRTlCUVU4c1dVRkJTeXhEUVVGQkxFbEJRVUVzUlVGQlFTeE5RVUZCTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTJRN1FVRkZRU3hKUVVGQkxGbEJRVUVzUTBGQlFTeEpRVUZCTEVWQlFVc3NVMEZCV1N4RlFVRkJMRkZCUVVFc1EwRkJRU3hEUVVGQk8wRkJRMnBDTEVsQlFVRXNXVUZCUVN4RFFVRkJMRWxCUVVFc1JVRkJTeXhOUVVGVExFVkJRVUVzU1VGQlNTeGxRVUZuUWl4RFFVRkJMRkZCUVVFc1EwRkJVeXhOUVVGTkxFTkJRVUVzUTBGQlFTeERRVUZCTzBGQlJXcEVMRWxCUVVFc1QwRkJUeXhaUVVGTExFTkJRVUVzU1VGQlFTeEZRVUZCTEUxQlFVRXNRMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRaRHRCUVVOR0xFTkJRVUU3UVVGcVFrVXNUVUZCUVN4SFFVRkJMRWxCUVVFc1QwRkJRU3hGUVVGQkxFTkJRVUU3UVVGRFFTeFRRVUZCTEVkQlFVRXNTVUZCUVN4UFFVRkJMRVZCUVVFc1EwRkJRVHRCUVd0Q1JpeFRRVUZUTEcxQ1FVRkJMRU5CUVc5Q0xHVkJRWEZETEdGQlFXZERMRVZCUVVFN1FVRkRhRWNzUlVGQlFTeExRVUZCTEVsQlFWTXNUMEZCVHl4aFFVRmxMRVZCUVVFN1FVRkROMElzU1VGQlNTeEpRVUZCTEVOQlFVTXNaMEpCUVdkQ0xHRkJRV01zUTBGQlFTeE5RVUZCTEVOQlFVOHNSMEZCUnl4RFFVRkhMRVZCUVVFc1lVRkJRU3hEUVVGakxFbEJRVWtzUTBGQlJ5eEZRVUZCTzBGQlEyNUZMRTFCUVU4c1QwRkJRU3hKUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5VTzBGQlFVRXNSMEZEUmp0QlFVVkJMRVZCUVU4c1QwRkJRU3hMUVVGQkxFTkJRVUU3UVVGRFZDeERRVUZCTzBGQlMyZENMRk5CUVVFc2FVSkJRVUVzUTBGQmEwSXNVMEZCT0VJc1pVRkJjMFFzUlVGQlFUdEJRVU53U0N4RlFVRlBMRTlCUVVFc1QwRkJRVHRCUVVGQkxFbEJRMHdzVFVGRFJTeEpRVUZKTEdOQlFVRTdRVUZCUVN4TlFVTkdPMEZCUVVFc1VVRkRSU3hwUWtGQmFVSXNUMEZCVVN4RFFVRkJMR1ZCUVVFN1FVRkJRU3hSUVVONlFpd3lRa0ZCTWtJc1QwRkJVU3hEUVVGQkxIbENRVUZCTzBGQlFVRXNUMEZEY2tNN1FVRkJRU3hOUVVOQkxHVkJRVUU3UVVGQlFTeExRVU5HTzBGQlFVRXNTVUZEUml4RFFVRkRMRTlCUVVFc1EwRkJVU3hsUVVGcFFpeEZRVUZCTEU5QlFVRXNRMEZCVVN3eVFrRkJNa0lzWlVGQlpTeERRVUZCTzBGQlFVRXNSMEZET1VVc1EwRkJRVHRCUVVOR096czdPeUo5XG4iXSwibmFtZXMiOlsibG9jYXRpb25TZXJ2aWNlIiwibG9jYXRpb25TZXJ2aWNlUnVudGltZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQSxNQUFBLEVBQUEsU0FBQSxDQUFBO0FBd0JPLE1BQU0saUNBQWlDLG1CQUFpQyxDQUFBO0FBRS9FLENBQUE7QUFGYSx3QkFBQSxDQUNZLElBQU8sR0FBQSx3QkFBQSxDQUFBO0FBR3pCLE1BQU0sY0FBNkMsQ0FBQTtBQVNqRCxFQUFBLFdBQUEsQ0FBWSxRQUFnQyxHQUFBLEVBQUlBLEVBQUFBLGlCQUFBQSxHQUFtQ0MsZUFBd0IsRUFBQTtBQVIxRyxJQUFBLElBQUEsQ0FBQSxhQUFBLEdBQWdCLElBQUksa0JBQW1CLEVBQUEsQ0FBQTtBQVM3QyxJQUFBLElBQUEsQ0FBSyxRQUFXLEdBQUEsUUFBQSxDQUFBO0FBQ2hCLElBQUEsSUFBQSxDQUFLLGdCQUFtQkQsR0FB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
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
import { useLocation } from 'react-router-dom';
|
|
3
|
-
import { writeSceneLog } from '../utils/writeSceneLog.js';
|
|
4
|
-
import { useUrlSyncManager } from './UrlSyncManager.js';
|
|
5
|
-
import { useLocationServiceSafe } from '../utils/utils.js';
|
|
6
|
-
|
|
7
|
-
function useUrlSync(sceneRoot, options = {}) {
|
|
8
|
-
const location = useLocation();
|
|
9
|
-
const locationService = useLocationServiceSafe();
|
|
10
|
-
const [isInitialized, setIsInitialized] = useState(false);
|
|
11
|
-
const urlSyncManager = useUrlSyncManager(options, locationService);
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
urlSyncManager.initSync(sceneRoot);
|
|
14
|
-
setIsInitialized(true);
|
|
15
|
-
return () => urlSyncManager.cleanUp(sceneRoot);
|
|
16
|
-
}, [sceneRoot, urlSyncManager]);
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
const latestLocation = locationService.getLocation();
|
|
19
|
-
const locationToHandle = latestLocation !== location ? latestLocation : location;
|
|
20
|
-
if (latestLocation !== location) {
|
|
21
|
-
writeSceneLog("useUrlSync", "latestLocation different from location");
|
|
22
|
-
}
|
|
23
|
-
urlSyncManager.handleNewLocation(locationToHandle);
|
|
24
|
-
}, [sceneRoot, urlSyncManager, location, locationService]);
|
|
25
|
-
return isInitialized;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export { useUrlSync };
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVXJsU3luYy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc2VydmljZXMvdXNlVXJsU3luYy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IHdyaXRlU2NlbmVMb2cgfSBmcm9tICcuLi91dGlscy93cml0ZVNjZW5lTG9nLmpzJztcbmltcG9ydCB7IHVzZVVybFN5bmNNYW5hZ2VyIH0gZnJvbSAnLi9VcmxTeW5jTWFuYWdlci5qcyc7XG5pbXBvcnQgeyB1c2VMb2NhdGlvblNlcnZpY2VTYWZlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMuanMnO1xuXG5mdW5jdGlvbiB1c2VVcmxTeW5jKHNjZW5lUm9vdCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgY29uc3QgbG9jYXRpb25TZXJ2aWNlID0gdXNlTG9jYXRpb25TZXJ2aWNlU2FmZSgpO1xuICBjb25zdCBbaXNJbml0aWFsaXplZCwgc2V0SXNJbml0aWFsaXplZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHVybFN5bmNNYW5hZ2VyID0gdXNlVXJsU3luY01hbmFnZXIob3B0aW9ucywgbG9jYXRpb25TZXJ2aWNlKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB1cmxTeW5jTWFuYWdlci5pbml0U3luYyhzY2VuZVJvb3QpO1xuICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSk7XG4gICAgcmV0dXJuICgpID0+IHVybFN5bmNNYW5hZ2VyLmNsZWFuVXAoc2NlbmVSb290KTtcbiAgfSwgW3NjZW5lUm9vdCwgdXJsU3luY01hbmFnZXJdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBsYXRlc3RMb2NhdGlvbiA9IGxvY2F0aW9uU2VydmljZS5nZXRMb2NhdGlvbigpO1xuICAgIGNvbnN0IGxvY2F0aW9uVG9IYW5kbGUgPSBsYXRlc3RMb2NhdGlvbiAhPT0gbG9jYXRpb24gPyBsYXRlc3RMb2NhdGlvbiA6IGxvY2F0aW9uO1xuICAgIGlmIChsYXRlc3RMb2NhdGlvbiAhPT0gbG9jYXRpb24pIHtcbiAgICAgIHdyaXRlU2NlbmVMb2coXCJ1c2VVcmxTeW5jXCIsIFwibGF0ZXN0TG9jYXRpb24gZGlmZmVyZW50IGZyb20gbG9jYXRpb25cIik7XG4gICAgfVxuICAgIHVybFN5bmNNYW5hZ2VyLmhhbmRsZU5ld0xvY2F0aW9uKGxvY2F0aW9uVG9IYW5kbGUpO1xuICB9LCBbc2NlbmVSb290LCB1cmxTeW5jTWFuYWdlciwgbG9jYXRpb24sIGxvY2F0aW9uU2VydmljZV0pO1xuICByZXR1cm4gaXNJbml0aWFsaXplZDtcbn1cblxuZXhwb3J0IHsgdXNlVXJsU3luYyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWE5sVlhKc1UzbHVZeTVxY3lJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDNObGNuWnBZMlZ6TDNWelpWVnliRk41Ym1NdWRITWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnVTJObGJtVlBZbXBsWTNRc0lGTmpaVzVsVlhKc1UzbHVZMDl3ZEdsdmJuTWdmU0JtY205dElDY3VMaTlqYjNKbEwzUjVjR1Z6Snp0Y2JtbHRjRzl5ZENCN0lIVnpaVVZtWm1WamRDd2dkWE5sVTNSaGRHVWdmU0JtY205dElDZHlaV0ZqZENjN1hHNXBiWEJ2Y25RZ2V5QjFjMlZNYjJOaGRHbHZiaUI5SUdaeWIyMGdKM0psWVdOMExYSnZkWFJsY2kxa2IyMG5PMXh1YVcxd2IzSjBJSHNnZDNKcGRHVlRZMlZ1WlV4dlp5QjlJR1p5YjIwZ0p5NHVMM1YwYVd4ekwzZHlhWFJsVTJObGJtVk1iMmNuTzF4dWFXMXdiM0owSUhzZ2RYTmxWWEpzVTNsdVkwMWhibUZuWlhJZ2ZTQm1jbTl0SUNjdUwxVnliRk41Ym1OTllXNWhaMlZ5Snp0Y2JtbHRjRzl5ZENCN0lIVnpaVXh2WTJGMGFXOXVVMlZ5ZG1salpWTmhabVVnZlNCbWNtOXRJQ2N1TGk5MWRHbHNjeTkxZEdsc2N5YzdYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIxYzJWVmNteFRlVzVqS0hOalpXNWxVbTl2ZERvZ1UyTmxibVZQWW1wbFkzUXNJRzl3ZEdsdmJuTTZJRk5qWlc1bFZYSnNVM2x1WTA5d2RHbHZibk1nUFNCN2ZTazZJR0p2YjJ4bFlXNGdlMXh1SUNCamIyNXpkQ0JzYjJOaGRHbHZiaUE5SUhWelpVeHZZMkYwYVc5dUtDazdYRzRnSUdOdmJuTjBJR3h2WTJGMGFXOXVVMlZ5ZG1salpTQTlJSFZ6WlV4dlkyRjBhVzl1VTJWeWRtbGpaVk5oWm1Vb0tUdGNiaUFnWTI5dWMzUWdXMmx6U1c1cGRHbGhiR2w2WldRc0lITmxkRWx6U1c1cGRHbGhiR2w2WldSZElEMGdkWE5sVTNSaGRHVW9abUZzYzJVcE8xeHVJQ0JqYjI1emRDQjFjbXhUZVc1alRXRnVZV2RsY2lBOUlIVnpaVlZ5YkZONWJtTk5ZVzVoWjJWeUtHOXdkR2x2Ym5Nc0lHeHZZMkYwYVc5dVUyVnlkbWxqWlNrN1hHNWNiaUFnZFhObFJXWm1aV04wS0NncElEMCtJSHRjYmlBZ0lDQjFjbXhUZVc1alRXRnVZV2RsY2k1cGJtbDBVM2x1WXloelkyVnVaVkp2YjNRcE8xeHVJQ0FnSUhObGRFbHpTVzVwZEdsaGJHbDZaV1FvZEhKMVpTazdYRzRnSUNBZ2NtVjBkWEp1SUNncElEMCtJSFZ5YkZONWJtTk5ZVzVoWjJWeUxtTnNaV0Z1VlhBb2MyTmxibVZTYjI5MEtUdGNiaUFnZlN3Z1czTmpaVzVsVW05dmRDd2dkWEpzVTNsdVkwMWhibUZuWlhKZEtUdGNibHh1SUNCMWMyVkZabVpsWTNRb0tDa2dQVDRnZTF4dUlDQWdJQzh2SUZWelpTQnNZWFJsYzNRZ2JHOWpZWFJwYjI0c0lHRnpJR0o1SUhSb1pTQjBhVzFsSUhSb2FYTWdaV1ptWldOMElISjFibk1zSUhSb1pTQnNiMk5oZEdsdmJpQnRhV2RvZENCb1lYWmxJR05vWVc1blpXUWdZV2RoYVc1Y2JpQWdJQ0JqYjI1emRDQnNZWFJsYzNSTWIyTmhkR2x2YmlBOUlHeHZZMkYwYVc5dVUyVnlkbWxqWlM1blpYUk1iMk5oZEdsdmJpZ3BPMXh1SUNBZ0lHTnZibk4wSUd4dlkyRjBhVzl1Vkc5SVlXNWtiR1VnUFNCc1lYUmxjM1JNYjJOaGRHbHZiaUFoUFQwZ2JHOWpZWFJwYjI0Z1B5QnNZWFJsYzNSTWIyTmhkR2x2YmlBNklHeHZZMkYwYVc5dU8xeHVYRzRnSUNBZ2FXWWdLR3hoZEdWemRFeHZZMkYwYVc5dUlDRTlQU0JzYjJOaGRHbHZiaWtnZTF4dUlDQWdJQ0FnZDNKcGRHVlRZMlZ1WlV4dlp5Z25kWE5sVlhKc1UzbHVZeWNzSUNkc1lYUmxjM1JNYjJOaGRHbHZiaUJrYVdabVpYSmxiblFnWm5KdmJTQnNiMk5oZEdsdmJpY3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIVnliRk41Ym1OTllXNWhaMlZ5TG1oaGJtUnNaVTVsZDB4dlkyRjBhVzl1S0d4dlkyRjBhVzl1Vkc5SVlXNWtiR1VwTzF4dUlDQjlMQ0JiYzJObGJtVlNiMjkwTENCMWNteFRlVzVqVFdGdVlXZGxjaXdnYkc5allYUnBiMjRzSUd4dlkyRjBhVzl1VTJWeWRtbGpaVjBwTzF4dVhHNGdJSEpsZEhWeWJpQnBjMGx1YVhScFlXeHBlbVZrTzF4dWZWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRlZ5YkZONWJtTkRiMjUwWlhoMFVISnZkbWxrWlhKUWNtOXdjeUI3WEc0Z0lITmpaVzVsT2lCVFkyVnVaVTlpYW1WamREdGNiaUFnWTJocGJHUnlaVzQ2SUZKbFlXTjBMbEpsWVdOMFRtOWtaVHRjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3UVVGUFR5eFRRVUZUTEZWQlFWY3NRMEZCUVN4VFFVRkJMRVZCUVhkQ0xFOUJRU3RDTEVkQlFVRXNSVUZCWVN4RlFVRkJPMEZCUXpkR0xFVkJRVUVzVFVGQlRTeFhRVUZYTEZkQlFWa3NSVUZCUVN4RFFVRkJPMEZCUXpkQ0xFVkJRVUVzVFVGQlRTeHJRa0ZCYTBJc2MwSkJRWFZDTEVWQlFVRXNRMEZCUVR0QlFVTXZReXhGUVVGQkxFMUJRVTBzUTBGQlF5eGhRVUZCTEVWQlFXVXNaMEpCUVdkQ0xFTkJRVUVzUjBGQlNTeFRRVUZUTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUTNoRUxFVkJRVTBzVFVGQlFTeGpRVUZCTEVkQlFXbENMR2xDUVVGclFpeERRVUZCTEU5QlFVRXNSVUZCVXl4bFFVRmxMRU5CUVVFc1EwRkJRVHRCUVVWcVJTeEZRVUZCTEZOQlFVRXNRMEZCVlN4TlFVRk5PMEZCUTJRc1NVRkJRU3hqUVVGQkxFTkJRV1VzVTBGQlV5eFRRVUZUTEVOQlFVRXNRMEZCUVR0QlFVTnFReXhKUVVGQkxHZENRVUZCTEVOQlFXbENMRWxCUVVrc1EwRkJRU3hEUVVGQk8wRkJRM0pDTEVsQlFVOHNUMEZCUVN4TlFVRk5MR05CUVdVc1EwRkJRU3hQUVVGQkxFTkJRVkVzVTBGQlV5eERRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTTFReXhGUVVGQkxFTkJRVU1zVTBGQlZ5eEZRVUZCTEdOQlFXTXNRMEZCUXl4RFFVRkJMRU5CUVVFN1FVRkZPVUlzUlVGQlFTeFRRVUZCTEVOQlFWVXNUVUZCVFR0QlFVVmtMRWxCUVUwc1RVRkJRU3hqUVVGQkxFZEJRV2xDTEdkQ1FVRm5RaXhYUVVGWkxFVkJRVUVzUTBGQlFUdEJRVU51UkN4SlFVRk5MRTFCUVVFc1owSkJRVUVzUjBGQmJVSXNZMEZCYlVJc1MwRkJRU3hSUVVGQkxFZEJRVmNzWTBGQmFVSXNSMEZCUVN4UlFVRkJMRU5CUVVFN1FVRkZlRVVzU1VGQlFTeEpRVUZKTEcxQ1FVRnRRaXhSUVVGVkxFVkJRVUU3UVVGREwwSXNUVUZCUVN4aFFVRkJMRU5CUVdNc1kwRkJZeXgzUTBGQmQwTXNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRkRVU3UVVGRlFTeEpRVUZCTEdOQlFVRXNRMEZCWlN4clFrRkJhMElzWjBKQlFXZENMRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRMmhFTEVOQlFVTXNVMEZCUVN4RlFVRlhMR05CUVdkQ0xFVkJRVUVzVVVGQlFTeEZRVUZWTEdWQlFXVXNRMEZCUXl4RFFVRkJMRU5CUVVFN1FVRkZla1FzUlVGQlR5eFBRVUZCTEdGQlFVRXNRMEZCUVR0QlFVTlVPenM3T3lKOVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQU9PLFNBQVMsVUFBVyxDQUFBLFNBQUEsRUFBd0IsT0FBK0IsR0FBQSxFQUFhLEVBQUE7QUFDN0YsRUFBQSxNQUFNLFdBQVcsV0FBWSxFQUFBLENBQUE7QUFDN0IsRUFBQSxNQUFNLGtCQUFrQixzQkFBdUIsRUFBQSxDQUFBO0FBQy9DLEVBQUEsTUFBTSxDQUFDLGFBQUEsRUFBZSxnQkFBZ0IsQ0FBQSxHQUFJLFNBQVMsS0FBSyxDQUFBLENBQUE7QUFDbEQsRUFBQSxNQUFBLGNBQUEsR0FBaUIsaUJBQWtCLENBQUEsT0FBQSxFQUFTLGVBQWUsQ0FBQSxDQUFBO0FBRWpFLEVBQUEsU0FBQSxDQUFVLE1BQU07QUFDZCxJQUFBLGNBQUEsQ0FBZSxTQUFTLFNBQVMsQ0FBQSxDQUFBO0FBQ2pDLElBQUEsZ0JBQUEsQ0FBaUIsSUFBSSxDQUFBLENBQUE7QUFDZCxJQUFBLE9BQUEsTUFBTSxjQUFlLENBQUEsT0FBQSxDQUFRLFNBQVMsQ0FBQSxDQUFBO0dBQzVDLEVBQUEsQ0FBQyxTQUFXLEVBQUEsY0FBYyxDQUFDLENBQUEsQ0FBQTtBQUU5QixFQUFBLFNBQUEsQ0FBVSxNQUFNO0FBRVIsSUFBQSxNQUFBLGNBQUEsR0FBaUIsZ0JBQWdCLFdBQVksRUFBQSxDQUFBO0FBQzdDLElBQUEsTUFBQSxnQkFBQSxHQUFtQixjQUFtQixLQUFBLFFBQUEsR0FBVyxjQUFpQixHQUFBLFFBQUEsQ0FBQTtBQUV4RSxJQUFBLElBQUksbUJBQW1CLFFBQVUsRUFBQTtBQUMvQixNQUFBLGFBQUEsQ0FBYyxjQUFjLHdDQUF3QyxDQUFBLENBQUE7QUFBQSxLQUFBO0FBR3RFLElBQUEsY0FBQSxDQUFlLGtCQUFrQixnQkFBZ0IsQ0FBQSxDQUFBO0FBQUEsR0FBQSxFQUNoRCxDQUFDLFNBQUEsRUFBVyxjQUFnQixFQUFBLFFBQUEsRUFBVSxlQUFlLENBQUMsQ0FBQSxDQUFBO0FBRWxELEVBQUEsT0FBQSxhQUFBLENBQUE7QUFDVDs7OzsifQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { isEqual } from 'lodash';
|
|
2
|
-
import { UniqueUrlKeyMapper } from './UniqueUrlKeyMapper.js';
|
|
3
|
-
|
|
4
|
-
function getUrlState(root) {
|
|
5
|
-
const urlKeyMapper = new UniqueUrlKeyMapper();
|
|
6
|
-
const result = {};
|
|
7
|
-
const visitNode = (obj) => {
|
|
8
|
-
if (obj.urlSync) {
|
|
9
|
-
const newUrlState = obj.urlSync.getUrlState();
|
|
10
|
-
for (const [key, value] of Object.entries(newUrlState)) {
|
|
11
|
-
if (value != null) {
|
|
12
|
-
const uniqueKey = urlKeyMapper.getUniqueKey(key, obj);
|
|
13
|
-
result[uniqueKey] = value;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
obj.forEachChild(visitNode);
|
|
18
|
-
};
|
|
19
|
-
visitNode(root);
|
|
20
|
-
return result;
|
|
21
|
-
}
|
|
22
|
-
function syncStateFromUrl(root, urlParams, urlKeyMapper, onlyChildren) {
|
|
23
|
-
if (!onlyChildren) {
|
|
24
|
-
syncUrlStateToObject(root, urlParams, urlKeyMapper);
|
|
25
|
-
}
|
|
26
|
-
root.forEachChild((child) => {
|
|
27
|
-
syncUrlStateToObject(child, urlParams, urlKeyMapper);
|
|
28
|
-
});
|
|
29
|
-
root.forEachChild((child) => syncStateFromUrl(child, urlParams, urlKeyMapper, true));
|
|
30
|
-
}
|
|
31
|
-
function syncUrlStateToObject(sceneObject, urlParams, urlKeyMapper) {
|
|
32
|
-
if (sceneObject.urlSync) {
|
|
33
|
-
const urlState = {};
|
|
34
|
-
const currentState = sceneObject.urlSync.getUrlState();
|
|
35
|
-
for (const key of sceneObject.urlSync.getKeys()) {
|
|
36
|
-
const uniqueKey = urlKeyMapper.getUniqueKey(key, sceneObject);
|
|
37
|
-
const newValue = urlParams.getAll(uniqueKey);
|
|
38
|
-
const currentValue = currentState[key];
|
|
39
|
-
if (isUrlValueEqual(newValue, currentValue)) {
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
if (newValue.length > 0) {
|
|
43
|
-
if (Array.isArray(currentValue)) {
|
|
44
|
-
urlState[key] = newValue;
|
|
45
|
-
} else {
|
|
46
|
-
urlState[key] = newValue[0];
|
|
47
|
-
}
|
|
48
|
-
} else {
|
|
49
|
-
urlState[key] = null;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (Object.keys(urlState).length > 0) {
|
|
53
|
-
sceneObject.urlSync.updateFromUrl(urlState);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
function isUrlValueEqual(currentUrlValue, newUrlValue) {
|
|
58
|
-
if (currentUrlValue.length === 0 && newUrlValue == null) {
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
if (!Array.isArray(newUrlValue) && (currentUrlValue == null ? void 0 : currentUrlValue.length) === 1) {
|
|
62
|
-
return newUrlValue === currentUrlValue[0];
|
|
63
|
-
}
|
|
64
|
-
if ((newUrlValue == null ? void 0 : newUrlValue.length) === 0 && currentUrlValue === null) {
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
return isEqual(currentUrlValue, newUrlValue);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export { getUrlState, isUrlValueEqual, syncStateFromUrl };
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgVW5pcXVlVXJsS2V5TWFwcGVyIH0gZnJvbSAnLi9VbmlxdWVVcmxLZXlNYXBwZXIuanMnO1xuXG5mdW5jdGlvbiBnZXRVcmxTdGF0ZShyb290KSB7XG4gIGNvbnN0IHVybEtleU1hcHBlciA9IG5ldyBVbmlxdWVVcmxLZXlNYXBwZXIoKTtcbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIGNvbnN0IHZpc2l0Tm9kZSA9IChvYmopID0+IHtcbiAgICBpZiAob2JqLnVybFN5bmMpIHtcbiAgICAgIGNvbnN0IG5ld1VybFN0YXRlID0gb2JqLnVybFN5bmMuZ2V0VXJsU3RhdGUoKTtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG5ld1VybFN0YXRlKSkge1xuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IHVybEtleU1hcHBlci5nZXRVbmlxdWVLZXkoa2V5LCBvYmopO1xuICAgICAgICAgIHJlc3VsdFt1bmlxdWVLZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgb2JqLmZvckVhY2hDaGlsZCh2aXNpdE5vZGUpO1xuICB9O1xuICB2aXNpdE5vZGUocm9vdCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBzeW5jU3RhdGVGcm9tU2VhcmNoUGFyYW1zKHJvb3QsIHVybFBhcmFtcykge1xuICBjb25zdCB1cmxLZXlNYXBwZXIgPSBuZXcgVW5pcXVlVXJsS2V5TWFwcGVyKCk7XG4gIHN5bmNTdGF0ZUZyb21Vcmwocm9vdCwgdXJsUGFyYW1zLCB1cmxLZXlNYXBwZXIpO1xufVxuZnVuY3Rpb24gc3luY1N0YXRlRnJvbVVybChyb290LCB1cmxQYXJhbXMsIHVybEtleU1hcHBlciwgb25seUNoaWxkcmVuKSB7XG4gIGlmICghb25seUNoaWxkcmVuKSB7XG4gICAgc3luY1VybFN0YXRlVG9PYmplY3Qocm9vdCwgdXJsUGFyYW1zLCB1cmxLZXlNYXBwZXIpO1xuICB9XG4gIHJvb3QuZm9yRWFjaENoaWxkKChjaGlsZCkgPT4ge1xuICAgIHN5bmNVcmxTdGF0ZVRvT2JqZWN0KGNoaWxkLCB1cmxQYXJhbXMsIHVybEtleU1hcHBlcik7XG4gIH0pO1xuICByb290LmZvckVhY2hDaGlsZCgoY2hpbGQpID0+IHN5bmNTdGF0ZUZyb21VcmwoY2hpbGQsIHVybFBhcmFtcywgdXJsS2V5TWFwcGVyLCB0cnVlKSk7XG59XG5mdW5jdGlvbiBzeW5jVXJsU3RhdGVUb09iamVjdChzY2VuZU9iamVjdCwgdXJsUGFyYW1zLCB1cmxLZXlNYXBwZXIpIHtcbiAgaWYgKHNjZW5lT2JqZWN0LnVybFN5bmMpIHtcbiAgICBjb25zdCB1cmxTdGF0ZSA9IHt9O1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHNjZW5lT2JqZWN0LnVybFN5bmMuZ2V0VXJsU3RhdGUoKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBzY2VuZU9iamVjdC51cmxTeW5jLmdldEtleXMoKSkge1xuICAgICAgY29uc3QgdW5pcXVlS2V5ID0gdXJsS2V5TWFwcGVyLmdldFVuaXF1ZUtleShrZXksIHNjZW5lT2JqZWN0KTtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdXJsUGFyYW1zLmdldEFsbCh1bmlxdWVLZXkpO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gY3VycmVudFN0YXRlW2tleV07XG4gICAgICBpZiAoaXNVcmxWYWx1ZUVxdWFsKG5ld1ZhbHVlLCBjdXJyZW50VmFsdWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKG5ld1ZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudFZhbHVlKSkge1xuICAgICAgICAgIHVybFN0YXRlW2tleV0gPSBuZXdWYWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cmxTdGF0ZVtrZXldID0gbmV3VmFsdWVbMF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVybFN0YXRlW2tleV0gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoT2JqZWN0LmtleXModXJsU3RhdGUpLmxlbmd0aCA+IDApIHtcbiAgICAgIHNjZW5lT2JqZWN0LnVybFN5bmMudXBkYXRlRnJvbVVybCh1cmxTdGF0ZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBpc1VybFZhbHVlRXF1YWwoY3VycmVudFVybFZhbHVlLCBuZXdVcmxWYWx1ZSkge1xuICBpZiAoY3VycmVudFVybFZhbHVlLmxlbmd0aCA9PT0gMCAmJiBuZXdVcmxWYWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKCFBcnJheS5pc0FycmF5KG5ld1VybFZhbHVlKSAmJiAoY3VycmVudFVybFZhbHVlID09IG51bGwgPyB2b2lkIDAgOiBjdXJyZW50VXJsVmFsdWUubGVuZ3RoKSA9PT0gMSkge1xuICAgIHJldHVybiBuZXdVcmxWYWx1ZSA9PT0gY3VycmVudFVybFZhbHVlWzBdO1xuICB9XG4gIGlmICgobmV3VXJsVmFsdWUgPT0gbnVsbCA/IHZvaWQgMCA6IG5ld1VybFZhbHVlLmxlbmd0aCkgPT09IDAgJiYgY3VycmVudFVybFZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGlzRXF1YWwoY3VycmVudFVybFZhbHVlLCBuZXdVcmxWYWx1ZSk7XG59XG5cbmV4cG9ydCB7IGdldFVybFN0YXRlLCBpc1VybFZhbHVlRXF1YWwsIHN5bmNTdGF0ZUZyb21TZWFyY2hQYXJhbXMsIHN5bmNTdGF0ZUZyb21VcmwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFhScGJITXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwzTnlZeTl6WlhKMmFXTmxjeTkxZEdsc2N5NTBjeUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCcGMwVnhkV0ZzSUgwZ1puSnZiU0FuYkc5a1lYTm9KenRjYmx4dWFXMXdiM0owSUhzZ1UyTmxibVZQWW1wbFkzUXNJRk5qWlc1bFQySnFaV04wVlhKc1ZtRnNkV1VzSUZOalpXNWxUMkpxWldOMFZYSnNWbUZzZFdWeklIMGdabkp2YlNBbkxpNHZZMjl5WlM5MGVYQmxjeWM3WEc1cGJYQnZjblFnZXlCVmJtbHhkV1ZWY214TFpYbE5ZWEJ3WlhJZ2ZTQm1jbTl0SUNjdUwxVnVhWEYxWlZWeWJFdGxlVTFoY0hCbGNpYzdYRzVjYmk4cUtseHVJQ29nUUhCaGNtRnRJSEp2YjNSY2JpQXFJRUJ5WlhSMWNtNXpJSFJvWlNCbWRXeHNJSE5qWlc1bElIVnliQ0J6ZEdGMFpTQmhjeUJoSUc5aWFtVmpkQ0IzYVhSb0lHdGxlWE1nWVc1a0lIWmhiSFZsYzF4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwVlhKc1UzUmhkR1VvY205dmREb2dVMk5sYm1WUFltcGxZM1FwT2lCVFkyVnVaVTlpYW1WamRGVnliRlpoYkhWbGN5QjdYRzRnSUdOdmJuTjBJSFZ5YkV0bGVVMWhjSEJsY2lBOUlHNWxkeUJWYm1seGRXVlZjbXhMWlhsTllYQndaWElvS1R0Y2JpQWdZMjl1YzNRZ2NtVnpkV3gwT2lCVFkyVnVaVTlpYW1WamRGVnliRlpoYkhWbGN5QTlJSHQ5TzF4dVhHNGdJR052Ym5OMElIWnBjMmwwVG05a1pTQTlJQ2h2WW1vNklGTmpaVzVsVDJKcVpXTjBLU0E5UGlCN1hHNGdJQ0FnYVdZZ0tHOWlhaTUxY214VGVXNWpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnVaWGRWY214VGRHRjBaU0E5SUc5aWFpNTFjbXhUZVc1akxtZGxkRlZ5YkZOMFlYUmxLQ2s3WEc1Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ1cydGxlU3dnZG1Gc2RXVmRJRzltSUU5aWFtVmpkQzVsYm5SeWFXVnpLRzVsZDFWeWJGTjBZWFJsS1NrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZG1Gc2RXVWdJVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSFZ1YVhGMVpVdGxlU0E5SUhWeWJFdGxlVTFoY0hCbGNpNW5aWFJWYm1seGRXVkxaWGtvYTJWNUxDQnZZbW9wTzF4dUlDQWdJQ0FnSUNBZ0lISmxjM1ZzZEZ0MWJtbHhkV1ZMWlhsZElEMGdkbUZzZFdVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCdlltb3VabTl5UldGamFFTm9hV3hrS0hacGMybDBUbTlrWlNrN1hHNGdJSDA3WEc1Y2JpQWdkbWx6YVhST2IyUmxLSEp2YjNRcE8xeHVJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVmVnh1WEc0dktpcGNiaUFxSUVWNGNHOXlkR1ZrSUhWMGFXd2dablZ1WTNScGIyNGdkRzhnYzNsdVl5QnpkR0YwWlNCbWNtOXRJR0Z1SUdsdWFYUnBZV3dnZFhKc0lITjBZWFJsTGx4dUlDb2dWWE5sWm5Wc0lHWnZjaUJwYm1sMGFXRnNhWHBwYm1jZ1lXNGdaVzFpWldSa1pXUWdjMk5sYm1WeklIZHBkR2dnWVNCMWNtd2djM1JoZEdVZ2MzUnlhVzVuTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjM2x1WTFOMFlYUmxSbkp2YlZObFlYSmphRkJoY21GdGN5aHliMjkwT2lCVFkyVnVaVTlpYW1WamRDd2dkWEpzVUdGeVlXMXpPaUJWVWt4VFpXRnlZMmhRWVhKaGJYTXBJSHRjYmlBZ1kyOXVjM1FnZFhKc1MyVjVUV0Z3Y0dWeUlEMGdibVYzSUZWdWFYRjFaVlZ5YkV0bGVVMWhjSEJsY2lncE8xeHVJQ0J6ZVc1alUzUmhkR1ZHY205dFZYSnNLSEp2YjNRc0lIVnliRkJoY21GdGN5d2dkWEpzUzJWNVRXRndjR1Z5S1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE41Ym1OVGRHRjBaVVp5YjIxVmNtd29YRzRnSUhKdmIzUTZJRk5qWlc1bFQySnFaV04wTEZ4dUlDQjFjbXhRWVhKaGJYTTZJRlZTVEZObFlYSmphRkJoY21GdGN5eGNiaUFnZFhKc1MyVjVUV0Z3Y0dWeU9pQlZibWx4ZFdWVmNteExaWGxOWVhCd1pYSXNYRzRnSUc5dWJIbERhR2xzWkhKbGJqODZJR0p2YjJ4bFlXNWNiaWtnZTF4dUlDQnBaaUFvSVc5dWJIbERhR2xzWkhKbGJpa2dlMXh1SUNBZ0lITjVibU5WY214VGRHRjBaVlJ2VDJKcVpXTjBLSEp2YjNRc0lIVnliRkJoY21GdGN5d2dkWEpzUzJWNVRXRndjR1Z5S1R0Y2JpQWdmVnh1WEc0Z0lDOHZJRlJvWlhObElIUjNieUJtYjNKRllXTm9RMmhwYkdRZ2JHOXZjSE1nYldsbmFIUWdiRzl2YXlCemRISmhibWRsSUdKMWRDQnBkQ2R6SUhSdklHMWhhMlVnYzNWeVpTQjNaU0IzWVd4cklIUm9jbTkxWjJnZ2RHaGxJSE5qWlc1bElHZHlZWEJvSUc5dVpTQnNaWFpsYkNCaGRDQmhJSFJwYldVZ1lYTWdkWEpzSUd0bGVTQmpiMjVtYkdsamRITWdaR1Z3Wlc1a0lHUmxjSFJvSUdsdUlIUm9aU0J6WTJWdVpTQjBjbVZsWEc0Z0lISnZiM1F1Wm05eVJXRmphRU5vYVd4a0tDaGphR2xzWkNrZ1BUNGdlMXh1SUNBZ0lITjVibU5WY214VGRHRjBaVlJ2VDJKcVpXTjBLR05vYVd4a0xDQjFjbXhRWVhKaGJYTXNJSFZ5YkV0bGVVMWhjSEJsY2lrN1hHNGdJSDBwTzF4dVhHNGdJSEp2YjNRdVptOXlSV0ZqYUVOb2FXeGtLQ2hqYUdsc1pDa2dQVDRnYzNsdVkxTjBZWFJsUm5KdmJWVnliQ2hqYUdsc1pDd2dkWEpzVUdGeVlXMXpMQ0IxY214TFpYbE5ZWEJ3WlhJc0lIUnlkV1VwS1R0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnYzNsdVkxVnliRk4wWVhSbFZHOVBZbXBsWTNRb2MyTmxibVZQWW1wbFkzUTZJRk5qWlc1bFQySnFaV04wTENCMWNteFFZWEpoYlhNNklGVlNURk5sWVhKamFGQmhjbUZ0Y3l3Z2RYSnNTMlY1VFdGd2NHVnlPaUJWYm1seGRXVlZjbXhMWlhsTllYQndaWElwSUh0Y2JpQWdhV1lnS0hOalpXNWxUMkpxWldOMExuVnliRk41Ym1NcElIdGNiaUFnSUNCamIyNXpkQ0IxY214VGRHRjBaVG9nVTJObGJtVlBZbXBsWTNSVmNteFdZV3gxWlhNZ1BTQjdmVHRjYmlBZ0lDQmpiMjV6ZENCamRYSnlaVzUwVTNSaGRHVWdQU0J6WTJWdVpVOWlhbVZqZEM1MWNteFRlVzVqTG1kbGRGVnliRk4wWVhSbEtDazdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR3RsZVNCdlppQnpZMlZ1WlU5aWFtVmpkQzUxY214VGVXNWpMbWRsZEV0bGVYTW9LU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdkVzVwY1hWbFMyVjVJRDBnZFhKc1MyVjVUV0Z3Y0dWeUxtZGxkRlZ1YVhGMVpVdGxlU2hyWlhrc0lITmpaVzVsVDJKcVpXTjBLVHRjYmlBZ0lDQWdJR052Ym5OMElHNWxkMVpoYkhWbElEMGdkWEpzVUdGeVlXMXpMbWRsZEVGc2JDaDFibWx4ZFdWTFpYa3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ1kzVnljbVZ1ZEZaaGJIVmxJRDBnWTNWeWNtVnVkRk4wWVhSbFcydGxlVjA3WEc1Y2JpQWdJQ0FnSUdsbUlDaHBjMVZ5YkZaaGJIVmxSWEYxWVd3b2JtVjNWbUZzZFdVc0lHTjFjbkpsYm5SV1lXeDFaU2twSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2h1WlhkV1lXeDFaUzVzWlc1bmRHZ2dQaUF3S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hCY25KaGVTNXBjMEZ5Y21GNUtHTjFjbkpsYm5SV1lXeDFaU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQjFjbXhUZEdGMFpWdHJaWGxkSUQwZ2JtVjNWbUZzZFdVN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdkWEpzVTNSaGRHVmJhMlY1WFNBOUlHNWxkMVpoYkhWbFd6QmRPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0F2THlCdFlYSnJJSFJvYVhNZ2EyVjVJR0Z6SUdoaGRtbHVaeUJ1YnlCMWNtd2djM1JoZEdWY2JpQWdJQ0FnSUNBZ2RYSnNVM1JoZEdWYmEyVjVYU0E5SUc1MWJHdzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRTlpYW1WamRDNXJaWGx6S0hWeWJGTjBZWFJsS1M1c1pXNW5kR2dnUGlBd0tTQjdYRzRnSUNBZ0lDQnpZMlZ1WlU5aWFtVmpkQzUxY214VGVXNWpMblZ3WkdGMFpVWnliMjFWY213b2RYSnNVM1JoZEdVcE8xeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FYTlZjbXhXWVd4MVpVVnhkV0ZzS0dOMWNuSmxiblJWY214V1lXeDFaVG9nYzNSeWFXNW5XMTBzSUc1bGQxVnliRlpoYkhWbE9pQlRZMlZ1WlU5aWFtVmpkRlZ5YkZaaGJIVmxLVG9nWW05dmJHVmhiaUI3WEc0Z0lHbG1JQ2hqZFhKeVpXNTBWWEpzVm1Gc2RXVXViR1Z1WjNSb0lEMDlQU0F3SUNZbUlHNWxkMVZ5YkZaaGJIVmxJRDA5SUc1MWJHd3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ2ZWeHVYRzRnSUdsbUlDZ2hRWEp5WVhrdWFYTkJjbkpoZVNodVpYZFZjbXhXWVd4MVpTa2dKaVlnWTNWeWNtVnVkRlZ5YkZaaGJIVmxQeTVzWlc1bmRHZ2dQVDA5SURFcElIdGNiaUFnSUNCeVpYUjFjbTRnYm1WM1ZYSnNWbUZzZFdVZ1BUMDlJR04xY25KbGJuUlZjbXhXWVd4MVpWc3dYVHRjYmlBZ2ZWeHVYRzRnSUdsbUlDaHVaWGRWY214V1lXeDFaVDh1YkdWdVozUm9JRDA5UFNBd0lDWW1JR04xY25KbGJuUlZjbXhXWVd4MVpTQTlQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNCOVhHNWNiaUFnTHk4Z1YyVWdhR0YyWlNCMGQyOGdZWEp5WVhsekxDQnNaWFJ6SUdOdmJYQmhjbVVnZEdobGJWeHVJQ0J5WlhSMWNtNGdhWE5GY1hWaGJDaGpkWEp5Wlc1MFZYSnNWbUZzZFdVc0lHNWxkMVZ5YkZaaGJIVmxLVHRjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdRVUZUVHl4VFFVRlRMRmxCUVZrc1NVRkJlVU1zUlVGQlFUdEJRVU51UlN4RlFVRk5MRTFCUVVFc1dVRkJRU3hIUVVGbExFbEJRVWtzYTBKQlFXMUNMRVZCUVVFc1EwRkJRVHRCUVVNMVF5eEZRVUZCTEUxQlFVMHNVMEZCSzBJc1JVRkJReXhEUVVGQk8wRkJSWFJETEVWQlFVMHNUVUZCUVN4VFFVRkJMRWRCUVZrc1EwRkJReXhIUVVGeFFpeExRVUZCTzBGQlEzUkRMRWxCUVVFc1NVRkJTU3hKUVVGSkxFOUJRVk1zUlVGQlFUdEJRVU5tTEUxQlFVMHNUVUZCUVN4WFFVRkJMRWRCUVdNc1IwRkJTU3hEUVVGQkxFOUJRVUVzUTBGQlVTeFhRVUZaTEVWQlFVRXNRMEZCUVR0QlFVVTFReXhOUVVGQkxFdEJRVUVzVFVGQlZ5eERRVUZETEVkQlFVc3NSVUZCUVN4TFFVRkxMRXRCUVVzc1RVRkJUeXhEUVVGQkxFOUJRVUVzUTBGQlVTeFhRVUZYTEVOQlFVY3NSVUZCUVR0QlFVTjBSQ3hSUVVGQkxFbEJRVWtzVTBGQlV5eEpRVUZOTEVWQlFVRTdRVUZEYWtJc1ZVRkJRU3hOUVVGTkxGTkJRVmtzUjBGQlFTeFpRVUZCTEVOQlFXRXNXVUZCWVN4RFFVRkJMRWRCUVVFc1JVRkJTeXhIUVVGSExFTkJRVUVzUTBGQlFUdEJRVU53UkN4VlFVRkJMRTFCUVVFc1EwRkJUeXhUUVVGaExFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRTdRVUZCUVN4VFFVTjBRanRCUVVGQkxFOUJRMFk3UVVGQlFTeExRVU5HTzBGQlJVRXNTVUZCUVN4SFFVRkJMRU5CUVVrc1lVRkJZU3hUUVVGVExFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlF6VkNMRU5CUVVFN1FVRkZRU3hGUVVGQkxGTkJRVUVzUTBGQlZTeEpRVUZKTEVOQlFVRXNRMEZCUVR0QlFVTmtMRVZCUVU4c1QwRkJRU3hOUVVGQkxFTkJRVUU3UVVGRFZDeERRVUZCTzBGQlRXZENMRk5CUVVFc2VVSkJRVUVzUTBGQk1FSXNUVUZCYlVJc1UwRkJORUlzUlVGQlFUdEJRVU4yUml4RlFVRk5MRTFCUVVFc1dVRkJRU3hIUVVGbExFbEJRVWtzYTBKQlFXMUNMRVZCUVVFc1EwRkJRVHRCUVVNMVF5eEZRVUZwUWl4blFrRkJRU3hEUVVGQkxFbEJRVUVzUlVGQlRTeFhRVUZYTEZsQlFWa3NRMEZCUVN4RFFVRkJPMEZCUTJoRUxFTkJRVUU3UVVGRlR5eFRRVUZUTEdkQ1FVTmtMRU5CUVVFc1NVRkJRU3hGUVVOQkxGTkJRMEVzUlVGQlFTeFpRVUZCTEVWQlEwRXNXVUZEUVN4RlFVRkJPMEZCUTBFc1JVRkJRU3hKUVVGSkxFTkJRVU1zV1VGQll5eEZRVUZCTzBGQlEycENMRWxCUVhGQ0xHOUNRVUZCTEVOQlFVRXNTVUZCUVN4RlFVRk5MRmRCUVZjc1dVRkJXU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU53UkR0QlFVZEJMRVZCUVVzc1NVRkJRU3hEUVVGQkxGbEJRVUVzUTBGQllTeERRVUZETEV0QlFWVXNTMEZCUVR0QlFVTXpRaXhKUVVGeFFpeHZRa0ZCUVN4RFFVRkJMRXRCUVVFc1JVRkJUeXhYUVVGWExGbEJRVmtzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZEY0VRc1EwRkJRU3hEUVVGQk8wRkJSVVFzUlVGQlN5eEpRVUZCTEVOQlFVRXNXVUZCUVN4RFFVRmhMRU5CUVVNc1MwRkJWU3hMUVVGQkxHZENRVUZCTEVOQlFXbENMRTlCUVU4c1UwRkJWeXhGUVVGQkxGbEJRVUVzUlVGQll5eEpRVUZKTEVOQlFVTXNRMEZCUVN4RFFVRkJPMEZCUTNKR0xFTkJRVUU3UVVGRlFTeFRRVUZUTEc5Q1FVRkJMRU5CUVhGQ0xGZEJRVEJDTEVWQlFVRXNVMEZCUVN4RlFVRTBRaXhaUVVGclF5eEZRVUZCTzBGQlEzQklMRVZCUVVFc1NVRkJTU3haUVVGWkxFOUJRVk1zUlVGQlFUdEJRVU4yUWl4SlFVRkJMRTFCUVUwc1YwRkJhVU1zUlVGQlF5eERRVUZCTzBGQlEzaERMRWxCUVUwc1RVRkJRU3haUVVGQkxFZEJRV1VzVjBGQldTeERRVUZCTEU5QlFVRXNRMEZCVVN4WFFVRlpMRVZCUVVFc1EwRkJRVHRCUVVWeVJDeEpRVUZCTEV0QlFVRXNUVUZCVnl4SFFVRlBMRWxCUVVFc1YwRkJRU3hEUVVGWkxFOUJRVkVzUTBGQlFTeFBRVUZCTEVWQlFWY3NSVUZCUVR0QlFVTXZReXhOUVVGQkxFMUJRVTBzVTBGQldTeEhRVUZCTEZsQlFVRXNRMEZCWVN4WlFVRmhMRU5CUVVFc1IwRkJRU3hGUVVGTExGZEJRVmNzUTBGQlFTeERRVUZCTzBGQlF6VkVMRTFCUVUwc1RVRkJRU3hSUVVGQkxFZEJRVmNzVTBGQlZTeERRVUZCTEUxQlFVRXNRMEZCVHl4VFFVRlRMRU5CUVVFc1EwRkJRVHRCUVVNelF5eE5RVUZCTEUxQlFVMHNaVUZCWlN4WlFVRmhMRU5CUVVFc1IwRkJRU3hEUVVGQkxFTkJRVUU3UVVGRmJFTXNUVUZCU1N4SlFVRkJMR1ZCUVVFc1EwRkJaMElzVVVGQlZTeEZRVUZCTEZsQlFWa3NRMEZCUnl4RlFVRkJPMEZCUXpORExGRkJRVUVzVTBGQlFUdEJRVUZCTEU5QlEwWTdRVUZGUVN4TlFVRkpMRWxCUVVFc1VVRkJRU3hEUVVGVExGTkJRVk1zUTBGQlJ5eEZRVUZCTzBGQlEzWkNMRkZCUVVrc1NVRkJRU3hMUVVGQkxFTkJRVTBzVDBGQlVTeERRVUZCTEZsQlFWa3NRMEZCUnl4RlFVRkJPMEZCUXk5Q0xGVkJRVUVzVVVGQlFTeERRVUZUTEVkQlFVOHNRMEZCUVN4SFFVRkJMRkZCUVVFc1EwRkJRVHRCUVVGQkxGTkJRMWdzVFVGQlFUdEJRVU5NTEZWQlFVRXNVVUZCUVN4RFFVRlRMRTlCUVU4c1VVRkJVeXhEUVVGQkxFTkJRVUVzUTBGQlFTeERRVUZCTzBGQlFVRXNVMEZETTBJN1FVRkJRU3hQUVVOTExFMUJRVUU3UVVGRlRDeFJRVUZCTEZGQlFVRXNRMEZCVXl4SFFVRlBMRU5CUVVFc1IwRkJRU3hKUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU5zUWp0QlFVRkJMRXRCUTBZN1FVRkZRU3hKUVVGQkxFbEJRVWtzVFVGQlR5eERRVUZCTEVsQlFVRXNRMEZCU3l4UlFVRlJMRU5CUVVFc1EwRkJSU3hUUVVGVExFTkJRVWNzUlVGQlFUdEJRVU53UXl4TlFVRlpMRmRCUVVFc1EwRkJRU3hQUVVGQkxFTkJRVkVzWTBGQll5eFJRVUZSTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUXpWRE8wRkJRVUVzUjBGRFJqdEJRVU5HTEVOQlFVRTdRVUZGWjBJc1UwRkJRU3hsUVVGQkxFTkJRV2RDTEdsQ1FVRXlRaXhYUVVFeVF5eEZRVUZCTzBGQlEzQkhMRVZCUVVFc1NVRkJTU3hsUVVGblFpeERRVUZCTEUxQlFVRXNTMEZCVnl4RFFVRkxMRWxCUVVFc1YwRkJRU3hKUVVGbExFbEJRVTBzUlVGQlFUdEJRVU4yUkN4SlFVRlBMRTlCUVVFc1NVRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFZEdEJRVVZCTEVWQlFVRXNTVUZCU1N4RFFVRkRMRXRCUVUwc1EwRkJRU3hQUVVGQkxFTkJRVkVzVjBGQlZ5eERRVUZMTEVsQlFVRXNRMEZCUVN4bFFVRkJMRWxCUVVFc1NVRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEdWQlFVRXNRMEZCYVVJc1dVRkJWeXhEUVVGSExFVkJRVUU3UVVGRGFFVXNTVUZCUVN4UFFVRlBMR2RDUVVGblFpeGxRVUZuUWl4RFFVRkJMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGVrTTdRVUZGUVN4RlFVRkJMRWxCUVVFc1EwRkJTU3hYUVVGaExFbEJRVUVzU1VGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRmRCUVVFc1EwRkJRU3hOUVVGQkxFMUJRVmNzUTBGQlN5eEpRVUZCTEdWQlFVRXNTMEZCYjBJc1NVRkJUU3hGUVVGQk8wRkJRM3BFTEVsQlFVOHNUMEZCUVN4SlFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOVU8wRkJSMEVzUlVGQlR5eFBRVUZCTEU5QlFVRXNRMEZCVVN4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
|